/* =========================================================================
   Convergent Strategic Consulting — main stylesheet.
   Calm · executive · spacious. Cormorant Garamond + Inter.
   ========================================================================= */

/* ---------- 1. Design tokens -------------------------------------------- */

:root {
	/* Palette */
	--cvg-navy:        #00506F;
	--cvg-navy-deep:   #003A52;
	--cvg-gold:        #D88924;
	--cvg-gold-light:  #E0A12F;
	--cvg-gold-dark:   #B0691A;
	--cvg-cream:       #F7F1E6;
	--cvg-cream-deep:  #EDE5D3;
	--cvg-bg:          #F7F1E6;
	--cvg-white:       #FFFFFF;
	--cvg-ink:         #17364A;  /* dark text */
	--cvg-muted:       #5A6A78;  /* muted text */
	--cvg-line:        rgba(23, 54, 74, .12);
	--cvg-line-soft:   rgba(23, 54, 74, .06);
	--cvg-navy-line:   rgba(255, 255, 255, .14);

	/* Type */
	--cvg-font-display: 'DM Serif Display', Georgia, 'Times New Roman', serif;
	--cvg-font-body:    'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--cvg-font-nav:     'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	/* Spacing */
	--cvg-gutter: 32px;
	--cvg-container: 1240px;
	--cvg-container-wide: 1340px;

	/* Radii */
	--cvg-radius-sm: 4px;
	--cvg-radius-md: 8px;
	--cvg-radius-lg: 16px;

	/* Shadows (soft, restrained) */
	--cvg-shadow-sm: 0 1px 3px rgba(28, 36, 48, .05);
	--cvg-shadow:    0 10px 30px rgba(28, 36, 48, .07);
	--cvg-shadow-lg: 0 24px 60px rgba(28, 36, 48, .10);

	--cvg-ease: cubic-bezier(.22, 1, .36, 1);
	--cvg-header-h: 84px;
}
@media (min-width: 1024px) { :root { --cvg-header-h: 100px; } }

/* ---------- 2. Reset ----------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--cvg-header-h) + 20px); }
body {
	margin: 0;
	font-family: var(--cvg-font-body);
	font-size: 15px;
	line-height: 28px;
	letter-spacing: 0.5px;
	color: var(--cvg-ink);
	background: var(--cvg-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--cvg-navy); text-decoration: none; transition: color .25s var(--cvg-ease); }
a:hover { color: var(--cvg-gold-dark); }
button { font: inherit; cursor: pointer; }
.screen-reader-text { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- 3. Typography ----------------------------------------------- */

h1, h2, h3 {
	font-family: var(--cvg-font-display);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.01em;
	color: var(--cvg-navy);
	margin: 0 0 .4em;
	text-transform: lowercase;
}
h4 {
	font-family: var(--cvg-font-body);
	font-weight: 600;
	line-height: 1.2;
	color: var(--cvg-navy);
	margin: 0 0 .4em;
}
h1 { font-size: clamp(2.5rem, 4vw + 1rem, 3.8rem); line-height: 1; }
h2 { font-size: clamp(2rem, 2.4vw + 1rem, 3.2rem); }
h3 { font-size: clamp(1.4rem, 1vw + 1rem, 1.875rem); }
h4 { font-size: clamp(1.15rem, .5vw + 1rem, 1.375rem); }
p  { margin: 0 0 1.1em; }
strong, b { font-weight: 600; }

/* Italic emphasis in headings goes gold (editorial accent) */
h1 em, h2 em, h3 em, .cvg-emphasis {
	font-style: italic;
	font-weight: inherit;
	color: var(--cvg-gold);
}

.cvg-eyebrow {
	display: inline-block;
	font-family: var(--cvg-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--cvg-gold-dark);
	margin-bottom: 20px;
}
/* Light variant — for dark backgrounds (hero sections sitting over navy). */
.cvg-eyebrow-light {
	display: inline-block;
	font-family: var(--cvg-font-body);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--cvg-gold);
	margin-bottom: 20px;
}
/* In any hero where breadcrumb-pill (inline-flex) precedes an eyebrow,
   force the eyebrow onto its own line under the pill. */
.cvg-breadcrumb-pill + .cvg-eyebrow,
.cvg-breadcrumb-pill + .cvg-eyebrow-light {
	display: block;
	width: fit-content;
	margin-top: 28px;
}
.cvg-lede {
	font-size: clamp(1.125rem, .5vw + 1rem, 1.3125rem);
	line-height: 1.65;
	color: var(--cvg-muted);
}

/* ---------- 4. Layout primitives ---------------------------------------- */

.cvg-container {
	width: 100%;
	max-width: var(--cvg-container);
	margin: 0 auto;
	padding: 0 var(--cvg-gutter);
}
.cvg-section { padding: clamp(72px, 9vw, 140px) 0; position: relative; }
.cvg-section-white { background: var(--cvg-white); }
.cvg-section-bg    { background: var(--cvg-bg); }
.cvg-section-navy  { background: var(--cvg-navy); color: rgba(255,255,255,.82); }
.cvg-section-navy h1, .cvg-section-navy h2, .cvg-section-navy h3, .cvg-section-navy h4 { color: #fff; }
.cvg-section-navy .cvg-eyebrow { color: var(--cvg-gold); }

.cvg-section-head { max-width: 760px; margin: 0 auto 64px; text-align: center; }
.cvg-section-head.is-left { margin-left: 0; text-align: left; }
.cvg-section-head h2 { margin-bottom: 20px; }

.cvg-actions-row { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }

/* ---------- 5. Buttons ---------------------------------------------------
   STRICT VARIANT SYSTEM (per CLAUDE.md convention #10):
     .cvg-btn-accent   — THE conversion CTA. Gold filled. The MONEY path:
                         "Schedule a Conversation" → Calendly, hero CTAs,
                         final-CTA primary. Max one per visual area.
     .cvg-btn-outline  — Secondary / "everything else": Learn more, Read story,
                         tertiary links. Navy outline → navy fill on hover.
     .cvg-btn-light    — Outline variant for dark backgrounds. White outline
                         → gold fill on hover.
     .cvg-btn-ghost    — Inline text link with arrow (NOT a real button).
                         "Learn more →" style inline reads.
     .cvg-btn-block    — Width modifier (100%).

     RESERVED — do NOT use as a page CTA:
     .cvg-btn-primary — Reserved for workflow chrome only (multi-step form
                         "Continue", "Save", "Submit"). No styles yet — add
                         when first multi-step form lands.
   ---------------------------------------------------------------- */

.cvg-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 17px 35px;
	font-family: var(--cvg-font-nav);
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	border-radius: 0;
	border: 1.5px solid transparent;
	transition: all .3s var(--cvg-ease);
	text-decoration: none;
	position: relative;
	box-shadow: 0 4px 12px rgba(0,30,55,.10);
}
.cvg-btn svg { transition: transform .3s var(--cvg-ease); }
.cvg-btn:hover svg { transform: translateX(3px); }
.cvg-btn:hover { transform: translateY(-2px); }
.cvg-btn:active { transform: translateY(0); }

/* Primary — gold default → navy hover w/ Tidii-style golden underglow */
.cvg-btn-accent {
	background: var(--cvg-gold);
	color: #fff;
	border-color: var(--cvg-gold);
	box-shadow: 0 4px 14px rgba(216, 137, 36, .25);
}
.cvg-btn-accent:hover {
	background: var(--cvg-navy);
	color: #fff;
	border-color: var(--cvg-navy);
	/* Tidii-style golden halo radiating from button */
	box-shadow:
		0 0 0 6px rgba(216, 137, 36, .18),
		0 14px 32px rgba(216, 137, 36, .40),
		0 4px 12px rgba(0, 30, 55, .15);
}

.cvg-btn-outline { background: transparent; color: var(--cvg-navy); border-color: rgba(0,80,111,.35); box-shadow: none; }
.cvg-btn-outline:hover {
	background: var(--cvg-navy);
	color: #fff;
	border-color: var(--cvg-navy);
	box-shadow:
		0 0 0 6px rgba(0, 80, 111, .12),
		0 14px 32px rgba(0, 30, 55, .25);
}

.cvg-btn-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); box-shadow: none; }
.cvg-btn-light:hover {
	background: var(--cvg-gold);
	color: #fff;
	border-color: var(--cvg-gold);
	box-shadow:
		0 0 0 6px rgba(216, 137, 36, .20),
		0 14px 32px rgba(216, 137, 36, .45);
}

.cvg-btn-ghost {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--cvg-font-body);
	font-size: 14px; font-weight: 600;
	color: var(--cvg-navy);
	letter-spacing: 0.02em;
}
.cvg-btn-ghost svg { transition: transform .3s var(--cvg-ease); }
.cvg-btn-ghost:hover { color: var(--cvg-gold-dark); }
.cvg-btn-ghost:hover svg { transform: translateX(4px); }

/* ---------- 6a. Announce bar (dismissible, 24h localStorage) ----------- */

.cvg-announce {
	background: var(--cvg-navy-deep);
	color: #fff;
	font-family: var(--cvg-font-body);
	font-size: 14px;
	line-height: 1.5;
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.cvg-announce.is-hidden { display: none; }
.cvg-announce-inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 10px clamp(16px, 2vw, 32px);
	display: flex; align-items: center; justify-content: center;
	gap: 16px;
	position: relative;
}
.cvg-announce-text {
	margin: 0;
	color: rgba(255,255,255,.92);
	text-align: center;
}
.cvg-announce-link {
	color: var(--cvg-gold);
	text-decoration: none;
	font-weight: 600;
	margin-left: 10px;
	transition: color .2s;
	display: inline-flex; align-items: center; gap: 6px;
}
.cvg-announce-link:hover { color: #fff; }
.cvg-announce-link span { transition: transform .25s var(--cvg-ease); }
.cvg-announce-link:hover span { transform: translateX(3px); }
.cvg-announce-close {
	position: absolute; right: clamp(12px, 1.5vw, 24px); top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: 0;
	color: rgba(255,255,255,.65);
	cursor: pointer;
	padding: 6px;
	display: inline-grid; place-items: center;
	transition: color .2s;
}
.cvg-announce-close:hover { color: #fff; }
@media (max-width: 640px) {
	.cvg-announce-inner { padding-right: 44px; }
	.cvg-announce-text { font-size: 13px; text-align: left; }
}

/* ---------- 6. Header (full-width: logo left, nav + CTA right) ---------- */

.cvg-site-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--cvg-white);
	border-bottom: 1px solid var(--cvg-line);
	transition: box-shadow .3s var(--cvg-ease);
}
/* Constant height — never shrinks, never hides. Subtle shadow once scrolled. */
.cvg-site-header.is-scrolled { box-shadow: var(--cvg-shadow-sm); }
.cvg-header-inner {
	height: var(--cvg-header-h);
	display: flex; align-items: center; justify-content: space-between;
	gap: 32px;
	padding: 0 clamp(20px, 3vw, 48px);
}
.cvg-brand { display: inline-flex; align-items: center; height: 100%; }
.cvg-brand-mark { height: 46px; width: auto; }
@media (min-width: 1024px) { .cvg-brand-mark { height: 58px; } }

.cvg-header-right { display: flex; align-items: center; gap: 16px; }

/* Phone link in header */
.cvg-header-phone {
	display: none;
	align-items: center;
	gap: 8px;
	font-family: var(--cvg-font-nav);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.3px;
	color: var(--cvg-navy);
	transition: color .25s var(--cvg-ease);
}
.cvg-header-phone svg { color: var(--cvg-gold); transition: transform .3s var(--cvg-ease); }
.cvg-header-phone:hover { color: var(--cvg-gold-dark); }
.cvg-header-phone:hover svg { transform: rotate(-10deg); }
@media (min-width: 1024px) { .cvg-header-phone { display: inline-flex; } }

/* Icon-only buttons (search trigger, close, etc.) — CIRCULAR */
.cvg-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px;
	border: 1.5px solid var(--cvg-line);
	background: transparent;
	color: var(--cvg-navy);
	border-radius: 50%;
	transition: all .3s var(--cvg-ease);
	cursor: pointer;
}
.cvg-icon-btn:hover {
	background: var(--cvg-navy);
	color: #fff;
	border-color: var(--cvg-navy);
	box-shadow: 0 0 0 6px rgba(0, 80, 111, .10), 0 6px 18px rgba(0, 30, 55, .18);
	transform: translateY(-1px);
}
.cvg-header-search-trigger { display: none; }
@media (min-width: 1024px) { .cvg-header-search-trigger { display: inline-flex; } }

/* Burger */
.cvg-burger {
	display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px;
	width: 44px; height: 44px;
	background: transparent;
	border: 1px solid var(--cvg-line);
	cursor: pointer;
	transition: all .25s var(--cvg-ease);
}
.cvg-burger span { display: block; width: 20px; height: 2px; background: var(--cvg-navy); transition: transform .3s var(--cvg-ease), opacity .3s var(--cvg-ease); }
.cvg-burger:hover { background: var(--cvg-navy); }
.cvg-burger:hover span { background: #fff; }
@media (min-width: 1024px) { .cvg-burger { display: none; } }
.cvg-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.cvg-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.cvg-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.cvg-primary-nav { display: none; }
@media (min-width: 1024px) { .cvg-primary-nav { display: flex; align-items: center; gap: 4px; } }
.cvg-nav-link {
	position: relative;
	font-family: var(--cvg-font-nav);
	font-size: 14px; font-weight: 500; letter-spacing: 0.5px; text-transform: uppercase;
	color: var(--cvg-ink);
	padding: 10px 14px;
	white-space: nowrap;
	transition: color .25s var(--cvg-ease);
}
/* Tighter packing 1024–1280px — small viewport but still desktop.
   Logo stays at 58px (homepage parity); shrink everything else to make room. */
@media (min-width: 1024px) and (max-width: 1280px) {
	.cvg-header-inner { gap: 14px; padding: 0 20px; }
	.cvg-nav-link { padding: 10px 6px; font-size: 12.5px; letter-spacing: 0.2px; }
	.cvg-header-right { gap: 8px; }
	.cvg-header-cta { padding: 11px 16px; font-size: 12px; letter-spacing: 0.2px; }
	.cvg-icon-btn { width: 38px; height: 38px; }
}
/* 1281–1440px — comfortable but still controlled */
@media (min-width: 1281px) and (max-width: 1440px) {
	.cvg-nav-link { padding: 10px 12px; }
	.cvg-header-right { gap: 16px; }
	.cvg-header-cta { padding: 13px 22px; font-size: 13px; }
}
.cvg-nav-link span { position: relative; }
.cvg-nav-link span::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: -5px; height: 2px;
	background: var(--cvg-gold); transform: scaleX(0); transform-origin: left center;
	transition: transform .3s var(--cvg-ease);
}
.cvg-nav-link:hover,
.cvg-nav-link.is-current,
.cvg-nav-link.current-menu-item,
.cvg-nav-link.current_page_item { color: var(--cvg-gold-dark); }
.cvg-nav-link:hover span::after,
.cvg-nav-link.is-current span::after,
.cvg-nav-link.current-menu-item span::after,
.cvg-nav-link.current_page_item span::after { transform: scaleX(1); }

.cvg-header-cta { display: none; padding: 13px 26px; font-size: 13px; white-space: nowrap; }
@media (min-width: 1024px) { .cvg-header-cta { display: inline-flex; } }

/* ---------- 6a-b. Nav dropdown (Services parent) ----------------------- */

.cvg-nav-item--has-dropdown {
	position: relative;
	display: inline-block;
}
.cvg-nav-item--has-dropdown > .cvg-nav-link {
	display: inline-flex; align-items: center; gap: 6px;
}
.cvg-nav-caret {
	transition: transform .2s var(--cvg-ease);
	opacity: .7;
}
.cvg-nav-item--has-dropdown.is-open > .cvg-nav-link .cvg-nav-caret,
.cvg-nav-item--has-dropdown:hover > .cvg-nav-link .cvg-nav-caret {
	transform: rotate(180deg);
}
.cvg-nav-dropdown {
	position: absolute;
	top: calc(100% + 12px);
	left: 50%;
	transform: translateX(-50%) translateY(-6px);
	min-width: 240px;
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	box-shadow: 0 18px 40px -18px rgba(0,30,48,.22);
	padding: 6px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .2s var(--cvg-ease), transform .25s var(--cvg-ease), visibility .25s;
	z-index: 50;
}
/* Hover bridge — invisible cushion between trigger + dropdown so the mouse
   crossing the gap doesn't dismiss it. */
.cvg-nav-dropdown::before {
	content: '';
	position: absolute;
	top: -14px; left: 0; right: 0;
	height: 14px;
}
.cvg-nav-item--has-dropdown:hover .cvg-nav-dropdown,
.cvg-nav-item--has-dropdown:focus-within .cvg-nav-dropdown,
.cvg-nav-item--has-dropdown.is-open .cvg-nav-dropdown {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(-50%) translateY(0);
}
.cvg-nav-dropdown-item {
	display: block;
	padding: 11px 16px;
	color: var(--cvg-navy);
	text-decoration: none;
	font-family: var(--cvg-font-body);
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
	transition: background .15s, color .15s;
	border-radius: 2px;
}
.cvg-nav-dropdown-item:hover,
.cvg-nav-dropdown-item:focus-visible {
	background: var(--cvg-cream-deep);
	color: var(--cvg-gold-dark);
	outline: none;
}
.cvg-nav-dropdown-item--all {
	border-bottom: 1px solid var(--cvg-line-soft);
	margin-bottom: 4px;
	font-family: var(--cvg-font-nav);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--cvg-gold-dark);
}
.cvg-nav-dropdown-item--all:hover,
.cvg-nav-dropdown-item--all:focus-visible {
	color: var(--cvg-navy);
}

/* On mobile, the drawer (cvg-mobile-drawer) handles nav — the desktop
   dropdown is hidden. */
@media (max-width: 1023px) {
	.cvg-nav-dropdown { display: none; }
	.cvg-nav-caret { display: none; }
}

/* ---------- 6b. AJAX Search panel (slides down from header) ------------- */

.cvg-search-panel {
	position: absolute; top: 100%; left: 0; right: 0;
	background: #fff;
	border-bottom: 1px solid var(--cvg-line);
	box-shadow: 0 12px 32px rgba(0,30,55,.10);
	transform: translateY(-12px);
	opacity: 0;
	visibility: hidden;
	transition: transform .35s var(--cvg-ease), opacity .25s var(--cvg-ease), visibility .35s;
	z-index: 40;
}
.cvg-search-panel.is-open { transform: translateY(0); opacity: 1; visibility: visible; }
.cvg-search-panel .cvg-header-inner { flex-direction: column; align-items: stretch; height: auto; padding-top: 18px; padding-bottom: 18px; gap: 0; }

.cvg-search-form {
	position: relative;
	display: flex; align-items: center;
	gap: 14px;
	padding: 14px 0;
	border-bottom: 1px solid var(--cvg-line);
}
.cvg-search-icon { color: var(--cvg-gold); display: inline-flex; }
.cvg-search-form input[type="search"] {
	flex: 1;
	border: 0;
	background: transparent;
	font-family: var(--cvg-font-display);
	font-size: clamp(1.5rem, 1.5vw + 1rem, 2.25rem);
	color: var(--cvg-navy);
	padding: 8px 0;
	outline: none;
}
.cvg-search-form input[type="search"]::placeholder { color: rgba(0,80,111,.45); }
.cvg-search-close { width: 38px; height: 38px; }

.cvg-search-results { padding: 8px 0 20px; min-height: 24px; max-height: 60vh; overflow-y: auto; }
.cvg-search-results-list { list-style: none; padding: 0; margin: 0; }
.cvg-search-result {
	display: block;
	padding: 16px 4px;
	border-bottom: 1px solid var(--cvg-line-soft);
	transition: background .2s var(--cvg-ease), padding-left .25s var(--cvg-ease);
	color: var(--cvg-ink);
}
.cvg-search-result:hover { padding-left: 14px; background: rgba(0,80,111,.04); color: var(--cvg-navy); }
.cvg-search-result-type {
	font-family: var(--cvg-font-nav);
	font-size: 10px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
	color: var(--cvg-gold-dark); margin-bottom: 4px;
}
.cvg-search-result-title { font-family: var(--cvg-font-display); font-size: 1.25rem; color: var(--cvg-navy); margin: 0 0 4px; text-transform: lowercase; }
.cvg-search-result-excerpt { font-size: 13px; color: var(--cvg-muted); margin: 0; line-height: 1.5; }
.cvg-search-empty { padding: 20px 4px; color: var(--cvg-muted); font-size: 14px; font-style: italic; }
.cvg-search-loading { padding: 16px 4px; color: var(--cvg-muted); font-size: 13px; }

/* ---------- 6c. Mobile drawer (Tidii pattern) -------------------------- */

.cvg-mobile {
	position: fixed; inset: 0;
	background: var(--cvg-cream);
	transform: translateX(100%);
	transition: transform .4s var(--cvg-ease);
	z-index: 100;
	display: flex; flex-direction: column;
	overflow-y: auto;
	visibility: hidden;
}
.cvg-mobile.is-open { transform: translateX(0); visibility: visible; }
.cvg-mobile-backdrop {
	position: fixed; inset: 0;
	background: rgba(0,30,55,.5);
	z-index: 99;
	opacity: 0;
	transition: opacity .3s var(--cvg-ease);
	cursor: pointer;
}
.cvg-mobile-backdrop.is-open { opacity: 1; }

.cvg-mobile-top {
	display: flex; align-items: center; justify-content: space-between;
	padding: 20px var(--cvg-gutter);
	border-bottom: 1px solid var(--cvg-line);
}
.cvg-mobile-top .cvg-brand-mark { height: 42px; }

.cvg-mobile-nav { flex: 1; padding: 24px var(--cvg-gutter); }
.cvg-mobile-list { list-style: none; padding: 0; margin: 0; }
.cvg-mobile-list li { border-bottom: 1px solid var(--cvg-line-soft); }
.cvg-mobile-list a {
	display: block;
	padding: 18px 4px;
	font-family: var(--cvg-font-display);
	font-size: 1.75rem;
	color: var(--cvg-navy);
	text-transform: lowercase;
	transition: padding-left .25s var(--cvg-ease), color .2s var(--cvg-ease);
}
.cvg-mobile-list a:hover { padding-left: 12px; color: var(--cvg-gold-dark); }

.cvg-mobile-actions {
	padding: 28px var(--cvg-gutter) 32px;
	border-top: 1px solid var(--cvg-line);
	display: flex; flex-direction: column; gap: 12px;
}
.cvg-btn-block { width: 100%; }

.cvg-mobile-search {
	display: flex; align-items: center; gap: 10px;
	padding: 14px 16px;
	border: 1px solid var(--cvg-line);
	background: #fff;
}
.cvg-mobile-search input[type="search"] {
	flex: 1; border: 0; background: transparent;
	font-family: var(--cvg-font-body);
	font-size: 15px; color: var(--cvg-ink); outline: none;
}
.cvg-mobile-search input[type="search"]::placeholder { color: rgba(0,80,111,.45); }

.cvg-mobile-social { display: flex; gap: 12px; margin-top: 8px; justify-content: center; }
.cvg-mobile-social a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px;
	border: 1px solid var(--cvg-line);
	color: var(--cvg-navy);
	transition: all .2s var(--cvg-ease);
}
.cvg-mobile-social a:hover { background: var(--cvg-navy); color: #fff; border-color: var(--cvg-navy); }

body.cvg-mobile-open,
body.cvg-search-open { overflow: hidden; }

/* ---------- 7. HERO ------------------------------------------------------ */

.cvg-hero {
	position: relative;
	min-height: clamp(640px, 92vh, 920px);
	display: flex;
	align-items: center;
	overflow: hidden;
	color: #fff;
}
/* Layer 1 — hero image as a REAL <img> (LCP-eligible, preloadable). Editorial
   treatment: pushed further into shadow + slight desaturation so the photo
   acts as texture, not subject. The H1 carries the page; the image is mood. */
.cvg-hero-img {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	object-position: center center;
	filter: grayscale(.25) contrast(.6) brightness(.55) saturate(.85);
	z-index: 0;
	display: block;
}
/* Layer 2 — navy radial pinned to top-left: stays solid through the
   frame's center for easy text readability, then fades cleanly through
   the right half so the photo carries the bottom-right unobstructed. */
.cvg-hero-overlay {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	background: radial-gradient(
		ellipse 130% 130% at 0% 0%,
		var(--cvg-navy-deep) 0%,
		var(--cvg-navy-deep) 28%,
		rgba(0, 58, 82, .94)  44%,
		rgba(0, 80, 111, .60) 62%,
		rgba(0, 80, 111, .18) 80%,
		transparent           94%
	);
}
.cvg-hero-inner { position: relative; z-index: 2; width: 100%; padding-top: 40px; padding-bottom: 40px; }
.cvg-hero-copy { max-width: 680px; }
.cvg-hero-eyebrow {
	display: inline-block; font-size: 12px; font-weight: 600; letter-spacing: 0.5px;
	text-transform: uppercase; color: var(--cvg-gold); margin-bottom: 24px;
}
.cvg-hero h1 {
	color: #fff;
	font-size: clamp(2.5rem, 4vw + 1rem, 3.8rem);
	line-height: 1;
	margin-bottom: 28px;
	text-shadow: 0 2px 24px rgba(8, 26, 48, .35);
}
.cvg-hero-sub { font-size: 15px; line-height: 28px; letter-spacing: 0.5px; color: rgba(255,255,255,.92); max-width: 560px; margin-bottom: 36px; }
.cvg-hero .cvg-actions-row { margin-bottom: 0; }
.cvg-hero-support {
	font-size: 15px; line-height: 28px; letter-spacing: 0.5px; color: rgba(255,255,255,.72);
	max-width: 540px; margin-top: 40px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.18);
}

/* ---------- 8. THE REALITY (4 cards) ----------------------------------- */

.cvg-cards-4 { display: grid; gap: 28px; grid-template-columns: 1fr; }
@media (min-width: 600px)  { .cvg-cards-4 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cvg-cards-4 { grid-template-columns: repeat(4, 1fr); } }

.cvg-reality-card {
	background: var(--cvg-bg);
	border: 1px solid var(--cvg-line-soft);
	border-radius: var(--cvg-radius-lg);
	padding: 36px 30px;
	transition: transform .3s var(--cvg-ease), box-shadow .3s var(--cvg-ease), border-color .3s var(--cvg-ease);
}
.cvg-reality-card:hover { transform: translateY(-4px); box-shadow: var(--cvg-shadow); border-color: transparent; }
.cvg-reality-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 52px; height: 52px; border-radius: 50%;
	background: rgba(11,77,120,.07); color: var(--cvg-navy); margin-bottom: 22px;
}
.cvg-reality-card h3 { font-size: 1.375rem; margin-bottom: 12px; }
.cvg-reality-card p { color: var(--cvg-muted); font-size: 1rem; margin: 0; line-height: 1.6; }

/* ---------- 9. HOW WE HELP (service cards) ----------------------------- */

.cvg-service-card {
	background: var(--cvg-white);
	border: 1px solid var(--cvg-line-soft);
	border-radius: var(--cvg-radius-lg);
	padding: 40px 34px;
	display: flex; flex-direction: column;
	transition: transform .3s var(--cvg-ease), box-shadow .3s var(--cvg-ease);
	position: relative;
	overflow: hidden;
}
.cvg-service-card::before {
	content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
	background: var(--cvg-gold); transform: scaleX(0); transform-origin: left;
	transition: transform .4s var(--cvg-ease);
}
.cvg-service-card:hover { transform: translateY(-5px); box-shadow: var(--cvg-shadow-lg); }
.cvg-service-card:hover::before { transform: scaleX(1); }
.cvg-service-num { font-family: var(--cvg-font-display); font-size: 1.5rem; font-style: italic; color: var(--cvg-gold-dark); margin-bottom: 18px; }
.cvg-service-card h3 { font-size: 1.5rem; margin-bottom: 14px; }
.cvg-service-card p { color: var(--cvg-muted); font-size: 1rem; line-height: 1.6; margin-bottom: 22px; flex: 1; }
.cvg-services-foot { text-align: center; margin-top: 56px; }

/* ---------- 10. WHY CLIENTS (2-col image) ------------------------------ */

.cvg-split { display: grid; gap: 56px; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) { .cvg-split { grid-template-columns: 1fr 1fr; gap: 80px; } }
.cvg-split.is-reverse .cvg-split-media { order: -1; }

.cvg-split-media { border-radius: var(--cvg-radius-lg); overflow: hidden; box-shadow: var(--cvg-shadow-lg); aspect-ratio: 4 / 5; }
.cvg-split-media img { width: 100%; height: 100%; object-fit: cover; }
.cvg-split-copy h2 { margin-bottom: 20px; }

.cvg-feature-list { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 16px; }
.cvg-feature-list li { display: flex; gap: 14px; align-items: flex-start; font-size: 1.0625rem; color: var(--cvg-ink); }
.cvg-feature-check {
	flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px; border-radius: 50%;
	background: rgba(229,182,74,.18); color: var(--cvg-gold-dark); margin-top: 2px;
}

/* ---------- 11. OUR APPROACH (timeline) -------------------------------- */

.cvg-timeline { display: grid; gap: 36px; grid-template-columns: 1fr; position: relative; }
@media (min-width: 768px)  { .cvg-timeline { grid-template-columns: repeat(2, 1fr); gap: 48px 40px; } }
@media (min-width: 1024px) { .cvg-timeline { grid-template-columns: repeat(4, 1fr); gap: 32px; } }

.cvg-step { position: relative; }
.cvg-step-num {
	font-family: var(--cvg-font-display); font-size: 1rem; font-weight: 600;
	letter-spacing: .1em; color: var(--cvg-gold-dark); margin-bottom: 18px;
	display: inline-flex; align-items: center; gap: 14px;
}
.cvg-step-dot {
	width: 14px; height: 14px; border-radius: 50%; background: var(--cvg-gold);
	box-shadow: 0 0 0 6px rgba(229,182,74,.18); flex-shrink: 0;
}
/* connecting line on desktop */
@media (min-width: 1024px) {
	.cvg-timeline::before {
		content: ''; position: absolute; top: 7px; left: 7px; right: 7px; height: 2px;
		background: linear-gradient(90deg, var(--cvg-gold) 0%, rgba(229,182,74,.3) 100%);
		z-index: 0;
	}
	.cvg-step { padding-right: 24px; }
}
.cvg-step h3 { font-size: 1.5rem; margin-bottom: 10px; }
.cvg-step p { color: var(--cvg-muted); font-size: 1rem; margin: 0; line-height: 1.6; }

/* ---------- 12. WHO WE SERVE (navy blocks) ----------------------------- */

.cvg-serve-grid { display: grid; gap: 0; grid-template-columns: 1fr; }
.cvg-serve-block {
	display: grid; grid-template-columns: 1fr; gap: 6px;
	padding: 32px 0;
	border-top: 1px solid var(--cvg-navy-line);
	transition: padding-left .3s var(--cvg-ease);
}
@media (min-width: 768px) { .cvg-serve-block { grid-template-columns: 0.9fr 1.4fr; gap: 40px; align-items: baseline; padding: 36px 0; } }
.cvg-serve-grid .cvg-serve-block:last-child { border-bottom: 1px solid var(--cvg-navy-line); }
.cvg-serve-block:hover { padding-left: 16px; }
.cvg-serve-block h3 {
	color: #fff; font-size: 1.625rem; margin: 0;
	display: flex; align-items: baseline; gap: 16px;
}
.cvg-serve-num { font-family: var(--cvg-font-body); font-size: .8125rem; font-weight: 600; letter-spacing: .12em; color: var(--cvg-gold); }
.cvg-serve-block p { margin: 0; color: rgba(255,255,255,.72); font-size: 1.0625rem; }

