/**
 * ChrisWaldron.com — Premium Brand System v3.9
 * World-class personal brand site design.
 *
 * Design principles (from top-performing personal brand sites):
 * - 18-20px body text, 48-64px hero headlines
 * - Generous whitespace (100-140px section padding)
 * - Full-bleed hero sections with gradient overlays
 * - Subtle scroll animations (fade + translate)
 * - Dark/light section alternation for rhythm
 * - Pill buttons, card lift on hover
 * - Clean footer with social + nav + CTA
 *
 * Color Palette:
 *   Deep Green:   #1A2E28
 *   Dark Green:   #1C3230
 *   Emerald:      #4CAF82
 *   Bright Green: #5CDB95
 *   Warm White:   #FAFBFA
 */

/* ==========================================================================
   0. CSS Custom Properties
   ========================================================================== */

:root {
	/* Colors */
	--cw-deep-green: #1A2E28;
	--cw-dark-green: #1C3230;
	--cw-emerald: #4CAF82;
	--cw-emerald-on-light: #1B7A4A; /* WCAG AA: 5.30:1 vs #FFFFFF — use against white/light backgrounds */
	--cw-bright-green: #5CDB95;
	--cw-light-surface: #F7F9F8;
	--cw-dark-text: #1B2631;
	--cw-light-text: #E8F0EC;
	--cw-white: #FFFFFF;
	--cw-muted: #4B5E56; /* was #6B7C75 (4.6:1) → now 7.2:1 on white — WCAG AA pass */
	--cw-border: #DDE3DF;
	--cw-overlay: rgba(26, 46, 40, 0.92);

	/* Typography */
	--cw-font-heading: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--cw-font-body: 'Source Serif 4', 'Georgia', serif;
	--cw-font-ui: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	/* Type Scale */
	--cw-text-sm: 0.875rem;
	--cw-text-base: 1.125rem;
	--cw-text-lg: 1.25rem;
	--cw-text-xl: 1.5rem;
	--cw-text-2xl: 1.875rem;
	--cw-text-3xl: 2.5rem;
	--cw-text-4xl: 3.5rem;

	/* Spacing */
	--cw-space-1: 0.5rem;
	--cw-space-2: 1rem;
	--cw-space-3: 1.5rem;
	--cw-space-4: 2rem;
	--cw-space-6: 3rem;
	--cw-space-8: 4rem;
	--cw-space-10: 5rem;
	--cw-space-12: 6rem;
	--cw-space-16: 8rem;

	/* Container */
	--cw-container: 1200px;

	/* Components */
	--cw-radius: 8px;
	--cw-radius-lg: 16px;
	--cw-radius-xl: 24px;
	--cw-radius-pill: 100px;
	--cw-shadow-sm: 0 1px 3px rgba(26,46,40,0.06);
	--cw-shadow: 0 4px 16px rgba(26,46,40,0.08);
	--cw-shadow-lg: 0 12px 40px rgba(26,46,40,0.12);
	--cw-shadow-xl: 0 24px 64px rgba(26,46,40,0.16);

	/* Motion */
	--cw-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	--cw-transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	--cw-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
	--cw-header-height: 80px;

	/* Text on Dark Backgrounds (WCAG AA compliant — bumped for readability) */
	--cw-text-on-dark: rgba(232, 240, 236, 0.92);
	--cw-text-on-dark-muted: rgba(232, 240, 236, 0.75);
	--cw-text-on-dark-secondary: rgba(232, 240, 236, 0.85);

	/* Infographic / Accent Colors */
	--cw-indigo: #6366F1;
	--cw-pink: #EC4899;
	--cw-amber: #F59E0B;
	--cw-red: #EF4444;
	--cw-cyan: #06B6D4;
	--cw-violet: #8B5CF6;

	/* Neutral Scale */
	--cw-slate-50: #F8FAFC;
	--cw-slate-100: #F1F5F9;
	--cw-slate-200: #E2E8F0;
	--cw-slate-500: #64748B;
	--cw-slate-600: #475569;
	--cw-slate-900: #1E293B;

	/* Z-Index Scale */
	--z-base: 1;
	--z-dropdown: 100;
	--z-sticky: 500;
	--z-overlay: 1000;
	--z-modal: 2000;
	--z-toast: 9000;
}


/* ==========================================================================
   1. Global Reset & Typography
   ========================================================================== */

html {
	font-size: 16px !important;
	scroll-behavior: smooth;
	overflow-x: hidden;
}

body,
.site-container {
	font-family: var(--cw-font-body) !important;
	font-size: 18px !important;
	line-height: 1.75;
	color: var(--cw-dark-text);
	background-color: var(--cw-white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

/* Blanket font override — kill parent theme's Montserrat/Hind declarations.
   The parent style.css references fonts that aren't loaded, causing fallback
   to system Helvetica/Arial. This forces everything to the rebrand fonts. */
*:not(.la):not([class*="la-"]):not(.dashicons) {
	font-family: inherit;
}

button, input, select, textarea,
.button, [type="submit"] {
	font-family: var(--cw-font-ui) !important;
}

nav, .nav-primary, .nav-secondary,
.genesis-nav-menu, .genesis-nav-menu a,
.menu, .menu a, .menu li a,
.sub-menu, .sub-menu a {
	font-family: var(--cw-font-ui) !important;
}

/* Force font inheritance through all Genesis wrappers.
   Uses :not() to exclude our custom .cw-* / .gsd-* components
   so they keep their own font-size declarations. */
.textwidget,
.widget .textwidget,
.widget .textwidget p:not([class*="cw-"]),
.widget .textwidget div:not([class*="cw-"]):not([class*="gsd-"]),
.widget_text .textwidget,
.front-page .widget,
.front-page .widget p:not([class*="cw-"]),
.front-page .widget .textwidget,
.front-page .widget .textwidget p:not([class*="cw-"]),
.front-page .widget .textwidget div:not([class*="cw-"]):not([class*="gsd-"]),
[class*="front-page-"] .widget .textwidget,
[class*="front-page-"] .widget .textwidget p:not([class*="cw-"]),
[class*="front-page-"] .widget .textwidget div:not([class*="cw-"]):not([class*="gsd-"]),
.before-footer .textwidget,
.before-footer .textwidget p {
	font-size: inherit !important;
}

/* Footer widgets need their own controlled size — NOT inherit from body */
.footer-widgets .widget .textwidget,
.footer-widgets .widget .textwidget p,
.footer-widgets .widget .textwidget div {
	font-size: 0.875rem !important;
	line-height: 1.7 !important;
}

p,
.entry-content p,
.textwidget p,
.widget p {
	font-size: var(--cw-text-base) !important;
	line-height: 1.75;
	margin-bottom: 1.25em;
}

/* Aggressive font normalization — override Genesis and inline style conflicts
   Use :not() to avoid leaking into .cw-* custom components */
.front-page .widget .textwidget p:not([class*="cw-"]),
.front-page .widget .textwidget div:not([class*="cw-"]):not([class*="gsd-"]),
[class*="front-page-"] .widget p:not([class*="cw-"]),
[class*="front-page-"] .textwidget p:not([class*="cw-"]),
[class*="front-page-"] .textwidget div:not([class*="cw-"]):not([class*="gsd-"]),
.before-footer .widget p,
.before-footer .textwidget p,
.entry-content p,
.page .entry-content p {
	font-size: var(--cw-text-base) !important;
	line-height: 1.75 !important;
}

/* Footer text must stay small — override the global p rule above */
.footer-widgets .widget p,
.footer-widgets .textwidget p {
	font-size: 0.875rem !important;
	line-height: 1.7 !important;
}

/* Ensure widget text doesn't get Genesis's smaller default */
.widget_text .textwidget,
.widget_text .textwidget p:not([class*="cw-"]),
.widget_text .textwidget div:not([class*="cw-"]):not([class*="gsd-"]) {
	font-size: var(--cw-text-base) !important;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.site-title,
.widget-title {
	font-family: var(--cw-font-heading) !important;
	font-weight: 700;
	line-height: 1.15;
	color: var(--cw-dark-text);
	letter-spacing: -0.02em;
}

h1, .entry-title { font-size: clamp(2rem, 4.5vw, var(--cw-text-4xl)); margin-bottom: 0.5em; }
h2 { font-size: clamp(1.6rem, 3.5vw, var(--cw-text-3xl)); margin-bottom: 0.5em; }
h3 { font-size: var(--cw-text-2xl); margin-bottom: 0.5em; }
h4 { font-size: var(--cw-text-xl); }
h5 { font-size: var(--cw-text-lg); }
h6 { font-size: var(--cw-text-base); }

a {
	color: var(--cw-emerald-on-light);
	text-decoration: none;
	transition: color var(--cw-transition);
}

a:hover,
a:focus {
	color: var(--cw-deep-green);
}

blockquote {
	border-left: 4px solid var(--cw-emerald);
	padding: 1.25em 1.75em;
	margin: 2em 0;
	font-style: italic;
	background: var(--cw-light-surface);
	border-radius: 0 var(--cw-radius) var(--cw-radius) 0;
}

ul, ol {
	font-size: var(--cw-text-base);
	line-height: 1.75;
}

img {
	max-width: 100%;
	height: auto;
}


/* ==========================================================================
   2. Buttons
   ========================================================================== */

button,
input[type="submit"],
a.button,
.button,
.button.accent,
.front-page .button,
.widget .button,
.textwidget .button,
.textwidget a.button,
[class*="front-page-"] .button,
[class*="front-page-"] a.button {
	font-family: var(--cw-font-ui) !important;
	font-weight: 600 !important;
	font-size: 0.9375rem !important;
	letter-spacing: 0.03em;
	padding: 14px 32px !important;
	border-radius: var(--cw-radius-pill) !important;
	transition: all var(--cw-transition);
	cursor: pointer;
	border: 2px solid transparent;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	text-align: center;
	line-height: 1.2;
	text-decoration: none !important;
}

.button,
.button.accent,
button,
input[type="submit"],
.wp-block-button__link {
	background-color: var(--cw-emerald);
	color: var(--cw-deep-green) !important; /* WCAG AA: 5.30:1 vs emerald — was white text 2.71:1 */
	border-color: var(--cw-emerald);
}

.button:hover,
.button:focus,
.button.accent:hover,
.button.accent:focus,
button:hover,
button:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
.wp-block-button__link:hover {
	background-color: var(--cw-bright-green);
	color: var(--cw-deep-green) !important;
	border-color: var(--cw-bright-green);
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(76, 175, 130, 0.3);
}

.button-outline,
.button.ghost {
	background: transparent !important;
	border: 2px solid rgba(232, 240, 236, 0.5) !important;
	color: var(--cw-light-text) !important;
}

.button-outline:hover,
.button.ghost:hover {
	background: rgba(232, 240, 236, 0.12) !important;
	border-color: var(--cw-light-text) !important;
	color: var(--cw-white) !important;
	transform: translateY(-2px);
}

/* Premium CTA buttons — high-contrast, unmissable */
.cw-btn-primary {
	background: linear-gradient(135deg, #5CDB95 0%, #4CAF82 100%);
	color: var(--cw-deep-green);
	font-weight: 700;
	border: none;
	border-radius: var(--cw-radius-pill);
	box-shadow: 0 4px 20px rgba(92, 219, 149, 0.35);
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-btn-primary:hover {
	background: linear-gradient(135deg, #6EE7A8 0%, #5CDB95 100%);
	transform: translateY(-3px);
	box-shadow: 0 8px 30px rgba(92, 219, 149, 0.5);
	color: var(--cw-deep-green);
}

.cw-btn-ghost {
	background: transparent;
	color: rgba(232, 240, 236, 0.95);
	border: 2px solid rgba(232, 240, 236, 0.5); /* WCAG 1.4.11: ~3.6:1 — was 2.80:1 */
	border-radius: var(--cw-radius-pill);
	font-weight: 600;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-btn-ghost:hover {
	background: rgba(232, 240, 236, 0.1);
	border-color: rgba(232, 240, 236, 0.6);
	color: var(--cw-white);
	transform: translateY(-2px);
}

/* Buttons on dark backgrounds */
.front-page-1 .button,
.front-page-3 .button,
.front-page-6 .button,
.before-footer .button,
.cw-footer-cta .button {
	background-color: var(--cw-emerald);
	color: var(--cw-white) !important;
	border-color: var(--cw-emerald);
}

.front-page-1 .button:hover,
.front-page-3 .button:hover,
.front-page-6 .button:hover,
.before-footer .button:hover,
.cw-footer-cta .button:hover {
	background-color: var(--cw-bright-green);
	color: var(--cw-deep-green) !important;
	border-color: var(--cw-bright-green);
}

/* Ghost on hero */
.front-page-1 a.button.ghost,
.front-page-1 a[class*="ghost"] {
	background: transparent !important;
	border: 2px solid rgba(232, 240, 236, 0.5) !important;
	color: var(--cw-light-text) !important;
}

.front-page-1 a.button.ghost:hover,
.front-page-1 a[class*="ghost"]:hover {
	background: rgba(232, 240, 236, 0.12) !important;
	border-color: var(--cw-light-text) !important;
	color: var(--cw-white) !important;
}


/* ==========================================================================
   3. Site Header & Navigation
   ========================================================================== */

/*
 * CRITICAL: The parent theme style.css hardcodes #232c39 (blue-gray) on the
 * header at high specificity: `.has-fixed-header .site-header.shrink` (0,3,0).
 * The Customizer never overrides the header background, only page-header overlays.
 * We MUST match or exceed every parent selector's specificity here.
 */

/* Stripe-like gradient accent line at top of page */
body::before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, #4CAF82 0%, #5CDB95 30%, #4CAF82 50%, #5CDB95 70%, #4CAF82 100%);
	background-size: 200% 100%;
	animation: gradient-shift 4s ease infinite;
	z-index: 99999;
	pointer-events: none;
}

/*
 * CONSOLIDATED HEADER — Single source of truth.
 * Overrides parent theme's #232c39 blue-gray at .has-fixed-header specificity.
 * Uses solid background matching hero (#1A2E28) — no alpha mismatch.
 */
.site-header,
body .site-header,
.has-fixed-header .site-header,
.has-fixed-header .site-header.fixed,
.page-template-page-builder .site-header,
.page-template-page-builder .site-header.fixed,
.page-template-templatespage-builder-php .site-header,
.page-template-templatespage-builder-php .site-header.fixed {
	top: 0 !important;
	background: var(--cw-deep-green) !important;
	border-bottom: 1px solid rgba(76, 175, 130, 0.1) !important;
	border-top: none !important;
	box-shadow: none !important;
	/* backdrop-filter removed — GPU-heavy, opaque bg makes it invisible */
	transition: background 0.3s ease, box-shadow 0.3s ease, padding 0.3s ease !important;
}

.has-fixed-header .site-header.shrink,
body .site-header.shrink,
.page-template-page-builder .site-header.shrink,
.page-template-templatespage-builder-php .site-header.shrink {
	background: var(--cw-deep-green) !important;
	box-shadow: 0 4px 30px rgba(0, 0, 0, 0.2) !important;
	border-bottom-color: rgba(76, 175, 130, 0.15) !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.site-header.shrink .custom-logo {
	max-height: 36px;
	transition: max-height 0.3s ease;
}

.site-title a,
.site-title a:hover {
	color: var(--cw-white);
	font-family: var(--cw-font-heading);
	font-weight: 700;
}

.site-description {
	color: var(--cw-light-text);
	opacity: 0.6;
}

.custom-logo {
	max-height: 44px;
	width: auto;
}

.nav-primary {
	background: transparent;
}

.nav-primary .genesis-nav-menu a {
	color: rgba(232, 240, 236, 0.85);
	font-family: var(--cw-font-ui) !important;
	font-weight: 500;
	font-size: 0.9375rem !important;
	letter-spacing: 0.01em;
	text-transform: none;
	padding: 14px 20px;
	transition: color var(--cw-transition);
	position: relative;
}

.nav-primary .genesis-nav-menu a::after {
	content: '';
	position: absolute;
	bottom: 8px;
	left: 20px;
	right: 20px;
	height: 2px;
	background: var(--cw-emerald);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform var(--cw-transition);
}

.nav-primary .genesis-nav-menu a:hover::after,
.nav-primary .genesis-nav-menu .current-menu-item > a::after {
	transform: scaleX(1);
}

.nav-primary .genesis-nav-menu a:hover,
.nav-primary .genesis-nav-menu a:focus,
.nav-primary .genesis-nav-menu .current-menu-item > a {
	color: var(--cw-white);
}

/* Dropdown submenus */
.nav-primary .genesis-nav-menu .sub-menu {
	background: var(--cw-deep-green);
	border: 1px solid rgba(76, 175, 130, 0.12);
	border-radius: var(--cw-radius-lg);
	box-shadow: var(--cw-shadow-lg);
	padding: 8px 0;
	margin-top: 4px;
}

.nav-primary .genesis-nav-menu .sub-menu a {
	padding: 10px 24px;
	font-size: 0.875rem !important;
}

.nav-primary .genesis-nav-menu .sub-menu a::after {
	display: none;
}

.nav-primary .genesis-nav-menu .sub-menu a:hover {
	background: rgba(76, 175, 130, 0.08);
	color: var(--cw-emerald);
}

/* Header CTA button */
.cw-header-cta {
	display: flex;
	align-items: center;
}

.cw-header-cta .cw-btn {
	white-space: nowrap;
}


/* ==========================================================================
   4. BREADCRUMBS — Hidden globally
   ========================================================================== */

.breadcrumb,
.waldronseo-breadcrumbs,
nav[aria-label="Breadcrumb"] {
	display: none !important;
}


/* ==========================================================================
   5. PAGE HEADER — Interior pages
   ========================================================================== */

.page-header {
	background-color: var(--cw-deep-green);
	position: relative;
	padding: 7.5rem 0 2.5rem !important;
	padding-top: calc(7.5rem + 70px) !important; /* Account for fixed header */
	text-align: center;
	overflow: hidden;
}

.page-header::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(26,46,40,0.95), rgba(26,46,40,0.85));
	z-index: 1;
}

.page-header .wrap {
	position: relative;
	z-index: 2;
	max-width: 800px;
}

.page-header .entry-title,
.page-header h1 {
	color: var(--cw-white);
	font-size: clamp(2rem, 4vw, 3rem) !important;
	margin-bottom: 0.3em;
	letter-spacing: -0.02em;
}

.page-header p,
.page-header .entry-meta {
	color: rgba(232, 240, 236, 0.7);
	font-size: var(--cw-text-base);
}

/* Hide page header on builder template pages (they have their own hero) */
.page-template-templatespage-builder-php .page-header {
	display: none;
}

/* Hide page header background images — we use solid colors */
.page-header[style*="background-image"] {
	background-image: none !important;
}


/* ==========================================================================
   6. HOMEPAGE — Hero (Front Page 1)
   ========================================================================== */

.front-page-1 {
	background: linear-gradient(165deg, #1A2E28 0%, #0d1b17 60%, #132420 100%);
	min-height: 92vh;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: visible;
}

/* Ambient glow behind the hero for depth */
.front-page-1::before {
	content: '';
	position: absolute;
	top: -20%;
	right: -10%;
	width: 70%;
	height: 140%;
	background: radial-gradient(ellipse at 70% 40%, rgba(76, 175, 130, 0.07) 0%, transparent 65%);
	pointer-events: none;
	z-index: 0;
}

/* Secondary glow bottom-left */
.front-page-1::after {
	content: '';
	position: absolute;
	bottom: -30%;
	left: -15%;
	width: 50%;
	height: 80%;
	background: radial-gradient(ellipse, rgba(92, 219, 149, 0.04) 0%, transparent 60%);
	pointer-events: none;
	z-index: 0;
}

.front-page-1.page-header {
	background-image: none !important;
	padding: 0;
}

.front-page-1 .wp-custom-header {
	display: none;
}

/* CRITICAL: Override theme's `.front-page-1 .widget { max-width: 768px }` from style.css:3967 */
.front-page-1 .widget,
.front-page-1 .widget_text,
.front-page-1 .widget_custom_html,
.front-page-1 section.widget {
	max-width: none !important;
	width: 100% !important;
}

/* CRITICAL: Override Genesis .wrap max-width for hero */
.front-page-1 > .wrap,
.front-page-1 .wrap {
	position: relative;
	z-index: 1;
	max-width: 1200px !important;
	width: 100%;
	padding: 0 clamp(1.5rem, 5vw, 3rem);
	text-align: left;
}

/* Hero H1 — Single source of truth */
.front-page-1 h1 {
	color: var(--cw-white);
	font-size: clamp(2.8rem, 6vw, 5.5rem);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.03em;
	margin-bottom: 1.25rem;
	font-family: var(--cw-font-heading);
}

/* Accent color on part of the hero heading */
.front-page-1 h1 em,
.front-page-1 h1 i {
	font-style: normal;
	color: var(--cw-bright-green);
}

.front-page-1 p {
	color: rgba(232, 240, 236, 0.75);
	font-size: 1.15rem;
	line-height: 1.75;
}

.front-page-1 .textwidget {
	color: rgba(232, 240, 236, 0.75);
}

.front-page-1 .widget-title {
	color: var(--cw-emerald);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-bottom: 1.5rem;
}

/* ---- Hero split layout — explicit grid control ---- */
.front-page-1 .cw-hero-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2.5rem, 5vw, 4rem);
	align-items: center;
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
	padding: 0 clamp(1.5rem, 4vw, 2rem);
}

.front-page-1 .cw-hero-content {
	min-width: 0;
}

.front-page-1 .cw-hero-media {
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

/* Decorative ring behind headshot */
.front-page-1 .cw-hero-media::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 110%;
	height: 110%;
	border-radius: 28px;
	background: linear-gradient(135deg, rgba(76, 175, 130, 0.12) 0%, rgba(92, 219, 149, 0.04) 100%);
	z-index: -1;
}

.front-page-1 .cw-hero-media img {
	width: 100%;
	max-width: 520px;
	height: auto;
	border-radius: 24px;
	border: none;
	box-shadow: 0 32px 80px rgba(0, 0, 0, 0.4);
	object-fit: cover;
	object-position: center 15%;
	/* Soft vignette — blends non-transparent image bg into dark hero */
	-webkit-mask-image: linear-gradient(to bottom, black 60%, transparent 100%), linear-gradient(to right, black 70%, transparent 100%);
	-webkit-mask-composite: source-in;
	mask-image: linear-gradient(to bottom, black 60%, transparent 100%), linear-gradient(to right, black 70%, transparent 100%);
	mask-composite: intersect;
}

/* Headshot hover */
.front-page-1 .cw-hero-media img:hover {
	transform: scale(1.015);
	box-shadow:
		0 40px 100px rgba(0, 0, 0, 0.45),
		0 0 0 1px rgba(76, 175, 130, 0.15),
		0 0 140px rgba(76, 175, 130, 0.08);
	transition: transform 0.6s var(--cw-ease-out), box-shadow 0.6s var(--cw-ease-out);
}

/* Hero buttons container */
.front-page-1 .cw-hero-buttons {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	margin-top: 1.5rem;
}

.front-page-1 .cw-hero-buttons a {
	display: inline-flex;
	align-items: center;
	padding: 16px 36px;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 1rem;
	border-radius: var(--cw-radius-pill);
	text-decoration: none;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	position: relative;
	z-index: 5;
}

.front-page-1 .cw-hero-buttons .cw-btn-primary {
	background: linear-gradient(135deg, #5CDB95 0%, #4CAF82 100%);
	color: var(--cw-deep-green);
	font-weight: 700;
	box-shadow: 0 4px 24px rgba(76, 175, 130, 0.4);
}

.front-page-1 .cw-hero-buttons .cw-btn-primary:hover {
	background: linear-gradient(135deg, #6EE7A8 0%, #5CDB95 100%);
	transform: translateY(-3px);
	box-shadow: 0 8px 35px rgba(76, 175, 130, 0.55);
}

.front-page-1 .cw-hero-buttons .cw-btn-outline {
	background: transparent;
	color: rgba(232, 240, 236, 0.95);
	border: 2px solid rgba(232, 240, 236, 0.5); /* WCAG 1.4.11: ~3.6:1 — was 2.43:1 */
}

.front-page-1 .cw-hero-buttons .cw-btn-outline:hover {
	background: rgba(232, 240, 236, 0.08);
	border-color: rgba(232, 240, 236, 0.6);
	color: var(--cw-white);
	transform: translateY(-2px);
}

@media (max-width: 860px) {
	.front-page-1 .cw-hero-split {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 2rem;
	}
	.front-page-1 .cw-hero-media {
		order: -1;
	}
	.front-page-1 .cw-hero-media img {
		max-width: 280px;
		max-height: 320px;
	}
	.front-page-1 .cw-hero-buttons {
		justify-content: center;
	}
	.front-page-1 .cw-stats-row {
		justify-content: center;
		gap: 1.5rem;
	}
	.front-page-1 .cw-hero-badge {
		margin-left: auto;
		margin-right: auto;
		font-size: 0.65rem;
		padding: 0.35rem 0.85rem;
	}
	.front-page-1 {
		min-height: auto !important;
		height: auto !important;
		overflow: visible !important;
		padding-top: 100px !important;
		padding-bottom: 3rem !important;
	}
	.front-page-1 h1 {
		font-size: 2.25rem !important;
	}
	.front-page-1 .cw-hero-media {
		display: flex;
	}
	.front-page-1 .cw-hero-media img {
		max-height: 280px;
	}
}

@media (max-width: 480px) {
	.front-page-1 .cw-stats-row {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 0.75rem;
	}
	.front-page-1 .cw-stat-item {
		padding: 0.5rem 0;
	}
	.front-page-1 .cw-stat-number {
		font-size: 1.25rem;
	}
	.front-page-1 .cw-stat-label {
		font-size: 0.58rem;
	}
	.front-page-1 .cw-stat-item + .cw-stat-item::before {
		left: -0.5rem;
	}
	.front-page-1 .cw-hero-media img {
		max-width: 220px;
		max-height: 260px;
	}
	.front-page-1 .cw-hero-buttons {
		flex-direction: column;
		align-items: center;
	}
	.front-page-1 .cw-hero-buttons .cw-btn {
		width: 100%;
		max-width: 280px;
		text-align: center;
	}
	.front-page-1 h1 {
		font-size: 1.85rem !important;
	}
	/* Blog grid mobile */
	.cw-homepage-posts {
		grid-template-columns: 1fr;
	}
	/* Testimonial grid mobile */
	.cw-testimonial-grid {
		grid-template-columns: 1fr;
	}
}

/* Hero badge */
.cw-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--cw-font-ui);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cw-bright-green);
	padding: 0.45rem 1.1rem;
	background: rgba(92, 219, 149, 0.08);
	border: 1px solid rgba(92, 219, 149, 0.2);
	border-radius: 100px;
	width: fit-content;
	margin-bottom: 1.5rem;
	/* backdrop-filter: blur(8px) — removed for GPU perf */
}

/* Stats row in hero */
.cw-stats-row {
	display: flex;
	gap: 2.5rem;
	flex-wrap: nowrap;
	margin-top: 0.5rem;
}

.cw-stat-item {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	position: relative;
}

/* Divider between stats */
.cw-stat-item + .cw-stat-item::before {
	content: '';
	position: absolute;
	left: -1.25rem;
	top: 15%;
	height: 70%;
	width: 1px;
	background: rgba(92, 219, 149, 0.2);
}

.cw-stat-number {
	font-family: var(--cw-font-heading);
	font-size: 2.25rem;
	font-weight: 800;
	color: var(--cw-bright-green);
	line-height: 1;
	letter-spacing: -0.02em;
}

.cw-stat-label {
	font-family: var(--cw-font-ui);
	font-size: 0.8125rem;
	color: rgba(232, 240, 236, 0.75);
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

@media (max-width: 768px) {
	.front-page-1 {
		min-height: 80vh;
	}

	.front-page-1 h1 {
		font-size: clamp(2rem, 7vw, 2.75rem) !important;
	}

	.cw-stats-row {
		justify-content: center;
		gap: 1.5rem;
	}

	.cw-stat-item + .cw-stat-item::before {
		left: -0.75rem;
	}
}


/* ==========================================================================
   7. HOMEPAGE — Section 2 (Two Paths)
   ========================================================================== */

.front-page-2 {
	background: var(--cw-white);
	padding: clamp(5rem, 10vw, 8rem) 0;
	position: relative;
}

/* Subtle diagonal accent */
.front-page-2::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(76, 175, 130, 0.15), transparent);
}

.front-page-2 .wrap {
	max-width: 1100px;
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
	justify-content: center;
}

/* ALL widgets in section 2 — transparent containers, no card styling */
.front-page-2 .widget,
.front-page-2 .widget:first-child {
	background: transparent !important;
	box-shadow: none !important;
	border: none !important;
	border-radius: 0;
	padding: 0;
	transition: none;
}

.front-page-2 .widget:hover,
.front-page-2 .widget:first-child:hover {
	box-shadow: none !important;
	transform: none;
	border-color: transparent;
}

/* Section header widget — full width */
.front-page-2 .widget:first-child {
	flex: 0 0 100%;
}

/* Two service cards side by side (widget containers) */
.front-page-2 .widget:nth-child(2),
.front-page-2 .widget:nth-child(3) {
	flex: 1 1 calc(50% - 1rem);
	min-width: 300px;
}

/* Feature cards pop as white against the light-surface background */
.front-page-2 .cw-feature-card {
	background: var(--cw-light-surface);
	border: 1px solid rgba(26, 46, 40, 0.05);
	box-shadow: 0 2px 16px rgba(26, 46, 40, 0.04);
	border-radius: var(--cw-radius-xl);
	padding: 2.5rem;
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.front-page-2 .cw-feature-card:hover {
	box-shadow: 0 16px 48px rgba(76, 175, 130, 0.1), 0 4px 16px rgba(26, 46, 40, 0.05);
	transform: translateY(-6px);
	border-color: rgba(76, 175, 130, 0.12);
}

/* Card icon area */
.front-page-2 .cw-feature-card .cw-card-icon {
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(76, 175, 130, 0.1), rgba(92, 219, 149, 0.05));
	border-radius: 16px;
	margin-bottom: 1.25rem;
	font-size: 1.5rem;
}

.front-page-2 .widget-title {
	color: var(--cw-deep-green);
	font-size: 1.5rem !important;
	margin-bottom: 0.75rem;
}

.front-page-2 .widget p,
.front-page-2 .textwidget {
	color: var(--cw-muted);
	font-size: 1rem;
	line-height: 1.7;
}

.front-page-2 .fa,
.front-page-2 .la,
.front-page-2 i[class*="la-"] {
	color: var(--cw-emerald);
}


/* ==========================================================================
   8. HOMEPAGE — Section 3 (Philosophy)
   ========================================================================== */

.front-page-3 {
	background-color: var(--cw-deep-green);
	padding: clamp(4rem, 8vw, 7rem) 0;
	text-align: center;
}

.front-page-3::before {
	display: none;
}

.front-page-3 .wrap {
	max-width: 780px;
}

.front-page-3 h2,
.front-page-3 .widget-title {
	color: var(--cw-white);
	font-size: clamp(1.75rem, 3.5vw, 2.25rem) !important;
	line-height: 1.3;
}

.front-page-3 p,
.front-page-3 .textwidget {
	color: rgba(232, 240, 236, 0.8);
	font-size: 1.1rem;
	line-height: 1.85;
}

.front-page-3 hr {
	border: none;
	height: 3px;
	width: 50px;
	background: var(--cw-emerald);
	margin: 2rem auto;
	border-radius: 2px;
}

/* --- CRITICAL FIX: Dark section text contrast & widget transparency --- */

/* Force ALL descendants on dark sections to inherit light color */
.front-page-3,
.front-page-6,
.before-footer,
.cw-section-dark {
	color: var(--cw-light-text);
}

/* Explicit element targeting for dark section text (NOT wildcard * — that bleeds into adjacent sections) */
.front-page-3 p, .front-page-3 li, .front-page-3 span, .front-page-3 label,
.front-page-3 .textwidget, .front-page-3 .textwidget p, .front-page-3 .textwidget div,
.front-page-3 blockquote, .front-page-3 figcaption, .front-page-3 td, .front-page-3 address,
.front-page-6 p, .front-page-6 li, .front-page-6 span, .front-page-6 label,
.front-page-6 .textwidget, .front-page-6 .textwidget p, .front-page-6 .textwidget div,
.front-page-6 blockquote, .front-page-6 figcaption,
.before-footer p, .before-footer li, .before-footer span, .before-footer label,
.before-footer .textwidget, .before-footer .textwidget p, .before-footer .textwidget div,
.cw-section-dark p, .cw-section-dark li, .cw-section-dark span, .cw-section-dark label,
.cw-section-dark .textwidget, .cw-section-dark .textwidget p, .cw-section-dark .textwidget div,
.cw-section-dark blockquote, .cw-section-dark figcaption, .cw-section-dark td {
	color: inherit;
}

/* Re-set specific elements that need explicit light colors */
.front-page-3 h2,
.front-page-3 h3,
.front-page-3 .widget-title,
.front-page-6 h2,
.front-page-6 h3,
.front-page-6 .widget-title,
.before-footer h2,
.before-footer h3,
.before-footer .widget-title,
.cw-section-dark h1,
.cw-section-dark h2,
.cw-section-dark h3,
.cw-section-dark h4,
.cw-section-dark .widget-title {
	color: var(--cw-white) !important;
}

.front-page-3 p,
.front-page-3 li,
.front-page-3 .textwidget,
.front-page-3 .textwidget p,
.front-page-3 .textwidget div,
.front-page-6 p,
.front-page-6 li,
.front-page-6 .textwidget,
.front-page-6 .textwidget p,
.front-page-6 .textwidget div,
.before-footer p,
.before-footer li,
.before-footer .textwidget,
.before-footer .textwidget p,
.before-footer .textwidget div,
.cw-section-dark p,
.cw-section-dark li,
.cw-section-dark .textwidget,
.cw-section-dark .textwidget p {
	color: rgba(232, 240, 236, 0.8) !important;
}

.front-page-3 a,
.front-page-6 a,
.before-footer a,
.cw-section-dark a {
	color: var(--cw-bright-green) !important;
}

.front-page-3 a:hover,
.front-page-6 a:hover,
.before-footer a:hover,
.cw-section-dark a:hover {
	color: var(--cw-white) !important;
}

/* Transparent widgets on dark sections — no double-boxing */
.front-page-3 .widget,
.front-page-6 .widget,
.before-footer .widget,
.cw-section-dark .widget {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
}

.front-page-3 .widget:hover,
.front-page-6 .widget:hover,
.before-footer .widget:hover,
.cw-section-dark .widget:hover {
	box-shadow: none !important;
	transform: none !important;
}

/* Buttons on dark sections need explicit override after the wildcard reset */
.front-page-3 .button,
.front-page-6 .button,
.before-footer .button,
.cw-section-dark .button,
.front-page-3 .cw-btn,
.front-page-6 .cw-btn,
.before-footer .cw-btn,
.cw-section-dark .cw-btn {
	color: var(--cw-white);
	background-color: var(--cw-emerald);
	border-color: var(--cw-emerald);
}

.front-page-3 .button:hover,
.front-page-6 .button:hover,
.before-footer .button:hover,
.cw-section-dark .button:hover,
.front-page-3 .cw-btn-primary:hover,
.front-page-6 .cw-btn-primary:hover,
.before-footer .cw-btn-primary:hover,
.cw-section-dark .cw-btn-primary:hover {
	color: var(--cw-deep-green);
	background-color: var(--cw-bright-green);
	border-color: var(--cw-bright-green);
}

/* --- END Dark section fixes --- */


/* ==========================================================================
   9. HOMEPAGE — Section 4 (Testimonials)
   ========================================================================== */

.front-page-4 {
	background: #F8FAF9;
	padding: clamp(5rem, 10vw, 8rem) 0;
	position: relative;
}

.front-page-4::before {
	display: none;
}

.front-page-4 .wrap {
	max-width: 1100px;
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
}

/* Section heading widget */
.front-page-4 .widget:first-child {
	flex: 0 0 100%;
	background: transparent !important;
	padding: 0 !important;
	border-left: none !important;
	border: none !important;
	border-radius: 0;
	box-shadow: none !important;
}

/* ALL widgets in testimonials section — transparent, cards handle their own style */
.front-page-4 .widget {
	background: transparent !important;
	border-radius: 0 !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	flex: 0 0 100%;
}

.front-page-4 .widget:hover {
	box-shadow: none !important;
	transform: none !important;
}

.front-page-4 .widget-title {
	color: var(--cw-deep-green);
}

.front-page-4 p,
.front-page-4 .textwidget {
	color: var(--cw-dark-text);
	font-size: 1.05rem;
	font-style: normal;
	line-height: 1.8;
}

/* Testimonial quote text — italic serif for authority */
.front-page-4 .cw-testimonial-quote {
	font-family: var(--cw-font-body);
	font-style: italic;
	font-size: 1.08rem;
	line-height: 1.85;
	color: #3a4a45;
	margin-bottom: 1.5rem;
	position: relative;
}

/* Testimonial author block */
.front-page-4 .cw-testimonial-author {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(26, 46, 40, 0.06);
}

.front-page-4 .cw-testimonial-avatar {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid rgba(76, 175, 130, 0.2);
	flex-shrink: 0;
	background: var(--cw-dark-green);
	box-shadow: 0 0 0 3px var(--cw-dark-green);
}

.front-page-4 .cw-testimonial-name {
	font-family: var(--cw-font-heading);
	font-weight: 700;
	font-size: 0.95rem;
	color: var(--cw-deep-green);
	line-height: 1.3;
}

.front-page-4 .cw-testimonial-role {
	font-family: var(--cw-font-ui);
	font-size: 0.82rem;
	color: var(--cw-muted);
	font-weight: 400;
}

/* Five-star rating display */
.front-page-4 .cw-testimonial-stars {
	color: #f0b429;
	font-size: 0.85rem;
	letter-spacing: 2px;
	margin-bottom: 0.75rem;
}


/* ==========================================================================
   10. HOMEPAGE — Section 5 (Latest Insights)
   ========================================================================== */

.front-page-5 {
	background: linear-gradient(180deg, #F8FAF9 0%, var(--cw-white) 100%);
	padding: clamp(5rem, 10vw, 8rem) 0;
	position: relative;
}

.front-page-5 .wrap {
	max-width: 1100px;
}

/* Section heading */
.front-page-5 .widget:first-child {
	background: transparent !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
}

.front-page-5 .widget-title {
	color: var(--cw-deep-green);
}

/* Display Posts grid */
.front-page-5 .display-posts-listing,
.cw-posts-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin: 2rem 0;
	list-style: none;
	padding: 0;
}

.front-page-5 .display-posts-listing .listing-item,
.cw-posts-grid .listing-item {
	background: var(--cw-white);
	border-radius: var(--cw-radius-xl);
	overflow: hidden;
	padding: 0;
	border: 1px solid rgba(26, 46, 40, 0.06);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	box-shadow: 0 2px 16px rgba(26, 46, 40, 0.04);
	display: flex;
	flex-direction: column;
}

.front-page-5 .display-posts-listing .listing-item:hover,
.cw-posts-grid .listing-item:hover {
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.08);
	transform: translateY(-6px);
	border-color: rgba(76, 175, 130, 0.12);
}

/* Blog card image area */
.front-page-5 .display-posts-listing .listing-item .image,
.front-page-5 .display-posts-listing img {
	width: 100%;
	height: auto;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.front-page-5 .display-posts-listing .listing-item .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.front-page-5 .display-posts-listing .listing-item:hover .image img {
	transform: scale(1.05);
}

/* When no image, show accent bar */
.front-page-5 .display-posts-listing .listing-item:not(:has(.image)) {
	border-top: 3px solid;
	border-image: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green)) 1;
}

.front-page-5 .display-posts-listing .title,
.cw-posts-grid .title {
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 1.1rem;
	color: var(--cw-deep-green);
	display: block;
	padding: 1.25rem 1.5rem 0.5rem;
	line-height: 1.35;
	text-decoration: none;
}

.front-page-5 .display-posts-listing .title:hover,
.cw-posts-grid .title:hover {
	color: var(--cw-emerald);
}

/* Hide the dash between title and excerpt */
.front-page-5 .display-posts-listing .excerpt-dash,
.cw-posts-grid .excerpt-dash {
	display: none;
}

.front-page-5 .display-posts-listing .excerpt,
.cw-posts-grid .excerpt {
	color: var(--cw-muted);
	font-size: 0.92rem;
	line-height: 1.6;
	display: block;
	padding: 0 1.5rem 0.75rem;
}

.front-page-5 .display-posts-listing .date {
	padding: 0 1.5rem 1.25rem;
	font-size: 0.78rem;
	color: #999;
	font-family: var(--cw-font-ui);
	margin-top: auto;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

@media (max-width: 860px) {
	.front-page-5 .display-posts-listing,
	.cw-posts-grid {
		grid-template-columns: 1fr;
		max-width: 480px;
		margin-left: auto;
		margin-right: auto;
	}
}


/* ==========================================================================
   11. HOMEPAGE — Section 6 (Newsletter CTA)
   ========================================================================== */

.front-page-6 {
	background: linear-gradient(180deg, var(--cw-deep-green) 0%, var(--cw-dark-green) 100%);
	padding: clamp(4rem, 8vw, 7rem) 0;
	text-align: center;
}

.front-page-6 .wrap {
	max-width: 640px;
}

.front-page-6 h2,
.front-page-6 .widget-title {
	color: var(--cw-white);
	font-size: clamp(1.75rem, 3.5vw, 2.25rem) !important;
}

.front-page-6 p,
.front-page-6 .textwidget {
	color: rgba(232, 240, 236, 0.7);
	font-size: 1.05rem;
	line-height: 1.7;
}

.front-page-6 input[type="text"],
.front-page-6 input[type="email"],
.front-page-6 textarea,
.front-page-6 select {
	background: rgba(255, 255, 255, 0.08);
	border: 1.5px solid rgba(255, 255, 255, 0.15);
	border-radius: var(--cw-radius);
	color: var(--cw-white);
	padding: 14px 18px;
	font-size: 1rem;
}

.front-page-6 input::placeholder,
.front-page-6 textarea::placeholder {
	color: rgba(232, 240, 236, 0.65);
}

.front-page-6 input:focus,
.front-page-6 textarea:focus {
	border-color: var(--cw-emerald);
	background: rgba(255, 255, 255, 0.12);
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.15);
}

.front-page-6 .gfield_label {
	color: var(--cw-light-text);
}


/* ==========================================================================
   12. BEFORE-FOOTER — CTA Band (Consolidated from Sections 12, 37, 76j, 79b, 90x6)
   ========================================================================== */

.before-footer {
	background: radial-gradient(ellipse at 50% 0%, rgba(76, 175, 130, 0.08) 0%, transparent 60%),
	            radial-gradient(ellipse at 20% 100%, rgba(92, 219, 149, 0.04) 0%, transparent 40%),
	            var(--cw-deep-green) !important;
	position: relative;
	padding: 5rem 0 !important;
	text-align: center;
	overflow: hidden;
	border-bottom: none !important;
}

/* Before-footer ::before — reset to transparent (motion texture handled by JS canvas) */
.before-footer::before,
.before-footer:before {
	content: '' !important;
	display: block !important;
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

/* Canvas dot mesh overlay */
.cw-motion-texture {
	position: absolute !important;
	inset: 0 !important;
	z-index: 0 !important;
	pointer-events: none !important;
	opacity: 1;
}

/* Animated border glow on CTA section */
.before-footer::after {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: 20% !important;
	right: 20% !important;
	height: 1px !important;
	background: linear-gradient(90deg, transparent, rgba(76, 175, 130, 0.4), transparent) !important;
	animation: cw-glow-pulse 3s ease-in-out infinite !important;
}

.before-footer .wrap {
	max-width: 1200px;
	position: relative;
	z-index: 1;
}

.before-footer .widget-wrap {
	position: relative;
	z-index: 1;
}

.before-footer .widget {
	max-width: 700px;
	margin: 0 auto;
}

/* Hide the old wallpaper image widget */
.before-footer .widget_media_image {
	display: none !important;
}

.before-footer .widgettitle,
.before-footer .widget-title {
	color: var(--cw-white);
	font-family: var(--cw-font-heading);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	margin-bottom: 0.75rem;
}

.before-footer h2,
.before-footer h3 {
	font-family: var(--cw-font-heading) !important;
	font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
	font-weight: 700 !important;
	color: var(--cw-white) !important;
	letter-spacing: -0.02em !important;
	line-height: 1.2 !important;
	text-align: center;
	margin-bottom: 0.75rem;
}

.before-footer p {
	text-align: center;
	color: rgba(232, 240, 236, 0.65) !important;
	font-size: 1.1rem;
	line-height: 1.7;
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}

/* Override any page-header background image in before-footer */
.before-footer .page-header-image,
.before-footer .page-header-background {
	display: none !important;
}

.before-footer .button {
	margin-top: 0.5rem;
}

.before-footer .cw-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

/* Style the inline CTA button */
.before-footer a[style*="background:#4CAF82"],
.before-footer a[style*="background: #4CAF82"] {
	border-radius: 50px !important;
	box-shadow: 0 4px 20px rgba(76, 175, 130, 0.3);
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.before-footer a[style*="background:#4CAF82"]:hover,
.before-footer a[style*="background: #4CAF82"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.4);
}

/* Animated gradient border on CTA button */
.before-footer .cw-btn-primary {
	position: relative;
	overflow: hidden;
}

.before-footer .cw-btn-primary::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 200%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
	transition: left 0.5s ease;
}

.before-footer .cw-btn-primary:hover::before {
	left: 100%;
}


/* ==========================================================================
   13. FOOTER
   ========================================================================== */

.site-footer {
	background-color: var(--cw-dark-green);
	color: rgba(232, 240, 236, 0.7);
	font-family: var(--cw-font-ui);
	font-size: 0.875rem;
	border-top: none;
	padding: 0;
}

.footer-widgets {
	background-color: var(--cw-dark-green);
	padding: clamp(3rem, 6vw, 4.5rem) 0;
	border-top: 1px solid rgba(76, 175, 130, 0.1);
}

.footer-widgets .wrap {
	max-width: 1100px;
}

/* 3-column footer grid */
.footer-widgets > .wrap > .wrap,
#genesis-footer-widgets > .wrap {
	display: grid !important;
	grid-template-columns: 0.8fr 1.2fr 1fr;
	gap: clamp(2rem, 4vw, 3rem);
	align-items: start;
}

/* Kill Genesis clearfix pseudo-elements that break grid layout */
#genesis-footer-widgets > .wrap::before,
#genesis-footer-widgets > .wrap::after {
	display: none !important;
	content: none !important;
}

.footer-widgets .footer-widget-area,
.footer-widgets .one-fourth,
.footer-widgets .one-third,
.footer-widgets .one-half {
	width: 100% !important;
	float: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Hide screen reader title within grid */
.footer-widgets .genesis-sidebar-title {
	grid-column: 1 / -1;
}

@media (max-width: 768px) {
	.footer-widgets > .wrap > .wrap,
	#genesis-footer-widgets > .wrap {
		grid-template-columns: 1fr;
		gap: 2rem;
		text-align: center;
	}

	.footer-widgets .simple-social-icons ul {
		justify-content: center;
		display: flex;
		flex-wrap: wrap;
	}

	/* Center align Quick Links on mobile */
	.footer-widgets .menu {
		text-align: center;
	}
}

.footer-widgets .widget-title,
.footer-widgets .widgettitle {
	color: var(--cw-white) !important;
	font-family: var(--cw-font-ui) !important;
	font-size: 0.8125rem !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 1.25rem;
}

.footer-widgets p,
.footer-widgets .textwidget {
	color: rgba(232, 240, 236, 0.6);
	font-size: 0.875rem;
	line-height: 1.7;
}

.footer-widgets a {
	color: rgba(232, 240, 236, 0.7);
	transition: color var(--cw-transition);
}

.footer-widgets a:hover {
	color: var(--cw-emerald);
}

/* Footer nav links */
.footer-widgets .menu a,
.footer-widgets .menu li a {
	padding: 4px 0 !important;
	display: block;
	font-size: 0.875rem;
	color: rgba(232, 240, 236, 0.65);
}

.footer-widgets .menu a:hover {
	color: var(--cw-emerald);
}

/* Show sub-menu items inline in footer (not hidden dropdown) */
.footer-widgets .menu .sub-menu {
	display: block;
	padding-left: 0;
	margin: 0;
	list-style: none;
}

/* Hide parent "Work With Me" link since children are shown */
.footer-widgets .menu .menu-item-has-children > a[href="#"] {
	display: none;
}

/* Social icons in footer */
.footer-widgets .simple-social-icons ul {
	margin: 0;
	padding: 0;
}

.footer-widgets .simple-social-icons ul li {
	margin: 0 6px 6px 0;
}

.footer-widgets .simple-social-icons ul li a,
.footer-widgets .simple-social-icons ul li a:hover,
#simple-social-icons-3 ul li a,
#simple-social-icons-3 ul li a:hover {
	background-color: rgba(76, 175, 130, 0.12) !important;
	border: 1px solid rgba(76, 175, 130, 0.2) !important;
	border-radius: 50% !important;
	color: var(--cw-emerald) !important;
	font-size: 16px !important;
	padding: 8px !important;
	transition: all var(--cw-transition) !important;
}

.footer-widgets .simple-social-icons ul li a:hover,
#simple-social-icons-3 ul li a:hover {
	background-color: var(--cw-emerald) !important;
	color: var(--cw-white) !important;
	border-color: var(--cw-emerald) !important;
	transform: translateY(-2px);
}

/* Credits bar — scoped to .creds only */
.site-footer .creds {
	padding: 1.5rem 0;
	border-top: 1px solid rgba(76, 175, 130, 0.08);
	text-align: center;
}

.site-footer .creds p {
	color: rgba(232, 240, 236, 0.7);
	font-size: 0.8125rem;
	margin: 0;
	font-family: var(--cw-font-ui);
}

/* Footer widget areas — left-aligned text */
.site-footer .footer-widgets {
	text-align: left;
}

.site-footer .creds a {
	color: rgba(232, 240, 236, 0.7);
}

.site-footer .creds a:hover {
	color: var(--cw-emerald);
}

/* Footer contact link */
.footer-widgets a[href="/contact"] {
	font-size: 0.8125rem !important;
	color: rgba(232, 240, 236, 0.6);
	transition: color var(--cw-transition);
}
.footer-widgets a[href="/contact"]:hover {
	color: var(--cw-emerald);
}


/* ==========================================================================
   14. BLOG LAYOUT
   ========================================================================== */

/* Blog page header — dark gradient with grid pattern (consolidated from Section 78f) */
.blog .page-header,
.archive .page-header,
.category .page-header,
.search .page-header,
.cw-blog-header {
	background: linear-gradient(160deg, #1A2E28 0%, #142420 100%) !important;
	padding: calc(clamp(3rem, 6vw, 5rem) + 70px) 0 clamp(2rem, 4vw, 3rem) !important;
	min-height: auto !important;
	position: relative;
	overflow: hidden;
}

.blog .page-header::before,
.archive .page-header::before,
.cw-blog-header::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(76, 175, 130, 0.015) 1px, transparent 1px),
		linear-gradient(90deg, rgba(76, 175, 130, 0.015) 1px, transparent 1px);
	background-size: 60px 60px;
	pointer-events: none;
}

.blog .page-header .entry-title,
.blog .page-header h1,
.cw-blog-header .entry-title,
.cw-blog-header h1,
.archive .page-header .entry-title,
.archive .page-header h1,
.category .page-header h1 {
	color: #fff !important;
	font-family: var(--cw-font-heading) !important;
	font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
	font-weight: 800 !important;
	letter-spacing: -0.02em !important;
	text-align: center !important;
	margin-bottom: 0.25em;
}

.blog .page-header p,
.archive .page-header p {
	color: rgba(232, 240, 236, 0.6);
	font-size: 1rem;
}

/* Force full-width on blog */
.blog .content-sidebar-wrap,
.archive .content-sidebar-wrap,
.category .content-sidebar-wrap {
	max-width: 1400px !important;
	margin: 0 auto;
	padding: 0 clamp(1.5rem, 4vw, 3rem);
}

.blog .content,
.archive .content,
.category .content {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	padding: 0.5rem 0 3rem;
}

/* Hide sidebar on blog */
.blog .sidebar {
	display: none;
}

/* Blog grid — 3-col on desktop, responsive down */
.cw-blog-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem;
	margin: 1.5rem 0 0;
}

/* Blog cards */
.cw-blog-card {
	background: var(--cw-white);
	border-radius: var(--cw-radius-xl) !important;
	border: 1px solid var(--cw-border);
	padding: 0 !important;
	margin-bottom: 0 !important;
	border-bottom: none !important;
	overflow: hidden;
	transition: all var(--cw-transition);
	display: flex;
	flex-direction: column;
	width: 100% !important;
	min-width: 0;
	justify-self: stretch;
}

.cw-blog-card:hover {
	box-shadow: var(--cw-shadow-lg);
	transform: translateY(-4px);
	border-color: rgba(76, 175, 130, 0.15);
}

/* Blog card image — use natural 1200x630 aspect ratio */
.cw-blog-card .entry-image-link {
	display: block;
	margin: 0 !important;
	border-radius: 0;
	overflow: hidden;
	aspect-ratio: 1200 / 630;
	background: var(--cw-light-surface);
}

.cw-blog-card .entry-image-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transition: transform 0.5s var(--cw-ease-out);
}

.cw-blog-card:hover .entry-image-link img {
	transform: scale(1.03);
}

/* Blog card content area (consolidated from Sections 78f, 79k) */
.cw-blog-card .entry-header,
.cw-blog-card .entry-footer {
	padding: 0 1.75rem;
}

.cw-blog-card .entry-content {
	padding: 0 1.25rem;
	flex: 1;
}

.cw-blog-card .entry-header {
	padding: 1rem 1.25rem 0;
}

/* Blog card meta — move to bottom, small, paired with category */
.cw-blog-card > .entry-meta {
	font-family: var(--cw-font-ui);
	font-size: 0;                /* Hide raw text like "BY" */
	color: var(--cw-muted);
	order: 10;                   /* Push to bottom of flex column */
	padding: 0 1.25rem;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	flex-wrap: wrap;
}

/* Date — small, muted */
.cw-blog-card > .entry-meta time {
	font-size: 0.7rem;
	color: var(--cw-muted);
	font-weight: 400;
	opacity: 0.7;
}

/* Read time — small highlighted badge */
.cw-blog-card > .entry-meta .cw-read-time {
	font-size: 0.65rem;
	font-weight: 600;
	color: var(--cw-emerald);
	background: rgba(76, 175, 130, 0.08);
	padding: 2px 8px;
	border-radius: 100px;
	letter-spacing: 0.02em;
}

.cw-blog-card > .entry-meta .cw-read-time::before {
	display: none; /* Remove the dot separator */
}

.cw-blog-card > .entry-meta .entry-author {
	display: none;
}

/* Hide comment count on cards */
.cw-blog-card .entry-meta .entry-comments-link {
	display: none;
}

/* Hide admin edit links everywhere */
.cw-blog-card .post-edit-link,
.entry-edit-link,
.post-edit-link {
	display: none !important;
}

/* Blog card title — padded, balanced with excerpt */
.cw-blog-card .entry-title {
	font-size: 1.1rem !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	color: var(--cw-deep-green) !important;
	margin: 0 0 0.6rem !important;
	padding: 1rem 1.25rem 0 !important;
	letter-spacing: -0.015em;
}

.cw-blog-card .entry-title a {
	color: inherit !important;
	text-decoration: none;
}

.cw-blog-card .entry-title a:hover {
	color: var(--cw-emerald) !important;
}

/* Blog card excerpt — smaller than title for clear hierarchy */
.cw-blog-card .entry-content p {
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: 0.88rem !important;
	color: var(--cw-muted) !important;
	line-height: 1.6 !important;
	margin-bottom: 0.75rem;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Blog card footer — anchored to bottom with date + category */
.cw-blog-card .entry-footer {
	padding: 0.75rem 1.25rem 1rem;
	margin-top: auto;
	border-top: 1px solid var(--cw-border);
}

.cw-blog-card .entry-footer .entry-meta {
	font-size: 0;  /* Hide "FILED UNDER:" text */
	padding: 0;
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

/* Hide tags on cards, just show category */
.cw-blog-card .entry-tags {
	display: none;
}

/* Category as a branded chip */
.cw-blog-card .entry-footer .entry-meta a,
.cw-blog-card .entry-categories a {
	font-size: 0.68rem !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cw-emerald) !important;
	background: rgba(76, 175, 130, 0.08);
	padding: 0.25rem 0.65rem;
	border-radius: 100px;
	text-decoration: none !important;
	display: inline-block;
}

.cw-blog-card .entry-footer .entry-meta a:hover,
.cw-blog-card .entry-categories a:hover {
	background: rgba(76, 175, 130, 0.15);
	color: var(--cw-deep-green) !important;
}

/* Responsive blog grid */
@media (max-width: 960px) {
	.cw-blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.cw-blog-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}


/* ==========================================================================
   15. SINGLE POST
   ========================================================================== */

.single .content {
	padding-top: 3rem;
	padding-bottom: 4rem;
}

.single .entry {
	max-width: 760px;
	margin: 0 auto;
	padding-bottom: 2rem;
	border-bottom: none;
}

.single .entry-content p {
	font-size: var(--cw-text-base);
	line-height: 1.85;
	color: #374151;
}

.single .entry-content img {
	border-radius: var(--cw-radius-lg);
	margin: 2.5rem 0;
	box-shadow: var(--cw-shadow);
}

.single .entry-content h2 {
	margin-top: 3rem;
	padding-top: 1rem;
}

.single .entry-content h3 {
	margin-top: 2rem;
}

.single .entry-content blockquote {
	margin: 2.5rem 0;
	padding: 1.5rem 2rem;
	font-size: 1.1rem;
	border-left-width: 4px;
}

.single .entry-content ul,
.single .entry-content ol {
	margin-bottom: 1.5rem;
	padding-left: 1.5rem;
}

.single .entry-content li {
	margin-bottom: 0.4rem;
}

/* Author/date meta on single post */
.single .entry-header .entry-meta {
	font-size: 0.85rem;
	color: var(--cw-muted);
	margin-bottom: 1rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--cw-border);
}

.single .entry-footer .entry-meta {
	border-top: 1px solid var(--cw-border);
	padding-top: 1.5rem;
	margin-top: 2rem;
}


/* ==========================================================================
   16. CONTENT AREA (General)
   ========================================================================== */

.content {
	padding-top: 3rem;
	padding-bottom: 4rem;
}

.entry {
	margin-bottom: 2rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--cw-border);
}

.entry:last-of-type {
	border-bottom: none;
}

.entry-title a {
	color: var(--cw-dark-text);
}

.entry-title a:hover {
	color: var(--cw-emerald);
}

.entry-meta {
	font-family: var(--cw-font-ui);
	font-size: 0.85rem;
	color: var(--cw-muted);
}

.entry-meta a {
	color: var(--cw-muted);
}

.entry-meta a:hover {
	color: var(--cw-emerald);
}

/* Entry images */
.entry-image-link {
	border-radius: var(--cw-radius-lg);
	overflow: hidden;
	display: block;
	margin-bottom: 1.5rem;
}

.entry-image-link img {
	transition: transform 0.5s var(--cw-ease-out);
}

.entry-image-link:hover img {
	transform: scale(1.03);
}


/* ==========================================================================
   17. SIDEBAR
   ========================================================================== */

.sidebar .widget {
	background: var(--cw-light-surface);
	padding: 1.75rem;
	border-radius: var(--cw-radius-xl);
	margin-bottom: 1.75rem;
	border: 1px solid var(--cw-border);
}

.sidebar .widget-title {
	font-size: 0.875rem !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cw-deep-green);
	padding-bottom: 0.75rem;
	margin-bottom: 1.25rem;
	border-bottom: 2px solid var(--cw-emerald);
}


/* ==========================================================================
   18. FORMS (Gravity Forms)
   ========================================================================== */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="password"],
input[type="search"],
textarea,
select {
	font-family: var(--cw-font-body);
	font-size: 1rem;
	padding: 14px 18px;
	border: 1.5px solid var(--cw-border);
	border-radius: var(--cw-radius-lg);
	background: var(--cw-white);
	color: var(--cw-dark-text);
	transition: border-color var(--cw-transition), box-shadow var(--cw-transition);
	width: 100%;
}

input:focus,
textarea:focus,
select:focus {
	border-color: var(--cw-emerald);
	outline: none;
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.12);
}

.gform_wrapper .gform_title {
	display: none;
}

.gform_wrapper .gfield_label {
	font-family: var(--cw-font-ui);
	font-weight: 600;
	font-size: 0.875rem;
	color: var(--cw-dark-text);
	margin-bottom: 0.5rem;
}

.gform_wrapper input[type="submit"],
.gform_wrapper .gform_button {
	background-color: var(--cw-emerald);
	color: var(--cw-white);
	font-family: var(--cw-font-ui);
	font-weight: 600;
	padding: 14px 36px;
	border: 2px solid var(--cw-emerald);
	border-radius: var(--cw-radius-pill);
	cursor: pointer;
	transition: all var(--cw-transition);
	font-size: 0.9375rem;
}

.gform_wrapper input[type="submit"]:hover,
.gform_wrapper .gform_button:hover {
	background-color: var(--cw-bright-green);
	color: var(--cw-deep-green);
	border-color: var(--cw-bright-green);
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(76, 175, 130, 0.3);
}


/* ==========================================================================
   19. CONTACT PAGE
   ========================================================================== */

/* Contact page — full-width content area */
.page-id-1491 .content {
	padding-top: 0;
}

.page-id-1491 .entry {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

/* Contact headshot in sidebar column */
.page-id-1491 .cw-headshot {
	border-radius: var(--cw-radius-xl);
	box-shadow: var(--cw-shadow-lg);
	border: 2px solid var(--cw-border);
}

/* Contact trust signal */
.page-id-1491 blockquote {
	background: var(--cw-light-surface);
	border-left: 3px solid var(--cw-emerald);
	border-radius: 0 var(--cw-radius-lg) var(--cw-radius-lg) 0;
	padding: 1.25rem 1.5rem;
	margin-top: 1.5rem;
	font-size: 0.95rem;
}

/* Form container on contact page — single clean surface, no double-boxing */
.page-id-1491 .gform_wrapper {
	background: transparent;
	padding: 0;
	border-radius: 0;
	border: none;
	box-shadow: none;
}

/* If the form is inside a card/container, style that container instead */
.page-id-1491 .entry-content > .gform_wrapper,
.page-id-1491 .cw-contain .gform_wrapper {
	background: var(--cw-light-surface);
	padding: 2rem;
	border-radius: var(--cw-radius-xl);
	border: 1px solid var(--cw-border);
}

/* Prevent nested backgrounds inside form wrapper */
.page-id-1491 .gform_wrapper .gform_body {
	background: transparent;
}

.page-id-1491 .gform_wrapper .gfield {
	background: transparent;
	border: none;
	box-shadow: none;
}

/* Contact page split layout responsive */
@media (max-width: 768px) {
	.cw-contain[style*="grid-template-columns: 1fr 1.2fr"] {
		display: block;
	}

	.page-id-1491 .cw-contain {
		display: block;
	}

	.page-id-1491 .cw-contain > div:first-child {
		margin-bottom: 2.5rem;
	}

	.page-id-1491 .gform_wrapper {
		padding: 1.5rem;
	}
}

/* Inquiry selector buttons */
.cw-inquiry-selector {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 0.625rem;
	margin-bottom: 2rem;
}

.cw-inquiry-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	padding: 1.25rem 1rem;
	background: var(--cw-light-surface);
	border: 2px solid var(--cw-border);
	border-radius: var(--cw-radius-xl);
	color: var(--cw-dark-text);
	font-family: var(--cw-font-ui);
	font-size: 0.8125rem;
	font-weight: 600;
	cursor: pointer;
	transition: all var(--cw-transition);
	text-align: center;
	line-height: 1.3;
}

.cw-inquiry-btn:hover {
	border-color: var(--cw-emerald);
	background: var(--cw-white);
	box-shadow: var(--cw-shadow);
	transform: translateY(-2px);
}

.cw-inquiry-btn.active {
	border-color: var(--cw-emerald);
	background: rgba(76, 175, 130, 0.06);
	box-shadow: 0 0 0 2px rgba(76, 175, 130, 0.15);
	color: var(--cw-emerald);
}

.cw-inquiry-icon {
	font-size: 1.5rem;
	line-height: 1;
}


/* ==========================================================================
   20. PAGINATION
   ========================================================================== */

.archive-pagination {
	margin-top: 2rem;
	text-align: center;
	grid-column: 1 / -1; /* Span full width of grid */
}

.archive-pagination a,
.archive-pagination .active a {
	font-family: var(--cw-font-ui);
	font-weight: 600;
	border-radius: var(--cw-radius);
	padding: 8px 14px;
	font-size: 0.875rem;
}

.archive-pagination a:hover,
.archive-pagination .active a {
	background-color: var(--cw-emerald);
	color: var(--cw-white);
}


/* ==========================================================================
   21. SOCIAL ICONS (Override plugin inline styles)
   ========================================================================== */

.simple-social-icons ul li a {
	background-color: rgba(76, 175, 130, 0.12) !important;
	border: 1px solid rgba(76, 175, 130, 0.2) !important;
	border-radius: 50% !important;
	color: var(--cw-emerald) !important;
	transition: all var(--cw-transition) !important;
}

.simple-social-icons ul li a:hover {
	background-color: var(--cw-emerald) !important;
	color: var(--cw-white) !important;
	border-color: var(--cw-emerald) !important;
}

/* Override all plugin inline styles for social icons */
.simple-social-icons ul li a svg {
	fill: currentColor !important;
}


/* ==========================================================================
   22. RESPONSIVE
   ========================================================================== */

/* Responsive mobile menu */
.genesis-responsive-menu .genesis-nav-menu {
	background: var(--cw-deep-green);
}

.genesis-responsive-menu .genesis-nav-menu a {
	color: rgba(232, 240, 236, 0.85) !important;
	border-bottom: 1px solid rgba(76, 175, 130, 0.08);
	padding: 14px 20px !important;
}

.genesis-responsive-menu .genesis-nav-menu a:hover {
	color: var(--cw-emerald) !important;
	background: rgba(76, 175, 130, 0.06);
}

/* ── Modern Hamburger Toggle ── */
.menu-toggle {
	background: rgba(255, 255, 255, 0.06) !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
	border-radius: var(--cw-radius) !important;
	padding: 0 !important;
	width: 44px !important;
	height: 44px !important;
	align-items: center !important;
	justify-content: center !important;
	position: absolute !important;
	right: clamp(1rem, 4vw, 1.5rem) !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	z-index: 999 !important;
	color: transparent !important;
	font-size: 0 !important;
	letter-spacing: 0 !important;
	line-height: 0 !important;
	cursor: pointer;
	transition: background 0.25s ease, border-color 0.25s ease !important;
}

@media (max-width: 960px) {
	.menu-toggle {
		display: flex !important;
	}
}

.menu-toggle:hover,
.menu-toggle:focus-visible {
	background: rgba(76, 175, 130, 0.1) !important;
	border-color: rgba(76, 175, 130, 0.3) !important;
	outline: none !important;
}

.menu-toggle span {
	display: block !important;
	width: 20px !important;
	height: 2px !important;
	background: var(--cw-white) !important;
	border-radius: 1px !important;
	position: relative !important;
	float: none !important;
	margin: 0 !important;
	transition: background 0s 0.15s !important;
}

.menu-toggle span::before,
.menu-toggle span::after {
	content: '' !important;
	display: block !important;
	position: absolute !important;
	left: 0 !important;
	width: 100% !important;
	height: 2px !important;
	background: var(--cw-white) !important;
	border-radius: 1px !important;
}

.menu-toggle span::before {
	top: -6px !important;
	transition: top 0.15s 0.15s ease, transform 0.15s 0s ease !important;
}

.menu-toggle span::after {
	bottom: -6px !important;
	transition: bottom 0.15s 0.15s ease, transform 0.15s 0s ease !important;
}

/* Activated → X */
.menu-toggle.activated {
	position: fixed !important;
	background: rgba(76, 175, 130, 0.1) !important;
	border-color: rgba(76, 175, 130, 0.25) !important;
}

.menu-toggle.activated span {
	background: transparent !important;
}

.menu-toggle.activated span::before {
	top: 0 !important;
	transform: rotate(45deg) !important;
	transition: top 0.15s 0s ease, transform 0.15s 0.15s ease !important;
}

.menu-toggle.activated span::after {
	bottom: 0 !important;
	transform: rotate(-45deg) !important;
	transition: bottom 0.15s 0s ease, transform 0.15s 0.15s ease !important;
}

.sub-menu-toggle {
	background: transparent !important;
	color: var(--cw-emerald) !important;
	border: none !important;
	padding: 12px !important;
}

@media (max-width: 896px) {
	body,
	.site-container {
		font-size: 16px !important;
	}

	h1, .entry-title { font-size: 2rem !important; }
	h2 { font-size: 1.6rem !important; }

	.page-header {
		padding: 6rem 0 2rem;
	}

	.page-header h1,
	.page-header .entry-title {
		font-size: 1.75rem !important;
	}

	.front-page-2 .widget:nth-child(2),
	.front-page-2 .widget:nth-child(3),
	.front-page-4 .widget:nth-child(2),
	.front-page-4 .widget:nth-child(3) {
		flex: 0 0 100%;
	}
}

/* REMOVED: was hiding hero photo on mobile — now handled by consolidated block */

@media (max-width: 512px) {
	h1, .entry-title { font-size: 1.75rem !important; }
	h2 { font-size: 1.4rem !important; }

	.front-page-1 h1 {
		font-size: 2rem !important;
	}

	.cw-inquiry-selector {
		grid-template-columns: repeat(2, 1fr);
	}
}


/* ==========================================================================
   23. GENESIS OVERRIDES & CLEANUP
   ========================================================================== */

.genesis-nav-menu .sub-menu {
	border-top: none;
}

/* .site-header.fixed — consolidated in section 3 above */

.front-page-1.page-header {
	background-image: none !important;
}

.author-box {
	background: var(--cw-light-surface);
	border-radius: var(--cw-radius-xl);
	padding: 2rem;
	border: 1px solid var(--cw-border);
}

/* ---------- Comment Form — Premium Styling ---------- */
.comment-respond {
	background: var(--cw-light-surface);
	border-radius: var(--cw-radius-xl);
	padding: clamp(2rem, 4vw, 3rem);
	border: 1px solid var(--cw-border);
	margin-top: 3rem;
}

.comment-respond .comment-reply-title {
	font-family: var(--cw-font-heading);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--cw-dark-text);
	margin-bottom: 1.5rem;
}

.comment-form label {
	font-family: var(--cw-font-ui);
	font-size: 0.8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cw-muted);
	display: block;
	margin-bottom: 0.5rem;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	border: none;
	border-bottom: 2px solid rgba(26, 46, 40, 0.15);
	border-radius: 0;
	background: transparent;
	padding: 0.75rem 0;
	font-family: var(--cw-font-body);
	font-size: 1rem;
	color: var(--cw-dark-text);
	transition: border-color 0.3s ease;
	box-sizing: border-box;
}

.comment-form input[type="text"]:focus,
.comment-form input[type="email"]:focus,
.comment-form input[type="url"]:focus,
.comment-form textarea:focus {
	outline: none;
	border-bottom-color: var(--cw-emerald);
	box-shadow: none;
}

.comment-form textarea {
	min-height: 150px;
	resize: vertical;
}

.comment-form p {
	margin-bottom: 1.25rem;
}

.comment-respond input[type="submit"] {
	background: linear-gradient(135deg, var(--cw-emerald) 0%, var(--cw-bright-green) 100%);
	color: var(--cw-white);
	border: none;
	border-radius: var(--cw-radius-pill);
	padding: 1rem 2.5rem;
	font-family: var(--cw-font-ui);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.comment-respond input[type="submit"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(76, 175, 130, 0.3);
}

.search-form input[type="search"] {
	border-color: var(--cw-border);
}

.search-form input[type="submit"] {
	background-color: var(--cw-emerald);
	color: var(--cw-white);
}

/* Remove old page header background images on all pages */
.page-header {
	background-image: none !important;
}


/* ==========================================================================
   24. UTILITY CLASSES
   ========================================================================== */

.cw-badge {
	display: inline-block;
	font-family: var(--cw-font-ui);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--cw-emerald);
	border: 1.5px solid var(--cw-emerald);
	padding: 5px 14px;
	border-radius: 100px;
	margin-bottom: 1rem;
}

.cw-section-label {
	display: inline-block;
	font-family: var(--cw-font-ui);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--cw-emerald-on-light); /* WCAG AA: 5.30:1 — was emerald 2.71:1 */
	margin-bottom: 0.75rem;
}

/* Inside dark sections, restore brighter emerald for label visibility */
.cw-section-dark .cw-section-label,
.front-page-1 .cw-section-label,
.cw-section[class*="dark"] .cw-section-label {
	color: var(--cw-bright-green);
}

.cw-text-center {
	text-align: center;
}

.cw-dark-section {
	background-color: var(--cw-deep-green);
	color: var(--cw-light-text);
}

.cw-dark-section h2,
.cw-dark-section h3,
.cw-dark-section .widget-title {
	color: var(--cw-white);
}


/* ==========================================================================
   25. COMPONENT LIBRARY — Landing Page System
   ========================================================================== */

/* Section wrappers */
.cw-section {
	width: 100%;
	padding: clamp(3.5rem, 8vw, 7rem) clamp(1.25rem, 5%, 2.5rem);
}

.cw-section-dark {
	background: var(--cw-deep-green);
	color: var(--cw-light-text);
}

.cw-section-dark h1,
.cw-section-dark h2,
.cw-section-dark h3,
.cw-section-dark h4 { color: var(--cw-white); }
.cw-section-dark p { color: var(--cw-light-text); }

.cw-section-light {
	background: var(--cw-white);
	color: var(--cw-dark-text);
}

.cw-section-gray {
	background: var(--cw-light-surface);
	color: var(--cw-dark-text);
}

.cw-section-gradient {
	background: linear-gradient(180deg, var(--cw-deep-green) 0%, var(--cw-dark-green) 100%);
	color: var(--cw-light-text);
}

.cw-section-gradient h1,
.cw-section-gradient h2,
.cw-section-gradient h3,
.cw-section-gradient h4 { color: var(--cw-white); }

/* Containers */
.cw-contain {
	max-width: var(--cw-container);
	margin: 0 auto;
	width: 100%;
}

.cw-contain-narrow {
	max-width: 800px;
	margin: 0 auto;
	width: 100%;
}

.cw-contain-wide {
	max-width: 1400px;
	margin: 0 auto;
	width: 100%;
}

/* Section typography */
.cw-section-dark .cw-section-label,
.cw-section-gradient .cw-section-label {
	color: var(--cw-bright-green);
}

.cw-section-title {
	font-family: var(--cw-font-heading);
	font-size: clamp(1.75rem, 3.5vw, var(--cw-text-3xl));
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	margin-bottom: 1rem;
}

.cw-section-subtitle {
	font-family: var(--cw-font-body);
	font-size: var(--cw-text-lg);
	line-height: 1.7;
	color: var(--cw-muted);
	max-width: 660px;
}

.cw-section-dark .cw-section-subtitle,
.cw-section-gradient .cw-section-subtitle {
	color: rgba(232, 240, 236, 0.65);
}

.cw-text-center .cw-section-subtitle {
	margin-left: auto;
	margin-right: auto;
}


/* Split Hero */
.cw-hero-split {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	gap: 4rem;
	align-items: center;
	min-height: 60vh;
}

.cw-hero-split .cw-hero-content {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.cw-hero-split .cw-hero-title {
	font-family: var(--cw-font-heading);
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--cw-white);
	margin: 0;
}

.cw-hero-split .cw-hero-text {
	font-size: var(--cw-text-lg);
	line-height: 1.7;
	color: rgba(232, 240, 236, 0.75);
}

.cw-hero-actions {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	margin-top: 0.5rem;
}

.cw-hero-media {
	position: relative;
}

.cw-hero-media .cw-headshot,
.cw-hero-image.cw-headshot {
	border-radius: 24px;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.35);
	border: 3px solid rgba(76, 175, 130, 0.2);
	max-width: 100%;
}

@media (max-width: 768px) {
	.cw-hero-split {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 2rem;
	}

	.cw-hero-actions {
		justify-content: center;
	}

	.cw-hero-media {
		order: -1;
	}

	.cw-hero-media .cw-headshot,
	.cw-hero-image.cw-headshot {
		max-width: 280px;
		margin: 0 auto;
	}
}


/* CW Buttons */
.cw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-family: var(--cw-font-ui);
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
	padding: 14px 32px;
	border-radius: var(--cw-radius-pill);
	transition: all var(--cw-transition);
	cursor: pointer;
	border: 2px solid transparent;
	line-height: 1.2;
	letter-spacing: 0.02em;
}

.cw-btn-primary {
	background: var(--cw-emerald);
	color: var(--cw-white);
	border-color: var(--cw-emerald);
}

.cw-btn-primary:hover {
	background: var(--cw-bright-green);
	border-color: var(--cw-bright-green);
	color: var(--cw-deep-green);
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.3);
}

.cw-btn-ghost {
	background: transparent;
	color: var(--cw-light-text);
	border-color: rgba(232, 240, 236, 0.4);
}

.cw-btn-ghost:hover {
	background: rgba(232, 240, 236, 0.1);
	border-color: var(--cw-light-text);
	color: var(--cw-white);
}

.cw-btn-outline {
	background: transparent;
	color: var(--cw-emerald);
	border-color: var(--cw-emerald);
}

.cw-btn-outline:hover {
	background: var(--cw-emerald);
	color: var(--cw-white);
}


/* Feature Grid */
.cw-feature-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2rem;
	margin-top: 1.5rem;
}

.cw-feature-card {
	background: var(--cw-white);
	border-radius: var(--cw-radius-xl);
	padding: 2.5rem 2.25rem;
	border: 1px solid var(--cw-border);
	border-left: 4px solid var(--cw-emerald);
	transition: all var(--cw-transition);
	text-align: center;
}

.cw-feature-card:nth-child(2) {
	border-left-color: #6366F1;
}

.cw-feature-card:hover {
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.1);
	transform: translateY(-6px);
	border-color: rgba(76, 175, 130, 0.15);
	border-left-width: 4px;
}

.cw-feature-card:nth-child(2):hover {
	border-left-color: #6366F1;
}

.cw-feature-icon {
	font-size: 2rem;
	margin-bottom: 1rem;
}

.cw-feature-card h3 {
	font-family: var(--cw-font-heading);
	font-size: 1.375rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
}

.cw-feature-card p {
	font-size: 1rem;
	line-height: 1.7;
	color: var(--cw-muted);
}

.cw-feature-card ul {
	font-size: 0.95rem;
	color: var(--cw-muted);
	padding-left: 1.25rem;
}

.cw-feature-card ul li {
	padding: 0.2rem 0;
}

.cw-section-dark .cw-feature-card {
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(76, 175, 130, 0.12);
}

.cw-section-dark .cw-feature-card:hover {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(76, 175, 130, 0.25);
}

.cw-section-dark .cw-feature-card h3 {
	color: var(--cw-white);
}

.cw-section-dark .cw-feature-card p {
	color: rgba(232, 240, 236, 0.65);
}


/* Testimonial Grid */
.cw-testimonial-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 2rem;
	margin-top: 1.5rem;
}

.cw-testimonial-card {
	background: var(--cw-white);
	border-radius: var(--cw-radius-xl);
	padding: 2.25rem;
	border: 1px solid var(--cw-border);
	border-left: 4px solid var(--cw-emerald);
	transition: all var(--cw-transition);
}

.cw-testimonial-card:hover {
	box-shadow: var(--cw-shadow);
	transform: translateY(-2px);
}

.cw-testimonial-quote {
	font-size: 1.05rem;
	line-height: 1.75;
	font-style: italic;
	margin-bottom: 1.5rem;
	color: var(--cw-dark-text);
}

.cw-testimonial-author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.cw-testimonial-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--cw-emerald);
	color: var(--cw-white);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--cw-font-heading);
	font-weight: 700;
	font-size: 0.875rem;
}

.cw-testimonial-name {
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 0.9375rem;
	display: block;
}

.cw-testimonial-role {
	font-size: 0.8125rem;
	color: var(--cw-muted);
	display: block;
}


/* ══════════════════════════════════════════════════
   Process Timeline — Premium horizontal steps with animated connectors
   GSAP handles reveal; CSS handles visual design.
   ══════════════════════════════════════════════════ */
.cw-process-timeline {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	position: relative;
	margin-top: 2.5rem;
	counter-reset: process-step;
}

/* Animated connector track behind steps */
.cw-process-timeline::before {
	content: '';
	position: absolute;
	top: 32px;
	left: 12.5%;
	right: 12.5%;
	height: 2px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(76, 175, 130, 0.12) 10%,
		rgba(76, 175, 130, 0.3) 50%,
		rgba(76, 175, 130, 0.12) 90%,
		transparent 100%);
	z-index: 0;
}

/* Animated glow pulse on the connector */
.cw-process-timeline::after {
	content: '';
	position: absolute;
	top: 30px;
	left: 12.5%;
	right: 12.5%;
	height: 6px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(76, 175, 130, 0) 20%,
		rgba(76, 175, 130, 0.15) 50%,
		rgba(76, 175, 130, 0) 80%,
		transparent 100%);
	filter: blur(4px);
	z-index: 0;
	animation: processLineGlow 3s ease-in-out infinite;
}

@keyframes processLineGlow {
	0%, 100% { opacity: 0.4; }
	50% { opacity: 1; }
}

.cw-process-step {
	text-align: center;
	position: relative;
	z-index: 1;
	padding: 0 1.25rem;
	/* Initial hidden state — GSAP animates in */
	opacity: 0;
	transform: translateY(30px);
}

.cw-process-step.cw-revealed {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-process-number {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--cw-deep-green, #1A2E28);
	border: 2px solid var(--cw-emerald, #4CAF82);
	color: var(--cw-bright-green, #5CDB95);
	font-family: var(--cw-font-heading);
	font-weight: 800;
	font-size: 1.2rem;
	margin: 0 auto 1.5rem;
	position: relative;
	box-shadow:
		0 0 0 6px rgba(76, 175, 130, 0.06),
		0 0 24px rgba(76, 175, 130, 0.15);
	transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Subtle outer pulse ring */
.cw-process-number::before {
	content: '';
	position: absolute;
	inset: -8px;
	border-radius: 50%;
	border: 1px solid rgba(76, 175, 130, 0.12);
	animation: processNodePulse 3s ease-in-out infinite;
	animation-delay: var(--step-delay, 0s);
}

@keyframes processNodePulse {
	0%, 100% { transform: scale(1); opacity: 0.5; }
	50% { transform: scale(1.1); opacity: 0; }
}

.cw-process-step:nth-child(1) { --step-delay: 0s; }
.cw-process-step:nth-child(2) { --step-delay: 0.75s; }
.cw-process-step:nth-child(3) { --step-delay: 1.5s; }
.cw-process-step:nth-child(4) { --step-delay: 2.25s; }

.cw-process-step:hover .cw-process-number {
	box-shadow:
		0 0 0 8px rgba(76, 175, 130, 0.1),
		0 0 40px rgba(76, 175, 130, 0.3);
	transform: scale(1.08);
	border-color: var(--cw-bright-green, #5CDB95);
}

/* Dark section variant */
.cw-section-dark .cw-process-number {
	background: rgba(92, 219, 149, 0.08);
	border-color: rgba(92, 219, 149, 0.4);
	color: var(--cw-bright-green);
	box-shadow:
		0 0 0 6px rgba(92, 219, 149, 0.04),
		0 0 24px rgba(92, 219, 149, 0.12);
}

.cw-section-dark .cw-process-timeline::before {
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(92, 219, 149, 0.08) 10%,
		rgba(92, 219, 149, 0.2) 50%,
		rgba(92, 219, 149, 0.08) 90%,
		transparent 100%);
}

.cw-section-dark .cw-process-timeline::after {
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(92, 219, 149, 0) 20%,
		rgba(92, 219, 149, 0.1) 50%,
		rgba(92, 219, 149, 0) 80%,
		transparent 100%);
}

.cw-process-step h3 {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 0.6rem;
	line-height: 1.35;
}

.cw-process-step p {
	font-size: 0.88rem;
	color: var(--cw-muted);
	line-height: 1.65;
	opacity: 0.85;
}

.cw-section-dark .cw-process-step p {
	color: rgba(232, 240, 236, 0.8);
}

/* Remove old ::after connectors — track handled by ::before on parent */
.cw-process-step:not(:last-child)::after {
	display: none;
}

/* --- Tablet: 2-col --- */
@media (max-width: 768px) {
	.cw-process-timeline {
		grid-template-columns: 1fr;
		max-width: 420px;
		margin-left: auto;
		margin-right: auto;
		gap: 0;
	}
	.cw-process-timeline::before,
	.cw-process-timeline::after {
		display: none;
	}
	.cw-process-step {
		text-align: left;
		display: flex;
		align-items: flex-start;
		gap: 1.25rem;
		padding: 1.25rem 0;
		position: relative;
	}
	.cw-process-number {
		flex-shrink: 0;
		margin: 0;
		width: 52px;
		height: 52px;
		font-size: 1rem;
	}
	.cw-process-number::before { display: none; }
	/* Vertical connector on mobile */
	.cw-process-step:not(:last-child)::after {
		display: block;
		content: '';
		position: absolute;
		left: 26px;
		top: 76px;
		bottom: -2px;
		width: 2px;
		background: linear-gradient(180deg, var(--cw-emerald) 0%, rgba(76,175,130,0.1) 100%);
	}
}


/* Comparison Table */
.cw-comparison-table {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 2rem;
}

.cw-compare-col {
	background: var(--cw-white);
	border-radius: var(--cw-radius-xl);
	padding: 2rem 1.5rem;
	border: 1px solid var(--cw-border);
	position: relative;
}

.cw-compare-highlight {
	border-color: var(--cw-emerald);
	box-shadow: 0 0 0 1px var(--cw-emerald), var(--cw-shadow-lg);
	transform: scale(1.02);
}

.cw-compare-badge {
	position: absolute;
	top: -0.75rem;
	left: 50%;
	transform: translateX(-50%);
	background: var(--cw-emerald);
	color: var(--cw-white);
	font-family: var(--cw-font-ui);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.25rem 0.875rem;
	border-radius: 100px;
	white-space: nowrap;
}

.cw-compare-col h3 {
	font-size: 1.0625rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
	text-align: center;
}

.cw-compare-price {
	text-align: center;
	font-family: var(--cw-font-heading);
	font-size: 1.375rem;
	font-weight: 700;
	color: var(--cw-emerald);
	margin-bottom: 1.25rem;
	padding-bottom: 0.875rem;
	border-bottom: 1px solid var(--cw-border);
}

.cw-compare-col ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cw-compare-col ul li {
	padding: 0.4rem 0;
	padding-left: 1.5rem;
	position: relative;
	font-size: 0.9rem;
	line-height: 1.5;
	border-bottom: 1px solid rgba(212,221,216,0.4);
}

.cw-compare-col ul li:last-child {
	border-bottom: none;
}

.cw-compare-col ul li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--cw-emerald);
	font-weight: 700;
}

.cw-compare-col ul li.cw-compare-con::before {
	content: '✗';
	color: #c0392b;
}

@media (max-width: 768px) {
	.cw-comparison-table {
		grid-template-columns: 1fr;
		max-width: 380px;
		margin-left: auto;
		margin-right: auto;
	}

	.cw-compare-highlight {
		transform: none;
		order: -1;
	}
}


/* FAQ Accordion */
.cw-faq-accordion {
	max-width: 760px;
	margin: 2rem auto 0;
}

.cw-faq-item {
	border-bottom: 1px solid var(--cw-border);
}

.cw-section-dark .cw-faq-item {
	border-bottom-color: rgba(232, 240, 236, 0.1);
}

.cw-faq-item summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1.25rem 0;
	font-family: var(--cw-font-heading);
	font-size: 1.125rem;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	transition: color var(--cw-transition);
}

.cw-faq-item summary::-webkit-details-marker {
	display: none;
}

.cw-faq-item summary::after {
	content: '+';
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--cw-emerald);
	transition: transform var(--cw-transition);
	flex-shrink: 0;
	margin-left: 1rem;
}

.cw-faq-item[open] summary::after {
	transform: rotate(45deg);
}

.cw-faq-item summary:hover {
	color: var(--cw-emerald);
}

.cw-faq-answer {
	padding-bottom: 1.25rem;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--cw-muted);
}

.cw-section-dark .cw-faq-answer {
	color: rgba(232, 240, 236, 0.65);
}


/* Value Grid */
.cw-value-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 1.5rem;
	margin-top: 1.5rem;
}

.cw-value-card {
	padding: 2rem;
	border-radius: var(--cw-radius-xl);
	background: var(--cw-light-surface);
	border: 1px solid var(--cw-border);
	transition: all var(--cw-transition);
}

.cw-value-card:hover {
	box-shadow: var(--cw-shadow);
	transform: translateY(-2px);
}

.cw-value-card h3 {
	font-size: 1.125rem;
	margin-bottom: 0.5rem;
}

.cw-value-card p {
	font-size: 0.95rem;
	color: var(--cw-muted);
	line-height: 1.6;
}


/* ══════════════════════════════════════════════════
   Timeline — Vertical career/journey timeline (About page)
   Premium design with glowing line, pulsing nodes, card reveals.
   GSAP handles line-draw + stagger in motion.js.
   ══════════════════════════════════════════════════ */
.cw-timeline {
	position: relative;
	padding-left: 4rem;
	margin: 3rem 0;
}

/* Vertical line — base track (static) */
.cw-timeline::before {
	content: '';
	position: absolute;
	left: 15px;
	top: 0;
	bottom: 0;
	width: 2px;
	background: rgba(76, 175, 130, 0.1);
	z-index: 0;
}

/* Vertical line — animated glow overlay (GSAP draws this via scaleY) */
.cw-timeline::after {
	content: '';
	position: absolute;
	left: 14px;
	top: 0;
	bottom: 0;
	width: 4px;
	background: linear-gradient(180deg,
		var(--cw-emerald) 0%,
		rgba(92, 219, 149, 0.6) 40%,
		rgba(76, 175, 130, 0.2) 100%);
	filter: blur(3px);
	z-index: 0;
	transform-origin: top center;
	transform: scaleY(calc(var(--line-draw-progress, 0)));
	will-change: transform;
}

.cw-timeline-item {
	position: relative;
	padding: 1rem 0 2rem 1.75rem;
	/* GSAP animates opacity & x */
	opacity: 0;
	transform: translateX(-24px);
}

.cw-timeline-item.cw-revealed {
	opacity: 1;
	transform: translateX(0);
	transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Timeline dot — outer ring + inner fill */
.cw-timeline-item::before {
	content: '';
	position: absolute;
	left: -4rem;
	top: 1.1rem;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--cw-emerald);
	border: 3px solid #fff;
	box-shadow:
		0 0 0 3px rgba(76, 175, 130, 0.15),
		0 0 12px rgba(76, 175, 130, 0.25);
	z-index: 2;
	transition: all 0.3s ease;
}

/* Dot hover interaction */
.cw-timeline-item:hover::before {
	box-shadow:
		0 0 0 5px rgba(76, 175, 130, 0.12),
		0 0 20px rgba(76, 175, 130, 0.35);
	transform: scale(1.15);
}

/* Current/active position — pulsing dot */
.cw-timeline-item:last-child::before {
	background: var(--cw-bright-green, #5CDB95);
	animation: timelineDotPulse 2.5s ease-in-out infinite;
}

@keyframes timelineDotPulse {
	0%, 100% {
		box-shadow: 0 0 0 3px rgba(92, 219, 149, 0.2), 0 0 12px rgba(92, 219, 149, 0.25);
	}
	50% {
		box-shadow: 0 0 0 8px rgba(92, 219, 149, 0.08), 0 0 24px rgba(92, 219, 149, 0.4);
	}
}

/* Card-like hover background */
.cw-timeline-item::after {
	content: '';
	position: absolute;
	inset: 0 -1rem 0 0.5rem;
	border-radius: 12px;
	background: rgba(76, 175, 130, 0);
	transition: background 0.35s ease;
	z-index: -1;
}
.cw-timeline-item:hover::after {
	background: rgba(76, 175, 130, 0.03);
}

.cw-timeline-year,
.cw-timeline-item .cw-timeline-date {
	font-family: var(--cw-font-heading);
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--cw-emerald);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	margin-bottom: 0.4rem;
	display: inline-block;
	background: rgba(76, 175, 130, 0.07);
	padding: 4px 12px;
	border-radius: 20px;
	border: 1px solid rgba(76, 175, 130, 0.1);
}

.cw-timeline-item h4 {
	font-family: var(--cw-font-heading);
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--cw-deep-green);
	margin-bottom: 0.35rem;
	transition: color 0.3s ease;
}

.cw-timeline-item:hover h4 {
	color: var(--cw-emerald);
}

.cw-timeline-item p {
	color: var(--cw-muted);
	font-size: 0.92rem;
	line-height: 1.7;
}


/* Post Email CTA */
.cw-post-email-cta {
	background: var(--cw-light-surface);
	border-radius: var(--cw-radius-xl);
	padding: 2.5rem;
	margin-top: 3rem;
	text-align: center;
	border: 1px solid var(--cw-border);
}

.cw-post-email-cta h3 {
	font-size: var(--cw-text-xl);
	margin-bottom: 0.5rem;
}

.cw-post-email-cta p {
	color: var(--cw-muted);
	max-width: 500px;
	margin-left: auto;
	margin-right: auto;
}


/* ==========================================================================
   26. SCROLL REVEAL ANIMATIONS
   ========================================================================== */

.cw-reveal {
	will-change: opacity, transform;
}

.cw-reveal.cw-visible {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

/* Smooth transition for hover after reveal */
.cw-visible.cw-feature-card,
.cw-visible.cw-testimonial-card,
.cw-visible.cw-value-card,
.cw-visible.cw-blog-card {
	transition: all var(--cw-transition);
}


/* ==========================================================================
   27. HEADER RIGHT WIDGET (Social icons in header)
   ========================================================================== */

.header-right .simple-social-icons {
	margin-top: 0;
}

#simple-social-icons-1 ul li a,
#simple-social-icons-1 ul li a:hover {
	background-color: transparent !important;
	border: none !important;
	color: rgba(232, 240, 236, 0.7) !important;
	padding: 6px !important;
	font-size: 14px !important;
}

#simple-social-icons-1 ul li a:hover {
	color: var(--cw-emerald) !important;
}


/* ==========================================================================
   28. MINIMAL NAV (Service/Landing pages)
   ========================================================================== */

.cw-minimal-nav .nav-primary .genesis-nav-menu > .menu-item:not(:first-child):not(:last-child) {
	display: none;
}

.cw-minimal-nav .genesis-nav-menu > .menu-item.menu-item-has-children {
	display: none;
}


/* ==========================================================================
   29. MISC FIXES
   ========================================================================== */

/* Fix enews widget styling */
.enews-widget input[type="email"] {
	width: 100%;
	margin-bottom: 0.5rem;
}

.enews-widget input[type="submit"] {
	width: 100%;
}

/* Gravity form on dark backgrounds (newsletter) */
.cw-dark-section .gfield_label,
.front-page-6 .gfield_label {
	color: rgba(232, 240, 236, 0.8);
}

.cw-dark-section input[type="text"],
.cw-dark-section input[type="email"],
.cw-dark-section textarea {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.15);
	color: var(--cw-white);
}

.cw-dark-section input::placeholder,
.cw-dark-section textarea::placeholder {
	color: rgba(232, 240, 236, 0.65);
}

.cw-dark-section input:focus,
.cw-dark-section textarea:focus {
	border-color: var(--cw-emerald);
	background: rgba(255, 255, 255, 0.12);
}

/* ==========================================================================
   30. PREMIUM POLISH — Micro-interactions & Details
   ========================================================================== */

/* Subtle gradient accent line at top of page */
.site-container::before {
	content: '';
	display: block;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald) 0%, var(--cw-bright-green) 50%, var(--cw-emerald) 100%);
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10001;
}

/* Header transition + shrink — consolidated in section 3 above */

/* Premium selection color */
::selection {
	background: rgba(76, 175, 130, 0.2);
	color: var(--cw-deep-green);
}

::-moz-selection {
	background: rgba(76, 175, 130, 0.2);
	color: var(--cw-deep-green);
}

/* Focus-visible ring for accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
[tabindex]:focus-visible {
	outline: 2px solid var(--cw-emerald-on-light); /* WCAG 2.1 SC 1.4.11: 5.30:1 vs white — was 2.71:1 */
	outline-offset: 3px;
	border-radius: 4px;
}

/* On dark backgrounds, brighter ring for visibility */
.cw-section-dark a:focus-visible,
.cw-section-dark button:focus-visible,
.cw-section-dark input:focus-visible,
.front-page-1 a:focus-visible,
.front-page-1 button:focus-visible,
.front-page-1 input:focus-visible,
.site-header a:focus-visible,
.site-footer a:focus-visible,
.site-footer button:focus-visible {
	outline-color: var(--cw-bright-green);
}

/* Subtle text underline animation for inline links */
.entry-content a:not(.button):not(.cw-btn):not(.entry-image-link) {
	text-decoration: underline;
	text-decoration-color: rgba(76, 175, 130, 0.3);
	text-underline-offset: 3px;
	transition: text-decoration-color var(--cw-transition);
}

.entry-content a:not(.button):not(.cw-btn):not(.entry-image-link):hover {
	text-decoration-color: var(--cw-emerald);
}

/* Before-footer CTA — add subtle glow effect */
.before-footer::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 400px;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(76, 175, 130, 0.3), transparent);
}

/* Premium card hover — glow effect on feature cards */
.cw-feature-card:hover,
.cw-testimonial-card:hover {
	box-shadow: 0 12px 40px rgba(76, 175, 130, 0.08), 0 4px 16px rgba(26, 46, 40, 0.06);
}

/* Loading state — smooth page entrance */
@keyframes cwFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

.site-container {
	animation: cwFadeIn 0.4s ease-out;
}

/* Cookie banner z-index fix */
.cky-consent-container {
	z-index: 9999;
}

/* WP Featherlight override */
.featherlight .featherlight-close-icon {
	background: var(--cw-deep-green);
	color: var(--cw-white);
}

/* Remove structural borders that Genesis adds */
.site-inner {
	border: none;
	margin-top: 0;
	padding: 0;
}

/* Full width content adjustments */
.full-width-content .content {
	width: 100%;
	float: none;
}

/* Fix content-sidebar layout to not look cramped */
.content-sidebar .content {
	max-width: 72%;
}

@media (max-width: 896px) {
	.content-sidebar .content,
	.sidebar-content .content {
		max-width: 100%;
		float: none;
		width: 100%;
	}

	.sidebar {
		max-width: 100%;
		float: none;
		width: 100%;
		margin-top: 2rem;
	}
}

/* ==========================================================================
   31. Parent Theme Color Purge
   Overrides every instance of #232c39 (blue-gray) and #fb2056 (pink)
   from the parent theme style.css. These are the OLD Business Pro defaults
   that must be replaced with our green brand palette.
   ========================================================================== */

/* HTML background (visible during page load / overscroll) */
html {
	background-color: var(--cw-deep-green) !important;
}

/* Body text color */
body {
	color: var(--cw-dark-text) !important;
}

/* Link colors */
a {
	color: var(--cw-dark-text);
}
a:hover,
a:focus {
	color: var(--cw-emerald);
}

/* Buttons — replace #232c39 bg and #fb2056 accent */
button,
input[type='button'],
input[type='reset'],
input[type='submit'],
.button {
	background-color: var(--cw-deep-green) !important;
	font-family: var(--cw-font-ui) !important;
	border-radius: var(--cw-radius) !important;
	box-shadow: inset 0 0 0 9rem rgba(255,255,255,0), 0 1rem 1rem -1rem rgba(26,46,40,0.1) !important;
}
button:hover,
button:focus,
input[type='button']:hover,
input[type='button']:focus,
input[type='reset']:hover,
input[type='reset']:focus,
input[type='submit']:hover,
input[type='submit']:focus,
.button:hover,
.button:focus {
	box-shadow: inset 0 0 0 9rem rgba(255,255,255,0.1), 0 1.25rem 1rem -0.5rem rgba(26,46,40,0.15) !important;
}

/* Accent buttons — replace #fb2056 with emerald */
.button.accent,
button.accent,
input[type='button'].accent,
input[type='reset'].accent,
input[type='submit'].accent {
	background-color: var(--cw-emerald) !important;
}

/* Skip links */
.genesis-skip-link a:focus {
	background-color: var(--cw-deep-green) !important;
	box-shadow: 0 0 0.2rem 0.2rem rgba(26,46,40,0.1) !important;
}

/* Page header overlay (replaces rgba(35,44,57,0.9)) */
.page-header:before,
.front-page-4:before,
.before-footer:before {
	background-color: var(--cw-overlay) !important;
}

/* Menu item button */
.menu-item.button > a,
.menu-item.button > a > span {
	background-color: var(--cw-emerald) !important;
}

/* Archive pagination */
.archive-pagination a:hover,
.archive-pagination a:focus,
.archive-pagination .active a {
	background-color: var(--cw-emerald) !important;
}

/* Footer widgets background */
.footer-widgets {
	background-color: var(--cw-deep-green) !important;
}

/* Site footer (copyright area) */
.site-footer {
	background-color: var(--cw-deep-green) !important;
}

/* Pricing table featured */
.pricing-table .featured .button,
.pricing-table .featured button {
	background-color: var(--cw-emerald) !important;
}

/* Front page icon color (was #fb2056) */
.front-page-2 .fa,
.front-page-2 .la {
	color: var(--cw-emerald) !important;
}

/* HR accent lines */
.front-page-3 .widget_custom_html:first-of-type hr,
.front-page-5 .widget_custom_html:first-of-type hr {
	background-color: var(--cw-emerald) !important;
}

/* Portfolio overlay */
.portfolio .entry:hover img {
	box-shadow: 0 27px 40px -20px rgba(26,46,40,0.22) !important;
}

/* WooCommerce buttons — comprehensive override */
.woocommerce a.button,
.woocommerce a.button:hover,
.woocommerce a.button:focus,
.woocommerce a.button.alt,
.woocommerce a.button.alt:hover,
.woocommerce a.button.alt:focus,
.woocommerce button.button,
.woocommerce button.button:hover,
.woocommerce button.button:focus,
.woocommerce button.button.alt,
.woocommerce button.button.alt:hover,
.woocommerce button.button.alt:focus,
.woocommerce input.button,
.woocommerce input.button:hover,
.woocommerce input.button:focus,
.woocommerce input.button.alt,
.woocommerce input.button.alt:hover,
.woocommerce input.button.alt:focus,
.woocommerce input[type="submit"],
.woocommerce input[type="submit"]:hover,
.woocommerce input[type="submit"]:focus,
.woocommerce #respond input#submit,
.woocommerce #respond input#submit:hover,
.woocommerce #respond input#submit:focus,
.woocommerce #respond input#submit.alt,
.woocommerce #respond input#submit.alt:hover,
.woocommerce #respond input#submit.alt:focus {
	background-color: var(--cw-emerald) !important;
}

/* WooCommerce price filter */
.woocommerce.widget_price_filter .ui-slider-handle,
.woocommerce.widget_price_filter .ui-slider-range {
	background-color: var(--cw-emerald) !important;
}

/* Simple Social Icons — override inline defaults */
.simple-social-icons ul li a {
	background-color: var(--cw-deep-green) !important;
}
.simple-social-icons ul li a:hover,
.simple-social-icons ul li a:focus {
	background-color: var(--cw-emerald) !important;
}

/* Gravity Forms button */
.gform_wrapper input[type='submit'],
.gform_wrapper .gform_button {
	background-color: var(--cw-emerald) !important;
	font-family: var(--cw-font-ui) !important;
}
.gform_wrapper input[type='submit']:hover,
.gform_wrapper .gform_button:hover {
	background-color: var(--cw-bright-green) !important;
}


/* ==========================================================================
   31. VISUAL RICHNESS — Textures, depth, premium polish
   ========================================================================== */

/* Light sections get position: relative for z-index stacking */
.front-page-2,
.front-page-4 {
	position: relative;
}

.front-page-2 > .wrap,
.front-page-4 > .wrap {
	position: relative;
	z-index: 1;
}

/* Dark sections get a subtle gradient mesh for depth */
.front-page-3::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -20%;
	width: 60%;
	height: 200%;
	background: radial-gradient(ellipse, rgba(76, 175, 130, 0.05) 0%, transparent 70%);
	pointer-events: none;
}

.front-page-3 {
	position: relative;
	overflow: hidden;
}

/* Newsletter section gets a radial glow */
.front-page-6::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 800px;
	height: 400px;
	background: radial-gradient(ellipse, rgba(92, 219, 149, 0.06) 0%, transparent 70%);
	pointer-events: none;
}

.front-page-6 {
	position: relative;
	overflow: hidden;
}

/* Blog card — add a subtle gradient placeholder when no featured image */
.cw-blog-card .entry-content:first-child {
	border-top: 4px solid var(--cw-emerald);
}

/* Blog cards without images — add a top accent bar */
.cw-blog-card:not(:has(.entry-image-link)) .entry-header {
	border-top: 3px solid;
	border-image: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green)) 1;
}

/* Accent line on section headings */
.cw-section-title::after {
	content: '';
	display: block;
	width: 48px;
	height: 3px;
	background: var(--cw-emerald);
	margin: 0.75rem auto 0;
	border-radius: 2px;
}

/* Feature card icons — premium gradient circles, hide emoji rendering */
.cw-feature-icon {
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	margin-bottom: 1.25rem;
	position: relative;
	overflow: hidden;
}

/* Hide the emoji image — replace with gradient background */
.cw-feature-icon img.emoji {
	display: none !important;
}

/* Show a branded icon via the gradient background */
.cw-feature-card:first-child .cw-feature-icon {
	background: linear-gradient(135deg, var(--cw-emerald), var(--cw-bright-green));
	box-shadow: 0 4px 16px rgba(76, 175, 130, 0.3);
}

.cw-feature-card:first-child .cw-feature-icon::after {
	content: '';
	width: 24px;
	height: 24px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16V12M12 8h.01'/%3E%3C/svg%3E") center/contain no-repeat;
}

.cw-feature-card:nth-child(2) .cw-feature-icon {
	background: linear-gradient(135deg, #6366F1, #818CF8);
	box-shadow: 0 4px 16px rgba(99, 102, 241, 0.3);
}

.cw-feature-card:nth-child(2) .cw-feature-icon::after {
	content: '';
	width: 24px;
	height: 24px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 18 12 15 21 9 3 6 12 2 12'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Testimonial cards on homepage — handled by section 56 */

/* Smooth page entrance animation */
@keyframes cwFadeUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.front-page-2 > .wrap,
.front-page-3 > .wrap,
.front-page-4 > .wrap,
.front-page-5 > .wrap,
.front-page-6 > .wrap {
	animation: cwFadeUp 0.6s ease-out both;
}

/* Selection highlight color */
::selection {
	background: rgba(76, 175, 130, 0.2);
	color: inherit;
}

/* Focus ring for accessibility */
:focus-visible {
	outline: 2px solid var(--cw-emerald);
	outline-offset: 2px;
}

/* Gradient top accent on the whole page */
body::before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green), var(--cw-emerald));
	z-index: 9999;
}

/* Before-footer enhanced CTA glow */
.before-footer::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 80%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(76, 175, 130, 0.3), transparent);
}

/* Archive/Category page description styling */
.archive-description {
	text-align: center;
	max-width: 700px;
	margin: 0 auto 2rem;
}

.archive-description p {
	color: rgba(232, 240, 236, 0.7);
	font-size: 1rem;
}

/* Ensure archive pages also get full-width treatment */
.archive .content-sidebar-wrap,
.category .content-sidebar-wrap,
.tag .content-sidebar-wrap,
.search .content-sidebar-wrap {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 clamp(1.25rem, 3vw, 2rem);
}

.archive .content,
.blog .content,
.category .content,
.tag .content,
.search .content {
	width: 100% !important;
	float: none !important;
}

/* Blog/archive/category grid — center on page (consolidated from Section 78f) */
.blog .content,
.archive .content,
.category .content {
	max-width: 1200px;
	margin: 0 auto;
	padding: 3rem clamp(1.25rem, 4vw, 2.5rem) 3rem;
}

.tag .content,
.search .content {
	max-width: 100% !important;
	padding: 2.5rem 0 4rem;
}

.archive .sidebar,
.category .sidebar,
.tag .sidebar,
.search .sidebar {
	display: none;
}

/* Testimonials page — card hover lift */
.cw-testimonial-card {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cw-testimonial-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
}

/* Service/page cards on inner pages */
.cw-feature-card {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cw-feature-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--cw-shadow-lg);
}

/* Header social icons — hide on header, they clutter the nav */
.header-widget-area .simple-social-icons {
	display: none;
}

/* Smooth scroll for anchor links */
html {
	scroll-behavior: smooth;
}

/* Hide custom scroll-top buttons — use native Genesis .back-to-top only */
.cw-back-to-top,
.cw-scroll-top {
	display: none !important;
}

/* Native Genesis back-to-top — keep default style, just refine color */
.site-footer .back-to-top {
	transition: background-color 0.25s ease !important;
}

.site-footer .back-to-top:hover {
	background-color: rgba(76, 175, 130, 0.25) !important;
}


/* ==========================================================================
   SECTION DIVIDERS — Subtle gradient transitions between homepage sections
   ========================================================================== */

/* Gradient line dividers between light sections */
.front-page-2::before,
.front-page-4::before,
.front-page-5::before {
	content: '' !important;
	display: block !important;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: min(80%, 600px);
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(76, 175, 130, 0.2), var(--cw-emerald), rgba(76, 175, 130, 0.2), transparent);
	z-index: 2;
}

/* Ensure sections with dividers have position: relative */
.front-page-2,
.front-page-4,
.front-page-5 {
	position: relative;
}

/* Dark-to-light transitions get a softer fade */
.front-page-4::before {
	background: linear-gradient(90deg, transparent, rgba(76, 175, 130, 0.15), rgba(76, 175, 130, 0.25), rgba(76, 175, 130, 0.15), transparent) !important;
}


/* ==========================================================================
   32. BESPOKE DESIGN UPGRADES — Visual richness & depth
   ========================================================================== */

/* Angled section transitions — diagonal clip for visual rhythm */
.front-page-2::before {
	content: '';
	position: absolute;
	top: -40px;
	left: 0;
	right: 0;
	height: 80px;
	background: inherit;
	clip-path: polygon(0 50%, 100% 0, 100% 100%, 0 100%);
	z-index: 1;
}

/* Section 3 (Philosophy) — large decorative quote mark + gradient glow */
.front-page-3 {
	position: relative;
	overflow: hidden;
}

.front-page-3::before {
	display: block !important;
	content: '\201C';
	position: absolute;
	top: -20px;
	left: 5%;
	font-size: 20rem;
	font-family: Georgia, serif;
	color: rgba(76, 175, 130, 0.06);
	line-height: 1;
	pointer-events: none;
	z-index: 0;
}

.front-page-3::after {
	content: '';
	position: absolute;
	bottom: -30%;
	right: -10%;
	width: 50%;
	height: 80%;
	background: radial-gradient(ellipse, rgba(92, 219, 149, 0.08) 0%, transparent 70%);
	pointer-events: none;
	z-index: 0;
}

.front-page-3 .wrap {
	position: relative;
	z-index: 1;
}

/* Testimonial cards — add left accent border for premium feel */
.front-page-4 .cw-testimonial-card,
.front-page-4 .widget .textwidget > div[style*="border-radius"] {
	border-left: 3px solid var(--cw-emerald);
}

/* Blog section — give cards more visual weight */
.front-page-5 .display-posts-listing .listing-item {
	border-radius: var(--cw-radius-lg) !important;
	overflow: hidden;
	border: none !important;
	box-shadow: var(--cw-shadow);
}

.front-page-5 .display-posts-listing .listing-item:hover {
	box-shadow: var(--cw-shadow-lg);
}

/* Gradient text on hero headline — DISABLED because GSAP splits h1 into
   <span class="cw-word"> elements, which breaks background-clip: text.
   The white text color is set via .front-page-1 h1 { color: #fff } instead. */

/* Headshot — premium border treatment */
.cw-headshot {
	border-radius: 20px;
	border: 3px solid rgba(92, 219, 149, 0.25);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(92, 219, 149, 0.1);
}

/* Stats — add divider lines between items */
.cw-stat-item + .cw-stat-item {
	border-left: 1px solid rgba(232, 240, 236, 0.15);
	padding-left: 2rem;
}

/* Feature cards — emerald top accent line */
.front-page-2 .cw-feature-card {
	border-top: 3px solid transparent;
	background-image: linear-gradient(white, white), linear-gradient(135deg, var(--cw-emerald), var(--cw-bright-green));
	background-origin: border-box;
	background-clip: padding-box, border-box;
	border-top: 3px solid var(--cw-emerald);
}

/* Newsletter form inputs — dark theme consistent styling */
.front-page-6 input[type="text"],
.front-page-6 input[type="email"],
.front-page-6 select,
.front-page-6 .ginput_container input {
	background: rgba(255, 255, 255, 0.08) !important;
	border: 1px solid rgba(255, 255, 255, 0.15) !important;
	color: var(--cw-white) !important;
	border-radius: var(--cw-radius) !important;
	padding: 12px 16px !important;
}

.front-page-6 input::placeholder {
	color: rgba(232, 240, 236, 0.65) !important;
}

.front-page-6 select {
	color: rgba(232, 240, 236, 0.6) !important;
}

.front-page-6 .gform_footer input[type="submit"] {
	background: linear-gradient(135deg, #5CDB95, #4CAF82) !important;
	color: var(--cw-deep-green) !important;
	border: none !important;
	border-radius: var(--cw-radius-pill) !important;
	font-weight: 700 !important;
	padding: 14px 40px !important;
	font-size: 1rem !important;
	cursor: pointer;
	transition: all 0.3s ease !important;
}

.front-page-6 .gform_footer input[type="submit"]:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 25px rgba(92, 219, 149, 0.4);
}


/* ==========================================================================
   33. PREMIUM DESIGN ENHANCEMENTS v3.8
   Noise textures, glassmorphism, layered shadows, gradient borders,
   wave dividers, shimmer CTAs, counter animations, reduced motion.
   ========================================================================== */

/* ----- 33a. Noise/Grain Texture Overlay on dark sections ----- */
/*
 * front-page-3::after and front-page-6 already have ::after pseudo-elements,
 * so we use a separate .cw-noise-overlay element injected via JS (see
 * interactions.js initNoiseOverlay) for those. For sections without
 * ::after conflicts, we use the pseudo-element directly.
 */
.front-page-1,
.cw-section-dark {
	position: relative;
}

.front-page-1::after,
.cw-section-dark::after {
	content: '';
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
	mix-blend-mode: overlay;
	pointer-events: none;
	z-index: 1;
}

/* Ensure child content sits above the noise layer */
.front-page-1 > .wrap,
.cw-section-dark > .wrap,
.cw-section-dark > .cw-contain {
	position: relative;
	z-index: 2;
}

/* Noise overlay injected via JS for sections that already use ::after */
.cw-noise-overlay {
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
	mix-blend-mode: overlay;
	pointer-events: none;
	z-index: 1;
}


/* ----- 33b. Glassmorphism on hero stat badges ----- */
.front-page-1 .cw-stats-row {
	background: rgba(255, 255, 255, 0.06);
	/* backdrop-filter: blur(12px) — removed for GPU perf */
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 16px;
	padding: 1.5rem 2rem;
}

@media (max-width: 480px) {
	.front-page-1 .cw-stats-row {
		padding: 0.85rem 1rem;
		gap: 0.5rem;
		border-radius: 12px;
	}
}

/* ----- 33c. Card hover lift with layered shadows ----- */
.cw-feature-card:hover,
.cw-testimonial-card:hover,
.cw-value-card:hover {
	transform: translateY(-8px);
	box-shadow:
		0 12px 24px rgba(0, 0, 0, 0.12),
		0 4px 8px rgba(0, 0, 0, 0.06);
}


/* ----- 33d. Subtle gradient border on testimonial cards ----- */
.cw-testimonial-card {
	position: relative;
	border: none;
}

.cw-testimonial-card::before {
	content: '';
	position: absolute;
	inset: -1px;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(76, 175, 130, 0.3), transparent 60%);
	z-index: -1;
}


/* ----- 33e. Enhanced philosophy section decorative quote ----- */
.front-page-3::before {
	font-size: 28rem;
	color: rgba(76, 175, 130, 0.08);
	top: -40px;
	left: 3%;
}


/* ----- 33f. Smooth section wave dividers ----- */
/*
 * front-page-2::after already has a dot pattern. We repurpose it as
 * a wave divider instead, since the wave provides a stronger visual
 * transition. The dot pattern was a subtle detail that the wave replaces.
 */
.front-page-2::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 60px;
	background: var(--cw-light-surface);
	clip-path: ellipse(55% 100% at 50% 100%);
	z-index: 2;
	/* Override the dot pattern from section 31 */
	background-image: none;
	background-size: unset;
	inset: unset;
}

/* Wave from light section (fp-4) into blog/light section (fp-5) */
.front-page-4::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 60px;
	background: var(--cw-white);
	clip-path: ellipse(55% 100% at 50% 100%);
	z-index: 2;
	/* Override the dot pattern */
	background-image: none;
	background-size: unset;
	inset: unset;
}

/* Wave from blog section (fp-5) into newsletter/dark section (fp-6) */
.front-page-5 {
	position: relative;
}

.front-page-5::after {
	content: '';
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 100%;
	height: 60px;
	background: var(--cw-deep-green);
	clip-path: ellipse(55% 100% at 50% 100%);
	z-index: 2;
}


/* ----- 33g. Premium blog cards — image hover zoom & emerald accent ----- */
.cw-blog-card {
	position: relative;
	overflow: hidden;
}

.cw-blog-card::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s var(--cw-ease-out);
}

.cw-blog-card:hover::after {
	transform: scaleX(1);
}

.cw-blog-card .entry-image-link {
	overflow: hidden;
}

.cw-blog-card .entry-image-link img {
	transition: transform 0.6s var(--cw-ease-out);
}

.cw-blog-card:hover .entry-image-link img {
	transform: scale(1.08);
}


/* ----- 33h. CTA button shimmer/sweep effect ----- */
.cw-btn-primary {
	position: relative;
	overflow: hidden;
}

.cw-btn-primary::after {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
	transition: left 0.5s ease;
}

.cw-btn-primary:hover::after {
	left: 100%;
}


/* ----- 33i. Stat counter animation helper ----- */
/* The .cw-stat-number elements get counted up via JS.
   This ensures smooth rendering during count. */
.cw-stat-number {
	font-variant-numeric: tabular-nums;
	display: inline-block;
	min-width: 1.5ch;
}

.cw-stat-number.cw-counting {
	transition: none;
}


/* ----- 33j. Premium text gradient for hero headings ----- */
/* Gradient text on .cw-hero-title DISABLED — GSAP word-split breaks background-clip */
.cw-about-hero h1 {
	background: linear-gradient(135deg, #fff 0%, #E8F0EC 40%, #5CDB95 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* ----- 33k. Smooth focus outlines for accessibility ----- */
a:focus-visible,
button:focus-visible,
summary:focus-visible {
	outline: 2px solid var(--cw-emerald);
	outline-offset: 3px;
	border-radius: 4px;
}

/* ----- 33l. Single blog post — premium reading experience ----- */
.single-post .entry-content {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	font-size: 1.125rem;
	line-height: 1.85;
}

.single-post .entry-content p {
	margin-bottom: 1.5rem;
}

.single-post .entry-content h2 {
	font-family: var(--cw-font-heading);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	color: var(--cw-dark-text);
	margin-top: 3rem;
	margin-bottom: 1rem;
}

.single-post .entry-content h3 {
	font-family: var(--cw-font-heading);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--cw-dark-text);
	margin-top: 2.5rem;
	margin-bottom: 0.75rem;
}

.single-post .entry-content blockquote {
	border-left: 4px solid var(--cw-emerald);
	margin: 2rem 0;
	padding: 1.5rem 2rem;
	background: var(--cw-light-surface);
	border-radius: 0 var(--cw-radius) var(--cw-radius) 0;
	font-style: italic;
	font-size: 1.15rem;
	color: var(--cw-dark-text);
}

.single-post .entry-content ul,
.single-post .entry-content ol {
	margin: 1.5rem 0;
	padding-left: 1.5rem;
}

.single-post .entry-content li {
	margin-bottom: 0.5rem;
	line-height: 1.75;
}

.single-post .entry-content img {
	border-radius: var(--cw-radius-lg);
	margin: 2rem 0;
}

/* Single post header improvements */
.single-post .entry-header {
	max-width: 720px;
	margin: 0 auto 2rem;
	text-align: center;
}

.single-post .entry-title {
	font-size: clamp(2rem, 4vw, 2.75rem) !important;
	line-height: 1.2;
	margin-bottom: 1rem;
}

.single-post .entry-meta {
	font-family: var(--cw-font-ui);
	font-size: 0.875rem;
	color: var(--cw-muted);
}

/* ----- 33m. Service page section headers — refined label badges ----- */
.cw-section-label {
	display: inline-block;
	font-family: var(--cw-font-ui);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--cw-emerald);
	margin-bottom: 0.75rem;
}

/* Dark section label — bright green */
.cw-section-dark .cw-section-label {
	color: var(--cw-bright-green);
}

/* 33n. Header shrink — consolidated in section 3 above */

/* ----- 33p. Scrollbar styling ----- */
::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: var(--cw-light-surface);
}

::-webkit-scrollbar-thumb {
	background: var(--cw-muted);
	border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
	background: var(--cw-emerald);
}

/* ----- 33q. Selection highlight ----- */
::selection {
	background: rgba(76, 175, 130, 0.2);
	color: var(--cw-dark-text);
}

/* ----- 33r. Blog page header enhancement ----- */
.cw-blog-header {
	background: var(--cw-deep-green) !important;
	padding: clamp(2rem, 5vw, 3.5rem) 0 !important;
	text-align: center;
}

.cw-blog-header .archive-title {
	font-family: var(--cw-font-heading);
	font-size: clamp(2rem, 4vw, 3rem) !important;
	color: var(--cw-white);
	font-weight: 700;
	margin-bottom: 0.5rem;
}

.cw-blog-header p {
	color: rgba(232, 240, 236, 0.65) !important;
	font-size: 1.05rem;
	max-width: 600px;
	margin: 0 auto;
	line-height: 1.7;
}


/* ==========================================================================
   34. REDUCED MOTION — Accessibility
   Wraps all animations/transitions for users who prefer reduced motion.
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	/* Disable all transitions and animations globally */
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	/* Disable scroll reveal transforms */
	.cw-reveal,
	.cw-feature-card,
	.cw-testimonial-card,
	.cw-value-card,
	.cw-blog-card,
	.cw-process-step,
	.cw-hero-content,
	.cw-hero-media,
	.cw-stats-row {
		opacity: 1;
		transform: none;
	}

	/* Disable hover lifts */
	.cw-feature-card:hover,
	.cw-testimonial-card:hover,
	.cw-value-card:hover,
	.cw-blog-card:hover {
		transform: none;
	}

	/* Disable parallax */
	.cw-hero-bg img {
		transform: none;
	}

	/* Disable CTA shimmer */
	.cw-btn-primary::after {
		display: none;
	}

	/* Disable blog card accent line animation */
	.cw-blog-card::after {
		transform: scaleX(1);
	}

	/* Disable image zoom on hover */
	.cw-blog-card:hover .entry-image-link img,
	.entry-image-link:hover img {
		transform: none !important;
	}

	/* Disable page entrance animation */
	.site-container {
		animation: none !important;
	}

	/* Keep noise texture and glassmorphism — they are non-motion effects */
}


/* ==========================================================================
   35. PREMIUM FOOTER — Dark authority footer (inspired by Linear/Vercel)
   ========================================================================== */

.site-footer {
	background: var(--cw-deep-green);
	color: var(--cw-light-text);
	border-top: none;
	padding-top: 0 !important;
}

.site-footer .before-footer {
	background: transparent;
	padding: 0;
}

.site-footer .footer-widgets {
	background: transparent;
	padding: clamp(2.5rem, 5vw, 3.5rem) 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer .footer-widgets .wrap {
	display: grid;
	grid-template-columns: 0.8fr 1.2fr 1fr;
	gap: clamp(2rem, 4vw, 3rem);
	align-items: start;
}

/* Hide empty footer widget area 4 */
.footer-widgets-4 { display: none; }

.site-footer .footer-widgets .widgettitle,
.site-footer .footer-widgets .widget-title {
	color: var(--cw-white);
	font-family: var(--cw-font-heading);
	font-size: 0.8rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-bottom: 1.25rem;
	opacity: 0.7;
}

.site-footer .footer-widgets a {
	color: rgba(232, 240, 236, 0.7);
	text-decoration: none;
	font-size: 0.95rem;
	transition: color 0.2s ease;
}

.site-footer .footer-widgets a:hover {
	color: var(--cw-bright-green);
}

.site-footer .footer-widgets .widget_nav_menu ul {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 0.25rem 1.5rem !important;
}

/* Kill Genesis clearfix pseudo-elements that steal grid cells */
.site-footer .footer-widgets .widget_nav_menu ul::before,
.site-footer .footer-widgets .widget_nav_menu ul::after {
	display: none !important;
	content: none !important;
}

.site-footer .footer-widgets .widget_nav_menu li {
	margin-bottom: 0 !important;
	width: auto !important;
	float: none !important;
}

.site-footer .footer-widgets .widget_nav_menu li a {
	display: block !important;
	float: none !important;
	padding: 4px 0 !important;
	font-size: 0.9rem !important;
}

/* No sub-menus in footer nav */
.site-footer .footer-widgets .widget_nav_menu .sub-menu {
	display: none !important;
}

/* Social icons in footer */
.site-footer .simple-social-icons ul {
	display: flex !important;
	gap: 0.75rem;
	padding: 0;
	margin: 0;
}

.site-footer .simple-social-icons ul li a {
	background: rgba(255, 255, 255, 0.06) !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	transition: all 0.25s ease !important;
}

.site-footer .simple-social-icons ul li a:hover {
	background: var(--cw-emerald) !important;
	border-color: var(--cw-emerald) !important;
	transform: translateY(-2px);
}

/* Footer bottom bar / credits */
.site-footer > .wrap > p,
.site-footer .creds {
	color: rgba(232, 240, 236, 0.7);
	font-size: 0.85rem;
	text-align: center;
	padding: 1.5rem 0;
	margin: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.site-footer .creds a {
	color: rgba(232, 240, 236, 0.7);
}

.site-footer .creds a:hover {
	color: var(--cw-emerald);
}

/* Genesis enews widget in footer */
.site-footer .enews-widget {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: var(--cw-radius-lg);
	padding: 1.5rem;
}

.site-footer .enews-widget input[type="email"] {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.15);
	color: var(--cw-white);
	border-radius: var(--cw-radius);
	padding: 0.75rem 1rem;
	font-size: 0.95rem;
}

.site-footer .enews-widget input[type="email"]::placeholder {
	color: rgba(255, 255, 255, 0.65);
}

.site-footer .enews-widget input[type="submit"] {
	background: var(--cw-emerald);
	color: var(--cw-white);
	border: none;
	border-radius: var(--cw-radius);
	padding: 0.75rem 1.5rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease;
}

.site-footer .enews-widget input[type="submit"]:hover {
	background: var(--cw-bright-green);
}


/* ==========================================================================
   36. PREMIUM CARD HOVER — Stripe-inspired glow effect
   ========================================================================== */

.cw-feature-card {
	position: relative;
	overflow: hidden;
}

.cw-feature-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
	border-radius: var(--cw-radius-lg) var(--cw-radius-lg) 0 0;
	z-index: 1;
}

.cw-feature-card:hover::before {
	transform: scaleX(1);
}

/* Testimonial card subtle glow on hover */
.cw-testimonial-card {
	position: relative;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.cw-testimonial-card:hover {
	border-color: rgba(76, 175, 130, 0.3);
	box-shadow:
		0 8px 25px rgba(0, 0, 0, 0.08),
		0 0 0 1px rgba(76, 175, 130, 0.1);
}


/* Section 37 — Consolidated into Section 12 */


/* ==========================================================================
   38. SINGLE POST — Premium reading polish
   ========================================================================== */

/* Article meta bar */
.single-post .entry-header {
	text-align: center;
	margin-bottom: 2.5rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid rgba(26, 46, 40, 0.08);
}

.single-post .entry-title {
	font-size: clamp(2rem, 5vw, 3rem);
	line-height: 1.15;
	max-width: 800px;
	margin: 0 auto 1rem;
	font-weight: 700;
	color: var(--cw-deep-green);
}

.single-post .entry-meta {
	color: var(--cw-muted);
	font-size: 0.9rem;
	font-family: var(--cw-font-heading);
}

.single-post .entry-meta a {
	color: var(--cw-emerald);
	text-decoration: none;
}

.single-post .entry-meta a:hover {
	text-decoration: underline;
}

/* Featured image on single posts */
.single-post .entry-image-link {
	display: block;
	margin: -1rem auto 2.5rem;
	max-width: 900px;
	border-radius: var(--cw-radius-lg);
	overflow: hidden;
}

.single-post .entry-image-link img {
	width: 100%;
	height: auto;
	display: block;
}

/* Drop cap DISABLED — breaks AISEO first-paragraph
.single-post .entry-content > p:first-of-type::first-letter {
	float: left;
	font-size: 3.5em;
	line-height: 0.8;
	padding-right: 0.1em;
	margin-top: 0.05em;
	font-weight: 700;
	color: var(--cw-deep-green);
	font-family: var(--cw-font-heading);
} */

/* Author box at bottom */
.author-box {
	background: var(--cw-light-surface);
	border-radius: var(--cw-radius-lg);
	padding: 2rem;
	margin: 3rem 0;
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
	border: 1px solid rgba(26, 46, 40, 0.06);
}

.author-box .avatar {
	border-radius: 50%;
	width: 72px;
	height: 72px;
	flex-shrink: 0;
}

.author-box .author-box-title {
	font-family: var(--cw-font-heading);
	font-size: 1.1rem;
	font-weight: 600;
	margin-bottom: 0.25rem;
}

.author-box .author-box-content p {
	font-size: 0.95rem;
	color: var(--cw-muted);
	line-height: 1.6;
}

/* ---------- Custom Author Box (single-post-enhancements.php) ---------- */
.cw-author-box {
	background: var(--cw-light-surface);
	border-radius: var(--cw-radius-xl, 16px);
	padding: 2rem 2.25rem;
	margin: 3rem 0;
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
	border: 1px solid rgba(26, 46, 40, 0.06);
}

.cw-author-photo {
	flex-shrink: 0;
	width: 80px;
	height: 80px;
}

.cw-author-photo img {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid rgba(76, 175, 130, 0.2);
}

.cw-author-info {
	flex: 1;
	min-width: 0;
}

.cw-author-label {
	font-family: var(--cw-font-ui, sans-serif);
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--cw-emerald, #4CAF82);
	margin-bottom: 0.25rem;
}

.cw-author-name {
	font-family: var(--cw-font-heading, sans-serif);
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--cw-deep-green, #1A2E28);
	margin: 0 0 0.5rem;
}

.cw-author-name a {
	color: inherit;
	text-decoration: none;
}

.cw-author-name a:hover {
	color: var(--cw-emerald, #4CAF82);
}

.cw-author-bio {
	font-size: 0.95rem;
	color: var(--cw-muted, #64748B);
	line-height: 1.65;
	margin: 0 0 0.75rem;
}

.cw-author-credentials {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.cw-credential {
	display: inline-block;
	font-family: var(--cw-font-ui, sans-serif);
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cw-deep-green, #1A2E28);
	background: rgba(76, 175, 130, 0.08);
	border: 1px solid rgba(76, 175, 130, 0.12);
	padding: 4px 12px;
	border-radius: 20px;
}

@media (max-width: 600px) {
	.cw-author-box {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.cw-author-credentials {
		justify-content: center;
	}
}


/* ==========================================================================
   39. MOBILE RESPONSIVE — Comprehensive breakpoints
   ========================================================================== */

/* Tablet (768px) */
@media (max-width: 768px) {
	/* Header */
	.site-header .wrap {
		padding: 0.75rem 1rem;
	}

	.site-header .custom-logo {
		max-height: 32px;
	}

	/* Hero sections */
	.cw-hero-split {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 2rem;
	}

	.cw-hero-content {
		order: 1;
	}

	.cw-hero-media {
		order: 2;
	}

	.cw-stats-row {
		justify-content: center;
	}

	.cw-hero-badge {
		margin-left: auto;
		margin-right: auto;
	}

	.cw-hero-buttons {
		justify-content: center;
	}

	/* Feature grids */
	.cw-feature-grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	/* Testimonial grids */
	.cw-testimonial-grid {
		grid-template-columns: 1fr;
	}

	/* Process timeline */
	.cw-process-timeline {
		grid-template-columns: 1fr;
	}

	/* Comparison table */
	.cw-comparison-table {
		grid-template-columns: 1fr;
	}

	.cw-compare-col {
		border-right: none;
		border-bottom: 1px solid rgba(26, 46, 40, 0.08);
		padding-bottom: 2rem;
		margin-bottom: 1rem;
	}

	/* Value grid */
	.cw-value-grid {
		grid-template-columns: 1fr;
	}

	/* Inquiry selector */
	.cw-inquiry-grid {
		grid-template-columns: 1fr 1fr;
	}

	/* Section padding */
	.cw-section {
		padding: clamp(2.5rem, 6vw, 4rem) 0;
	}

	.cw-contain {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	/* Footer */
	.site-footer .footer-widgets .wrap {
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
	}

	/* Drop cap disabled */
}

/* Mobile (480px) */
@media (max-width: 480px) {
	/* Tighter section spacing */
	.cw-section {
		padding: 2rem 0;
	}

	.cw-contain {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	/* Stats row stays horizontal but more compact */
	.cw-stats-row {
		flex-direction: row;
		flex-wrap: nowrap;
		gap: 0.75rem;
	}

	.cw-stat-item {
		text-align: center;
	}

	.cw-stat-number {
		font-size: 1.25rem;
	}

	.cw-stat-label {
		font-size: 0.6rem;
	}

	/* Buttons full width */
	.cw-hero-buttons {
		flex-direction: column;
		width: 100%;
	}

	.cw-hero-buttons .cw-btn {
		width: 100%;
		text-align: center;
	}

	/* Blog grid — handled by breakpoints in Section 14 */

	/* Inquiry buttons */
	.cw-inquiry-grid {
		grid-template-columns: 1fr;
	}

	/* Footer stacks fully */
	.site-footer .footer-widgets .wrap {
		grid-template-columns: 1fr;
	}

	/* FAQ items */
	.cw-faq-item summary {
		font-size: 1rem;
		padding: 1rem;
	}

	.cw-faq-item .cw-faq-answer {
		padding: 0 1rem 1rem;
	}

	/* Post email CTA */
	.cw-post-email-cta {
		padding: 2rem 1.25rem;
		margin: 2rem -1rem;
	}
}

/* Large screens (1600px+) */
@media (min-width: 1600px) {
	.cw-contain {
		max-width: 1200px;
	}

	body {
		font-size: 1.15rem;
	}
}


/* ==========================================================================
   40. SUBTLE TEXTURE — Noise overlay for dark sections
   ========================================================================== */

.cw-noise-overlay {
	position: absolute;
	inset: 0;
	opacity: 0.03;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
	pointer-events: none;
	z-index: 0;
}


/* ==========================================================================
   41. PAGE-SPECIFIC FIXES
   ========================================================================== */

/* About page timeline items */
.cw-timeline-item {
	position: relative;
}

/* Ensure all page-builder template pages have proper spacing */
.page-template-page-builder .site-inner {
	padding-top: 0;
	margin-top: 0;
}

/* Remove Genesis default margins on builder pages */
.page-template-page-builder .content {
	padding: 0;
}

.page-template-page-builder .entry {
	padding: 0;
	margin: 0;
	border: none;
	box-shadow: none;
}

/* Fix for service page section overlaps */
.page-template-page-builder .cw-section:first-child {
	margin-top: 0;
}

/* Contact page form styling */
.gform_wrapper .gform_body input[type="text"],
.gform_wrapper .gform_body input[type="email"],
.gform_wrapper .gform_body textarea,
.gform_wrapper .gform_body select {
	border: 1px solid rgba(26, 46, 40, 0.15);
	border-radius: var(--cw-radius);
	padding: 0.875rem 1rem;
	font-size: 1rem;
	font-family: var(--cw-font-body);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	background: var(--cw-white);
}

.gform_wrapper .gform_body input[type="text"]:focus,
.gform_wrapper .gform_body input[type="email"]:focus,
.gform_wrapper .gform_body textarea:focus,
.gform_wrapper .gform_body select:focus {
	border-color: var(--cw-emerald);
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.1);
	outline: none;
}

.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"] {
	background: var(--cw-emerald) !important;
	color: var(--cw-white) !important;
	border: none !important;
	border-radius: var(--cw-radius) !important;
	padding: 0.875rem 2rem !important;
	font-family: var(--cw-font-heading) !important;
	font-weight: 600 !important;
	font-size: 1rem !important;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease !important;
}

.gform_wrapper .gform_button:hover,
.gform_wrapper input[type="submit"]:hover {
	background: var(--cw-bright-green) !important;
	transform: translateY(-1px);
}

/* Dark section form overrides */
.cw-section-dark .gform_wrapper .gform_body input[type="text"],
.cw-section-dark .gform_wrapper .gform_body input[type="email"],
.cw-section-dark .gform_wrapper .gform_body textarea {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.15);
	color: var(--cw-white);
}

.cw-section-dark .gform_wrapper .gform_body input::placeholder,
.cw-section-dark .gform_wrapper .gform_body textarea::placeholder {
	color: rgba(255, 255, 255, 0.65);
}

.cw-section-dark .gform_wrapper .gfield_label {
	color: rgba(232, 240, 236, 0.8);
}


/* ==========================================================================
   42. LINK HOVER UNDERLINE ANIMATION — Clean underline effect
   ========================================================================== */

.entry-content a:not(.cw-btn):not(.wp-block-button__link) {
	color: var(--cw-emerald-on-light); /* WCAG AA: 5.30:1 vs white — was emerald 3.0:1 */
	text-decoration: none;
	background-image: linear-gradient(var(--cw-emerald-on-light), var(--cw-emerald-on-light));
	background-size: 0% 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.3s ease;
}

.entry-content a:not(.cw-btn):not(.wp-block-button__link):hover {
	background-size: 100% 1px;
}


/* ==========================================================================
   43. PRINT STYLES
   ========================================================================== */

@media print {
	.site-header,
	.site-footer,
	.nav-primary,
	.cw-post-email-cta,
	.before-footer,
	.cw-header-cta,
	.genesis-skip-link {
		display: none;
	}

	.entry-content {
		max-width: 100% !important;
		font-size: 12pt;
	}

	a[href]::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
		color: #666;
	}

	.cw-section {
		page-break-inside: avoid;
	}
}


/* ==========================================================================
   44. PREMIUM NAV HOVER — Animated underline on nav links
   ========================================================================== */

.nav-primary .genesis-nav-menu > .menu-item > a {
	position: relative;
	transition: color 0.2s ease;
}

.nav-primary .genesis-nav-menu > .menu-item > a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 0;
	height: 2px;
	background: var(--cw-emerald);
	transition: width 0.3s ease, left 0.3s ease;
}

.nav-primary .genesis-nav-menu > .menu-item > a:hover::after,
.nav-primary .genesis-nav-menu > .current-menu-item > a::after {
	width: 100%;
	left: 0;
}


/* ==========================================================================
   45. HERO BADGE POLISH — Subtle glow effect
   ========================================================================== */

.cw-hero-badge {
	position: relative;
	/* backdrop-filter: blur(8px) — removed for GPU perf */
}


/* ==========================================================================
   46. LIGHT SECTION DOT PATTERN — Subtle texture for visual interest
   ========================================================================== */

.front-page-2 .wrap,
.front-page-4 .wrap {
	position: relative;
}

.cw-section-light {
	position: relative;
}

.cw-section-gray {
	position: relative;
}


/* ==========================================================================
   47. STAT COUNTER GLOW — Pulse effect on stat numbers
   ========================================================================== */

.cw-stat-number {
	position: relative;
}

.cw-stat-number::after {
	content: '';
	position: absolute;
	bottom: -4px;
	left: 50%;
	transform: translateX(-50%);
	width: 24px;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--cw-bright-green), transparent);
	border-radius: 1px;
}


/* Section 48 merged into section 56 */


/* ==========================================================================
   49. SMOOTH PAGE LOAD — Fade-in effect
   ========================================================================== */

.site-container {
	animation: cw-page-fade-in 0.4s ease-out;
}

@keyframes cw-page-fade-in {
	from {
		opacity: 0.92;
	}
	to {
		opacity: 1;
	}
}


/* ==========================================================================
   50. CTA BUTTON SHIMMER — Subtle shine effect on primary buttons
   ========================================================================== */

.cw-btn-primary {
	position: relative;
	overflow: hidden;
}

.cw-btn-primary::after {
	content: '';
	position: absolute;
	top: -50%;
	left: -100%;
	width: 50%;
	height: 200%;
	background: linear-gradient(
		90deg,
		transparent,
		rgba(255, 255, 255, 0.1),
		transparent
	);
	transform: skewX(-20deg);
	transition: left 0.6s ease;
	pointer-events: none;
}

.cw-btn-primary:hover::after {
	left: 150%;
}


/* ==========================================================================
   51. IMAGE TREATMENT — Consistent rounded corners and hover effect
   ========================================================================== */

.cw-hero-media img,
.cw-about-hero-grid img {
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-hero-media:hover img,
.cw-about-hero-grid:hover img {
	transform: scale(1.02);
}


/* ==========================================================================
   52. HOMEPAGE BLOG CARDS — Display Posts shortcode styling
   ========================================================================== */

.cw-homepage-posts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.cw-homepage-posts .listing-item {
	background: var(--cw-white);
	border-radius: var(--cw-radius-lg);
	overflow: hidden;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
	border: 1px solid rgba(26, 46, 40, 0.06);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	display: flex;
	flex-direction: column;
	position: relative;
}

.cw-homepage-posts .listing-item:hover {
	transform: translateY(-6px);
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.1);
	border-color: rgba(76, 175, 130, 0.15);
}

/* Gradient top accent bar */
.cw-homepage-posts .listing-item::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	border-radius: var(--cw-radius-lg) var(--cw-radius-lg) 0 0;
}

.cw-homepage-posts .listing-item a {
	text-decoration: none;
}

/* Image variant — when images are present */
.cw-homepage-posts .listing-item .image {
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 10;
}

.cw-homepage-posts .listing-item .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease, filter 0.3s ease;
	filter: brightness(1.35) contrast(1.15) saturate(1.2);
}

.cw-homepage-posts .listing-item:hover .image img {
	transform: scale(1.05);
	filter: brightness(1.5) contrast(1.2) saturate(1.3);
}

/* Override theme's dark overlay ::before on front-page-5 listing items */
.front-page-5 .listing-item:before {
	display: none !important;
}

/* Text-only variant — no images, clean typographic cards */
.cw-posts-no-image .listing-item {
	padding: 2rem 1.75rem 1.5rem;
}

.cw-posts-no-image .listing-item .image {
	display: none !important;
}

/* Force element order: title first, excerpt, date last */
/* Override theme's style.css:3172 which sets position:absolute, opacity:0 for hover overlay effect */
.cw-homepage-posts .listing-item .title,
.cw-homepage-posts .listing-item a.title,
.front-page-5 .display-posts-listing .listing-item .title,
.front-page-5 .display-posts-listing .listing-item a.title {
	display: block;
	position: static;
	font-family: var(--cw-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--cw-deep-green);
	margin: 0 0 0.75rem 0;
	padding: 0;
	height: auto;
	width: auto;
	top: auto;
	left: auto;
	right: auto;
	bottom: auto;
	z-index: auto;
	text-align: left;
	transition: color 0.2s ease;
	order: -1;
	opacity: 1;
	transform: none;
}

.cw-homepage-posts .listing-item .title:hover {
	color: var(--cw-emerald);
}

.cw-homepage-posts .listing-item .excerpt-dash {
	display: none;
}

.cw-homepage-posts .listing-item .excerpt {
	display: block;
	font-size: 0.95rem;
	line-height: 1.65;
	color: var(--cw-muted);
	flex: 1;
	order: 1;
	text-align: left;
}

/* Title left-aligned on cards */
.cw-homepage-posts .listing-item .title,
.cw-homepage-posts .listing-item a.title {
	text-align: left;
}

.cw-homepage-posts .listing-item .date {
	display: block;
	font-size: 0.72rem;
	color: #999;
	font-family: var(--cw-font-ui);
	margin-top: auto;
	padding-top: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border-top: 1px solid rgba(26, 46, 40, 0.06);
	order: 2;
}

/* Image wrapper when present */
.cw-homepage-posts .listing-item .image {
	order: -2;
}

@media (max-width: 768px) {
	.cw-homepage-posts {
		grid-template-columns: 1fr;
		max-width: 480px;
		margin-left: auto;
		margin-right: auto;
	}
}


/* 53. Header — consolidated in section 3 above */

.site-header .wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* Nav link colors */
.nav-primary .genesis-nav-menu a {
	color: rgba(232, 240, 236, 0.85) !important;
	font-family: var(--cw-font-heading);
	font-size: 0.9rem;
	font-weight: 500;
	letter-spacing: 0.01em;
}

.nav-primary .genesis-nav-menu a:hover,
.nav-primary .genesis-nav-menu .current-menu-item > a {
	color: var(--cw-bright-green) !important;
}

/* Sub-menu styling */
.nav-primary .genesis-nav-menu .sub-menu {
	background: var(--cw-deep-green);
	border: 1px solid rgba(76, 175, 130, 0.15);
	border-radius: var(--cw-radius);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
	padding: 0.5rem 0;
}

.nav-primary .genesis-nav-menu .sub-menu a {
	padding: 0.5rem 1.25rem !important;
	font-size: 0.85rem !important;
}

/* Responsive menu button */
.responsive-menu-icon {
	color: var(--cw-white);
}


/* ==========================================================================
   54. SECTION BACKGROUNDS — Visual depth between sections
   ========================================================================== */

/* Front-page-3 (philosophy): Deep green with gradient */
.front-page-3 {
	background: linear-gradient(160deg, #1A2E28 0%, #0f1f1a 100%) !important;
}

/* Front-page-6 (newsletter CTA): Deep green */
.front-page-6 {
	background: linear-gradient(160deg, #1A2E28 0%, #142420 100%) !important;
}


/* ==========================================================================
   55. SECTION SPACING — Consistent vertical rhythm
   ========================================================================== */

.front-page-2 .wrap,
.front-page-3 .wrap,
.front-page-4 .wrap,
.front-page-5 .wrap,
.front-page-6 .wrap {
	max-width: 1200px !important;
	margin: 0 auto;
	padding: 0 clamp(1.5rem, 4vw, 3rem);
}


/* ==========================================================================
   56. TESTIMONIAL SECTION POLISH — Better visual treatment
   ========================================================================== */

.front-page-4 .cw-testimonial-grid {
	gap: 2rem;
}

.front-page-4 .cw-testimonial-card {
	display: flex;
	flex-direction: column;
	background: var(--cw-white);
	border-radius: 20px;
	padding: 2.5rem;
	box-shadow: 0 4px 24px rgba(26, 46, 40, 0.05);
	border: 1px solid rgba(26, 46, 40, 0.04);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	position: relative;
}

.front-page-4 .cw-testimonial-card:hover {
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.08);
	transform: translateY(-4px);
	border-color: rgba(76, 175, 130, 0.12);
}

/* Large quote mark on testimonial cards */
.front-page-4 .cw-testimonial-card::before {
	content: '\201C';
	position: absolute;
	top: 16px;
	right: 24px;
	font-size: 4.5rem;
	color: rgba(76, 175, 130, 0.06);
	font-family: Georgia, 'Times New Roman', serif;
	line-height: 1;
	pointer-events: none;
}

@media (max-width: 900px) {
	.front-page-4 .cw-testimonial-grid {
		grid-template-columns: 1fr;
		max-width: 600px;
		margin: 0 auto;
	}
}


/* ==========================================================================
   57. ACCENT UNDERLINES & SCRIPT TYPOGRAPHY — Premium type treatments
   ========================================================================== */

/* Section label — small uppercase badge-style text */
.cw-section-label {
	display: inline-block;
	font-family: var(--cw-font-ui);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cw-emerald);
	margin-bottom: 0.75rem;
}

/* Dark section variant */
.front-page-3 .cw-section-label,
.front-page-6 .cw-section-label,
.before-footer .cw-section-label {
	color: var(--cw-bright-green);
}

/* Italic highlight for pull quotes in content */
.cw-pull-quote {
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: 1.3rem;
	font-style: italic;
	color: var(--cw-deep-green);
	border-left: 4px solid var(--cw-emerald);
	padding-left: 1.5rem;
	margin: 2.5rem 0;
	line-height: 1.7;
}

/* Gradient underline on section H2s */
.front-page-2 h2,
.front-page-4 h2,
.front-page-5 h2 {
	position: relative;
	padding-bottom: 1rem;
	text-align: center;
}

.front-page-2 h2::after,
.front-page-4 h2::after,
.front-page-5 h2::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	border-radius: 2px;
}

/* Subtle green accent on section sub-headings */
.front-page-2 .cw-feature-card h3,
.front-page-2 .cw-feature-card h4 {
	color: var(--cw-deep-green);
	font-size: 1.35rem;
	font-weight: 700;
}


/* ==========================================================================
   58. RESPONSIVE MENU FIXES — Clean full-screen mobile nav
   ========================================================================== */

.genesis-responsive-menu .genesis-nav-menu .menu-item {
	border: none;
}

@media (max-width: 960px) {
	/* Mobile nav panel — full-screen overlay */
	.genesis-responsive-menu {
		background: rgba(26, 46, 40, 0.98);
		/* backdrop-filter: blur(24px) — removed for GPU perf */
	}

	.genesis-responsive-menu .genesis-nav-menu {
		background: transparent;
		padding: 2rem 0;
		max-width: 400px;
		margin: 0 auto;
	}

	.genesis-responsive-menu .genesis-nav-menu .menu-item {
		text-align: center;
	}

	.genesis-responsive-menu .genesis-nav-menu a {
		padding: 1rem 1.5rem !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.04);
		font-size: 1.1rem !important;
		font-weight: 500;
		letter-spacing: 0.01em;
		transition: color 0.2s ease, background 0.2s ease;
	}

	.genesis-responsive-menu .genesis-nav-menu a:hover {
		color: var(--cw-bright-green) !important;
		background: rgba(76, 175, 130, 0.06);
	}

	/* Hamburger toggle — mobile inherits from base .menu-toggle rules above */

	.sub-menu-toggle {
		background: transparent !important;
		color: rgba(232, 240, 236, 0.75) !important;
		border: none !important;
		font-size: 0.9rem !important;
	}
}


/* ==========================================================================
   59. SECTION DIVIDERS — Smooth transitions between sections
   ========================================================================== */

/* Top-line accent between light sections */
.front-page-4::before,
.front-page-5::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: min(80%, 600px);
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(26, 46, 40, 0.08), transparent);
}

/* Ensure sections have position relative for pseudo-elements */
.front-page-4,
.front-page-5 {
	position: relative;
}


/* ==========================================================================
   60. PREMIUM DESIGN UPGRADE — Texture, depth, typography, imagery
   ========================================================================== */

/* ---------- Noise texture overlay for dark sections ---------- */
.cw-noise-overlay {
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
	background-repeat: repeat;
	background-size: 256px 256px;
	pointer-events: none;
	z-index: 0;
	opacity: 0.4;
}

/* ---------- Hero section refinements ---------- */
.front-page-1 {
	overflow: hidden;
}

/* Subtle grid pattern behind hero */
.front-page-1 .wrap::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(76, 175, 130, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(76, 175, 130, 0.03) 1px, transparent 1px);
	background-size: 60px 60px;
	z-index: 0;
	pointer-events: none;
}

.front-page-1 .wrap {
	position: relative;
}

/* Hero badge styling */
.front-page-1 .cw-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: rgba(76, 175, 130, 0.08);
	border: 1px solid rgba(76, 175, 130, 0.2);
	border-radius: var(--cw-radius-pill);
	padding: 0.45rem 1.1rem;
	font-family: var(--cw-font-ui);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cw-bright-green);
	margin-bottom: 1.5rem;
}

/* Hero H1 sizing consolidated into Section 3 (.front-page-1 h1) */

/* Hero subtext */
.front-page-1 .cw-hero-subtext {
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: clamp(1rem, 1.8vw, 1.15rem);
	line-height: 1.75;
	color: rgba(232, 240, 236, 0.7);
	max-width: 480px;
	margin-bottom: 2rem;
}

/* Hero buttons row */
.front-page-1 .cw-hero-buttons {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	margin-top: 0.5rem;
	margin-bottom: 2.5rem;
}

.front-page-1 .cw-hero-buttons .cw-btn {
	box-shadow: none;
}

.front-page-1 .cw-hero-buttons .cw-btn-primary {
	background: var(--cw-emerald);
	color: var(--cw-white);
	padding: 0.85rem 2rem;
	font-size: 0.95rem;
	font-weight: 600;
	border-radius: var(--cw-radius-pill);
	border: none;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	box-shadow: 0 4px 20px rgba(76, 175, 130, 0.3);
}

.front-page-1 .cw-hero-buttons .cw-btn-primary:hover {
	background: var(--cw-bright-green);
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.4);
}

.front-page-1 .cw-hero-buttons .cw-btn-outline {
	background: transparent;
	color: rgba(232, 240, 236, 0.85);
	padding: 0.85rem 2rem;
	font-size: 0.95rem;
	font-weight: 500;
	border-radius: var(--cw-radius-pill);
	border: 1px solid rgba(232, 240, 236, 0.2);
	transition: all 0.3s ease;
}

.front-page-1 .cw-hero-buttons .cw-btn-outline:hover {
	border-color: rgba(232, 240, 236, 0.5);
	color: var(--cw-white);
	background: rgba(255, 255, 255, 0.04);
}

/* Stats row polish */
.front-page-1 .cw-stats-row {
	display: flex;
	gap: 2rem;
	margin-bottom: 2rem;
}

.front-page-1 .cw-stat-item {
	position: relative;
	padding: 0.75rem 0;
}

.front-page-1 .cw-stat-number {
	font-family: var(--cw-font-heading);
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--cw-bright-green);
	line-height: 1;
	margin-bottom: 0.25rem;
}

.front-page-1 .cw-stat-label {
	font-family: var(--cw-font-ui);
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(232, 240, 236, 0.75);
}

/* Hero image — ensure full portrait visibility */
.front-page-1 .cw-hero-media {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

.front-page-1 .cw-hero-media img {
	max-height: 560px;
	width: auto;
	max-width: 100%;
	object-fit: contain;
	object-position: center center;
	border-radius: 20px;
	position: relative;
	z-index: 1;
}

/* Decorative glow behind headshot */
.front-page-1 .cw-hero-media::after {
	content: '';
	position: absolute;
	width: 70%;
	height: 70%;
	top: 15%;
	left: 15%;
	background: radial-gradient(circle, rgba(76, 175, 130, 0.15) 0%, transparent 70%);
	border-radius: 50%;
	z-index: 0;
	filter: blur(40px);
}


/* ---------- Services Section (front-page-2) refinements ---------- */
.front-page-2 {
	background: linear-gradient(180deg, #FFFFFF 0%, #F8FAF9 100%) !important;
	position: relative;
}

/* Subtle top fade from hero */
.front-page-2::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 120px;
	background: linear-gradient(180deg, rgba(26, 46, 40, 0.02) 0%, transparent 100%);
	pointer-events: none;
}

.front-page-2 .cw-feature-card {
	background: var(--cw-white);
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 20px;
	padding: 2.5rem;
	transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
	position: relative;
	overflow: hidden;
}

.front-page-2 .cw-feature-card::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	opacity: 0;
	transition: opacity 0.4s ease;
}

.front-page-2 .cw-feature-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 60px rgba(26, 46, 40, 0.08);
	border-color: rgba(76, 175, 130, 0.12);
}

.front-page-2 .cw-feature-card:hover::after {
	opacity: 1;
}

/* Service card icons */
.front-page-2 .cw-feature-card .cw-card-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: rgba(76, 175, 130, 0.08);
	margin-bottom: 1.5rem;
	font-size: 1.3rem;
}

/* Service card tag line */
.front-page-2 .cw-feature-card em {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	color: var(--cw-muted);
	font-size: 1rem;
	display: block;
	margin-bottom: 1rem;
}

/* Service card bullet list */
.front-page-2 .cw-feature-card .cw-card-list {
	list-style: none;
	padding: 0;
	margin: 1.25rem 0;
}

.front-page-2 .cw-feature-card .cw-card-list li {
	padding: 0.35rem 0;
	padding-left: 1.5rem;
	position: relative;
	color: var(--cw-body);
	font-size: 0.95rem;
}

.front-page-2 .cw-feature-card .cw-card-list li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--cw-emerald);
	font-weight: 700;
}

/* "Explore" link styling */
.front-page-2 .cw-feature-card .cw-card-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--cw-emerald);
	text-decoration: none;
	margin-top: auto;
	transition: gap 0.3s ease, color 0.2s ease;
}

.front-page-2 .cw-feature-card .cw-card-link:hover {
	gap: 0.6rem;
	color: var(--cw-bright-green);
}


/* ---------- Philosophy Section (front-page-3) refinements ---------- */
.front-page-3 {
	position: relative;
	overflow: hidden;
}

.front-page-3 .widget {
	position: relative;
	z-index: 1;
}

.front-page-3 h2 {
	font-family: 'Source Serif 4', Georgia, serif !important;
	font-size: clamp(1.6rem, 3.5vw, 2.25rem) !important;
	font-weight: 600 !important;
	font-style: italic !important;
	line-height: 1.45 !important;
	color: var(--cw-white) !important;
	max-width: 720px;
	margin: 0 auto 1.5rem;
	text-align: center;
}

.front-page-3 h2::after {
	content: '';
	display: block;
	width: 60px;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	border-radius: 2px;
	margin: 1.25rem auto 0;
}

/* Hide inline HR (CSS ::after handles the accent line) */
.front-page-3 hr {
	display: none !important;
}

.front-page-3 p {
	color: rgba(232, 240, 236, 0.65) !important;
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: 1.05rem;
	line-height: 1.8;
	max-width: 680px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

/* Decorative accent lines */
.front-page-3::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(76, 175, 130, 0.15), transparent);
}


/* ---------- Testimonial Section (front-page-4) refinements ---------- */
.front-page-4 {
	background: linear-gradient(180deg, #F8FAF9 0%, #FFFFFF 50%, #F8FAF9 100%) !important;
}

.front-page-4 .cw-testimonial-stars {
	color: #E5A84B;
	font-size: 0.9rem;
	letter-spacing: 2px;
	margin-bottom: 1rem;
}

.front-page-4 .cw-testimonial-quote {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-size: 0.98rem;
	line-height: 1.75;
	color: var(--cw-body);
	flex: 1;
	margin-bottom: 1.5rem;
}

.front-page-4 .cw-testimonial-author {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(26, 46, 40, 0.06);
}

.front-page-4 .cw-testimonial-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid rgba(76, 175, 130, 0.12);
}

.front-page-4 .cw-testimonial-name {
	font-family: var(--cw-font-heading);
	font-weight: 700;
	font-size: 0.92rem;
	color: var(--cw-deep-green);
	line-height: 1.3;
}

.front-page-4 .cw-testimonial-role {
	font-size: 0.82rem;
	color: var(--cw-muted);
}

/* "Read more from founders" link */
.front-page-4 .cw-testimonials-link {
	text-align: center;
	margin-top: 2.5rem;
}

.front-page-4 .cw-testimonials-link a {
	color: var(--cw-emerald);
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	transition: color 0.2s ease;
}

.front-page-4 .cw-testimonials-link a:hover {
	color: var(--cw-bright-green);
}


/* ---------- Blog Section (front-page-5) refinements ---------- */
.front-page-5 {
	background: linear-gradient(180deg, #FFFFFF 0%, #F8FAF9 100%) !important;
}

/* Blog card hover effects */
.cw-homepage-posts .listing-item {
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(26, 46, 40, 0.04);
}

.cw-homepage-posts .listing-item:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 40px rgba(26, 46, 40, 0.08);
	border-color: rgba(76, 175, 130, 0.12);
}

/* Blog card gradient top stripe */
.cw-homepage-posts .listing-item::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	border-radius: 16px 16px 0 0;
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 2;
	pointer-events: none;
}

.cw-homepage-posts .listing-item:hover::before {
	opacity: 1;
}


/* ---------- Newsletter CTA Section (front-page-6) refinements ---------- */
.front-page-6 {
	position: relative;
	overflow: hidden;
}

.front-page-6 .widget {
	position: relative;
	z-index: 1;
}

.front-page-6 h2,
.front-page-6 h3 {
	color: var(--cw-white) !important;
	font-family: var(--cw-font-heading) !important;
}

.front-page-6 p {
	color: rgba(232, 240, 236, 0.65) !important;
}

/* Gravity Form styling inside dark sections */
.front-page-6 .gform_wrapper input[type="text"],
.front-page-6 .gform_wrapper input[type="email"],
.front-page-6 .gform_wrapper textarea,
.front-page-6 .gform_wrapper select {
	background: rgba(255, 255, 255, 0.06) !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
	color: var(--cw-white) !important;
	border-radius: var(--cw-radius) !important;
	padding: 0.85rem 1.1rem !important;
	font-size: 0.95rem !important;
	transition: border-color 0.2s ease, background 0.2s ease !important;
}

.front-page-6 .gform_wrapper input:focus,
.front-page-6 .gform_wrapper textarea:focus,
.front-page-6 .gform_wrapper select:focus {
	border-color: var(--cw-emerald) !important;
	background: rgba(255, 255, 255, 0.09) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.1) !important;
}

.front-page-6 .gform_wrapper label,
.front-page-6 .gform_wrapper .gfield_label {
	color: rgba(232, 240, 236, 0.8) !important;
	font-family: var(--cw-font-heading) !important;
	font-weight: 600 !important;
	font-size: 0.85rem !important;
}

.front-page-6 .gform_wrapper .gfield_required {
	color: var(--cw-emerald) !important;
}

.front-page-6 .gform_wrapper .gform_button,
.front-page-6 .gform_wrapper input[type="submit"] {
	background: var(--cw-emerald) !important;
	color: var(--cw-white) !important;
	border: none !important;
	border-radius: var(--cw-radius-pill) !important;
	padding: 0.9rem 2.5rem !important;
	font-family: var(--cw-font-heading) !important;
	font-weight: 600 !important;
	font-size: 0.95rem !important;
	cursor: pointer;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
	box-shadow: 0 4px 20px rgba(76, 175, 130, 0.3) !important;
}

.front-page-6 .gform_wrapper .gform_button:hover,
.front-page-6 .gform_wrapper input[type="submit"]:hover {
	background: var(--cw-bright-green) !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.4) !important;
}

/* Gravity Form description text */
.front-page-6 .gform_wrapper .gfield_description {
	color: rgba(232, 240, 236, 0.7) !important;
	font-size: 0.875rem !important;
}

/* Select dropdown arrow color fix */
.front-page-6 .gform_wrapper select {
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234CAF82' stroke-width='2' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 1rem center !important;
	padding-right: 2.5rem !important;
}


/* Before-footer CTA refinements — Consolidated into Section 12 */


/* ---------- Footer refinements ---------- */
.site-footer {
	background: var(--cw-deep-green) !important;
	color: rgba(232, 240, 236, 0.6) !important;
	position: relative;
}

.site-footer::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(76, 175, 130, 0.2), transparent);
}

.footer-widgets {
	background: transparent !important;
}

.footer-widgets .wrap {
	max-width: 1200px;
}

.footer-widgets .widget-title {
	color: var(--cw-white) !important;
	font-family: var(--cw-font-heading) !important;
	font-size: 0.82rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	margin-bottom: 1.25rem !important;
}

.footer-widgets a {
	color: rgba(232, 240, 236, 0.75) !important;
	text-decoration: none !important;
	font-size: 0.92rem !important;
	transition: color 0.2s ease !important;
}

.footer-widgets a:hover {
	color: var(--cw-bright-green) !important;
}

.footer-widgets p {
	color: rgba(232, 240, 236, 0.75) !important;
	font-size: 0.9rem !important;
	line-height: 1.7 !important;
}

/* Only center the credits bar, not all footer content */
.site-footer .creds {
	text-align: center;
}

.site-footer p {
	color: rgba(232, 240, 236, 0.7) !important;
	font-size: 0.82rem !important;
}


/* ==========================================================================
   61. GLOBAL BUTTON SYSTEM — Consistent, polished buttons throughout
   ========================================================================== */

.cw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	text-decoration: none;
	border-radius: var(--cw-radius-pill);
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	cursor: pointer;
	line-height: 1.4;
}

.cw-btn-primary {
	background: var(--cw-emerald);
	color: var(--cw-white);
	padding: 0.85rem 2rem;
	font-size: 0.95rem;
	border: none;
	box-shadow: 0 4px 20px rgba(76, 175, 130, 0.25);
}

.cw-btn-primary:hover {
	background: var(--cw-bright-green);
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.35);
	color: var(--cw-white);
}

.cw-btn-outline {
	background: transparent;
	padding: 0.8rem 1.75rem;
	font-size: 0.92rem;
	border: 1.5px solid rgba(76, 175, 130, 0.3);
	color: var(--cw-emerald);
}

.cw-btn-outline:hover {
	border-color: var(--cw-emerald);
	background: rgba(76, 175, 130, 0.04);
	color: var(--cw-emerald);
	transform: translateY(-1px);
}

/* Ghost variant (for dark backgrounds) */
.cw-btn-ghost {
	background: transparent;
	padding: 0.8rem 1.75rem;
	font-size: 0.92rem;
	border: 1.5px solid rgba(232, 240, 236, 0.2);
	color: rgba(232, 240, 236, 0.85);
}

.cw-btn-ghost:hover {
	border-color: rgba(232, 240, 236, 0.5);
	color: var(--cw-white);
	background: rgba(255, 255, 255, 0.04);
}


/* ==========================================================================
   62. GLOBAL FORM STYLING — Consistent form appearance
   ========================================================================== */

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper textarea,
.gform_wrapper select {
	font-family: var(--cw-font-body) !important;
	border-radius: var(--cw-radius) !important;
	border: 1.5px solid rgba(26, 46, 40, 0.12) !important;
	padding: 0.8rem 1rem !important;
	font-size: 0.95rem !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.gform_wrapper input:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
	border-color: var(--cw-emerald) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.08) !important;
}

.gform_wrapper .gfield_label {
	font-family: var(--cw-font-heading) !important;
	font-weight: 600 !important;
	font-size: 0.88rem !important;
	color: var(--cw-deep-green) !important;
}

.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"] {
	background: var(--cw-emerald) !important;
	color: var(--cw-white) !important;
	border: none !important;
	border-radius: var(--cw-radius-pill) !important;
	padding: 0.85rem 2.5rem !important;
	font-family: var(--cw-font-heading) !important;
	font-weight: 600 !important;
	font-size: 0.95rem !important;
	cursor: pointer;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.gform_wrapper .gform_button:hover,
.gform_wrapper input[type="submit"]:hover {
	background: var(--cw-bright-green) !important;
	transform: translateY(-2px);
	box-shadow: 0 6px 24px rgba(76, 175, 130, 0.3) !important;
}


/* ==========================================================================
   63. BLOG ARCHIVE & SINGLE POST — Premium layouts
   ========================================================================== */

/* Blog archive grid — consolidated to Section 14 above */

/* Blog cards on archive */
.cw-blog-card {
	background: var(--cw-white);
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid rgba(26, 46, 40, 0.06);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	box-shadow: 0 2px 12px rgba(26, 46, 40, 0.04);
}

.cw-blog-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.08);
	border-color: rgba(76, 175, 130, 0.12);
}

/* aspect-ratio consolidated into Section 14 (1200/630) */
.cw-blog-card .entry-image-link {
	display: block;
	overflow: hidden;
}

.cw-blog-card .entry-image-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.cw-blog-card:hover .entry-image-link img {
	transform: scale(1.05);
}

/* .cw-blog-card .entry-content padding — Consolidated into Section 14 */

.cw-blog-card .entry-title {
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.35;
}

.cw-blog-card .entry-title a {
	color: var(--cw-deep-green);
	text-decoration: none;
}

.cw-blog-card .entry-title a:hover {
	color: var(--cw-emerald);
}

.cw-blog-card .entry-meta {
	font-size: 0.78rem;
	color: var(--cw-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Single post content */
.single-post .entry-content {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: 1.08rem;
	line-height: 1.85;
	color: var(--cw-body);
}

.single-post .entry-content h2,
.single-post .entry-content h3 {
	font-family: var(--cw-font-heading);
	color: var(--cw-deep-green);
	margin-top: 2.5rem;
	margin-bottom: 1rem;
}

.single-post .entry-content a {
	color: var(--cw-emerald-on-light); /* WCAG AA: 5.30:1 vs white */
	text-decoration: underline;
	text-decoration-color: rgba(27, 122, 74, 0.4);
	text-underline-offset: 3px;
	transition: text-decoration-color 0.2s ease;
}

.single-post .entry-content a:hover {
	text-decoration-color: var(--cw-emerald);
}

/* Blog page header */
.cw-blog-header {
	background: var(--cw-deep-green) !important;
	background-image: none !important;
	padding: 3rem 0 !important;
	min-height: auto !important;
}

.cw-blog-header .entry-title,
.cw-blog-header h1 {
	color: var(--cw-white) !important;
	font-family: var(--cw-font-heading) !important;
	font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
	font-weight: 700 !important;
}


/* ==========================================================================
   64. POST EMAIL CTA — After single posts
   ========================================================================== */

.cw-post-email-cta {
	background: linear-gradient(160deg, #F8FAF9 0%, #f0f5f2 100%);
	border: 1px solid rgba(76, 175, 130, 0.1);
	border-radius: 20px;
	padding: 3rem 2.5rem;
	margin: 3rem auto;
	max-width: 640px;
	text-align: center;
}

.cw-post-email-cta h3 {
	font-family: var(--cw-font-heading);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--cw-deep-green);
	margin-bottom: 0.5rem;
}

.cw-post-email-cta p {
	color: var(--cw-muted);
	font-size: 1rem;
	margin-bottom: 1.5rem;
}


/* ==========================================================================
   65. SERVICE PAGES — Full-width section system
   ========================================================================== */

/* Full-width sections */
.cw-section {
	padding: clamp(4rem, 8vw, 7rem) 0;
	position: relative;
}

.cw-section-dark {
	background: linear-gradient(160deg, #1A2E28 0%, #0f1f1a 100%);
	color: var(--cw-white);
}

.cw-section-light {
	background: #FFFFFF;
}

.cw-section-gray {
	background: #F8FAF9;
}

.cw-contain {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 clamp(1.5rem, 4vw, 3rem);
}

/* Section titles on dark backgrounds */
.cw-section-dark h2 {
	color: var(--cw-white) !important;
}

.cw-section-dark p {
	color: rgba(232, 240, 236, 0.65);
}

.cw-section-dark .cw-section-label {
	color: var(--cw-bright-green);
}


/* ==========================================================================
   66. ABOUT PAGE — Timeline, values, personal brand
   ========================================================================== */

/* Section 66 timeline — now unified with the main .cw-timeline above.
   No duplicate rules needed — the main timeline section handles all styling. */

/* Value cards */
.cw-value-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2rem;
}

.cw-value-card {
	background: var(--cw-white);
	border-radius: 20px;
	padding: 2.5rem;
	border: 1px solid rgba(26, 46, 40, 0.06);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-value-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.06);
	border-color: rgba(76, 175, 130, 0.12);
}

.cw-value-card h3 {
	font-family: var(--cw-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--cw-deep-green);
	margin-bottom: 0.75rem;
}

.cw-value-card p {
	color: var(--cw-muted);
	font-size: 0.95rem;
	line-height: 1.7;
}


/* ==========================================================================
   67. CONTACT PAGE — Inquiry selector, form
   ========================================================================== */

.cw-inquiry-selector {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 0.75rem;
	margin: 2rem 0;
}

.cw-inquiry-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1rem;
	border: 1.5px solid rgba(26, 46, 40, 0.1);
	border-radius: var(--cw-radius);
	background: var(--cw-white);
	font-family: var(--cw-font-heading);
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--cw-deep-green);
	cursor: pointer;
	transition: all 0.25s ease;
	text-decoration: none;
}

.cw-inquiry-btn:hover {
	border-color: var(--cw-emerald);
	color: var(--cw-emerald);
	background: rgba(76, 175, 130, 0.03);
}

.cw-inquiry-btn.active {
	border-color: var(--cw-emerald);
	background: rgba(76, 175, 130, 0.06);
	color: var(--cw-emerald);
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.08);
}


/* ==========================================================================
   68. PROCESS TIMELINE — Service page process sections
   (Main styles defined in the Process Timeline section above.
    Only .cw-step-number variant + h4 overrides kept here.)
   ========================================================================== */

.cw-process-step .cw-step-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(76, 175, 130, 0.08);
	color: var(--cw-emerald);
	font-family: var(--cw-font-heading);
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 1.25rem;
	border: 2px solid rgba(76, 175, 130, 0.15);
	box-shadow: 0 0 16px rgba(76, 175, 130, 0.08);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-process-step:hover .cw-step-number {
	box-shadow: 0 0 24px rgba(76, 175, 130, 0.2);
	transform: scale(1.08);
}

.cw-section-dark .cw-process-step .cw-step-number {
	background: rgba(92, 219, 149, 0.08);
	color: var(--cw-bright-green);
	border-color: rgba(92, 219, 149, 0.25);
}

.cw-process-step h4 {
	font-family: var(--cw-font-heading);
	font-size: 1.05rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
}


/* ==========================================================================
   69. COMPARISON TABLE — Fractional CMO page
   ========================================================================== */

.cw-comparison-table {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	margin-top: 2.5rem;
}

.cw-compare-col {
	background: var(--cw-white);
	border-radius: 20px;
	padding: 2.5rem 2rem;
	border: 1px solid rgba(26, 46, 40, 0.06);
	text-align: center;
	transition: all 0.35s ease;
}

.cw-compare-col.cw-compare-highlight {
	border-color: var(--cw-emerald);
	box-shadow: 0 12px 48px rgba(76, 175, 130, 0.1);
	position: relative;
}

.cw-compare-col.cw-compare-highlight::before {
	content: 'Best Value';
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--cw-emerald);
	color: var(--cw-white);
	font-family: var(--cw-font-heading);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.35rem 1rem;
	border-radius: var(--cw-radius-pill);
}

.cw-compare-col h3 {
	font-family: var(--cw-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	margin-bottom: 1.5rem;
}

.cw-compare-col ul {
	list-style: none;
	padding: 0;
	text-align: left;
}

.cw-compare-col ul li {
	padding: 0.5rem 0;
	padding-left: 1.5rem;
	position: relative;
	font-size: 0.92rem;
	color: var(--cw-body);
	border-bottom: 1px solid rgba(26, 46, 40, 0.04);
}

.cw-compare-col ul li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--cw-emerald);
	font-weight: 700;
}

.cw-compare-col ul li.cw-compare-con::before {
	content: '✗';
	color: #d45;
}

@media (max-width: 768px) {
	.cw-comparison-table {
		grid-template-columns: 1fr;
		max-width: 400px;
		margin-left: auto;
		margin-right: auto;
	}
}


/* ==========================================================================
   70. FAQ ACCORDION — Clean expandable sections
   ========================================================================== */

.cw-faq-accordion {
	max-width: 720px;
	margin: 2.5rem auto 0;
}

.cw-faq-item {
	border-bottom: 1px solid rgba(26, 46, 40, 0.08);
}

.cw-faq-item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.25rem 0;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 1rem;
	color: var(--cw-deep-green);
	cursor: pointer;
	list-style: none;
	transition: color 0.2s ease;
}

.cw-faq-item summary::-webkit-details-marker {
	display: none;
}

.cw-faq-item summary::after {
	content: '+';
	font-size: 1.5rem;
	color: var(--cw-emerald);
	transition: transform 0.3s ease;
	flex-shrink: 0;
	margin-left: 1rem;
}

.cw-faq-item[open] summary::after {
	content: '−';
}

.cw-faq-item summary:hover {
	color: var(--cw-emerald);
}

.cw-faq-item .cw-faq-answer {
	padding: 0 0 1.5rem;
	color: var(--cw-muted);
	font-size: 0.95rem;
	line-height: 1.75;
}

/* Dark section FAQ variant */
.cw-section-dark .cw-faq-item {
	border-color: rgba(232, 240, 236, 0.08);
}

.cw-section-dark .cw-faq-item summary {
	color: var(--cw-white);
}

.cw-section-dark .cw-faq-item .cw-faq-answer {
	color: rgba(232, 240, 236, 0.6);
}


/* ==========================================================================
   71. SMOOTH SCROLL & SELECTION — Micro-interactions
   ========================================================================== */

html {
	scroll-behavior: smooth;
}

::selection {
	background: rgba(76, 175, 130, 0.15);
	color: var(--cw-deep-green);
}

/* Focus-visible for keyboard accessibility */
*:focus-visible {
	outline: 2px solid var(--cw-emerald);
	outline-offset: 3px;
	border-radius: 4px;
}

/* Smooth image loading */
img {
	transition: opacity 0.3s ease;
}

img[loading="lazy"] {
	opacity: 0;
}

img.loaded,
img[loading="lazy"][src] {
	opacity: 1;
}


/* ==========================================================================
   72. SERVICE PAGE COMPONENT CLASSES — Used by FC + CMO pages
   ========================================================================== */

/* Text center utility */
.cw-text-center {
	text-align: center;
}

/* Section title — large heading */
.cw-section-title {
	font-family: var(--cw-font-heading);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--cw-deep-green);
	margin-bottom: 0.75rem;
}

.cw-section-dark .cw-section-title {
	color: var(--cw-white);
}

/* Section subtitle — supportive paragraph under title */
.cw-section-subtitle {
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--cw-muted);
	max-width: 640px;
}

.cw-section-dark .cw-section-subtitle {
	color: rgba(232, 240, 236, 0.6);
}

/* Hero title */
.cw-hero-title {
	font-family: var(--cw-font-heading);
	font-size: clamp(2.25rem, 5vw, 3.5rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--cw-white);
	margin-bottom: 1rem;
}

/* Hero text — body copy in hero */
.cw-hero-text {
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: clamp(1rem, 1.5vw, 1.1rem);
	line-height: 1.75;
	color: rgba(232, 240, 236, 0.7);
	max-width: 520px;
	margin-bottom: 1.5rem;
}

/* Hero actions container */
.cw-hero-actions {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
}

/* Hero image */
.cw-hero-image {
	width: 100%;
	max-width: 500px;
	border-radius: 20px;
}

/* Process step number (circle) */
.cw-process-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(76, 175, 130, 0.1);
	color: var(--cw-emerald);
	font-family: var(--cw-font-heading);
	font-size: 1.25rem;
	font-weight: 700;
	margin-bottom: 1.25rem;
}

.cw-section-dark .cw-process-number {
	background: rgba(92, 219, 149, 0.12);
	color: var(--cw-bright-green);
}

/* Feature icon */
.cw-feature-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: rgba(76, 175, 130, 0.08);
	margin-bottom: 1.25rem;
	font-size: 1.5rem;
}

.cw-section-dark .cw-feature-icon {
	background: rgba(92, 219, 149, 0.1);
}

/* Feature grid */
.cw-feature-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2rem;
	margin-top: 2rem;
}

/* Feature card */
.cw-feature-card {
	background: var(--cw-white);
	border-radius: 20px;
	padding: 2.25rem;
	border: 1px solid rgba(26, 46, 40, 0.06);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-feature-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.06);
	border-color: rgba(76, 175, 130, 0.12);
}

.cw-feature-card h3 {
	font-family: var(--cw-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--cw-deep-green);
	margin-bottom: 0.75rem;
}

.cw-feature-card p {
	font-size: 0.95rem;
	line-height: 1.7;
	color: var(--cw-muted);
}

.cw-feature-card ul {
	padding-left: 0;
	list-style: none;
	margin-top: 0.75rem;
}

.cw-feature-card ul li {
	padding: 0.3rem 0 0.3rem 1.4rem;
	position: relative;
	font-size: 0.92rem;
	color: var(--cw-body);
}

.cw-feature-card ul li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: var(--cw-emerald);
	font-weight: 700;
}

/* Dark section feature cards */
.cw-section-dark .cw-feature-card {
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(255, 255, 255, 0.06);
}

.cw-section-dark .cw-feature-card:hover {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(92, 219, 149, 0.15);
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.15);
}

.cw-section-dark .cw-feature-card h3 {
	color: var(--cw-white);
}

.cw-section-dark .cw-feature-card p {
	color: rgba(232, 240, 236, 0.6);
}

.cw-section-dark .cw-feature-card ul li {
	color: rgba(232, 240, 236, 0.65);
}

.cw-section-dark .cw-feature-card ul li::before {
	color: var(--cw-bright-green);
}

/* Testimonial grid (reusable on any page) */
.cw-testimonial-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 2rem;
}

.cw-testimonial-card {
	display: flex;
	flex-direction: column;
	background: var(--cw-white);
	border-radius: 20px;
	padding: 2.5rem;
	box-shadow: 0 4px 24px rgba(26, 46, 40, 0.05);
	border: 1px solid rgba(26, 46, 40, 0.04);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-testimonial-card:hover {
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.08);
	transform: translateY(-4px);
	border-color: rgba(76, 175, 130, 0.12);
}

/* Dark section testimonials */
.cw-section-gray .cw-testimonial-card {
	background: var(--cw-white);
}

.cw-testimonial-quote {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-size: 0.98rem;
	line-height: 1.75;
	color: var(--cw-body);
	flex: 1;
	margin-bottom: 1.5rem;
}

.cw-testimonial-author {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(26, 46, 40, 0.06);
}

.cw-testimonial-avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid rgba(76, 175, 130, 0.12);
}

.cw-testimonial-name {
	font-family: var(--cw-font-heading);
	font-weight: 700;
	font-size: 0.92rem;
	color: var(--cw-deep-green);
	line-height: 1.3;
}

.cw-testimonial-role {
	font-size: 0.82rem;
	color: var(--cw-muted);
}

/* Comparison table price */
.cw-compare-price {
	font-family: var(--cw-font-heading);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--cw-deep-green);
	margin-bottom: 1rem;
}

.cw-compare-price span {
	font-size: 0.85rem;
	font-weight: 400;
	color: var(--cw-muted);
}

/* Comparison badge (e.g. "Most Popular") */
.cw-compare-badge {
	display: inline-block;
	background: var(--cw-emerald);
	color: var(--cw-white);
	font-family: var(--cw-font-heading);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 0.3rem 0.85rem;
	border-radius: var(--cw-radius-pill);
	margin-bottom: 1rem;
}

/* Button size variant */
.cw-btn-lg {
	padding: 1rem 2.5rem;
	font-size: 1.05rem;
}

/* Narrower container variant */
.cw-contain-narrow {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 clamp(1.5rem, 4vw, 3rem);
}

/* Section gradient variant */
.cw-section-gradient {
	background: linear-gradient(160deg, #1A2E28 0%, #0d1b17 40%, #1C3230 100%);
	color: var(--cw-white);
}

.cw-section-gradient h2 {
	color: var(--cw-white) !important;
}

.cw-section-gradient p {
	color: rgba(232, 240, 236, 0.65);
}

.cw-section-gradient .cw-section-label {
	color: var(--cw-bright-green);
}

/* Hero split layout (reusable on service pages) */
.cw-hero-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
}

@media (max-width: 900px) {
	.cw-hero-split {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.cw-hero-split .cw-hero-content {
		order: 1;
	}

	.cw-hero-split .cw-hero-media {
		order: 2;
		max-width: 400px;
		margin: 0 auto;
	}

	.cw-hero-actions {
		justify-content: center;
	}

	.cw-stats-row {
		justify-content: center;
	}

	.cw-section-subtitle {
		margin-left: auto;
		margin-right: auto;
	}

	.cw-comparison-table {
		grid-template-columns: 1fr;
	}

	.cw-feature-grid {
		grid-template-columns: 1fr;
	}

	.cw-process-timeline {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 600px) {
	.cw-process-timeline {
		grid-template-columns: 1fr;
	}

	.cw-stats-row {
		flex-wrap: wrap;
		gap: 1rem;
	}

	.cw-stat-item + .cw-stat-item::before {
		display: none;
	}
}


/* ==========================================================================
   73. PLACEHOLDER IMAGE — For pages awaiting real photos
   ========================================================================== */

.cw-placeholder-image {
	width: 100%;
	aspect-ratio: 4/5;
	max-width: 420px;
	border-radius: 24px;
	background: linear-gradient(135deg, rgba(76, 175, 130, 0.15) 0%, rgba(92, 219, 149, 0.08) 100%);
	border: 2px dashed rgba(76, 175, 130, 0.25);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--cw-font-ui);
	font-size: 0.875rem;
	color: rgba(232, 240, 236, 0.7);
	text-align: center;
	padding: 2rem;
}


/* ==========================================================================
   74. ABOUT PAGE SPECIFIC — Overrides for about content
   ========================================================================== */

.cw-about {
	font-family: 'Source Serif 4', Georgia, serif;
	color: var(--cw-body);
	line-height: 1.7;
}

.cw-about h1,
.cw-about h2,
.cw-about h3 {
	font-family: var(--cw-font-heading);
}

/* Stats row variant for light backgrounds */
.cw-section-light .cw-stats-row .cw-stat-number,
.cw-section-gray .cw-stats-row .cw-stat-number {
	color: var(--cw-emerald);
}

.cw-section-light .cw-stats-row .cw-stat-label,
.cw-section-gray .cw-stats-row .cw-stat-label {
	color: var(--cw-muted);
}


/* ==========================================================================
   75. SCROLL-TO-TOP BUTTON — Genesis default override
   ========================================================================== */

.footer-widgets + .site-footer {
	border-top: none;
}

/* Scroll-to-top button */
a.backtotop {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(76, 175, 130, 0.12);
	color: var(--cw-emerald);
	border: 1px solid rgba(76, 175, 130, 0.15);
	transition: all 0.3s ease;
}

a.backtotop:hover {
	background: var(--cw-emerald);
	color: var(--cw-white);
}


/* ==========================================================================
   76. PREMIUM 10x DESIGN UPGRADE — Stripe/Linear/Vercel-level aesthetics
   Gradient text, background textures, card glow effects, section imagery,
   enhanced typography, decorative elements, rich visual layering.
   ========================================================================== */

/* ---------- 76a. Gradient Text Utility ---------- */
.cw-gradient-text {
	background: linear-gradient(135deg, #4CAF82 0%, #5CDB95 50%, #4CAF82 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* Apply gradient to section labels sitewide */
.cw-section-label {
	background: linear-gradient(135deg, #4CAF82 0%, #5CDB95 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	font-family: var(--cw-font-ui);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-bottom: 0.75rem;
	display: inline-block;
}

/* ---------- 76b. Dot Grid Background Pattern for Light Sections ---------- */
.front-page-2::after,
.front-page-4::after {
	content: '' !important;
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	bottom: auto !important;
	background: transparent !important;
	background-image: radial-gradient(circle, rgba(26, 46, 40, 0.035) 1px, transparent 1px) !important;
	background-size: 24px 24px !important;
	background-color: transparent !important;
	clip-path: none !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

.front-page-2 .wrap,
.front-page-4 .wrap {
	position: relative;
	z-index: 1;
}

.front-page-2,
.front-page-4 {
	position: relative;
}

/* ---------- 76c. Enhanced Service Cards — Glassmorphism + Glow ---------- */
.front-page-2 .cw-feature-card {
	background: rgba(255, 255, 255, 0.85);
	/* backdrop-filter: blur(20px) — removed for GPU perf */
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 24px;
	padding: 2.75rem;
	display: flex;
	flex-direction: column;
	min-height: 420px;
}

.front-page-2 .cw-feature-card:hover {
	background: rgba(255, 255, 255, 0.95);
	box-shadow:
		0 20px 60px rgba(26, 46, 40, 0.08),
		0 0 0 1px rgba(76, 175, 130, 0.08),
		0 0 80px -20px rgba(76, 175, 130, 0.12);
}

/* Service card emoji icon upgrade — larger, with background */
.front-page-2 .cw-feature-card .cw-feature-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: linear-gradient(135deg, rgba(76, 175, 130, 0.08) 0%, rgba(92, 219, 149, 0.04) 100%);
	border: 1px solid rgba(76, 175, 130, 0.1);
	margin-bottom: 1.75rem;
	font-size: 1.5rem;
	transition: all 0.3s ease;
}

.front-page-2 .cw-feature-card:hover .cw-feature-icon {
	background: linear-gradient(135deg, rgba(76, 175, 130, 0.14) 0%, rgba(92, 219, 149, 0.08) 100%);
	transform: scale(1.05);
}

/* Service card H3 */
.front-page-2 .cw-feature-card h3 {
	font-family: var(--cw-font-heading);
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--cw-deep-green);
	margin-bottom: 0.5rem;
	line-height: 1.3;
}

/* Service card paragraph text */
.front-page-2 .cw-feature-card > p {
	font-size: 0.95rem;
	line-height: 1.7;
	color: #5a6b64;
}

/* ---------- 76d. Enhanced Testimonial Cards ---------- */
.front-page-4 .cw-testimonial-card {
	background: rgba(255, 255, 255, 0.9);
	/* backdrop-filter: blur(16px) — removed for GPU perf */
	border: 1px solid rgba(26, 46, 40, 0.05);
	border-radius: 20px;
	padding: 2.25rem;
	transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
	display: flex;
	flex-direction: column;
	position: relative;
	overflow: hidden;
}

.front-page-4 .cw-testimonial-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	opacity: 0;
	transition: opacity 0.3s ease;
}

.front-page-4 .cw-testimonial-card:hover {
	transform: translateY(-6px);
	box-shadow:
		0 20px 60px rgba(26, 46, 40, 0.06),
		0 0 80px -20px rgba(76, 175, 130, 0.1);
	border-color: rgba(76, 175, 130, 0.1);
}

.front-page-4 .cw-testimonial-card:hover::before {
	opacity: 1;
}

/* Stars — larger, golden */
.front-page-4 .cw-testimonial-stars {
	color: #E5A84B !important;
	font-size: 1.05rem !important;
	letter-spacing: 3px !important;
	margin-bottom: 1.25rem !important;
}

/* Testimonial avatar glow */
.front-page-4 .cw-testimonial-avatar {
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.08);
	transition: box-shadow 0.3s ease;
}

.front-page-4 .cw-testimonial-card:hover .cw-testimonial-avatar {
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.2);
}

/* ---------- 76e. Enhanced Blog Cards (Homepage) ---------- */
.cw-homepage-posts .listing-item {
	background: var(--cw-white);
	border-radius: 20px;
	padding: 2rem 1.75rem;
	border: 1px solid rgba(26, 46, 40, 0.05);
	box-shadow: 0 2px 16px rgba(26, 46, 40, 0.03);
	position: relative;
	overflow: hidden;
}

.cw-homepage-posts .listing-item:hover {
	box-shadow:
		0 16px 48px rgba(26, 46, 40, 0.07),
		0 0 60px -20px rgba(76, 175, 130, 0.08);
}

/* Blog card category badge */
.cw-homepage-posts .listing-item .title {
	font-family: var(--cw-font-heading);
	font-weight: 700;
	font-size: 1.1rem;
	line-height: 1.4;
	color: var(--cw-deep-green);
	display: block;
	margin-bottom: 0.75rem;
}

.cw-homepage-posts .listing-item .title:hover {
	color: var(--cw-emerald);
}

.cw-homepage-posts .listing-item .excerpt {
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: 0.92rem;
	line-height: 1.7;
	color: #5a6b64;
}

/* Decorative left accent line on blog cards */
.cw-homepage-posts .listing-item::after {
	content: '';
	position: absolute;
	top: 1.5rem;
	left: 0;
	width: 3px;
	height: 40px;
	background: linear-gradient(180deg, var(--cw-emerald), var(--cw-bright-green));
	border-radius: 0 3px 3px 0;
	opacity: 0;
	transition: opacity 0.3s ease, height 0.3s ease;
}

.cw-homepage-posts .listing-item:hover::after {
	opacity: 1;
}

/* ---------- 76f. Ambient Glow Orbs — Decorative background elements ---------- */
/* Hero section: large emerald orb behind content */
.front-page-1::after {
	content: '';
	position: absolute;
	bottom: -20%;
	right: -5%;
	width: 500px;
	height: 500px;
	background: radial-gradient(circle, rgba(76, 175, 130, 0.06) 0%, transparent 65%);
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
}

/* Services section: top-left orb */
.front-page-2::before {
	content: '';
	position: absolute;
	top: -15%;
	left: -10%;
	width: 400px;
	height: 400px;
	background: radial-gradient(circle, rgba(76, 175, 130, 0.04) 0%, transparent 65%);
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
}

/* Philosophy section: centered glow */
.front-page-3::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, rgba(76, 175, 130, 0.06) 0%, transparent 60%);
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
}

/* ---------- 76g. Enhanced Section Dividers ---------- */
/* Elegant gradient line between sections */
.front-page-1 + .front-page-2,
.front-page-2 + .front-page-3,
.front-page-3 + .front-page-4,
.front-page-4 + .front-page-5,
.front-page-5 + .front-page-6 {
	position: relative;
}

/* ---------- 76h. Typography Refinements — Stripe-level ---------- */
/* Section headings on light backgrounds */
.front-page-2 h2,
.front-page-4 h2,
.front-page-5 h2 {
	font-family: var(--cw-font-heading) !important;
	font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
	font-weight: 800 !important;
	color: var(--cw-deep-green) !important;
	letter-spacing: -0.02em !important;
	line-height: 1.2 !important;
}

/* Subtitle text */
.front-page-2 .cw-section-subtitle,
.front-page-4 .cw-section-subtitle,
.front-page-5 .cw-section-subtitle {
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: 1.08rem;
	color: #6B7C75;
	line-height: 1.7;
	max-width: 560px;
	margin: 0 auto;
}

/* Philosophy section — larger, bolder quote */
.front-page-3 h2 {
	font-size: clamp(1.75rem, 4vw, 2.5rem) !important;
	font-weight: 600 !important;
	letter-spacing: -0.01em !important;
}

/* ---------- 76i. Newsletter Section Premium Overhaul ---------- */
.front-page-6 {
	background: linear-gradient(160deg, #1A2E28 0%, #0F1D19 50%, #1A2E28 100%) !important;
}

/* Decorative grid lines on newsletter section */
.front-page-6::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(76, 175, 130, 0.02) 1px, transparent 1px),
		linear-gradient(90deg, rgba(76, 175, 130, 0.02) 1px, transparent 1px);
	background-size: 80px 80px;
	pointer-events: none;
	z-index: 0;
}

/* 76j. Before-Footer Premium CTA — Consolidated into Section 12 */

/* ---------- 76k. Featured Image Placeholder for Blog Cards ---------- */
/* Add a subtle gradient top bar that acts as visual anchor when no image */
.cw-homepage-posts .listing-item {
	padding-top: 2.5rem;
}

.cw-homepage-posts .listing-item::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	border-radius: 20px 20px 0 0;
	opacity: 0.6;
	z-index: 2;
	pointer-events: none;
}

.cw-homepage-posts .listing-item:hover::before {
	opacity: 1;
}

/* ---------- 76k2. Blog Cards WITH Featured Images ---------- */
/* When images are present, restructure the card layout */
.cw-homepage-posts .listing-item:has(.image) {
	padding: 0;
	display: flex;
	flex-direction: column;
	overflow: visible;
	border-radius: 20px;
	background: var(--cw-white);
}

.cw-homepage-posts .listing-item:has(.image)::before {
	display: none;
}

.cw-homepage-posts .listing-item:has(.image)::after {
	display: none;
}

.cw-homepage-posts .listing-item .image {
	display: block;
	order: -2;
	width: 100%;
	height: 180px;
	overflow: hidden;
	border-radius: 20px 20px 0 0;
	flex-shrink: 0;
}

.cw-homepage-posts .listing-item .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-homepage-posts .listing-item:hover .image img {
	transform: scale(1.05);
}

/* Text content padding when image is present */
.cw-homepage-posts .listing-item:has(.image) .title,
.cw-homepage-posts .listing-item:has(.image) a.title {
	padding: 1.25rem 1.5rem 0 1.5rem;
	margin-bottom: 0.5rem;
	text-align: left;
}

.cw-homepage-posts .listing-item:has(.image) .excerpt {
	padding: 0 1.5rem 1.25rem 1.5rem;
	text-align: left;
}

.cw-homepage-posts .listing-item:has(.image) .excerpt-dash {
	display: none;
}

/* Increase image height for better visual weight */
.cw-homepage-posts .listing-item .image {
	height: 200px;
}

/* ---------- 76l. Testimonial Section Background Enhancement ---------- */
.front-page-4 {
	background:
		linear-gradient(180deg, #F8FAF9 0%, #FFFFFF 40%, #F8FAF9 100%) !important;
}

/* Large decorative quote marks behind testimonials */
.front-page-4 .wrap {
	position: relative;
}

.front-page-4 .wrap::before {
	content: '\201C';
	position: absolute;
	top: -20px;
	left: 0;
	font-size: 14rem;
	font-family: Georgia, serif;
	color: rgba(76, 175, 130, 0.04);
	line-height: 1;
	pointer-events: none;
	z-index: 0;
}

/* ---------- 76m. Service Cards — Left-aligned list inside centered card ---------- */
.front-page-2 .cw-feature-card ul {
	text-align: left;
	display: inline-block;
	padding: 0;
	margin: 1rem auto;
}

.front-page-2 .cw-feature-card li {
	padding: 0.5rem 0;
	padding-left: 2rem;
	position: relative;
	color: var(--cw-dark-text);
	font-size: 0.92rem;
	line-height: 1.6;
	list-style: none;
	text-align: left;
}

.front-page-2 .cw-feature-card li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.65rem;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--cw-emerald);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-size: 11px;
	background-position: center;
	background-repeat: no-repeat;
}

/* ---------- 76n. Footer Enhancement ---------- */
.site-footer {
	background: linear-gradient(180deg, #1A2E28 0%, #121E1A 100%) !important;
}

/* Footer nav links spacing */
.footer-widgets .menu li {
	margin-bottom: 0.6rem;
}

.footer-widgets .menu a {
	font-family: var(--cw-font-ui) !important;
	font-size: 0.9rem !important;
	padding: 0.15rem 0;
	display: inline-block;
}

/* ---------- 76o. Cursor & Selection Polish ---------- */
::selection {
	background: rgba(76, 175, 130, 0.2);
	color: var(--cw-deep-green);
}

::-moz-selection {
	background: rgba(76, 175, 130, 0.2);
	color: var(--cw-deep-green);
}

/* ---------- 76p. Global Focus States ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline: 2px solid var(--cw-emerald);
	outline-offset: 2px;
	border-radius: 4px;
}

/* ---------- 76q. Smooth Page Scroll ---------- */
html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

/* ---------- 76r. Section Label Underline Accent ---------- */
.front-page-2 h2::after,
.front-page-4 h2::after,
.front-page-5 h2::after {
	content: '';
	display: block;
	width: 48px;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	border-radius: 2px;
	margin: 0.85rem auto 0;
}

/* Center align for section headers */
.front-page-2 h2,
.front-page-4 h2,
.front-page-5 h2 {
	text-align: center;
}

/* ---------- 76s. Testimonial Grid 3-Column Enhancement ---------- */
.front-page-4 .cw-testimonial-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.75rem;
}

@media (max-width: 900px) {
	.front-page-4 .cw-testimonial-grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- 76t. Blog Card "Read More" Visual Cue ---------- */
.cw-homepage-posts .listing-item {
	cursor: pointer;
}

/* Fade excerpt to imply "read more" */
.cw-homepage-posts .listing-item .excerpt {
	position: relative;
}

.cw-homepage-posts .listing-item .excerpt::after {
	content: 'Read more →';
	display: block;
	margin-top: 1rem;
	font-family: var(--cw-font-ui);
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--cw-emerald);
	opacity: 0;
	transform: translateY(4px);
	transition: all 0.3s ease;
}

.cw-homepage-posts .listing-item:hover .excerpt::after {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- 76u. Interior Page Improvements ---------- */
/* About, Contact, Testimonials pages — ensure dark hero sections render properly */
.page-template-templatespage-builder-php .site-inner {
	padding: 0 !important;
}

.page-template-templatespage-builder-php .entry {
	padding: 0 !important;
	margin: 0 !important;
}

.page-template-templatespage-builder-php .entry-content {
	padding: 0 !important;
}

/* Service page section system */
.cw-section {
	padding: clamp(4rem, 8vw, 7rem) 0;
	position: relative;
}

.cw-section-dark {
	background: linear-gradient(160deg, #1A2E28 0%, #142420 100%);
	color: #E8F0EC;
}

.cw-section-light {
	background: #FFFFFF;
	color: var(--cw-deep-green);
}

.cw-section-gray {
	background: linear-gradient(180deg, #F8FAF9 0%, #F0F3F1 100%);
	color: var(--cw-deep-green);
}

.cw-contain {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 clamp(1.25rem, 4vw, 2.5rem);
}

/* Dark section text */
.cw-section-dark h1,
.cw-section-dark h2,
.cw-section-dark h3 {
	color: #fff !important;
}

.cw-section-dark p {
	color: rgba(232, 240, 236, 0.72);
}

.cw-section-dark .cw-section-label {
	background: linear-gradient(135deg, #5CDB95, #4CAF82);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* ---------- 76v. Testimonials Page Fixes ---------- */
/* Override inline styles on testimonials page with proper CSS */
.page-id-1853 .cw-testimonial-card {
	background: #fff;
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 20px;
	padding: 2rem;
	box-shadow: 0 2px 12px rgba(26, 46, 40, 0.04);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.page-id-1853 .cw-testimonial-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.08);
	border-color: rgba(76, 175, 130, 0.12);
}

.page-id-1853 .cw-testimonial-quote {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-size: 0.95rem;
	line-height: 1.75;
	color: #4a5e56;
}

.page-id-1853 .cw-testimonial-name {
	font-family: var(--cw-font-heading) !important;
	font-weight: 700 !important;
	font-size: 0.92rem !important;
	color: var(--cw-deep-green) !important;
}

.page-id-1853 .cw-testimonial-role {
	font-size: 0.82rem !important;
	color: #6B7C75 !important;
}

/* ---------- 76w. Contact Page Enhancements ---------- */
.page-id-1491 .cw-inquiry-btn {
	background: #fff;
	border: 1px solid rgba(26, 46, 40, 0.08);
	border-radius: 16px;
	padding: 1.25rem;
	text-align: center;
	cursor: pointer;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 0.88rem;
	color: var(--cw-deep-green);
}

.page-id-1491 .cw-inquiry-btn:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgba(26, 46, 40, 0.08);
	border-color: rgba(76, 175, 130, 0.2);
}

.page-id-1491 .cw-inquiry-btn.active {
	background: rgba(76, 175, 130, 0.06);
	border-color: var(--cw-emerald);
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.1);
}

/* ---------- 76x. About Page — Override Inline Styles ---------- */
.page-id-5 .cw-about-hero {
	background: linear-gradient(160deg, #1A2E28 0%, #142420 100%);
	padding: clamp(4rem, 8vw, 6rem) 0;
}

.page-id-5 .cw-about-section {
	padding: clamp(3.5rem, 7vw, 5.5rem) 0;
}

.page-id-5 .cw-value-card {
	background: #fff;
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 20px;
	padding: 2.25rem;
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.page-id-5 .cw-value-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.08);
}

/* About page timeline items — enhanced card feel */
/* ---------- About Page Timeline — fully visible, no GSAP dependency ---------- */
.page-id-5 .cw-timeline::before {
	background: rgba(76, 175, 130, 0.25);
	width: 2px;
}
.page-id-5 .cw-timeline::after {
	display: none; /* No GSAP glow animation needed */
}
.page-id-5 .cw-timeline-item {
	opacity: 1 !important;
	transform: none !important;
	padding: 1.5rem 1.75rem 1.5rem 2.25rem;
	background: rgba(76, 175, 130, 0.04);
	border-left: 3px solid rgba(76, 175, 130, 0.2);
	border-radius: 0 12px 12px 0;
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	margin-bottom: 0.75rem;
}
.page-id-5 .cw-timeline-item:hover {
	border-left-color: var(--cw-emerald);
	background: rgba(76, 175, 130, 0.06);
	box-shadow: 4px 0 24px rgba(76, 175, 130, 0.06);
	padding-left: 2.5rem;
}
.page-id-5 .cw-timeline-item::before {
	box-shadow:
		0 0 0 3px rgba(76, 175, 130, 0.2),
		0 0 12px rgba(76, 175, 130, 0.3);
}

/* ---------- 76y. Founder Coaching Page Enhancements ---------- */
.page-id-1851 .cw-hero-split {
	min-height: 70vh;
	align-items: center;
}

.page-id-1851 .cw-feature-card {
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.page-id-1851 .cw-feature-card:hover {
	transform: translateY(-4px);
}

.page-id-1851 .cw-process-step {
	transition: all 0.35s ease;
}

.page-id-1851 .cw-process-step:hover {
	transform: translateY(-4px);
}

/* ---------- 76z. Responsive Adjustments for Premium Styles ---------- */
@media (max-width: 860px) {
	.front-page-2 .cw-feature-card {
		min-height: auto;
		padding: 2rem;
	}

	.front-page-4 .cw-testimonial-grid {
		grid-template-columns: 1fr;
	}

	.cw-homepage-posts .listing-item::after {
		display: none;
	}

	.front-page-4 .wrap::before {
		font-size: 8rem;
	}

	.before-footer {
		padding: 3.5rem 0 !important;
	}
}

@media (max-width: 600px) {
	.front-page-2 .cw-feature-card {
		border-radius: 16px;
		padding: 1.75rem;
	}

	.front-page-4 .cw-testimonial-card {
		border-radius: 16px;
		padding: 1.75rem;
	}

	.cw-homepage-posts .listing-item {
		border-radius: 16px;
		padding: 1.5rem;
	}

	.before-footer {
		padding: 3rem 0 !important;
	}
}


/* ==========================================================================
   77. INTERIOR PAGE PREMIUM POLISH
   About, Contact, Testimonials, Service pages — elevation & consistency
   ========================================================================== */

/* ---------- 77a. Page Builder Template — Zero padding, full bleed ---------- */
.page-template-templatespage-builder-php .content {
	padding: 0 !important;
}

.page-template-templatespage-builder-php .site-inner > .wrap {
	max-width: 100% !important;
	padding: 0 !important;
}

/* ---------- 77b. Dark Section Enhancements ---------- */
.cw-section-dark {
	position: relative;
	overflow: hidden;
}

/* Subtle grid pattern on dark sections — neutral, no green tint */
.cw-section-dark::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
	background-size: 60px 60px;
	pointer-events: none;
	z-index: 0;
}

.cw-section-dark > .cw-contain {
	position: relative;
	z-index: 1;
}

/* ---------- 77c. Gray Section Dot Grid ---------- */
.cw-section-gray {
	position: relative;
}

.cw-section-gray::after {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle, rgba(26, 46, 40, 0.025) 1px, transparent 1px);
	background-size: 24px 24px;
	pointer-events: none;
	z-index: 0;
}

.cw-section-gray > .cw-contain {
	position: relative;
	z-index: 1;
}

/* ---------- 77d. Testimonials Page — Card Grid Responsive ---------- */
.page-id-1853 .cw-testimonial-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.75rem;
}

@media (max-width: 768px) {
	.page-id-1853 .cw-testimonial-grid {
		grid-template-columns: 1fr;
	}
}

/* Featured testimonial on testimonials page */
.page-id-1853 .cw-section-light .cw-testimonial-quote {
	font-size: 1.15rem;
	line-height: 1.8;
}

/* ---------- 77e. About Page — Grid Responsive ---------- */
@media (max-width: 860px) {
	.page-id-5 .cw-section-dark div[style*="grid-template-columns"] {
		grid-template-columns: 1fr !important;
		text-align: center;
	}

	.page-id-5 .cw-stats-row {
		justify-content: center;
	}

	.page-id-5 .cw-value-grid,
	.page-id-5 div[style*="grid-template-columns:repeat(3"] {
		grid-template-columns: 1fr;
	}
}

/* ---------- 77f. Section Heading Animations ---------- */
.cw-section-label {
	opacity: 0;
	transform: translateY(8px);
	transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-section-label.cw-visible {
	opacity: 1;
	-webkit-text-fill-color: transparent;
	transform: translateY(0);
}

/* ---------- 77g. Service Page Hero Improvements ---------- */
.cw-hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: rgba(76, 175, 130, 0.08);
	border: 1px solid rgba(76, 175, 130, 0.2);
	border-radius: 100px;
	padding: 0.45rem 1.1rem;
	font-family: var(--cw-font-ui);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #5CDB95;
	margin-bottom: 1.5rem;
}

.cw-hero-title {
	font-family: var(--cw-font-heading);
	font-size: clamp(2rem, 5vw, 3.25rem);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.02em;
	color: #fff;
	margin-bottom: 1rem;
}

.cw-hero-text {
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: 1.1rem;
	line-height: 1.75;
	color: rgba(232, 240, 236, 0.7);
	max-width: 520px;
	margin-bottom: 2rem;
}

/* ---------- 77h. Feature Grid Improvements ---------- */
.cw-feature-grid {
	display: grid;
	gap: 1.75rem;
}

.cw-feature-card {
	background: #fff;
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 20px;
	padding: 2.25rem;
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	position: relative;
	overflow: hidden;
}

.cw-feature-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, #4CAF82, #5CDB95);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.cw-feature-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.08);
	border-color: rgba(76, 175, 130, 0.12);
}

.cw-feature-card:hover::before {
	opacity: 1;
}

/* Dark variant feature cards */
.cw-section-dark .cw-feature-card {
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(255, 255, 255, 0.06);
}

.cw-section-dark .cw-feature-card:hover {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(76, 175, 130, 0.2);
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
}

.cw-section-dark .cw-feature-card h3 {
	color: #fff;
}

.cw-section-dark .cw-feature-card p {
	color: rgba(232, 240, 236, 0.65);
}

/* Feature icon */
.cw-feature-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: rgba(76, 175, 130, 0.08);
	margin-bottom: 1.25rem;
	font-size: 1.35rem;
}

.cw-section-dark .cw-feature-icon {
	background: rgba(76, 175, 130, 0.12);
}

/* ---------- 77i. Process Timeline — Premium Redesign ---------- */
/* (Main process-timeline styles defined in the primary Process Timeline
   section above. This block intentionally left empty to avoid cascade
   conflicts. All styling flows from the single source of truth.) */

/* ---------- 77j. FAQ Accordion Premium ---------- */
.cw-faq-accordion {
	max-width: 800px;
	margin: 0 auto;
}

.cw-faq-item {
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 16px;
	margin-bottom: 0.75rem;
	overflow: hidden;
	transition: all 0.3s ease;
	background: #fff;
}

.cw-faq-item:hover {
	border-color: rgba(76, 175, 130, 0.15);
}

.cw-faq-item[open] {
	border-color: rgba(76, 175, 130, 0.2);
	box-shadow: 0 4px 16px rgba(26, 46, 40, 0.04);
}

.cw-faq-item summary {
	padding: 1.25rem 1.5rem;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 1rem;
	color: var(--cw-deep-green);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.cw-faq-item summary::-webkit-details-marker {
	display: none;
}

.cw-faq-item summary::after {
	content: '+';
	font-size: 1.25rem;
	color: var(--cw-emerald);
	font-weight: 300;
	transition: transform 0.3s ease;
	flex-shrink: 0;
	margin-left: 1rem;
}

.cw-faq-item[open] summary::after {
	content: '−';
}

.cw-faq-answer {
	padding: 0 1.5rem 1.25rem;
	font-size: 0.95rem;
	line-height: 1.75;
	color: #5a6b64;
}

/* ---------- 77k. Comparison Table Premium ---------- */
.cw-comparison-table {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
}

.cw-compare-col {
	background: #fff;
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 20px;
	padding: 2.25rem;
	position: relative;
}

.cw-compare-col.cw-compare-highlight {
	border-color: var(--cw-emerald);
	box-shadow: 0 8px 32px rgba(76, 175, 130, 0.12);
	transform: scale(1.02);
}

.cw-compare-badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	background: linear-gradient(135deg, #4CAF82, #5CDB95);
	color: #fff;
	padding: 0.35rem 1rem;
	border-radius: 100px;
	font-family: var(--cw-font-ui);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	white-space: nowrap;
}

@media (max-width: 768px) {
	.cw-comparison-table {
		grid-template-columns: 1fr;
	}
	.cw-compare-col.cw-compare-highlight {
		transform: none;
	}
}

/* ---------- 77l. Minimal Nav Enhancement ---------- */
body.cw-minimal-nav .nav-primary {
	display: none !important;
}

/* Minimal nav header inherits from consolidated section 3 */

.cw-header-cta {
	display: flex;
	align-items: center;
	margin-left: auto;
}

.cw-header-cta .cw-btn {
	font-size: 0.85rem;
	padding: 0.65rem 1.5rem;
}

/* ---------- 77m. Animated Gradient Border — For featured elements ---------- */
@keyframes gradient-shift {
	0% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

.cw-gradient-border {
	position: relative;
}

.cw-gradient-border::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, #4CAF82, #5CDB95, #4CAF82);
	background-size: 200% 100%;
	animation: gradient-shift 3s ease infinite;
	border-radius: 3px 3px 0 0;
}

/* ---------- 77n. Link Hover Underline Animation ---------- */
.cw-section a:not(.cw-btn):not(.cw-card-link) {
	text-decoration: none;
	background-image: linear-gradient(#4CAF82, #4CAF82);
	background-size: 0% 2px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.3s ease;
}

.cw-section a:not(.cw-btn):not(.cw-card-link):hover {
	background-size: 100% 2px;
}

/* ---------- 77o. Card Link Arrow Hover ---------- */
.cw-card-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 0.92rem;
	color: #4CAF82;
	text-decoration: none;
	transition: gap 0.3s ease, color 0.2s ease;
}

.cw-card-link:hover {
	gap: 0.7rem;
	color: #5CDB95;
}

/* ---------- 77p. Image Loading Placeholder ---------- */
.cw-section img {
	background: transparent;
}

/* ---------- 77q. Headshot Circle Glow ---------- */
.cw-headshot {
	border-radius: 20px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
}

/* ---------- 77r. Page-specific CTA button polish ---------- */
.cw-section .cw-btn-primary {
	background: linear-gradient(135deg, #4CAF82, #3d9a70);
	color: #fff;
	border: none;
	border-radius: 100px;
	padding: 0.9rem 2.25rem;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 0.95rem;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	box-shadow: 0 4px 20px rgba(76, 175, 130, 0.3);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
}

.cw-section .cw-btn-primary:hover {
	background: linear-gradient(135deg, #5CDB95, #4CAF82);
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.4);
}


/* ==========================================================================
   78. STRIPE/LINEAR-INSPIRED DESIGN ELEMENTS
   Gradient underlines, decorative geometry, enhanced shadows, micro-details
   ========================================================================== */

/* ---------- 78a. Gradient Underline on Key Headings ---------- */
.front-page-1 h1 {
	position: relative;
	display: inline-block;
}

/* Decorative period accent color */
.front-page-1 h1 .cw-accent-dot {
	color: var(--cw-bright-green);
}

/* ---------- 78b. Hero Section — Geometric Accent SVG ---------- */
.front-page-1 .cw-hero-media::before {
	content: '';
	position: absolute;
	top: -20px;
	right: -20px;
	width: 100%;
	height: 100%;
	border: 2px solid rgba(76, 175, 130, 0.1);
	border-radius: 24px;
	z-index: 0;
	pointer-events: none;
}

/* ---------- 78c. Section Transitions — Curved Dividers ---------- */
/* Curve from services to philosophy */
.front-page-3 {
	margin-top: -1px;
}

/* Curve from philosophy to testimonials */
.front-page-3 + .front-page-4 {
	margin-top: -1px;
}

/* ---------- 78d. Enhanced Card Shadows — Layered System ---------- */
/* Base shadow */
.cw-feature-card,
.cw-testimonial-card,
.cw-value-card,
.cw-faq-item,
.cw-compare-col,
.cw-homepage-posts .listing-item,
.cw-blog-card {
	box-shadow:
		0 1px 2px rgba(26, 46, 40, 0.04),
		0 2px 8px rgba(26, 46, 40, 0.02),
		0 4px 16px rgba(26, 46, 40, 0.01);
}

/* Hover shadow — deeper, with color tint */
.cw-feature-card:hover,
.cw-testimonial-card:hover,
.cw-value-card:hover,
.cw-compare-col:hover,
.cw-homepage-posts .listing-item:hover,
.cw-blog-card:hover {
	box-shadow:
		0 4px 8px rgba(26, 46, 40, 0.04),
		0 8px 24px rgba(26, 46, 40, 0.06),
		0 16px 48px rgba(76, 175, 130, 0.04);
}

/* ---------- 78e. Decorative Corner Accents ---------- */
/* Top-left corner bracket on dark sections */
.cw-section-dark .cw-contain::before {
	content: '';
	position: absolute;
	top: -2rem;
	left: 0;
	width: 40px;
	height: 40px;
	border-top: 2px solid rgba(76, 175, 130, 0.15);
	border-left: 2px solid rgba(76, 175, 130, 0.15);
	pointer-events: none;
}

/* Bottom-right corner bracket */
.cw-section-dark .cw-contain::after {
	content: '';
	position: absolute;
	bottom: -2rem;
	right: 0;
	width: 40px;
	height: 40px;
	border-bottom: 2px solid rgba(76, 175, 130, 0.15);
	border-right: 2px solid rgba(76, 175, 130, 0.15);
	pointer-events: none;
}

.cw-section-dark .cw-contain {
	position: relative;
}

/* 78f. Blog Archive Premium Overhaul — page-header consolidated into Section 14 */

/* Blog grid container — Consolidated into Section 14 */

/* Blog card featured image zoom on hover */
.cw-blog-card .entry-image-link {
	overflow: hidden;
}

.cw-blog-card img {
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-blog-card:hover img {
	transform: scale(1.04);
}

/* Blog card content area — Consolidated into Section 14 */

/* ---------- 78g. Single Post Premium Reading Experience ---------- */
.single-post .content-sidebar-wrap {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 clamp(1.25rem, 4vw, 2.5rem);
}

.single-post .entry-header {
	text-align: center;
	padding: clamp(3rem, 6vw, 5rem) 0 2rem;
	max-width: 720px;
	margin: 0 auto;
}

.single-post .entry-title {
	font-family: var(--cw-font-heading) !important;
	font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
	font-weight: 800 !important;
	color: var(--cw-deep-green) !important;
	letter-spacing: -0.02em !important;
	line-height: 1.2 !important;
}

.single-post .entry-meta {
	font-family: var(--cw-font-ui);
	font-size: 0.82rem;
	color: var(--cw-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-top: 1rem;
}

/* Drop cap DISABLED — breaks AISEO first-paragraph with <strong> tags */

/* Block quotes */
.single-post .entry-content blockquote {
	border-left: 3px solid var(--cw-emerald);
	padding: 1.25rem 1.5rem;
	margin: 2rem 0;
	background: rgba(76, 175, 130, 0.03);
	border-radius: 0 12px 12px 0;
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-size: 1.1rem;
	color: var(--cw-deep-green);
}

/* Code blocks */
.single-post .entry-content pre,
.single-post .entry-content code {
	background: #1A2E28;
	color: #5CDB95;
	border-radius: 8px;
	font-size: 0.88rem;
}

.single-post .entry-content pre {
	padding: 1.5rem;
	overflow-x: auto;
}

.single-post .entry-content code {
	padding: 0.2rem 0.5rem;
}

/* ---------- 78h. Post Email CTA Enhancement ---------- */
.cw-post-email-cta {
	background: linear-gradient(160deg, #1A2E28 0%, #142420 100%);
	border-radius: 24px;
	padding: clamp(2.5rem, 5vw, 3.5rem);
	margin-top: 3rem;
	text-align: center;
	position: relative;
	overflow: hidden;
}

.cw-post-email-cta::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 400px;
	height: 400px;
	background: radial-gradient(circle, rgba(76, 175, 130, 0.08) 0%, transparent 65%);
	pointer-events: none;
}

.cw-post-email-cta h3 {
	font-family: var(--cw-font-heading);
	font-size: clamp(1.25rem, 3vw, 1.75rem);
	font-weight: 700;
	color: #fff;
	margin-bottom: 0.75rem;
	position: relative;
	z-index: 1;
}

.cw-post-email-cta p {
	color: rgba(232, 240, 236, 0.65);
	font-size: 1rem;
	max-width: 500px;
	margin: 0 auto 1.5rem;
	position: relative;
	z-index: 1;
}

/* Form inside post CTA */
.cw-post-email-cta .gform_wrapper {
	position: relative;
	z-index: 1;
}

.cw-post-email-cta .gform_wrapper input[type="text"],
.cw-post-email-cta .gform_wrapper input[type="email"] {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: #fff;
	border-radius: 12px;
	padding: 0.85rem 1.1rem;
}

.cw-post-email-cta .gform_wrapper input:focus {
	border-color: var(--cw-emerald);
	box-shadow: 0 0 0 3px rgba(76, 175, 130, 0.1);
}

.cw-post-email-cta .gform_wrapper .gform_button,
.cw-post-email-cta .gform_wrapper input[type="submit"] {
	background: var(--cw-emerald);
	color: #fff;
	border: none;
	border-radius: 100px;
	padding: 0.85rem 2rem;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 4px 20px rgba(76, 175, 130, 0.3);
}

.cw-post-email-cta .gform_wrapper label {
	color: rgba(232, 240, 236, 0.7);
}

/* ---------- 78i. Loading & Transition States ---------- */
/* Smooth page entrance */
.site-inner {
	animation: fadeInPage 0.5s ease-out;
}

@keyframes fadeInPage {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

/* ---------- 78j. Print Styles ---------- */
@media print {
	.site-header,
	.site-footer,
	.before-footer,
	.cw-post-email-cta,
	.cw-header-cta,
	.nav-primary {
		display: none;
	}

	.entry-content {
		max-width: 100% !important;
		font-size: 12pt !important;
	}

	a[href]::after {
		content: ' (' attr(href) ')';
		font-size: 0.8em;
		color: #666;
	}
}

/* ==========================================================================
   79. PREMIUM DESIGN PASS — 10x Polish
   ========================================================================== */

/* ---------- 79a. Gravity Forms Premium Styling ---------- */
/* Clean up form labels — hide "(Required)" text */
.gform_wrapper .gfield_required {
	display: none !important;
}

/* Form inputs — modern, borderless bottom-line style */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper textarea,
.gform_wrapper select {
	border: none !important;
	border-bottom: 2px solid rgba(26, 46, 40, 0.15) !important;
	border-radius: 0 !important;
	background: transparent !important;
	padding: 0.75rem 0 !important;
	font-family: var(--cw-font-body) !important;
	font-size: 1rem !important;
	color: var(--cw-dark-text) !important;
	transition: border-color 0.3s ease !important;
}

.gform_wrapper input[type="text"]:focus,
.gform_wrapper input[type="email"]:focus,
.gform_wrapper input[type="tel"]:focus,
.gform_wrapper textarea:focus,
.gform_wrapper select:focus {
	outline: none !important;
	border-bottom-color: var(--cw-emerald) !important;
	box-shadow: none !important;
}

/* Dark section form inputs */
.cw-section-dark .gform_wrapper input[type="text"],
.cw-section-dark .gform_wrapper input[type="email"],
.cw-section-dark .gform_wrapper textarea,
.front-page-6 .gform_wrapper input[type="text"],
.front-page-6 .gform_wrapper input[type="email"],
.front-page-6 .gform_wrapper textarea {
	border-bottom-color: rgba(232, 240, 236, 0.2) !important;
	color: var(--cw-white) !important;
}

.cw-section-dark .gform_wrapper input:focus,
.cw-section-dark .gform_wrapper textarea:focus,
.front-page-6 .gform_wrapper input:focus,
.front-page-6 .gform_wrapper textarea:focus {
	border-bottom-color: var(--cw-bright-green) !important;
}

/* Form labels */
.gform_wrapper .gfield_label,
.gform_wrapper label {
	font-family: var(--cw-font-ui) !important;
	font-size: 0.8rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	color: var(--cw-muted) !important;
}

.cw-section-dark .gform_wrapper .gfield_label,
.cw-section-dark .gform_wrapper label,
.front-page-6 .gform_wrapper .gfield_label,
.front-page-6 .gform_wrapper label {
	color: rgba(232, 240, 236, 0.75) !important;
}

/* Form submit buttons */
.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"],
.gform_wrapper button[type="submit"] {
	background: linear-gradient(135deg, var(--cw-emerald) 0%, var(--cw-bright-green) 100%) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 100px !important;
	padding: 1rem 2.5rem !important;
	font-family: var(--cw-font-heading) !important;
	font-weight: 600 !important;
	font-size: 0.95rem !important;
	letter-spacing: 0.02em !important;
	cursor: pointer !important;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
	box-shadow: 0 4px 20px rgba(76, 175, 130, 0.25) !important;
}

.gform_wrapper .gform_button:hover,
.gform_wrapper input[type="submit"]:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.35) !important;
}

/* Gravity Forms sub-labels (First, Last, etc.) */
.gform_wrapper .ginput_container label,
.gform_wrapper .name_first label,
.gform_wrapper .name_last label {
	font-size: 0.7rem !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
	color: var(--cw-muted) !important;
	margin-top: 0.25rem !important;
}

.front-page-6 .gform_wrapper .ginput_container label,
.cw-section-dark .gform_wrapper .ginput_container label {
	color: rgba(232, 240, 236, 0.7) !important;
}

/* 79b. Before-Footer CTA Section — Consolidated into Section 12 */

/* ---------- 79c. Footer Premium Styling ---------- */
.site-footer {
	background: #0d1410 !important;
	border-top: 1px solid rgba(76, 175, 130, 0.1) !important;
	padding-top: 0 !important;
}

.footer-widgets {
	background: transparent !important;
}

.footer-widgets .widget {
	color: rgba(232, 240, 236, 0.75) !important;
}

.footer-widgets a {
	color: rgba(232, 240, 236, 0.65) !important;
	transition: color 0.2s ease !important;
}

.footer-widgets a:hover {
	color: var(--cw-bright-green) !important;
}

.footer-widgets .widget-title {
	font-family: var(--cw-font-heading) !important;
	font-size: 0.8125rem !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.1em !important;
	color: rgba(232, 240, 236, 0.75) !important;
	margin-bottom: 1.25rem !important;
}

/* Footer credits bar — scoped to .creds only, not all .wrap elements */
.site-footer .creds {
	border-top: 1px solid rgba(232, 240, 236, 0.08);
	padding-top: 1.5rem;
	color: rgba(232, 240, 236, 0.65);
	font-size: 0.8rem;
}

.site-footer .creds a {
	color: rgba(232, 240, 236, 0.75);
}

/* Footer mobile padding fix */
@media (max-width: 768px) {
	.footer-widgets .wrap {
		padding-left: 1.5rem !important;
		padding-right: 1.5rem !important;
	}
}

/* ---------- 79d. Scroll-to-Top Button ---------- */
.cw-scroll-top {
	position: fixed;
	bottom: 2rem;
	right: 2rem;
	width: 44px;
	height: 44px;
	background: var(--cw-deep-green);
	border: 1px solid rgba(76, 175, 130, 0.2);
	border-radius: 12px;
	color: var(--cw-bright-green);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	opacity: 0;
	transform: translateY(20px);
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	z-index: 9998;
	backdrop-filter: blur(10px);
}

.cw-scroll-top.visible {
	opacity: 1;
	transform: translateY(0);
}

.cw-scroll-top:hover {
	background: var(--cw-emerald);
	color: #fff;
	border-color: var(--cw-emerald);
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(76, 175, 130, 0.3);
}

/* ---------- 79e. Nav Dropdown Polish ---------- */
.nav-primary .sub-menu {
	background: var(--cw-white) !important;
	border: 1px solid rgba(26, 46, 40, 0.08) !important;
	border-radius: 12px !important;
	box-shadow: 0 12px 40px rgba(26, 46, 40, 0.12) !important;
	padding: 0.5rem !important;
	min-width: 220px !important;
	overflow: hidden !important;
}

.nav-primary .sub-menu a {
	padding: 0.65rem 1.25rem !important;
	border-radius: 8px !important;
	font-size: 0.9rem !important;
	color: var(--cw-dark-text) !important;
	transition: all 0.2s ease !important;
}

.nav-primary .sub-menu a:hover {
	background: rgba(76, 175, 130, 0.08) !important;
	color: var(--cw-emerald) !important;
}

.nav-primary .sub-menu li {
	margin: 0 !important;
	border: none !important;
}

/* ---------- 79f. Service Page Feature Card Dark Variant ---------- */
.cw-section-dark .cw-feature-card {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(76, 175, 130, 0.1);
	backdrop-filter: blur(10px);
}

.cw-section-dark .cw-feature-card:hover {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(76, 175, 130, 0.2);
	transform: translateY(-4px);
}

.cw-section-dark .cw-feature-card h3 {
	color: var(--cw-white);
}

.cw-section-dark .cw-feature-card p,
.cw-section-dark .cw-feature-card li {
	color: rgba(232, 240, 236, 0.65);
}

/* ---------- 79g. Comparison Table Premium Styling ---------- */
.cw-comparison-table {
	gap: 1.5rem;
}

.cw-compare-col {
	border-radius: 16px;
	border: 1px solid rgba(26, 46, 40, 0.08);
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	position: relative;
	overflow: hidden;
}

.cw-compare-col::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: rgba(26, 46, 40, 0.1);
	transition: background 0.3s ease;
}

.cw-compare-highlight::before {
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green)) !important;
	height: 4px !important;
}

.cw-compare-highlight {
	border-color: rgba(76, 175, 130, 0.2) !important;
	box-shadow: 0 8px 32px rgba(76, 175, 130, 0.1) !important;
	transform: scale(1.03);
}

.cw-compare-badge {
	background: linear-gradient(135deg, var(--cw-emerald), var(--cw-bright-green)) !important;
	color: #fff !important;
	font-family: var(--cw-font-heading) !important;
	font-size: 0.7rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
	padding: 0.35rem 1rem !important;
	border-radius: 100px !important;
}


/* ---------- 79i. FAQ Accordion Premium Style ---------- */
.cw-faq-item {
	border: 1px solid rgba(26, 46, 40, 0.08);
	border-radius: 14px;
	margin-bottom: 0.75rem;
	transition: all 0.3s ease;
	overflow: hidden;
}

.cw-faq-item:hover {
	border-color: rgba(76, 175, 130, 0.15);
}

.cw-faq-item[open] {
	border-color: rgba(76, 175, 130, 0.2);
	box-shadow: 0 4px 16px rgba(76, 175, 130, 0.06);
}

.cw-faq-item summary {
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 1.05rem;
	padding: 1.25rem 1.5rem;
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: color 0.2s ease;
}

.cw-faq-item summary::-webkit-details-marker {
	display: none;
}

.cw-faq-item summary::after {
	content: '+';
	font-size: 1.5rem;
	font-weight: 300;
	color: var(--cw-emerald);
	transition: transform 0.3s ease;
	flex-shrink: 0;
	margin-left: 1rem;
}

.cw-faq-item[open] summary::after {
	content: '−';
	transform: rotate(0deg);
}

.cw-faq-answer {
	padding: 0 1.5rem 1.25rem !important;
	font-family: var(--cw-font-body) !important;
	font-size: 1rem !important;
	line-height: 1.75 !important;
	color: var(--cw-muted) !important;
}

/* ---------- 79j. Section Divider Lines ---------- */
/* Subtle top borders between light/gray sections */
.cw-section-light + .cw-section-gray,
.cw-section-gray + .cw-section-light {
	border-top: 1px solid rgba(26, 46, 40, 0.06);
}

/* ---------- 79k. Blog Archive Improvements ---------- */
/* Category badges on blog cards */
.cw-blog-card .entry-categories a {
	display: inline-block;
	background: rgba(76, 175, 130, 0.08);
	color: var(--cw-emerald) !important;
	font-family: var(--cw-font-ui) !important;
	font-size: 0.7rem !important;
	font-weight: 600 !important;
	letter-spacing: 0.05em !important;
	text-transform: uppercase !important;
	padding: 0.25rem 0.65rem !important;
	border-radius: 100px !important;
	text-decoration: none !important;
	transition: all 0.2s ease !important;
}

.cw-blog-card .entry-categories a:hover {
	background: rgba(76, 175, 130, 0.15);
}

/* Blog card title link styling */
.cw-blog-card .entry-title-link {
	color: var(--cw-dark-text) !important;
	text-decoration: none !important;
	transition: color 0.2s ease !important;
}

.cw-blog-card:hover .entry-title-link {
	color: var(--cw-emerald) !important;
}

/* Blog card entry content excerpt — Consolidated into Section 14 */

/* ---------- 79l. Hero Section Image Enhancement ---------- */
/* Subtle animated gradient border around headshot on service pages */
.cw-section-dark .cw-hero-media {
	position: relative;
}

.cw-section-dark .cw-hero-media .cw-headshot {
	border-radius: 20px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

/* ---------- 79m. Stats Row Premium ---------- */
.cw-stats-row {
	display: flex;
	gap: 2rem;
	margin: 2rem 0;
}

.cw-stat-item {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(76, 175, 130, 0.12);
	border-radius: 14px;
	padding: 1rem 1.5rem;
	text-align: center;
	flex: 1;
	transition: all 0.3s ease;
}

.cw-stat-item:hover {
	border-color: rgba(76, 175, 130, 0.25);
	background: rgba(76, 175, 130, 0.06);
}

.cw-stat-number {
	font-family: var(--cw-font-heading);
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--cw-bright-green);
	line-height: 1;
	margin-bottom: 0.25rem;
}

.cw-stat-label {
	font-family: var(--cw-font-ui);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(232, 240, 236, 0.75);
}

/* ---------- 79n. Section Label Enhancement ---------- */
.cw-section-label {
	display: inline-block;
	font-family: var(--cw-font-ui);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin-bottom: 1rem;
}

.cw-section-dark .cw-section-label,
.cw-section-gradient .cw-section-label {
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.cw-section-light .cw-section-label,
.cw-section-gray .cw-section-label {
	color: var(--cw-emerald);
}

/* ---------- 79o. Enhanced Micro-interactions ---------- */
/* Smooth link hover underline animation */
.cw-section a:not(.cw-btn):not(.cw-card-link):not(.entry-title-link):not(.entry-image-link) {
	text-decoration: none;
	background-image: linear-gradient(var(--cw-emerald), var(--cw-emerald));
	background-size: 0% 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.3s ease;
}

.cw-section a:not(.cw-btn):not(.cw-card-link):not(.entry-title-link):not(.entry-image-link):hover {
	background-size: 100% 1px;
}

/* Card link arrow animation */
.cw-card-link span {
	display: inline-block;
	transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-card-link:hover span {
	transform: translateX(4px);
}

/* ---------- 79p. Responsive Improvements ---------- */
@media (max-width: 768px) {
	.cw-stats-row {
		flex-wrap: wrap;
		gap: 0.75rem;
	}

	.cw-stat-item {
		flex: 0 0 calc(50% - 0.375rem);
		padding: 0.75rem 1rem;
	}

	.cw-stat-number {
		font-size: 1.4rem;
	}

	.cw-comparison-table {
		grid-template-columns: 1fr;
	}

	.cw-compare-highlight {
		transform: none !important;
	}

	/* Stack hero split on mobile */
	.cw-hero-split {
		flex-direction: column;
		text-align: center;
	}

	.cw-hero-media {
		order: -1;
		margin-bottom: 2rem;
	}

	.cw-hero-actions {
		justify-content: center;
	}

	.cw-stats-row {
		justify-content: center;
	}

	/* FAQ on mobile */
	.cw-faq-item summary {
		font-size: 0.95rem;
		padding: 1rem 1.25rem;
	}

	.cw-faq-answer {
		padding: 0 1.25rem 1rem !important;
	}

	/* Feature grid single column on mobile */
	.cw-feature-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.cw-stat-item {
		flex: 0 0 100%;
	}

	.cw-hero-badge {
		font-size: 0.65rem;
	}

	.cw-hero-title {
		font-size: clamp(1.75rem, 8vw, 2.5rem);
	}

	.before-footer h2 {
		font-size: 1.5rem !important;
	}
}

/* ---------- 79q. Testimonial Card Enhancement ---------- */
.cw-testimonial-card {
	background: var(--cw-white);
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 20px;
	padding: 2rem;
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
	position: relative;
}

.cw-testimonial-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 2rem;
	width: 40px;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	border-radius: 0 0 4px 4px;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.cw-testimonial-card:hover::before {
	opacity: 1;
}

.cw-testimonial-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.08);
	border-color: rgba(76, 175, 130, 0.1);
}

.cw-testimonial-quote {
	font-family: var(--cw-font-body);
	font-size: 1rem;
	line-height: 1.75;
	color: var(--cw-dark-text);
	font-style: italic;
	margin-bottom: 1.5rem;
}

.cw-testimonial-stars {
	margin-bottom: 1rem !important;
	font-size: 0.85rem !important;
	letter-spacing: 0.1em !important;
}

.cw-testimonial-author {
	display: flex !important;
	align-items: center !important;
	gap: 0.75rem !important;
}

.cw-testimonial-avatar {
	width: 44px !important;
	height: 44px !important;
	border-radius: 12px !important;
	object-fit: cover !important;
}

.cw-testimonial-name {
	font-family: var(--cw-font-heading) !important;
	font-weight: 700 !important;
	font-size: 0.9rem !important;
	color: var(--cw-dark-text) !important;
}

.cw-testimonial-role {
	font-family: var(--cw-font-ui) !important;
	font-size: 0.78rem !important;
	color: var(--cw-muted) !important;
}

/* ---------- 79r. Hero Badge Premium Style ---------- */
.cw-hero-badge {
	display: inline-block;
	font-family: var(--cw-font-ui);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.5rem 1.25rem;
	border-radius: 100px;
	background: rgba(76, 175, 130, 0.1);
	color: var(--cw-bright-green);
	border: 1px solid rgba(76, 175, 130, 0.2);
	margin-bottom: 1.5rem;
}

/* ---------- 79s. Navigation Active State ---------- */
.nav-primary .current-menu-item > a,
.nav-primary .current-page-ancestor > a {
	color: var(--cw-bright-green) !important;
	position: relative;
}

.nav-primary .current-menu-item > a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 20px;
	height: 2px;
	background: var(--cw-emerald);
	border-radius: 1px;
}

/* ---------- 79t. Smooth Section Transitions ---------- */
/* Gradient fade between sections for smoother visual flow */
.cw-section-dark + .cw-section-light::before,
.cw-section-dark + .cw-section-gray::before {
	content: '';
	position: absolute;
	top: -40px;
	left: 0;
	right: 0;
	height: 40px;
	background: linear-gradient(to bottom, var(--cw-deep-green), transparent);
	pointer-events: none;
	z-index: 1;
}

/* ==========================================================================
   80. FINAL PREMIUM POLISH — Stripe/Linear-Inspired Details
   ========================================================================== */

/* ---------- 80a. Section Title Treatments ---------- */
.cw-section-title {
	font-family: var(--cw-font-heading);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.15;
}

.cw-section-subtitle {
	font-family: var(--cw-font-body);
	font-size: 1.1rem;
	line-height: 1.7;
	max-width: 640px;
}

.cw-text-center .cw-section-subtitle {
	margin-left: auto;
	margin-right: auto;
}

/* ---------- 80b. CTA Button Refinements ---------- */
.cw-btn-primary {
	background: linear-gradient(135deg, var(--cw-emerald) 0%, var(--cw-bright-green) 100%);
	color: #fff;
	border: none;
	border-radius: 100px;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 0.95rem;
	padding: 0.9rem 2.25rem;
	text-decoration: none;
	display: inline-block;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	box-shadow: 0 4px 20px rgba(76, 175, 130, 0.25);
	cursor: pointer;
}

.cw-btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.35);
	color: #fff;
}

.cw-btn-outline {
	background: transparent;
	color: var(--cw-light-text, #E8F0EC);
	border: 1.5px solid rgba(232, 240, 236, 0.25);
	border-radius: 100px;
	font-family: var(--cw-font-heading);
	font-weight: 600;
	font-size: 0.95rem;
	padding: 0.9rem 2.25rem;
	text-decoration: none;
	display: inline-block;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	cursor: pointer;
}

.cw-btn-outline:hover {
	border-color: var(--cw-emerald);
	color: var(--cw-bright-green);
	background: rgba(76, 175, 130, 0.06);
}

/* Outline on light sections */
.cw-section-light .cw-btn-outline,
.cw-section-gray .cw-btn-outline {
	color: var(--cw-emerald);
	border-color: rgba(76, 175, 130, 0.3);
}

.cw-section-light .cw-btn-outline:hover,
.cw-section-gray .cw-btn-outline:hover {
	background: rgba(76, 175, 130, 0.08);
	border-color: var(--cw-emerald);
}

/* Large variant */
.cw-btn-lg {
	padding: 1.1rem 2.75rem;
	font-size: 1.05rem;
}

/* ---------- 80c. Feature Card Icon Premium Style ---------- */
.cw-feature-icon {
	width: 56px !important;
	height: 56px !important;
	border-radius: 14px !important;
	background: rgba(76, 175, 130, 0.08) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 1.5rem !important;
	margin-bottom: 1.25rem !important;
	transition: all 0.3s ease !important;
}

.cw-feature-card:hover .cw-feature-icon {
	background: rgba(76, 175, 130, 0.15);
	transform: scale(1.05);
}

.cw-section-dark .cw-feature-icon {
	background: rgba(92, 219, 149, 0.1) !important;
}

/* ---------- 80d. Feature Card Text Styling ---------- */
.cw-feature-card {
	background: var(--cw-white);
	border: 1px solid rgba(26, 46, 40, 0.06);
	border-radius: 18px;
	padding: 2rem;
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-feature-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(26, 46, 40, 0.08);
	border-color: rgba(76, 175, 130, 0.1);
}

.cw-feature-card h3 {
	font-family: var(--cw-font-heading);
	font-weight: 700;
	font-size: 1.1rem;
	color: var(--cw-dark-text);
	margin-bottom: 0.75rem;
}

.cw-feature-card p {
	font-family: var(--cw-font-body);
	font-size: 0.95rem;
	line-height: 1.7;
	color: var(--cw-muted);
}

/* ---------- 80e. Hero Content Polish ---------- */
.cw-hero-title {
	font-family: var(--cw-font-heading);
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	color: var(--cw-white);
}

.cw-hero-text {
	font-family: var(--cw-font-body);
	font-size: 1.15rem;
	line-height: 1.75;
	color: rgba(232, 240, 236, 0.75);
}

/* ---------- 80f. Card Link Arrow Style ---------- */
.cw-card-link {
	font-family: var(--cw-font-heading) !important;
	font-weight: 600 !important;
	font-size: 0.9rem !important;
	color: var(--cw-emerald) !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.35rem !important;
	transition: all 0.3s ease !important;
}

.cw-card-link:hover {
	color: var(--cw-bright-green) !important;
	gap: 0.6rem !important;
}

/* ---------- 80g. Select Dropdown Premium Style ---------- */
.gform_wrapper select {
	appearance: none !important;
	-webkit-appearance: none !important;
	background-image: 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='%236B7C75' fill='none' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.75rem center !important;
	padding-right: 2.5rem !important;
}

/* ---------- 80h. Homepage Section Spacing Consistency ---------- */
.front-page-2,
.front-page-4 {
	padding: 6rem 0 !important;
}

.front-page-3 {
	padding: 5rem 0 !important;
}

.front-page-5 {
	padding: 6rem 0 !important;
}

/* ---------- 80i. Accessibility — Focus States ---------- */
.cw-btn:focus-visible,
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--cw-emerald);
	outline-offset: 2px;
}

/* ---------- 80j. Image Loading Skeleton ---------- */
.cw-homepage-posts .listing-item .image,
.cw-blog-card .entry-image-link {
	background: linear-gradient(110deg, #f0f2f1 30%, #e8ebe9 50%, #f0f2f1 70%);
	background-size: 200% 100%;
}

/* ---------- 80k. Smooth Content Appearance ---------- */
.cw-contain {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

.cw-contain-narrow {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}

/* ==========================================================================
   81. DEPTH & TEXTURE — Stripe/Linear-Level Visual Richness
   ========================================================================== */

/* ---------- 81a. Blog Section Subtle Gradient Background ---------- */
.front-page-5 {
	background: linear-gradient(180deg, #fff 0%, #f7f9f8 40%, #f0f3f1 100%) !important;
	position: relative;
}

/* ---------- 81b. Newsletter Section Grid Lines ---------- */
.front-page-6 {
	position: relative;
	overflow: hidden;
}

.front-page-6::before {
	content: '' !important;
	position: absolute !important;
	inset: 0 !important;
	background-image:
		linear-gradient(rgba(76, 175, 130, 0.03) 1px, transparent 1px),
		linear-gradient(90deg, rgba(76, 175, 130, 0.03) 1px, transparent 1px) !important;
	background-size: 60px 60px !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

.front-page-6 .wrap {
	position: relative;
	z-index: 1;
}

/* ---------- 81c. Testimonial Section Subtle Gradient ---------- */
.front-page-4 {
	background: linear-gradient(180deg, #fff 0%, #fafbfa 50%, #f5f7f6 100%) !important;
}

/* ---------- 81d. Service Card Glassmorphism on Hover ---------- */
.front-page-2 .cw-feature-card {
	background: rgba(255, 255, 255, 0.92);
	/* backdrop-filter: blur(8px) — removed for GPU perf */
}

.front-page-2 .cw-feature-card:hover {
	background: rgba(255, 255, 255, 0.98);
	box-shadow:
		0 20px 60px rgba(26, 46, 40, 0.08),
		0 0 0 1px rgba(76, 175, 130, 0.08);
}

/* 81e. Header polish — consolidated in section 3 above */

/* ---------- 81f. Hero Section Noise Texture ---------- */
/* Subtle film grain for depth — controlled via JS overlay */
.front-page-1 {
	position: relative;
}

/* ---------- 81g. Link Styles in Dark Sections ---------- */
.front-page-3 a,
.cw-section-dark a:not(.cw-btn) {
	color: var(--cw-bright-green);
	text-decoration: none;
	border-bottom: 1px solid rgba(92, 219, 149, 0.3);
	transition: border-color 0.2s ease;
}

.front-page-3 a:hover,
.cw-section-dark a:not(.cw-btn):hover {
	border-bottom-color: var(--cw-bright-green);
}

/* ---------- 81h. Smooth Scrollbar Styling (Webkit) ---------- */
::-webkit-scrollbar {
	width: 8px;
}

::-webkit-scrollbar-track {
	background: var(--cw-deep-green);
}

::-webkit-scrollbar-thumb {
	background: rgba(76, 175, 130, 0.3);
	border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
	background: rgba(76, 175, 130, 0.5);
}

/* ---------- 81i. Selection Color ---------- */
::selection {
	background: rgba(76, 175, 130, 0.2);
	color: var(--cw-dark-text);
}

/* ---------- 81j. Loading Performance — Content Visibility ---------- */
.front-page-3,
.front-page-4,
/* content-visibility removed entirely — was inflating section heights
   and interfering with background rendering on some browsers */

/* Footer does NOT get content-visibility — it's always at the bottom and the
   600px intrinsic-size inflates it beyond its actual content height. */

/* ==========================================================================
   82. HOMEPAGE GAP & BLOG CARD FIXES
   ========================================================================== */

/* ---------- 82a. Remove white gap between content and footer on homepage ---------- */
.home .content {
	padding-bottom: 0 !important;
}

.home .site-inner {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

/* ---------- 82b. Blog card image quality - force larger images ---------- */
.cw-homepage-posts .listing-item .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	image-rendering: -webkit-optimize-contrast;
}

/* ---------- 82c. Blog card overlay for baked-in image text ---------- */
.cw-homepage-posts .listing-item .image {
	position: relative;
}

.cw-homepage-posts .listing-item .image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to bottom,
		rgba(26, 46, 40, 0.15) 0%,
		rgba(26, 46, 40, 0.4) 100%
	);
	border-radius: 20px 20px 0 0;
	pointer-events: none;
	z-index: 1;
	transition: opacity 0.3s ease;
}

.cw-homepage-posts .listing-item:hover .image::after {
	opacity: 0.6;
}

/* ==========================================================================
   85. PAGE-SPECIFIC COMPONENT STYLES
   Migrated from inline/post_content to stylesheet for proper separation.
   ========================================================================== */

/* ---------- 85a. Testimonials Page (ID 1853) ---------- */
.cw-testimonial-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.75rem;
}

@media (max-width: 768px) {
	.cw-testimonial-grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- 85b. Fractional CMO Page (ID 1852) ---------- */
@media (max-width: 768px) {
	.cw-section-gray div[style*="grid-template-columns:1fr 1fr"] {
		grid-template-columns: 1fr;
	}
}

/* ---------- 85c. Founder Coaching Placeholder Image (ID 1851) ---------- */
.cw-placeholder-image {
	width: 100%;
	aspect-ratio: 4/5;
	max-width: 420px;
	border-radius: 24px;
	background: linear-gradient(135deg, rgba(76, 175, 130, 0.15) 0%, rgba(92, 219, 149, 0.08) 100%);
	border: 2px dashed rgba(76, 175, 130, 0.3);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--cw-font-ui);
	font-size: 0.875rem;
	color: rgba(232, 240, 236, 0.7);
	text-align: center;
	padding: 2rem;
}

/* ---------- 85d. GSD System Page (ID 1741) ---------- */
.gsd-pain-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: rgba(92, 219, 149, 0.15);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	margin-bottom: 1.25rem;
}

.gsd-who-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 3rem;
	align-items: start;
}

.gsd-testimonial-card {
	background: var(--cw-light-surface);
	border-radius: var(--cw-radius-lg);
	padding: 2.5rem;
	border-left: 4px solid var(--cw-emerald);
}

.gsd-attribution {
	margin-top: 1.25rem;
	font-style: normal;
	font-weight: 600;
	color: var(--cw-emerald);
	font-size: 1rem;
}

.gsd-cta-buttons {
	display: flex;
	gap: 1rem;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 2rem;
}

.gsd-insight-box {
	background: rgba(92, 219, 149, 0.08);
	border: 1px solid rgba(76, 175, 130, 0.2);
	border-radius: var(--cw-radius-lg);
	padding: 2rem 2.5rem;
	margin-top: 2.5rem;
	text-align: center;
}

@media (max-width: 768px) {
	.gsd-who-grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.gsd-cta-buttons {
		flex-direction: column;
		align-items: center;
	}
}

/* ---------- 85e. Contact Page (ID 1491) ---------- */
@media (max-width: 768px) {
	.cw-inquiry-selector {
		grid-template-columns: repeat(2, 1fr);
	}
	div[style*="grid-template-columns:1.2fr 1fr"] {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.cw-inquiry-selector {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   90. PREMIUM DESIGN SYSTEM — Motion, Depth & Texture
   Version 9.0 — "Best personal brand site in existence" pass
   ========================================================================== */

/* ---------- 90a. Grain / Noise Texture Overlay ---------- */
/* Applies a subtle film grain to dark sections, killing the flat digital look */
/* NOTE: .before-footer::before is used for animated ambient wash — grain applied via .wrap::after instead */
.front-page-1::before,
.front-page-3::before,
.front-page-5::before,
.page-header::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	opacity: 0.035;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-repeat: repeat;
	background-size: 200px 200px;
	mix-blend-mode: overlay;
}

/* Ensure sections have position context for the grain overlay */
.front-page-1,
.front-page-3,
.front-page-5,
.page-header {
	position: relative !important;
	overflow: hidden;
}

/* ---------- 90b. Gradient Mesh Backgrounds ---------- */
/* Replace flat solid backgrounds with rich gradient meshes */
.front-page-1 {
	background: radial-gradient(ellipse at 20% 50%, #1C3230 0%, transparent 60%),
	            radial-gradient(ellipse at 80% 20%, rgba(76, 175, 130, 0.08) 0%, transparent 50%),
	            radial-gradient(ellipse at 50% 100%, rgba(92, 219, 149, 0.05) 0%, transparent 40%),
	            var(--cw-deep-green) !important;
	background-size: 100% 100% !important;
}

.front-page-3 {
	background: radial-gradient(ellipse at 30% 0%, rgba(76, 175, 130, 0.06) 0%, transparent 50%),
	            radial-gradient(ellipse at 70% 100%, rgba(28, 50, 48, 0.9) 0%, transparent 60%),
	            var(--cw-deep-green) !important;
}

.front-page-5 {
	background: radial-gradient(ellipse at 60% 30%, rgba(76, 175, 130, 0.07) 0%, transparent 50%),
	            radial-gradient(ellipse at 10% 80%, rgba(92, 219, 149, 0.04) 0%, transparent 40%),
	            var(--cw-deep-green) !important;
}

/* ---------- 90c. Enhanced Typography Scale ---------- */
/* Bigger, bolder, more editorial headlines */
.cw-hero-content h1,
/* .front-page-1 h1 consolidated into Section 3 */

.cw-section-title,
h2.cw-section-title {
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.025em;
}

/* Section labels — refined uppercase tracking */
.cw-section-label {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--cw-emerald);
	margin-bottom: 1rem;
}

/* ---------- 90d. Premium Section Spacing ---------- */
/* More generous whitespace between sections */
.front-page-1,
.front-page-2,
.front-page-3,
.front-page-4,
.front-page-5,
.front-page-6 {
	padding-top: clamp(80px, 10vw, 140px) !important;
	padding-bottom: clamp(80px, 10vw, 140px) !important;
}

/* ---------- 90e. Asymmetric Layout Utilities ---------- */
.cw-asymmetric {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 4rem;
	align-items: center;
}

.cw-asymmetric.reverse {
	grid-template-columns: 1fr 1.4fr;
}

@media (max-width: 768px) {
	.cw-asymmetric,
	.cw-asymmetric.reverse {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
}

/* ---------- 90f. Premium Card Effects ---------- */
/* 3D tilt-ready cards with depth */
.cw-feature-card,
.cw-testimonial-card,
.cw-value-card {
	transform-style: preserve-3d;
	will-change: transform;
	transition: box-shadow 0.4s ease, border-color 0.4s ease;
}

.cw-feature-card:hover,
.cw-value-card:hover {
	box-shadow: 0 20px 60px rgba(26, 46, 40, 0.2),
	            0 0 0 1px rgba(76, 175, 130, 0.15);
	border-color: rgba(76, 175, 130, 0.25);
}

.cw-testimonial-card:hover {
	box-shadow: 0 20px 60px rgba(26, 46, 40, 0.15),
	            0 0 40px rgba(76, 175, 130, 0.06);
}

/* Card inner glow on hover */
.cw-feature-card::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	opacity: 0;
	transition: opacity 0.4s ease;
	background: radial-gradient(circle at 50% 0%, rgba(76, 175, 130, 0.08) 0%, transparent 70%);
	pointer-events: none;
	z-index: 0;
}

.cw-feature-card:hover::after {
	opacity: 1;
}

/* ---------- 90g. Premium Button System ---------- */
/* Buttons with glow, depth, and magnetic-ready positioning */
.cw-btn-primary,
a.cw-btn-primary {
	position: relative;
	overflow: hidden;
	transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: 0 4px 15px rgba(76, 175, 130, 0.3);
}

.cw-btn-primary:hover,
a.cw-btn-primary:hover {
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.45),
	            0 0 60px rgba(76, 175, 130, 0.15);
	transform: translateY(-2px);
}

/* Button shimmer effect */
.cw-btn-primary::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(
		90deg,
		transparent 0%,
		rgba(255, 255, 255, 0.15) 50%,
		transparent 100%
	);
	transition: left 0.6s ease;
	z-index: 1;
}

.cw-btn-primary:hover::before {
	left: 100%;
}

/* Secondary button refinements */
.cw-btn-secondary:hover,
a.cw-btn-secondary:hover {
	background: rgba(76, 175, 130, 0.08);
	border-color: var(--cw-emerald);
	box-shadow: 0 0 30px rgba(76, 175, 130, 0.1);
}

/* ---------- 90h. Image Treatments ---------- */
/* Images that feel integrated, not just dropped into boxes */
.entry-content img,
.cw-about-image img,
.wp-block-image img {
	border-radius: var(--cw-radius-lg);
	transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1),
	            box-shadow 0.6s ease;
}

.entry-content img:hover,
.wp-block-image img:hover {
	transform: scale(1.02) !important;
	box-shadow: 0 20px 60px rgba(26, 46, 40, 0.15) !important;
}

/* ---------- 90i. Gradient Dividers ---------- */
/* Replace hard section breaks with gradient fades */
.front-page-2::before,
.front-page-4::before,
.front-page-6::before {
	content: '' !important;
	position: absolute !important;
	top: 0 !important;
	left: 10% !important;
	right: 10% !important;
	height: 1px !important;
	background: linear-gradient(90deg, transparent 0%, var(--cw-border) 30%, var(--cw-border) 70%, transparent 100%) !important;
	pointer-events: none !important;
}

.front-page-2,
.front-page-4,
.front-page-6 {
	position: relative !important;
}

/* ---------- 90j. Premium Nav Underline Effect ---------- */
/* Animated underline that grows from center on hover */
.nav-primary .genesis-nav-menu a {
	position: relative !important;
}

.nav-primary .genesis-nav-menu a::after {
	content: '' !important;
	position: absolute !important;
	bottom: -2px !important;
	left: 50% !important;
	width: 0 !important;
	height: 2px !important;
	background: var(--cw-emerald) !important;
	transition: width 0.3s ease, left 0.3s ease !important;
}

.nav-primary .genesis-nav-menu a:hover::after,
.nav-primary .genesis-nav-menu .current-menu-item > a::after {
	width: 100% !important;
	left: 0 !important;
}

/* ---------- 90k. Floating Elements & Depth Cues ---------- */
/* Subtle floating animation for hero decorative elements */
@keyframes cw-float {
	0%, 100% { transform: translateY(0px) rotate(0deg); }
	33% { transform: translateY(-8px) rotate(1deg); }
	66% { transform: translateY(-4px) rotate(-0.5deg); }
}

@keyframes cw-glow-pulse {
	0%, 100% { opacity: 0.4; }
	50% { opacity: 0.7; }
}

/* Hero image floating effect */
.cw-hero-media img,
.front-page-1 .widget_media_image img {
	animation: cw-float 6s ease-in-out infinite;
}

/* Accent glow behind hero image */
.cw-hero-media::before,
.front-page-1 .widget_media_image::before {
	content: '';
	position: absolute;
	top: 10%;
	left: -5%;
	right: -5%;
	bottom: 10%;
	background: radial-gradient(circle, rgba(76, 175, 130, 0.15) 0%, transparent 70%);
	filter: blur(40px);
	animation: cw-glow-pulse 4s ease-in-out infinite;
	z-index: -1;
	pointer-events: none;
}

.cw-hero-media,
.front-page-1 .widget_media_image {
	position: relative;
}

/* ---------- 90l. Marquee / Ticker Strip ---------- */
/* For social proof or brand logos */
.cw-marquee {
	overflow: hidden;
	white-space: nowrap;
	padding: 1.5rem 0;
	border-top: 1px solid rgba(76, 175, 130, 0.1);
	border-bottom: 1px solid rgba(76, 175, 130, 0.1);
}

.cw-marquee-inner {
	display: inline-block;
	animation: cw-marquee-scroll 25s linear infinite;
}

.cw-marquee-item {
	display: inline-block;
	padding: 0 3rem;
	font-family: var(--cw-font-heading);
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--cw-muted);
	opacity: 0.6;
}

@keyframes cw-marquee-scroll {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}

/* ---------- 90m. Enhanced Glassmorphism ---------- */
/* Deeper, richer glass effect for cards on dark backgrounds */
.front-page-3 .cw-feature-card,
.front-page-5 .cw-feature-card,
.front-page-3 .cw-value-card,
.front-page-5 .cw-value-card {
	background: rgba(255, 255, 255, 0.04);
	/* backdrop-filter: blur(20px) — removed for GPU perf */
	border: 1px solid rgba(255, 255, 255, 0.06);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2),
	            inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.front-page-3 .cw-feature-card:hover,
.front-page-5 .cw-feature-card:hover {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(76, 175, 130, 0.2);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3),
	            inset 0 1px 0 rgba(255, 255, 255, 0.08),
	            0 0 40px rgba(76, 175, 130, 0.08);
}

/* ---------- 90n. Overlapping Section Elements ---------- */
/* Break the template grid — elements that cross section boundaries */
.front-page-1 .widget_media_image {
	margin-bottom: -60px !important;
	position: relative !important;
	z-index: 10 !important;
}

/* Stats row overlapping into next section */
.cw-stats-row {
	position: relative;
	z-index: 5;
}

/* ---------- 90o. Editorial Content Styling ---------- */
/* For interior pages — make long-form content feel like a premium magazine */
.entry-content {
	max-width: 720px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.entry-content p {
	font-size: 1.125rem !important;
	line-height: 1.8 !important;
	color: var(--cw-dark-text) !important;
	margin-bottom: 1.75rem !important;
}

.entry-content h2 {
	font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em !important;
	margin-top: 3.5rem !important;
	margin-bottom: 1.25rem !important;
	line-height: 1.15 !important;
}

.entry-content h3 {
	font-size: clamp(1.25rem, 2vw, 1.75rem) !important;
	font-weight: 600 !important;
	letter-spacing: -0.015em !important;
	margin-top: 2.5rem !important;
	margin-bottom: 1rem !important;
}

/* Pull quotes */
.entry-content blockquote {
	border-left: 3px solid var(--cw-emerald) !important;
	padding: 1.5rem 0 1.5rem 2rem !important;
	margin: 3rem 0 !important;
	font-family: var(--cw-font-body) !important;
	font-style: italic !important;
	font-size: 1.25rem !important;
	line-height: 1.7 !important;
	color: var(--cw-deep-green) !important;
	background: transparent !important;
}

/* Drop cap DISABLED — breaks AISEO first-paragraph and looks broken with <strong> tags */
/* .single .entry-content > p:first-of-type::first-letter {
	font-family: var(--cw-font-heading) !important;
	font-size: 3.5rem !important;
	font-weight: 700 !important;
	float: left !important;
	line-height: 1 !important;
	padding-right: 0.75rem !important;
	padding-top: 0.15rem !important;
	color: var(--cw-deep-green) !important;
} */

/* Remove drop caps from blog archive cards */
.cw-blog-card .entry-content > p:first-of-type::first-letter {
	font-size: inherit !important;
	font-weight: inherit !important;
	float: none !important;
	padding-right: 0 !important;
	padding-top: 0 !important;
}

/* ---------- 90p. Responsive Premium Adjustments ---------- */
@media (max-width: 860px) {
	/* About page grid layouts stack on mobile */
	.cw-about .cw-contain > div[style*="grid-template-columns:1fr 1fr"] {
		grid-template-columns: 1fr;
	}
	.cw-value-grid {
		grid-template-columns: 1fr;
	}
	.cw-stats-row {
		flex-wrap: wrap;
	}
}

@media (max-width: 768px) {
	/* Reduce animation intensity on mobile */
	.cw-hero-media img,
	.front-page-1 .widget_media_image img {
		animation: none;
	}

	/* Tighter spacing on mobile */
	.front-page-1,
	.front-page-2,
	.front-page-3,
	.front-page-4,
	.front-page-5,
	.front-page-6 {
		padding-top: 60px !important;
		padding-bottom: 60px !important;
	}

	/* Disable tilt on touch devices */
	.cw-feature-card,
	.cw-testimonial-card {
		transform: none;
	}
}

/* ---------- 90q. Subtle Ambient Animations ---------- */
/* Background dots/grid pattern for light sections */
.front-page-2,
.front-page-4 {
	background-image: radial-gradient(circle at 1px 1px, rgba(26, 46, 40, 0.04) 1px, transparent 0) !important;
	background-size: 32px 32px !important;
}

/* ---------- 90r. Hero Badge Refinement ---------- */
.cw-hero-badge {
	background: rgba(76, 175, 130, 0.1);
	border: 1px solid rgba(76, 175, 130, 0.2);
	/* backdrop-filter: blur(10px) — removed for GPU perf */
	padding: 0.5rem 1.25rem;
	border-radius: var(--cw-radius-pill);
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

/* Pulsing dot indicator in badge */
.cw-hero-badge::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--cw-emerald);
	animation: cw-glow-pulse 2s ease-in-out infinite;
}

/* ---------- 90s. Smooth Scroll Behavior ---------- */
html {
	scroll-behavior: smooth !important;
}

/* ---------- 90t. Link Hover — Underline Grow ---------- */
.entry-content a:not(.cw-btn):not(.wp-block-button__link) {
	text-decoration: none;
	background-image: linear-gradient(var(--cw-emerald-on-light), var(--cw-emerald-on-light));
	background-size: 0% 2px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.3s ease;
	color: var(--cw-emerald-on-light); /* WCAG AA: 5.30:1 vs white */
}

.entry-content a:not(.cw-btn):not(.wp-block-button__link):hover {
	background-size: 100% 2px;
}

/* ---------- 90u. Focus Glow for Accessibility ---------- */
*:focus-visible {
	outline: 2px solid var(--cw-emerald-on-light); /* WCAG AA: 5.30:1 vs white */
	outline-offset: 3px;
	box-shadow: 0 0 0 4px rgba(27, 122, 74, 0.2);
}

/* ---------- 90v. Interior Page Hero Enhancement ---------- */
/* About, Coaching, etc. — page headers get premium treatment */
.page-header {
	padding: clamp(80px, 12vw, 160px) 0 clamp(60px, 8vw, 120px) !important;
	background: radial-gradient(ellipse at 30% 30%, rgba(76, 175, 130, 0.05) 0%, transparent 50%),
	            var(--cw-deep-green) !important;
}

.page-header .entry-title {
	font-size: clamp(2.5rem, 5vw, 4.5rem) !important;
	font-weight: 700 !important;
	letter-spacing: -0.03em !important;
	line-height: 1.08 !important;
}

/* ---------- 90w. Testimonial Cards — Premium Quotemark ---------- */
.cw-testimonial-card::before {
	content: '\201C';
	position: absolute;
	top: -10px;
	left: 20px;
	font-size: 5rem;
	line-height: 1;
	color: rgba(76, 175, 130, 0.15);
	font-family: Georgia, serif;
	pointer-events: none;
}

.cw-testimonial-card {
	position: relative;
	padding-top: 2.5rem;
}

/* ---------- 90x1. Animated Gradient Orbs — Hero Depth ---------- */
/* Floating colored orbs behind the hero for a custom, app-like feel */
.front-page-1::after {
	content: '' !important;
	position: absolute !important;
	top: -20% !important;
	right: -10% !important;
	width: 600px !important;
	height: 600px !important;
	border-radius: 50% !important;
	background: radial-gradient(circle, rgba(76, 175, 130, 0.12) 0%, transparent 70%) !important;
	filter: blur(80px) !important;
	animation: cw-orb-drift 12s ease-in-out infinite alternate !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

@keyframes cw-orb-drift {
	0% { transform: translate(0, 0) scale(1); }
	100% { transform: translate(-60px, 40px) scale(1.15); }
}

/* Second orb — bottom left of hero */
.front-page-1 > .wrap::before {
	content: '' !important;
	position: absolute !important;
	bottom: -15% !important;
	left: -5% !important;
	width: 400px !important;
	height: 400px !important;
	border-radius: 50% !important;
	background: radial-gradient(circle, rgba(92, 219, 149, 0.08) 0%, transparent 70%) !important;
	filter: blur(60px) !important;
	animation: cw-orb-drift-2 10s ease-in-out infinite alternate !important;
	pointer-events: none !important;
	z-index: 0 !important;
}

.front-page-1 > .wrap {
	position: relative !important;
}

@keyframes cw-orb-drift-2 {
	0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
	100% { transform: translate(30px, -20px) scale(1.1); opacity: 1; }
}

/* ---------- 90x2. Diagonal Section Transitions ---------- */
/* Angled dividers between sections for custom feel */
.front-page-2::after {
	content: '' !important;
	position: absolute !important;
	bottom: -40px !important;
	left: 0 !important;
	right: 0 !important;
	height: 80px !important;
	background: var(--cw-deep-green) !important;
	clip-path: polygon(0 60%, 100% 0, 100% 100%, 0% 100%) !important;
	z-index: 2 !important;
	pointer-events: none !important;
}

.front-page-4::after {
	content: '' !important;
	position: absolute !important;
	bottom: -40px !important;
	left: 0 !important;
	right: 0 !important;
	height: 80px !important;
	background: var(--cw-deep-green) !important;
	clip-path: polygon(0 0, 100% 60%, 100% 100%, 0% 100%) !important;
	z-index: 2 !important;
	pointer-events: none !important;
}

.front-page-2,
.front-page-4 {
	position: relative !important;
	z-index: 1 !important;
	margin-bottom: 0 !important;
	padding-bottom: clamp(100px, 12vw, 160px) !important;
}

/* ---------- 90x3. Social Proof Marquee Strip ---------- */
/* Inject via JS — a scrolling ticker of credibility markers */
.cw-proof-marquee {
	overflow: hidden;
	white-space: nowrap;
	padding: 1.25rem 0;
	background: rgba(26, 46, 40, 0.03);
	border-top: 1px solid rgba(26, 46, 40, 0.06);
	border-bottom: 1px solid rgba(26, 46, 40, 0.06);
}

.cw-proof-marquee-inner {
	display: inline-flex;
	align-items: center;
	gap: 3rem;
	animation: cw-marquee-scroll 30s linear infinite;
}

.cw-proof-marquee-item {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--cw-font-heading);
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cw-muted);
	white-space: nowrap;
}

.cw-proof-marquee-item .cw-proof-icon {
	font-size: 1rem;
}

/* ---------- 90x4. Stacked Card Hover Effect ---------- */
/* Cards that lift and reveal a shadow card behind them */
.cw-feature-card {
	position: relative;
}

.cw-feature-card::before {
	content: '';
	position: absolute;
	inset: 4px;
	background: inherit;
	border-radius: inherit;
	z-index: -1;
	transform: translateY(6px) scale(0.97);
	opacity: 0.4;
	transition: all 0.4s ease;
	filter: blur(2px);
}

.cw-feature-card:hover::before {
	transform: translateY(10px) scale(0.95);
	opacity: 0.25;
}

/* ---------- 90x5. Animated Stat Numbers — Glow Effect ---------- */
.cw-stat-number {
	text-shadow: 0 0 20px rgba(76, 175, 130, 0.3);
}

/* 90x6. Premium Before-Footer CTA Enhancement — Consolidated into Section 12 */

/* ---------- 90x7. Interactive Gradient on Dark Sections ---------- */
/* Subtle mouse-following gradient (set up in JS) */
.cw-mouse-gradient {
	position: absolute;
	width: 500px;
	height: 500px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(76, 175, 130, 0.06) 0%, transparent 70%);
	pointer-events: none;
	z-index: 0;
	filter: blur(40px);
	transition: transform 0.3s ease-out, opacity 0.3s ease;
	opacity: 0;
}

.front-page-1:hover .cw-mouse-gradient,
.front-page-3:hover .cw-mouse-gradient,
.front-page-5:hover .cw-mouse-gradient {
	opacity: 1;
}

/* ---------- 90x8. Premium Image Frame Treatment ---------- */
/* Offset border frame behind images */
.cw-hero-media img,
.cw-about-image img {
	position: relative;
	z-index: 2;
}

/* ---------- 90x9. Typewriter Cursor for Hero ---------- */
/* Blinking cursor after the hero headline for a tech/modern feel */
.cw-hero-title::after {
	content: '|';
	font-weight: 300;
	color: var(--cw-emerald);
	animation: cw-cursor-blink 1s step-end infinite;
	margin-left: 4px;
}

@keyframes cw-cursor-blink {
	0%, 50% { opacity: 1; }
	51%, 100% { opacity: 0; }
}

/* ---------- 90w. CSS Scroll Reveal System ---------- */
/* Performance: uses CSS transitions instead of per-element GSAP ScrollTriggers */
.cw-reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.cw-revealed {
	opacity: 1;
	transform: translateY(0);
}

/* Stagger delay for sibling cards */
.cw-reveal:nth-child(2) { transition-delay: 0.08s; }
.cw-reveal:nth-child(3) { transition-delay: 0.16s; }
.cw-reveal:nth-child(4) { transition-delay: 0.24s; }
.cw-reveal:nth-child(5) { transition-delay: 0.32s; }
.cw-reveal:nth-child(6) { transition-delay: 0.40s; }

/* Social proof dot (replaces emoji icons) */
.cw-proof-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--cw-emerald);
	margin-right: 10px;
	vertical-align: middle;
	box-shadow: 0 0 6px rgba(76, 175, 130, 0.5);
}

/* ---------- 90x. Scroll Progress Indicator ---------- */
/* Thin green line at top of page showing scroll progress */
.cw-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--cw-emerald), var(--cw-bright-green));
	z-index: 99999;
	transition: width 0.1s linear;
	box-shadow: 0 0 10px rgba(76, 175, 130, 0.5);
}


/* ==========================================================================
   91. PREMIUM GRAPHIC ELEMENTS — Real Design, Not Templates
   Geometric patterns, decorative accents, photo treatments, section dividers
   ========================================================================== */

/* ---------- 91a. Topographic Map Pattern on Dark Sections ---------- */
/* Subtle topo contour lines for depth and visual interest */
.front-page-1::after,
.front-page-5::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.04;
	background-image: url("data:image/svg+xml,%3Csvg width='600' height='600' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='topo' x='0' y='0' width='200' height='200' patternUnits='userSpaceOnUse'%3E%3Cpath d='M50 0c28 0 50 22 50 50s-22 50-50 50S0 78 0 50 22 0 50 0z' fill='none' stroke='%234CAF82' stroke-width='0.5'/%3E%3Cpath d='M100 50c0-28 22-50 50-50s50 22 50 50-22 50-50 50-50-22-50-50z' fill='none' stroke='%234CAF82' stroke-width='0.5'/%3E%3Cpath d='M50 100c28 0 50 22 50 50s-22 50-50 50S0 178 0 150s22-50 50-50z' fill='none' stroke='%234CAF82' stroke-width='0.5'/%3E%3Cpath d='M150 100c28 0 50 22 50 50s-22 50-50 50-50-22-50-50 22-50 50-50z' fill='none' stroke='%234CAF82' stroke-width='0.5'/%3E%3Cpath d='M25 25c14 0 25 11 25 25s-11 25-25 25S0 64 0 50s11-25 25-25z' fill='none' stroke='%235CDB95' stroke-width='0.3'/%3E%3Cpath d='M125 25c14 0 25 11 25 25s-11 25-25 25-25-11-25-25 11-25 25-25z' fill='none' stroke='%235CDB95' stroke-width='0.3'/%3E%3Cpath d='M75 75c14 0 25 11 25 25s-11 25-25 25-25-11-25-25 11-25 25-25z' fill='none' stroke='%235CDB95' stroke-width='0.3'/%3E%3Cpath d='M175 75c14 0 25 11 25 25s-11 25-25 25-25-11-25-25 11-25 25-25z' fill='none' stroke='%235CDB95' stroke-width='0.3'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='url(%23topo)'/%3E%3C/svg%3E");
	background-size: 400px 400px;
}

/* ---------- 91b. Corner Accent Brackets on Feature Cards ---------- */
/* Geometric L-shaped corner accents for a custom-designed feel */
.cw-feature-card::before {
	content: '';
	position: absolute;
	top: -1px;
	left: -1px;
	width: 32px;
	height: 32px;
	border-top: 2px solid var(--cw-emerald);
	border-left: 2px solid var(--cw-emerald);
	border-radius: 2px 0 0 0;
	opacity: 0;
	transition: opacity 0.4s ease, transform 0.4s ease;
	transform: translate(-4px, -4px);
	z-index: 2;
}

.cw-feature-card::after {
	content: '';
	position: absolute;
	bottom: -1px;
	right: -1px;
	width: 32px;
	height: 32px;
	border-bottom: 2px solid var(--cw-emerald);
	border-right: 2px solid var(--cw-emerald);
	border-radius: 0 0 2px 0;
	opacity: 0;
	transition: opacity 0.4s ease, transform 0.4s ease;
	transform: translate(4px, 4px);
	z-index: 2;
}

.cw-feature-card:hover::before,
.cw-feature-card:hover::after {
	opacity: 1;
	transform: translate(0, 0);
}

.cw-feature-card {
	position: relative;
	overflow: visible;
}

/* ---------- 91c. Gradient Text on Section Titles ---------- */
/* Premium gradient text — ONLY on dark backgrounds (before-footer, dark sections) */
.before-footer h2 {
	background: linear-gradient(135deg, var(--cw-white) 0%, var(--cw-bright-green) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* Light background headings — solid deep green, no gradient */
.front-page-5 h2 {
	color: var(--cw-deep-green) !important;
	-webkit-text-fill-color: var(--cw-deep-green) !important;
	background: none !important;
	-webkit-background-clip: unset !important;
	background-clip: unset !important;
}

.front-page-2 h2.cw-section-title {
	background: linear-gradient(135deg, var(--cw-deep-green) 0%, var(--cw-emerald) 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

/* ---------- 91d. Accent Line Dividers Between Sections ---------- */
/* Thin emerald line with a diamond/rhombus centerpiece */
.front-page-2::after,
.front-page-4::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: min(80%, 800px);
	height: 1px;
	background: linear-gradient(90deg, transparent 0%, rgba(76, 175, 130, 0.3) 20%, rgba(76, 175, 130, 0.5) 50%, rgba(76, 175, 130, 0.3) 80%, transparent 100%);
	z-index: 3;
}

.front-page-2,
.front-page-4 {
	position: relative;
}

/* Diamond accent at the center of the divider */
.front-page-2::before,
.front-page-4::before {
	content: '';
	position: absolute;
	bottom: -4px;
	left: 50%;
	transform: translateX(-50%) rotate(45deg);
	width: 8px;
	height: 8px;
	background: var(--cw-emerald);
	z-index: 4;
}

/* ---------- 91e. Photo Frame Treatment — Offset Accent Border ---------- */
/* Premium offset-border frame for the hero headshot */
.cw-hero-media {
	position: relative;
}

.cw-hero-media::before {
	content: '';
	position: absolute;
	top: 12px;
	left: 12px;
	right: -12px;
	bottom: -12px;
	border: 2px solid rgba(76, 175, 130, 0.3);
	border-radius: var(--cw-radius-lg);
	z-index: 1;
	transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-hero-media:hover::before {
	top: 8px;
	left: 8px;
	right: -8px;
	bottom: -8px;
	border-color: rgba(76, 175, 130, 0.5);
}

/* ---------- 91f. Numbered Section Markers ---------- */
/* Large ghosted numbers behind section titles for editorial feel */
.front-page-2 .wrap::before {
	content: '01';
	position: absolute;
	top: -20px;
	left: -10px;
	font-family: var(--cw-font-heading);
	font-size: clamp(4rem, 8vw, 8rem);
	font-weight: 900;
	color: rgba(76, 175, 130, 0.06);
	line-height: 1;
	pointer-events: none;
	z-index: 0;
}

.front-page-3 .wrap::before {
	content: '02';
	position: absolute;
	top: -20px;
	right: -10px;
	font-family: var(--cw-font-heading);
	font-size: clamp(4rem, 8vw, 8rem);
	font-weight: 900;
	color: rgba(92, 219, 149, 0.06);
	line-height: 1;
	pointer-events: none;
	z-index: 0;
}

.front-page-4 .wrap::before {
	content: '03';
	position: absolute;
	top: -20px;
	left: -10px;
	font-family: var(--cw-font-heading);
	font-size: clamp(4rem, 8vw, 8rem);
	font-weight: 900;
	color: rgba(76, 175, 130, 0.06);
	line-height: 1;
	pointer-events: none;
	z-index: 0;
}

.front-page-5 .wrap::before {
	content: '04';
	position: absolute;
	top: -20px;
	right: -10px;
	font-family: var(--cw-font-heading);
	font-size: clamp(4rem, 8vw, 8rem);
	font-weight: 900;
	color: rgba(92, 219, 149, 0.06);
	line-height: 1;
	pointer-events: none;
	z-index: 0;
}

.front-page-2 .wrap,
.front-page-3 .wrap,
.front-page-4 .wrap,
.front-page-5 .wrap {
	position: relative;
}

/* ---------- 91g. Decorative Quote Marks on Testimonials ---------- */
/* Large custom SVG quotation mark accent */
.cw-testimonial-card {
	position: relative;
	overflow: visible;
}

.cw-testimonial-card::before {
	content: '';
	position: absolute;
	top: -12px;
	left: 20px;
	width: 40px;
	height: 32px;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 40 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 20.8C0 27.2 3.2 32 9.6 32c4.8 0 8-3.2 8-7.2 0-4-2.4-6.4-5.6-6.4-1.6 0-2.4.4-3.2 1.2C9.6 14.4 12 8 17.6 4L14.4 0C5.6 5.6 0 13.6 0 20.8zm22.4 0C22.4 27.2 25.6 32 32 32c4.8 0 8-3.2 8-7.2 0-4-2.4-6.4-5.6-6.4-1.6 0-2.4.4-3.2 1.2C32 14.4 34.4 8 40 4L36.8 0C28 5.6 22.4 13.6 22.4 20.8z' fill='%234CAF82' fill-opacity='0.15'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	z-index: 3;
}

/* ---------- 91h. Hero Geometric Accent — Angled Lines ---------- */
/* Decorative angular lines behind the hero for architectural feel */
.front-page-1 .cw-hero-split::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 500px;
	height: 500px;
	transform: translate(-50%, -50%) rotate(45deg);
	border: 1px solid rgba(76, 175, 130, 0.06);
	border-radius: 0;
	pointer-events: none;
	z-index: 0;
}

.front-page-1 .cw-hero-split::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 350px;
	height: 350px;
	transform: translate(-50%, -50%) rotate(45deg);
	border: 1px solid rgba(76, 175, 130, 0.04);
	border-radius: 0;
	pointer-events: none;
	z-index: 0;
}

.front-page-1 .cw-hero-split {
	position: relative;
}

/* ---------- 91i. Crosshatch Pattern on Light Sections ---------- */
/* Subtle diagonal hatching for texture on white sections */
.front-page-2,
.front-page-4 {
	background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40L40 0M-10 10L10-10M30 50L50 30' stroke='%231A2E28' stroke-width='0.3' stroke-opacity='0.03'/%3E%3C/svg%3E");
	background-size: 40px 40px;
}

/* ---------- 91j. Button Glow Pulse on Primary CTA ---------- */
/* Subtle pulse ring animation on the primary hero CTA */
.front-page-1 .cw-btn-primary {
	position: relative;
}

.front-page-1 .cw-btn-primary::after {
	content: '';
	position: absolute;
	inset: -4px;
	border-radius: inherit;
	background: transparent;
	border: 2px solid rgba(76, 175, 130, 0.4);
	animation: cw-btn-pulse 2.5s ease-in-out infinite;
	pointer-events: none;
}

@keyframes cw-btn-pulse {
	0%, 100% { transform: scale(1); opacity: 0; }
	50% { transform: scale(1.08); opacity: 1; }
}

/* ---------- 91k. Vertical Accent Lines on Stats ---------- */
/* Thin emerald top-border accent above each stat for structure */
.cw-stat-item {
	position: relative;
}

.cw-stat-item::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 24px;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--cw-emerald), transparent);
	border-radius: 1px;
}

/* ---------- 91l. Circuit Board Pattern on Dark Section 3 ---------- */
/* Tech-inspired circuit trace pattern */
.front-page-3::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.025;
	background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 10h30v0h20M60 10v30M60 40h30M10 10v40h0v20M10 70h20M30 70v20M70 50v40M70 90h20' fill='none' stroke='%235CDB95' stroke-width='1' stroke-linecap='round'/%3E%3Ccircle cx='10' cy='10' r='2' fill='%235CDB95'/%3E%3Ccircle cx='60' cy='10' r='2' fill='%235CDB95'/%3E%3Ccircle cx='60' cy='40' r='2' fill='%235CDB95'/%3E%3Ccircle cx='90' cy='40' r='1.5' fill='%235CDB95'/%3E%3Ccircle cx='10' cy='70' r='2' fill='%235CDB95'/%3E%3Ccircle cx='30' cy='90' r='1.5' fill='%235CDB95'/%3E%3Ccircle cx='70' cy='50' r='1.5' fill='%235CDB95'/%3E%3Ccircle cx='90' cy='90' r='2' fill='%235CDB95'/%3E%3C/svg%3E");
	background-size: 100px 100px;
}

/* ---------- 91m. Accent Stripe Behind Hero Badge ---------- */
/* Horizontal accent line extending from the badge */
.cw-hero-badge {
	position: relative;
}

.cw-hero-badge::after {
	content: '';
	position: absolute;
	top: 50%;
	left: calc(100% + 12px);
	width: 60px;
	height: 1px;
	background: linear-gradient(90deg, rgba(76, 175, 130, 0.5), transparent);
	transform: translateY(-50%);
}

/* ---------- 91n. Value Card Left Border Accent ---------- */
/* Color-coded left border for process steps / value cards */
.cw-value-card {
	border-left: 3px solid transparent;
	border-image: linear-gradient(180deg, var(--cw-emerald) 0%, var(--cw-bright-green) 100%) 1;
	transition: border-image 0.3s ease, transform 0.3s ease;
}

.cw-value-card:hover {
	border-image: linear-gradient(180deg, var(--cw-bright-green) 0%, var(--cw-emerald) 100%) 1;
	transform: translateX(4px);
}

/* ---------- 91o. Testimonial Card — Green Side Accent ---------- */
/* Thick left accent bar that grows on hover */
.front-page-4 .cw-testimonial-card {
	border-left: 3px solid rgba(76, 175, 130, 0.3);
	transition: border-left-color 0.4s ease, border-left-width 0.4s ease, box-shadow 0.4s ease;
}

.front-page-4 .cw-testimonial-card:hover {
	border-left-color: var(--cw-emerald);
	border-left-width: 4px;
	box-shadow: 0 12px 40px rgba(26, 46, 40, 0.12);
}

/* ---------- 91q. Outlined Ghost Text Behind Hero ---------- */
/* Large stroke-only text for custom depth effect */
.front-page-1 .cw-hero-split {
	position: relative;
}

.front-page-1 .wrap::after {
	content: 'FOUNDER';
	position: absolute;
	bottom: 20px;
	left: -5%;
	font-family: var(--cw-font-heading);
	font-size: clamp(5rem, 12vw, 10rem);
	font-weight: 900;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	-webkit-text-stroke: 1px rgba(76, 175, 130, 0.07);
	-webkit-text-fill-color: transparent;
	line-height: 1;
	pointer-events: none;
	z-index: 0;
	white-space: nowrap;
}

.front-page-1 .wrap {
	position: relative;
}

/* ---------- 91r. Duotone Photo Treatment for Hero Image ---------- */
/* Branded green duotone overlay on headshot — premium feel */
.cw-hero-media img {
	filter: contrast(1.05) brightness(1.02);
	transition: filter 0.5s ease;
}

.cw-hero-media:hover img {
	filter: contrast(1.1) brightness(1.05);
}

/* ---------- 91s. Button Sweep Hover Effect ---------- */
/* Fill-sweep from left on hover — premium interaction */
.cw-btn-primary {
	position: relative;
	overflow: hidden;
	z-index: 1;
}

.cw-btn-primary::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, var(--cw-bright-green), var(--cw-emerald));
	transition: left 0.4s cubic-bezier(0.16, 1, 0.3, 1);
	z-index: -1;
}

.cw-btn-primary:hover::before {
	left: 0;
}

/* ---------- 91t. Geometric Line Art Accent in Hero Corner ---------- */
/* Abstract geometric decoration for premium custom look */
.front-page-1 .cw-hero-media::after {
	content: '';
	position: absolute;
	top: -30px;
	right: -30px;
	width: 80px;
	height: 80px;
	background-image: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='10' y='10' width='30' height='30' stroke='%234CAF82' stroke-width='1' fill='none' opacity='0.2'/%3E%3Crect x='25' y='25' width='30' height='30' stroke='%235CDB95' stroke-width='1' fill='none' opacity='0.15'/%3E%3Ccircle cx='40' cy='40' r='15' stroke='%234CAF82' stroke-width='0.5' fill='none' opacity='0.1'/%3E%3Cline x1='0' y1='40' x2='80' y2='40' stroke='%234CAF82' stroke-width='0.5' opacity='0.08'/%3E%3Cline x1='40' y1='0' x2='40' y2='80' stroke='%234CAF82' stroke-width='0.5' opacity='0.08'/%3E%3C/svg%3E");
	background-size: contain;
	pointer-events: none;
	z-index: 3;
	opacity: 0.7;
}

/* ---------- 91u. Accent Line Under Section Labels ---------- */
/* Animated underline that grows from center */
.cw-section-label {
	position: relative;
	display: inline-block;
}

.cw-section-label::after {
	content: '';
	position: absolute;
	bottom: -6px;
	left: 50%;
	width: 0;
	height: 2px;
	background: var(--cw-emerald);
	transition: width 0.5s cubic-bezier(0.16, 1, 0.3, 1), left 0.5s cubic-bezier(0.16, 1, 0.3, 1);
	border-radius: 1px;
}

.cw-section-label.cw-visible::after {
	width: 100%;
	left: 0;
}

/* ---------- 91v. Feature Card Icon Enhancement ---------- */
/* Subtle background circle behind the emoji icons */
.cw-feature-card h3::first-line {
	line-height: 2;
}

/* ---------- 91p. Responsive: Hide decorative elements on mobile ---------- */
@media (max-width: 768px) {
	.front-page-1 .cw-hero-split::before,
	.front-page-1 .cw-hero-split::after,
	.front-page-2 .wrap::before,
	.front-page-3 .wrap::before,
	.front-page-4 .wrap::before,
	.front-page-5 .wrap::before,
	.cw-hero-badge::after,
	.cw-hero-media::before,
	.cw-hero-media::after,
	.front-page-1 .wrap::after {
		display: none;
	}

	.cw-feature-card::before,
	.cw-feature-card::after {
		display: none;
	}
}

/* ═══════════════════════════════════════════════════════════════
   SECTION 92 — Interactive Infographic System (Colorful Edition)
   Vibrant, high-contrast, white-background infographics.
   ═══════════════════════════════════════════════════════════════ */

/* ---------- 92a. Infographic Base Container ---------- */
.cw-infographic {
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	padding: clamp(36px, 5vw, 64px) clamp(28px, 4vw, 56px);
	margin: 56px 0;
	background: linear-gradient(135deg, #FFFFFF 0%, #F8FAFC 100%);
	border: 1px solid rgba(99, 102, 241, 0.12);
	box-shadow:
		0 8px 32px rgba(99, 102, 241, 0.08),
		0 2px 8px rgba(0, 0, 0, 0.04),
		inset 0 1px 0 rgba(255, 255, 255, 0.8);
	max-width: 100%;
	box-sizing: border-box;
	transition: box-shadow 0.4s ease, transform 0.4s ease;
}

.cw-infographic:hover {
	box-shadow:
		0 16px 48px rgba(99, 102, 241, 0.12),
		0 4px 16px rgba(0, 0, 0, 0.06),
		inset 0 1px 0 rgba(255, 255, 255, 0.8);
	transform: translateY(-2px);
}

/* Break out of narrow entry-content */
.entry-content .cw-infographic {
	margin-left: -20px;
	margin-right: -20px;
	width: calc(100% + 40px);
	max-width: calc(100% + 40px);
}

/* Decorative top border gradient */
.cw-infographic::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 4px;
	background: linear-gradient(90deg, #6366F1, #8B5CF6, #EC4899, #F59E0B);
	border-radius: 20px 20px 0 0;
	z-index: 2;
}

.cw-infographic > * {
	position: relative;
	z-index: 1;
}

/* Subtle background pattern */
.cw-infographic::after {
	content: '';
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
	background-image: radial-gradient(circle at 20px 20px, rgba(99, 102, 241, 0.03) 1px, transparent 1px);
	background-size: 40px 40px;
	pointer-events: none;
	z-index: 0;
}

/* ---------- 92b. Infographic Header ---------- */
.cw-ig-label {
	display: inline-block;
	color: #6366F1;
	text-transform: uppercase;
	letter-spacing: 3px;
	font-size: 11px;
	font-weight: 700;
	margin-bottom: 10px;
	padding: 5px 14px;
	background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(139, 92, 246, 0.08));
	border-radius: 6px;
	border: 1px solid rgba(99, 102, 241, 0.15);
}

.cw-ig-title {
	color: #1E293B;
	font-size: clamp(22px, 3vw, 32px);
	font-weight: 800;
	line-height: 1.2;
	margin-bottom: 8px;
}

.cw-ig-subtitle {
	color: #475569;
	font-size: 15px;
	line-height: 1.5;
	margin-bottom: 32px;
}

/* ---------- 92c. Infographic Cards (grid items) ---------- */
.cw-ig-grid {
	display: grid;
	gap: 16px;
}

.cw-ig-grid-2 { grid-template-columns: 1fr 1fr; }
.cw-ig-grid-3 { grid-template-columns: 1fr 1fr 1fr; }
.cw-ig-grid-4 { grid-template-columns: 1fr 1fr; }

.cw-ig-card {
	background: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-radius: 14px;
	padding: 24px;
	position: relative;
	overflow: hidden;
	cursor: default;
	transition: border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.cw-ig-card:hover {
	border-color: #6366F1;
	transform: translateY(-3px);
	box-shadow: 0 8px 25px rgba(99, 102, 241, 0.12);
}

/* Colorful top stripe per card */
.cw-ig-card:nth-child(1) { border-top: 3px solid #6366F1; }
.cw-ig-card:nth-child(2) { border-top: 3px solid #EC4899; }
.cw-ig-card:nth-child(3) { border-top: 3px solid #F59E0B; }
.cw-ig-card:nth-child(4) { border-top: 3px solid #10B981; }

/* Ghost number */
.cw-ig-card-number {
	position: absolute;
	top: 8px;
	right: 14px;
	font-family: var(--cw-font-heading);
	font-size: 56px;
	font-weight: 900;
	color: rgba(99, 102, 241, 0.08);
	line-height: 1;
	pointer-events: none;
	transition: color 0.3s ease;
}

.cw-ig-card:nth-child(2) .cw-ig-card-number { color: rgba(236, 72, 153, 0.08); }
.cw-ig-card:nth-child(3) .cw-ig-card-number { color: rgba(245, 158, 11, 0.08); }
.cw-ig-card:nth-child(4) .cw-ig-card-number { color: rgba(16, 185, 129, 0.08); }

.cw-ig-card:hover .cw-ig-card-number {
	color: rgba(99, 102, 241, 0.15);
}

.cw-ig-card h4 {
	color: #1E293B;
	font-size: 16px;
	font-weight: 700;
	margin-bottom: 8px;
}

.cw-ig-card p {
	color: #475569;
	font-size: 14px;
	line-height: 1.6;
	margin: 0;
}

/* ---------- 92d. Infographic Flow Steps (horizontal) ---------- */
.cw-ig-flow {
	display: flex;
	align-items: stretch;
	gap: 0;
}

.cw-ig-step {
	flex: 1;
	background: #F8FAFC;
	border: 1px solid #E2E8F0;
	padding: 28px 20px;
	text-align: center;
	cursor: default;
	transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.cw-ig-step:first-child { border-radius: 14px 0 0 14px; }
.cw-ig-step:last-child { border-radius: 0 14px 14px 0; }

.cw-ig-step:hover {
	background: #EEF2FF;
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(99, 102, 241, 0.1);
}

.cw-ig-step-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 14px;
	font-size: 22px;
	font-weight: 800;
	color: #fff;
	transition: transform 0.3s ease;
}

.cw-ig-step:nth-child(1) .cw-ig-step-icon { background: linear-gradient(135deg, #6366F1, #818CF8); }
.cw-ig-step:nth-child(3) .cw-ig-step-icon { background: linear-gradient(135deg, #EC4899, #F472B6); }
.cw-ig-step:nth-child(5) .cw-ig-step-icon { background: linear-gradient(135deg, #10B981, #34D399); }

.cw-ig-step:hover .cw-ig-step-icon {
	transform: scale(1.1);
}

.cw-ig-step h4 {
	color: #1E293B;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin-bottom: 8px;
}

.cw-ig-step p {
	color: #64748B;
	font-size: 13px;
	line-height: 1.55;
	margin: 0;
}

.cw-ig-arrow {
	display: flex;
	align-items: center;
	color: #6366F1;
	font-size: 24px;
	padding: 0 6px;
	transform-origin: center;
}

/* ---------- 92e. Comparison Columns ---------- */
.cw-ig-compare {
	display: grid;
	grid-template-columns: 1fr 32px 1fr;
	gap: 0;
	align-items: start;
	max-width: 100%;
	overflow: hidden;
}

.cw-ig-col {
	border-radius: 14px;
	padding: 24px;
}

.cw-ig-col-green {
	background: linear-gradient(135deg, #ECFDF5, #F0FDF4);
	border: 1px solid #A7F3D0;
}

.cw-ig-col-red {
	background: linear-gradient(135deg, #FFF1F2, #FEF2F2);
	border: 1px solid #FECACA;
}

.cw-ig-col h4 {
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-bottom: 16px;
	text-align: center;
}

.cw-ig-col-green h4 { color: #059669; }
.cw-ig-col-red h4 { color: #DC2626; }

.cw-ig-compare-divider {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 28px;
	color: #6366F1;
}

/* ---------- 92f. List Items (animated) ---------- */
.cw-ig-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cw-ig-item {
	color: #334155;
	font-size: 14px;
	padding: 10px 0;
	border-bottom: 1px solid #F1F5F9;
	transition: color 0.2s ease, padding-left 0.2s ease;
	cursor: default;
}

.cw-ig-item:last-child {
	border-bottom: none;
}

.cw-ig-item:hover {
	color: #0F172A;
	padding-left: 6px;
}

/* ---------- 92g. Vertical Step List (with icons) ---------- */
.cw-ig-steps-vertical {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cw-ig-step-row {
	display: flex;
	align-items: center;
	gap: 16px;
	background: #F8FAFC;
	border-left: 4px solid #6366F1;
	border-radius: 0 12px 12px 0;
	padding: 16px 20px;
	cursor: default;
	transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}

.cw-ig-step-row:nth-child(2) { border-left-color: #EC4899; }
.cw-ig-step-row:nth-child(3) { border-left-color: #F59E0B; }
.cw-ig-step-row:nth-child(4) { border-left-color: #10B981; }
.cw-ig-step-row:nth-child(5) { border-left-color: #8B5CF6; }

.cw-ig-step-row:hover {
	background: #EEF2FF;
	transform: translateX(6px);
	box-shadow: 0 4px 16px rgba(99, 102, 241, 0.08);
}

.cw-ig-step-row .cw-ig-step-icon {
	width: 44px;
	height: 44px;
	min-width: 44px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	border: none;
	margin: 0;
	transition: transform 0.3s ease;
}

.cw-ig-step-row:nth-child(1) .cw-ig-step-icon { background: linear-gradient(135deg, #EEF2FF, #E0E7FF); }
.cw-ig-step-row:nth-child(2) .cw-ig-step-icon { background: linear-gradient(135deg, #FCE7F3, #FBCFE8); }
.cw-ig-step-row:nth-child(3) .cw-ig-step-icon { background: linear-gradient(135deg, #FEF3C7, #FDE68A); }
.cw-ig-step-row:nth-child(4) .cw-ig-step-icon { background: linear-gradient(135deg, #D1FAE5, #A7F3D0); }
.cw-ig-step-row:nth-child(5) .cw-ig-step-icon { background: linear-gradient(135deg, #EDE9FE, #DDD6FE); }

.cw-ig-step-row:hover .cw-ig-step-icon {
	transform: scale(1.15);
}

.cw-ig-step-row strong {
	color: #1E293B;
	font-size: 15px;
	display: block;
	margin-bottom: 2px;
}

.cw-ig-step-row span {
	color: #64748B;
	font-size: 13px;
}

/* ---------- 92h. Progress Bars ---------- */
.cw-ig-bar {
	margin-bottom: 16px;
}

.cw-ig-bar-label {
	display: flex;
	justify-content: space-between;
	color: #64748B;
	font-size: 12px;
	font-weight: 600;
	margin-bottom: 6px;
}

.cw-ig-bar-track {
	height: 8px;
	background: #E2E8F0;
	border-radius: 4px;
	overflow: hidden;
}

.cw-ig-bar-fill {
	height: 100%;
	border-radius: 4px;
	background: linear-gradient(90deg, #6366F1, #8B5CF6);
	width: 0;
	transition: width 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-ig-card:nth-child(2) .cw-ig-bar-fill { background: linear-gradient(90deg, #EC4899, #F472B6); }
.cw-ig-card:nth-child(3) .cw-ig-bar-fill { background: linear-gradient(90deg, #F59E0B, #FBBF24); }
.cw-ig-card:nth-child(4) .cw-ig-bar-fill { background: linear-gradient(90deg, #10B981, #34D399); }

/* ---------- 92i. Infographic Footer ---------- */
.cw-ig-footer {
	text-align: center;
	color: #94A3B8;
	font-size: 11px;
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid #F1F5F9;
}

/* ---------- 92j. Callout / Highlight Box ---------- */
.cw-ig-callout {
	text-align: center;
	margin-top: 24px;
	padding: 18px 28px;
	background: linear-gradient(135deg, #EEF2FF, #F5F3FF);
	border-radius: 12px;
	border: 1px solid #C7D2FE;
}

.cw-ig-callout p {
	color: #4338CA;
	font-size: 15px;
	font-weight: 500;
	font-style: italic;
	margin: 0;
	line-height: 1.5;
}

/* ---------- 92k. Hierarchy Diagram ---------- */
.cw-ig-hierarchy-top {
	text-align: center;
	margin-bottom: 16px;
}

.cw-ig-hierarchy-box {
	display: inline-block;
	background: linear-gradient(135deg, #6366F1, #8B5CF6);
	border: none;
	border-radius: 12px;
	padding: 16px 48px;
	color: #fff;
}

.cw-ig-hierarchy-box strong { color: #fff; }
.cw-ig-hierarchy-box span { color: rgba(255,255,255,0.8); }

.cw-ig-hierarchy-arrow {
	text-align: center;
	color: #6366F1;
	font-size: 20px;
	margin: 8px 0;
}

.cw-ig-hierarchy-children {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}

.cw-ig-hierarchy-child {
	background: #F8FAFC;
	border: 1px solid #E2E8F0;
	border-radius: 10px;
	padding: 14px;
	text-align: center;
	transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
	cursor: default;
}

.cw-ig-hierarchy-child:nth-child(1) { border-top: 3px solid #EC4899; }
.cw-ig-hierarchy-child:nth-child(2) { border-top: 3px solid #F59E0B; }
.cw-ig-hierarchy-child:nth-child(3) { border-top: 3px solid #10B981; }

.cw-ig-hierarchy-child:hover {
	background: #EEF2FF;
	border-color: #C7D2FE;
	transform: translateY(-2px);
}

.cw-ig-hierarchy-child .cw-ig-small-label {
	color: #6366F1;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-bottom: 4px;
	display: block;
	font-weight: 700;
}

.cw-ig-hierarchy-child p {
	color: #64748B;
	font-size: 12px;
	margin: 0;
}

.cw-ig-tags {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 20px;
	flex-wrap: wrap;
}

.cw-ig-tag {
	border-radius: 20px;
	padding: 6px 16px;
	font-size: 12px;
	font-weight: 600;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	cursor: default;
}

.cw-ig-tag:nth-child(1) { background: #EEF2FF; color: #4338CA; }
.cw-ig-tag:nth-child(2) { background: #FCE7F3; color: #BE185D; }
.cw-ig-tag:nth-child(3) { background: #FEF3C7; color: #92400E; }
.cw-ig-tag:nth-child(4) { background: #D1FAE5; color: #065F46; }
.cw-ig-tag:nth-child(5) { background: #EDE9FE; color: #5B21B6; }

.cw-ig-tag:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

/* ---------- 92l. Responsive ---------- */
@media (max-width: 768px) {
	.cw-ig-grid-2,
	.cw-ig-grid-3,
	.cw-ig-grid-4 {
		grid-template-columns: 1fr;
	}

	.cw-ig-flow {
		flex-direction: column;
	}

	.cw-ig-step:first-child { border-radius: 14px 14px 0 0; }
	.cw-ig-step:last-child { border-radius: 0 0 14px 14px; }

	.cw-ig-arrow {
		justify-content: center;
		transform: rotate(90deg);
		padding: 4px 0;
	}

	.cw-ig-compare {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.cw-ig-compare-divider {
		transform: rotate(90deg);
	}

	.cw-ig-hierarchy-children {
		grid-template-columns: 1fr;
	}
}

/* ═══════════════════════════════════════════════════════════════
   SECTION 93 — Award-Winning Animated SVG Infographics
   Self-drawing lines, progress rings, orbital systems,
   flowing pipelines, and animated data visualizations.
   ═══════════════════════════════════════════════════════════════ */

/* ---------- 93a. Animated Progress Rings ---------- */
.cw-rings {
	display: flex;
	justify-content: center;
	gap: clamp(16px, 4vw, 48px);
	flex-wrap: wrap;
	padding: 20px 0;
}

.cw-ring-item {
	text-align: center;
	position: relative;
	padding: 20px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.7);
	/* backdrop-filter: blur(10px) — removed for GPU perf */
	border: 1px solid rgba(99, 102, 241, 0.08);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cw-ring-item:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(99, 102, 241, 0.15);
}

.cw-ring-svg {
	width: 140px;
	height: 140px;
	transform: rotate(-90deg);
}

.cw-ring-bg {
	fill: none;
	stroke: #E2E8F0;
	stroke-width: 8;
}

.cw-ring-fill {
	fill: none;
	stroke-width: 8;
	stroke-linecap: round;
	/* dasharray/dashoffset animated by GSAP */
}

/* Color variants */
.cw-ring-fill-indigo { stroke: url(#grad-indigo); }
.cw-ring-fill-pink { stroke: url(#grad-pink); }
.cw-ring-fill-amber { stroke: url(#grad-amber); }
.cw-ring-fill-green { stroke: url(#grad-green); }

/* Fallback solid colors when gradients aren't supported */
.cw-ring-fill-indigo { stroke: #6366F1; }
.cw-ring-fill-pink { stroke: #EC4899; }
.cw-ring-fill-amber { stroke: #F59E0B; }
.cw-ring-fill-green { stroke: #10B981; }

.cw-ring-label {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
}

.cw-ring-percent {
	display: block;
	font-size: 28px;
	font-weight: 800;
	color: #1E293B;
	line-height: 1;
}

.cw-ring-name {
	display: block;
	font-size: 13px;
	color: #475569;
	margin-top: 6px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.cw-ring-desc {
	color: #475569;
	font-size: 13px;
	margin-top: 12px;
	max-width: 140px;
	line-height: 1.4;
}

/* Ring glow handled by GSAP after fill animation completes */

/* ---------- 93b. Self-Drawing SVG Line Chart ---------- */
.cw-chart-container {
	position: relative;
	padding: 20px 0;
}

.cw-chart-svg {
	width: 100%;
	height: auto;
	overflow: visible;
}

.cw-chart-line {
	fill: none;
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* stroke-dashoffset/dasharray and dot radius animated by GSAP (not CSS)
   to avoid CSS overriding SVG attributes */
.cw-chart-area {
	opacity: 0;
}

.cw-chart-dot {
	r: 0;
}

.cw-chart-dot-pulse {
	animation: dotPulse 2s ease-in-out infinite;
}

@keyframes dotPulse {
	0%, 100% { r: 6; opacity: 1; }
	50% { r: 9; opacity: 0.7; }
}

.cw-chart-label {
	font-family: var(--cw-font-heading);
	font-size: 13px;
	font-weight: 700;
	opacity: 0;
	transition: opacity 0.6s ease 2s;
}

.cw-infographic.cw-visible .cw-chart-label {
	opacity: 1;
}

.cw-chart-grid-line {
	stroke: #E2E8F0;
	stroke-width: 1;
	stroke-dasharray: 4 4;
}

.cw-chart-annotation {
	font-size: 11px;
	fill: #94A3B8;
	font-family: var(--cw-font-heading);
}

/* ---------- 93c. Animated Pipeline / Flow ---------- */
.cw-pipeline {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	padding: 20px 0;
}

.cw-pipe-node {
	width: 140px;
	height: 140px;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
	opacity: 0;
	transform: scale(0.5);
	transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.cw-infographic.cw-visible .cw-pipe-node {
	opacity: 1;
	transform: scale(1);
}

.cw-infographic.cw-visible .cw-pipe-node:nth-child(1) { transition-delay: 0.2s; }
.cw-infographic.cw-visible .cw-pipe-node:nth-child(3) { transition-delay: 0.6s; }
.cw-infographic.cw-visible .cw-pipe-node:nth-child(5) { transition-delay: 1.0s; }

.cw-pipe-node-1 {
	background: linear-gradient(135deg, #6366F1, #818CF8);
	box-shadow: 0 8px 32px rgba(99, 102, 241, 0.3), inset 0 1px 0 rgba(255,255,255,0.2);
}
.cw-pipe-node-2 {
	background: linear-gradient(135deg, #EC4899, #F472B6);
	box-shadow: 0 8px 32px rgba(236, 72, 153, 0.3), inset 0 1px 0 rgba(255,255,255,0.2);
}
.cw-pipe-node-3 {
	background: linear-gradient(135deg, #10B981, #34D399);
	box-shadow: 0 8px 32px rgba(16, 185, 129, 0.3), inset 0 1px 0 rgba(255,255,255,0.2);
}

.cw-pipe-node:hover {
	transform: scale(1.12) !important;
	z-index: 2;
}

.cw-pipe-node-1:hover {
	box-shadow: 0 12px 40px rgba(99, 102, 241, 0.45), inset 0 1px 0 rgba(255,255,255,0.3);
}
.cw-pipe-node-2:hover {
	box-shadow: 0 12px 40px rgba(236, 72, 153, 0.45), inset 0 1px 0 rgba(255,255,255,0.3);
}
.cw-pipe-node-3:hover {
	box-shadow: 0 12px 40px rgba(16, 185, 129, 0.45), inset 0 1px 0 rgba(255,255,255,0.3);
}

.cw-pipe-num {
	font-size: 32px;
	font-weight: 900;
	color: rgba(255,255,255,0.3);
	line-height: 1;
}

.cw-pipe-title {
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin-top: 4px;
}

.cw-pipe-desc {
	color: #475569;
	font-size: 13px;
	text-align: center;
	max-width: 140px;
	margin-top: 12px;
	line-height: 1.4;
}

/* Animated connector between nodes */
.cw-pipe-connector {
	width: 80px;
	height: 4px;
	position: relative;
	overflow: hidden;
}

.cw-pipe-connector::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, #6366F1, transparent);
	border-radius: 2px;
}

.cw-infographic.cw-visible .cw-pipe-connector::before {
	animation: flowRight 1.5s ease-in-out infinite;
}

.cw-pipe-connector-2::before {
	background: linear-gradient(90deg, transparent, #EC4899, transparent);
}

@keyframes flowRight {
	0% { left: -100%; }
	100% { left: 100%; }
}

/* Track behind connector */
.cw-pipe-connector::after {
	content: '';
	position: absolute;
	top: 1px;
	left: 0;
	width: 100%;
	height: 2px;
	background: #E2E8F0;
	border-radius: 1px;
}

/* ---------- 93d. Orbital System ---------- */
.cw-orbital {
	position: relative;
	width: 340px;
	height: 340px;
	margin: 20px auto;
}

.cw-orbital-center {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 90px;
	height: 90px;
	border-radius: 50%;
	background: linear-gradient(135deg, #6366F1, #8B5CF6);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	box-shadow: 0 0 30px rgba(99, 102, 241, 0.4), 0 0 60px rgba(99, 102, 241, 0.15);
	animation: orbCenterPulse 3s ease-in-out infinite;
	font-weight: 800;
	font-size: 13px;
	text-align: center;
	z-index: 3;
	box-shadow: 0 8px 32px rgba(99, 102, 241, 0.35);
}

.cw-orbital-ring {
	position: absolute;
	top: 50%;
	left: 50%;
	border-radius: 50%;
	border: 1px dashed #CBD5E1;
}

.cw-orbital-ring-1 { width: 220px; height: 220px; margin: -110px 0 0 -110px; }
.cw-orbital-ring-2 { width: 310px; height: 310px; margin: -155px 0 0 -155px; }

.cw-orbital-ring-1 {
	animation: orbitSpin 30s linear infinite;
}

.cw-orbital-ring-2 {
	animation: orbitSpin 45s linear infinite reverse;
}

@keyframes orbitSpin {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

@keyframes orbCenterPulse {
	0%, 100% { box-shadow: 0 0 30px rgba(99, 102, 241, 0.4), 0 0 60px rgba(99, 102, 241, 0.15); }
	50% { box-shadow: 0 0 40px rgba(99, 102, 241, 0.6), 0 0 80px rgba(99, 102, 241, 0.25); }
}

.cw-orbital-item {
	position: absolute;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	box-shadow: 0 4px 16px rgba(0,0,0,0.08);
	cursor: default;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Counter-rotate items so they stay upright */
.cw-orbital-ring-1 .cw-orbital-item { animation: orbitSpin 30s linear infinite reverse; }
.cw-orbital-ring-2 .cw-orbital-item { animation: orbitSpin 45s linear infinite; }

.cw-orbital-item:hover {
	transform: scale(1.25) !important;
	box-shadow: 0 8px 24px rgba(0,0,0,0.15);
	z-index: 5;
}

.cw-orbital-item-1 { background: #EEF2FF; top: -28px; left: 50%; margin-left: -28px; }
.cw-orbital-item-2 { background: #FCE7F3; top: 50%; right: -28px; margin-top: -28px; }
.cw-orbital-item-3 { background: #FEF3C7; bottom: -28px; left: 50%; margin-left: -28px; }
.cw-orbital-item-4 { background: #D1FAE5; top: 50%; left: -28px; margin-top: -28px; }
.cw-orbital-item-5 { background: #EDE9FE; top: 10px; right: 10px; }

/* Orbital labels outside the system */
.cw-orbital-labels {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 24px;
}

.cw-orbital-label-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	background: #F8FAFC;
	border-radius: 10px;
	border: 1px solid #E2E8F0;
	transition: border-color 0.3s ease, background 0.3s ease;
	cursor: default;
}

.cw-orbital-label-item:hover {
	border-color: #6366F1;
	background: #EEF2FF;
}

.cw-orbital-label-icon {
	width: 32px;
	height: 32px;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	flex-shrink: 0;
}

.cw-orbital-label-text strong {
	display: block;
	font-size: 13px;
	color: #1E293B;
}

.cw-orbital-label-text span {
	font-size: 11px;
	color: #64748B;
}

/* ---------- 93e. Animated Comparison Bars ---------- */
.cw-compare-bars {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 10px 0;
}

.cw-compare-bar-row {
	display: grid;
	grid-template-columns: 120px 1fr 60px;
	align-items: center;
	gap: 12px;
}

.cw-compare-bar-label {
	font-size: 13px;
	font-weight: 600;
	color: #334155;
	text-align: right;
}

.cw-compare-bar-track {
	height: 28px;
	background: #F1F5F9;
	border-radius: 14px;
	overflow: hidden;
	position: relative;
}

.cw-compare-bar-fill {
	height: 100%;
	border-radius: 14px;
	width: 0;
	transition: width 1.8s cubic-bezier(0.16, 1, 0.3, 1);
	position: relative;
}

.cw-infographic.cw-visible .cw-compare-bar-fill {
	width: var(--bar-width);
}

/* Shimmer effect on bars */
.cw-compare-bar-fill::after {
	content: '';
	position: absolute;
	top: 0;
	left: -150%;
	width: 150%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
	animation: barShimmer 3s ease-in-out infinite;
	animation-delay: 2s;
}

@keyframes barShimmer {
	0% { left: -150%; }
	100% { left: 150%; }
}

.cw-compare-bar-value {
	font-size: 14px;
	font-weight: 700;
	color: #1E293B;
}

.cw-bar-green { background: linear-gradient(90deg, #10B981, #34D399); }
.cw-bar-red { background: linear-gradient(90deg, #EF4444, #F87171); }
.cw-bar-indigo { background: linear-gradient(90deg, #6366F1, #818CF8); }
.cw-bar-pink { background: linear-gradient(90deg, #EC4899, #F472B6); }
.cw-bar-amber { background: linear-gradient(90deg, #F59E0B, #FBBF24); }

/* ---------- 93f. Animated Cascade / Waterfall ---------- */
.cw-cascade {
	position: relative;
	padding: 10px 0;
}

.cw-cascade-svg {
	width: 100%;
	height: auto;
}

.cw-cascade-node {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.cw-infographic.cw-visible .cw-cascade-node {
	opacity: 1;
	transform: translateY(0);
}

.cw-infographic.cw-visible .cw-cascade-node:nth-child(1) { transition-delay: 0.3s; }
.cw-infographic.cw-visible .cw-cascade-node:nth-child(2) { transition-delay: 0.5s; }
.cw-infographic.cw-visible .cw-cascade-node:nth-child(3) { transition-delay: 0.7s; }
.cw-infographic.cw-visible .cw-cascade-node:nth-child(4) { transition-delay: 0.9s; }
.cw-infographic.cw-visible .cw-cascade-node:nth-child(5) { transition-delay: 1.1s; }

.cw-cascade-line {
	stroke: #CBD5E1;
	stroke-width: 2;
	/* dasharray/dashoffset animated by GSAP */
}

/* ---------- 93f-2. Gauge (Article 1, 20) ---------- */
.cw-gauge-wrap { text-align: center; }
.cw-gauge-svg { max-width: 300px; margin: 0 auto; display: block; }
.cw-gauge-labels {
	display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center;
	margin-top: 1.5rem; font-size: 0.85rem; line-height: 1.5;
}
.cw-gauge-label-item {
	flex: 1 1 200px; max-width: 250px; text-align: left;
	padding: 0.75rem; background: rgba(255,255,255,0.03); border-radius: 8px;
}

/* ---------- 93f-3. 2x2 Matrix (Article 1, 4) ---------- */
.cw-matrix-2x2 { position: relative; max-width: 560px; margin: 0 auto; }
.cw-matrix-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.cw-matrix-cell {
	padding: 1.25rem; border-radius: 12px; border: 1.5px solid;
	text-align: center;
}
.cw-matrix-cell strong { display: block; font-size: 1rem; margin-bottom: 0.25rem; color: #1A2E28; }
.cw-matrix-cell span { display: block; font-size: 0.85rem; color: #64748B; }
.cw-matrix-cell small { display: block; margin-top: 0.5rem; font-size: 0.8rem; }
.cw-matrix-axis-y, .cw-matrix-axis-y-bottom, .cw-matrix-axis-x {
	text-align: center; font-size: 0.75rem; font-weight: 700; color: #94A3B8;
	text-transform: uppercase; letter-spacing: 0.1em; padding: 0.5rem 0;
}
.cw-matrix-axis-x { display: flex; justify-content: space-between; }

/* ---------- 93f-4. Flowchart (Article 2) ---------- */
.cw-flowchart { max-width: 500px; margin: 0 auto; text-align: center; }
.cw-flow-node {
	display: inline-block; padding: 0.75rem 1.5rem; border-radius: 10px;
	font-weight: 600; font-size: 0.9rem; margin: 0.25rem 0;
}
.cw-flow-start { background: #6366F1; color: #fff; border-radius: 50px; }
.cw-flow-question {
	background: #FEF3C7; color: #92400E; border: 2px solid #FDE68A;
	transform: rotate(0deg); /* diamond shape via CSS if desired */
}
.cw-flow-action {
	background: #F8FAFC; border: 2px solid #E2E8F0; color: #1A2E28;
}
.cw-flow-action small { display: block; font-weight: 400; color: #64748B; font-size: 0.8rem; }
.cw-flow-arrow {
	font-size: 1.25rem; color: #CBD5E1; line-height: 1; margin: 0.25rem 0;
}
.cw-flow-branch {
	display: flex; gap: 2rem; justify-content: center; margin-top: 0.5rem;
}
.cw-flow-path { text-align: center; }
.cw-flow-label { font-weight: 700; font-size: 0.8rem; display: block; margin-bottom: 0.25rem; }

/* ---------- 93f-5. Stack Layers (Article 3, 13) ---------- */
.cw-stack { display: flex; flex-direction: column; gap: 8px; max-width: 520px; margin: 0 auto; }
.cw-stack-layer {
	display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem;
	border-radius: 10px; color: #fff; transition: all 0.5s ease;
	transition-delay: var(--delay, 0s);
}
.cw-stack-num { font-size: 1.5rem; font-weight: 800; opacity: 0.6; min-width: 30px; }
.cw-stack-title { font-weight: 700; font-size: 0.95rem; white-space: nowrap; }
.cw-stack-desc { font-size: 0.8rem; opacity: 0.8; }

/* ---------- 93f-6. Split Comparison (Article 4, 9, 15) ---------- */
.cw-split-compare {
	display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem;
	max-width: 600px; margin: 0 auto;
}
.cw-split-side {
	padding: 1.5rem; border-radius: 12px; background: rgba(255,255,255,0.03);
	border: 1px solid rgba(255,255,255,0.06);
}
.cw-split-side h4 { margin-bottom: 1rem; font-size: 1rem; }
.cw-split-side ul { list-style: none; padding: 0; margin: 0; }
.cw-split-side ul li {
	padding: 0.4rem 0; font-size: 0.875rem; color: rgba(232,240,236,0.7);
	border-bottom: 1px solid rgba(255,255,255,0.04);
}
.cw-split-side ul li::before { content: "→ "; color: #64748B; }
.cw-split-bad { border-color: rgba(239,68,68,0.2); }
.cw-split-good { border-color: rgba(16,185,129,0.2); }
.cw-split-verdict {
	margin-top: 1rem; padding: 0.5rem 1rem; border-radius: 8px;
	font-weight: 700; font-size: 0.85rem; text-align: center;
}

/* Fix for light background pages */
.entry-content .cw-split-side { background: #F8FAFC; border-color: #E2E8F0; }
.entry-content .cw-split-side ul li { color: #475569; border-color: #F1F5F9; }

/* ---------- 93f-7. Ladder / Steps (Article 5) ---------- */
.cw-ladder { max-width: 520px; margin: 0 auto; }
.cw-ladder-rung {
	display: flex; align-items: center; gap: 1rem;
	padding: 1rem; margin-bottom: 8px; border-radius: 10px;
	background: #F8FAFC; border-left: 4px solid var(--rung-color, #6366F1);
	opacity: 0; transform: translateX(-10px);
	transition: all 0.5s ease;
	transition-delay: var(--delay, 0s);
}
.cw-infographic.cw-visible .cw-ladder-rung { opacity: 1; transform: translateX(0); }
.cw-ladder-num {
	width: 36px; height: 36px; border-radius: 50%;
	background: var(--rung-color, #6366F1); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-weight: 800; font-size: 1rem; flex-shrink: 0;
}
.cw-ladder-content strong { display: block; font-size: 0.95rem; color: #1A2E28; }
.cw-ladder-content span { font-size: 0.85rem; color: #64748B; }

/* ---------- 93f-8. Horizontal Timeline — Premium Redesign (Article 6, 13, 20) ---------- */
.cw-h-timeline {
	position: relative;
	min-height: 220px;
	padding: 2.5rem 0;
}

/* Gradient track */
.cw-h-timeline-track {
	position: absolute;
	top: 2.75rem;
	left: 5%;
	right: 5%;
	height: 3px;
	background: linear-gradient(90deg,
		rgba(76, 175, 130, 0.05) 0%,
		rgba(76, 175, 130, 0.2) 20%,
		rgba(76, 175, 130, 0.3) 50%,
		rgba(76, 175, 130, 0.2) 80%,
		rgba(76, 175, 130, 0.05) 100%);
	border-radius: 2px;
}

/* Glow overlay on the track */
.cw-h-timeline-track::after {
	content: '';
	position: absolute;
	inset: -3px 0;
	background: inherit;
	filter: blur(6px);
	opacity: 0.5;
}

.entry-content .cw-h-timeline-track {
	background: linear-gradient(90deg,
		rgba(76, 175, 130, 0.08) 0%,
		rgba(76, 175, 130, 0.25) 50%,
		rgba(76, 175, 130, 0.08) 100%);
}

.cw-timeline-node {
	position: absolute;
	top: 0;
	left: var(--left, 0);
	width: 22%;
	text-align: center;
	/* GSAP animates these in */
	opacity: 0;
	transform: translateY(20px);
}

.cw-timeline-node.cw-revealed {
	opacity: 1;
	transform: translateY(0);
	transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
	            transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Dot with glow ring */
.cw-timeline-dot {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	margin: 1.75rem auto 0.75rem;
	position: relative;
	z-index: 2;
	box-shadow: 0 0 0 4px rgba(76, 175, 130, 0.1), 0 0 12px rgba(76, 175, 130, 0.2);
	transition: all 0.3s ease;
}

.cw-timeline-node:hover .cw-timeline-dot {
	box-shadow: 0 0 0 6px rgba(76, 175, 130, 0.15), 0 0 20px rgba(76, 175, 130, 0.35);
	transform: scale(1.2);
}

/* Card with glass-morphism feel */
.cw-timeline-card {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 12px;
	padding: 1.15rem;
	text-align: left;
	font-size: 0.8rem;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.cw-timeline-card:hover {
	border-color: rgba(76, 175, 130, 0.2);
	box-shadow: 0 8px 32px rgba(76, 175, 130, 0.08);
	transform: translateY(-2px);
}

.entry-content .cw-timeline-card {
	background: rgba(248, 250, 252, 0.9);
	border-color: rgba(76, 175, 130, 0.12);
	backdrop-filter: none;
}

.entry-content .cw-timeline-card:hover {
	border-color: rgba(76, 175, 130, 0.25);
	box-shadow: 0 8px 32px rgba(76, 175, 130, 0.06);
}

.cw-timeline-card strong {
	display: block;
	font-size: 0.88rem;
	color: #1A2E28;
	line-height: 1.4;
}
.cw-timeline-card span {
	display: block;
	font-size: 0.72rem;
	color: var(--cw-emerald, #4CAF82);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 0.3rem;
}
.cw-timeline-card p {
	margin: 0.3rem 0 0;
	color: #64748B;
	line-height: 1.5;
}

/* Vertical variant */
.cw-h-timeline-vertical {
	min-height: auto;
	padding: 1.5rem 0 1.5rem 2.5rem;
}
.cw-h-timeline-vertical .cw-h-timeline-track {
	top: 0; bottom: 0; left: 1rem; right: auto;
	width: 3px; height: auto;
	background: linear-gradient(180deg,
		var(--cw-emerald) 0%,
		rgba(76, 175, 130, 0.15) 100%);
}
.cw-h-timeline-vertical .cw-timeline-node {
	position: relative; left: auto; width: auto;
	margin-bottom: 1.75rem;
	display: flex; align-items: flex-start; gap: 1.25rem;
}
.cw-h-timeline-vertical .cw-timeline-dot {
	margin: 0; flex-shrink: 0; position: relative; left: -1.75rem;
}
.cw-h-timeline-vertical .cw-timeline-card { flex: 1; }

/* ---------- 93f-9. Checklist Visual (Article 7, 17) ---------- */
.cw-checklist-visual { max-width: 480px; margin: 0 auto; }
.cw-check-item {
	display: flex; align-items: center; gap: 0.75rem;
	padding: 0.6rem 0; border-bottom: 1px solid rgba(255,255,255,0.05);
	font-size: 0.9rem; color: #334155;
}
.entry-content .cw-check-item { border-color: #F1F5F9; }
.cw-check-icon { font-size: 1.1rem; font-weight: 700; flex-shrink: 0; }

/* ---------- 93f-10. Cycle (Article 8) ---------- */
.cw-cycle {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
	gap: 0.5rem; max-width: 600px; margin: 0 auto;
}
.cw-cycle-node { text-align: center; flex: 0 0 auto; }
.cw-cycle-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%; font-weight: 800;
	font-size: 1rem; margin-bottom: 0.5rem;
}
.cw-cycle-node strong { display: block; font-size: 0.9rem; color: #1A2E28; }
.cw-cycle-node span { display: block; font-size: 0.8rem; color: #64748B; }
.cw-cycle-arrow { font-size: 1.25rem; color: #CBD5E1; }
.cw-cycle-arrow-back {
	width: 100%; text-align: center; font-size: 0.85rem;
	color: #EF4444; font-weight: 700; margin-top: 0.5rem;
}

/* ---------- 93f-11. Schedule Blocks (Article 9, 16) ---------- */
.cw-schedule { max-width: 520px; margin: 0 auto; }
.cw-schedule-block {
	padding: 1rem 1.25rem; margin-bottom: 8px; border-radius: 8px;
	background: #F8FAFC; transition: all 0.3s ease;
	transition-delay: var(--delay, 0s);
}
.cw-schedule-block strong { display: block; font-size: 0.85rem; color: #1A2E28; }
.cw-schedule-block > span { display: block; font-size: 0.9rem; font-weight: 600; color: #6366F1; }
.cw-schedule-block p { margin: 0.25rem 0 0; font-size: 0.8rem; color: #64748B; }

/* ---------- 93f-12. Mini Stats (Article 9) ---------- */
.cw-mini-stat { margin-bottom: 1rem; }
.cw-mini-num { display: block; font-size: 2rem; font-weight: 800; line-height: 1; }
.cw-mini-stat span:last-child { font-size: 0.8rem; color: #94A3B8; }

/* ---------- 93f-13. Scorecard (Article 10, 15, 17) ---------- */
.cw-scorecard { max-width: 520px; margin: 0 auto; }
.cw-scorecard-row {
	display: grid; grid-template-columns: 140px 1fr 60px; gap: 0.75rem;
	align-items: center; padding: 0.6rem 0;
	border-bottom: 1px solid rgba(255,255,255,0.05);
}
.entry-content .cw-scorecard-row { border-color: #F1F5F9; }
.cw-scorecard-label { font-size: 0.85rem; color: #475569; }
.cw-scorecard-bar {
	height: 8px; background: rgba(255,255,255,0.08); border-radius: 4px;
	overflow: hidden;
}
.entry-content .cw-scorecard-bar { background: #E2E8F0; }
.cw-scorecard-score { font-weight: 700; font-size: 0.85rem; text-align: right; color: #1A2E28; }

/* ---------- 93f-14. Org Chart (Article 10) ---------- */
.cw-org-hub, .cw-org-tree { position: relative; padding: 1rem; }
.cw-org-center {
	width: 60px; height: 60px; border-radius: 50%; display: flex;
	align-items: center; justify-content: center; font-weight: 800;
	font-size: 0.85rem; margin: 0 auto 1rem; border: 2px solid;
}
.cw-org-spoke {
	display: inline-block; padding: 4px 10px; background: #F1F5F9;
	border-radius: 6px; font-size: 0.75rem; color: #64748B; margin: 2px;
}
.cw-org-row { display: flex; gap: 0.5rem; justify-content: center; flex-wrap: wrap; }
.cw-org-node {
	padding: 0.5rem 0.75rem; border-radius: 8px; border: 2px solid;
	font-size: 0.8rem; font-weight: 600; background: #F8FAFC;
}

/* ---------- 93f-15. Donut Chart (Article 11) ---------- */
.cw-donut-svg { display: block; }
.cw-donut-legend { display: flex; flex-direction: column; gap: 0.5rem; }
.cw-legend-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: #475569; }
.cw-legend-dot { width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0; }

/* ---------- 93f-16. Venn Diagram (Article 11) ---------- */
.cw-venn-wrap { text-align: center; }
.cw-venn-svg { max-width: 400px; margin: 0 auto; display: block; }

/* ---------- 93f-17. Bridge / Gap (Article 12) ---------- */
.cw-bridge { display: flex; align-items: stretch; gap: 0; max-width: 600px; margin: 0 auto; }
.cw-bridge-pillar {
	flex: 1; padding: 1.25rem; background: #F8FAFC; border-radius: 10px;
}
.cw-bridge-pillar strong { display: block; margin-bottom: 0.75rem; font-size: 0.95rem; color: #1A2E28; }
.cw-bridge-pillar ul { list-style: none; padding: 0; margin: 0; }
.cw-bridge-pillar ul li {
	padding: 0.3rem 0; font-size: 0.8rem; color: #64748B;
	border-bottom: 1px solid #F1F5F9;
}
.cw-bridge-pillar ul li::before { content: "→ "; }
.cw-bridge-gap {
	width: 80px; display: flex; flex-direction: column;
	align-items: center; justify-content: center; text-align: center;
	background: linear-gradient(180deg, #FEF2F2, #FFF7ED); border-radius: 8px;
	margin: 0 -8px; z-index: 1; padding: 1rem 0.5rem;
}
.cw-bridge-gap-label {
	font-weight: 800; font-size: 0.7rem; color: #DC2626;
	text-transform: uppercase; letter-spacing: 0.1em;
}
.cw-bridge-gap-desc { font-size: 0.65rem; color: #94A3B8; margin-top: 0.25rem; }

/* ---------- 93f-18. Maturity Stages (Article 12) ---------- */
.cw-maturity-stages { max-width: 520px; margin: 0 auto; }
.cw-maturity-stage {
	display: flex; align-items: flex-start; gap: 1rem;
	padding: 1rem; margin-bottom: 8px; border-radius: 8px;
	background: #F8FAFC; border-left: 4px solid var(--stage-color, #6366F1);
}
.cw-maturity-num {
	width: 32px; height: 32px; border-radius: 50%;
	background: var(--stage-color); color: #fff;
	display: flex; align-items: center; justify-content: center;
	font-weight: 800; font-size: 0.85rem; flex-shrink: 0;
}
.cw-maturity-stage strong { display: block; font-size: 0.95rem; color: #1A2E28; }
.cw-maturity-stage span { font-size: 0.8rem; color: #64748B; }

/* ---------- 93f-19. Comparison Table (Article 14, 18) ---------- */
.cw-compare-table { max-width: 560px; margin: 0 auto; }
.cw-ct-header {
	display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.5rem;
	padding: 0.75rem 0; border-bottom: 2px solid #E2E8F0;
	font-weight: 700; font-size: 0.85rem; text-transform: uppercase;
	letter-spacing: 0.05em;
}
.cw-ct-row {
	display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.5rem;
	padding: 0.6rem 0; border-bottom: 1px solid #F1F5F9;
	font-size: 0.85rem; color: #475569; align-items: center;
}
.cw-ct-row span:first-child { font-weight: 600; color: #1A2E28; }

/* ---------- 93f-20. Funnel (Article 18) ---------- */
.cw-funnel { max-width: 480px; margin: 0 auto; text-align: center; }
.cw-funnel-stage {
	width: var(--funnel-width, 100%); margin: 0 auto 6px;
	padding: 0.75rem 1rem; border-radius: 8px; color: #fff;
	display: flex; justify-content: space-between; align-items: center;
	font-size: 0.85rem;
}
.cw-funnel-label { font-weight: 600; }
.cw-funnel-num { font-weight: 800; font-size: 1.1rem; }

/* ---------- 93f-21. Waterfall Bars (Article 19) ---------- */
.cw-waterfall {
	display: flex; align-items: flex-end; gap: 12px;
	max-width: 480px; margin: 0 auto; height: 200px;
	padding-bottom: 2rem;
}
.cw-waterfall-bar {
	flex: 1; height: var(--bar-height, 50%); border-radius: 6px 6px 0 0;
	position: relative; display: flex; flex-direction: column;
	justify-content: flex-end; align-items: center; padding-bottom: 0.5rem;
}
.cw-wf-label {
	position: absolute; bottom: -1.75rem; left: 50%; transform: translateX(-50%);
	font-size: 0.65rem; color: #64748B; white-space: nowrap; text-align: center;
}
.cw-wf-pct { font-weight: 800; font-size: 0.85rem; color: #fff; }

/* ---------- 93f-22. Responsive for new infographic types ---------- */
@media (max-width: 768px) {
	.cw-split-compare { grid-template-columns: 1fr; }
	.cw-flow-branch { flex-direction: column; gap: 1rem; }
	.cw-bridge { flex-direction: column; }
	.cw-bridge-gap { width: 100%; margin: -4px 0; flex-direction: row; gap: 0.5rem; padding: 0.75rem; }
	.cw-h-timeline { min-height: auto; padding: 1.5rem 0 1.5rem 2.5rem; }
	.cw-h-timeline .cw-h-timeline-track {
		top: 0; bottom: 0; left: 1rem; right: auto; width: 3px; height: auto;
		background: linear-gradient(180deg, var(--cw-emerald, #4CAF82) 0%, rgba(76,175,130,0.12) 100%);
	}
	.cw-h-timeline .cw-h-timeline-track::after { display: none; }
	.cw-h-timeline .cw-timeline-node { position: relative; left: auto; width: auto; margin-bottom: 1.75rem; display: flex; align-items: flex-start; gap: 1.25rem; opacity: 1; transform: none; }
	.cw-h-timeline .cw-timeline-dot { margin: 0; flex-shrink: 0; position: relative; left: -1.75rem; }
	.cw-h-timeline .cw-timeline-card { flex: 1; }
	.cw-scorecard-row { grid-template-columns: 100px 1fr 50px; }
	.cw-cycle { gap: 0.25rem; }
	.cw-cycle-node { flex: 0 0 45%; }
	.cw-cycle-arrow { display: none; }
	.cw-waterfall { height: 160px; gap: 6px; }
	.cw-wf-label { font-size: 0.55rem; }
	.cw-ct-header, .cw-ct-row { grid-template-columns: 0.8fr 1fr 1fr; font-size: 0.75rem; }
	.cw-matrix-grid { gap: 8px; }
	.cw-matrix-cell { padding: 0.75rem; }
}

/* ---------- 93f-23. Missing / Fix-up Infographic Styles ---------- */

/* --- Scorecard dashboard variant (Article 15 CMO scorecard) --- */
.cw-scorecard-dashboard .cw-scorecard-row {
	border-bottom-color: rgba(76, 175, 130, 0.08);
}
.cw-scorecard-dashboard .cw-scorecard-label {
	font-weight: 600;
}

/* --- SVG chart line draw initial state (hidden until GSAP animates) --- */
.cw-chart-line-draw {
	opacity: 1;
}

/* --- Stagger delay overrides ---
   The wp_head inline styles set `transition: all Xs ease` on .cw-visible children,
   which resets transition-delay to 0. Re-apply var(--delay) so stagger works. */
.cw-infographic.cw-visible .cw-stack-layer {
	transition-delay: var(--delay, 0s);
}
.cw-infographic.cw-visible .cw-schedule-block {
	transition-delay: var(--delay, 0s);
}
.cw-infographic.cw-visible .cw-timeline-node {
	transition-delay: var(--delay, 0s);
}
.cw-infographic.cw-visible .cw-cycle-node {
	transition-delay: var(--delay, 0s);
}
.cw-infographic.cw-visible .cw-funnel-stage {
	transition-delay: var(--delay, 0s);
}
.cw-infographic.cw-visible .cw-waterfall-bar {
	transition-delay: var(--delay, 0s);
}
.cw-infographic.cw-visible .cw-scorecard-row {
	transition-delay: var(--delay, 0s);
}
.cw-infographic.cw-visible .cw-flow-arrow {
	transition-delay: var(--delay, 0s);
}

/* --- Ensure donut legend is vertically centered beside donut chart --- */
.cw-donut-svg + .cw-donut-legend {
	justify-content: center;
}
.cw-legend-item strong {
	font-weight: 700;
}

/* --- Venn circle opacity on hover --- */
.cw-venn-circle:hover {
	opacity: 0.9 !important;
	transition: opacity 0.3s ease;
}

/* --- Bridge pillar left/right differentiation --- */
.cw-bridge-left {
	border-right: 0;
	border-radius: 12px 0 0 12px;
}
.cw-bridge-right {
	border-left: 0;
	border-radius: 0 12px 12px 0;
}

/* --- Maturity stage hover polish --- */
.cw-maturity-stage:hover {
	background: #F0FDF4;
	transform: translateX(4px);
	transition: all 0.3s ease;
}

/* --- Comparison table row hover --- */
.cw-ct-row:hover {
	background: #F8FAFC;
}

/* --- Funnel stage centering fix --- */
.cw-funnel-stage {
	transition: transform 0.3s ease, opacity 0.5s ease;
}
.cw-funnel-stage:hover {
	transform: scale(1.02);
}

/* --- Waterfall bar bottom labels positioning fix --- */
.cw-waterfall {
	padding-bottom: 2.5rem;
}

/* --- Check-item hover state --- */
.cw-check-item:hover {
	background: rgba(76, 175, 130, 0.04);
	border-radius: 6px;
}

/* --- Org tree connecting lines --- */
.cw-org-tree .cw-org-center::after {
	content: '';
	display: block;
	width: 2px;
	height: 16px;
	background: #E2E8F0;
	margin: 0 auto;
}

/* --- Mini stat emphasis --- */
.cw-mini-stat {
	text-align: center;
}
.cw-mini-num {
	font-family: 'Montserrat', sans-serif;
}

/* --- Cycle arrow-back (loops from end back to start) --- */
.cw-cycle-arrow-back {
	font-size: 0.8rem;
	color: #EC4899;
	font-weight: 700;
	flex-basis: 100%;
	text-align: center;
	margin-top: 0.5rem;
}

/* --- Bridge pillar list spacing --- */
.cw-bridge-pillar ul li {
	font-size: 0.8rem;
	color: #64748B;
	padding: 0.25rem 0;
}

/* --- 93f-23 Responsive additions for missing types --- */
@media (max-width: 768px) {
	/* Donut + legend stacks vertically */
	.cw-infographic div:has(> .cw-donut-svg) {
		flex-direction: column !important;
		align-items: center;
	}
	.cw-donut-legend {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.5rem 1rem;
	}

	/* Venn diagram scales down */
	.cw-venn-svg {
		max-width: 300px;
	}

	/* Org chart side-by-side stacks */
	.cw-org-hub, .cw-org-tree {
		padding: 0.5rem;
	}

	/* Cycle arrow back */
	.cw-cycle-arrow-back {
		margin-top: 0.25rem;
	}

	/* Maturity stages tighter */
	.cw-maturity-stage {
		padding: 0.75rem;
		gap: 0.75rem;
	}

	/* Funnel narrower */
	.cw-funnel {
		max-width: 100%;
	}

	/* Mini stats side by side */
	.cw-mini-stat {
		display: inline-block;
		width: 45%;
	}
}

@media (max-width: 480px) {
	/* Donut smaller */
	.cw-donut-svg {
		width: 160px !important;
		height: 160px !important;
	}

	/* Bridge pillars full width */
	.cw-bridge-pillar {
		border-radius: 12px !important;
	}
	.cw-bridge-left { border-right: 1px solid #E2E8F0; }
	.cw-bridge-right { border-left: 1px solid #E2E8F0; }

	/* Ladder tighter */
	.cw-ladder-rung {
		padding: 0.75rem;
		gap: 0.75rem;
	}
	.cw-ladder-num {
		width: 30px;
		height: 30px;
		font-size: 0.85rem;
	}

	/* Schedule blocks tighter */
	.cw-schedule-block {
		padding: 0.75rem;
	}

	/* Checklist tighter */
	.cw-check-item {
		gap: 0.5rem;
		font-size: 0.8rem;
	}

	/* Scorecard label truncation */
	.cw-scorecard-label {
		font-size: 0.75rem;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	/* Mini stat full width */
	.cw-mini-stat {
		width: 100%;
	}
}

/* ---------- 93g. Global Animation Utilities ---------- */
.cw-fade-in {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.cw-infographic.cw-visible .cw-fade-in {
	opacity: 1;
	transform: translateY(0);
}

.cw-delay-1 { transition-delay: 0.1s !important; }
.cw-delay-2 { transition-delay: 0.2s !important; }
.cw-delay-3 { transition-delay: 0.3s !important; }
.cw-delay-4 { transition-delay: 0.5s !important; }
.cw-delay-5 { transition-delay: 0.7s !important; }

/* ---------- 93h. Responsive ---------- */
@media (max-width: 768px) {
	.cw-rings {
		gap: 20px;
	}

	.cw-ring-svg {
		width: 110px;
		height: 110px;
	}

	.cw-ring-percent { font-size: 22px; }

	.cw-pipeline {
		flex-direction: column;
		gap: 12px;
	}

	.cw-pipe-connector {
		width: 4px;
		height: 40px;
	}

	.cw-pipe-connector::before {
		animation-name: flowDown;
	}

	@keyframes flowDown {
		0% { top: -100%; left: 0; }
		100% { top: 100%; left: 0; }
	}

	.cw-orbital {
		width: 260px;
		height: 260px;
	}

	.cw-orbital-ring-1 { width: 170px; height: 170px; margin: -85px 0 0 -85px; }
	.cw-orbital-ring-2 { width: 240px; height: 240px; margin: -120px 0 0 -120px; }

	.cw-orbital-labels {
		grid-template-columns: 1fr;
	}

	.cw-compare-bar-row {
		grid-template-columns: 80px 1fr 50px;
	}
}

/* ═══════════════════════════════════════════════════════════════
   SECTION 95 — Homepage Clean Pass (Strip Ghost Elements)
   Remove decorative pseudo-elements that look like rendering bugs.
   ═══════════════════════════════════════════════════════════════ */

/* --- 95a. Remove ghost section numbers (01, 02, 03, 04) --- */
.front-page-2 .wrap::before,
.front-page-3 .wrap::before,
.front-page-4 .wrap::before,
.front-page-5 .wrap::before {
	display: none !important;
}

/* --- 95b. Remove ghost "FOUNDER" text behind hero --- */
.front-page-1 .wrap::after {
	display: none !important;
}

/* --- 95c. Remove decorative pseudo-elements from hero media --- */
.front-page-1 .cw-hero-media::before,
.front-page-1 .cw-hero-media::after,
.cw-hero-media::before,
.cw-hero-media::after {
	display: none !important;
}

/* --- 95d. Clean headshot — simple fade, no decorative clutter --- */
.front-page-1 .cw-hero-media img {
	border: 2px solid rgba(76, 175, 130, 0.2);
	border-radius: 20px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
	-webkit-mask-image: linear-gradient(to bottom, black 70%, transparent 100%);
	mask-image: linear-gradient(to bottom, black 70%, transparent 100%);
	-webkit-mask-composite: auto;
	mask-composite: auto;
}

/* --- 95e. Fix section 5 centering --- */
.front-page-5 {
	text-align: center;
}

.front-page-5 .wrap {
	text-align: center;
}

/* --- 95f. Feature card icons — VISIBLE with proper contrast --- */
.cw-feature-icon {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1.25rem;
	position: relative;
}

/* Hide all emoji images in feature icons */
.cw-feature-icon img {
	display: none !important;
}

/* First card (Founder Coaching) — emerald icon */
.cw-feature-card:first-child .cw-feature-icon {
	background: var(--cw-emerald);
}

.cw-feature-card:first-child .cw-feature-icon::after {
	content: '';
	display: block;
	width: 24px;
	height: 24px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
}

/* Second card (Fractional CMO) — indigo icon */
.cw-feature-card:nth-child(2) .cw-feature-icon {
	background: #6366F1;
}

.cw-feature-card:nth-child(2) .cw-feature-icon::after {
	content: '';
	display: block;
	width: 24px;
	height: 24px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='20' x2='12' y2='10'/%3E%3Cline x1='18' y1='20' x2='18' y2='4'/%3E%3Cline x1='6' y1='20' x2='6' y2='16'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
}

/* --- 95f2. Mobile: Stack feature cards vertically --- */
@media (max-width: 768px) {
	.cw-feature-grid,
	.front-page-2 .cw-feature-grid {
		grid-template-columns: 1fr !important;
		gap: 1.5rem !important;
	}

	.cw-feature-card h3 {
		font-size: 1.25rem !important;
		word-break: normal !important;
	}

	.front-page-1 h1 {
		font-size: clamp(2rem, 8vw, 2.75rem) !important;
	}

	/* Stack stats vertically on small screens */
	.cw-stats-row {
		flex-direction: column !important;
		align-items: center !important;
		gap: 0.75rem !important;
	}

	.cw-stat-item {
		width: auto !important;
	}

	/* Hero badge — remove stray bullet */
	.cw-hero-badge::before {
		display: none !important;
	}

	/* Funnel page mobile — keep top clearance for fixed header */
	.cw-funnel-content {
		padding: 6rem 1rem 2rem !important;
	}
}

/* --- 95g. Section dividers — subtle gradient line between sections --- */
.front-page-2,
.front-page-4 {
	border-top: 1px solid rgba(76, 175, 130, 0.08);
}

.front-page-3,
.front-page-5 {
	border-top: 1px solid rgba(76, 175, 130, 0.06);
}

/* --- 95h. Feature card — cleaner, less template --- */
.front-page-2 .cw-feature-card {
	background: var(--cw-white);
	border: 1px solid rgba(0, 0, 0, 0.06);
	border-left: 4px solid var(--cw-emerald);
	border-radius: 16px;
	padding: 2.5rem 2rem;
	text-align: center;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.front-page-2 .cw-feature-card:nth-child(2) {
	border-left-color: #6366F1;
}

.front-page-2 .cw-feature-card:hover {
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
	transform: translateY(-4px);
}

/* ═══════════════════════════════════════════════════════════════
   SECTION 96 — Homepage Visual Polish Pass
   Fixes: hero buttons, headshot, footer, alignment, contrast
   ═══════════════════════════════════════════════════════════════ */

/* --- 96a. Hero buttons — make BOTH buttons unmissable --- */
.front-page-1 .cw-hero-buttons {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	margin-top: 2rem;
}

.front-page-1 .cw-hero-buttons .cw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 32px;
	font-size: 1rem;
	font-weight: 600;
	font-family: var(--cw-font-ui);
	border-radius: var(--cw-radius-pill);
	text-decoration: none;
	transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
	letter-spacing: 0.01em;
}

.front-page-1 .cw-hero-buttons .cw-btn-primary {
	background: linear-gradient(135deg, #5CDB95 0%, #4CAF82 100%) !important;
	color: #0D1B16 !important;
	font-weight: 700;
	box-shadow: 0 4px 24px rgba(76, 175, 130, 0.45);
	border: none !important;
}

.front-page-1 .cw-hero-buttons .cw-btn-primary:hover {
	background: linear-gradient(135deg, #6EE7A8 0%, #5CDB95 100%) !important;
	transform: translateY(-3px);
	box-shadow: 0 8px 35px rgba(76, 175, 130, 0.6);
}

.front-page-1 .cw-hero-buttons .cw-btn-outline {
	background: rgba(232, 240, 236, 0.08) !important;
	color: #fff !important;
	border: 2px solid rgba(232, 240, 236, 0.5) !important;
}

.front-page-1 .cw-hero-buttons .cw-btn-outline:hover {
	background: rgba(232, 240, 236, 0.15) !important;
	border-color: #fff !important;
	color: #fff !important;
	transform: translateY(-2px);
}

/* --- 96b. Headshot — cleaner mask, less aggressive fade --- */
.front-page-1 .cw-hero-media img {
	border-radius: 20px !important;
	border: 2px solid rgba(76, 175, 130, 0.25) !important;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4) !important;
	-webkit-mask-image: linear-gradient(to bottom, black 85%, transparent 100%) !important;
	mask-image: linear-gradient(to bottom, black 85%, transparent 100%) !important;
	max-width: 100%;
	height: auto;
}

/* --- 96c. Feature card icons — bigger, bolder, clearly visible --- */
.front-page-2 .cw-feature-icon {
	width: 60px !important;
	height: 60px !important;
	border-radius: 16px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 auto 1.5rem !important;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.front-page-2 .cw-feature-card:first-child .cw-feature-icon {
	background: linear-gradient(135deg, #4CAF82, #5CDB95) !important;
}

.front-page-2 .cw-feature-card:nth-child(2) .cw-feature-icon {
	background: linear-gradient(135deg, #5B5FF0, #818CF8) !important;
}

.front-page-2 .cw-feature-icon::after {
	width: 28px !important;
	height: 28px !important;
}

/* --- 96d. Feature card list items — visible check marks --- */
.front-page-2 .cw-feature-card li {
	position: relative;
	padding-left: 1.75rem;
	text-align: left;
	margin-bottom: 0.5rem;
	font-size: 0.95rem;
	color: #4A5C55;
	line-height: 1.6;
}

.front-page-2 .cw-feature-card li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--cw-emerald);
	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='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-size: 10px;
	background-repeat: no-repeat;
	background-position: center;
}

/* Second card — indigo check marks */
.front-page-2 .cw-feature-card:nth-child(2) li::before {
	background-color: #6366F1;
}

/* --- 96e. Card link styling --- */
.front-page-2 .cw-card-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 600;
	font-family: var(--cw-font-ui);
	font-size: 0.95rem;
	color: var(--cw-emerald) !important;
	text-decoration: none;
	transition: all 0.25s ease;
	margin-top: 1rem;
}

.front-page-2 .cw-feature-card:nth-child(2) .cw-card-link {
	color: #6366F1 !important;
}

.front-page-2 .cw-card-link:hover {
	gap: 0.75rem;
}

/* --- 96f. Footer — complete redesign, 3-column, no orphaned text --- */

/* Footer column 1: Brand + social icons */
.footer-widgets .footer-widget-area:first-child {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

/* Footer column 2: Quick Links — single column, compact */
.footer-widgets .menu {
	display: flex !important;
	flex-direction: column;
	gap: 0.125rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-widgets .menu li {
	margin: 0;
	padding: 0;
}

.footer-widgets .menu a {
	font-size: 0.875rem !important;
	color: rgba(232, 240, 236, 0.7) !important;
	padding: 6px 0 !important;
	display: block;
	transition: color 0.25s ease;
}

.footer-widgets .menu a:hover {
	color: var(--cw-emerald) !important;
}

/* Footer column 3: About blurb + copyright */
.footer-widgets .footer-widget-area:last-child p {
	color: rgba(232, 240, 236, 0.8); /* was 0.55 — WCAG fix */
	font-size: 0.85rem;
	line-height: 1.7;
	margin-bottom: 0.75rem;
}

/* Footer bottom bar — minimal */
.site-footer > .wrap {
	padding: 0 !important;
	display: block;
}

.site-footer .creds {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 1.25rem 2rem;
}

.site-footer .creds p,
.site-footer > .wrap > p {
	margin: 0;
}

/* --- 96g. Before-footer CTA — tighter alignment --- */
.before-footer .widget {
	max-width: 650px !important;
	margin: 0 auto !important;
	text-align: center !important;
}

.before-footer h2 {
	text-align: center !important;
}

.before-footer p {
	text-align: center !important;
	max-width: 560px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.before-footer .cw-btn-primary,
.before-footer .cw-btn {
	margin-left: auto !important;
	margin-right: auto !important;
	display: inline-flex !important;
}

/* --- 96g2. Front-page-6 form centering --- */
.front-page-6 .gform_wrapper {
	max-width: 520px !important;
	margin: 0 auto !important;
}

.front-page-6 .gform_footer,
.front-page-6 .gform_page_footer {
	text-align: center !important;
	display: flex !important;
	justify-content: center !important;
}

.front-page-6 .gform_wrapper .gfield {
	margin-bottom: 1rem !important;
}

/* --- 96g3. Before-footer button centering --- */
.before-footer .widget > div {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.before-footer .widget > div > div[style*="display:flex"],
.before-footer .widget > div > div[style*="display: flex"] {
	justify-content: center !important;
}

/* --- 96h. Stats row — ensure proper alignment, single row --- */
.cw-stats-row {
	display: flex !important;
	gap: 1.5rem;
	margin: 2rem 0;
	flex-wrap: nowrap;
}

.cw-stat-item {
	text-align: center;
	flex: 0 0 auto;
}

.cw-stat-number {
	font-family: var(--cw-font-ui) !important;
	font-size: clamp(2rem, 4vw, 2.75rem) !important;
	font-weight: 800 !important;
	color: var(--cw-emerald) !important;
	line-height: 1.1 !important;
	margin-bottom: 0.25rem;
}

.cw-stat-label {
	font-family: var(--cw-font-ui) !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(232, 240, 236, 0.75) !important;
}

/* --- 96i. Section 5 blog cards — consistent dark card styling --- */
.front-page-5 .cw-homepage-posts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	max-width: 1100px;
	margin: 0 auto;
}

/* --- 96j. Social proof marquee — ensure visible --- */
.cw-marquee-wrap {
	border-top: 1px solid rgba(76, 175, 130, 0.1);
	border-bottom: 1px solid rgba(76, 175, 130, 0.1);
	overflow: hidden;
	padding: 0.875rem 0;
}

.cw-marquee-track {
	display: flex;
	gap: 2.5rem;
	animation: cw-marquee 30s linear infinite;
	white-space: nowrap;
}

.cw-marquee-item {
	font-family: var(--cw-font-ui);
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: rgba(232, 240, 236, 0.75); /* was 0.5 — WCAG fix */
	white-space: nowrap;
	flex-shrink: 0;
}

.cw-marquee-dot {
	color: var(--cw-emerald);
	margin: 0 0.5rem;
	font-size: 0.5rem;
	vertical-align: middle;
}

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

/* --- 96k. Testimonial section polish --- */
.front-page-4 {
	padding: clamp(4rem, 8vw, 6rem) 0 !important;
}

.cw-testimonial-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 2rem !important;
	max-width: 1100px;
	margin: 0 auto;
}

/* Homepage/general testimonial cards — white bg for light sections */
.front-page-4 .cw-testimonial-card,
.cw-section-light .cw-testimonial-card,
.cw-section-gray .cw-testimonial-card {
	background: var(--cw-white) !important;
	color: var(--cw-dark-text) !important;
	border: 1px solid rgba(0, 0, 0, 0.06);
	border-radius: 16px;
	padding: 2rem;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.front-page-4 .cw-testimonial-card:hover,
.cw-section-light .cw-testimonial-card:hover,
.cw-section-gray .cw-testimonial-card:hover {
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
	transform: translateY(-4px);
}

.cw-testimonial-stars {
	font-size: 1rem;
	margin-bottom: 1rem;
	color: #F59E0B;
}

.cw-testimonial-quote {
	font-family: 'Source Serif 4', Georgia, serif;
	font-size: 0.95rem;
	line-height: 1.7;
	color: #4A5C55;
	font-style: italic;
	margin-bottom: 1.5rem;
}

.cw-testimonial-author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.cw-testimonial-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	background: var(--cw-dark-green);
}

.cw-testimonial-name {
	font-family: var(--cw-font-ui);
	font-weight: 700;
	font-size: 0.875rem;
	color: var(--cw-deep-green);
}

.cw-testimonial-role {
	font-size: 0.8rem;
	color: #6B7C75;
}

@media (max-width: 860px) {
	.cw-testimonial-grid {
		grid-template-columns: 1fr !important;
		gap: 1.5rem !important;
	}
}

/* --- 96l. Section label styling --- */
.cw-section-label {
	display: inline-block;
	font-family: var(--cw-font-ui);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--cw-emerald);
	margin-bottom: 0.75rem;
}

/* On dark sections */
.front-page-3 .cw-section-label,
.front-page-6 .cw-section-label {
	color: rgba(92, 219, 149, 0.7);
}

/* --- 96-icons. Animated CSS icon elements for feature cards --- */

/* Shared animated icon container */
.cw-animated-icon {
	width: 80px;
	height: 80px;
	margin: 0 auto 1.75rem;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* --- Coaching icon: pulsing concentric rings --- */
.cw-icon-coaching {
	perspective: 200px;
}

.cw-icon-coaching .cw-pulse-ring {
	position: absolute;
	border-radius: 50%;
	border: 2px solid var(--cw-emerald);
	opacity: 0;
	animation: cw-pulse-ring 3s ease-out infinite;
}

.cw-icon-coaching .cw-pulse-ring {
	width: 40px;
	height: 40px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.cw-icon-coaching .cw-ring-2 {
	animation-delay: 1.5s;
}

.cw-icon-coaching .cw-icon-core {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: linear-gradient(135deg, #4CAF82, #5CDB95);
	box-shadow: 0 0 20px rgba(76, 175, 130, 0.4),
	            0 0 40px rgba(92, 219, 149, 0.15);
	position: relative;
	z-index: 2;
	animation: cw-core-breathe 3s ease-in-out infinite;
}

@keyframes cw-pulse-ring {
	0% {
		width: 28px;
		height: 28px;
		opacity: 0.6;
		border-width: 3px;
	}
	100% {
		width: 80px;
		height: 80px;
		opacity: 0;
		border-width: 1px;
	}
}

@keyframes cw-core-breathe {
	0%, 100% {
		transform: scale(1);
		box-shadow: 0 0 20px rgba(76, 175, 130, 0.4), 0 0 40px rgba(92, 219, 149, 0.15);
	}
	50% {
		transform: scale(1.1);
		box-shadow: 0 0 30px rgba(76, 175, 130, 0.6), 0 0 60px rgba(92, 219, 149, 0.25);
	}
}

/* --- CMO icon: animated ascending bars --- */
.cw-icon-cmo {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 5px;
	height: 60px;
	padding-bottom: 4px;
}

.cw-icon-cmo .cw-bar {
	width: 12px;
	border-radius: 4px 4px 0 0;
	background: linear-gradient(to top, #5B5FF0, #818CF8);
	animation: cw-bar-grow 2s ease-out infinite;
}

.cw-bar-1 { height: 20px; animation-delay: 0s; }
.cw-bar-2 { height: 32px; animation-delay: 0.15s; }
.cw-bar-3 { height: 44px; animation-delay: 0.3s; }
.cw-bar-4 { height: 56px; animation-delay: 0.45s; }

@keyframes cw-bar-grow {
	0% { transform: scaleY(0); opacity: 0.3; }
	30% { transform: scaleY(1); opacity: 1; }
	70% { transform: scaleY(1); opacity: 1; }
	100% { transform: scaleY(0.6); opacity: 0.5; }
}

.cw-icon-cmo .cw-bar {
	transform-origin: bottom;
}

/* Feature card hover amplifies animation */
.cw-feature-card:hover .cw-icon-core {
	animation-duration: 1.5s;
}

.cw-feature-card:hover .cw-pulse-ring {
	animation-duration: 2s;
}

.cw-feature-card:hover .cw-bar {
	animation-duration: 1.5s;
}

/* --- 96-testimonials. Testimonial page styles --- */

/* Force display:grid on containers that have grid-template-columns but had display:grid stripped by WP */
[style*="grid-template-columns"] {
	display: grid !important;
}

/* Featured testimonial — side-by-side layout */
.cw-testimonial-featured,
.page-id-1853 .cw-section-light [style*="grid-template-columns:200px"] {
	display: grid !important;
	grid-template-columns: 200px 1fr;
	gap: 2.5rem;
	align-items: center;
	max-width: 900px;
	margin: 0 auto;
	background: #fff;
	border-radius: 24px;
	padding: 2.5rem;
	box-shadow: 0 8px 40px rgba(0, 0, 0, 0.06);
}

.cw-testimonial-featured img {
	width: 100%;
	border-radius: 16px;
	aspect-ratio: 1;
	object-fit: cover;
}

@media (max-width: 680px) {
	.cw-testimonial-featured {
		grid-template-columns: 1fr !important;
		text-align: center;
	}
	.cw-testimonial-featured img {
		max-width: 180px;
		margin: 0 auto;
	}
}

/* Testimonial grid — 3 columns with larger headshots */
.cw-testimonial-page-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	max-width: 1100px;
	margin: 0 auto;
}

.cw-testimonial-page-grid .cw-testimonial-card {
	background: #fff;
	border-radius: 20px;
	padding: 2rem;
	border: 1px solid rgba(0, 0, 0, 0.06);
	text-align: center;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.cw-testimonial-page-grid .cw-testimonial-card:hover {
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
	transform: translateY(-4px);
}

.cw-testimonial-page-grid .cw-testimonial-card img {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	object-fit: cover;
	margin: 0 auto 1.25rem;
	display: block;
	border: 3px solid rgba(76, 175, 130, 0.15);
}

@media (max-width: 860px) {
	.cw-testimonial-page-grid {
		grid-template-columns: 1fr 1fr !important;
	}
}

@media (max-width: 560px) {
	.cw-testimonial-page-grid {
		grid-template-columns: 1fr !important;
	}
}

/* --- 96m-pre. Duotone headshot — blend into dark sections sitewide --- */
.cw-section-dark img[src*="chris-waldron-duotone"],
.cw-section-dark img[src*="Chris-Waldron"],
.cw-section-dark img.cw-about-headshot {
	-webkit-mask-image: radial-gradient(ellipse 85% 85% at 50% 40%, black 50%, transparent 80%) !important;
	mask-image: radial-gradient(ellipse 85% 85% at 50% 40%, black 50%, transparent 80%) !important;
	border: none !important;
	box-shadow: none !important;
}

/* --- 96m-pre2. Calendly embed styling --- */
.calendly-inline-widget {
	border-radius: 16px;
	overflow: hidden;
	min-height: 700px;
}

.cw-section-dark .calendly-inline-widget {
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(76, 175, 130, 0.1);
	border-radius: 16px;
}

/* --- 96m. Philosophy section — add subtle accent --- */
.front-page-3 h2 {
	position: relative;
	padding-bottom: 1.5rem;
}

.front-page-3 h2::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 40px;
	height: 3px;
	background: var(--cw-emerald);
	border-radius: 2px;
}

/* ==========================================================================
   97. HOMEPAGE VISUAL AUDIT FIXES (2026-03-20)
   ========================================================================== */

/* --- 97a. Hero Layout Fix — Buttons before stats, all content visible --- */
.front-page-1 .cw-hero-content {
	display: flex !important;
	flex-direction: column !important;
}

/* Move buttons before stats in visual order (all default items are order 0) */
.front-page-1 .cw-hero-buttons {
	order: 3 !important;
	margin-top: 1.25rem !important;
	margin-bottom: 0 !important;
}

.front-page-1 .cw-stats-row {
	order: 4 !important;
	margin-top: 1.5rem !important;
	margin-bottom: 0 !important;
	justify-content: center !important;
	gap: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	border: none !important;
	border-radius: 0 !important;
}

/* Individual stat items get their own glass pill */
.front-page-1 .cw-stat-item {
	background: rgba(255, 255, 255, 0.05) !important;
	backdrop-filter: blur(12px) !important;
	-webkit-backdrop-filter: blur(12px) !important;
	border: 1px solid rgba(255, 255, 255, 0.08) !important;
	border-radius: 12px !important;
	padding: 0.85rem 1.25rem !important;
	flex: 1 1 0 !important;
	text-align: center !important;
	min-width: 0 !important;
}

.front-page-1 .cw-stat-number {
	white-space: nowrap !important;
	font-size: 1.5rem !important;
}

.front-page-1 .cw-stat-label {
	white-space: nowrap !important;
	font-size: 0.7rem !important;
}

.front-page-1 .cw-stat-item + .cw-stat-item {
	margin-left: 0.6rem !important;
}

/* Remove ALL pseudo-element line fragments from stats */
.front-page-1 .cw-stat-item::before,
.front-page-1 .cw-stat-item::after,
.front-page-1 .cw-stat-item + .cw-stat-item::before,
.front-page-1 .cw-stat-number::after,
.front-page-1 .cw-stat-number::before {
	display: none !important;
	content: none !important;
}

/* Bottom glow accent on each stat pill */
.front-page-1 .cw-stat-item {
	box-shadow: 0 2px 12px rgba(76, 175, 130, 0.15), inset 0 -2px 0 rgba(76, 175, 130, 0.3) !important;
}

/* Reduce hero badge bottom margin */
.front-page-1 .cw-hero-badge {
	margin-bottom: 1rem !important;
}

/* Ensure hero has enough height for all content */
.front-page-1 {
	height: auto !important;
	min-height: auto !important;
	padding-top: clamp(120px, 15vh, 180px) !important;
	padding-bottom: clamp(3rem, 6vw, 5rem) !important;
	overflow: visible !important;
}

/* Reduce h1 bottom spacing */
.front-page-1 h1 {
	margin-bottom: 1rem !important;
}

/* Reduce hero paragraph spacing */
.front-page-1 .cw-hero-content > p {
	margin-bottom: 0.5rem !important;
}

/* --- 97b. Remove Template-y Diagonal Transitions --- */
/* Replace heavy dark diagonal polygons with subtle gradient fades */
.front-page-2::after {
	clip-path: none !important;
	height: 1px !important;
	bottom: 0 !important;
	background: linear-gradient(90deg, transparent 5%, rgba(76, 175, 130, 0.15) 50%, transparent 95%) !important;
}

.front-page-4::after {
	clip-path: none !important;
	height: 1px !important;
	bottom: 0 !important;
	background: linear-gradient(90deg, transparent 5%, rgba(76, 175, 130, 0.15) 50%, transparent 95%) !important;
}

/* Remove excessive bottom padding from diagonal-targeted sections */
.front-page-2,
.front-page-4 {
	padding-bottom: clamp(5rem, 10vw, 8rem) !important;
}

/* --- 97c. Section Spacing Consistency --- */
/* Even vertical rhythm between all homepage sections */
.front-page-2,
.front-page-3,
.front-page-4,
.front-page-5,
.front-page-6 {
	padding-top: clamp(4rem, 8vw, 7rem) !important;
}

/* --- 97d. Marquee/Ticker — Subtle top/bottom borders --- */
.cw-marquee-wrap {
	border-top: 1px solid rgba(76, 175, 130, 0.08) !important;
	border-bottom: 1px solid rgba(76, 175, 130, 0.08) !important;
}

/* --- 97e. Before-Footer CTA — Force center alignment --- */
.before-footer .wrap {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
}

.before-footer .widget {
	max-width: 700px !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
}

.before-footer .textwidget {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
}

/* --- 97f. Newsletter form section (front-page-6) — Center align --- */
.front-page-6 .wrap {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
}

.front-page-6 .widget {
	max-width: 600px !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: center !important;
}

/* --- 97g. Hero typewriter cursor — styling only (JS handles animation) --- */
.cw-hero-title .cw-cursor {
	font-weight: 300;
	color: var(--cw-emerald);
	animation: cw-cursor-blink 1s step-end infinite;
	margin-left: 2px;
}

/* Hide the CSS-only cursor since JS will handle it */
.cw-hero-title.cw-typing::after {
	display: none !important;
	content: none !important;
}

/* ==========================================================================
   98. HOMEPAGE NEWSLETTER FORM — Modern Compact Layout
   ========================================================================== */

/* Tighten the form section */
.front-page-6 {
	padding-top: clamp(3rem, 6vw, 5rem) !important;
	padding-bottom: clamp(3rem, 6vw, 5rem) !important;
}

/* Hide the heavy field labels — use placeholders instead */
#gform_13 .gfield_label,
#gform_13 legend.gfield_label,
#gform_13 .ginput_complex label,
#gform_13 .gform-field-label--type-sub {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
}

/* Form wrapper — constrain width */
#gform_13 {
	max-width: 480px !important;
	margin: 0 auto !important;
}

/* All fields stack tight */
#gform_13 .gform_fields {
	display: flex !important;
	flex-direction: column !important;
	gap: 0.75rem !important;
	padding: 0 !important;
}

#gform_13 .gfield {
	margin: 0 !important;
	padding: 0 !important;
}

/* Name row — side by side */
#gform_13 .ginput_complex {
	display: flex !important;
	gap: 0.75rem !important;
}

#gform_13 .ginput_complex .name_first,
#gform_13 .ginput_complex .name_last {
	flex: 1 !important;
}

/* All text inputs and selects — sleek dark style */
#gform_13 input[type="text"],
#gform_13 input[type="email"],
#gform_13 select {
	background: rgba(255, 255, 255, 0.06) !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
	border-radius: 10px !important;
	padding: 14px 16px !important;
	font-family: var(--cw-font-ui) !important;
	font-size: 0.92rem !important;
	color: var(--cw-white) !important;
	width: 100% !important;
	transition: border-color 0.2s ease, background 0.2s ease !important;
	outline: none !important;
}

#gform_13 input[type="text"]:focus,
#gform_13 input[type="email"]:focus,
#gform_13 select:focus {
	border-color: rgba(76, 175, 130, 0.4) !important;
	background: rgba(255, 255, 255, 0.08) !important;
}

#gform_13 input::placeholder {
	color: rgba(232, 240, 236, 0.75) !important; /* was 0.4 — WCAG fix */
}

#gform_13 select {
	appearance: none !important;
	-webkit-appearance: none !important;
	cursor: pointer !important;
	background-image: 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='%235CDB95' stroke-width='2' fill='none'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 16px center !important;
	background-size: 12px !important;
}

/* Dropdown options need dark text on white background (native OS dropdown) */
#gform_13 select option {
	background: #fff !important;
	color: #1A2E28 !important;
}

/* Submit button — full width, prominent green */
#gform_13 .gform_footer,
#gform_13 .gform_button {
	margin-top: 0.25rem !important;
}

#gform_13 .gform_button {
	width: 100% !important;
	padding: 14px 24px !important;
	background: linear-gradient(135deg, #5CDB95 0%, #4CAF82 100%) !important;
	color: var(--cw-deep-green) !important;
	font-family: var(--cw-font-heading) !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	border: none !important;
	border-radius: 10px !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	box-shadow: 0 4px 20px rgba(76, 175, 130, 0.3) !important;
}

#gform_13 .gform_button:hover {
	background: linear-gradient(135deg, #6EE7A8 0%, #5CDB95 100%) !important;
	transform: translateY(-2px) !important;
	box-shadow: 0 8px 30px rgba(76, 175, 130, 0.45) !important;
}

/* ==========================================================================
   99. TESTIMONIALS PAGE (page-id-1853) — Card Layout Fix
   ========================================================================== */

/* Featured testimonial — full width centered card */
.page-id-1853 .cw-section-light .cw-contain {
	max-width: 960px !important;
	margin: 0 auto !important;
}

/* Hide empty p tags inside grid containers that break layout */
.page-id-1853 p:empty {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
	line-height: 0 !important;
	font-size: 0 !important;
}

.page-id-1853 .cw-testimonial-card {
	text-align: center !important;
	padding: 2.5rem !important;
	max-width: 100% !important;
	width: 100% !important;
}

/* Grid of "More Success Stories" cards */
.page-id-1853 .cw-section-gray .cw-contain {
	max-width: 1100px !important;
	margin: 0 auto !important;
}

/* Find all card containers in the grid and lay them out */
.page-id-1853 .cw-section-gray .cw-testimonial-card {
	text-align: center !important;
	padding: 2rem !important;
}

/* Make the grid section use CSS grid */
.page-id-1853 .cw-section-gray .cw-contain > div:not([class]) {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 1.5rem !important;
}

@media (max-width: 900px) {
	.page-id-1853 .cw-section-gray .cw-contain > div:not([class]) {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 600px) {
	.page-id-1853 .cw-section-gray .cw-contain > div:not([class]) {
		grid-template-columns: 1fr !important;
	}
}

/* Testimonial card images — centered and consistent */
.page-id-1853 .cw-testimonial-card img {
	display: block !important;
	margin: 0 auto 1rem !important;
	width: 80px !important;
	height: 80px !important;
	border-radius: 50% !important;
	object-fit: cover !important;
}

/* Quote text */
.page-id-1853 .cw-testimonial-card p[style*="italic"] {
	font-size: 0.95rem !important;
	line-height: 1.75 !important;
}

/* Fix the "real" word in subtitle via content override */
.page-id-1853 .cw-section-dark .cw-section-subtitle {
	font-size: 1.05rem !important;
}

/* Remove empty <p> tags between sections creating gaps */
.page-id-1853 .site-inner > p:empty {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
}

/* ==========================================================================
   100. CONTACT PAGE (page-id-1491) — Layout Fixes
   ========================================================================== */

/* Hide <br> tags inside inquiry selector grid — they break the layout */
.cw-inquiry-selector br,
.page-id-1491 .cw-contain div[style*="grid-template-columns"] > br {
	display: none !important;
}

/* Force the inquiry selector to a clean 3-column grid */
.page-id-1491 .cw-contain div[style*="repeat(3"] {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 0.75rem !important;
	max-width: 700px !important;
	margin: 0 auto !important;
}

/* Form container — override the 2-column split, make single centered column */
.page-id-1491 .cw-contain div[style*="1.2fr"] {
	display: block !important;
	max-width: 640px !important;
	margin: 0 auto !important;
}

/* Center the form card */
.page-id-1491 .gform_wrapper {
	max-width: 600px !important;
	margin: 0 auto !important;
}

/* Hide empty p tags on contact page */
.page-id-1491 .cw-contain > p:empty {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 0 !important;
}

/* Contact form — modern styling matching newsletter form */
.page-id-1491 .cw-section-light .gform_wrapper {
	background: #fff !important;
	border: 1px solid rgba(26, 46, 40, 0.08) !important;
	border-radius: 20px !important;
	padding: 2rem !important;
	box-shadow: 0 4px 24px rgba(26, 46, 40, 0.04) !important;
}

/* ==========================================================================
   TESTIMONIALS PAGE — Full layout styles
   ========================================================================== */
/* ═══════════════════════════════════════════════════════════════
   TESTIMONIALS PAGE — Editorial Premium Layout (CPT-driven)
   Organic blob photos, magazine-style quotes, dark grid cards.
   ═══════════════════════════════════════════════════════════════ */

.cw-testimonials-page { overflow-x: hidden; }
.cw-testimonials-page .cw-contain { max-width: 1100px; margin: 0 auto; padding: 0 2rem; }

/* Hero */
.cw-testimonials-hero {
	background: var(--cw-deep-green, #1A2E28); color: #fff;
	padding: clamp(4rem, 8vw, 6rem) 2rem clamp(3rem, 6vw, 5rem); text-align: center;
}
.cw-tm-heading-pre {
	font-family: var(--cw-font-heading); font-size: clamp(1.5rem, 4vw, 2.5rem);
	font-weight: 400; color: #fff; margin: 0 0 0.25rem; line-height: 1.2;
}
.cw-tm-heading-main {
	font-family: var(--cw-font-heading); font-size: clamp(1.75rem, 5vw, 3rem);
	font-weight: 700; margin: 0; line-height: 1.15;
	color: var(--cw-emerald, #4CAF82);
}

/* Featured — Editorial layout with organic blob photos */
.cw-testimonials-featured { background: #fff; }
.cw-featured-editorial { padding: clamp(3rem, 6vw, 5rem) 0; overflow: hidden; }

.cw-featured-layout {
	display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem);
	align-items: center; max-width: 1100px; margin: 0 auto; padding: 0 2rem;
}
.cw-featured-reversed .cw-featured-layout { direction: rtl; }
.cw-featured-reversed .cw-featured-layout > * { direction: ltr; }

/* Quote side */
.cw-featured-quote-side { position: relative; }
.cw-quote-mark {
	font-size: 3.5rem; font-weight: 900; line-height: 1; display: block;
	font-family: Georgia, serif; color: var(--cw-dark-text, #1A2E28);
}
.cw-quote-open { margin-bottom: -0.75rem; }
.cw-quote-close { text-align: right; margin-top: -0.75rem; }
.cw-featured-quote {
	font-size: clamp(1.1rem, 2.5vw, 1.35rem); line-height: 1.7; color: var(--cw-dark-text, #1A2E28);
	margin: 0; padding: 0; background: transparent !important; border: none !important;
	font-style: normal; font-weight: 400;
}
.cw-featured-divider {
	width: 60px; height: 3px; background: var(--cw-emerald, #4CAF82);
	margin: 1.5rem 0; border-radius: 2px;
}
.cw-featured-name {
	font-family: var(--cw-font-heading); font-size: 1.1rem;
	font-weight: 700; color: var(--cw-dark-text, #1A2E28); margin: 0;
}
.cw-featured-title { font-size: 0.875rem; color: var(--cw-muted, #4B5E56); margin: 4px 0 0; }

/* Photo side with organic blob */
.cw-featured-photo-side {
	position: relative; min-height: 400px;
	display: flex; align-items: center; justify-content: center;
}
.cw-blob-shape {
	position: absolute; width: 100%; height: 100%;
	border-radius: 42% 58% 62% 38% / 45% 55% 45% 55%;
	animation: cw-blob-morph 12s ease-in-out infinite; z-index: 1;
	opacity: 0.85;
}
@keyframes cw-blob-morph {
	0%, 100% { border-radius: 42% 58% 62% 38% / 45% 55% 45% 55%; }
	25% { border-radius: 55% 45% 38% 62% / 58% 42% 58% 42%; }
	50% { border-radius: 38% 62% 55% 45% / 42% 58% 42% 58%; }
	75% { border-radius: 62% 38% 45% 55% / 55% 45% 55% 45%; }
}
.cw-featured-headshot {
	position: relative; z-index: 2; max-width: 340px; max-height: 400px;
	width: auto; height: auto; object-fit: contain;
	filter: drop-shadow(0 10px 30px rgba(0,0,0,0.15));
}
.cw-blob-decorations { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.cw-squiggle { position: absolute; }
.cw-squiggle-1 { width: 30px; top: 10%; right: 5%; }
.cw-squiggle-2 { width: 20px; bottom: 20%; left: 0; }

/* Grid Section — dark (uses site theme green, not blue-gray) */
.cw-testimonials-grid-section {
	background: var(--cw-deep-green, #1A2E28); color: #fff; padding: clamp(3rem, 6vw, 5rem) 2rem;
}
.cw-grid-header { text-align: center; margin-bottom: 2.5rem; }
.cw-grid-header h2 {
	font-family: var(--cw-font-heading); font-size: clamp(1.5rem, 4vw, 2.5rem);
	font-weight: 700; color: #fff; margin: 0;
}
.cw-accent-text { color: var(--cw-emerald, #4CAF82); }

.cw-testimonials-grid-section .cw-testimonial-grid {
	display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 1.25rem;
}
.cw-testimonials-grid-section .cw-testimonial-card {
	background: rgba(76, 175, 130, 0.08) !important; color: #fff !important;
	border: 1px solid rgba(76, 175, 130, 0.12) !important;
	border-left: 1px solid rgba(76, 175, 130, 0.12) !important;
	border-radius: 12px; padding: 1.75rem;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.cw-testimonials-grid-section .cw-testimonial-card:hover {
	transform: translateY(-4px); box-shadow: 0 12px 40px rgba(0,0,0,0.25);
	border-color: rgba(255,255,255,0.12) !important;
}
.cw-testimonials-grid-section .cw-testimonial-card-header {
	display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.25rem;
}
.cw-testimonials-grid-section .cw-testimonial-card-header img {
	width: 56px; height: 56px; border-radius: 8px; object-fit: cover; flex-shrink: 0;
}
.cw-testimonial-avatar-placeholder {
	width: 56px; height: 56px; border-radius: 8px; flex-shrink: 0;
	background: #4A5568; display: flex; align-items: center; justify-content: center;
	font-size: 1.25rem; font-weight: 700; color: rgba(255,255,255,0.5);
}
.cw-testimonials-grid-section .cw-card-name {
	font-family: var(--cw-font-heading); font-size: 1rem;
	font-weight: 700; margin: 0; color: #fff !important;
}
.cw-testimonials-grid-section .cw-card-title {
	font-size: 0.8rem; color: rgba(255,255,255,0.5) !important; margin: 3px 0 0;
}
.cw-testimonials-grid-section .cw-testimonial-card blockquote {
	font-size: 0.9rem; line-height: 1.7; color: rgba(255,255,255,0.75) !important;
	margin: 0; font-style: normal; background: transparent !important;
	border: none !important; padding: 0 !important; border-radius: 0 !important;
}

/* Read more / expand */
.cw-read-more-btn {
	display: inline-block; margin-top: 1rem; padding: 0.5rem 1.25rem;
	background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12);
	border-radius: 6px; color: #fff; font-size: 0.8rem; font-weight: 600;
	cursor: pointer; transition: all 0.2s ease;
}
.cw-read-more-btn:hover { background: rgba(255,255,255,0.14); }
.cw-full-quote {
	display: none; margin-top: 1rem; font-size: 0.9rem; line-height: 1.7;
	color: rgba(255,255,255,0.75); font-style: normal;
}
.cw-expanded .cw-full-quote { display: block; }
.cw-expanded > blockquote { display: none; }

/* CTA */
.cw-testimonials-cta {
	background: var(--cw-deep-green, #1A2E28); color: #fff;
	padding: clamp(4rem, 8vw, 6rem) 2rem; text-align: center;
}
.cw-testimonials-cta h2 {
	font-family: var(--cw-font-heading); font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 700; margin: 0 0 1rem; color: #fff;
}
.cw-testimonials-cta p {
	font-size: 1.1rem; color: var(--cw-text-on-dark-secondary, rgba(232,240,236,0.85));
	margin: 0 0 2rem; max-width: 560px; margin-left: auto; margin-right: auto;
}

/* Responsive — testimonials */
@media (max-width: 768px) {
	.cw-featured-layout { grid-template-columns: 1fr !important; gap: 1.5rem; }
	.cw-featured-reversed .cw-featured-layout { direction: ltr; }
	.cw-featured-photo-side { min-height: 280px; }
	.cw-featured-headshot { max-width: 260px; }
	.cw-featured-quote { font-size: 1.1rem; }
	.cw-blob-shape { width: 75%; height: 75%; }
	.cw-testimonials-grid-section .cw-testimonial-grid { grid-template-columns: 1fr !important; }
	.cw-tm-heading-main { font-size: 1.75rem; }
}
@media (max-width: 480px) {
	.cw-featured-photo-side { min-height: 220px; }
	.cw-featured-headshot { max-width: 200px; }
}

/* Reset blockquote on dark sections */
.cw-testimonials-grid-section blockquote {
	background: transparent !important; border: none !important; padding: 0 !important;
}

/* ==========================================================================
   CONTRAST SAFETY NET — Force correct colors on homepage sections.
   These are last-in-file to win specificity battles.
   ========================================================================== */

/* Light sections: dark text on light bg */
.front-page-2.widget-area,
.front-page-4.widget-area,
.front-page-5.widget-area {
	background-color: #F8FAF9 !important;
	color: #1A2E28 !important;
}

.front-page-2 h2, .front-page-2 h3,
.front-page-4 h2, .front-page-4 h3,
.front-page-5 h2, .front-page-5 h3 {
	color: #1A2E28 !important;
}

.front-page-2 p, .front-page-2 .textwidget,
.front-page-4 p, .front-page-4 .textwidget,
.front-page-5 p, .front-page-5 .textwidget {
	color: #6B7C75 !important;
}

/* Dark sections: white text on dark bg */
.front-page-1.widget-area {
	background-color: var(--cw-deep-green, #0D1410) !important;
	color: #fff !important;
}

.front-page-3.widget-area {
	background-color: var(--cw-dark-green, #1A2E28) !important;
	color: #E8F0EC !important;
}

.front-page-6.widget-area {
	background: linear-gradient(180deg, var(--cw-deep-green, #0D1410) 0%, var(--cw-dark-green, #1A2E28) 100%) !important;
	color: #E8F0EC !important;
}

.front-page-1 h1, .front-page-1 h2,
.front-page-3 h2, .front-page-3 h3,
.front-page-6 h2, .front-page-6 h3 {
	color: #fff !important;
}

.front-page-1 p,
.front-page-3 p, .front-page-3 .textwidget,
.front-page-6 p, .front-page-6 .textwidget {
	color: rgba(232, 240, 236, 0.75) !important;
}

/* Homepage testimonial cards — override testimonials-page card styles */
.front-page-4 .cw-testimonial-card {
	background: #fff !important;
	color: #1A2E28 !important;
	border: 1px solid #E5E7EB;
	box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}

.front-page-4 .cw-testimonial-card .cw-testimonial-quote,
.front-page-4 .cw-testimonial-card blockquote {
	color: #4A5568 !important;
}

.front-page-4 .cw-testimonial-card .cw-testimonial-name,
.front-page-4 .cw-testimonial-card .cw-card-name {
	color: #1A2E28 !important;
}

.front-page-4 .cw-testimonial-card .cw-testimonial-role,
.front-page-4 .cw-testimonial-card .cw-card-title {
	color: #6B7C75 !important;
}

/* Blog section — ensure light bg with dark text */
.front-page-5.widget-area {
	background: linear-gradient(180deg, #F8FAF9, #fff) !important;
}

.front-page-5 .display-posts-listing .title,
.front-page-5 .display-posts-listing .title a {
	color: #1A2E28 !important;
}

.front-page-5 .display-posts-listing .excerpt {
	color: #6B7C75 !important;
}

/* ==========================================================================
   WCAG AA CONTRAST FIXES — Global (all viewports)
   Applied late in cascade to override scattered low-contrast rules.
   Reference: creative-web-design/references/contrast-ratios.md
   ========================================================================== */

/* --- Buttons: white text on colored backgrounds (green-on-green = 1.5:1 FAIL) --- */
.cw-btn-primary,
a.cw-btn-primary,
.front-page-3 .cw-btn,
.front-page-3 .cw-btn-primary,
.front-page-3 .cw-btn-outline,
.before-footer .cw-btn,
.before-footer .cw-btn-primary,
.cw-section-dark .cw-btn-primary,
.cw-section-dark .cw-btn-outline {
	color: #fff !important;
}

/* --- Light sections: body text must be dark enough (4.5:1 min) --- */
.front-page-2 p,
.front-page-4 p,
.front-page-5 p,
.cw-section-light p,
.cw-section-gray p {
	color: #475569 !important; /* slate-600: 7.1:1 on white — passes AA */
	font-style: normal !important; /* italic makes text look lighter than it is */
}

/* Keep italic ONLY for testimonial quotes */
.cw-testimonial-quote {
	font-style: italic !important;
	color: #334155 !important; /* slate-700: 10.7:1 on white */
}

/* --- Dark sections: body text must be bright enough --- */
.front-page-3 p,
.front-page-3 li,
.front-page-6 p,
.before-footer p,
.cw-section-dark p {
	color: rgba(232, 240, 236, 0.85) !important; /* ~6.5:1 on dark green */
}

/* Subtitle/muted text on light backgrounds — safe gray */
.cw-section-subtitle,
.front-page-2 .cw-section-subtitle,
.front-page-4 .cw-section-subtitle {
	color: #64748B !important; /* slate-500: 5.3:1 on white */
}

/* --- Footer link contrast --- */
.site-footer .footer-widgets a {
	color: rgba(232, 240, 236, 0.8) !important;
}

.site-footer .footer-widgets .widgettitle,
.site-footer .footer-widgets .widget-title {
	color: #fff !important;
	opacity: 1 !important;
}

/* --- Stats row on hero: ensure visibility --- */
.front-page-1 .cw-stat-number {
	color: var(--cw-emerald) !important;
}

.front-page-1 .cw-stat-label {
	color: rgba(232, 240, 236, 0.8) !important;
}

/* --- Marquee text --- */
.cw-proof-marquee-item {
	color: #64748B !important; /* visible on light background */
}

/* ==========================================================================
   CONSOLIDATED MOBILE OVERRIDES — Single source of truth
   Last in file = wins all cascade battles. Three breakpoints only.
   ========================================================================== */

/* ─── TABLET: 768px and below ─── */
@media (max-width: 768px) {

	/* --- CONTRAST: Ensure text is visible on all backgrounds --- */
	.front-page-2, .front-page-4, .front-page-5,
	.cw-section-light, .cw-section-gray {
		color: var(--cw-dark-text, #1A2E28) !important;
	}

	.front-page-2 h2, .front-page-4 h2, .front-page-5 h2,
	.cw-section-light h2, .cw-section-gray h2 {
		color: var(--cw-dark-text, #1A2E28) !important;
	}

	.front-page-2 p, .front-page-4 p, .front-page-5 p,
	.cw-section-light p, .cw-section-gray p {
		color: var(--cw-muted, #6B7C75) !important;
	}

	.front-page-3, .front-page-6, .before-footer,
	.cw-section-dark {
		color: var(--cw-light-text, rgba(232,240,236,0.7)) !important;
	}

	.front-page-3 h2, .front-page-6 h2, .before-footer h2,
	.cw-section-dark h2 {
		color: #fff !important;
	}

	/* --- Homepage testimonial cards: ensure dark text on white bg --- */
	.front-page-4 .cw-testimonial-card,
	.front-page-4 .cw-testimonial-card * {
		color: var(--cw-dark-text, #1A2E28);
	}

	.front-page-4 .cw-testimonial-quote {
		color: var(--cw-muted, #6B7C75) !important;
	}

	.front-page-4 .cw-testimonial-name {
		color: var(--cw-dark-text, #1A2E28) !important;
	}

	/* --- Feature cards: ensure dark text on white cards --- */
	.cw-feature-card {
		background: var(--cw-white, #fff) !important;
		color: var(--cw-dark-text, #1A2E28) !important;
	}

	.cw-feature-card h3 {
		color: var(--cw-dark-text, #1A2E28) !important;
	}

	.cw-feature-card p, .cw-feature-card li {
		color: var(--cw-muted, #6B7C75) !important;
	}

	/* --- Ensure blog cards have proper contrast --- */
	.cw-blog-card, .display-posts-listing .listing-item {
		color: var(--cw-dark-text, #1A2E28) !important;
	}

	.cw-blog-card .excerpt, .display-posts-listing .excerpt {
		color: var(--cw-muted, #6B7C75) !important;
	}

	/* --- Navigation hamburger: ensure visibility --- */
	.menu-toggle,
	.nav-primary .menu-toggle {
		display: block !important;
		color: #fff !important;
	}

	.nav-primary .genesis-nav-menu {
		display: none;
	}

	.nav-primary.activated .genesis-nav-menu {
		display: block;
	}

	/* --- Global grid stacking (including inline style overrides) --- */
	div[style*="grid-template-columns: repeat(3"],
	div[style*="grid-template-columns:repeat(3"],
	div[style*="grid-template-columns: 1fr 1fr"],
	div[style*="grid-template-columns:1fr 1fr"],
	div[style*="grid-template-columns: 1.2fr"],
	div[style*="grid-template-columns:1.2fr"],
	div[style*="grid-template-columns: repeat(2"],
	div[style*="grid-template-columns:repeat(2"] {
		grid-template-columns: 1fr !important;
	}

	.cw-feature-grid,
	.cw-testimonial-grid,
	.cw-process-timeline,
	.cw-featured-grid,
	.cw-value-grid,
	.gsd-who-grid,
	.cw-compare-cols,
	.cw-pricing-grid {
		grid-template-columns: 1fr !important;
	}

	/* --- Homepage hero --- */
	.front-page-1 .cw-hero-split {
		grid-template-columns: 1fr !important;
		text-align: center;
		gap: 1.5rem;
	}

	.front-page-1 .cw-hero-content {
		order: 1;
	}

	.front-page-1 .cw-hero-media {
		order: -1;
		display: flex !important;
		justify-content: center;
	}

	/* Kill ALL green overlays on hero photo at mobile */
	.front-page-1 .cw-hero-media::before,
	.front-page-1 .cw-hero-media::after,
	.cw-hero-media::before,
	.cw-hero-media::after {
		display: none !important;
	}

	.front-page-1 .cw-hero-media img,
	.front-page-1 .cw-headshot {
		max-width: 200px !important;
		max-height: 220px !important;
		border-radius: 16px !important;
	}

	/* Crisp white headline — no faded gray */
	.front-page-1 h1 {
		font-size: clamp(1.75rem, 6vw, 2.25rem) !important;
		color: #fff !important;
		opacity: 1 !important;
	}

	.front-page-1 h1 .cw-word {
		opacity: 1 !important;
		transform: none !important;
	}

	/* Tighter hero spacing */
	.front-page-1 .cw-hero-buttons,
	.cw-hero-actions {
		justify-content: center;
		flex-wrap: wrap;
		gap: 0.75rem !important;
	}

	.front-page-1 .cw-btn {
		padding: 14px 28px !important;
		font-size: 0.95rem !important;
	}

	.front-page-1 {
		min-height: auto !important;
		height: auto !important;
		padding-top: 90px !important;
		padding-bottom: 2rem !important;
	}

	/* Subtitle text readable */
	.front-page-1 .cw-hero-content p {
		font-size: 0.95rem !important;
		line-height: 1.6 !important;
	}

	/* Stats horizontal row — NOT vertical stack */
	.front-page-1 .cw-stats-row {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		justify-content: center !important;
		gap: 0.75rem !important;
	}

	.front-page-1 .cw-stat-item {
		flex: 0 0 auto !important;
		padding: 0.5rem 0.75rem !important;
	}

	.front-page-1 .cw-stats-row .cw-stat-item {
		padding: 0.75rem !important;
	}

	/* --- Homepage widget sections — padding & stacking --- */
	.front-page-1 .wrap,
	.front-page-2 .wrap,
	.front-page-3 .wrap,
	.front-page-4 .wrap,
	.front-page-5 .wrap,
	.front-page-6 .wrap,
	.before-footer .wrap {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}

	.front-page-2 .wrap {
		flex-direction: column !important;
	}

	.front-page-2 .widget:nth-child(2),
	.front-page-2 .widget:nth-child(3) {
		flex: 0 0 100% !important;
		min-width: unset !important;
	}

	/* Testimonials section on homepage */
	.front-page-4 .wrap {
		flex-direction: column !important;
	}

	/* Blog section on homepage */
	.front-page-5 .display-posts-listing,
	.front-page-5 .cw-homepage-posts {
		grid-template-columns: 1fr !important;
	}
	/* .cw-blog-grid responsive handled in Section 14 breakpoints */

	/* --- Service page heroes --- */
	.cw-hero-split {
		grid-template-columns: 1fr !important;
		text-align: center;
		gap: 1.5rem;
	}

	.cw-hero-content { order: 1; }
	.cw-hero-media {
		order: 2;
		max-width: 350px;
		margin: 0 auto;
	}

	/* --- Section spacing --- */
	.cw-section {
		padding: clamp(2.5rem, 6vw, 4rem) 0 !important;
	}

	.cw-contain {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}

	/* --- Typography --- */
	.cw-section-title,
	.entry-content h2 {
		font-size: clamp(1.5rem, 5vw, 2rem) !important;
	}

	.cw-hero-title {
		font-size: clamp(1.75rem, 5vw, 2.5rem) !important;
	}

	.cw-section-subtitle {
		margin-left: auto;
		margin-right: auto;
	}

	/* --- Process timeline vertical stack --- */
	.cw-process-timeline {
		max-width: 420px !important;
		margin-left: auto !important;
		margin-right: auto !important;
		grid-template-columns: 1fr !important;
	}

	.cw-process-timeline::before,
	.cw-process-timeline::after {
		display: none !important;
	}

	.cw-process-step {
		text-align: left !important;
		display: flex !important;
		align-items: flex-start;
		gap: 1.25rem;
		padding: 1.25rem 0 !important;
	}

	.cw-process-number {
		flex-shrink: 0 !important;
		margin: 0 !important;
		width: 52px !important;
		height: 52px !important;
	}

	.cw-process-number::before {
		display: none !important;
	}

	/* --- About page timeline --- */
	.cw-timeline {
		padding-left: 2.5rem !important;
	}
	.cw-timeline::after {
		left: 10px !important;
	}
	.cw-timeline::before {
		left: 11px !important;
	}
	.cw-timeline-item::before {
		left: -2.5rem !important;
		width: 12px !important;
		height: 12px !important;
	}
	.cw-timeline-item::after {
		display: none !important;
	}
	.page-id-5 .cw-timeline-item {
		padding: 1rem 1rem 1rem 1.25rem !important;
		border-radius: 0 8px 8px 0 !important;
	}

	/* --- Footer: single column, everything centered --- */
	.site-footer .footer-widgets .wrap,
	#genesis-footer-widgets > .wrap {
		grid-template-columns: 1fr !important;
		gap: 1rem !important;
		text-align: center !important;
	}

	.site-footer .footer-widgets {
		padding: 2.5rem 1.25rem !important;
	}

	/* Footer widget areas — center everything, kill extra padding */
	.footer-widgets-1,
	.footer-widgets-2,
	.footer-widgets-3 {
		display: block !important;
		text-align: center !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	/* Kill flex/padding on widget-area that adds phantom gaps */
	.footer-widget-area {
		display: block !important;
	}

	.footer-widget-area .widget-wrap {
		padding: 0 !important;
		margin: 0 !important;
	}

	.footer-widget-area section {
		margin-bottom: 0.5rem !important;
	}

	/* Logo — centered */
	.cw-footer-brand {
		text-align: center !important;
	}

	.cw-footer-logo {
		display: inline-block !important;
	}

	.cw-footer-brand p {
		display: none !important;
	}

	/* Social icons — centered, tight under logo */
	.footer-widgets .simple-social-icons {
		margin-top: 0.5rem !important;
		margin-bottom: 0 !important;
	}

	.footer-widgets .simple-social-icons ul {
		justify-content: center !important;
	}

	/* Quick Links — 2-col grid, left-aligned links */
	.footer-widgets .widget_nav_menu {
		width: 100% !important;
	}

	.footer-widgets .widget_nav_menu .menu {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 0.5rem 1rem !important;
		padding: 0 !important;
		margin: 0 !important;
		list-style: none !important;
		text-align: left !important;
	}

	.footer-widgets .widget_nav_menu .menu li {
		text-align: left !important;
		margin: 0 !important;
	}

	.footer-widgets .widget_nav_menu .menu li a {
		display: block !important;
		padding: 0.35rem 0 !important;
		text-align: left !important;
	}

	.footer-widgets .widget_nav_menu .menu .sub-menu {
		display: none !important;
	}

	/* Widget titles centered */
	.footer-widgets .widgettitle,
	.footer-widgets .widget-title {
		text-align: center !important;
		width: 100% !important;
		margin-bottom: 0.75rem !important;
	}

	/* Get In Touch section */
	.footer-widgets-3 .textwidget {
		text-align: center !important;
	}

	/* Credits bar */
	.site-footer .creds {
		text-align: center !important;
		padding: 1rem 1.25rem !important;
	}

	/* --- Contact page inquiry selector: 2 cols on tablet --- */
	.cw-inquiry-selector {
		grid-template-columns: 1fr 1fr !important;
	}

	/* --- Forms --- */
	.gform_wrapper input[type="text"],
	.gform_wrapper input[type="email"],
	.gform_wrapper input[type="tel"],
	.gform_wrapper textarea,
	.gform_wrapper select {
		width: 100% !important;
	}

	/* --- Calendly embeds --- */
	.calendly-inline-widget,
	iframe[src*="calendly"] {
		max-width: 100% !important;
		overflow: hidden !important;
	}

	/* --- Comparison table --- */
	.cw-compare-cols {
		flex-direction: column !important;
	}

	.cw-compare-col {
		min-width: unset !important;
	}

	/* --- Featured testimonial cards (testimonials page) --- */
	.cw-testimonials-page .cw-featured-grid {
		grid-template-columns: 1fr !important;
		gap: 1.5rem !important;
	}

	.cw-testimonials-page .cw-testimonial-grid {
		grid-template-columns: 1fr !important;
	}

	/* --- Split compare infographics --- */
	.cw-split-compare {
		grid-template-columns: 1fr !important;
	}

	/* --- Flowchart branches --- */
	.cw-flow-branch {
		flex-direction: column !important;
		gap: 1rem !important;
	}

	/* --- Bridge layout --- */
	.cw-bridge {
		flex-direction: column !important;
	}

	.cw-bridge-gap {
		width: 100% !important;
		margin: -4px 0 !important;
		flex-direction: row !important;
		gap: 0.5rem !important;
		padding: 0.75rem !important;
	}
}

/* ─── PHONE: 480px and below ─── */
@media (max-width: 480px) {

	/* --- Stats row: allow wrapping --- */
	.cw-stats-row {
		flex-wrap: wrap !important;
		justify-content: center !important;
		gap: 1rem !important;
	}

	.cw-stat-item + .cw-stat-item::before {
		display: none !important;
	}

	.cw-stat-number {
		font-size: 1.25rem !important;
	}

	.cw-stat-label {
		font-size: 0.7rem !important;
	}

	/* --- Hero --- */
	.front-page-1 h1 {
		font-size: 1.65rem !important;
	}

	.front-page-1 .cw-hero-media img,
	.front-page-1 .cw-headshot {
		max-width: 200px !important;
		max-height: 240px !important;
	}

	.front-page-1 .cw-hero-buttons {
		flex-direction: column !important;
		align-items: center !important;
	}

	.front-page-1 .cw-hero-buttons .cw-btn {
		width: 100% !important;
		max-width: 300px !important;
		text-align: center !important;
	}

	/* --- Buttons full-width --- */
	.cw-btn {
		width: 100% !important;
		text-align: center !important;
		max-width: 320px !important;
	}

	.gsd-cta-buttons,
	.cw-hero-actions {
		flex-direction: column !important;
		align-items: center !important;
	}

	/* --- Footer: single column --- */
	.site-footer .footer-widgets .wrap,
	#genesis-footer-widgets > .wrap {
		grid-template-columns: 1fr !important;
		text-align: center !important;
	}

	.footer-widgets .simple-social-icons ul {
		justify-content: center !important;
	}

	/* --- Section spacing tighter --- */
	.cw-section {
		padding: 2rem 0 !important;
	}

	.cw-contain {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
	}

	/* --- Blog grid: handled in Section 14 breakpoints --- */
	.front-page-5 .display-posts-listing {
		grid-template-columns: 1fr !important;
	}

	/* --- Inquiry selector --- */
	.cw-inquiry-selector {
		grid-template-columns: 1fr !important;
	}

	/* --- Waterfall bars shorter --- */
	.cw-waterfall {
		height: 140px !important;
		gap: 6px !important;
	}

	.cw-wf-label {
		font-size: 0.55rem !important;
	}

	/* --- Comparison table tighter --- */
	.cw-ct-header, .cw-ct-row {
		grid-template-columns: 0.8fr 1fr 1fr !important;
		font-size: 0.75rem !important;
	}

	/* --- Scorecard tighter --- */
	.cw-scorecard-row {
		grid-template-columns: 100px 1fr 50px !important;
	}
}

/* ─── SMALL PHONE: 375px safety net ─── */
@media (max-width: 375px) {

	.front-page-1 {
		padding-top: 80px !important;
	}

	.front-page-1 h1 {
		font-size: 1.5rem !important;
	}

	/* Prevent any font from going below 11px */
	.cw-stat-label,
	.cw-pipe-desc,
	.cw-wf-label {
		font-size: max(0.65rem, 11px) !important;
	}

	/* Stats as 2x2 grid for 4 items */
	.cw-stats-row {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 0.75rem !important;
	}

	.cw-stat-item {
		text-align: center;
	}
}

/* ==========================================================================
   WCAG 2.1 AA — Cookie banner contrast overrides (wpconsent plugin)
   Default emerald + white text fails 2.71:1; deep-green text gives 5.30:1.
   ========================================================================== */
:root {
	--wpconsent-accept-bg: var(--cw-emerald);
	--wpconsent-accept-color: var(--cw-deep-green);
	--wpconsent-color-primary: var(--cw-emerald-on-light);
}
.wpconsent-banner-button-accept,
.wpconsent-button-primary,
.wpconsent-floating-button-accept {
	background-color: var(--cw-emerald) !important;
	color: var(--cw-deep-green) !important;
	border-color: var(--cw-emerald) !important;
}
.wpconsent-banner-button-accept:hover,
.wpconsent-button-primary:hover,
.wpconsent-floating-button-accept:hover {
	background-color: var(--cw-bright-green) !important;
	color: var(--cw-deep-green) !important;
}

/* Author box h3 spacing — was h4, now h3 for WCAG SC 1.3.1 heading hierarchy */
.cw-author-box .cw-author-name {
	font-size: 1.125rem;
	margin: 0 0 0.5rem;
}

/* Social icon hover state — was 1:1 contrast collapse on emerald hover */
.simple-social-icons ul li a:hover {
	color: var(--cw-white) !important;
}

/* Contact inquiry-selector buttons inside dark sections — icons were nearly invisible.
   Force a brighter card style so the icon + label read clearly on dark green. */
.cw-section-dark .cw-inquiry-btn,
.cw-section[class*="dark"] .cw-inquiry-btn {
	background: rgba(232, 240, 236, 0.06);
	border-color: rgba(232, 240, 236, 0.2);
	color: var(--cw-light-text);
}
.cw-section-dark .cw-inquiry-btn:hover,
.cw-section[class*="dark"] .cw-inquiry-btn:hover {
	border-color: var(--cw-bright-green);
	background: rgba(92, 219, 149, 0.1);
	color: var(--cw-white);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}
.cw-section-dark .cw-inquiry-btn.active,
.cw-section[class*="dark"] .cw-inquiry-btn.active {
	border-color: var(--cw-bright-green);
	background: rgba(92, 219, 149, 0.18);
	color: var(--cw-white);
}
.cw-section-dark .cw-inquiry-btn .cw-icon-frame,
.cw-section-dark .cw-inquiry-btn svg,
.cw-section-dark .cw-inquiry-btn [class*="icon"] {
	color: var(--cw-bright-green);
	border-color: rgba(92, 219, 149, 0.35);
}

/* Strong reset for contact-page inquiry buttons.
   Forces visible light cards on light section regardless of upstream rules. */
.cw-section-light .cw-inquiry-btn,
.cw-section-gray .cw-inquiry-btn {
	background-color: var(--cw-white) !important;
	color: var(--cw-deep-green) !important;
	border: 1.5px solid rgba(26, 46, 40, 0.12) !important;
}
.cw-section-light .cw-inquiry-btn:hover,
.cw-section-gray .cw-inquiry-btn:hover {
	border-color: var(--cw-emerald-on-light) !important;
	background-color: rgba(76, 175, 130, 0.04) !important;
	box-shadow: 0 4px 12px rgba(26, 46, 40, 0.08);
}
.cw-section-light .cw-inquiry-btn.active,
.cw-section-gray .cw-inquiry-btn.active {
	border-color: var(--cw-emerald-on-light) !important;
	background-color: rgba(76, 175, 130, 0.08) !important;
	color: var(--cw-emerald-on-light) !important;
}
.cw-section-light .cw-inquiry-btn .cw-icon-frame,
.cw-section-light .cw-inquiry-btn svg,
.cw-section-light .cw-inquiry-btn [class*="icon"],
.cw-section-gray .cw-inquiry-btn .cw-icon-frame {
	color: var(--cw-emerald-on-light) !important;
	border-color: rgba(27, 122, 74, 0.4) !important;
}

/* ==========================================================================
   TESTIMONIALS PAGE V2 — Modern editorial pull-quote layout
   Replaces the old wall-of-cards. Every testimonial gets its own row with a
   large image and pull-quote typography. Featured rows are larger.
   Scope: .cw-testimonials-v2 only — no impact on homepage cards.
   ========================================================================== */

.cw-testimonials-v2 { background: #fff; color: var(--cw-deep-green, #1A2E28); overflow-x: hidden; }
.cw-testimonials-v2 * { box-sizing: border-box; }

/* ── Hero ────────────────────────────────────────────────────────────── */
.cw-tm-hero {
	background: linear-gradient(180deg, #F7F9F8 0%, #fff 100%);
	padding: clamp(4rem, 9vw, 7rem) 1.5rem clamp(3rem, 6vw, 5rem);
	text-align: center;
}
.cw-tm-hero-inner { max-width: 820px; margin: 0 auto; }
.cw-tm-hero .cw-section-label {
	display: inline-block;
	color: var(--cw-emerald-on-light, #2F7D5C);
	font-family: var(--cw-font-heading, 'Inter', sans-serif);
	font-size: 0.8125rem; font-weight: 600;
	letter-spacing: 0.18em; text-transform: uppercase;
	margin-bottom: 1.25rem;
}
.cw-tm-hero-title {
	font-family: var(--cw-font-heading, 'Inter', sans-serif);
	font-size: clamp(2rem, 5.5vw, 3.75rem);
	font-weight: 700; line-height: 1.08; letter-spacing: -0.02em;
	color: var(--cw-deep-green, #1A2E28);
	margin: 0 0 1.25rem;
}
.cw-tm-hero-sub {
	font-family: var(--cw-font-body, 'Source Serif 4', Georgia, serif);
	font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
	line-height: 1.6; color: #4B5E56;
	margin: 0; max-width: 640px; margin-left: auto; margin-right: auto;
}

/* ── Rows wrapper ────────────────────────────────────────────────────── */
.cw-tm-rows {
	padding: clamp(2rem, 5vw, 4rem) 0 clamp(3rem, 7vw, 6rem);
	background: #fff;
}

/* ── A single row ────────────────────────────────────────────────────── */
.cw-tm-row { padding: clamp(2.5rem, 6vw, 5rem) 1.5rem; }
.cw-tm-row + .cw-tm-row {
	border-top: 1px solid rgba(26, 46, 40, 0.08);
}
.cw-tm-row-inner {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(280px, 1fr) 1.4fr;
	gap: clamp(2rem, 6vw, 5rem);
	align-items: center;
}
.cw-tm-row--reversed .cw-tm-row-inner {
	grid-template-columns: 1.4fr minmax(280px, 1fr);
}
.cw-tm-row--reversed .cw-tm-photo { order: 2; }
.cw-tm-row--reversed .cw-tm-content { order: 1; }

/* Featured rows — larger and roomier */
.cw-tm-row--feature {
	background: linear-gradient(180deg, #F7F9F8 0%, #fff 100%);
	padding: clamp(3.5rem, 8vw, 7rem) 1.5rem;
}
.cw-tm-row--feature .cw-tm-row-inner {
	grid-template-columns: minmax(320px, 1fr) 1.3fr;
}
.cw-tm-row--feature.cw-tm-row--reversed .cw-tm-row-inner {
	grid-template-columns: 1.3fr minmax(320px, 1fr);
}

/* ── Photo side ──────────────────────────────────────────────────────── */
.cw-tm-photo {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 24px;
	background: #E8F0EC;
	box-shadow:
		0 30px 60px -20px rgba(26, 46, 40, 0.18),
		0 12px 24px -8px rgba(26, 46, 40, 0.08);
}
.cw-tm-photo img {
	width: 100%; height: 100%;
	object-fit: cover; object-position: center top;
	display: block;
	transition: transform 0.6s cubic-bezier(0.2, 0.6, 0.2, 1);
}
.cw-tm-row:hover .cw-tm-photo img { transform: scale(1.03); }

/* Subtle accent bar on the photo, alternates side */
.cw-tm-photo::after {
	content: '';
	position: absolute;
	left: -8px; bottom: 32px;
	width: 80px; height: 4px;
	background: var(--cw-emerald, #4CAF82);
	border-radius: 2px;
}
.cw-tm-row--reversed .cw-tm-photo::after { left: auto; right: -8px; }

.cw-tm-photo-placeholder {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, #1A2E28 0%, #2F7D5C 100%);
	color: rgba(255,255,255,0.85);
	font-family: var(--cw-font-heading, 'Inter', sans-serif);
	font-size: clamp(4rem, 12vw, 8rem);
	font-weight: 700;
}

/* Featured photos slightly larger feel */
.cw-tm-row--feature .cw-tm-photo {
	aspect-ratio: 4 / 5;
	border-radius: 28px;
}

/* ── Content side ───────────────────────────────────────────────────── */
.cw-tm-content { position: relative; }
.cw-tm-quote-glyph {
	width: 48px; height: 36px;
	color: var(--cw-emerald, #4CAF82);
	opacity: 0.85;
	margin-bottom: 1.25rem;
	display: block;
}
.cw-tm-row--feature .cw-tm-quote-glyph { width: 56px; height: 42px; }

.cw-tm-pull {
	font-family: var(--cw-font-heading, 'Inter', sans-serif);
	font-size: clamp(1.375rem, 2.6vw, 2rem);
	font-weight: 600; line-height: 1.25; letter-spacing: -0.015em;
	color: var(--cw-deep-green, #1A2E28);
	margin: 0 0 1.25rem;
	text-wrap: balance;
}
.cw-tm-row--feature .cw-tm-pull {
	font-size: clamp(1.625rem, 3.2vw, 2.5rem);
	line-height: 1.2;
}

.cw-tm-body {
	font-family: var(--cw-font-body, 'Source Serif 4', Georgia, serif);
	font-size: clamp(1rem, 1.4vw, 1.125rem);
	line-height: 1.7;
	color: #4B5E56;
	margin: 0 0 1.75rem;
	max-width: 60ch;
}

.cw-tm-attribution {
	display: flex; flex-direction: column; gap: 2px;
	padding-top: 1.25rem;
	border-top: 1px solid rgba(26, 46, 40, 0.1);
	max-width: 360px;
}
.cw-tm-name {
	font-family: var(--cw-font-heading, 'Inter', sans-serif);
	font-size: 1.0625rem; font-weight: 700;
	color: var(--cw-deep-green, #1A2E28);
	margin: 0; letter-spacing: -0.005em;
}
.cw-tm-title {
	font-family: var(--cw-font-heading, 'Inter', sans-serif);
	font-size: 0.875rem; font-weight: 500;
	color: #6B7C75;
	margin: 0;
}

/* ── CTA ─────────────────────────────────────────────────────────────── */
.cw-testimonials-v2 .cw-tm-cta {
	background: var(--cw-deep-green, #1A2E28);
	color: #fff;
	padding: clamp(4rem, 9vw, 7rem) 1.5rem;
	text-align: center;
}
.cw-tm-cta-inner { max-width: 720px; margin: 0 auto; }
.cw-tm-cta .cw-section-label--on-dark {
	color: var(--cw-bright-green, #5CDB95);
	font-family: var(--cw-font-heading, 'Inter', sans-serif);
	font-size: 0.8125rem; font-weight: 600;
	letter-spacing: 0.18em; text-transform: uppercase;
	display: inline-block; margin-bottom: 1rem;
}
.cw-tm-cta h2 {
	font-family: var(--cw-font-heading, 'Inter', sans-serif);
	font-size: clamp(2rem, 4.5vw, 3rem);
	font-weight: 700; line-height: 1.1; letter-spacing: -0.02em;
	color: #fff; margin: 0 0 1.25rem;
}
.cw-tm-cta p {
	font-family: var(--cw-font-body, 'Source Serif 4', Georgia, serif);
	font-size: 1.125rem; line-height: 1.6;
	color: rgba(232, 240, 236, 0.88);
	margin: 0 0 2.25rem;
}

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 900px) {
	.cw-tm-row-inner,
	.cw-tm-row--reversed .cw-tm-row-inner,
	.cw-tm-row--feature .cw-tm-row-inner,
	.cw-tm-row--feature.cw-tm-row--reversed .cw-tm-row-inner {
		grid-template-columns: 1fr;
		gap: 2rem;
	}
	.cw-tm-row--reversed .cw-tm-photo { order: 0; }
	.cw-tm-row--reversed .cw-tm-content { order: 0; }
	.cw-tm-photo {
		max-width: 420px; margin: 0 auto;
		aspect-ratio: 1 / 1;
	}
	.cw-tm-content { text-align: left; }
}
@media (max-width: 480px) {
	.cw-tm-photo { max-width: 100%; aspect-ratio: 4 / 5; }
	.cw-tm-pull { font-size: 1.375rem; }
	.cw-tm-row--feature .cw-tm-pull { font-size: 1.625rem; }
}

/* ── Reduce motion ──────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.cw-tm-row:hover .cw-tm-photo img { transform: none; }
	.cw-tm-photo img { transition: none; }
}