/* ---------- 13. TEAM --------------------------------------------------- */

.cvg-team-grid { display: grid; gap: 40px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .cvg-team-grid { grid-template-columns: 1fr 1fr; gap: 48px; } }
.cvg-team-card { display: flex; flex-direction: column; gap: 24px; }
@media (min-width: 480px) { .cvg-team-card { flex-direction: row; gap: 28px; align-items: flex-start; } }
.cvg-team-photo {
	flex-shrink: 0; width: 160px; height: 190px; border-radius: var(--cvg-radius-lg);
	overflow: hidden; background: var(--cvg-navy);
	display: flex; align-items: center; justify-content: center;
}
.cvg-team-photo img { width: 100%; height: 100%; object-fit: cover; }
.cvg-team-initials { font-family: var(--cvg-font-display); font-size: 3rem; color: rgba(255,255,255,.85); }
.cvg-team-name { font-size: 1.625rem; margin: 0 0 2px; }
.cvg-team-role { color: var(--cvg-gold-dark); font-size: .8125rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; margin-bottom: 14px; }
.cvg-team-bio { color: var(--cvg-muted); font-size: 1rem; line-height: 1.65; margin-bottom: 16px; }

/* ---------- 14. FIELD NOTES -------------------------------------------- */

.cvg-notes-grid { display: grid; gap: 28px; grid-template-columns: 1fr; margin-bottom: 56px; }
@media (min-width: 720px)  { .cvg-notes-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cvg-notes-grid { grid-template-columns: repeat(3, 1fr); } }
.cvg-note-card {
	background: var(--cvg-white); border: 1px solid var(--cvg-line-soft);
	border-radius: var(--cvg-radius-lg); padding: 34px 30px;
	display: flex; flex-direction: column; gap: 14px;
	transition: transform .3s var(--cvg-ease), box-shadow .3s var(--cvg-ease);
}
.cvg-note-card:hover { transform: translateY(-4px); box-shadow: var(--cvg-shadow); }
.cvg-note-tag { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--cvg-gold-dark); }
.cvg-note-card h3 { font-size: 1.5rem; margin: 0; line-height: 1.2; flex: 1; }
.cvg-note-more { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--cvg-navy); }

.cvg-newsletter {
	display: flex; flex-direction: column; gap: 16px; align-items: center; text-align: center;
	max-width: 560px; margin: 0 auto; padding-top: 16px;
}
.cvg-newsletter-form { display: flex; gap: 12px; width: 100%; max-width: 440px; }
.cvg-newsletter-form input[type=email] { flex: 1; }
@media (max-width: 520px) { .cvg-newsletter-form { flex-direction: column; } }

/* ---------- 15. FINAL CTA ---------------------------------------------- */

.cvg-final-cta { text-align: center; }
.cvg-final-cta h2 { max-width: 760px; margin: 0 auto 20px; color: #fff; }
.cvg-final-cta p { max-width: 600px; margin: 0 auto 36px; color: rgba(255,255,255,.82); font-size: 1.125rem; }
.cvg-final-cta .cvg-actions-row { justify-content: center; }

/* ---------- 16. FOOTER -------------------------------------------------- */

.cvg-site-footer { background: var(--cvg-navy-deep); color: rgba(255,255,255,.78); padding: 84px 0 32px; }
.cvg-site-footer a { color: rgba(255,255,255,.78); }
.cvg-site-footer a:hover { color: var(--cvg-gold); }
.cvg-footer-grid { display: grid; gap: 44px; margin-bottom: 56px; }
@media (min-width: 720px) { .cvg-footer-grid { grid-template-columns: 1.6fr 1fr 1fr 1.3fr; } }
.cvg-footer-brand .cvg-brand-mark { height: 56px; filter: brightness(0) invert(1); }
.cvg-footer-tagline { color: rgba(255,255,255,.62); font-size: .9375rem; margin-top: 18px; max-width: 320px; }
.cvg-footer-col h4 { color: var(--cvg-gold); font-family: var(--cvg-font-body); font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 20px; }
.cvg-footer-col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.cvg-footer-col a, .cvg-footer-col p { font-size: .9375rem; margin: 0; }
.cvg-footer-bottom { border-top: 1px solid var(--cvg-navy-line); padding-top: 24px; display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; color: rgba(255,255,255,.5); font-size: .8125rem; }
.cvg-social-row { display: flex; gap: 12px; }
.cvg-social-row a { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 1px solid var(--cvg-navy-line); border-radius: 50%; color: rgba(255,255,255,.8); transition: all .25s var(--cvg-ease); }
.cvg-social-row a:hover { background: var(--cvg-gold); color: var(--cvg-navy); border-color: var(--cvg-gold); }

/* =========================================================================
   HOMEPAGE — sections matching client master spec (v3)
   Hero · Ribbon · What We Do · What We Offer · Who We Serve ·
   Quotes · Approach · Final CTA
   ========================================================================= */

/* ---------- HERO type overrides (gradient/image live in §7 above) ------ */

.cvg-hero { background: var(--cvg-navy-deep); }
.cvg-hero h1 { font-weight: 400; text-shadow: 0 2px 24px rgba(0,30,48,0.45); }
.cvg-hero h1 em { color: var(--cvg-gold-light); }
.cvg-hero-sub { text-shadow: 0 1px 12px rgba(0,30,48,0.35); }

/* ---------- RIBBON (thin gold strip of services) ----------------------- */

.cvg-ribbon { background: var(--cvg-gold); padding: 18px var(--cvg-gutter); }
.cvg-ribbon-text {
	max-width: var(--cvg-container);
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0;
	font-family: var(--cvg-font-nav);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
	line-height: 1.4;
}
.cvg-ribbon-text span {
	padding: 0 18px;
	opacity: .92;
	white-space: nowrap;          /* don't break mid-name ever */
	border-left: 1px solid rgba(255,255,255,.32);
}
.cvg-ribbon-text span:first-child { border-left: 0; }

/* Tablet — 2 columns, vertical separators */
@media (max-width: 900px) {
	.cvg-ribbon { padding: 16px var(--cvg-gutter); }
	.cvg-ribbon-text { gap: 6px 0; font-size: 11.5px; letter-spacing: 0.16em; }
	.cvg-ribbon-text span { padding: 0 14px; }
}

/* Mobile — clean vertical stack, no dividers, centered */
@media (max-width: 600px) {
	.cvg-ribbon { padding: 18px 24px; }
	.cvg-ribbon-text {
		flex-direction: column;
		gap: 8px;
		font-size: 11px;
		letter-spacing: 0.16em;
	}
	.cvg-ribbon-text span {
		padding: 0;
		border-left: 0;
		text-align: center;
	}
}

/* ---------- WHAT WE DO (cream · 2-col image / copy) -------------------- */

.cvg-wwd {
	background: var(--cvg-cream);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative;
	overflow: hidden;
}
/* Warm/cool atmospheric washes — softens flatness without distraction */
.cvg-wwd::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 55% 75% at 105% -5%,  rgba(216,137,36,.18), transparent 60%),
		radial-gradient(ellipse 50% 65% at -5% 105%,  rgba(0,80,111,.14),  transparent 65%);
}
.cvg-wwd > .cvg-container { position: relative; z-index: 1; }
.cvg-wwd-grid { display: grid; gap: 60px; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) {
	.cvg-wwd-grid { grid-template-columns: 1fr 1fr; gap: clamp(60px, 8vw, 120px); }
}
.cvg-wwd-image {
	aspect-ratio: 1 / 1;
	background-color: var(--cvg-cream-deep);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}
.cvg-wwd-copy .cvg-eyebrow { color: var(--cvg-gold-dark); margin-bottom: 24px; }
.cvg-wwd-copy h2 { margin-bottom: 32px; color: var(--cvg-ink); }
.cvg-wwd-copy p { color: var(--cvg-muted); font-size: 16px; line-height: 1.8; max-width: 520px; }
.cvg-wwd-copy .cvg-btn { margin-top: 16px; }

/* ---------- WHAT WE OFFER (navy bg · 2x2 gold cards) ------------------- */

.cvg-offer {
	background: var(--cvg-navy);
	color: rgba(255,255,255,.85);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative;
	overflow: hidden;
	/* Premium layered atmosphere: radial spotlight + deeper edges + grain */
	background-image:
		radial-gradient(ellipse 70% 60% at 50% 0%, rgba(255,255,255,.06), transparent 60%),
		radial-gradient(ellipse 80% 80% at 100% 100%, rgba(216,137,36,.10), transparent 65%),
		linear-gradient(180deg, var(--cvg-navy) 0%, #003F5A 100%);
}
/* Subtle film grain */
.cvg-offer::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	opacity: .35;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.08 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	background-size: 220px;
}
/* Faint brand palm-ray watermark, anchored bottom-left */
.cvg-offer::after {
	content: '';
	position: absolute;
	left: -8%; bottom: -28%;
	width: 60%; aspect-ratio: 1;
	background: url('../images/convergent_Burst.svg') no-repeat center / contain;
	opacity: .05;
	pointer-events: none;
}
.cvg-offer > .cvg-container { position: relative; z-index: 1; }

.cvg-offer-head { max-width: 800px; margin: 0 auto 72px; text-align: center; position: relative; }
.cvg-offer-head .cvg-eyebrow {
	color: var(--cvg-gold);
	display: inline-flex; align-items: center; gap: 14px;
}
.cvg-offer-head .cvg-eyebrow::before,
.cvg-offer-head .cvg-eyebrow::after {
	content: '';
	width: 28px; height: 1px;
	background: var(--cvg-gold);
	opacity: .55;
}
.cvg-offer-head h2 { color: #fff; margin-bottom: 20px; }
.cvg-offer-head p { color: rgba(255,255,255,.75); font-size: 18px; margin: 0; }

/* 2×2 grid at desktop (4 service cards) */
.cvg-offer-grid { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 720px) { .cvg-offer-grid { grid-template-columns: 1fr 1fr; } }

/* Editorial service card — uses the Final CTA's atmospheric navy gradient.
   Warm gold radial top-left, deeper navy bottom-right, center wash. */
.cvg-offer-card {
	position: relative;
	display: flex; flex-direction: column;
	justify-content: flex-end;
	min-height: 380px;
	padding: 0;
	color: #fff;
	background:
		radial-gradient(ellipse 70% 90% at 15% 20%,  rgba(216,137,36,.22), transparent 60%),
		radial-gradient(ellipse 80% 70% at 85% 100%, rgba(0,80,111,.55),   transparent 60%),
		radial-gradient(ellipse 100% 80% at 50% 50%, rgba(0,55,80,.45),    transparent 70%),
		linear-gradient(180deg, var(--cvg-navy-deep) 0%, #001D2D 100%);
	border: 1px solid rgba(255,255,255,.10);
	overflow: hidden;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.10),
		inset 0 -2px 0 0 var(--cvg-gold),
		0 1px 2px rgba(0,30,50,.20);
	transition: transform .5s var(--cvg-ease), box-shadow .5s var(--cvg-ease), border-color .5s var(--cvg-ease);
}
/* Subtle paper grain inside the card for tactile depth */
.cvg-offer-card::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	opacity: .22;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	background-size: 200px;
}
/* Animated top accent line — appears on hover */
.cvg-offer-card::after {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.85), transparent);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .55s var(--cvg-ease);
	z-index: 2;
}
/* Editorial folio number — sized down to be a refined accent, not a hero */
.cvg-offer-card-folio {
	position: absolute;
	top: 30px;
	left: 38px;
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(3rem, 4vw, 4.5rem);
	line-height: 1;
	color: rgba(216, 137, 36, .55);
	letter-spacing: -0.02em;
	pointer-events: none;
	user-select: none;
	transition: color .5s var(--cvg-ease), transform .5s var(--cvg-ease);
	z-index: 2;
}

/* Brand burst watermark behind content — organic depth, rotates on hover */
.cvg-offer-card-burst {
	position: absolute;
	bottom: -40%;
	left: -22%;
	width: 80%;
	aspect-ratio: 1;
	background: rgba(216, 137, 36, .04);
	-webkit-mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	transition: transform .8s var(--cvg-ease), background .5s var(--cvg-ease);
	z-index: 1;
	pointer-events: none;
}

/* Body wrapper — pinned to the bottom so the folio breathes above */
.cvg-offer-card-body {
	position: relative;
	z-index: 2;
	padding: 0 38px 38px;
}

/* Molecule mark removed — folio is the only header element */

.cvg-offer-card h3 {
	color: #fff;
	font-size: clamp(1.5rem, 1vw + 1rem, 1.875rem);
	line-height: 1.1;
	margin: 0 0 14px;
}
.cvg-offer-card p {
	color: rgba(255,255,255,.78);
	font-size: 15px;
	line-height: 1.65;
	margin: 0 0 26px;
	padding-bottom: 22px;
	border-bottom: 1px solid rgba(216,137,36,.30);
}

/* "Learn More" — vibrant ORANGE link + animated hairline arrow */
.cvg-offer-more {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 0; border: 0;
	font-family: var(--cvg-font-nav);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.20em;
	text-transform: uppercase;
	color: #E58921;
	transition: gap .3s var(--cvg-ease), color .25s var(--cvg-ease);
}
.cvg-offer-more::after {
	content: '';
	display: inline-block;
	width: 24px; height: 1px;
	background: #E58921;
	transition: width .35s var(--cvg-ease), background .35s var(--cvg-ease);
}
.cvg-offer-more:hover { gap: 16px; color: #F39B36; }
.cvg-offer-more:hover::after { width: 44px; background: #F39B36; }

/* HOVER — gold bottom border thickens, folio brightens, mark rotates */
.cvg-offer-card:hover {
	transform: translateY(-8px);
	border-color: rgba(216,137,36,.35);
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.14),
		inset 0 -3px 0 0 var(--cvg-gold),
		0 32px 64px rgba(0,18,30,.55),
		0 8px 20px rgba(0,18,30,.30);
}
.cvg-offer-card:hover::after { transform: scaleX(1); }
.cvg-offer-card:hover .cvg-offer-card-folio {
	color: #E58921;
	transform: translate(4px, 2px);
}
.cvg-offer-card:hover .cvg-offer-card-burst {
	background: rgba(216, 137, 36, .10);
	transform: rotate(40deg) scale(1.05);
}

/* ----- EXPLORE TILE — 6th grid cell, brand statement ----- */
.cvg-offer-tile {
	position: relative;
	display: flex; flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: 380px;
	text-align: center;
	padding: 48px 36px;
	color: #fff;
	background:
		radial-gradient(ellipse 90% 90% at 50% 0%,   rgba(216,137,36,.32), transparent 60%),
		radial-gradient(ellipse 90% 90% at 50% 100%, rgba(0,30,55,.65),    transparent 70%),
		linear-gradient(180deg, #0F4A6A 0%, var(--cvg-navy-deep) 60%, #001D2D 100%);
	border: 1px solid rgba(216,137,36,.28);
	overflow: hidden;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.10),
		0 1px 2px rgba(0,30,50,.20);
	transition: transform .5s var(--cvg-ease), box-shadow .5s var(--cvg-ease), border-color .5s var(--cvg-ease);
}
/* Large gold burst dominating the background — the brand "statement" */
.cvg-offer-tile-burst {
	position: absolute;
	inset: -15%;
	background: rgba(216, 137, 36, .12);
	-webkit-mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	transition: transform 1s var(--cvg-ease), background .5s var(--cvg-ease);
	pointer-events: none;
	z-index: 0;
}
/* Brand molecule mark above the headline */
.cvg-offer-tile-mark {
	width: 56px; height: 56px;
	background: var(--cvg-gold);
	-webkit-mask: url('../images/convergent_icon.svg') no-repeat center / contain;
	mask: url('../images/convergent_icon.svg') no-repeat center / contain;
	margin-bottom: 24px;
	position: relative;
	z-index: 2;
	transition: transform .5s var(--cvg-ease);
}
.cvg-offer-tile-body { position: relative; z-index: 2; max-width: 320px; }
.cvg-offer-tile-eyebrow {
	display: block;
	font-family: var(--cvg-font-nav);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--cvg-gold);
	margin-bottom: 18px;
}
.cvg-offer-tile h3 {
	color: #fff;
	font-size: clamp(1.5rem, 1vw + 1rem, 2rem);
	line-height: 1.1;
	margin: 0 0 28px;
}
.cvg-offer-tile-cta { padding: 14px 26px; font-size: 12px; }

/* Hover — tile lifts + gold rotates dramatically + brand mark animates */
.cvg-offer-tile:hover {
	transform: translateY(-8px);
	border-color: rgba(216,137,36,.55);
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.14),
		0 32px 64px rgba(0,18,30,.55),
		0 8px 20px rgba(0,18,30,.30);
}
.cvg-offer-tile:hover .cvg-offer-tile-burst {
	transform: rotate(60deg) scale(1.05);
	background: rgba(216, 137, 36, .18);
}
.cvg-offer-tile:hover .cvg-offer-tile-mark { transform: rotate(25deg) scale(1.08); }

/* ---------- WHO WE SERVE (cream · sleek list with chevrons) ------------ */

.cvg-serve {
	background: var(--cvg-cream);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative;
	overflow: hidden;
}
/* Stronger warm/cool atmospheric washes — visible but never loud */
.cvg-serve::before {
	content: '';
	position: absolute; inset: 0;
	background:
		radial-gradient(ellipse 55% 75% at 105% 10%, rgba(216,137,36,.20), transparent 60%),
		radial-gradient(ellipse 50% 65% at -5% 95%,  rgba(0,80,111,.16),  transparent 65%);
	pointer-events: none;
}
.cvg-serve > .cvg-container { position: relative; }
.cvg-serve-head { max-width: 880px; margin-bottom: 48px; }
.cvg-serve-head .cvg-eyebrow {
	color: var(--cvg-navy);
	font-family: var(--cvg-font-nav);
	font-size: 13px;
	letter-spacing: 0.22em;
	font-weight: 600;
	margin-bottom: 28px;
}
.cvg-serve-head h2 { margin-bottom: 28px; font-weight: 400; }
.cvg-serve-head p {
	color: var(--cvg-ink);
	font-family: var(--cvg-font-body);
	font-size: 16px;
	line-height: 1.75;
	max-width: 720px;
	margin: 0;
}

.cvg-serve-list {
	list-style: none;
	padding: 0;
	margin: 0 0 44px;
	max-width: 1080px;
}
.cvg-serve-list li {
	display: flex;
	gap: 16px;
	align-items: center;
	padding: 24px 0;
	border-bottom: 1px solid rgba(23, 54, 74, .14);
	font-family: var(--cvg-font-body);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.2px;
	line-height: 1.5;
	color: var(--cvg-ink);
	transition: padding-left .35s var(--cvg-ease), color .25s var(--cvg-ease);
}
.cvg-serve-list li:hover { padding-left: 8px; }
.cvg-serve-list li::before {
	content: '';
	flex-shrink: 0;
	width: 14px;
	height: 14px;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'><path d='M5 3 L9 7 L5 11' stroke='%23D88924' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-repeat: no-repeat;
	background-position: center;
}

.cvg-serve-close {
	font-family: var(--cvg-font-body);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.75;
	color: var(--cvg-ink);
	max-width: 720px;
	margin: 0;
}
.cvg-serve-close em {
	font-style: normal;
	color: var(--cvg-ink);
	font-weight: 500;
}

/* ---------- WHAT CLIENTS EXPERIENCE (3x2 alternating tiles) ------------ */

.cvg-quotes {
	background: var(--cvg-navy);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative;
	overflow: hidden;
	/* Premium layered atmosphere */
	background-image:
		radial-gradient(ellipse 60% 90% at 100% 50%, rgba(216,137,36,.22), transparent 65%),
		radial-gradient(ellipse 60% 90% at 0% 30%, rgba(0,0,0,.30), transparent 65%),
		linear-gradient(180deg, #003F5A 0%, var(--cvg-navy) 60%, #003F5A 100%);
}
/* Subtle film grain */
.cvg-quotes::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	opacity: .3;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.08 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	background-size: 220px;
}
/* Giant decorative quote-mark watermark, top-left */
.cvg-quotes::after {
	content: '“';
	position: absolute;
	top: -110px; left: -10px;
	font-family: var(--cvg-font-display);
	font-size: clamp(360px, 36vw, 520px);
	line-height: 1;
	color: rgba(216,137,36,.08);
	pointer-events: none;
	user-select: none;
}
.cvg-quotes > .cvg-container { position: relative; z-index: 1; }
.cvg-quotes-head { max-width: 760px; margin: 0 0 56px; }
.cvg-quotes-head .cvg-eyebrow {
	color: var(--cvg-gold);
	display: inline-flex; align-items: center; gap: 14px;
}
.cvg-quotes-head .cvg-eyebrow::after {
	content: '';
	width: 56px; height: 1px;
	background: linear-gradient(90deg, var(--cvg-gold), transparent);
}
.cvg-quotes-head h2 { color: #fff; margin: 0; }

.cvg-quotes-head h2 {
	color: #fff;
	font-size: clamp(2rem, 2.5vw + 1rem, 3.2rem);
	line-height: 1.05;
	margin: 16px 0 0;
}
.cvg-quotes-head { text-align: center; margin: 0 auto 56px; max-width: 760px; }
.cvg-quotes-head .cvg-eyebrow::before,
.cvg-quotes-head .cvg-eyebrow::after { content: ''; display: none; }

/* Static 3×2 tile grid — alternating navy / gold backgrounds. The
   carousel variant was tried and reverted; don't reintroduce. */
.cvg-quotes-watermark {
	position: absolute;
	top: -40px; right: 4%;
	font-family: var(--cvg-font-display);
	font-size: clamp(220px, 28vw, 360px);
	line-height: 1;
	color: rgba(216,137,36,.10);
	pointer-events: none;
	user-select: none;
	z-index: 0;
}
.cvg-quotes-grid {
	display: grid; gap: 24px;
	grid-template-columns: 1fr;
	position: relative; z-index: 1;
}
@media (min-width: 720px)  { .cvg-quotes-grid { grid-template-columns: repeat(2, 1fr); gap: 28px; } }
@media (min-width: 1024px) { .cvg-quotes-grid { grid-template-columns: repeat(3, 1fr); gap: 28px; } }

.cvg-quote-tile {
	padding: clamp(32px, 3.5vw, 44px) clamp(26px, 3vw, 36px);
	position: relative;
	overflow: hidden;
	transition: transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease);
	display: flex; flex-direction: column; gap: 16px;
	min-height: 200px;
}
.cvg-quote-tile:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px -22px rgba(0,0,0,.40);
}
.cvg-quote-tile--navy {
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.10);
	color: #fff;
}
.cvg-quote-tile--gold {
	background: var(--cvg-gold);
	border: 1px solid var(--cvg-gold);
	color: #fff;
}
.cvg-quote-tile-mark {
	font-family: var(--cvg-font-display);
	font-size: 3rem;
	line-height: .6;
	color: rgba(255,255,255,.45);
	display: block;
}
.cvg-quote-tile--gold .cvg-quote-tile-mark { color: rgba(255,255,255,.75); }
.cvg-quote-tile-text {
	margin: 0;
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: clamp(1.05rem, .5vw + .9rem, 1.25rem);
	line-height: 1.4;
}
.cvg-quote-tile-attr {
	display: block;
	margin-top: auto;
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
	color: rgba(255,255,255,.78);
	font-style: normal;
}
.cvg-quote-tile--gold .cvg-quote-tile-attr { color: rgba(255,255,255,.90); }

/* ---------- OUR APPROACH (cream · 2-col copy / image) ------------------ */

.cvg-approach {
	background: var(--cvg-cream);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative;
	overflow: hidden;
}
/* Atmospheric warm/cool wash mirrored on the opposite axis from WWD */
.cvg-approach::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 55% 75% at -5% 0%,    rgba(0,80,111,.16),  transparent 65%),
		radial-gradient(ellipse 55% 75% at 105% 100%, rgba(216,137,36,.20), transparent 60%);
}
.cvg-approach > .cvg-container { position: relative; z-index: 1; }
.cvg-approach-grid { display: grid; gap: 60px; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 900px) {
	.cvg-approach-grid { grid-template-columns: 1fr 1fr; gap: clamp(60px, 8vw, 120px); }
}
.cvg-approach-copy .cvg-eyebrow { color: var(--cvg-gold-dark); margin-bottom: 24px; }
.cvg-approach-copy h2 { margin-bottom: 32px; color: var(--cvg-ink); }
.cvg-approach-copy p { color: var(--cvg-muted); font-size: 16px; line-height: 1.8; max-width: 520px; }
.cvg-approach-copy .cvg-btn { margin-top: 16px; }
.cvg-approach-image {
	aspect-ratio: 4 / 5;
	background-color: var(--cvg-cream-deep);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

/* ---------- FINAL CTA (dark · centered, premium atmosphere) ------------ */

.cvg-final-cta {
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(100px, 13vw, 180px) 0;
	text-align: center;
	position: relative;
	overflow: hidden;
	/* Layered radials for atmospheric depth */
	background-image:
		radial-gradient(ellipse 70% 90% at 15% 20%,  rgba(216,137,36,.22), transparent 60%),
		radial-gradient(ellipse 80% 70% at 85% 100%, rgba(0,80,111,.65),   transparent 60%),
		radial-gradient(ellipse 100% 80% at 50% 50%, rgba(0,55,80,.40),    transparent 70%),
		linear-gradient(180deg, var(--cvg-navy-deep) 0%, #001D2D 100%);
}
/* Film grain */
.cvg-final-cta::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	opacity: .35;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.10 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	background-size: 220px;
}
/* Subtle decorative gold horizontal accent line at very top of section */
.cvg-final-cta::after {
	content: '';
	position: absolute;
	left: 50%; top: 0;
	transform: translateX(-50%);
	width: 120px; height: 2px;
	background: linear-gradient(90deg, transparent, var(--cvg-gold), transparent);
	opacity: .8;
	pointer-events: none;
}
.cvg-final-cta > * { position: relative; z-index: 1; }
.cvg-final-cta .cvg-eyebrow {
	color: var(--cvg-gold);
	letter-spacing: 0.22em;
	display: inline-flex; align-items: center; gap: 16px;
}
.cvg-final-cta .cvg-eyebrow::before,
.cvg-final-cta .cvg-eyebrow::after {
	content: '';
	width: 32px; height: 1px;
	background: var(--cvg-gold);
	opacity: .6;
}
.cvg-final-cta h2 {
	color: #fff;
	max-width: 900px;
	margin: 0 auto 28px;
	font-size: clamp(2.25rem, 3vw + 1rem, 3.5rem);
}
.cvg-final-cta h2 em { color: var(--cvg-gold-light); }
.cvg-final-cta p {
	color: rgba(255,255,255,.82);
	max-width: 660px;
	margin: 0 auto 40px;
	font-size: 17px;
	line-height: 1.7;
}
.cvg-final-cta .cvg-actions-row { justify-content: center; }

/* ---------- FOOTER (slim service ribbon + copyright) ------------------- */

.cvg-site-footer {
	background: var(--cvg-navy-deep);
	background-image: linear-gradient(180deg, #001D2D 0%, var(--cvg-navy-deep) 100%);
	padding: 32px var(--cvg-gutter);
	color: rgba(255,255,255,.55);
	position: relative;
}
/* Gold hairline at very top, fading to transparent at edges */
.cvg-site-footer::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(216,137,36,.45), transparent);
}
.cvg-footer-inner { max-width: var(--cvg-container); margin: 0 auto; }
.cvg-footer-links {
	display: flex;
	flex-wrap: wrap;
	gap: 18px 28px;
	justify-content: center;
	font-family: var(--cvg-font-nav);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.cvg-footer-links a { color: rgba(255,255,255,.65); transition: color .25s var(--cvg-ease); text-decoration: none; }
.cvg-footer-links a:hover { color: var(--cvg-gold); }
.cvg-footer-copy {
	margin-top: 18px;
	text-align: center;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: rgba(255,255,255,.42);
}

/* =========================================================================
   404 + SEARCH RESULTS — branded
   ========================================================================= */

.cvg-404-hero,
.cvg-search-hero {
	position: relative;
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(140px, 16vw, 220px) 0 clamp(120px, 14vw, 180px);
	overflow: hidden;
	min-height: clamp(560px, 70vh, 720px);
	display: flex; align-items: center;
}
.cvg-404-hero-bg,
.cvg-search-hero-bg {
	position: absolute; inset: 0;
	background-position: center center; background-size: cover; background-repeat: no-repeat;
	filter: grayscale(0) contrast(.55) brightness(.85);
	z-index: 0;
}
.cvg-404-hero-overlay,
.cvg-search-hero-overlay {
	--cvg-hero-overlay-strength: .85;
	position: absolute; inset: 0; z-index: 0;
	background: radial-gradient(
		ellipse 130% 130% at 0% 0%,
		rgba(0, 58, 82, var(--cvg-hero-overlay-strength))               0%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .98))   28%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .85))   44%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .55))  62%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .16))  80%,
		transparent                                                     94%
	);
}
.cvg-404-hero > .cvg-container,
.cvg-search-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-404-hero-content,
.cvg-search-hero-content { max-width: 780px; }
.cvg-404-hero-folio {
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: clamp(4rem, 8vw, 7rem);
	line-height: 1;
	color: var(--cvg-gold);
	margin: 24px 0 14px;
	opacity: .9;
}
.cvg-404-hero-content h1,
.cvg-search-hero-content h1 {
	color: #fff;
	font-size: clamp(2.25rem, 4vw + 1rem, 3.8rem);
	line-height: 1.06;
	margin: 14px 0 22px;
	text-shadow: 0 2px 24px rgba(0,30,48,.4);
}
.cvg-404-hero-sub,
.cvg-search-hero-sub {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.0625rem, .4vw + 1rem, 1.2rem);
	line-height: 1.6;
	color: rgba(255,255,255,.85);
	max-width: 620px;
	margin: 0 0 32px;
}
.cvg-404-search {
	display: flex; align-items: center;
	gap: 0;
	max-width: 520px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.20);
	transition: background .25s, border-color .25s;
}
.cvg-404-search:focus-within {
	background: rgba(255,255,255,.14);
	border-color: var(--cvg-gold);
}
.cvg-404-search input {
	flex: 1; min-width: 0;
	background: transparent;
	border: 0;
	padding: 14px 18px;
	color: #fff;
	font-family: var(--cvg-font-body);
	font-size: 15px;
	outline: none;
}
.cvg-404-search input::placeholder { color: rgba(255,255,255,.55); }
.cvg-404-search button {
	display: inline-grid; place-items: center;
	width: 52px; height: 100%;
	background: var(--cvg-gold);
	border: 0;
	color: #fff;
	cursor: pointer;
	transition: background .2s;
	align-self: stretch;
}
.cvg-404-search button:hover { background: var(--cvg-gold-dark); }

/* Routes (404 escape grid) */
.cvg-404-routes {
	background: var(--cvg-cream);
	padding: clamp(80px, 10vw, 130px) 0;
}
.cvg-404-routes .cvg-section-head {
	max-width: 720px; margin: 0 auto 48px; text-align: center;
}
.cvg-404-routes .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-404-routes-grid {
	display: grid; gap: 24px; grid-template-columns: 1fr;
}
@media (min-width: 720px)  { .cvg-404-routes-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .cvg-404-routes-grid { grid-template-columns: repeat(3, 1fr); gap: 28px; } }

.cvg-404-route {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	transition: transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
	position: relative; overflow: hidden;
}
.cvg-404-route::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: 0;
	height: 2px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--cvg-ease);
}
.cvg-404-route:hover { transform: translateY(-4px); border-color: rgba(216,137,36,.30); box-shadow: 0 18px 40px -22px rgba(0,30,48,.20); }
.cvg-404-route:hover::after { transform: scaleX(1); }
.cvg-404-route-link {
	display: flex; flex-direction: column;
	padding: 32px 28px; height: 100%;
	color: var(--cvg-ink); text-decoration: none;
}
.cvg-404-route-icon {
	display: inline-grid; place-items: center;
	width: 52px; height: 52px;
	background: var(--cvg-cream-deep);
	color: var(--cvg-gold-dark);
	margin-bottom: 20px;
}
.cvg-404-route h3 {
	font-family: var(--cvg-font-display);
	font-size: 1.3rem; line-height: 1.18;
	color: var(--cvg-navy);
	margin: 0 0 12px;
}
.cvg-404-route p {
	color: var(--cvg-ink); font-size: 14.5px; line-height: 1.6;
	margin: 0 0 22px; flex: 1;
}
.cvg-404-route-cta {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--cvg-gold-dark);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	margin-top: auto;
}
.cvg-404-route:hover .cvg-404-route-cta { color: var(--cvg-navy); }
.cvg-404-route-cta svg { transition: transform .25s var(--cvg-ease); }
.cvg-404-route:hover .cvg-404-route-cta svg { transform: translateX(3px); }

/* Search results list */
.cvg-search-results {
	background: #fff;
	padding: clamp(80px, 10vw, 130px) 0;
}
.cvg-search-results > .cvg-container { max-width: 860px; }
.cvg-search-results-list {
	list-style: none; padding: 0; margin: 0;
}
.cvg-search-result {
	padding: 32px 0;
	border-bottom: 1px solid var(--cvg-line-soft);
}
.cvg-search-result:first-child { padding-top: 0; }
.cvg-search-result-type {
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	display: inline-block;
	margin-bottom: 10px;
}
.cvg-search-result-title {
	font-family: var(--cvg-font-display);
	font-size: 1.6rem; line-height: 1.15;
	margin: 0 0 12px;
}
.cvg-search-result-title a {
	color: var(--cvg-navy); text-decoration: none;
	transition: color .2s;
}
.cvg-search-result-title a:hover { color: var(--cvg-gold-dark); }
.cvg-search-result-excerpt {
	color: var(--cvg-muted);
	font-size: 15px; line-height: 1.65;
	margin: 0 0 14px;
}
.cvg-search-result-cta {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--cvg-gold-dark);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	text-decoration: none;
	transition: gap .25s var(--cvg-ease), color .25s var(--cvg-ease);
}
.cvg-search-result-cta:hover { color: var(--cvg-navy); gap: 12px; }
.cvg-search-result-cta svg { transition: transform .25s var(--cvg-ease); }
.cvg-search-result-cta:hover svg { transform: translateX(3px); }


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

/* ----- 1. Hero: full-bleed agave image + navy→orange duotone (sibling to home) ----- */
.cvg-about-hero {
	position: relative;
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(140px, 16vw, 220px) 0 clamp(130px, 15vw, 200px);
	overflow: hidden;
	min-height: clamp(620px, 82vh, 820px);
	display: flex; align-items: center;
}
/* Layer 1 — brand image kept in colour, lightly toned down so it sits
   gracefully under the navy wash. URL is set inline from CMB2 meta. */
.cvg-about-hero-bg {
	position: absolute; inset: 0;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	filter: grayscale(0) contrast(.55) brightness(.85);
	z-index: 0;
}
/* Layer 2 — navy radial pinned to top-left. Every alpha stop derives from
   the --cvg-hero-overlay-strength custom property so a single slider in the
   editor (0–95%) controls the entire wash, including the top-left corner. */
.cvg-about-hero-overlay {
	--cvg-hero-overlay-strength: .80;
	position: absolute; inset: 0;
	background: radial-gradient(
		ellipse 130% 130% at 0% 0%,
		rgba(0, 58, 82, var(--cvg-hero-overlay-strength))                            0%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .98))               28%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .85))               44%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .55))              62%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .16))              80%,
		transparent                                                                  94%
	);
	z-index: 0;
}
/* Use the standard site container so hero content aligns vertically with the
   sections below (no narrower override). Inner content is constrained instead. */
.cvg-about-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-about-hero-content { max-width: 780px; }

/* Breadcrumb pill — translucent dark on dark bg */
.cvg-breadcrumb-pill {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--cvg-font-nav);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255,255,255,.72);
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.18);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	padding: 8px 18px;
	border-radius: 999px;
	margin-bottom: 36px;
	transition: border-color .3s var(--cvg-ease), background .3s var(--cvg-ease);
}
.cvg-breadcrumb-pill:hover { border-color: rgba(216,137,36,.45); background: rgba(216,137,36,.08); }
.cvg-breadcrumb-pill a { color: #fff; transition: color .2s var(--cvg-ease); }
.cvg-breadcrumb-pill a:hover { color: var(--cvg-gold); }
.cvg-breadcrumb-pill span[aria-hidden] { color: rgba(255,255,255,.40); }

/* Tidii-style pill badge eyebrow — icon + uppercase text on glass */
.cvg-hero-badge {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 8px 16px 8px 8px;
	margin-bottom: 24px;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(216, 137, 36, .42);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-radius: 999px;
	font-family: var(--cvg-font-nav);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #fff;
	transition: border-color .3s var(--cvg-ease), background .3s var(--cvg-ease);
}
.cvg-hero-badge:hover { border-color: var(--cvg-gold); background: rgba(216, 137, 36, .12); }
.cvg-hero-badge-mark {
	display: inline-block;
	width: 24px; height: 24px;
	background: var(--cvg-gold);
	-webkit-mask: url('../images/convergent_icon.svg') no-repeat center / contain;
	mask: url('../images/convergent_icon.svg') no-repeat center / contain;
	flex-shrink: 0;
}

.cvg-about-hero h1 {
	color: #fff;
	font-size: clamp(2.5rem, 4.5vw + 1rem, 4.5rem);
	line-height: 1.04;
	margin-bottom: 28px;
	text-shadow: 0 2px 24px rgba(0,30,48,.4);
}
.cvg-about-hero-sub {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.0625rem, .4vw + 1rem, 1.25rem);
	line-height: 1.65;
	color: rgba(255,255,255,.85);
	max-width: 640px;
	margin: 0;
	text-shadow: 0 1px 12px rgba(0,30,48,.35);
}
/* Hero ornaments — tuned for dark bg */
.cvg-about-hero .cvg-ornament-mark {
	position: absolute; bottom: -10%; left: -6%;
	width: clamp(320px, 36vw, 520px);
	aspect-ratio: 1;
	background: rgba(216, 137, 36, .18);
	-webkit-mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	animation: cvg-spin-cw 160s linear infinite;
	z-index: 1;
}
.cvg-about-hero .cvg-ornament-circle {
	width: 100px; height: 100px;
	opacity: .9; z-index: 1;
	box-shadow: 0 12px 32px rgba(0, 30, 50, .35);
}
.cvg-about-hero .cvg-ornament-circle.is-tr { top: 12%; right: 6%; animation: cvg-drift 12s ease-in-out infinite; }
@media (max-width: 768px) { .cvg-about-hero .cvg-ornament-mark, .cvg-about-hero .cvg-ornament-circle { display: none; } }


/* ----- 2. Our Story: soft warm wash. Brand-aligned echo of the reference
   "faded but elegant" approach — pale cream base + barely-there diagonal
   gold/navy radials so the section has personality without competing with
   the heavier cream bands further down. ----- */
.cvg-about-story {
	background: #FBF7EE;
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative; overflow: hidden;
}
.cvg-about-story::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 65% 80% at 0% 0%,   rgba(216,137,36,.09), transparent 65%),
		radial-gradient(ellipse 75% 70% at 100% 100%, rgba(0,80,111,.06),  transparent 65%);
}
.cvg-about-story > .cvg-container { position: relative; z-index: 1; }
.cvg-about-story-grid {
	display: grid; gap: 60px; grid-template-columns: 1fr; align-items: center;
}
@media (min-width: 900px) {
	.cvg-about-story-grid { grid-template-columns: 1.15fr 1fr; gap: clamp(60px, 7vw, 96px); }
}
.cvg-about-story-copy .cvg-eyebrow { color: var(--cvg-gold-dark); margin-bottom: 24px; }
.cvg-about-story-copy h2 { margin-bottom: 32px; }
.cvg-about-story-body {
	color: var(--cvg-ink);
	font-family: var(--cvg-font-body);
	font-size: 16px;
	line-height: 1.8;
	max-width: 540px;
}
.cvg-about-story-body p { margin: 0 0 1.1em; }
.cvg-about-story-body p:last-child { margin: 0; }
.cvg-about-story-image {
	aspect-ratio: 4 / 5;
	background-color: var(--cvg-cream-deep);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	border-radius: 4px;
}
.cvg-about-story .cvg-ornament-mark {
	position: absolute; top: -8%; right: -10%;
	width: clamp(260px, 30vw, 420px);
	aspect-ratio: 1;
	background: rgba(216, 137, 36, .08);
	-webkit-mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	animation: cvg-spin-ccw 200s linear infinite;
}
.cvg-about-story .cvg-ornament-dot {
	position: absolute; top: 18%; left: 4%;
	width: 10px; height: 10px;
	border-radius: 50%;
	background: var(--cvg-gold);
	animation: cvg-pulse 4s ease-in-out infinite;
}
@media (max-width: 768px) { .cvg-about-story .cvg-ornament-mark, .cvg-about-story .cvg-ornament-dot { display: none; } }


/* ----- 3. Team: founder cards, photo left + body right ----- */
.cvg-about-team {
	background: var(--cvg-cream);
	padding: clamp(90px, 11vw, 160px) 0;
}
.cvg-about-team-grid {
	display: grid; gap: 32px; grid-template-columns: 1fr;
}
@media (min-width: 760px) { .cvg-about-team-grid { grid-template-columns: 1fr 1fr; gap: 40px; } }

.cvg-team-card-v2 {
	background: var(--cvg-white);
	border: 1px solid var(--cvg-line-soft);
	border-radius: 6px;
	overflow: hidden;
	display: flex; flex-direction: column;
	transition: transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
	position: relative;
}
.cvg-team-card-v2::after {
	content: ''; position: absolute; top: 0; left: 0; right: 0;
	height: 3px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .45s var(--cvg-ease);
}
.cvg-team-card-v2:hover {
	transform: translateY(-6px);
	border-color: transparent;
	box-shadow: 0 28px 60px rgba(0,30,55,.12);
}
.cvg-team-card-v2:hover::after { transform: scaleX(1); }

.cvg-team-card-v2-photo {
	aspect-ratio: 1 / 1;
	background: var(--cvg-navy);
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
	position: relative;
}
/* Floating contact pills, bottom-left of the photo. Email + LinkedIn.
   Translucent dark chips that fully fill in gold on hover. */
.cvg-team-card-v2-social {
	position: absolute;
	left: 16px; bottom: 16px;
	display: flex; gap: 8px;
	z-index: 2;
}
.cvg-team-card-v2-social a {
	display: inline-grid; place-items: center;
	width: 38px; height: 38px;
	background: rgba(0,30,48,.65);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 999px;
	color: #fff;
	text-decoration: none;
	transition: background .25s var(--cvg-ease), border-color .25s var(--cvg-ease), transform .25s var(--cvg-ease);
}
.cvg-team-card-v2-social a:hover {
	background: var(--cvg-gold);
	border-color: var(--cvg-gold);
	transform: translateY(-2px);
}
.cvg-team-card-v2-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--cvg-ease); }
.cvg-team-card-v2:hover .cvg-team-card-v2-photo img { transform: scale(1.04); }
.cvg-team-card-v2-initials {
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: 4.5rem;
	color: rgba(255,255,255,.65);
}

.cvg-team-card-v2-body { padding: 32px 36px 36px; }
.cvg-team-card-v2-role {
	display: block;
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 600; letter-spacing: 0.20em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	margin-bottom: 12px;
}
.cvg-team-card-v2-name {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.5rem, 1vw + 1rem, 2rem);
	color: var(--cvg-navy);
	margin: 0 0 16px;
	line-height: 1.1;
}
.cvg-team-card-v2-name a {
	color: inherit;
	text-decoration: none;
	transition: color .25s var(--cvg-ease);
}
.cvg-team-card-v2-name a:hover { color: var(--cvg-gold-dark); }
.cvg-team-card-v2-actions {
	display: flex; flex-wrap: wrap; gap: 18px 24px;
	align-items: center;
}
.cvg-team-card-v2-link--bio { color: var(--cvg-gold-dark); border-bottom-color: rgba(216,137,36,.45); }
.cvg-team-card-v2-link--bio:hover { color: var(--cvg-navy); border-bottom-color: var(--cvg-navy); }
.cvg-team-card-v2-bio {
	color: var(--cvg-muted);
	font-size: 15px;
	line-height: 1.7;
	margin-bottom: 24px;
	/* Render the full bio — no clamps, no overflow hiding. */
	display: block;
	overflow: visible;
}
.cvg-team-card-v2-bio p { margin: 0 0 1em; }
.cvg-team-card-v2-bio p:last-child { margin: 0; }
/* Equalize cards in the 2-up grid so a longer bio doesn't make one card
   look taller than the other on desktop. */
.cvg-team-card-v2 { height: 100%; }
.cvg-about-team-grid { align-items: stretch; }
.cvg-team-card-v2-body { display: flex; flex-direction: column; }
.cvg-team-card-v2-body .cvg-team-card-v2-link--bio { margin-top: auto; }
.cvg-team-card-v2-link {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--cvg-navy);
	border-bottom: 1px solid rgba(0,80,111,.25);
	padding-bottom: 4px;
	transition: color .25s var(--cvg-ease), border-color .25s var(--cvg-ease), gap .25s var(--cvg-ease);
}
.cvg-team-card-v2-link:hover { color: var(--cvg-gold-dark); border-color: var(--cvg-gold); gap: 12px; }


/* ----- 4. What We Believe: deeper cream so it reads as a distinct band
   from the Team section above (which uses the lighter --cvg-cream). ----- */
.cvg-about-believe {
	background: var(--cvg-cream-deep);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative; overflow: hidden;
}
.cvg-about-believe::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 55% 75% at 100% 0%, rgba(216,137,36,.18), transparent 60%),
		radial-gradient(ellipse 70% 50% at 0% 100%, rgba(0,80,111,.08),  transparent 65%);
}
.cvg-about-believe > .cvg-container { position: relative; z-index: 1; max-width: 1080px; }
.cvg-about-believe-head { max-width: 760px; margin-bottom: 56px; }
.cvg-about-believe-head .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-about-believe-head h2 { margin-bottom: 22px; }
.cvg-about-believe-head p {
	font-size: 16px; line-height: 1.75; color: var(--cvg-muted); max-width: 680px; margin: 0;
}
.cvg-about-believe .cvg-ornament-circle {
	width: 100px; height: 100px;
	opacity: .8; z-index: 0;
}
.cvg-about-believe .cvg-ornament-circle.is-bl { bottom: 6%; left: 4%; animation: cvg-drift-x 14s ease-in-out infinite reverse; }
@media (max-width: 768px) { .cvg-about-believe .cvg-ornament-circle { display: none; } }


/* ----- 5. Where We Work: deep navy, distinct from the duotone hero -----
   Hero owns the orange spectrum; this section stays cool — pure navy with
   a subtle blue vignette so the two sections read as visually distinct. */
.cvg-about-where {
	background: var(--cvg-navy-deep);
	color: rgba(255,255,255,.85);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative; overflow: hidden;
	background-image:
		radial-gradient(ellipse 90% 60% at 50% 0%,   rgba(11,77,120,.45), transparent 70%),
		radial-gradient(ellipse 70% 50% at 50% 100%, rgba(7,43,69,.55),   transparent 70%),
		linear-gradient(180deg, var(--cvg-navy-deep) 0%, #022538 100%);
}
.cvg-about-where::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	opacity: .3; mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.08 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	background-size: 220px;
}
.cvg-about-where > .cvg-container { position: relative; z-index: 1; }
.cvg-about-where .cvg-section-head { max-width: 800px; margin: 0 auto 72px; text-align: center; }
.cvg-about-where .cvg-eyebrow { color: var(--cvg-gold); }
.cvg-about-where h2 { color: #fff; margin-bottom: 20px; }

.cvg-about-where-grid {
	display: grid; gap: 24px; grid-template-columns: 1fr;
}
@media (min-width: 720px) { .cvg-about-where-grid { grid-template-columns: 1fr 1fr; } }

.cvg-about-where-block {
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.10);
	padding: 40px 36px;
	transition: transform .35s var(--cvg-ease), background .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
	position: relative;
	overflow: hidden;
}
.cvg-about-where-block::after {
	content: ''; position: absolute; bottom: 0; left: 0; right: 0;
	height: 2px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--cvg-ease);
}
.cvg-about-where-block:hover {
	transform: translateY(-4px);
	background: rgba(255,255,255,.07);
	border-color: rgba(216,137,36,.30);
}
.cvg-about-where-block:hover::after { transform: scaleX(1); }
.cvg-about-where-num {
	display: block;
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: 1.75rem;
	color: var(--cvg-gold);
	margin-bottom: 18px;
	line-height: 1;
}
.cvg-about-where-block h3 {
	color: #fff;
	font-size: clamp(1.375rem, .8vw + 1rem, 1.625rem);
	margin: 0 0 12px;
	line-height: 1.2;
}
.cvg-about-where-block p {
	color: rgba(255,255,255,.78);
	font-size: 15px; line-height: 1.6; margin: 0;
}
.cvg-about-where .cvg-ornament-mark {
	width: clamp(220px, 25vw, 360px);
	aspect-ratio: 1;
	background: url('../images/convergent_Burst.svg') no-repeat center / contain;
	opacity: .05;
}
.cvg-about-where .cvg-ornament-mark.is-tl { top: -6%; left: -4%; animation: cvg-spin-cw 200s linear infinite; }
.cvg-about-where .cvg-ornament-mark.is-br { bottom: -6%; right: -4%; background-image: url('../images/convergent_Center.svg'); animation: cvg-spin-ccw 240s linear infinite; }
@media (max-width: 768px) { .cvg-about-where .cvg-ornament-mark { display: none; } }


/* ----- 6. How We Show Up: same chevron-list pattern on cream ----- */
.cvg-about-showup {
	background: var(--cvg-cream);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative; overflow: hidden;
}
.cvg-about-showup::before {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 50% 70% at 0% 100%, rgba(0,80,111,.12), transparent 65%);
}
.cvg-about-showup > .cvg-container { position: relative; z-index: 1; max-width: 1080px; }
.cvg-about-showup .cvg-ornament-circle {
	width: 90px; height: 90px;
	opacity: .8; z-index: 0;
}
.cvg-about-showup .cvg-ornament-circle.is-tr { top: 12%; right: 4%; animation: cvg-drift 14s ease-in-out infinite; }
@media (max-width: 768px) { .cvg-about-showup .cvg-ornament-circle { display: none; } }


/* ---------- 17. PAGE HERO + BLOG (interior, simple) -------------------- */

.cvg-page-hero { background: var(--cvg-white); padding: clamp(72px,9vw,128px) 0 clamp(40px,5vw,64px); border-bottom: 1px solid var(--cvg-line); }
.cvg-page-hero-title { margin-bottom: 18px; }
.cvg-page-hero-sub { font-size: 1.15rem; max-width: 720px; color: var(--cvg-muted); margin: 0; }

.cvg-grid { display: grid; gap: 28px; }
.cvg-grid-3 { grid-template-columns: 1fr; }
@media (min-width: 720px) { .cvg-grid-3 { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .cvg-grid-3 { grid-template-columns: repeat(3,1fr); } }
.cvg-pagination { margin-top: 56px; display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
.cvg-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 14px; border-radius: var(--cvg-radius-sm); border: 1px solid var(--cvg-line); color: var(--cvg-navy); }
.cvg-pagination .page-numbers.current { background: var(--cvg-navy); color: #fff; border-color: var(--cvg-navy); }
.cvg-blog-tabs { margin-bottom: 40px; }
.cvg-blog-tabs-rail { display: flex; gap: 8px; flex-wrap: wrap; }
.cvg-blog-tab { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; border-radius: var(--cvg-radius-sm); border: 1px solid var(--cvg-line); font-size: 13px; color: var(--cvg-navy); background: var(--cvg-white); }
.cvg-blog-tab.is-active { background: var(--cvg-navy); color: #fff; border-color: var(--cvg-navy); }
.cvg-blog-tab-count { font-size: 11px; opacity: .7; }
.cvg-empty { text-align: center; padding: 64px 0; }
.cvg-breadcrumbs { padding: 18px 0; background: var(--cvg-bg); border-bottom: 1px solid var(--cvg-line); }
.cvg-breadcrumbs ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; font-size: .8125rem; color: var(--cvg-muted); }
.cvg-breadcrumbs li:not(:last-child)::after { content: '/'; margin-left: 8px; opacity: .5; }
.cvg-reading-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--cvg-gold); z-index: 60; transition: width .08s linear; }

/* =========================================================================
   INSIGHTS / BLOG — TiDii architecture ported to Convergent brand tokens
   - Hero: Convergent locked dark hero spec (convention #9) — same dimensions
     as About + Services + single service.
   - Featured card (cream bg), posts grid (white), single post body (2-col
     with content + author aside), tags, share row, related posts.
   - Hover animations: card lift 4px + image scale 1.04 + CTA arrow slide 3px.
   ========================================================================= */

/* ----- Insights index hero ----------------------------------------------- */
.cvg-insights-hero {
	position: relative;
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(140px, 16vw, 220px) 0 clamp(130px, 15vw, 200px);
	overflow: hidden;
	min-height: clamp(620px, 82vh, 820px);
	display: flex; align-items: center;
}
.cvg-insights-hero-bg {
	position: absolute; inset: 0;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	filter: grayscale(0) contrast(.55) brightness(.85);
	z-index: 0;
}
.cvg-insights-hero-overlay {
	--cvg-hero-overlay-strength: .80;
	position: absolute; inset: 0; z-index: 0;
	background: radial-gradient(
		ellipse 130% 130% at 0% 0%,
		rgba(0, 58, 82, var(--cvg-hero-overlay-strength))               0%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .98))   28%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .85))   44%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .55))  62%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .16))  80%,
		transparent                                                     94%
	);
}
.cvg-insights-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-insights-hero-content { max-width: 780px; }
.cvg-insights-hero-content h1 {
	color: #fff;
	font-size: clamp(2.5rem, 4.5vw + 1rem, 4.5rem);
	line-height: 1.04;
	margin-bottom: 28px;
	text-shadow: 0 2px 24px rgba(0,30,48,.4);
}
.cvg-insights-hero-sub {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.0625rem, .4vw + 1rem, 1.25rem);
	line-height: 1.65;
	color: rgba(255,255,255,.85);
	max-width: 640px;
	margin: 0 0 32px;
}
.cvg-insights-hero-cats {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; gap: 8px;
}
.cvg-insights-hero-cat {
	display: inline-flex; align-items: center;
	padding: 8px 16px;
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
	color: rgba(255,255,255,.85);
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 999px;
	text-decoration: none;
	transition: background .25s var(--cvg-ease), border-color .25s var(--cvg-ease), color .25s var(--cvg-ease);
}
.cvg-insights-hero-cat:hover,
.cvg-insights-hero-cat.is-current {
	background: var(--cvg-gold);
	border-color: var(--cvg-gold);
	color: #fff;
}

/* ----- Featured post (cream bg) ------------------------------------------ */
.cvg-blog-feature {
	background: var(--cvg-cream);
	padding: clamp(70px, 9vw, 130px) 0 clamp(50px, 6vw, 90px);
}
.cvg-blog-feature__card {
	display: grid; gap: 0;
	grid-template-columns: 1fr;
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	overflow: hidden;
	text-decoration: none;
	color: var(--cvg-ink);
	transition: transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
	position: relative;
}
@media (min-width: 768px) { .cvg-blog-feature__card { grid-template-columns: 1fr 1fr; } }
.cvg-blog-feature__card::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: 0;
	height: 3px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--cvg-ease);
}
.cvg-blog-feature__card:hover {
	transform: translateY(-4px);
	border-color: rgba(216,137,36,.30);
	box-shadow: 0 22px 50px -22px rgba(0,30,48,.22);
}
.cvg-blog-feature__card:hover::after { transform: scaleX(1); }
.cvg-blog-feature__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	margin: 0;
}
/* On desktop the grid is 2-col, so let the image fill the card's row height
   instead of locking to 4:3 (which leaves dead space below when the body
   column is taller). */
@media (min-width: 768px) {
	.cvg-blog-feature__media { aspect-ratio: auto; height: 100%; min-height: 100%; }
}
.cvg-blog-feature__img {
	width: 100%; height: 100%;
	object-fit: cover; display: block;
	transition: transform .6s var(--cvg-ease);
}
.cvg-blog-feature__card:hover .cvg-blog-feature__img { transform: scale(1.03); }
.cvg-blog-feature__placeholder {
	width: 100%; height: 100%;
	display: grid; place-items: center;
	background: linear-gradient(135deg, var(--cvg-cream-deep), var(--cvg-cream));
	color: var(--cvg-navy);
}
.cvg-blog-feature__badge {
	position: absolute; top: 20px; left: 20px;
	background: var(--cvg-gold);
	color: #fff;
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 700;
	letter-spacing: .18em; text-transform: uppercase;
	padding: 6px 14px;
	box-shadow: 0 6px 14px rgba(216,137,36,.35);
}
.cvg-blog-feature__body {
	padding: clamp(28px, 3vw, 48px);
	display: flex; flex-direction: column; justify-content: center;
}
.cvg-blog-feature__cat {
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 700;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	margin-bottom: 14px;
}
.cvg-blog-feature__title {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.6rem, 1.5vw + 1rem, 2.4rem);
	line-height: 1.1;
	color: var(--cvg-navy);
	margin: 0 0 16px;
}
.cvg-blog-feature__excerpt {
	color: var(--cvg-ink);
	font-size: 15.5px;
	line-height: 1.65;
	margin: 0 0 18px;
}
.cvg-blog-feature__meta {
	display: flex; gap: 8px; align-items: center;
	font-size: 13px; color: var(--cvg-muted);
	font-family: var(--cvg-font-body); letter-spacing: .02em;
	margin-bottom: 22px;
}
.cvg-blog-feature__card .cvg-btn { align-self: flex-start; }

/* ----- Posts grid (white bg) --------------------------------------------- */
.cvg-blog-grid {
	background: #fff;
	padding: clamp(70px, 9vw, 130px) 0 clamp(80px, 10vw, 140px);
}
.cvg-blog-grid .cvg-section-head {
	max-width: 760px; margin: 0 0 56px;
}
.cvg-blog-grid .cvg-eyebrow { color: var(--cvg-gold-dark); }

/* AJAX category filter bar — sits above the grid on /insights/. */
.cvg-insights-filter {
	display: flex; flex-wrap: wrap; gap: 10px;
	align-items: center; justify-content: center;
	margin: 0 0 48px;
	position: relative;
}
.cvg-insights-filter-pill {
	background: transparent;
	border: 1px solid var(--cvg-line);
	color: var(--cvg-navy);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	padding: 10px 18px;
	cursor: pointer;
	transition: background .2s, border-color .2s, color .2s, transform .2s;
	line-height: 1;
}
.cvg-insights-filter-pill:hover {
	border-color: var(--cvg-gold);
	color: var(--cvg-gold-dark);
}
.cvg-insights-filter-pill.is-active {
	background: var(--cvg-navy);
	border-color: var(--cvg-navy);
	color: #fff;
}
.cvg-insights-filter-spinner {
	display: none;
	width: 16px; height: 16px;
	border: 2px solid rgba(0,80,111,.15);
	border-top-color: var(--cvg-gold);
	border-radius: 999px;
	margin-left: 4px;
	animation: cvg-spin 0.6s linear infinite;
}
.cvg-insights-filter-spinner.is-visible { display: inline-block; }
@keyframes cvg-spin { to { transform: rotate(360deg); } }
[data-cvg-insights].is-loading [data-cvg-insights-grid] { opacity: .55; transition: opacity .2s; }

.cvg-insights-pagination { margin-top: 0; }
.cvg-insights-empty {
	grid-column: 1 / -1;
	text-align: center;
	padding: 56px 24px;
}
.cvg-posts-grid {
	display: grid; gap: 28px;
	grid-template-columns: 1fr;
}
@media (min-width: 640px)  { .cvg-posts-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cvg-posts-grid { grid-template-columns: repeat(3, 1fr); gap: 32px; } }

/* ----- Post card --------------------------------------------------------- */
.cvg-post-card {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	overflow: hidden;
	transition: transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
	position: relative;
}
.cvg-post-card::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: 0;
	height: 2px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--cvg-ease);
}
.cvg-post-card:hover {
	transform: translateY(-4px);
	border-color: rgba(216,137,36,.30);
	box-shadow: 0 18px 40px -22px rgba(0,30,48,.20);
}
.cvg-post-card:hover::after { transform: scaleX(1); }
.cvg-post-card__link {
	display: flex; flex-direction: column; height: 100%;
	color: var(--cvg-ink);
	text-decoration: none;
}
.cvg-post-card__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	margin: 0;
}
.cvg-post-card__img {
	width: 100%; height: 100%;
	object-fit: cover; display: block;
	transition: transform .6s var(--cvg-ease);
}
.cvg-post-card:hover .cvg-post-card__img { transform: scale(1.04); }
.cvg-post-card__placeholder {
	width: 100%; height: 100%;
	display: grid; place-items: center;
	background: linear-gradient(135deg, var(--cvg-cream-deep), var(--cvg-cream));
	color: var(--cvg-navy);
}
.cvg-post-card__cat {
	position: absolute; top: 14px; left: 14px;
	background: #fff;
	color: var(--cvg-navy);
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 700;
	letter-spacing: .14em; text-transform: uppercase;
	padding: 6px 12px;
	box-shadow: 0 4px 12px rgba(0,30,48,.14);
}
.cvg-post-card__body {
	padding: 24px 26px 22px;
	display: flex; flex-direction: column; flex: 1;
}
.cvg-post-card__meta {
	display: flex; gap: 6px; align-items: center;
	font-size: 12px; color: var(--cvg-muted);
	font-family: var(--cvg-font-body); letter-spacing: .02em;
	margin-bottom: 12px;
}
.cvg-post-card__dot { opacity: .5; }
.cvg-post-card__title {
	font-family: var(--cvg-font-display);
	font-size: 1.35rem;
	line-height: 1.18;
	color: var(--cvg-navy);
	margin: 0 0 12px;
}
.cvg-post-card__excerpt {
	color: var(--cvg-ink);
	font-size: 14.5px; line-height: 1.6;
	margin: 0 0 20px;
	flex: 1;
}
.cvg-post-card__foot {
	display: flex; justify-content: space-between; align-items: center;
	padding-top: 16px;
	border-top: 1px solid var(--cvg-line-soft);
}
.cvg-post-card__author {
	display: flex; align-items: center; gap: 9px;
	font-size: 13px; font-weight: 600; color: var(--cvg-ink);
}
.cvg-post-card__avatar { width: 28px; height: 28px; border-radius: 999px; }
.cvg-post-card__cta {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--cvg-gold-dark);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700;
	letter-spacing: .12em; text-transform: uppercase;
	transition: gap .25s var(--cvg-ease), color .25s var(--cvg-ease);
}
.cvg-post-card:hover .cvg-post-card__cta { color: var(--cvg-navy); gap: 12px; }
.cvg-post-card__cta svg { transition: transform .25s var(--cvg-ease); }
.cvg-post-card:hover .cvg-post-card__cta svg { transform: translateX(3px); }

/* ----- Pagination (TiDii pattern, Convergent palette) -------------------- */
.cvg-blog-grid .nav-links {
	display: flex; justify-content: center; flex-wrap: wrap; gap: 6px;
	margin-top: 56px;
}
.cvg-blog-grid .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px;
	padding: 0 14px;
	background: #fff;
	border: 1px solid var(--cvg-line);
	color: var(--cvg-navy);
	font-family: var(--cvg-font-nav);
	font-size: 13px; font-weight: 600; letter-spacing: .08em;
	text-decoration: none;
	transition: border-color .2s, color .2s, background .2s;
}
.cvg-blog-grid .page-numbers:hover {
	border-color: var(--cvg-gold);
	color: var(--cvg-gold-dark);
}
.cvg-blog-grid .page-numbers.current {
	background: var(--cvg-navy);
	border-color: var(--cvg-navy);
	color: #fff;
}

/* ----- Single post hero (locked spec, post featured image as bg) --------- */
.cvg-post-hero {
	position: relative;
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(140px, 16vw, 220px) 0 clamp(130px, 15vw, 200px);
	overflow: hidden;
	min-height: clamp(620px, 82vh, 820px);
	display: flex; align-items: center;
}
.cvg-post-hero-bg {
	position: absolute; inset: 0;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	filter: grayscale(0) contrast(.55) brightness(.85);
	z-index: 0;
}
.cvg-post-hero-overlay {
	--cvg-hero-overlay-strength: .82;
	position: absolute; inset: 0; z-index: 0;
	background: radial-gradient(
		ellipse 130% 130% at 0% 0%,
		rgba(0, 58, 82, var(--cvg-hero-overlay-strength))               0%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .98))   28%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .85))   44%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .55))  62%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .16))  80%,
		transparent                                                     94%
	);
}
.cvg-post-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-post-hero-content { max-width: 780px; }
.cvg-post-hero-cat {
	display: inline-flex; align-items: center; gap: 7px;
	padding: 7px 14px;
	background: rgba(216,137,36,.16);
	border: 1px solid rgba(216,137,36,.40);
	color: var(--cvg-gold);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700;
	letter-spacing: .14em; text-transform: uppercase;
	text-decoration: none;
	margin: 24px 0 22px;
	transition: background .25s var(--cvg-ease), color .25s var(--cvg-ease);
}
.cvg-post-hero-cat:hover { background: var(--cvg-gold); color: #fff; }
.cvg-post-hero-content h1 {
	color: #fff;
	font-size: clamp(2.5rem, 4.5vw + 1rem, 4.5rem);
	line-height: 1.04;
	margin: 0 0 28px;
	text-shadow: 0 2px 24px rgba(0,30,48,.4);
	max-width: 22ch;
}
.cvg-post-hero-meta {
	display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
	color: rgba(255,255,255,.82);
	font-size: 14px; font-weight: 500;
	font-family: var(--cvg-font-body);
}
.cvg-post-hero-author { display: inline-flex; align-items: center; gap: 10px; }
.cvg-post-hero-avatar {
	width: 36px; height: 36px; border-radius: 999px;
	border: 2px solid rgba(255,255,255,.25);
}

/* ----- Single post body (2-col: content + author aside) ------------------ */
.cvg-post-body {
	background: #fff;
	padding: clamp(70px, 9vw, 130px) 0 clamp(70px, 9vw, 120px);
}
.cvg-post-body__inner {
	display: grid; gap: 56px;
	grid-template-columns: 1fr;
	max-width: 1080px; margin: 0 auto;
}
@media (min-width: 960px) {
	.cvg-post-body__inner { grid-template-columns: minmax(0, 1fr) 280px; gap: 64px; }
}
.cvg-post-body__content {
	font-family: var(--cvg-font-body);
	font-size: 17px;
	line-height: 1.75;
	color: var(--cvg-ink);
	max-width: 720px;
}
.cvg-post-body__content > * + * { margin-top: 1.2em; }
.cvg-post-body__content h2 {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.6rem, 1vw + 1.2rem, 2rem);
	line-height: 1.15;
	color: var(--cvg-navy);
	margin: 2.2em 0 .6em;
}
.cvg-post-body__content h3 {
	font-family: var(--cvg-font-display);
	font-size: 1.4rem;
	line-height: 1.2;
	color: var(--cvg-navy);
	margin: 1.8em 0 .5em;
}
.cvg-post-body__content p { margin: 0 0 1.2em; }
.cvg-post-body__content ul,
.cvg-post-body__content ol { margin: 0 0 1.4em; padding-left: 26px; }
.cvg-post-body__content li { margin-bottom: .5em; }
.cvg-post-body__content a {
	color: var(--cvg-gold-dark);
	text-decoration: underline;
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
	transition: color .2s;
}
.cvg-post-body__content a:hover { color: var(--cvg-navy); }
.cvg-post-body__content blockquote {
	border-left: 4px solid var(--cvg-gold);
	padding: 18px 26px;
	background: var(--cvg-cream-deep);
	margin: 32px 0;
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: 1.25rem;
	line-height: 1.4;
	color: var(--cvg-navy);
}
.cvg-post-body__content img {
	max-width: 100%; height: auto;
	margin: 28px 0;
}

/* Tags + share */
/* Tags + share live INSIDE .cvg-post-body__content, where the prose `a`
   rule has higher specificity (0,1,1) than a single .class selector (0,1,0).
   We escape it by scoping these selectors with `.cvg-post-body__content`
   too, plus drop the prose underline/color. */
.cvg-post-tags {
	list-style: none; padding: 0; margin: 40px 0 24px;
	display: flex; flex-wrap: wrap; gap: 8px;
}
.cvg-post-body__content .cvg-post-tags a {
	display: inline-flex;
	padding: 6px 14px;
	background: var(--cvg-cream-deep);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 600; letter-spacing: .08em;
	color: var(--cvg-muted);
	text-decoration: none;
	text-decoration-thickness: 0;
	transition: background .2s, color .2s;
}
.cvg-post-body__content .cvg-post-tags a:hover {
	background: var(--cvg-gold);
	color: #fff;
}

.cvg-post-share {
	display: flex; align-items: center; justify-content: space-between;
	gap: 16px; flex-wrap: wrap;
	margin: 24px 0 0;
	padding: 20px 24px;
	background: var(--cvg-cream);
	border: 1px solid var(--cvg-line-soft);
}
.cvg-post-share__label {
	font-family: var(--cvg-font-nav);
	font-weight: 700; font-size: 13px;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cvg-navy);
}
.cvg-post-share__links { display: flex; gap: 8px; }
.cvg-post-body__content .cvg-post-share__btn {
	display: inline-grid; place-items: center;
	width: 40px; height: 40px;
	background: #fff;
	border: 1px solid var(--cvg-line);
	border-radius: 999px;
	font-family: var(--cvg-font-display);
	font-weight: 700; font-size: 14px;
	color: var(--cvg-navy);
	text-decoration: none;
	text-decoration-thickness: 0;
	transition: background .2s, border-color .2s, color .2s, transform .2s;
}
.cvg-post-body__content .cvg-post-share__btn:hover {
	background: var(--cvg-navy);
	border-color: var(--cvg-navy);
	color: #fff;
	transform: translateY(-2px);
}

/* Author card aside */
.cvg-post-author {
	display: flex; gap: 18px; align-items: flex-start;
	padding: 26px;
	background: var(--cvg-cream);
	border: 1px solid var(--cvg-line-soft);
	position: sticky; top: 100px;
	height: fit-content;
}
.cvg-post-author__avatar { width: 64px; height: 64px; border-radius: 999px; flex-shrink: 0; }
.cvg-post-author__body { flex: 1; }
.cvg-post-author__label {
	display: block;
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 700;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	margin-bottom: 6px;
}
.cvg-post-author__name {
	display: block;
	font-family: var(--cvg-font-display);
	font-size: 1.2rem;
	color: var(--cvg-navy);
	margin-bottom: 8px;
}
.cvg-post-author__bio {
	color: var(--cvg-muted);
	font-size: 13.5px; line-height: 1.6;
	margin: 0;
}

/* Related posts band */
.cvg-post-related {
	background: var(--cvg-cream);
	padding: clamp(80px, 10vw, 130px) 0;
}
.cvg-post-related .cvg-section-head {
	max-width: 720px; margin: 0 auto 48px; text-align: center;
}
.cvg-post-related .cvg-eyebrow { color: var(--cvg-gold-dark); }

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

/* ----- 1. Hero (locked spec per convention #9) --------------------------- */
.cvg-contact-hero {
	position: relative;
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(140px, 16vw, 220px) 0 clamp(130px, 15vw, 200px);
	overflow: hidden;
	min-height: clamp(620px, 82vh, 820px);
	display: flex; align-items: center;
}
.cvg-contact-hero-bg {
	position: absolute; inset: 0;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	filter: grayscale(0) contrast(.55) brightness(.85);
	z-index: 0;
}
.cvg-contact-hero-overlay {
	--cvg-hero-overlay-strength: .80;
	position: absolute; inset: 0; z-index: 0;
	background: radial-gradient(
		ellipse 130% 130% at 0% 0%,
		rgba(0, 58, 82, var(--cvg-hero-overlay-strength))                            0%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .98))               28%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .85))               44%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .55))              62%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .16))              80%,
		transparent                                                                  94%
	);
}
.cvg-contact-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-contact-hero-content { max-width: 780px; }
.cvg-contact-hero-content h1 {
	color: #fff;
	font-size: clamp(2.5rem, 4.5vw + 1rem, 4.5rem);
	line-height: 1.04;
	margin-bottom: 28px;
	text-shadow: 0 2px 24px rgba(0,30,48,.4);
}
.cvg-contact-hero-sub {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.0625rem, .4vw + 1rem, 1.25rem);
	line-height: 1.65;
	color: rgba(255,255,255,.85);
	max-width: 640px;
	margin: 0;
}

/* ----- 2. Ways to connect (3-card grid on cream) ------------------------- */
.cvg-contact-ways {
	background: var(--cvg-cream);
	/* #7: tighter bottom padding so the form section starts sooner */
	padding: clamp(90px, 11vw, 160px) 0 clamp(60px, 7vw, 110px);
	position: relative; overflow: hidden;
}
.cvg-contact-ways > .cvg-container { position: relative; z-index: 1; }
.cvg-contact-ways .cvg-section-head {
	max-width: 760px; margin: 0 auto 64px; text-align: center;
}
.cvg-contact-ways .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-contact-ways h2 { margin-bottom: 22px; }
/* #3: bump the botanical from .12 → .20 so it reads as ornament, not smudge */
.cvg-contact-ways .cvg-ornament-circle.is-tr {
	top: 5%; right: 3%; width: clamp(200px, 20vw, 300px); aspect-ratio: 1;
	background-size: contain; background-repeat: no-repeat; background-position: center;
	opacity: .20;
}
@media (max-width: 768px) { .cvg-contact-ways .cvg-ornament-circle { display: none; } }

.cvg-contact-ways-grid {
	display: grid; gap: 28px;
	grid-template-columns: 1fr;
}
@media (min-width: 720px)  { .cvg-contact-ways-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cvg-contact-ways-grid { grid-template-columns: repeat(3, 1fr); gap: 32px; } }

.cvg-contact-card {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	position: relative;
	overflow: hidden;
	transition: transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
}
.cvg-contact-card::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: 0;
	height: 3px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--cvg-ease);
}
.cvg-contact-card:hover {
	transform: translateY(-4px);
	border-color: rgba(216,137,36,.30);
	box-shadow: 0 18px 40px -22px rgba(0,30,48,.20);
}
.cvg-contact-card:hover::after { transform: scaleX(1); }

.cvg-contact-card-link {
	display: flex; flex-direction: column;
	padding: 36px 32px 32px;
	color: var(--cvg-ink);
	text-decoration: none;
	height: 100%;
}
.cvg-contact-card-icon {
	display: inline-grid; place-items: center;
	width: 56px; height: 56px;
	background: var(--cvg-cream-deep);
	color: var(--cvg-gold-dark);
	margin-bottom: 22px;
	transition: background .3s var(--cvg-ease), color .3s var(--cvg-ease);
}
.cvg-contact-card:hover .cvg-contact-card-icon {
	background: var(--cvg-gold);
	color: #fff;
}
.cvg-contact-card-title {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.45rem, .4vw + 1.25rem, 1.6rem);
	line-height: 1.18;
	color: var(--cvg-navy);
	margin: 0 0 14px;
}
.cvg-contact-card-body {
	color: var(--cvg-ink);
	font-size: 15px; line-height: 1.6;
	margin: 0 0 24px;
	flex: 1;
}
.cvg-contact-card-cta {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--cvg-gold-dark);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700;
	letter-spacing: .14em; text-transform: uppercase;
	transition: gap .25s var(--cvg-ease), color .25s var(--cvg-ease);
	margin-top: auto;
}
.cvg-contact-card:hover .cvg-contact-card-cta { color: var(--cvg-navy); gap: 14px; }
.cvg-contact-card-cta svg { transition: transform .25s var(--cvg-ease); }
.cvg-contact-card:hover .cvg-contact-card-cta svg { transform: translateX(3px); }

/* ----- 3. Form + sidebar (2-col on white) -------------------------------- */
.cvg-contact-form-wrap {
	background: #fff;
	padding: clamp(90px, 11vw, 160px) 0;
	scroll-margin-top: 100px;
}
.cvg-contact-form-grid {
	display: grid; gap: 48px;
	grid-template-columns: 1fr;
	max-width: 1100px; margin: 0 auto;
}
@media (min-width: 960px) {
	.cvg-contact-form-grid { grid-template-columns: minmax(0, 1fr) 320px; gap: 64px; }
}
.cvg-contact-form-main .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-contact-form-main h2 {
	font-size: clamp(1.75rem, 1.5vw + 1.2rem, 2.4rem);
	line-height: 1.1;
	margin: 14px 0 18px;
}
.cvg-contact-form-intro {
	color: var(--cvg-muted);
	font-size: 16px; line-height: 1.65;
	margin: 0 0 32px;
}
.cvg-contact-form-embed { margin-top: 8px; }
.cvg-contact-form-fallback {
	display: grid; gap: 22px;
	background: var(--cvg-cream);
	border: 1px solid var(--cvg-line-soft);
	padding: 36px clamp(28px, 3vw, 40px);
}
.cvg-contact-form-fallback label {
	display: block;
	font-family: var(--cvg-font-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--cvg-navy);
	margin-bottom: 8px;
}
.cvg-contact-form-fallback input,
.cvg-contact-form-fallback textarea {
	width: 100%;
	background: #fff;
	border: 1.5px solid rgba(0,30,48,.10);
	font-family: var(--cvg-font-body);
	font-size: 15.5px;
	padding: 14px 16px;
	color: var(--cvg-ink);
	border-radius: 0;
	transition: border-color .2s, box-shadow .2s;
}
.cvg-contact-form-fallback input:focus,
.cvg-contact-form-fallback textarea:focus {
	outline: none;
	border-color: var(--cvg-gold);
	box-shadow: 0 0 0 3px rgba(216,137,36,.15);
}
.cvg-contact-form-fallback textarea { min-height: 140px; resize: vertical; }
/* Make the submit anchor the form — full-width, slightly larger */
.cvg-contact-form-fallback button {
	width: 100%;
	padding: 19px 35px;
	font-size: 15px;
	letter-spacing: 0.6px;
	margin-top: 8px;
}
.cvg-contact-form-note {
	margin: 0;
	font-size: 12px;
	color: var(--cvg-muted);
	font-style: italic;
	padding: 12px 14px;
	background: rgba(0,30,48,.04);
	border-left: 2px solid var(--cvg-gold);
}
.cvg-contact-form-note a { color: var(--cvg-gold-dark); font-weight: 600; }

/* Sidebar */
.cvg-contact-form-side {
	display: flex; flex-direction: column; gap: 24px;
}
@media (min-width: 960px) {
	.cvg-contact-form-side { position: sticky; top: 110px; height: fit-content; }
}
.cvg-contact-side-block {
	background: var(--cvg-cream);
	border: 1px solid var(--cvg-line-soft);
	padding: 26px 28px;
}
/* The primary, actionable block — gold left border + slightly deeper bg
   so it visibly leads the sidebar stack. */
.cvg-contact-side-details {
	background: var(--cvg-cream-deep);
	border-left: 3px solid var(--cvg-gold);
	padding-left: 25px;
}
.cvg-contact-side-block h3 {
	font-family: var(--cvg-font-display);
	font-size: 1.25rem;
	color: var(--cvg-navy);
	margin: 0 0 10px;
}
.cvg-contact-side-block h4 {
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	margin: 0 0 14px;
}
.cvg-contact-side-block p {
	margin: 0;
	color: var(--cvg-ink);
	font-size: 14.5px; line-height: 1.6;
}
.cvg-contact-detail-list {
	list-style: none; padding: 0; margin: 0 0 18px;
	display: flex; flex-direction: column; gap: 12px;
}
.cvg-contact-detail-list li {
	display: flex; align-items: center; gap: 12px;
	font-size: 14.5px;
}
.cvg-contact-detail-list a {
	color: var(--cvg-navy);
	text-decoration: none;
	transition: color .2s;
}
.cvg-contact-detail-list a:hover { color: var(--cvg-gold-dark); }
.cvg-contact-detail-icon {
	display: inline-grid; place-items: center;
	width: 32px; height: 32px;
	background: #fff;
	border: 1px solid var(--cvg-line);
	color: var(--cvg-gold-dark);
	flex-shrink: 0;
}
.cvg-contact-area-note {
	font-size: 12.5px; line-height: 1.55;
	color: var(--cvg-muted);
	font-style: italic;
	margin: 0;
	padding-top: 14px;
	border-top: 1px solid var(--cvg-line-soft);
}
.cvg-contact-social-row {
	display: flex; gap: 8px;
}
.cvg-contact-social-row a {
	display: inline-grid; place-items: center;
	width: 36px; height: 36px;
	background: #fff;
	border: 1px solid var(--cvg-line);
	border-radius: 999px;
	color: var(--cvg-navy);
	transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.cvg-contact-social-row a:hover {
	background: var(--cvg-navy);
	border-color: var(--cvg-navy);
	color: #fff;
	transform: translateY(-2px);
}
/* Solo-social variant — text link with icon so a single social channel
   doesn't look lonely as one floating circle. */
.cvg-contact-social-solo {
	display: inline-flex; align-items: center; gap: 10px;
	color: var(--cvg-navy);
	font-family: var(--cvg-font-body);
	font-size: 14.5px;
	font-weight: 600;
	text-decoration: none;
	transition: color .2s, gap .25s var(--cvg-ease);
}
.cvg-contact-social-solo:hover { color: var(--cvg-gold-dark); gap: 14px; }
.cvg-contact-social-solo > svg:first-child {
	color: var(--cvg-gold-dark);
	padding: 8px;
	background: #fff;
	border-radius: 999px;
	box-sizing: content-box;
	width: 18px; height: 18px;
}
.cvg-contact-social-solo > svg:last-child { transition: transform .25s var(--cvg-ease); }
.cvg-contact-social-solo:hover > svg:last-child { transform: translateX(3px); }

/* =========================================================================
   SINGLE TEAM MEMBER (cvg_team)
   Hero is INTENTIONALLY compact (~280px) with a solid navy gradient — it's a
   title bar, not a hero. Convention #9's tall image-bg hero doesn't apply
   here because the full portrait + bio live below in the body's aside.
   ========================================================================= */
.cvg-team-single-hero {
	position: relative;
	background: linear-gradient(180deg, var(--cvg-navy-deep) 0%, #022538 100%);
	color: #fff;
	padding: clamp(70px, 7vw, 100px) 0 clamp(50px, 5vw, 70px);
	overflow: hidden;
	min-height: clamp(220px, 26vh, 320px);
	display: flex; align-items: center;
	border-bottom: 1px solid rgba(216,137,36,.30);
}
/* Subtle gold hairline at top, fading to transparent at edges (matches footer) */
.cvg-team-single-hero::before {
	content: '';
	position: absolute; top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(216,137,36,.45), transparent);
}
.cvg-team-single-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-team-single-hero-content { max-width: 780px; }
.cvg-team-single-hero-content h1 {
	color: #fff;
	font-size: clamp(1.85rem, 2.2vw + 1rem, 2.75rem);
	line-height: 1.08;
	margin: 18px 0 10px;
	text-shadow: 0 2px 16px rgba(0,30,48,.25);
}
.cvg-team-single-hero-role {
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
	color: var(--cvg-gold);
	margin: 0;
}

.cvg-team-single-body {
	background: #FBF7EE;
	padding: clamp(80px, 10vw, 140px) 0;
}
.cvg-team-single-grid {
	display: grid; gap: 60px; grid-template-columns: 1fr; align-items: start;
	max-width: 1080px; margin: 0 auto;
}
@media (min-width: 900px) {
	.cvg-team-single-grid { grid-template-columns: 1.4fr 1fr; gap: 72px; }
}
.cvg-team-single-prose {
	font-family: var(--cvg-font-body);
	font-size: 17px; line-height: 1.75; color: var(--cvg-ink);
}
.cvg-team-single-prose > * + * { margin-top: 1.2em; }
.cvg-team-single-prose h2 {
	font-family: var(--cvg-font-display); color: var(--cvg-navy);
	font-size: clamp(1.5rem, .8vw + 1rem, 1.85rem);
	margin: 2em 0 .5em;
}
.cvg-team-single-prose p { margin: 0 0 1.2em; }

.cvg-team-single-aside {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	padding: 28px;
	position: sticky; top: 100px;
	display: flex; flex-direction: column; gap: 22px;
}
.cvg-team-single-portrait {
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--cvg-cream);
}
.cvg-team-single-portrait-img,
.cvg-team-single-portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cvg-team-single-portrait-initials {
	display: grid; place-items: center;
	width: 100%; height: 100%;
	background: linear-gradient(135deg, var(--cvg-cream-deep), var(--cvg-cream));
	color: var(--cvg-navy);
	font-family: var(--cvg-font-display);
	font-size: clamp(3rem, 6vw, 5rem);
}
.cvg-team-single-label {
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	margin: 0 0 10px;
}
.cvg-team-single-focus ul {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; gap: 6px;
}
.cvg-team-single-focus li {
	display: inline-flex;
	padding: 5px 12px;
	background: var(--cvg-cream-deep);
	color: var(--cvg-navy);
	font-family: var(--cvg-font-body);
	font-size: 12.5px; font-weight: 600;
}
.cvg-team-single-contact ul {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 10px;
}
.cvg-team-single-contact li {
	display: flex; align-items: center; gap: 10px;
	font-size: 14.5px; color: var(--cvg-ink);
}
.cvg-team-single-contact a { color: var(--cvg-navy); text-decoration: none; }
.cvg-team-single-contact a:hover { color: var(--cvg-gold-dark); }
.cvg-team-single-contact-icon {
	display: inline-grid; place-items: center;
	width: 30px; height: 30px;
	background: var(--cvg-cream-deep);
	color: var(--cvg-gold-dark);
	flex-shrink: 0;
}

.cvg-team-single-related {
	background: var(--cvg-cream);
	padding: clamp(80px, 10vw, 130px) 0;
}
.cvg-team-single-related .cvg-section-head {
	max-width: 720px; margin: 0 auto 48px; text-align: center;
}
.cvg-team-single-related .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-team-single-related-grid {
	display: grid; gap: 24px; grid-template-columns: 1fr;
}
@media (min-width: 720px)  { .cvg-team-single-related-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .cvg-team-single-related-grid { grid-template-columns: repeat(3, 1fr); gap: 28px; } }

.cvg-team-related-card {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	overflow: hidden;
	transition: transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
}
.cvg-team-related-card:hover {
	transform: translateY(-4px);
	border-color: rgba(216,137,36,.30);
	box-shadow: 0 18px 40px -22px rgba(0,30,48,.20);
}
.cvg-team-related-card-link {
	display: flex; flex-direction: column;
	color: var(--cvg-ink);
	text-decoration: none;
}
.cvg-team-related-card-photo {
	aspect-ratio: 4 / 5;
	background: var(--cvg-cream-deep);
	overflow: hidden;
}
.cvg-team-related-card-photo img,
.cvg-team-related-card-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--cvg-ease); }
.cvg-team-related-card:hover .cvg-team-related-card-img { transform: scale(1.04); }
.cvg-team-related-card-initials {
	display: grid; place-items: center; width: 100%; height: 100%;
	color: var(--cvg-navy); font-family: var(--cvg-font-display); font-size: 2.5rem;
	background: linear-gradient(135deg, var(--cvg-cream-deep), var(--cvg-cream));
}
.cvg-team-related-card-body { padding: 22px 24px 26px; }
.cvg-team-related-card-role {
	font-family: var(--cvg-font-nav); font-size: 11px;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	margin-bottom: 8px; display: block;
}
.cvg-team-related-card-body h3 {
	font-family: var(--cvg-font-display);
	font-size: 1.3rem; line-height: 1.18; color: var(--cvg-navy);
	margin: 0 0 14px;
}
.cvg-team-related-card-cta {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--cvg-gold-dark);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	transition: gap .25s var(--cvg-ease), color .25s var(--cvg-ease);
}
.cvg-team-related-card:hover .cvg-team-related-card-cta { color: var(--cvg-navy); gap: 12px; }
.cvg-team-related-card-cta svg { transition: transform .25s var(--cvg-ease); }
.cvg-team-related-card:hover .cvg-team-related-card-cta svg { transform: translateX(3px); }

/* =========================================================================
   CASE STUDY — archive + single
   ========================================================================= */

/* Shared hero for both archive + single (same locked spec) */
.cvg-case-archive-hero,
.cvg-case-single-hero {
	position: relative;
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(140px, 16vw, 220px) 0 clamp(130px, 15vw, 200px);
	overflow: hidden;
	min-height: clamp(620px, 82vh, 820px);
	display: flex; align-items: center;
}
.cvg-case-archive-hero-bg,
.cvg-case-single-hero-bg {
	position: absolute; inset: 0;
	background-position: center center; background-size: cover; background-repeat: no-repeat;
	filter: grayscale(0) contrast(.55) brightness(.85);
	z-index: 0;
}
.cvg-case-archive-hero-overlay,
.cvg-case-single-hero-overlay {
	--cvg-hero-overlay-strength: .80;
	position: absolute; inset: 0; z-index: 0;
	background: radial-gradient(
		ellipse 130% 130% at 0% 0%,
		rgba(0, 58, 82, var(--cvg-hero-overlay-strength))               0%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .98))   28%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .85))   44%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .55))  62%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .16))  80%,
		transparent                                                     94%
	);
}
.cvg-case-archive-hero > .cvg-container,
.cvg-case-single-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-case-archive-hero-content,
.cvg-case-single-hero-content { max-width: 780px; }
/* Editorial dateline above the story blocks: client (small caps) on top,
   sector (italic gold serif) below. Replaces the old in-hero meta line. */
.cvg-case-story-meta {
	margin: 0 0 clamp(40px, 5vw, 64px);
	padding-bottom: clamp(28px, 3vw, 40px);
	border-bottom: 1px solid rgba(0,30,48,.10);
	position: relative;
}
.cvg-case-story-meta::before {
	content: ''; display: block;
	width: 48px; height: 3px;
	background: var(--cvg-gold);
	margin: 0 0 22px;
}
.cvg-case-story-meta-client {
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	margin: 0 0 10px;
}
.cvg-case-story-meta-sector {
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: clamp(1.25rem, .8vw + 1rem, 1.7rem);
	line-height: 1.25;
	color: var(--cvg-navy);
	margin: 0;
}
.cvg-case-archive-hero-content h1,
.cvg-case-single-hero-content h1 {
	color: #fff;
	font-size: clamp(2.5rem, 4.5vw + 1rem, 4.5rem);
	line-height: 1.04;
	margin: 0 0 28px;
	text-shadow: 0 2px 24px rgba(0,30,48,.4);
}
.cvg-case-archive-hero-sub,
.cvg-case-single-hero-sub {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.0625rem, .4vw + 1rem, 1.25rem);
	line-height: 1.65;
	color: rgba(255,255,255,.85);
	max-width: 640px;
	margin: 0;
}

/* Metrics row */
.cvg-case-metrics {
	background: var(--cvg-cream);
	padding: clamp(50px, 6vw, 90px) 0;
	border-bottom: 1px solid var(--cvg-line-soft);
}
.cvg-case-metrics-list {
	list-style: none; padding: 0; margin: 0;
	display: grid; gap: 32px;
	grid-template-columns: 1fr;
	text-align: center;
}
@media (min-width: 640px)  { .cvg-case-metrics-list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cvg-case-metrics-list { grid-template-columns: repeat(4, 1fr); } }
.cvg-case-metrics-value {
	display: block;
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: clamp(2.5rem, 3vw + 1rem, 3.5rem);
	color: var(--cvg-gold-dark);
	line-height: 1;
	margin-bottom: 12px;
}
.cvg-case-metrics-label {
	font-family: var(--cvg-font-body);
	font-size: 13px; color: var(--cvg-muted);
	line-height: 1.5;
}

/* Story blocks */
.cvg-case-story {
	background: #FBF7EE;
	padding: clamp(80px, 10vw, 130px) 0;
}
.cvg-case-story > .cvg-container {
	max-width: 840px;
}
.cvg-case-story-block {
	margin: 0 0 clamp(50px, 6vw, 80px);
}
.cvg-case-story-block:last-child { margin-bottom: 0; }
.cvg-case-story-head {
	display: flex; align-items: baseline; gap: 16px;
	margin-bottom: 22px;
	padding-bottom: 16px;
	border-bottom: 2px solid var(--cvg-gold);
}
.cvg-case-story-folio {
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: 2rem;
	color: var(--cvg-gold);
	line-height: 1;
}
.cvg-case-story-head .cvg-eyebrow { color: var(--cvg-navy); margin: 0; }
.cvg-case-story-body {
	font-family: var(--cvg-font-body);
	font-size: 17px; line-height: 1.75;
}
.cvg-case-story-body p { margin: 0 0 1.2em; }
.cvg-case-story-body p:last-child { margin-bottom: 0; }

/* Pull-quote band */
.cvg-case-quote-band {
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(70px, 9vw, 120px) 0;
	position: relative;
}
.cvg-case-quote-band > .cvg-container { max-width: 880px; text-align: center; }
.cvg-case-quote-band figure { margin: 0; }
.cvg-case-quote {
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: clamp(1.5rem, 1.5vw + 1rem, 2.1rem);
	line-height: 1.4;
	color: #fff;
	margin: 0 0 24px;
	padding: 0;
	border: 0;
	background: transparent;
	text-shadow: 0 2px 24px rgba(0,30,48,.3);
}
.cvg-case-quote::before { content: '"'; font-size: 2em; color: var(--cvg-gold); line-height: 0; vertical-align: -.1em; margin-right: .12em; }
.cvg-case-quote::after { content: '"'; font-size: 2em; color: var(--cvg-gold); line-height: 0; vertical-align: -.4em; margin-left: .08em; }
.cvg-case-quote-attr {
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
	color: rgba(255,255,255,.75);
}

/* Related case studies + archive grid */
.cvg-case-related,
/* ---- Case studies archive: editor's note band between hero and grid ---- */
.cvg-case-archive-note {
	background: var(--cvg-cream-deep);
	padding: clamp(56px, 7vw, 84px) 0;
	border-bottom: 1px solid rgba(0,30,48,.06);
	position: relative;
	overflow: hidden;
}
.cvg-case-archive-note-inner {
	max-width: 780px;
	margin: 0 auto;
	text-align: center;
	position: relative;
}
.cvg-case-archive-note .cvg-eyebrow {
	color: var(--cvg-gold-dark);
	display: inline-block;
	margin: 0 0 14px;
}
.cvg-case-archive-note h2 {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.6rem, 1.6vw + 1rem, 2.4rem);
	line-height: 1.12;
	color: var(--cvg-navy);
	margin: 0 0 22px;
}
.cvg-case-archive-note p {
	font-size: clamp(1rem, .3vw + .95rem, 1.1rem);
	line-height: 1.7;
	color: var(--cvg-ink);
	margin: 0 auto;
	max-width: 680px;
}

/* ---- Case studies archive: pillar chip on each card ---- */
.cvg-case-related-card-pillar {
	display: inline-block;
	font-family: var(--cvg-font-nav);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cvg-navy);
	background: rgba(0,80,111,.08);
	padding: 5px 10px;
	margin: 0 0 12px;
	border-radius: 2px;
}

.cvg-case-archive-grid {
	background: var(--cvg-cream);
	padding: clamp(80px, 10vw, 130px) 0;
}
.cvg-case-related .cvg-section-head {
	max-width: 720px; margin: 0 auto 48px; text-align: center;
}
.cvg-case-related .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-case-related-grid {
	display: grid; gap: 28px; grid-template-columns: 1fr;
}
@media (min-width: 640px)  { .cvg-case-related-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .cvg-case-related-grid { grid-template-columns: repeat(3, 1fr); gap: 32px; } }

.cvg-case-related-card {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	overflow: hidden;
	position: relative;
	transition: transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
}
.cvg-case-related-card::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: 0;
	height: 3px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--cvg-ease);
}
.cvg-case-related-card:hover {
	transform: translateY(-4px);
	border-color: rgba(216,137,36,.30);
	box-shadow: 0 18px 40px -22px rgba(0,30,48,.20);
}
.cvg-case-related-card:hover::after { transform: scaleX(1); }
.cvg-case-related-card-link {
	display: flex; flex-direction: column; height: 100%;
	color: var(--cvg-ink); text-decoration: none;
}
.cvg-case-related-card-media {
	margin: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}
.cvg-case-related-card-media img,
.cvg-case-related-card-img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .6s var(--cvg-ease);
}
.cvg-case-related-card:hover .cvg-case-related-card-img { transform: scale(1.04); }
.cvg-case-related-card-body {
	padding: 26px 28px 28px;
	display: flex; flex-direction: column; flex: 1;
}
.cvg-case-related-card-folio {
	font-family: var(--cvg-font-display); font-style: italic;
	color: var(--cvg-gold-dark);
	font-size: 1.3rem; line-height: 1;
	margin-bottom: 12px; display: block;
}
.cvg-case-related-card-client {
	font-family: var(--cvg-font-nav); font-size: 11px;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	margin-bottom: 6px; display: block;
}
.cvg-case-related-card-body h3 {
	font-family: var(--cvg-font-display);
	font-size: 1.3rem; line-height: 1.18; color: var(--cvg-navy);
	margin: 0 0 12px;
}
.cvg-case-related-card-body p {
	color: var(--cvg-ink); font-size: 14.5px; line-height: 1.6;
	margin: 0 0 20px; flex: 1;
}
.cvg-case-related-card-cta {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--cvg-gold-dark);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	transition: gap .25s var(--cvg-ease), color .25s var(--cvg-ease);
	margin-top: auto;
}
.cvg-case-related-card:hover .cvg-case-related-card-cta { color: var(--cvg-navy); gap: 12px; }
.cvg-case-related-card-cta svg { transition: transform .25s var(--cvg-ease); }
.cvg-case-related-card:hover .cvg-case-related-card-cta svg { transform: translateX(3px); }

/* =========================================================================
   TRUST STRIP — homepage partners
   ========================================================================= */
.cvg-trust-strip {
	background: var(--cvg-cream);
	padding: clamp(36px, 5vw, 64px) 0;
	border-bottom: 1px solid rgba(0,30,48,.06);
}
.cvg-trust-strip-inner {
	display: grid; gap: 20px;
	align-items: center;
	text-align: center;
}
@media (min-width: 900px) {
	.cvg-trust-strip-inner { grid-template-columns: auto 1fr; gap: 36px; text-align: left; }
}
.cvg-trust-strip-eyebrow {
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
	color: var(--cvg-gold-dark);
	white-space: nowrap;
}
.cvg-trust-strip-list {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; justify-content: center;
	gap: clamp(20px, 4vw, 56px);
	align-items: center;
}
@media (min-width: 900px) { .cvg-trust-strip-list { justify-content: flex-start; } }
.cvg-trust-strip-wordmark {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.05rem, .4vw + 1rem, 1.3rem);
	color: var(--cvg-navy);
	letter-spacing: .01em;
	opacity: .75;
	transition: opacity .3s var(--cvg-ease);
}
.cvg-trust-strip li:hover .cvg-trust-strip-wordmark { opacity: 1; }
.cvg-trust-strip-logo {
	max-height: 44px; width: auto; display: block;
	filter: grayscale(1); opacity: .6;
	transition: filter .3s var(--cvg-ease), opacity .3s var(--cvg-ease);
}
.cvg-trust-strip li:hover .cvg-trust-strip-logo { filter: grayscale(0); opacity: 1; }

/* =========================================================================
   FINAL CTA — proof element (right column when set)
   ========================================================================= */
.cvg-final-cta-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 56px;
	align-items: center;
}
/* Final CTA always renders as a single-column centered block — same layout
   on every page including the homepage (the 2-col "has-proof" variant
   was tried and reverted; don't reintroduce). */
.cvg-final-cta .cvg-final-cta-grid { grid-template-columns: 1fr; }
.cvg-final-cta .cvg-final-cta-copy { text-align: center; max-width: 760px; margin: 0 auto; }
.cvg-searchform { display: flex; gap: 10px; max-width: 480px; }
.cvg-searchform input[type=search] { flex: 1; }
input[type=text], input[type=email], input[type=tel], input[type=url], textarea, select {
	width: 100%; padding: 14px 16px; border: 1px solid var(--cvg-line); border-radius: var(--cvg-radius-sm);
	font: inherit; background: var(--cvg-white); color: var(--cvg-ink);
}
input:focus, textarea:focus, select:focus { outline: 2px solid rgba(229,182,74,.5); outline-offset: 1px; border-color: var(--cvg-gold); }
textarea { min-height: 140px; }
label { display: block; font-size: .8125rem; font-weight: 600; letter-spacing: .04em; margin-bottom: 6px; color: var(--cvg-navy); }

/* =========================================================================
   BRAND ORNAMENTS — tasteful animated marks reinforcing the brand identity.
   Slow, restrained motion; killed entirely for users with reduced-motion.
   ========================================================================= */

@keyframes cvg-spin-cw  { from { transform: rotate(0deg);   } to { transform: rotate(360deg);  } }
@keyframes cvg-spin-ccw { from { transform: rotate(0deg);   } to { transform: rotate(-360deg); } }
@keyframes cvg-drift {
	0%, 100% { transform: translate3d(0, 0, 0); }
	50%      { transform: translate3d(0, -14px, 0); }
}
@keyframes cvg-drift-x {
	0%, 100% { transform: translate3d(0, 0, 0); }
	50%      { transform: translate3d(12px, -8px, 0); }
}

.cvg-ornament {
	position: absolute;
	pointer-events: none;
	user-select: none;
	will-change: transform;
}

/* Botanical circle ornaments (round photo crops) */
.cvg-ornament-circle {
	border-radius: 50%;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	box-shadow: 0 12px 32px rgba(0, 30, 50, .18);
	opacity: .9;
}

/* --- WHAT WE OFFER (navy): 2 small drifting brand circles in top corners --- */
.cvg-offer .cvg-ornament-circle {
	width: 90px; height: 90px;
	opacity: .55;
	z-index: 0;
}
.cvg-offer .cvg-ornament-circle.is-tl {
	top: 7%; left: 4%;
	animation: cvg-drift 11s ease-in-out infinite;
}
.cvg-offer .cvg-ornament-circle.is-tr {
	top: 10%; right: 5%;
	animation: cvg-drift-x 13s ease-in-out infinite;
}
@media (max-width: 900px) { .cvg-offer .cvg-ornament-circle { display: none; } }

/* --- WHAT CLIENTS EXPERIENCE: two brand marks rotating in opposing directions - */
.cvg-quotes .cvg-ornament-mark {
	bottom: -8%; right: -6%;
	width: clamp(280px, 32vw, 460px);
	aspect-ratio: 1;
	background: url('../images/convergent_Center.svg') no-repeat center / contain;
	opacity: .10;
	animation: cvg-spin-cw 120s linear infinite;
}
.cvg-quotes .cvg-ornament-mark.is-tl {
	top: -8%; left: -6%;
	bottom: auto; right: auto;
	width: clamp(220px, 26vw, 380px);
	background-image: url('../images/convergent_Burst.svg');
	opacity: .07;
	animation: cvg-spin-ccw 180s linear infinite;
}
@media (max-width: 768px) { .cvg-quotes .cvg-ornament-mark { display: none; } }

/* --- WHAT WE OFFER: subtle brand burst marks anchored at edges --- */
.cvg-offer .cvg-ornament-mark {
	width: clamp(220px, 28vw, 400px);
	aspect-ratio: 1;
	background: url('../images/convergent_Burst.svg') no-repeat center / contain;
	opacity: .03;
	animation: cvg-spin-ccw 200s linear infinite;
}
.cvg-offer .cvg-ornament-mark.is-br { bottom: -6%; right: -5%; }
.cvg-offer .cvg-ornament-mark.is-tr { top: -8%; right: 4%; left: auto; bottom: auto; opacity: .02; animation: cvg-spin-cw 160s linear infinite; }
.cvg-offer .cvg-ornament-mark.is-bl { bottom: -6%; left: -5%; right: auto; top: auto; background-image: url('../images/convergent_Center.svg'); opacity: .03; animation: cvg-spin-cw 220s linear infinite; }
@media (max-width: 768px) { .cvg-offer .cvg-ornament-mark { display: none; } }

/* --- Shared cream-section paper grain (very subtle, premium tactile feel) - */
.cvg-wwd::after,
.cvg-serve::after,
.cvg-approach::after {
	content: '';
	position: absolute; inset: 0;
	pointer-events: none;
	opacity: .12;
	mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1  0 0 0 0 0.2  0 0 0 0 0.3  0 0 0 0.18 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
	background-size: 240px;
}

/* --- WHO WE SERVE (cream): two botanical circles drifting in opposite corners --- */
.cvg-serve .cvg-ornament-circle {
	width: 110px; height: 110px;
	opacity: .85;
	z-index: 0;
}
.cvg-serve .cvg-ornament-circle.is-tr {
	top: 12%; right: 5%;
	animation: cvg-drift 12s ease-in-out infinite;
}
.cvg-serve .cvg-ornament-circle.is-bl {
	bottom: 10%; left: 4%;
	width: 84px; height: 84px;
	animation: cvg-drift-x 14s ease-in-out infinite reverse;
}
@media (max-width: 768px) { .cvg-serve .cvg-ornament-circle { display: none; } }

/* --- OUR APPROACH (cream): botanical circle + rotating brand mark + pulse dot - */
.cvg-approach .cvg-ornament-circle {
	width: 100px; height: 100px;
	opacity: .85;
	z-index: 0;
}
.cvg-approach .cvg-ornament-circle.is-tl {
	top: 8%; left: 4%;
	animation: cvg-drift 13s ease-in-out infinite;
}
.cvg-approach .cvg-ornament-mark {
	bottom: -8%; left: -5%;
	width: clamp(340px, 38vw, 540px);
	aspect-ratio: 1;
	/* Masked brand burst — tinted navy so it sits gracefully on cream */
	background: rgba(0, 80, 111, .12);
	-webkit-mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	animation: cvg-spin-cw 160s linear infinite;
}
.cvg-approach .cvg-ornament-dot {
	top: 22%; right: 8%;
	width: 10px; height: 10px;
	border-radius: 50%;
	background: var(--cvg-gold);
	animation: cvg-pulse 3.5s ease-in-out infinite;
	box-shadow: 0 0 0 0 rgba(216,137,36,.5);
}
@keyframes cvg-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(216,137,36,.6); transform: scale(1); }
	50%      { box-shadow: 0 0 0 18px rgba(216,137,36,0); transform: scale(.85); }
}
@media (max-width: 768px) {
	.cvg-approach .cvg-ornament-circle,
	.cvg-approach .cvg-ornament-mark,
	.cvg-approach .cvg-ornament-dot { display: none; }
}

/* --- WHAT WE DO (cream): botanical accent + brand burst + pulsing dot --- */
.cvg-wwd .cvg-ornament-circle {
	width: 90px; height: 90px;
	opacity: .8;
	z-index: 0;
}
.cvg-wwd .cvg-ornament-circle.is-br {
	bottom: 8%; right: 4%;
	animation: cvg-drift 13s ease-in-out infinite reverse;
}
.cvg-wwd .cvg-ornament-mark {
	bottom: -8%; left: -5%;
	width: clamp(340px, 38vw, 540px);
	aspect-ratio: 1;
	background: rgba(0, 80, 111, .12);
	-webkit-mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	mask: url('../images/convergent_Burst.svg') no-repeat center / contain;
	animation: cvg-spin-ccw 175s linear infinite;
}
.cvg-wwd .cvg-ornament-dot {
	top: 18%; left: 6%;
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--cvg-navy);
	animation: cvg-pulse 4s ease-in-out infinite;
	box-shadow: 0 0 0 0 rgba(0,80,111,.5);
}
@media (max-width: 768px) {
	.cvg-wwd .cvg-ornament-circle,
	.cvg-wwd .cvg-ornament-mark,
	.cvg-wwd .cvg-ornament-dot { display: none; }
}

/* --- FINAL CTA: large brand burst rotating glacially in bottom-right --- */
.cvg-final-cta .cvg-ornament-mark {
	bottom: -10%; right: -8%;
	width: clamp(320px, 38vw, 540px);
	aspect-ratio: 1;
	background: url('../images/convergent_Burst.svg') no-repeat center / contain;
	opacity: .08;
	animation: cvg-spin-ccw 150s linear infinite;
}
.cvg-final-cta .cvg-ornament-mark.is-tl {
	top: -8%; left: -6%;
	bottom: auto; right: auto;
	width: clamp(220px, 26vw, 380px);
	background-image: url('../images/convergent_Center.svg');
	opacity: .07;
	animation: cvg-spin-cw 180s linear infinite;
}
@media (max-width: 768px) { .cvg-final-cta .cvg-ornament-mark { display: none; } }

@media (prefers-reduced-motion: reduce) {
	.cvg-ornament,
	.cvg-ornament-circle,
	.cvg-ornament-mark { animation: none !important; }
}

/* =========================================================================
   SERVICES PAGE
   ========================================================================= */

/* ----- 1. Hero: palm bg + navy radial overlay. Dimensions mirror the
   About hero exactly so the two pages feel like siblings. ----- */
.cvg-services-hero {
	position: relative;
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(140px, 16vw, 220px) 0 clamp(130px, 15vw, 200px);
	overflow: hidden;
	min-height: clamp(620px, 82vh, 820px);
	display: flex; align-items: center;
}
.cvg-services-hero-bg {
	position: absolute; inset: 0;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	filter: grayscale(0) contrast(.55) brightness(.85);
	z-index: 0;
}
.cvg-services-hero-overlay {
	--cvg-hero-overlay-strength: .80;
	position: absolute; inset: 0;
	background: radial-gradient(
		ellipse 130% 130% at 0% 0%,
		rgba(0, 58, 82, var(--cvg-hero-overlay-strength))                            0%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .98))               28%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .85))               44%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .55))              62%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .16))              80%,
		transparent                                                                  94%
	);
	z-index: 0;
}
.cvg-services-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-services-hero-content { max-width: 780px; }
.cvg-services-hero-content h1 {
	color: #fff;
	font-size: clamp(2.5rem, 4.5vw + 1rem, 4.5rem);
	line-height: 1.04;
	margin-bottom: 28px;
	text-shadow: 0 2px 24px rgba(0,30,48,.4);
}
.cvg-services-hero-sub {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.0625rem, .4vw + 1rem, 1.25rem);
	line-height: 1.65;
	color: rgba(255,255,255,.85);
	max-width: 640px;
	margin: 0;
}

/* ----- 2. Services grid (4 cards from cvg_service CPT) ----- */
.cvg-services-grid-section {
	background: var(--cvg-cream);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative; overflow: hidden;
}
.cvg-services-grid-section > .cvg-container { position: relative; z-index: 1; }
.cvg-services-grid-section .cvg-section-head {
	max-width: 760px; margin: 0 auto 72px; text-align: center;
}
.cvg-services-grid-section .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-services-grid-section h2 { margin-bottom: 22px; }
.cvg-services-grid {
	display: grid; gap: 28px; grid-template-columns: 1fr;
}
@media (min-width: 900px) { .cvg-services-grid { grid-template-columns: 1fr 1fr; gap: 36px; } }

.cvg-services-card {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	padding: 44px 38px 36px;
	position: relative;
	overflow: hidden;
	transition: transform .35s var(--cvg-ease), border-color .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease);
	/* Flex column + auto-margin on the CTA pins "Learn more →" to the
	   bottom of every card, so cards of varying body length align cleanly. */
	display: flex;
	flex-direction: column;
	height: 100%;
}
.cvg-services-card::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: 0;
	height: 3px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--cvg-ease);
}
.cvg-services-card:hover {
	transform: translateY(-4px);
	border-color: rgba(216,137,36,.30);
	box-shadow: 0 18px 40px -22px rgba(0,30,48,.18);
}
.cvg-services-card:hover::after { transform: scaleX(1); }
.cvg-services-card-folio {
	font-family: var(--cvg-font-display); font-style: italic;
	font-size: 1.4rem; color: var(--cvg-gold-dark);
	display: block; margin-bottom: 14px; line-height: 1;
}
.cvg-services-card h3 {
	color: var(--cvg-navy); font-size: clamp(1.5rem, .8vw + 1.1rem, 1.75rem);
	margin: 0 0 14px; line-height: 1.15;
}
.cvg-services-card h3 a { color: inherit; text-decoration: none; }
.cvg-services-card h3 a:hover { color: var(--cvg-gold-dark); }
.cvg-services-card-sub {
	color: var(--cvg-ink); font-size: 15px; line-height: 1.65;
	margin: 0 0 22px;
}
.cvg-services-card-label {
	font-family: var(--cvg-font-ui, var(--cvg-font-body));
	font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
	color: var(--cvg-muted); font-weight: 600;
	margin: 0 0 12px;
}
.cvg-services-card-list {
	list-style: none; padding: 0; margin: 0 0 26px;
	display: flex; flex-direction: column; gap: 10px;
}
.cvg-services-card-list li {
	display: flex; gap: 12px; align-items: flex-start;
	font-size: 14px; line-height: 1.55; color: var(--cvg-ink);
}
.cvg-services-card-list svg { color: var(--cvg-gold-dark); flex-shrink: 0; margin-top: 1px; }
.cvg-services-card-more {
	display: inline-flex; align-items: center; gap: 8px;
	align-self: flex-start;
	margin-top: auto;            /* pin to the bottom of the card */
	font-family: var(--cvg-font-ui, var(--cvg-font-body));
	font-size: 12px; letter-spacing: 1px; text-transform: uppercase; font-weight: 600;
	color: var(--cvg-navy); text-decoration: none;
	border-bottom: 1px solid currentColor; padding-bottom: 4px;
	transition: color .25s var(--cvg-ease), gap .25s var(--cvg-ease);
}
.cvg-services-card-more:hover { color: var(--cvg-gold-dark); gap: 14px; }
.cvg-services-grid-section .cvg-ornament-circle.is-tl {
	top: 4%; left: 3%; width: clamp(180px, 18vw, 260px); aspect-ratio: 1;
	background-size: contain; background-repeat: no-repeat; background-position: center;
	opacity: .12;
}
@media (max-width: 768px) { .cvg-services-grid-section .cvg-ornament-circle { display: none; } }

/* ----- 3. Engagement options ----- */
.cvg-services-engage {
	background: var(--cvg-cream-deep);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative; overflow: hidden;
}
.cvg-services-engage::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background:
		radial-gradient(ellipse 50% 60% at 100% 0%, rgba(216,137,36,.14), transparent 65%),
		radial-gradient(ellipse 60% 50% at 0% 100%, rgba(0,80,111,.07), transparent 65%);
}
.cvg-services-engage > .cvg-container { position: relative; z-index: 1; }
.cvg-services-engage .cvg-section-head {
	max-width: 760px; margin: 0 auto 64px; text-align: center;
}
.cvg-services-engage .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-services-engage-grid {
	display: grid; gap: 20px; grid-template-columns: 1fr;
}
@media (min-width: 700px)  { .cvg-services-engage-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .cvg-services-engage-grid { grid-template-columns: repeat(4, 1fr); } }
.cvg-services-engage-card {
	background: rgba(255,255,255,.55);
	border: 1px solid rgba(0,30,48,.08);
	padding: 36px 28px 32px;
	transition: background .3s var(--cvg-ease), transform .3s var(--cvg-ease);
}
.cvg-services-engage-card:hover { background: #fff; transform: translateY(-3px); }
.cvg-services-engage-num {
	font-family: var(--cvg-font-display); font-style: italic;
	color: var(--cvg-gold-dark); font-size: 1.5rem; line-height: 1;
	display: block; margin-bottom: 16px;
}
.cvg-services-engage-card h3 {
	color: var(--cvg-navy); font-size: 1.2rem;
	margin: 0 0 10px; line-height: 1.2;
}
.cvg-services-engage-card p {
	color: var(--cvg-muted); font-size: 14px; line-height: 1.6; margin: 0;
}

/* ----- 4. Common challenges (cream + chevron list, echoes About → Believe) ----- */
.cvg-services-challenges {
	background: var(--cvg-cream);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative; overflow: hidden;
}
.cvg-services-challenges > .cvg-container {
	position: relative; z-index: 1; max-width: 920px;
}
.cvg-services-challenges .cvg-section-head {
	max-width: 720px; margin: 0 0 52px; text-align: left;
}
.cvg-services-challenges .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-services-challenges-list {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column;
	border-top: 1px solid rgba(0,30,48,.08);
}
.cvg-services-challenges-list li {
	display: flex; gap: 22px; align-items: center;
	padding: 22px 0;
	border-bottom: 1px solid rgba(0,30,48,.08);
	font-size: clamp(1.05rem, .4vw + .95rem, 1.2rem);
	line-height: 1.45; color: var(--cvg-ink);
	transition: padding-left .35s var(--cvg-ease), color .25s var(--cvg-ease);
}
.cvg-services-challenges-list li:hover {
	padding-left: 12px; color: var(--cvg-navy);
}
.cvg-services-chal-chev {
	font-family: var(--cvg-font-display);
	color: var(--cvg-gold); font-size: 1.5rem; line-height: 1;
	flex-shrink: 0; transition: transform .3s var(--cvg-ease);
}
.cvg-services-challenges-list li:hover .cvg-services-chal-chev { transform: translateX(4px); }
.cvg-services-challenges .cvg-ornament-circle.is-br {
	bottom: 6%; right: 4%; width: clamp(180px, 18vw, 260px); aspect-ratio: 1;
	background-size: contain; background-repeat: no-repeat; background-position: center;
	opacity: .14; animation: cvg-drift-x 18s ease-in-out infinite reverse;
}
@media (max-width: 768px) { .cvg-services-challenges .cvg-ornament-circle { display: none; } }

/* ----- 5. Audiences (navy 2×2, echoes About → Where We Work) ----- */
.cvg-services-audiences {
	background: var(--cvg-navy-deep);
	color: rgba(255,255,255,.85);
	padding: clamp(90px, 11vw, 160px) 0;
	position: relative; overflow: hidden;
	background-image:
		radial-gradient(ellipse 90% 60% at 50% 0%,   rgba(11,77,120,.45), transparent 70%),
		radial-gradient(ellipse 70% 50% at 50% 100%, rgba(7,43,69,.55),   transparent 70%),
		linear-gradient(180deg, var(--cvg-navy-deep) 0%, #022538 100%);
}
.cvg-services-audiences > .cvg-container { position: relative; z-index: 1; }
.cvg-services-audiences .cvg-section-head {
	max-width: 800px; margin: 0 auto 72px; text-align: center;
}
.cvg-services-audiences .cvg-eyebrow { color: var(--cvg-gold); }
.cvg-services-audiences h2 { color: #fff; margin-bottom: 20px; }
.cvg-services-aud-grid {
	display: grid; gap: 24px; grid-template-columns: 1fr;
}
@media (min-width: 720px) { .cvg-services-aud-grid { grid-template-columns: 1fr 1fr; } }
.cvg-services-aud-block {
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.10);
	padding: 40px 36px;
	transition: transform .35s var(--cvg-ease), background .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
	position: relative; overflow: hidden;
}
.cvg-services-aud-block::after {
	content: ''; position: absolute; bottom: 0; left: 0; right: 0;
	height: 2px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--cvg-ease);
}
.cvg-services-aud-block:hover {
	transform: translateY(-4px);
	background: rgba(255,255,255,.07);
	border-color: rgba(216,137,36,.30);
}
.cvg-services-aud-block:hover::after { transform: scaleX(1); }
.cvg-services-aud-num {
	display: block; font-family: var(--cvg-font-display); font-style: italic;
	font-size: 1.75rem; color: var(--cvg-gold); margin-bottom: 18px; line-height: 1;
}
.cvg-services-aud-block h3 {
	color: #fff; font-size: clamp(1.375rem, .8vw + 1rem, 1.625rem);
	margin: 0 0 12px; line-height: 1.2;
}
.cvg-services-aud-block p {
	color: rgba(255,255,255,.78); font-size: 15px; line-height: 1.6; margin: 0;
}

/* =========================================================================
   SINGLE SERVICE (detail page)
   ========================================================================= */
/* Single service hero — same dimensions as About/Services for visual parity
   across every non-homepage page. */
.cvg-service-single-hero {
	position: relative;
	background: var(--cvg-navy-deep);
	color: #fff;
	padding: clamp(140px, 16vw, 220px) 0 clamp(130px, 15vw, 200px);
	overflow: hidden;
	min-height: clamp(620px, 82vh, 820px);
	display: flex; align-items: center;
}
.cvg-service-single-hero-bg {
	position: absolute; inset: 0;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	filter: grayscale(0) contrast(.55) brightness(.85);
	z-index: 0;
}
.cvg-service-single-hero-overlay {
	--cvg-hero-overlay-strength: .82;
	position: absolute; inset: 0;
	background: radial-gradient(
		ellipse 130% 130% at 0% 0%,
		rgba(0, 58, 82, var(--cvg-hero-overlay-strength))                            0%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .98))               28%,
		rgba(0, 58, 82, calc(var(--cvg-hero-overlay-strength) * .85))               44%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .55))              62%,
		rgba(0, 80, 111, calc(var(--cvg-hero-overlay-strength) * .16))              80%,
		transparent                                                                  94%
	);
	z-index: 0;
}
.cvg-service-single-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-service-single-hero-content { max-width: 780px; }
.cvg-service-single-hero-content h1 {
	color: #fff;
	font-size: clamp(2.5rem, 4.5vw + 1rem, 4.5rem);
	line-height: 1.04;
	margin-bottom: 28px;
	text-shadow: 0 2px 24px rgba(0,30,48,.4);
}
.cvg-service-single-sub {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.0625rem, .4vw + 1rem, 1.25rem);
	line-height: 1.65;
	color: rgba(255,255,255,.85);
	max-width: 640px;
	margin: 0;
}

.cvg-service-single-body {
	background: #FBF7EE;
	padding: clamp(80px, 10vw, 140px) 0;
	position: relative; overflow: hidden;
}
.cvg-service-single-body > .cvg-container {
	position: relative; z-index: 1;
}
.cvg-service-single-grid {
	display: grid; gap: 60px; grid-template-columns: 1fr; align-items: start;
}
@media (min-width: 900px) {
	.cvg-service-single-grid { grid-template-columns: 1.4fr 1fr; gap: 80px; }
}
.cvg-service-single-prose {
	font-size: 17px; line-height: 1.7; color: var(--cvg-ink);
}
.cvg-service-single-prose p { margin: 0 0 1.2em; }
.cvg-service-single-prose h2 {
	color: var(--cvg-navy); margin: 1.8em 0 .5em;
}
/* Editorial article opener: H2 matching the page title + bold lead paragraph.
   The H1 lives in the hero; this H2 + lead pair opens the article. */
.cvg-service-single-body-title {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.75rem, 1.3vw + 1.2rem, 2.4rem);
	line-height: 1.1;
	color: var(--cvg-navy);
	margin: 0 0 18px;
}
.cvg-service-single-lead {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.15rem, .5vw + 1rem, 1.35rem);
	line-height: 1.5;
	font-weight: 500;
	color: var(--cvg-navy);
	margin: 0 0 1.6em;
	padding-bottom: 1.4em;
	border-bottom: 1px solid var(--cvg-line-soft);
}

/* "See this in practice →" cross-link card at the bottom of the service body.
   Cream-deep band, gold left border, links into the case study CPT. */
.cvg-service-single-casestudy {
	margin: 2.4em 0 0;
	padding: 28px 32px;
	background: var(--cvg-cream-deep);
	border-left: 3px solid var(--cvg-gold);
}
.cvg-service-single-casestudy .cvg-eyebrow {
	display: inline-block;
	margin: 0 0 10px;
	color: var(--cvg-gold-dark);
}
.cvg-service-single-casestudy h3 {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.35rem, .8vw + 1rem, 1.7rem);
	line-height: 1.15;
	color: var(--cvg-navy);
	margin: 0 0 .55em;
}
.cvg-service-single-casestudy h3 a {
	color: inherit;
	text-decoration: none;
	background-image: linear-gradient(var(--cvg-gold), var(--cvg-gold));
	background-repeat: no-repeat;
	background-size: 0 1px;
	background-position: 0 100%;
	transition: background-size .35s ease;
}
.cvg-service-single-casestudy h3 a:hover,
.cvg-service-single-casestudy h3 a:focus { background-size: 100% 1px; }
.cvg-service-single-casestudy p {
	color: var(--cvg-ink);
	margin: 0 0 1em;
}

.cvg-service-single-aside {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	padding: 36px 32px;
	position: sticky; top: 100px;
}
.cvg-service-single-aside-label {
	font-family: var(--cvg-font-ui, var(--cvg-font-body));
	font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
	color: var(--cvg-gold-dark); font-weight: 600;
	margin: 0 0 14px;
}
.cvg-service-single-aside h3 {
	color: var(--cvg-navy); font-size: 1.3rem;
	margin: 0 0 20px; line-height: 1.2;
}
.cvg-service-single-aside ul {
	list-style: none; padding: 0; margin: 0 0 24px;
	display: flex; flex-direction: column; gap: 12px;
}
.cvg-service-single-aside li {
	display: flex; gap: 12px; align-items: flex-start;
	font-size: 14.5px; line-height: 1.55; color: var(--cvg-ink);
}
.cvg-service-single-aside svg { color: var(--cvg-gold-dark); flex-shrink: 0; margin-top: 1px; }
.cvg-service-single-outcome {
	background: var(--cvg-cream-deep);
	padding: 22px 24px;
	margin-top: 24px;
	border-left: 3px solid var(--cvg-gold);
}
.cvg-service-single-outcome strong {
	display: block;
	font-family: var(--cvg-font-ui, var(--cvg-font-body));
	font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
	color: var(--cvg-gold-dark); font-weight: 700;
	margin-bottom: 8px;
}
.cvg-service-single-outcome p {
	margin: 0; font-size: 15px; line-height: 1.55; color: var(--cvg-ink);
}

/* Featured program (LDP-style) — sits between body + related, dark-navy
   gradient like the final CTA so it stops the eye as a flagship moment. */
.cvg-service-program {
	background: linear-gradient(135deg, var(--cvg-navy-deep) 0%, var(--cvg-navy) 100%);
	color: #fff;
	padding: clamp(60px, 7vw, 110px) 0;
	position: relative;
	overflow: hidden;
}
.cvg-service-program::before {
	content: '';
	position: absolute; top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(216,137,36,.55), transparent);
}
.cvg-service-program-inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
	position: relative;
}
.cvg-service-program .cvg-eyebrow {
	color: var(--cvg-gold);
	margin-bottom: 18px;
}
.cvg-service-program-title {
	font-family: var(--cvg-font-display);
	font-size: clamp(2rem, 2vw + 1rem, 2.75rem);
	line-height: 1.1;
	color: #fff;
	margin: 0 0 22px;
}
.cvg-service-program-body {
	font-size: clamp(1.0625rem, .4vw + 1rem, 1.2rem);
	line-height: 1.65;
	color: rgba(255,255,255,.88);
	margin: 0 0 24px;
}
.cvg-service-program-dates {
	display: inline-flex; align-items: center; gap: 10px;
	margin: 0 0 30px;
	padding: 8px 18px;
	background: rgba(216,137,36,.14);
	border: 1px solid rgba(216,137,36,.36);
	color: var(--cvg-gold);
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
}
.cvg-service-program-dates-pulse {
	width: 8px; height: 8px;
	background: var(--cvg-gold);
	border-radius: 999px;
	box-shadow: 0 0 0 0 rgba(216,137,36,.7);
	animation: cvg-pulse-dot 2.4s ease-in-out infinite;
}
@keyframes cvg-pulse-dot {
	0%, 100% { box-shadow: 0 0 0 0 rgba(216,137,36,.7); }
	50%      { box-shadow: 0 0 0 8px rgba(216,137,36,0); }
}
.cvg-service-program .cvg-actions-row {
	justify-content: center;
}

.cvg-service-single-related {
	background: var(--cvg-cream);
	padding: clamp(80px, 10vw, 130px) 0;
}
.cvg-service-single-related .cvg-section-head {
	max-width: 720px; margin: 0 auto 48px; text-align: center;
}
.cvg-service-single-related .cvg-eyebrow { color: var(--cvg-gold-dark); }
.cvg-service-single-related-grid {
	display: grid; gap: 24px; grid-template-columns: 1fr;
}
@media (min-width: 720px)  { .cvg-service-single-related-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .cvg-service-single-related-grid { grid-template-columns: repeat(3, 1fr); } }

/* ---------- 18. Reveal + utilities ------------------------------------- */

[data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity .8s var(--cvg-ease), transform .8s var(--cvg-ease); }
[data-reveal].is-visible { opacity: 1; transform: none; }
body.cvg-menu-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
	html { scroll-behavior: auto; }
	[data-reveal] { opacity: 1; transform: none; }
}

/* =========================================================================
   WOOCOMMERCE — shop, single, cart, checkout, my-account, cart drawer.
   All routes wear convergent's locked dark hero (set in wc-setup.php) +
   cream body band + final-CTA. Heavy WC default style suppression.
   ========================================================================= */

/* ---- WC hero + body wrap (mirrors .cvg-about-hero spec) ---- */
.cvg-wc-hero {
	position: relative;
	min-height: clamp(420px, 50vh, 560px);
	padding: clamp(120px, 14vw, 180px) 0 clamp(80px, 10vw, 130px);
	overflow: hidden;
	background: var(--cvg-navy-deep);
	color: #fff;
}
.cvg-wc-hero-bg {
	position: absolute; inset: 0;
	background-size: cover; background-position: center;
	filter: grayscale(0) contrast(.55) brightness(.85);
	z-index: 0;
}
.cvg-wc-hero-overlay {
	position: absolute; inset: 0; z-index: 1;
	background:
		radial-gradient(ellipse 130% 130% at 0% 0%,
			var(--cvg-navy-deep) 0%, var(--cvg-navy-deep) 28%,
			rgba(0,58,82,.86) 50%, rgba(0,58,82,.55) 72%, transparent 94%);
}
.cvg-wc-hero > .cvg-container { position: relative; z-index: 2; }
.cvg-wc-hero-content { max-width: 780px; }
.cvg-wc-hero-content h1 {
	color: #fff;
	font-size: clamp(2.5rem, 4.5vw + 1rem, 4.5rem);
	line-height: 1.04;
	margin: 0 0 22px;
	text-shadow: 0 2px 24px rgba(0,30,48,.4);
}
.cvg-wc-hero-sub {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.0625rem, .4vw + 1rem, 1.25rem);
	line-height: 1.65;
	color: rgba(255,255,255,.85);
	max-width: 640px;
	margin: 0;
}
.cvg-wc-body {
	background: var(--cvg-cream);
	padding: clamp(64px, 8vw, 110px) 0;
}

/* ---- Suppress WC default chrome that conflicts ---- */
.woocommerce-breadcrumb,
.woocommerce-result-count,
.woocommerce-ordering,
.cvg-wc-body .woocommerce-products-header { display: none !important; }
.woocommerce-notices-wrapper { margin: 0 0 24px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	font-family: var(--cvg-font-body);
	font-size: 14.5px; line-height: 1.6;
	padding: 16px 18px;
	border: 1px solid var(--cvg-line-soft);
	background: #fff;
	border-left-width: 3px;
	border-radius: 0;
	color: var(--cvg-ink);
	margin: 0 0 24px;
}
.woocommerce-message { border-left-color: var(--cvg-gold); }
.woocommerce-info    { border-left-color: var(--cvg-navy); }
.woocommerce-error   { border-left-color: #C0392B; }
.woocommerce-message a, .woocommerce-info a, .woocommerce-error a { color: var(--cvg-navy); }

/* ---- Shop grid ----
   WC ships ".woocommerce ul.products li.product { float:left; width:30.75% }"
   which fights any grid layout. We override with !important to neutralize
   the float + fixed width and let CSS Grid actually run the layout. */
.cvg-wc-body ul.products,
.woocommerce.archive ul.products,
.woocommerce-page ul.products {
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
	display: grid !important;
	gap: 32px !important;
	grid-template-columns: 1fr !important;
}
@media (min-width: 640px) {
	.cvg-wc-body ul.products,
	.woocommerce.archive ul.products,
	.woocommerce-page ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (min-width: 1024px) {
	.cvg-wc-body ul.products,
	.woocommerce.archive ul.products,
	.woocommerce-page ul.products { grid-template-columns: repeat(3, 1fr) !important; }
}
/* Kill WC's clearfix pseudo-elements (they collapse to 0×0 inside grid but
   make Chrome render an extra grid item box). */
.cvg-wc-body ul.products::before,
.cvg-wc-body ul.products::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none !important; display: none !important; }

.cvg-wc-body ul.products li.product,
.woocommerce ul.products li.product {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	padding: 0 !important;
	margin: 0 !important;
	float: none !important;
	width: auto !important;
	max-width: none !important;
	clear: none !important;
	display: flex; flex-direction: column;
	transition: transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease), border-color .35s var(--cvg-ease);
	position: relative;
	overflow: hidden;
}
.cvg-wc-body ul.products li.product::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: 0;
	height: 3px; background: var(--cvg-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--cvg-ease);
}
.cvg-wc-body ul.products li.product:hover {
	transform: translateY(-4px);
	border-color: rgba(216,137,36,.30);
	box-shadow: 0 18px 40px -22px rgba(0,30,48,.20);
}
.cvg-wc-body ul.products li.product:hover::after { transform: scaleX(1); }
/* In modern WC the first <a> in a product LI is .woocommerce-LoopProduct-link,
   which wraps the image, the title AND the price. So we can NOT put
   aspect-ratio + overflow:hidden on that anchor — it'd clip title + price.
   Put the aspect-ratio + overflow on the IMG element directly instead. */
.cvg-wc-body ul.products li.product > a:first-of-type {
	display: block;
	background: transparent;
	color: inherit;
	text-decoration: none;
}
.cvg-wc-body ul.products li.product img,
.cvg-wc-body ul.products li.product .woocommerce-loop-product__link img,
.cvg-wc-body ul.products li.product .attachment-woocommerce_thumbnail {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 11;
	object-fit: cover;
	background: var(--cvg-cream-deep);
	transition: transform .6s var(--cvg-ease);
	margin: 0;
}
.cvg-wc-body ul.products li.product:hover img { transform: scale(1.04); }
.cvg-wc-body ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--cvg-font-display);
	font-size: 1.25rem;
	line-height: 1.2;
	color: var(--cvg-navy);
	padding: 22px 24px 0;
	margin: 0;
	text-transform: lowercase;
}
.cvg-wc-body ul.products li.product .price {
	font-family: var(--cvg-font-body);
	font-size: 17px;
	font-weight: 500;
	color: var(--cvg-gold-dark);
	padding: 8px 24px 16px;
	margin: 0;
}
.cvg-wc-body ul.products li.product .price del { color: var(--cvg-muted); margin-right: 6px; }
.cvg-wc-body ul.products li.product .button {
	margin: auto 24px 22px;
}

/* WC card uses generic .button — restyle to convergent outline */
.woocommerce .button,
.woocommerce-page .button,
.woocommerce a.button,
.woocommerce button.button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-family: var(--cvg-font-nav);
	font-size: 13px; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	padding: 14px 26px;
	border: 1.5px solid var(--cvg-navy);
	background: transparent;
	color: var(--cvg-navy);
	border-radius: 0;
	text-decoration: none;
	cursor: pointer;
	transition: background .25s var(--cvg-ease), color .25s var(--cvg-ease), border-color .25s var(--cvg-ease), transform .25s var(--cvg-ease);
}
.woocommerce .button:hover,
.woocommerce-page .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
	background: var(--cvg-navy);
	color: #fff;
}
.woocommerce .button.alt,
.woocommerce .single_add_to_cart_button,
.woocommerce .checkout-button,
.woocommerce #place_order {
	background: var(--cvg-gold);
	border-color: var(--cvg-gold);
	color: #fff;
}
.woocommerce .button.alt:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover {
	background: var(--cvg-navy);
	border-color: var(--cvg-navy);
	color: #fff;
	box-shadow: 0 0 0 3px rgba(216,137,36,.18);
}
.woocommerce .button.loading {
	opacity: .65; pointer-events: none;
	position: relative;
}
.woocommerce .button.loading::after {
	content: ''; position: absolute; right: 14px; top: 50%;
	width: 14px; height: 14px; margin-top: -7px;
	border: 2px solid currentColor; border-right-color: transparent;
	border-radius: 50%;
	animation: cvg-spin .7s linear infinite;
}
.woocommerce .button.added::after {
	content: '✓'; position: absolute; right: 14px; top: 50%;
	margin-top: -10px; font-size: 14px; font-weight: 700;
}
@keyframes cvg-spin { to { transform: rotate(360deg); } }
/* Hide the WC "View cart" inline link after the add-to-cart button — we open the drawer instead */
.woocommerce a.added_to_cart { display: none !important; }

/* ---- Single product ----
   IMPORTANT: scope to `div.product` only, NOT `.product` alone — the
   `.product` class also lives on shop archive `li.product` cards, and
   matching it there turned the card itself into a 1-col grid with 64px
   row-gap between flex children, producing the dead gap between price
   and Add-to-Cart on the shop loop. */
.cvg-wc-body div.product {
	display: grid;
	gap: clamp(32px, 5vw, 64px);
	grid-template-columns: 1fr;
	align-items: start;
}
@media (min-width: 900px) {
	.cvg-wc-body div.product { grid-template-columns: 1.05fr 1fr; }
}
.cvg-wc-body .woocommerce-product-gallery {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	padding: 20px;
	float: none !important;
	width: 100% !important;
}
.cvg-wc-body .woocommerce-product-gallery__wrapper {
	margin: 0;
}
.cvg-wc-body .woocommerce-product-gallery__image img {
	width: 100%; height: auto; display: block;
}
.cvg-wc-body .flex-control-thumbs {
	display: flex; gap: 10px; padding: 12px 0 0; margin: 0;
	list-style: none;
}
.cvg-wc-body .flex-control-thumbs li {
	width: 64px; height: 64px; margin: 0;
}
.cvg-wc-body .flex-control-thumbs li img {
	width: 100%; height: 100%; object-fit: cover; opacity: .65;
	border: 1px solid var(--cvg-line-soft);
	transition: opacity .2s, border-color .2s;
}
.cvg-wc-body .flex-control-thumbs li img.flex-active,
.cvg-wc-body .flex-control-thumbs li img:hover {
	opacity: 1;
	border-color: var(--cvg-gold);
}
.cvg-wc-body .product .summary {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
}
.cvg-wc-body .product .product_title {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.75rem, 1.5vw + 1rem, 2.6rem);
	line-height: 1.1;
	color: var(--cvg-navy);
	margin: 0 0 18px;
	text-transform: lowercase;
}
.cvg-wc-body .product .price {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.25rem, .5vw + 1rem, 1.5rem);
	font-weight: 500;
	color: var(--cvg-gold-dark);
	margin: 0 0 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--cvg-line-soft);
}
.cvg-wc-body .product .woocommerce-product-details__short-description {
	font-family: var(--cvg-font-body);
	font-size: 16px;
	line-height: 1.7;
	color: var(--cvg-ink);
	margin: 0 0 28px;
}
.cvg-wc-body .product form.cart {
	display: flex; gap: 12px; align-items: center;
	margin: 0 0 28px !important;
}
.cvg-wc-body .product .quantity {
	display: inline-flex; align-items: center;
	border: 1.5px solid var(--cvg-line-soft);
	padding: 8px 14px;
}
.cvg-wc-body .product .quantity input[type="number"] {
	width: 48px; text-align: center;
	border: 0; background: transparent;
	font-family: var(--cvg-font-body);
	font-size: 15px;
	color: var(--cvg-navy);
	-moz-appearance: textfield;
}
.cvg-wc-body .product .quantity input[type="number"]::-webkit-outer-spin-button,
.cvg-wc-body .product .quantity input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cvg-wc-body .product .quantity label { display: none; }
.cvg-wc-body .product .single_add_to_cart_button {
	flex: 1;
}
.cvg-wc-body .product .product_meta {
	font-family: var(--cvg-font-body);
	font-size: 13px;
	color: var(--cvg-muted);
	padding-top: 18px;
	border-top: 1px solid var(--cvg-line-soft);
}
.cvg-wc-body .product .product_meta > span { display: block; margin: 4px 0; }
.cvg-wc-body .product .product_meta a { color: var(--cvg-navy); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .2s; }
.cvg-wc-body .product .product_meta a:hover { border-bottom-color: var(--cvg-gold); }

/* Tabs */
.cvg-wc-body .woocommerce-tabs {
	grid-column: 1 / -1;
	margin-top: clamp(32px, 5vw, 64px);
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
}
.cvg-wc-body .woocommerce-tabs ul.tabs {
	display: flex; gap: 0; padding: 0; margin: 0;
	list-style: none;
	border-bottom: 1px solid var(--cvg-line-soft);
	background: var(--cvg-cream-deep);
}
.cvg-wc-body .woocommerce-tabs ul.tabs::before,
.cvg-wc-body .woocommerce-tabs ul.tabs::after { display: none; }
.cvg-wc-body .woocommerce-tabs ul.tabs li {
	padding: 0; margin: 0; border: 0; background: transparent;
}
.cvg-wc-body .woocommerce-tabs ul.tabs li::before,
.cvg-wc-body .woocommerce-tabs ul.tabs li::after { display: none !important; }
.cvg-wc-body .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 16px 24px;
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cvg-muted);
	text-decoration: none;
	border-bottom: 3px solid transparent;
	transition: color .2s, border-color .2s;
}
.cvg-wc-body .woocommerce-tabs ul.tabs li.active a {
	color: var(--cvg-navy);
	border-bottom-color: var(--cvg-gold);
}
.cvg-wc-body .woocommerce-Tabs-panel {
	padding: 32px 36px;
	font-family: var(--cvg-font-body);
	font-size: 16px; line-height: 1.7;
	color: var(--cvg-ink);
}
.cvg-wc-body .woocommerce-Tabs-panel h2 {
	font-family: var(--cvg-font-display);
	font-size: 1.5rem; color: var(--cvg-navy);
	margin: 0 0 16px;
	text-transform: lowercase;
}

/* Related products */
.cvg-wc-body .related.products,
.cvg-wc-body .upsells.products {
	grid-column: 1 / -1;
	margin-top: clamp(48px, 6vw, 80px);
}
.cvg-wc-body .related > h2,
.cvg-wc-body .upsells > h2 {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.5rem, 1vw + 1rem, 2rem);
	color: var(--cvg-navy);
	margin: 0 0 32px;
	text-transform: lowercase;
}

/* ---- Cart page ---- */
.cvg-wc-body .woocommerce-cart-form { background: #fff; border: 1px solid var(--cvg-line-soft); }
.cvg-wc-body table.shop_table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	margin: 0;
}
.cvg-wc-body table.shop_table th,
.cvg-wc-body table.shop_table td {
	padding: 18px 18px;
	border-bottom: 1px solid var(--cvg-line-soft);
	font-family: var(--cvg-font-body);
	font-size: 14.5px;
	vertical-align: middle;
}
.cvg-wc-body table.shop_table th {
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cvg-muted);
	background: var(--cvg-cream-deep);
	text-align: left;
}
.cvg-wc-body table.shop_table .product-thumbnail img {
	width: 64px; height: 64px; object-fit: cover; display: block;
}
.cvg-wc-body table.shop_table .product-name a {
	color: var(--cvg-navy); text-decoration: none;
	font-family: var(--cvg-font-display);
	font-size: 1.05rem;
	text-transform: lowercase;
}
.cvg-wc-body table.shop_table .product-name a:hover { color: var(--cvg-gold-dark); }
.cvg-wc-body table.shop_table .product-remove a.remove {
	color: var(--cvg-muted); font-size: 18px;
	background: transparent; border-radius: 50%;
	width: 28px; height: 28px;
	display: inline-flex; align-items: center; justify-content: center;
}
.cvg-wc-body table.shop_table .product-remove a.remove:hover { color: #C0392B; background: rgba(192,57,43,.08); }
.cvg-wc-body table.shop_table .quantity {
	display: inline-flex; align-items: center;
	border: 1px solid var(--cvg-line-soft);
	padding: 4px 10px;
}
.cvg-wc-body table.shop_table .quantity input { width: 44px; text-align: center; border: 0; background: transparent; }
.cvg-wc-body .cart-collaterals { margin-top: 36px; display: grid; gap: 32px; }
@media (min-width: 900px) { .cvg-wc-body .cart-collaterals { grid-template-columns: 1fr 1fr; } }
.cvg-wc-body .cart_totals {
	background: #fff; border: 1px solid var(--cvg-line-soft);
	padding: 28px;
	grid-column: 2;
}
.cvg-wc-body .cart_totals h2 {
	font-family: var(--cvg-font-display);
	font-size: 1.4rem; color: var(--cvg-navy);
	margin: 0 0 18px;
	text-transform: lowercase;
}
.cvg-wc-body .cart_totals table th,
.cvg-wc-body .cart_totals table td {
	padding: 14px 0; border-bottom: 1px solid var(--cvg-line-soft);
}
.cvg-wc-body .cart_totals .order-total .amount { color: var(--cvg-gold-dark); font-size: 1.15rem; font-weight: 600; }
.cvg-wc-body .wc-proceed-to-checkout { padding: 18px 0 0; }
.cvg-wc-body .wc-proceed-to-checkout .checkout-button { width: 100%; }
.cvg-wc-body .coupon { display: flex; gap: 8px; padding: 18px; background: var(--cvg-cream-deep); }
.cvg-wc-body .coupon input[type="text"] {
	flex: 1; padding: 12px 14px;
	border: 1px solid var(--cvg-line-soft); background: #fff;
	font-family: var(--cvg-font-body); font-size: 14px;
}
.cvg-wc-body .actions { padding: 18px; display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }

/* ---- Checkout ---- */
.cvg-wc-body form.checkout {
	display: grid; gap: clamp(28px, 4vw, 56px);
	grid-template-columns: 1fr;
}
@media (min-width: 900px) {
	.cvg-wc-body form.checkout { grid-template-columns: 1.2fr 1fr; align-items: start; }
	.cvg-wc-body form.checkout > #order_review_heading,
	.cvg-wc-body form.checkout > #order_review { grid-column: 2; }
	.cvg-wc-body form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; }
}
.cvg-wc-body .woocommerce-billing-fields,
.cvg-wc-body .woocommerce-shipping-fields,
.cvg-wc-body .woocommerce-additional-fields,
.cvg-wc-body #order_review,
.cvg-wc-body #order_review_heading {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	padding: 28px;
	margin: 0 0 24px;
}
.cvg-wc-body #order_review_heading {
	font-family: var(--cvg-font-display);
	font-size: 1.4rem; color: var(--cvg-navy);
	border-bottom: 0; margin: 0 0 -1px;
	text-transform: lowercase;
}
.cvg-wc-body h3 { font-family: var(--cvg-font-display); color: var(--cvg-navy); font-size: 1.3rem; margin: 0 0 18px; text-transform: lowercase; }
.cvg-wc-body form .form-row {
	display: flex; flex-direction: column;
	margin: 0 0 16px;
	padding: 0;
}
.cvg-wc-body form .form-row label {
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cvg-muted);
	margin: 0 0 6px;
}
.cvg-wc-body form .form-row input.input-text,
.cvg-wc-body form .form-row textarea,
.cvg-wc-body form .form-row select,
.cvg-wc-body .select2-container--default .select2-selection--single {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--cvg-line-soft);
	background: #fff;
	font-family: var(--cvg-font-body);
	font-size: 14.5px;
	color: var(--cvg-ink);
	border-radius: 0;
	transition: border-color .2s, box-shadow .2s;
}
.cvg-wc-body .select2-container--default .select2-selection--single {
	height: 44px;
	display: flex; align-items: center;
}
.cvg-wc-body .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0 !important; line-height: 1; }
.cvg-wc-body form .form-row input.input-text:focus,
.cvg-wc-body form .form-row textarea:focus,
.cvg-wc-body form .form-row select:focus {
	outline: none;
	border-color: var(--cvg-gold);
	box-shadow: 0 0 0 3px rgba(216,137,36,.12);
}
.cvg-wc-body form .form-row-first { width: calc(50% - 8px); display: inline-flex; margin-right: 8px; }
.cvg-wc-body form .form-row-last  { width: calc(50% - 8px); display: inline-flex; margin-left: 8px; }
@media (max-width: 600px) {
	.cvg-wc-body form .form-row-first,
	.cvg-wc-body form .form-row-last { width: 100%; margin: 0 0 16px; }
}
.cvg-wc-body #payment {
	background: var(--cvg-cream-deep);
	padding: 24px;
	margin: 24px 0 0;
	border: 1px solid var(--cvg-line-soft);
}
.cvg-wc-body #payment ul.payment_methods { list-style: none; padding: 0; margin: 0 0 18px; }
.cvg-wc-body #payment ul.payment_methods li { padding: 12px 0; border-bottom: 1px solid var(--cvg-line-soft); }
.cvg-wc-body #payment ul.payment_methods li:last-child { border-bottom: 0; }
.cvg-wc-body #payment .payment_box {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	padding: 14px; margin: 10px 0;
	font-size: 14px; color: var(--cvg-muted);
}
.cvg-wc-body #place_order { width: 100%; margin-top: 8px; }

/* ---- My account ---- */
.cvg-wc-body .woocommerce-MyAccount-navigation {
	background: #fff; border: 1px solid var(--cvg-line-soft);
	padding: 12px 0;
}
.cvg-wc-body .woocommerce-MyAccount-navigation ul {
	list-style: none; padding: 0; margin: 0;
}
.cvg-wc-body .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 22px;
	font-family: var(--cvg-font-nav);
	font-size: 12px; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cvg-muted);
	text-decoration: none;
	border-left: 3px solid transparent;
	transition: color .2s, border-color .2s, background .2s;
}
.cvg-wc-body .woocommerce-MyAccount-navigation li.is-active a,
.cvg-wc-body .woocommerce-MyAccount-navigation li a:hover {
	color: var(--cvg-navy);
	background: var(--cvg-cream-deep);
	border-left-color: var(--cvg-gold);
}
.cvg-wc-body .woocommerce-MyAccount-content {
	background: #fff; border: 1px solid var(--cvg-line-soft);
	padding: 32px;
}
.cvg-wc-body .woocommerce-MyAccount-content p,
.cvg-wc-body .woocommerce-MyAccount-content address {
	font-family: var(--cvg-font-body); font-size: 15px; line-height: 1.7;
	color: var(--cvg-ink);
}
.cvg-wc-body .woocommerce-account .woocommerce {
	display: grid; gap: 32px;
	grid-template-columns: 1fr;
}
@media (min-width: 900px) { .cvg-wc-body .woocommerce-account .woocommerce { grid-template-columns: 260px 1fr; } }

/* Login / register forms (logged-out my-account) */
.cvg-wc-body .u-columns {
	display: grid; gap: 32px;
	grid-template-columns: 1fr;
}
@media (min-width: 900px) { .cvg-wc-body .u-columns { grid-template-columns: 1fr 1fr; } }
.cvg-wc-body .u-column1, .cvg-wc-body .u-column2 {
	background: #fff; border: 1px solid var(--cvg-line-soft);
	padding: 32px;
}
.cvg-wc-body .u-column1 h2, .cvg-wc-body .u-column2 h2 {
	font-family: var(--cvg-font-display);
	font-size: 1.5rem; color: var(--cvg-navy);
	margin: 0 0 22px;
	text-transform: lowercase;
}
.cvg-wc-body .woocommerce-form-login__rememberme {
	display: inline-flex; align-items: center; gap: 8px;
	margin: 0 0 8px;
}
.cvg-wc-body .lost_password { margin: 12px 0 0; }
.cvg-wc-body .lost_password a { color: var(--cvg-gold-dark); }

/* ---- Header cart icon ---- */
.cvg-header-cart { position: relative; }
.cvg-cart-count {
	position: absolute;
	top: -2px; right: -2px;
	min-width: 18px; height: 18px;
	padding: 0 5px;
	background: var(--cvg-gold);
	color: #fff;
	font-family: var(--cvg-font-nav);
	font-size: 10px;
	font-weight: 700;
	border-radius: 9px;
	display: inline-flex; align-items: center; justify-content: center;
	line-height: 1;
	transition: transform .25s var(--cvg-ease), opacity .25s;
}
.cvg-cart-count.is-empty { opacity: 0; transform: scale(.6); }
body.cvg-cart-bump .cvg-header-cart .cvg-cart-count { animation: cvg-cart-bump .35s ease-out; }
@keyframes cvg-cart-bump {
	0%   { transform: scale(1); }
	30%  { transform: scale(1.45); }
	100% { transform: scale(1); }
}

/* ---- Cart drawer ---- */
.cvg-cart-backdrop {
	position: fixed; inset: 0;
	background: rgba(0,30,48,.40);
	z-index: 998;
	opacity: 0;
	transition: opacity .26s var(--cvg-ease);
}
.cvg-cart-backdrop.is-open { opacity: 1; }
.cvg-cart-drawer {
	position: fixed;
	top: 0; right: 0;
	width: min(420px, 100vw);
	height: 100vh;
	background: #fff;
	border-left: 1px solid var(--cvg-line-soft);
	box-shadow: -16px 0 40px -16px rgba(0,30,48,.20);
	z-index: 999;
	transform: translateX(100%);
	transition: transform .30s var(--cvg-ease);
	display: flex; flex-direction: column;
}
.cvg-cart-drawer[data-open="true"] { transform: translateX(0); }
.cvg-cart-drawer-head {
	display: flex; justify-content: space-between; align-items: center;
	padding: 18px 22px;
	border-bottom: 1px solid var(--cvg-line-soft);
	background: var(--cvg-cream-deep);
}
.cvg-cart-drawer-title {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--cvg-font-display);
	font-size: 1.15rem;
	color: var(--cvg-navy);
	margin: 0;
	text-transform: lowercase;
}
.cvg-cart-drawer-pill {
	background: var(--cvg-gold);
	color: #fff;
	font-family: var(--cvg-font-nav);
	font-size: 10px; font-weight: 700;
	min-width: 22px; height: 22px;
	padding: 0 6px;
	border-radius: 11px;
	display: inline-flex; align-items: center; justify-content: center;
	line-height: 1;
}
.cvg-cart-drawer-body {
	flex: 1; overflow-y: auto;
	padding: 18px 22px;
}
.cvg-cart-drawer-empty {
	text-align: center; padding: 60px 0;
	font-family: var(--cvg-font-body);
	color: var(--cvg-muted);
}
.cvg-cart-drawer-empty .cvg-btn { margin-top: 18px; }
.cvg-cart-items {
	list-style: none; padding: 0; margin: 0;
}
.cvg-cart-item {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 14px;
	padding: 14px 0;
	border-bottom: 1px solid var(--cvg-line-soft);
}
.cvg-cart-item:last-child { border-bottom: 0; }
.cvg-cart-item-thumb img {
	width: 64px; height: 64px; object-fit: cover;
	border: 1px solid var(--cvg-line-soft);
	display: block;
}
.cvg-cart-item-name {
	font-family: var(--cvg-font-display);
	font-size: 14.5px; line-height: 1.25;
	color: var(--cvg-navy);
	margin: 0 0 8px;
	text-transform: lowercase;
}
.cvg-cart-item-name a { color: inherit; text-decoration: none; }
.cvg-cart-item-name a:hover { color: var(--cvg-gold-dark); }
.cvg-cart-item-row {
	display: flex; justify-content: space-between; align-items: center;
	gap: 8px;
}
.cvg-cart-item-qty {
	display: inline-flex; align-items: center;
	border: 1px solid var(--cvg-line-soft);
}
.cvg-cart-item-qty .cvg-qty-btn {
	width: 26px; height: 26px;
	border: 0; background: transparent;
	color: var(--cvg-navy);
	font-size: 14px; font-weight: 600;
	cursor: pointer;
}
.cvg-cart-item-qty .cvg-qty-btn:hover { background: var(--cvg-cream-deep); }
.cvg-cart-item-qty input[type="number"] {
	width: 34px; height: 26px;
	border: 0; background: transparent;
	text-align: center;
	font-family: var(--cvg-font-body);
	font-size: 13px;
	color: var(--cvg-navy);
	-moz-appearance: textfield;
}
.cvg-cart-item-qty input::-webkit-outer-spin-button,
.cvg-cart-item-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cvg-cart-item-price {
	font-family: var(--cvg-font-body);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--cvg-gold-dark);
}
.cvg-cart-item-remove {
	background: transparent; border: 0; padding: 6px 0 0;
	font-family: var(--cvg-font-nav);
	font-size: 10px; font-weight: 600;
	letter-spacing: .12em; text-transform: uppercase;
	color: var(--cvg-muted);
	cursor: pointer;
	transition: color .2s;
}
.cvg-cart-item-remove:hover { color: #C0392B; }
.cvg-cart-drawer-foot {
	padding: 18px 22px;
	border-top: 1px solid var(--cvg-line-soft);
	background: var(--cvg-cream);
}
.cvg-cart-drawer-foot[hidden] { display: none; }
.cvg-cart-drawer-subtotal {
	display: flex; justify-content: space-between; align-items: baseline;
	margin: 0 0 6px;
}
.cvg-cart-drawer-subtotal-label {
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cvg-muted);
}
.cvg-cart-drawer-subtotal-amount {
	font-family: var(--cvg-font-display);
	font-size: 1.25rem;
	color: var(--cvg-gold-dark);
}
.cvg-cart-drawer-disclaimer {
	font-family: var(--cvg-font-body);
	font-size: 11.5px;
	color: var(--cvg-muted);
	margin: 0 0 14px;
}
.cvg-cart-drawer-foot .cvg-btn { margin: 0 0 8px; }
.cvg-cart-drawer-foot .cvg-btn:last-child { margin-bottom: 0; }

/* Lock page scroll while cart open */
body.cvg-cart-open { overflow: hidden; }

/* =========================================================================
   v3.0.2 — WC polish fixes:
   - Logo disappearing on WC pages (flex-shrink, min-width on brand)
   - "Proceed to checkout" rendering purple (WC10 default leaks through)
   - Cart form / table not filling width
   - Product card price not visible in shop grid
   ========================================================================= */

/* 1) Lock the logo so it cannot be squeezed out by WC's extra header icons.
   When account + cart icons join search + CTA, the brand was the first to
   collapse because nothing pinned its width. */
.cvg-brand {
	flex-shrink: 0 !important;
	min-width: 180px;
}
/* Header logo sizing — must out-specify WooCommerce's global rule
   `.woocommerce img, .woocommerce-page img { height:auto; max-width:100% }`
   (specificity 0,1,1) which matches the header logo on shop/cart/checkout
   (the <body> carries the `woocommerce` class there) and was collapsing the
   logo to ~32px. Scoping to `.cvg-site-header .cvg-brand-mark` gives 0,2,0,
   which wins. Height-driven, width auto, never width-capped. The mobile-drawer
   and footer logos live in different containers, so they keep their own sizes. */
.cvg-site-header .cvg-brand-mark {
	display: block;
	height: 46px;
	width: auto;
	max-width: none;
	min-width: 0;
	flex: 0 0 auto;            /* never shrink inside the .cvg-brand flex */
}
@media (min-width: 1024px) {
	.cvg-site-header .cvg-brand-mark { height: 58px; }
}
/* On narrow desktop (1024–1280) where nav + 3 icons + CTA all compete,
   shrink the icons + CTA padding only — never touch the logo height.
   The logo must render at the same size on every page (homepage parity). */
@media (min-width: 1024px) and (max-width: 1280px) {
	.cvg-header-right { gap: 10px; }
	.cvg-icon-btn { width: 38px; height: 38px; }
	/* (do NOT override .cvg-brand-mark height here — it inherits 58px from
	   the base desktop rule above, matching the homepage logo size.) */
}

/* 2) Force every primary WC button (checkout / place order / proceed) to
   our gold. WC10's wp-block-button leak gives `.checkout-button` a purple
   default that beat our earlier selectors. */
.cvg-wc-body .checkout-button,
.cvg-wc-body a.checkout-button,
.cvg-wc-body .wc-proceed-to-checkout > a,
.cvg-wc-body .wc-proceed-to-checkout .button,
.cvg-wc-body .button.alt,
.cvg-wc-body .single_add_to_cart_button,
.cvg-wc-body #place_order,
.woocommerce-cart .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout > a,
.woocommerce-checkout #place_order {
	background: var(--cvg-gold) !important;
	border: 1.5px solid var(--cvg-gold) !important;
	color: #fff !important;
	font-family: var(--cvg-font-nav) !important;
	font-weight: 600 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	border-radius: 0 !important;
	padding: 14px 26px !important;
	box-shadow: none !important;
}
.cvg-wc-body .checkout-button:hover,
.cvg-wc-body .wc-proceed-to-checkout > a:hover,
.cvg-wc-body .button.alt:hover,
.cvg-wc-body .single_add_to_cart_button:hover,
.cvg-wc-body #place_order:hover,
.woocommerce-cart .checkout-button:hover,
.woocommerce-checkout #place_order:hover {
	background: var(--cvg-navy) !important;
	border-color: var(--cvg-navy) !important;
	color: #fff !important;
}

/* 3) Cart form / table need to fill the body container. Without an explicit
   100% width, WC's table collapses to its content width and the row ends up
   floating mid-page with the .actions row stacking weirdly on the left. */
.cvg-wc-body .woocommerce-cart-form,
.cvg-wc-body form.woocommerce-cart-form,
.woocommerce-cart .cvg-wc-body .woocommerce-cart-form {
	width: 100% !important;
	display: block !important;
}
.cvg-wc-body table.shop_table {
	width: 100% !important;
	table-layout: auto !important;
	border-collapse: collapse !important;
}
.cvg-wc-body table.shop_table.cart {
	margin-bottom: 36px;
}
/* Column widths — keep remove tight, thumb tiny, name greedy, price/qty/subtotal natural. */
.cvg-wc-body table.shop_table .product-remove    { width: 36px; text-align: center; }
.cvg-wc-body table.shop_table .product-thumbnail { width: 88px; }
.cvg-wc-body table.shop_table .product-name      { width: auto; min-width: 220px; }
.cvg-wc-body table.shop_table .product-price,
.cvg-wc-body table.shop_table .product-subtotal  { white-space: nowrap; }
.cvg-wc-body table.shop_table .product-quantity  { width: 130px; }
/* .actions row spans full width and lays out coupon + update-cart inline */
.cvg-wc-body table.shop_table td.actions {
	padding: 20px 18px !important;
	background: var(--cvg-cream-deep);
}
.cvg-wc-body table.shop_table td.actions .coupon {
	display: inline-flex !important; gap: 8px;
	background: transparent !important;
	padding: 0 !important;
	margin-right: 12px;
	float: none !important;
	vertical-align: middle;
}
.cvg-wc-body table.shop_table td.actions .coupon label { display: none; }
.cvg-wc-body table.shop_table td.actions .coupon input[type="text"] {
	min-width: 180px;
}
.cvg-wc-body table.shop_table td.actions button,
.cvg-wc-body table.shop_table td.actions input[type="submit"] {
	float: none !important;
	vertical-align: middle;
}

/* 4) Shop product card — force the price to render visibly. The .price was
   being squeezed by the flex-column + button auto-margin combo. */
.cvg-wc-body ul.products li.product .woocommerce-loop-product__title {
	display: block !important;
	padding: 22px 24px 8px !important;
}
.cvg-wc-body ul.products li.product .price,
.cvg-wc-body ul.products li.product span.price,
.cvg-wc-body ul.products li.product .woocommerce-Price-amount {
	display: block !important;
	padding: 0 24px 18px !important;
	margin: 0 !important;
	font-family: var(--cvg-font-body) !important;
	font-size: 17px !important;
	font-weight: 500 !important;
	color: var(--cvg-gold-dark) !important;
}
/* Push the add-to-cart button to the bottom with proper spacing */
.cvg-wc-body ul.products li.product .button,
.cvg-wc-body ul.products li.product a.button {
	margin: auto 24px 22px !important;
	display: inline-flex !important;
	width: auto !important;
	align-self: stretch;
	justify-content: center;
}

/* 5) Cart totals "PROCEED TO CHECKOUT" container — let the button breathe */
.cvg-wc-body .wc-proceed-to-checkout {
	padding: 18px 0 0 !important;
	display: block;
}
.cvg-wc-body .wc-proceed-to-checkout .checkout-button {
	display: block !important;
	width: 100% !important;
	text-align: center;
}

/* =========================================================================
   v3.0.5 — Single product polish:
   - Quantity input upgraded to +/- stepper (JS wraps the input; styled here)
   - Tabs redesigned with proper editorial weight + animated underline
   ========================================================================= */

/* ---- Quantity stepper (+/-) on single product page ---------------------- */
.cvg-wc-body .product form.cart .quantity {
	display: inline-flex !important;
	align-items: stretch !important;
	border: 1.5px solid var(--cvg-line-soft) !important;
	padding: 0 !important;
	background: #fff;
	height: 50px;
	overflow: hidden;
}
.cvg-wc-body .product form.cart .quantity .cvg-qty-step {
	width: 38px; height: 100%;
	border: 0;
	background: transparent;
	color: var(--cvg-navy);
	font-family: var(--cvg-font-body);
	font-size: 18px; font-weight: 500; line-height: 1;
	cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	transition: background .2s var(--cvg-ease), color .2s var(--cvg-ease);
	user-select: none;
}
.cvg-wc-body .product form.cart .quantity .cvg-qty-step:hover {
	background: var(--cvg-cream-deep);
	color: var(--cvg-gold-dark);
}
.cvg-wc-body .product form.cart .quantity .cvg-qty-step:disabled {
	opacity: .35; cursor: not-allowed;
}
.cvg-wc-body .product form.cart .quantity .cvg-qty-step--down { border-right: 1px solid var(--cvg-line-soft); }
.cvg-wc-body .product form.cart .quantity .cvg-qty-step--up   { border-left:  1px solid var(--cvg-line-soft); }
.cvg-wc-body .product form.cart .quantity input[type="number"] {
	width: 52px !important;
	height: 100% !important;
	border: 0 !important;
	padding: 0 !important;
	background: transparent;
	text-align: center;
	font-family: var(--cvg-font-body);
	font-size: 15px;
	font-weight: 500;
	color: var(--cvg-navy);
	-moz-appearance: textfield;
}
.cvg-wc-body .product form.cart .quantity input[type="number"]::-webkit-outer-spin-button,
.cvg-wc-body .product form.cart .quantity input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ---- Tabs — editorial redesign (sit on cream, clean line, animated rule) */
.cvg-wc-body .woocommerce-tabs {
	grid-column: 1 / -1;
	margin-top: clamp(48px, 6vw, 80px);
	background: transparent !important;
	border: 0 !important;
}
.cvg-wc-body .woocommerce-tabs ul.tabs {
	display: flex !important;
	gap: clamp(12px, 2vw, 28px) !important;
	padding: 0 !important;
	margin: 0 0 -1px !important;
	list-style: none;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(0,30,48,.10) !important;
	position: relative;
	flex-wrap: wrap;
}
.cvg-wc-body .woocommerce-tabs ul.tabs::before,
.cvg-wc-body .woocommerce-tabs ul.tabs::after { content: none !important; display: none !important; }
.cvg-wc-body .woocommerce-tabs ul.tabs li {
	padding: 0 !important; margin: 0 !important;
	border: 0 !important; background: transparent !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}
.cvg-wc-body .woocommerce-tabs ul.tabs li::before,
.cvg-wc-body .woocommerce-tabs ul.tabs li::after { content: none !important; display: none !important; }
.cvg-wc-body .woocommerce-tabs ul.tabs li a {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px;
	padding: 18px 4px 20px !important;
	font-family: var(--cvg-font-nav) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: .18em !important;
	text-transform: uppercase !important;
	color: var(--cvg-muted) !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	text-decoration: none !important;
	position: relative;
	transition: color .25s var(--cvg-ease);
}
/* Animated underline: a 2px gold bar that slides in from the left on hover/active */
.cvg-wc-body .woocommerce-tabs ul.tabs li a::after {
	content: '';
	position: absolute;
	left: 0; right: 0;
	bottom: -1px;
	height: 2px;
	background: var(--cvg-gold);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .35s var(--cvg-ease);
}
.cvg-wc-body .woocommerce-tabs ul.tabs li a:hover {
	color: var(--cvg-navy) !important;
}
.cvg-wc-body .woocommerce-tabs ul.tabs li a:hover::after {
	transform: scaleX(.6);
}
.cvg-wc-body .woocommerce-tabs ul.tabs li.active a {
	color: var(--cvg-navy) !important;
}
.cvg-wc-body .woocommerce-tabs ul.tabs li.active a::after {
	transform: scaleX(1);
	height: 3px;
	bottom: -2px;
}

/* Panel — sits in a clean white card with breathing room */
.cvg-wc-body .woocommerce-Tabs-panel,
.cvg-wc-body .woocommerce-Tabs-panel--description,
.cvg-wc-body .woocommerce-Tabs-panel--additional_information,
.cvg-wc-body .woocommerce-Tabs-panel--reviews {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	border-top: 0;
	padding: clamp(32px, 4vw, 56px) clamp(28px, 3vw, 48px) !important;
	font-family: var(--cvg-font-body);
	font-size: 16px;
	line-height: 1.75;
	color: var(--cvg-ink);
}
.cvg-wc-body .woocommerce-Tabs-panel > h2:first-child,
.cvg-wc-body .woocommerce-Tabs-panel > h2 {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.4rem, 1vw + 1rem, 1.9rem);
	line-height: 1.15;
	color: var(--cvg-navy);
	margin: 0 0 24px !important;
	padding-bottom: 18px;
	border-bottom: 1px solid rgba(0,30,48,.08);
	text-transform: lowercase;
	font-weight: 400;
}
.cvg-wc-body .woocommerce-Tabs-panel > h2:first-child::before {
	content: '';
	display: inline-block;
	width: 28px; height: 2px;
	background: var(--cvg-gold);
	vertical-align: middle;
	margin-right: 14px;
	transform: translateY(-4px);
}
.cvg-wc-body .woocommerce-Tabs-panel p {
	margin: 0 0 1.1em;
}
.cvg-wc-body .woocommerce-Tabs-panel p:last-child { margin-bottom: 0; }
.cvg-wc-body .woocommerce-Tabs-panel a {
	color: var(--cvg-navy);
	border-bottom: 1px solid var(--cvg-gold);
	text-decoration: none;
	transition: color .2s;
}
.cvg-wc-body .woocommerce-Tabs-panel a:hover { color: var(--cvg-gold-dark); }
.cvg-wc-body .woocommerce-Tabs-panel ul,
.cvg-wc-body .woocommerce-Tabs-panel ol {
	padding-left: 1.4em;
	margin: 0 0 1.2em;
}
.cvg-wc-body .woocommerce-Tabs-panel li { margin: 0 0 .5em; }

/* Additional info table inside the tab panel — match shop_table styling */
.cvg-wc-body .woocommerce-Tabs-panel--additional_information table.shop_attributes {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}
.cvg-wc-body .woocommerce-Tabs-panel--additional_information table.shop_attributes th,
.cvg-wc-body .woocommerce-Tabs-panel--additional_information table.shop_attributes td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--cvg-line-soft);
	font-family: var(--cvg-font-body);
	font-size: 14.5px;
	color: var(--cvg-ink);
	font-style: normal;
	text-align: left;
}
.cvg-wc-body .woocommerce-Tabs-panel--additional_information table.shop_attributes th {
	font-family: var(--cvg-font-nav);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cvg-muted);
	width: 30%;
}

/* =========================================================================
   v3.0.6 — Shop card layout: kill the empty gap below the price
   ---------------------------------------------------------------------------
   WC's content-product.php renders:
     <li class="product">
       <a class="woocommerce-LoopProduct-link">  ← wraps image + title + price
         <img>
         <h2>Title</h2>
         <span class="price">$X</span>
       </a>
       <a class="button add_to_cart_button">Add to cart</a>
     </li>
   With `margin-top: auto` on the button to bottom-align across the grid,
   the gap between the price (inside anchor) and the button (sibling) shows
   as empty white space. Fix: make the anchor flex-grow and column-flex
   internally, push the price down inside the anchor, so the button sits
   immediately under the price with consistent padding.
   ========================================================================= */
.cvg-wc-body ul.products li.product {
	padding: 0 !important;
}
.cvg-wc-body ul.products li.product > a.woocommerce-LoopProduct-link,
.cvg-wc-body ul.products li.product > a.woocommerce-loop-product__link {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
	padding: 0 0 4px !important;
	text-decoration: none !important;
	color: inherit !important;
	min-height: 0;
}
.cvg-wc-body ul.products li.product > a.woocommerce-LoopProduct-link img,
.cvg-wc-body ul.products li.product > a.woocommerce-loop-product__link img {
	flex-shrink: 0;
	margin: 0 0 0 0 !important;
}
.cvg-wc-body ul.products li.product .woocommerce-loop-product__title {
	padding: 20px 24px 6px !important;
	margin: 0 !important;
	font-family: var(--cvg-font-display);
	font-size: 1.2rem;
	line-height: 1.22;
	color: var(--cvg-navy);
	text-transform: lowercase;
}
.cvg-wc-body ul.products li.product .price,
.cvg-wc-body ul.products li.product span.price {
	display: block !important;
	margin: auto 0 0 !important;     /* push price to bottom of anchor */
	padding: 6px 24px 18px !important;
	font-family: var(--cvg-font-body) !important;
	font-size: 17px !important;
	font-weight: 500 !important;
	color: var(--cvg-gold-dark) !important;
}
/* Button sits right below the anchor — small consistent gap, no auto margin */
.cvg-wc-body ul.products li.product > .button,
.cvg-wc-body ul.products li.product > a.button {
	margin: 0 24px 22px !important;
	display: inline-flex !important;
	align-self: stretch !important;
	justify-content: center !important;
}

/* =========================================================================
   v3.0.7 — Shop card empty gap: ROOT CAUSE
   ---------------------------------------------------------------------------
   Verified by direct DOM measurement in Chrome MCP:
     LI height 532, anchor 401, button 43, sr-text 1
     → 64px DEAD GAP between anchor bottom and button top
   The grid container had align-items: normal (= stretch), stretching the LI
   to row height. The anchor's `flex: 1 1 auto` wasn't actually distributing
   the extra space (anchor stayed at 401). Setting align-items: start makes
   each card size to its natural content — no stretch, no internal gap.
   ========================================================================= */
.cvg-wc-body ul.products,
.woocommerce.archive ul.products,
.woocommerce-page ul.products {
	align-items: start !important;
}
/* And drop the now-pointless flex-grow on the anchor — its children flow
   naturally at the top of the card, button sits right after. */
.cvg-wc-body ul.products li.product > a.woocommerce-LoopProduct-link,
.cvg-wc-body ul.products li.product > a.woocommerce-loop-product__link {
	flex: 0 0 auto !important;
}
/* And the price doesn't need margin-top: auto anymore */
.cvg-wc-body ul.products li.product .price,
.cvg-wc-body ul.products li.product span.price {
	margin: 0 !important;
	padding: 4px 24px 18px !important;
}

/* =========================================================================
   v3.0.9 — Post-QA fixes (Chrome MCP audit):
   - Cart .actions row: keep coupon + update inline, no APPLY COUPON wrap,
     don't show the cream-deep band that bleeds to the right half.
   - Cart totals SUBTOTAL/TOTAL th cells: drop the cream-deep block bg.
   - Checkout: hide empty shipping-fields container for virtual products.
   - Shop card: title min-height to align Add-to-Cart across the row.
   ========================================================================= */

/* 1) Cart actions row — clean horizontal layout */
.cvg-wc-body table.shop_table td.actions {
	background: transparent !important;          /* drop the cream-deep bg */
	padding: 24px 0 !important;
	border-top: 1px solid var(--cvg-line-soft);
	border-bottom: 0 !important;
}
.cvg-wc-body table.shop_table td.actions .coupon {
	display: inline-flex !important;
	gap: 8px !important;
	margin: 0 18px 0 0 !important;
	padding: 0 !important;
	background: transparent !important;
	float: none !important;
	vertical-align: middle;
	align-items: stretch;
	flex-wrap: nowrap;
}
.cvg-wc-body table.shop_table td.actions .coupon label { display: none !important; }
.cvg-wc-body table.shop_table td.actions .coupon input[type="text"] {
	min-width: 220px;
	height: 46px;
	padding: 0 14px;
	border: 1.5px solid var(--cvg-line-soft);
	background: #fff;
	font-family: var(--cvg-font-body);
	font-size: 14px;
}
.cvg-wc-body table.shop_table td.actions .coupon button[name="apply_coupon"],
.cvg-wc-body table.shop_table td.actions button[name="update_cart"] {
	white-space: nowrap !important;
	min-width: 0;
	width: auto !important;
	padding: 0 22px !important;
	height: 46px !important;
	line-height: 46px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	float: none !important;
	vertical-align: middle;
	font-family: var(--cvg-font-nav) !important;
	font-size: 12px !important;
	letter-spacing: .14em !important;
}
.cvg-wc-body table.shop_table td.actions button[name="update_cart"] {
	margin-left: 0;
}

/* 2) Cart totals — kill the colored cell on the label column */
.cvg-wc-body .cart_totals table.shop_table_responsive th,
.cvg-wc-body .cart_totals table th {
	background: transparent !important;
	width: auto !important;
	padding: 14px 16px 14px 0 !important;
	border-bottom: 1px solid var(--cvg-line-soft);
	font-family: var(--cvg-font-nav) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	color: var(--cvg-muted) !important;
	text-align: left !important;
	vertical-align: middle;
}
.cvg-wc-body .cart_totals table td {
	background: transparent !important;
	padding: 14px 0 !important;
	border-bottom: 1px solid var(--cvg-line-soft);
	font-family: var(--cvg-font-body);
	color: var(--cvg-ink);
	vertical-align: middle;
	text-align: right;
}
.cvg-wc-body .cart_totals .order-total td,
.cvg-wc-body .cart_totals .order-total td strong {
	font-size: 1.25rem;
	color: var(--cvg-gold-dark) !important;
	font-weight: 600;
}

/* 3) Checkout — hide empty shipping fields container (virtual products).
   The fields container exists in the DOM but its inner wrapper has no
   children when there are no shipping fields to render. */
.cvg-wc-body .woocommerce-shipping-fields:has(.woocommerce-shipping-fields__field-wrapper:empty),
.cvg-wc-body .woocommerce-shipping-fields .woocommerce-shipping-fields__field-wrapper:empty {
	display: none !important;
}
/* Fallback for browsers without :has() — hide the whole shipping fields
   section if its inner h3 is missing too (the header is normally added
   alongside actual fields). */
.cvg-wc-body .woocommerce-shipping-fields:not(:has(h3)) {
	display: none !important;
}

/* 4) Shop card — equalize title heights so Add-to-Cart aligns across row.
   Title font-size is 1.2rem (~19.2px) at line-height 1.22 → 1 line ≈ 23.4px.
   For 2-line min-height we need ~46.8px of TEXT space. The padding
   (20px top + 6px bottom = 26px) adds to that; min-height applies to the
   whole box, so we need ~73px / 19.2px = 3.8em. */
.cvg-wc-body ul.products li.product .woocommerce-loop-product__title {
	min-height: 3.8em;
	display: flex !important;
	align-items: flex-start;
}

/* =========================================================================
   v3.1.1 — CART + CHECKOUT aesthetic redesign (UI/UX conversion pass)
   ---------------------------------------------------------------------------
   Verified via Chrome MCP DOM inspection:
   - Cart: table-layout:auto dumped 408px into the empty .product-remove
     column, leaving the row sparse + unbalanced.
   - Checkout: WC floats .col-1 (billing) + .col-2 (order notes) side-by-side
     inside the left column → cramped "3-column" look with order notes
     stranded in the center. Order heading + review float as disconnected
     boxes with gaps.
   This block rebuilds both as clean, conversion-focused layouts.
   ========================================================================= */

/* ========================= CART ========================= */

/* Card shell around the whole items table */
.cvg-wc-body .woocommerce-cart-form {
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	border-radius: 2px;
	overflow: hidden;
}

/* Fixed layout so column widths are RESPECTED (auto was dumping slack into
   the remove column). product-name has no width → absorbs the remainder. */
.cvg-wc-body .woocommerce-cart-form table.shop_table {
	width: 100% !important;
	table-layout: fixed !important;
	border-collapse: collapse !important;
	margin: 0 !important;
	border: 0 !important;
}
.cvg-wc-body .woocommerce-cart-form table.shop_table thead th {
	background: var(--cvg-cream-deep);
	font-family: var(--cvg-font-nav);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cvg-muted);
	padding: 16px 18px;
	border: 0;
	text-align: left;
}
/* Column widths (fixed layout) */
.cvg-wc-body .woocommerce-cart-form table.shop_table th.product-remove,
.cvg-wc-body .woocommerce-cart-form table.shop_table td.product-remove    { width: 56px !important; text-align: center; }
.cvg-wc-body .woocommerce-cart-form table.shop_table th.product-thumbnail,
.cvg-wc-body .woocommerce-cart-form table.shop_table td.product-thumbnail { width: 104px !important; }
.cvg-wc-body .woocommerce-cart-form table.shop_table th.product-name,
.cvg-wc-body .woocommerce-cart-form table.shop_table td.product-name      { width: auto !important; }
.cvg-wc-body .woocommerce-cart-form table.shop_table th.product-price,
.cvg-wc-body .woocommerce-cart-form table.shop_table td.product-price     { width: 120px !important; text-align: left; }
.cvg-wc-body .woocommerce-cart-form table.shop_table th.product-quantity,
.cvg-wc-body .woocommerce-cart-form table.shop_table td.product-quantity  { width: 140px !important; text-align: left; }
.cvg-wc-body .woocommerce-cart-form table.shop_table th.product-subtotal,
.cvg-wc-body .woocommerce-cart-form table.shop_table td.product-subtotal  { width: 120px !important; text-align: right; }

/* Body cells */
.cvg-wc-body .woocommerce-cart-form table.shop_table tbody td {
	padding: 24px 18px !important;
	border: 0 !important;
	border-bottom: 1px solid var(--cvg-line-soft) !important;
	vertical-align: middle !important;
	background: #fff;
	font-family: var(--cvg-font-body);
	font-size: 15px;
	color: var(--cvg-ink);
}
.cvg-wc-body .woocommerce-cart-form table.shop_table tbody tr:last-of-type td { border-bottom: 1px solid var(--cvg-line-soft) !important; }

/* Product thumbnail — real square image */
.cvg-wc-body .woocommerce-cart-form td.product-thumbnail img {
	width: 72px !important;
	height: 72px !important;
	object-fit: cover;
	border: 1px solid var(--cvg-line-soft);
	display: block;
	margin: 0;
}
/* Product name */
.cvg-wc-body .woocommerce-cart-form td.product-name a {
	font-family: var(--cvg-font-display);
	font-size: 1.15rem;
	color: var(--cvg-navy);
	text-decoration: none;
	text-transform: lowercase;
	line-height: 1.2;
}
.cvg-wc-body .woocommerce-cart-form td.product-name a:hover { color: var(--cvg-gold-dark); }
.cvg-wc-body .woocommerce-cart-form td.product-price,
.cvg-wc-body .woocommerce-cart-form td.product-subtotal { color: var(--cvg-ink); font-weight: 500; }
.cvg-wc-body .woocommerce-cart-form td.product-subtotal { color: var(--cvg-gold-dark); font-weight: 600; }

/* Remove X — circular, subtle until hover */
.cvg-wc-body .woocommerce-cart-form td.product-remove a.remove {
	display: inline-flex !important;
	align-items: center; justify-content: center;
	width: 28px; height: 28px;
	border-radius: 50%;
	font-size: 20px; line-height: 1;
	color: var(--cvg-muted) !important;
	background: transparent !important;
	text-decoration: none;
	transition: all .2s var(--cvg-ease);
}
.cvg-wc-body .woocommerce-cart-form td.product-remove a.remove:hover {
	color: #fff !important;
	background: #C0392B !important;
}

/* Quantity stepper-ish box in cart row */
.cvg-wc-body .woocommerce-cart-form td.product-quantity .quantity {
	display: inline-flex;
	align-items: center;
	border: 1.5px solid var(--cvg-line-soft);
	background: #fff;
	height: 44px;
}
.cvg-wc-body .woocommerce-cart-form td.product-quantity .quantity input.qty {
	width: 56px !important;
	height: 100%;
	border: 0 !important;
	background: transparent;
	text-align: center;
	font-family: var(--cvg-font-body);
	font-size: 15px;
	color: var(--cvg-navy);
	-moz-appearance: textfield;
}
.cvg-wc-body .woocommerce-cart-form td.product-quantity .quantity input.qty::-webkit-outer-spin-button,
.cvg-wc-body .woocommerce-cart-form td.product-quantity .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Actions row (coupon + update) — full-width band, inline */
.cvg-wc-body .woocommerce-cart-form table.shop_table td.actions {
	padding: 22px 18px !important;
	background: #fff !important;
	border: 0 !important;
	border-top: 1px solid var(--cvg-line-soft) !important;
	display: flex !important;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.cvg-wc-body .woocommerce-cart-form td.actions .coupon {
	display: inline-flex !important;
	gap: 8px !important;
	margin: 0 auto 0 0 !important;   /* push update-cart to the far right */
	padding: 0 !important;
	background: transparent !important;
}
.cvg-wc-body .woocommerce-cart-form td.actions .coupon input#coupon_code {
	width: 220px;
	height: 46px;
	padding: 0 14px;
	border: 1.5px solid var(--cvg-line-soft);
	background: #fff;
	font-family: var(--cvg-font-body);
	font-size: 14px;
}
.cvg-wc-body .woocommerce-cart-form td.actions button {
	height: 46px !important;
	white-space: nowrap !important;
	width: auto !important;
}

/* Collaterals — totals aligned right at a controlled width, not full-bleed grid */
.cvg-wc-body .cart-collaterals {
	display: flex !important;
	justify-content: flex-end !important;
	grid-template-columns: none !important;
	margin-top: 36px !important;
	gap: 0 !important;
}
.cvg-wc-body .cart-collaterals .cart_totals {
	width: 100% !important;
	max-width: 440px !important;
	grid-column: auto !important;
	background: #fff;
	border: 1px solid var(--cvg-line-soft);
	padding: 32px !important;
}
.cvg-wc-body .cart_totals h2 {
	font-family: var(--cvg-font-display);
	font-size: 1.4rem;
	color: var(--cvg-navy);
	margin: 0 0 20px !important;
	text-transform: lowercase;
}

/* ========================= CHECKOUT ========================= */

/* Wider left column, controlled gap, no row-gap (we manage vertical spacing) */
@media (min-width: 900px) {
	.cvg-wc-body form.checkout {
		display: grid !important;
		grid-template-columns: 1.55fr 1fr !important;
		column-gap: 40px !important;
		row-gap: 0 !important;
		align-items: start !important;
	}
	.cvg-wc-body form.checkout > #customer_details { grid-column: 1 !important; grid-row: 1 !important; }
	.cvg-wc-body form.checkout > #order_review     { grid-column: 2 !important; grid-row: 1 !important; }
}

/* Stack billing + additional-info VERTICALLY inside the left column.
   (WC floats .col-1 / .col-2 side by side by default — the root cause of
   the cramped "order notes in the center" problem.) */
.cvg-wc-body #customer_details.col2-set { display: block !important; }
.cvg-wc-body #customer_details .col-1,
.cvg-wc-body #customer_details .col-2 {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.cvg-wc-body #customer_details .col-2 { margin-top: 24px !important; }

/* Billing + additional-info as clean stacked cards */
.cvg-wc-body .woocommerce-billing-fields,
.cvg-wc-body .woocommerce-additional-fields {
	background: #fff !important;
	border: 1px solid var(--cvg-line-soft) !important;
	padding: clamp(24px, 3vw, 36px) !important;
	margin: 0 !important;
}
.cvg-wc-body .woocommerce-billing-fields h3,
.cvg-wc-body .woocommerce-additional-fields h3 {
	font-family: var(--cvg-font-display);
	font-size: 1.4rem;
	color: var(--cvg-navy);
	margin: 0 0 22px !important;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--cvg-line-soft);
	text-transform: lowercase;
	font-weight: 400;
}

/* Order summary — hide WC's separate H3, fold the label into ONE sticky panel */
.cvg-wc-body #order_review_heading { display: none !important; }
.cvg-wc-body #order_review {
	background: #fff !important;
	border: 1px solid var(--cvg-line-soft) !important;
	padding: 0 !important;
	margin: 0 !important;
	position: sticky;
	top: 100px;
}
.cvg-wc-body #order_review::before {
	content: 'your order';
	display: block;
	font-family: var(--cvg-font-display);
	font-size: 1.4rem;
	color: var(--cvg-navy);
	text-transform: lowercase;
	padding: clamp(24px, 3vw, 32px) clamp(24px, 3vw, 32px) 0;
}
.cvg-wc-body #order_review .shop_table {
	margin: 20px 0 0 !important;
	border: 0 !important;
	width: 100% !important;
}
.cvg-wc-body #order_review .shop_table th,
.cvg-wc-body #order_review .shop_table td {
	padding: 14px clamp(24px, 3vw, 32px) !important;
	border: 0 !important;
	border-bottom: 1px solid var(--cvg-line-soft) !important;
	font-family: var(--cvg-font-body);
	font-size: 14.5px;
	color: var(--cvg-ink);
}
.cvg-wc-body #order_review .shop_table thead th {
	font-family: var(--cvg-font-nav);
	font-size: 11px; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--cvg-muted);
	background: var(--cvg-cream-deep);
}
.cvg-wc-body #order_review .shop_table .order-total th,
.cvg-wc-body #order_review .shop_table .order-total td {
	border-bottom: 0 !important;
	padding-top: 18px !important;
	padding-bottom: 18px !important;
}
.cvg-wc-body #order_review .shop_table .order-total td,
.cvg-wc-body #order_review .shop_table .order-total .amount {
	font-size: 1.2rem;
	color: var(--cvg-gold-dark) !important;
	font-weight: 600;
}
.cvg-wc-body #order_review td.product-total,
.cvg-wc-body #order_review .cart-subtotal td { text-align: right; }

/* Payment block sits flush inside the summary panel */
.cvg-wc-body #order_review #payment {
	background: var(--cvg-cream-deep) !important;
	border: 0 !important;
	border-top: 1px solid var(--cvg-line-soft) !important;
	margin: 0 !important;
	padding: clamp(22px, 3vw, 28px) !important;
}
.cvg-wc-body #order_review #payment #place_order {
	width: 100% !important;
	margin-top: 14px !important;
	padding: 16px 26px !important;
	font-size: 13px !important;
}
/* Trust line under place-order for conversion reassurance */
.cvg-wc-body #order_review #payment::after {
	content: '🔒  Secure checkout · your details stay private';
	display: block;
	margin-top: 14px;
	font-family: var(--cvg-font-body);
	font-size: 12px;
	color: var(--cvg-muted);
	text-align: center;
}

/* Tighten the empty checkout left column on mobile */
@media (max-width: 899px) {
	.cvg-wc-body #order_review { position: static; margin-top: 28px !important; }
}

/* =========================================================================
   v3.1.2 — Cart actions row fix
   ---------------------------------------------------------------------------
   In a table-layout:fixed table, `display:flex` on the colspan'd <td.actions>
   detaches it from table layout — it collapses to the first column width
   (56px) and the coupon + update-cart overflow off the left edge. Keep the
   td as a real table-cell (so colspan=6 spans full width) and lay the
   children out with inline-flex + a right-floated update button instead.
   ========================================================================= */
.cvg-wc-body .woocommerce-cart-form table.shop_table td.actions {
	display: table-cell !important;
	width: auto !important;
	text-align: left !important;
	padding: 22px 18px !important;
	background: #fff !important;
	border: 0 !important;
	border-top: 1px solid var(--cvg-line-soft) !important;
	overflow: hidden;            /* contain the right-floated button */
}
.cvg-wc-body .woocommerce-cart-form table.shop_table td.actions .coupon {
	display: inline-flex !important;
	gap: 8px !important;
	margin: 0 !important;
	padding: 0 !important;
	float: left !important;
	background: transparent !important;
	vertical-align: middle;
}
.cvg-wc-body .woocommerce-cart-form table.shop_table td.actions button[name="update_cart"] {
	float: right !important;
	margin: 0 !important;
}

/* =========================================================================
   v3.1.7 — EDITORIAL CONSULTANCY REDESIGN
   ---------------------------------------------------------------------------
   10-point shift toward editorial restraint. Each block is documented so the
   intent survives future edits.
   ========================================================================= */

/* ---------- 1. HERO: one primary CTA + one quiet text link ---------------- */
.cvg-actions-row.cvg-actions-row--editorial {
	display: flex;
	align-items: center;
	gap: clamp(20px, 3vw, 36px);
	flex-wrap: wrap;
	margin-top: clamp(28px, 4vw, 44px);
}
.cvg-hero-link {
	font-family: var(--cvg-font-nav);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
	padding: 6px 0 4px;
	border-bottom: 1px solid rgba(255,255,255,.45);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: border-color .25s var(--cvg-ease), color .25s var(--cvg-ease), gap .25s var(--cvg-ease);
}
.cvg-hero-link span { transition: transform .25s var(--cvg-ease); display: inline-block; }
.cvg-hero-link:hover,
.cvg-hero-link:focus { border-bottom-color: var(--cvg-gold); gap: 12px; }
.cvg-hero-link:hover span { transform: translateX(3px); color: var(--cvg-gold); }

/* Editorial hero typography — slightly larger letter-spacing, controlled width,
   small eyebrow space above the H1. */
.cvg-hero h1 {
	letter-spacing: -.005em;
}
.cvg-hero .cvg-hero-sub {
	max-width: 620px;
	font-size: clamp(1.0625rem, .35vw + 1rem, 1.2rem);
	line-height: 1.65;
	color: rgba(255,255,255,.92);
}

/* ---------- 7. COLOR DISCIPLINE: gold pulled back to CTAs + emphasis ----- */
/* Repaint eyebrow rules, folio watermarks, ornament accents to muted navy.
   Keep gold for: .cvg-btn-accent, h2/h3 em italic emphasis, hero text-link
   underline-hover. Everything else demotes to navy/muted. */
.cvg-eyebrow {
	color: var(--cvg-muted) !important;
	letter-spacing: .22em;
}
.cvg-eyebrow::before {
	background: var(--cvg-muted) !important;
	opacity: .6;
}
/* Folio watermarks on the "What we offer" navy cards: demote gold → soft navy */
.cvg-offer-card-folio,
.cvg-folio,
.cvg-services-card-folio {
	color: rgba(255,255,255,.10) !important;
}
.cvg-services-card-folio {
	color: rgba(0,80,111,.10) !important;
}
/* Section-head rules — neutral hairline, not gold */
.cvg-section-head .cvg-eyebrow + h2,
.cvg-section-head h2 + .cvg-eyebrow {
	border-color: rgba(0,30,48,.10) !important;
}
/* Ribbon: muted gold-dark on cream-deep, not full saturated */
.cvg-ribbon {
	background: var(--cvg-cream-deep) !important;
	border-top: 1px solid rgba(0,30,48,.06);
	border-bottom: 1px solid rgba(0,30,48,.06);
}
.cvg-ribbon-text span {
	color: var(--cvg-navy) !important;
}
.cvg-ribbon-text span::before,
.cvg-ribbon-text span::after {
	background: rgba(0,80,111,.18) !important;
}

/* ---------- 10. READING RHYTHM: more vertical breath on every cream section */
.cvg-wwd,
.cvg-who,
.cvg-approach,
.cvg-founder-note,
.cvg-recent-work,
.cvg-insights-band {
	padding-block: clamp(80px, 9vw, 140px) !important;
}
.cvg-offer,
.cvg-quotes {
	padding-block: clamp(90px, 10vw, 160px) !important;
}
/* Drop continuous-loop ornament animations everywhere. Scroll-reveal fades
   for content remain (data-reveal stays on below-fold sections). */
.cvg-ornament {
	animation: none !important;
	transition: none !important;
}
@media (max-width: 768px) {
	.cvg-ornament { display: none !important; }
}

/* ---------- NEW SECTION: Founder note ------------------------------------- */
.cvg-founder-note {
	background: var(--cvg-cream);
	border-bottom: 1px solid rgba(0,30,48,.06);
}
.cvg-founder-note-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(28px, 4vw, 48px);
	align-items: center;
	max-width: 980px;
	margin: 0 auto;
}
@media (min-width: 768px) {
	.cvg-founder-note-inner {
		grid-template-columns: 140px 1fr;
		gap: clamp(36px, 5vw, 64px);
	}
}
.cvg-founder-note-portrait {
	width: 140px; height: 140px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--cvg-cream-deep);
	flex-shrink: 0;
}
.cvg-founder-note-portrait img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.cvg-founder-note-body { max-width: 640px; }
.cvg-founder-note-eyebrow {
	font-family: var(--cvg-font-nav);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--cvg-muted);
	margin: 0 0 14px;
}
.cvg-founder-note-name {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.5rem, 1.2vw + 1rem, 2rem);
	line-height: 1.15;
	color: var(--cvg-navy);
	margin: 0 0 6px;
	text-transform: lowercase;
}
.cvg-founder-note-credential {
	font-family: var(--cvg-font-body);
	font-size: 14.5px;
	color: var(--cvg-muted);
	margin: 0 0 18px;
}
.cvg-founder-note-statement {
	font-family: var(--cvg-font-body);
	font-size: clamp(1.05rem, .4vw + 1rem, 1.2rem);
	line-height: 1.65;
	color: var(--cvg-ink);
	margin: 0 0 22px;
}
.cvg-founder-note-statement em {
	font-family: var(--cvg-font-display);
	font-style: italic;
	color: var(--cvg-gold);
}
.cvg-founder-note-bio-link {
	font-family: var(--cvg-font-nav);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cvg-navy);
	text-decoration: none;
	border-bottom: 1px solid rgba(0,30,48,.20);
	padding-bottom: 2px;
	display: inline-flex;
	gap: 8px;
	transition: border-color .2s var(--cvg-ease), gap .2s var(--cvg-ease);
}
.cvg-founder-note-bio-link span { transition: transform .2s var(--cvg-ease); }
.cvg-founder-note-bio-link:hover { border-bottom-color: var(--cvg-gold); gap: 12px; }
.cvg-founder-note-bio-link:hover span { transform: translateX(3px); }

/* ---------- NEW SECTION: Recent work band -------------------------------- */
.cvg-recent-work {
	background: #fff;
	border-top: 1px solid rgba(0,30,48,.06);
	border-bottom: 1px solid rgba(0,30,48,.06);
}
.cvg-recent-work .cvg-section-head {
	max-width: 720px;
	margin: 0 auto clamp(40px, 5vw, 64px);
	text-align: center;
}
.cvg-recent-work .cvg-section-head h2 {
	font-family: var(--cvg-font-display);
	font-size: clamp(2rem, 2vw + 1.4rem, 2.8rem);
	line-height: 1.1;
	color: var(--cvg-navy);
	margin: 0 0 14px;
	text-transform: lowercase;
}
.cvg-recent-work .cvg-section-head p {
	font-family: var(--cvg-font-body);
	color: var(--cvg-muted);
	font-size: 1.05rem;
	margin: 0;
}
.cvg-recent-work-grid {
	display: grid;
	gap: clamp(28px, 3vw, 40px);
	grid-template-columns: 1fr;
}
@media (min-width: 900px) {
	.cvg-recent-work-grid { grid-template-columns: repeat(3, 1fr); }
}
.cvg-recent-work-card {
	display: flex;
	flex-direction: column;
	padding: clamp(28px, 3vw, 36px);
	background: var(--cvg-cream);
	border: 1px solid rgba(0,30,48,.06);
	text-decoration: none;
	transition: border-color .3s var(--cvg-ease), transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease);
	position: relative;
}
.cvg-recent-work-card:hover {
	border-color: rgba(216,137,36,.30);
	transform: translateY(-3px);
	box-shadow: 0 18px 40px -22px rgba(0,30,48,.20);
}
.cvg-recent-work-card-pillar {
	font-family: var(--cvg-font-nav);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--cvg-muted);
	margin: 0 0 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid rgba(0,30,48,.08);
}
.cvg-recent-work-card-title {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.25rem, .8vw + 1rem, 1.6rem);
	line-height: 1.18;
	color: var(--cvg-navy);
	text-transform: lowercase;
	margin: 0 0 14px;
}
.cvg-recent-work-card-summary {
	font-family: var(--cvg-font-body);
	font-size: 15px;
	line-height: 1.6;
	color: var(--cvg-ink);
	margin: 0 0 20px;
	flex-grow: 1;
}
.cvg-recent-work-card-quote {
	font-family: var(--cvg-font-display);
	font-style: italic;
	font-size: 1.05rem;
	line-height: 1.4;
	color: var(--cvg-gold-dark);
	margin: 0 0 22px;
	border-left: 2px solid var(--cvg-gold);
	padding-left: 14px;
}
.cvg-recent-work-card-more {
	font-family: var(--cvg-font-nav);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cvg-navy);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: gap .2s var(--cvg-ease), color .2s var(--cvg-ease);
}
.cvg-recent-work-card:hover .cvg-recent-work-card-more {
	color: var(--cvg-gold-dark);
	gap: 12px;
}

/* ---------- NEW SECTION: Insights band ----------------------------------- */
.cvg-insights-band {
	background: var(--cvg-cream-deep);
	border-bottom: 1px solid rgba(0,30,48,.06);
}
.cvg-insights-band .cvg-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin: 0 0 clamp(36px, 4vw, 56px);
}
.cvg-insights-band .cvg-section-head h2 {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.85rem, 1.8vw + 1.3rem, 2.6rem);
	line-height: 1.1;
	color: var(--cvg-navy);
	margin: 0;
	text-transform: lowercase;
}
.cvg-insights-band-all {
	font-family: var(--cvg-font-nav);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cvg-navy);
	text-decoration: none;
	border-bottom: 1px solid rgba(0,30,48,.20);
	padding-bottom: 2px;
	display: inline-flex;
	gap: 8px;
	transition: border-color .2s var(--cvg-ease), gap .2s var(--cvg-ease);
}
.cvg-insights-band-all span { transition: transform .2s var(--cvg-ease); }
.cvg-insights-band-all:hover { border-bottom-color: var(--cvg-gold); gap: 12px; }
.cvg-insights-band-all:hover span { transform: translateX(3px); }
.cvg-insights-band-grid {
	display: grid;
	gap: clamp(28px, 3vw, 40px);
	grid-template-columns: 1fr;
}
@media (min-width: 900px) {
	.cvg-insights-band-grid { grid-template-columns: 1fr 1fr; }
}
.cvg-insights-band-card {
	display: block;
	padding: clamp(28px, 3vw, 36px);
	background: #fff;
	border: 1px solid rgba(0,30,48,.06);
	text-decoration: none;
	transition: border-color .3s var(--cvg-ease), transform .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease);
}
.cvg-insights-band-card:hover {
	border-color: rgba(216,137,36,.30);
	transform: translateY(-3px);
	box-shadow: 0 18px 40px -22px rgba(0,30,48,.20);
}
.cvg-insights-band-card-meta {
	font-family: var(--cvg-font-nav);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--cvg-muted);
	margin: 0 0 14px;
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}
.cvg-insights-band-card-meta-dot {
	width: 3px; height: 3px;
	border-radius: 50%;
	background: var(--cvg-muted);
	display: inline-block;
	align-self: center;
	opacity: .5;
}
.cvg-insights-band-card-title {
	font-family: var(--cvg-font-display);
	font-size: clamp(1.3rem, 1vw + 1rem, 1.7rem);
	line-height: 1.18;
	color: var(--cvg-navy);
	text-transform: lowercase;
	margin: 0 0 14px;
}
.cvg-insights-band-card-excerpt {
	font-family: var(--cvg-font-body);
	font-size: 15px;
	line-height: 1.65;
	color: var(--cvg-ink);
	margin: 0 0 20px;
}
.cvg-insights-band-card-author {
	font-family: var(--cvg-font-body);
	font-size: 13px;
	color: var(--cvg-muted);
}

/* ---------- 9. FOOTER REVEAL: editorial business card -------------------- */
.cvg-site-footer {
	background: var(--cvg-navy-deep);
	color: rgba(255,255,255,.85);
	padding: clamp(48px, 5vw, 72px) 0 28px;
}
.cvg-footer-inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 clamp(20px, 3vw, 48px);
}
.cvg-footer-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(32px, 4vw, 56px);
	padding-bottom: 32px;
	border-bottom: 1px solid rgba(255,255,255,.10);
}
@media (min-width: 768px) {
	.cvg-footer-card { grid-template-columns: 1.4fr 1fr 1fr; }
}
.cvg-footer-firm {
	display: flex;
	flex-direction: column;
}
.cvg-footer-firm-mark {
	display: block;
	margin-bottom: 18px;
}
.cvg-footer-firm-mark img {
	height: 44px;
	width: auto;
	filter: brightness(0) invert(1);
	display: block;
}
.cvg-footer-firm-line {
	font-family: var(--cvg-font-body);
	font-size: 14px;
	line-height: 1.65;
	color: rgba(255,255,255,.78);
	margin: 0 0 6px;
}
.cvg-footer-firm-line strong {
	font-weight: 500;
	color: #fff;
}
.cvg-footer-col-eyebrow {
	font-family: var(--cvg-font-nav);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: rgba(255,255,255,.55);
	margin: 0 0 14px;
}
.cvg-footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.cvg-footer-col li { margin: 0 0 8px; }
.cvg-footer-col a {
	font-family: var(--cvg-font-body);
	font-size: 14px;
	color: rgba(255,255,255,.78);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color .2s var(--cvg-ease), border-color .2s var(--cvg-ease);
}
.cvg-footer-col a:hover {
	color: #fff;
	border-bottom-color: rgba(216,137,36,.6);
}
.cvg-footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	margin-top: 28px;
	font-family: var(--cvg-font-body);
	font-size: 12.5px;
	color: rgba(255,255,255,.55);
}
.cvg-footer-bottom a {
	color: rgba(255,255,255,.65);
	text-decoration: none;
	border-bottom: 1px solid rgba(255,255,255,.15);
	padding-bottom: 1px;
}
.cvg-footer-bottom a:hover { color: #fff; border-bottom-color: var(--cvg-gold); }
.cvg-footer-social {
	display: inline-flex;
	gap: 14px;
}

/* =========================================================================
   v3.1.8 — Ornament restraint
   ---------------------------------------------------------------------------
   Editorial consultancy benchmarks (McKinsey, BCG, ReD, Bridgespan, Wonderful,
   Topos) ship with ZERO decorative ornaments. The brand reads through type,
   color discipline, italic emphasis, and the logo — adding floating botanical
   circles + 400-540px brand bursts dilutes that toolkit rather than
   compounding it. Hiding ornaments:
     1. On the homepage, site-wide (every cvg-ornament inside body.home).
     2. Inside the final CTA section everywhere — it renders on every page,
        and the 540px corner burst was the single loudest decoration on the
        site.
   Inner pages (services, case study, about) keep ornaments for now. Ornament
   markup is preserved — re-enabling is a one-line override.
   ========================================================================= */
body.home .cvg-ornament,
.cvg-final-cta .cvg-ornament {
	display: none !important;
}

/* =========================================================================
   v3.1.9 — "What We Offer" card hover restraint
   ---------------------------------------------------------------------------
   Old hover stacked 6 simultaneous moves (8px lift, 32×64px shadow, top
   accent line slide, folio color+position jump, burst rotate 40°+scale,
   off-brand orange link color shift). Read warm-creative-agency, not
   editorial. Replaced with the editorial-card pattern: subtle lift +
   subtle shadow + arrow nudge. Folio and burst stay PUT — they're
   composition elements, not animation targets.

   Also fixes off-brand link colors:
   #E58921 / #F39B36 → var(--cvg-gold) / var(--cvg-gold-light)
   so the "Learn more" link is part of the locked brand palette.
   ========================================================================= */

/* Quieter resting state — kill the multi-radial gradient, use simple navy */
.cvg-offer-card {
	background:
		linear-gradient(180deg, var(--cvg-navy-deep) 0%, #001D2D 100%) !important;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.08),
		inset 0 -2px 0 0 var(--cvg-gold) !important;
	transition: transform .35s var(--cvg-ease), border-color .35s var(--cvg-ease), box-shadow .35s var(--cvg-ease) !important;
}
/* Top accent line — removed entirely (was decorative-on-hover only) */
.cvg-offer-card::after { display: none !important; }
/* Paper grain ::before — keep, it's static texture not animation */

/* Folio stays put. No color shift, no position jump on hover. Already
   demoted to rgba(255,255,255,.10) by v3.1.7 color discipline; this just
   removes the hover-state override below. */
.cvg-offer-card-folio {
	transition: none !important;
}

/* Burst — already animation-killed; remove the rotate+scale on hover too */
.cvg-offer-card-burst {
	transition: none !important;
}

/* "Learn more" link → brand gold, not bright orange */
.cvg-offer-more {
	color: var(--cvg-gold) !important;
}
.cvg-offer-more::after {
	background: var(--cvg-gold) !important;
}
.cvg-offer-more:hover,
.cvg-offer-more:focus {
	color: var(--cvg-gold-light) !important;
	gap: 14px !important;
}
.cvg-offer-more:hover::after,
.cvg-offer-more:focus::after {
	width: 36px !important;
	background: var(--cvg-gold-light) !important;
}

/* HOVER — editorial pattern: small lift + subtle shadow only */
.cvg-offer-card:hover {
	transform: translateY(-3px) !important;
	border-color: rgba(216,137,36,.28) !important;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.10),
		inset 0 -2px 0 0 var(--cvg-gold),
		0 16px 32px -10px rgba(0,18,30,.45) !important;
}
/* Cancel the original hover effects on folio + burst */
.cvg-offer-card:hover .cvg-offer-card-folio {
	color: rgba(255,255,255,.10) !important;
	transform: none !important;
}
.cvg-offer-card:hover .cvg-offer-card-burst {
	background: rgba(216, 137, 36, .04) !important;
	transform: none !important;
}

/* Final cleanup: hide the per-card brand-burst masks inside each offer card.
   These aren't .cvg-ornament so the v3.1.8 rule didn't catch them, but
   they're decorative (a 460×460 molecule pattern behind text) and pull the
   eye for no purpose now that the hover rotation is gone. */
.cvg-offer-card-burst {
	display: none !important;
}

/* =========================================================================
   v3.2.1 — Footer: services back in a row at the bottom
   ---------------------------------------------------------------------------
   Client request: "the footer looked good with services in a row in the
   bottom." Restructured the v3.1.7 3-column grid (Firm | Services | Read)
   into the editorial-with-ribbon pattern:
     1. TOP: firm reveal (logo + summary + legal + contact) — full width,
        editorial restraint preserved
     2. MIDDLE: services as a horizontal row (the old footer ribbon, back)
     3. BOTTOM: copyright + social
   Dropped the "Read" column — those links already live in the primary
   header nav (Insights, Case Studies, About, Contact).
   ========================================================================= */

/* Reset the v3.1.7 grid card */
.cvg-footer-card { display: contents !important; }

/* TOP — firm reveal full-width, generous left-aligned */
.cvg-footer-firm {
	display: block !important;
	max-width: 760px;
	margin: 0 auto clamp(32px, 4vw, 48px) !important;   /* center the card */
	text-align: center;                                  /* center all text inside */
}
.cvg-footer-firm-mark {
	display: inline-block;                               /* let inline-block center via text-align */
	margin: 0 auto 22px;
}
.cvg-footer-firm-mark img {
	height: 44px; width: auto;
	filter: brightness(0) invert(1);
	display: block;
}
.cvg-footer-firm-line {
	font-family: var(--cvg-font-body);
	font-size: 14px;
	line-height: 1.65;
	color: rgba(255,255,255,.78);
	margin: 0 0 6px !important;
}
.cvg-footer-firm-summary {
	font-size: 15px;
	color: rgba(255,255,255,.85);
	margin-bottom: 14px !important;
}
.cvg-footer-firm-line strong { font-weight: 500; color: #fff; }
.cvg-footer-firm-line a {
	color: rgba(255,255,255,.85);
	text-decoration: none;
	border-bottom: 1px solid rgba(255,255,255,.20);
	padding-bottom: 1px;
	transition: color .2s var(--cvg-ease), border-color .2s var(--cvg-ease);
}
.cvg-footer-firm-line a:hover {
	color: #fff;
	border-bottom-color: var(--cvg-gold);
}

/* MIDDLE — services as a horizontal ribbon */
.cvg-footer-services-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(18px, 3vw, 40px);
	padding: clamp(24px, 3vw, 36px) 0;
	margin: 0 0 clamp(16px, 2vw, 24px);
	border-top: 1px solid rgba(255,255,255,.10);
	border-bottom: 1px solid rgba(255,255,255,.10);
	text-align: center;
}
.cvg-footer-services-row a {
	font-family: var(--cvg-font-nav);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255,255,255,.85);
	text-decoration: none;
	padding: 6px 2px;
	border-bottom: 1px solid transparent;
	transition: color .25s var(--cvg-ease), border-color .25s var(--cvg-ease);
}
.cvg-footer-services-row a:hover,
.cvg-footer-services-row a:focus {
	color: #fff;
	border-bottom-color: var(--cvg-gold);
}

/* BOTTOM — already styled (copyright + social); just confirm spacing */
.cvg-footer-bottom { margin-top: 0 !important; padding-top: 0 !important; border-top: 0 !important; }

/* =========================================================================
   v3.2.4 — Editorial filter on team portraits
   ---------------------------------------------------------------------------
   Source photos for the two founders came from different shoots (different
   backgrounds, light, wardrobe formality). Rather than reshooting or hand-
   retouching each, apply a unified CSS treatment so they read as part of the
   same firm. This is the same technique major editorial consulting sites use
   to conform headshots from disparate sessions.

   Treatment: slight desaturation (.92), gentle contrast lift (1.05), a touch
   of warmth via sepia (.05), unified brightness (.98). Subtle enough to keep
   skin tones natural; consistent enough to unify the set.
   ========================================================================= */

/* Targets every context where a team-CPT portrait renders:
     1. Homepage founder note (.cvg-founder-note-portrait img)
     2. About-page team card photo (.cvg-team-photo img / .cvg-team-card img)
     3. Single team hero/aside portrait (.cvg-team-single-portrait img / .cvg-team-single-portrait-img)
     4. Related-team strip card (.cvg-team-related-card-photo img / .cvg-team-related-card-img)
   The filter is applied once on the underlying <img> so every size variant
   (srcset, retina) renders identically. */
.cvg-founder-note-portrait img,
.cvg-team-card img,
.cvg-team-card-v2-photo img,
.cvg-team-photo img,
.cvg-team-single-portrait img,
.cvg-team-single-portrait-img,
.cvg-team-related-card-photo img,
.cvg-team-related-card-img,
.cvg-about-team-card img {
	filter: saturate(.92) contrast(1.05) brightness(.98) sepia(.05);
	transition: filter .4s var(--cvg-ease);
}

/* On hover (single-team and related cards only — not the homepage founder
   note where there's nothing to "open"), lift the treatment slightly so the
   portrait warms up + sharpens — a small reward for engagement. */
.cvg-team-card:hover img,
.cvg-team-card-v2-photo:hover img,
.cvg-team-related-card:hover img,
.cvg-team-related-card:hover .cvg-team-related-card-img,
.cvg-about-team-card:hover img {
	filter: saturate(1) contrast(1.07) brightness(1) sepia(.02);
}

/* Print + reduced-motion users get the unfiltered photo (more accessible,
   more accurate skin tones for those who need it). */
@media print, (prefers-reduced-motion: reduce) {
	.cvg-founder-note-portrait img,
	.cvg-team-card img,
	.cvg-team-photo img,
	.cvg-team-single-portrait img,
	.cvg-team-single-portrait-img,
	.cvg-team-related-card-photo img,
	.cvg-team-related-card-img,
	.cvg-about-team-card img {
		filter: none;
	}
}

/* =========================================================================
   v3.2.5 — About-page team card hover restraint
   ---------------------------------------------------------------------------
   Old hover stacked 6 effects on 4 different durations (.35s + .45s + .8s +
   .4s) on a punchy `var(--cvg-ease)` curve, plus the card's border dropped
   to TRANSPARENT — making the outline jump out of existence. Reads abrupt
   and stuttery; not editorial.

   Replacement: a single synchronized pattern at one duration, one slow
   ease-out, smaller lift, softer shadow, border stays present (just tints
   gold), top accent line removed entirely, photo zoom dialed back.
   ========================================================================= */

/* Synchronize ALL card transitions on one curve + duration */
.cvg-team-card-v2 {
	transition:
		transform .55s cubic-bezier(.4,0,.2,1),
		box-shadow .55s cubic-bezier(.4,0,.2,1),
		border-color .55s cubic-bezier(.4,0,.2,1) !important;
}

/* Top gold accent line slide-in — REMOVED. Decorative-on-hover only;
   not editorial. */
.cvg-team-card-v2::after { display: none !important; }

/* Subtler resting border so the gold tint on hover reads more clearly */
.cvg-team-card-v2 {
	border-color: rgba(0,30,48,.08) !important;
}

/* Hover — small lift, soft shadow, border TINTS gold (doesn't disappear) */
.cvg-team-card-v2:hover {
	transform: translateY(-3px) !important;          /* was -6px */
	border-color: rgba(216,137,36,.28) !important;   /* was transparent — keep outline, tint gold */
	box-shadow: 0 14px 32px -10px rgba(0,30,55,.18) !important;  /* was 28×60 heavy */
}

/* Photo zoom — synchronized to card duration + curve, subtler scale */
.cvg-team-card-v2-photo img {
	transition:
		transform .55s cubic-bezier(.4,0,.2,1),
		filter   .55s cubic-bezier(.4,0,.2,1) !important;
}
.cvg-team-card-v2:hover .cvg-team-card-v2-photo img {
	transform: scale(1.02) !important;               /* was 1.04 over .8s */
}

/* Floating contact pills — match the same curve + duration so they don't
   feel detached when the user reaches for them */
.cvg-team-card-v2-social a {
	transition: background .35s cubic-bezier(.4,0,.2,1),
	            border-color .35s cubic-bezier(.4,0,.2,1),
	            transform .35s cubic-bezier(.4,0,.2,1) !important;
}
.cvg-team-card-v2-social a:hover {
	transform: translateY(-1px) !important;          /* was -2px */
}

/* =========================================================================
   v3.2.6 — Team photo crop fix
   ---------------------------------------------------------------------------
   Even with cvg_team registered as 800×800 (was 600×700 portrait), defensive
   object-position keeps faces anchored to the top of the frame in case
   future uploads aren't perfectly square. Editorial-portrait convention:
   eyes / face are visible at the top third of the frame, never floating
   in the middle, never cropped.
   ========================================================================= */
.cvg-team-card-v2-photo img,
.cvg-team-photo img,
.cvg-team-single-portrait img,
.cvg-team-single-portrait-img,
.cvg-team-related-card-photo img,
.cvg-team-related-card-img,
.cvg-founder-note-portrait img,
.cvg-about-team-card img {
	object-position: center top !important;
}
