/* =========================================================================
   ExamCertify — main.css  (Version 3 — Creative Direction pass)
   Single source of truth for visual design. See functions.php for enqueue.
   ========================================================================= */

/* ---------- Design tokens ---------- */
:root {
	/* Brand colour system (V3) */
	--ec-emerald-dark: #003D35;   /* Deep Forest — darkest sections */
	--ec-emerald-deep: #006F5F;   /* Emerald — primary */
	--ec-green:        #00866F;   /* Rich Emerald — accent/hover */
	--ec-mint:         #DFF2EB;   /* Mint — light section bg */
	--ec-offwhite:     #F6F3EC;   /* Warm Ivory — base bg */
	--ec-stone:        #E9E6DE;   /* Soft Stone — secondary bg / dividers */
	--ec-charcoal:     #17201E;
	--ec-white:        #FFFFFF;
	--ec-gold:         #A9814A;   /* Muted champagne / brass — micro-details only */
	--ec-gold-soft:    #D8C193;

	--ec-charcoal-65: rgba(23, 32, 30, 0.66);
	--ec-charcoal-45: rgba(23, 32, 30, 0.45);
	--ec-charcoal-15: rgba(23, 32, 30, 0.12);
	--ec-white-70: rgba(255, 255, 255, 0.72);
	--ec-white-50: rgba(255, 255, 255, 0.48);
	--ec-white-25: rgba(255, 255, 255, 0.2);
	--ec-hairline: rgba(23, 32, 30, 0.14);
	--ec-hairline-light: rgba(255, 255, 255, 0.2);

	/* Type */
	--font-display: 'Fraunces', 'Iowan Old Style', 'Georgia', serif;
	--font-body: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--font-mono: 'IBM Plex Mono', 'SFMono-Regular', Menlo, monospace;

	/* Layout */
	--ec-container: 1400px;
	--ec-gutter: clamp(24px, 5vw, 72px);
	--ec-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

body {
	margin: 0;
	background: var(--ec-offwhite);
	color: var(--ec-charcoal);
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
body.ec-menu-open { overflow: hidden; }

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p, blockquote { margin: 0; }
button { font: inherit; background: none; border: none; cursor: pointer; color: inherit; }
svg { display: block; }

:focus-visible { outline: 2px solid var(--ec-green); outline-offset: 3px; border-radius: 2px; }

.screen-reader-text {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.ec-skip-link {
	position: absolute; left: 16px; top: -60px;
	background: var(--ec-emerald-dark); color: #fff;
	padding: 12px 20px; border-radius: 3px;
	z-index: 999; transition: top 0.2s var(--ec-ease);
	font-family: var(--font-body); font-weight: 600; font-size: 14px;
}
.ec-skip-link:focus { top: 16px; }

em { font-style: italic; }

/* ---------- Shared typography ---------- */
.ec-eyebrow {
	display: flex; align-items: center; gap: 12px;
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--ec-emerald-deep);
	font-weight: 500;
	margin: 0 0 22px;
}
.ec-eyebrow--light { color: var(--ec-gold-soft); }
.ec-eyebrow__num { font-weight: 500; color: var(--ec-gold); }
.ec-eyebrow__rule { width: 26px; height: 1px; background: currentColor; opacity: 0.5; }

.ec-heading-lg {
	font-family: var(--font-display);
	font-weight: 400;
	font-size: clamp(2.1rem, 1.3rem + 2.7vw, 4.1rem);
	line-height: 1.08;
	letter-spacing: -0.01em;
	color: var(--ec-emerald-dark);
	max-width: 15ch;
}
.ec-heading-lg em { font-style: italic; font-weight: 500; color: var(--ec-green); }
.ec-heading-lg--light { color: var(--ec-offwhite); max-width: 17ch; }
.ec-heading-lg--light em { color: var(--ec-gold-soft); }

.ec-lede { font-size: clamp(1rem, 0.95rem + 0.3vw, 1.15rem); line-height: 1.75; color: var(--ec-charcoal-65); max-width: 56ch; }
.ec-lede--narrow { max-width: 44ch; }
.ec-lede--light { color: var(--ec-white-70); }

/* ---------- Buttons ---------- */
.ec-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 15px 27px;
	font-family: var(--font-body); font-weight: 600; font-size: 15px;
	border-radius: 3px;
	transition: background 0.25s var(--ec-ease), color 0.25s var(--ec-ease), border-color 0.25s var(--ec-ease);
}
.ec-btn__arrow { transition: transform 0.25s var(--ec-ease); }
.ec-btn:hover .ec-btn__arrow { transform: translateX(3px); }
.ec-btn--primary { background: var(--ec-emerald-deep); color: #fff; }
.ec-btn--primary:hover { background: var(--ec-emerald-dark); }
.ec-btn--ghost { border: 1px solid var(--ec-charcoal-15); color: var(--ec-charcoal); }
.ec-btn--ghost:hover { border-color: var(--ec-emerald-deep); color: var(--ec-emerald-deep); }
.ec-btn--light { background: var(--ec-offwhite); color: var(--ec-emerald-dark); }
.ec-btn--light:hover { background: #fff; }
.ec-btn--ghost-light { border: 1px solid var(--ec-hairline-light); color: var(--ec-offwhite); }
.ec-btn--ghost-light:hover { border-color: var(--ec-gold-soft); color: var(--ec-gold-soft); }
.ec-btn--compact { padding: 11px 20px; font-size: 14px; }

/* ---------- Header ---------- */
.ec-header {
	position: sticky; top: 0; z-index: 100;
	background: rgba(246, 243, 236, 0.82);
	backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s var(--ec-ease), box-shadow 0.3s var(--ec-ease), padding 0.3s var(--ec-ease);
}
.ec-header.is-scrolled { border-bottom-color: var(--ec-hairline); box-shadow: 0 8px 24px rgba(0, 61, 53, 0.05); }
.ec-header__inner { max-width: var(--ec-container); margin: 0 auto; padding: 20px var(--ec-gutter); display: flex; align-items: center; justify-content: space-between; gap: 24px; transition: padding 0.3s var(--ec-ease); }
.ec-header.is-scrolled .ec-header__inner { padding-top: 13px; padding-bottom: 13px; }

.ec-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--ec-emerald-dark); }
.ec-logo__mark { display: inline-flex; color: var(--ec-emerald-deep); }
.ec-logo__wordmark { font-family: var(--font-display); font-size: 21px; font-weight: 1000; letter-spacing: 0.01em; }
.ec-logo__wordmark em { font-style: italic; color: var(--ec-green); }
.ec-logo--light { color: var(--ec-offwhite); }
.ec-logo--light .ec-logo__mark { color: var(--ec-gold-soft); }
.ec-logo--light .ec-logo__wordmark em { color: var(--ec-gold-soft); }

.ec-nav__list { display: flex; align-items: center; gap: 36px; }
.ec-nav__link { position: relative; font-size: 14.5px; font-weight: 500; color: var(--ec-charcoal); padding: 4px 0; }
.ec-nav__link::after { content: ''; position: absolute; left: 0; bottom: -2px; width: 0; height: 1px; background: var(--ec-emerald-deep); transition: width 0.25s var(--ec-ease); }
.ec-nav__link:hover::after { width: 100%; }

.ec-header__actions { display: flex; align-items: center; gap: 18px; }
.ec-menu-toggle { display: none; padding: 6px; }
.ec-menu-toggle__box { display: flex; flex-direction: column; gap: 6px; width: 22px; }
.ec-menu-toggle__bar { display: block; height: 1.5px; background: var(--ec-charcoal); transition: transform 0.25s var(--ec-ease); }
.ec-menu-toggle[aria-expanded="true"] .ec-menu-toggle__bar:first-child { transform: translateY(3.75px) rotate(45deg); }
.ec-menu-toggle[aria-expanded="true"] .ec-menu-toggle__bar:last-child { transform: translateY(-3.75px) rotate(-45deg); }

/* ---------- Container ---------- */
.ec-hero__inner, .ec-marquee__inner, .ec-about__inner, .ec-mv__inner,
.ec-industries__inner, .ec-transition__inner, .ec-solutions__inner,
.ec-connected__inner, .ec-method__inner, .ec-why__inner, .ec-quote__inner,
.ec-expertise__inner, .ec-cta__inner, .ec-footer__inner, .ec-simple-wrap {
	max-width: var(--ec-container);
	margin: 0 auto;
	padding-left: var(--ec-gutter);
	padding-right: var(--ec-gutter);
}

/* =========================================================================
   HERO — asymmetric editorial composition, full-bleed photography
   ========================================================================= */
.ec-hero { position: relative; padding: clamp(40px, 7vw, 84px) 0 clamp(48px, 6vw, 72px); overflow: hidden; }
.ec-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.86fr) minmax(0, 1fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
}
.ec-hero__rail {
	position: absolute; left: calc(var(--ec-gutter) - 34px); top: 50%;
	transform: translateY(-50%) rotate(180deg);
	writing-mode: vertical-rl;
	font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.22em;
	text-transform: uppercase; color: var(--ec-charcoal-45);
	display: flex; align-items: center; gap: 14px;
}
.ec-hero__rail span { display: inline-block; }
.ec-hero__rail::before, .ec-hero__rail::after { content: ''; width: 1px; height: 30px; background: var(--ec-charcoal-15); }

.ec-hero__copy { padding-left: 26px; animation: ec-fade-up 0.9s var(--ec-ease) both; }
.ec-hero__visual { position: relative; height: 100%; animation: ec-fade-up 0.9s var(--ec-ease) 0.15s both; }

@keyframes ec-fade-up {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: translateY(0); }
}
.ec-hero__heading {
	font-family: var(--font-display); font-weight: 400;
	font-size: clamp(2.3rem, 1.5rem + 3.3vw, 4.2rem);
	line-height: 1.08; letter-spacing: -0.015em;
	color: var(--ec-emerald-dark);
	margin: 0 0 26px;
}
.ec-hero__heading em { font-style: italic; font-weight: 500; color: var(--ec-green); }
.ec-hero__lede { font-size: clamp(1rem, 0.94rem + 0.3vw, 1.15rem); color: var(--ec-charcoal-65); max-width: 42ch; line-height: 1.75; margin-bottom: 36px; }
.ec-hero__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 46px; }

.ec-hero__values { display: flex; flex-wrap: wrap; gap: 12px 30px; padding-top: 26px; border-top: 1px solid var(--ec-hairline); }
.ec-hero__values li { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.07em; text-transform: uppercase; color: var(--ec-charcoal-65); position: relative; padding-left: 16px; }
.ec-hero__values li::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 6px; height: 1px; background: var(--ec-green); }

.ec-hero__frame {
	position: relative;
	aspect-ratio: 5 / 6;
	overflow: hidden;
	clip-path: polygon(6% 0, 100% 0, 100% 100%, 0 94%);
}
.ec-hero__image { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; filter: saturate(0.94) contrast(1.03); }
.ec-hero__frame::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(200deg, rgba(0,61,53,0.14) 0%, rgba(0,61,53,0) 40%, rgba(0,61,53,0.22) 100%);
}
.ec-hero__linework { position: absolute; top: -6%; right: -10%; width: 42%; height: 112%; color: var(--ec-gold); opacity: 0.5; pointer-events: none; z-index: 2; }
.ec-hero__coord { position: absolute; left: 6%; bottom: 6%; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; color: var(--ec-offwhite); z-index: 2; opacity: 0.85; }

/* =========================================================================
   MARQUEE — editorial brand statement, no cards
   ========================================================================= */
.ec-marquee { border-top: 1px solid var(--ec-hairline); border-bottom: 1px solid var(--ec-hairline); overflow: hidden; padding: 26px 0; }
.ec-marquee__track { display: flex; width: max-content; gap: 0; animation: ec-marquee 34s linear infinite; }
.ec-marquee__group { display: flex; align-items: center; gap: 0; }
.ec-marquee__item {
	font-family: var(--font-display); font-style: italic; font-weight: 400;
	font-size: clamp(1.1rem, 1rem + 0.6vw, 1.6rem);
	color: var(--ec-emerald-deep);
	padding: 0 clamp(20px, 3vw, 40px);
	white-space: nowrap;
}
.ec-marquee__item span { font-family: var(--font-mono); font-style: normal; font-size: 12px; color: var(--ec-gold); margin-left: clamp(20px, 3vw, 40px); letter-spacing: 0.1em; }
@keyframes ec-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.ec-marquee__track { animation: none; }
	.ec-marquee__group:nth-child(2) { display: none; }
}

/* =========================================================================
   WHO WE ARE — magazine layout, no cards, thin-line columns
   ========================================================================= */
.ec-about { padding: clamp(56px, 7vw, 100px) 0; }
.ec-about__inner { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(0px, 3vw, 24px); align-items: start; }
.ec-about__visual { position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; }
.ec-about__visual img { width: 100%; height: 100%; object-fit: cover; }
.ec-about__body { min-width: 0; padding: clamp(24px, 4vw, 56px) 0 0 clamp(28px, 4vw, 56px); }
.ec-about__body .ec-heading-lg { margin-bottom: 26px; }
.ec-about__body .ec-lede { margin-bottom: 44px; }

.ec-pillars { display: grid; grid-template-columns: 1fr; }
.ec-pillar { display: grid; grid-template-columns: 70px 1fr; gap: 20px; padding: 22px 0; border-top: 1px solid var(--ec-hairline); }
.ec-pillar:last-child { border-bottom: 1px solid var(--ec-hairline); }
.ec-pillar__label { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ec-gold); padding-top: 3px; }
.ec-pillar p { font-size: 14.5px; color: var(--ec-charcoal-65); line-height: 1.65; }

/* =========================================================================
   MISSION & VISION — cinematic dark spread
   ========================================================================= */
.ec-mv { position: relative; background: var(--ec-emerald-dark); padding: clamp(64px, 8vw, 112px) 0; overflow: hidden; }
.ec-mv__texture { position: absolute; inset: 0; opacity: 0.5; pointer-events: none; color: var(--ec-hairline-light); }
.ec-mv__inner { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 80px); align-items: center; }
.ec-mv__block--vision { text-align: right; }
.ec-mv__statement {
	max-width: 30ch;
	font-family: var(--font-display); font-weight: 400; font-style: italic;
	font-size: clamp(1.8rem, 1rem + 2.9vw, 3.6rem);
	line-height: 1.25; color: var(--ec-offwhite);
}
.ec-mv__block--vision .ec-mv__statement { margin-left: auto; }
.ec-mv__block--vision .ec-eyebrow { justify-content: flex-end; }
.ec-mv__rule { width: 44px; height: 1px; background: var(--ec-gold); margin: 30px 0; }
.ec-mv__block--vision .ec-mv__rule { margin-left: auto; }

/* =========================================================================
   INDUSTRIES — showpiece gallery
   ========================================================================= */
.ec-industries { padding: clamp(56px, 7vw, 100px) 0; background: var(--ec-mint); }
.ec-industries__head { max-width: 760px; margin: 0 auto clamp(36px, 4.5vw, 56px); text-align: center; }
.ec-industries__head .ec-eyebrow { justify-content: center; }
.ec-industries__head .ec-heading-lg { max-width: none; margin: 0 auto 20px; }
.ec-industries__head .ec-lede { margin: 0 auto; }

.ec-industry-grid { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: 150px; gap: 4px; }
.ec-industry-tile { position: relative; grid-column: span 3; grid-row: span 3; overflow: hidden; display: block; }
.ec-industry-tile--tall { grid-row: span 4; }
.ec-industry-tile--wide { grid-column: span 4; grid-row: span 2; }
.ec-industry-tile--narrow { grid-column: span 2; grid-row: span 2; }

.ec-industry-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ec-ease); filter: saturate(0.95); }
.ec-industry-tile:hover img { transform: scale(1.03); }
.ec-industry-tile__overlay { position: absolute; inset: 0; background: linear-gradient(195deg, rgba(0,61,53,0.02) 0%, rgba(0,61,53,0.74) 100%); transition: background 0.4s var(--ec-ease); }
.ec-industry-tile:hover .ec-industry-tile__overlay { background: linear-gradient(195deg, rgba(0,61,53,0.1) 0%, rgba(0,61,53,0.85) 100%); }

.ec-industry-tile__number { position: absolute; top: 22px; left: 24px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.1em; color: var(--ec-gold-soft); }
.ec-industry-tile__content { position: absolute; left: 24px; right: 24px; bottom: 22px; transition: transform 0.4s var(--ec-ease); }
.ec-industry-tile:hover .ec-industry-tile__content { transform: translateY(-2px); }
.ec-industry-tile__title-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ec-industry-tile__title { font-family: var(--font-display); font-size: 20px; color: #fff; }
.ec-industry-tile--tall .ec-industry-tile__title, .ec-industry-tile--wide .ec-industry-tile__title { font-size: 25px; }
.ec-industry-tile__arrow { color: var(--ec-gold-soft); font-size: 18px; opacity: 0; transform: translateX(-4px); transition: opacity 0.3s var(--ec-ease), transform 0.3s var(--ec-ease); }
.ec-industry-tile:hover .ec-industry-tile__arrow { opacity: 1; transform: translateX(0); }
.ec-industry-tile__desc { font-size: 13.5px; color: var(--ec-white-70); line-height: 1.5; max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.4s var(--ec-ease), opacity 0.3s var(--ec-ease), margin 0.4s var(--ec-ease); margin-top: 0; }
.ec-industry-tile:hover .ec-industry-tile__desc, .ec-industry-tile:focus-visible .ec-industry-tile__desc { max-height: 60px; opacity: 1; margin-top: 8px; }

/* =========================================================================
   SIGNATURE TRANSITION — knowledge to capability pathway
   ========================================================================= */
.ec-transition { padding: clamp(56px, 7vw, 96px) 0; text-align: center; background: var(--ec-offwhite); }
.ec-transition__statement {
	font-family: var(--font-display); font-weight: 400;
	font-size: clamp(1.9rem, 1.4rem + 2.2vw, 3.4rem);
	line-height: 1.15; color: var(--ec-emerald-dark);
	max-width: 16ch; margin: 0 auto clamp(36px, 4.5vw, 60px);
}
.ec-transition__statement em { font-style: italic; color: var(--ec-green); }

.ec-pathway { display: flex; align-items: center; justify-content: center; max-width: 940px; margin: 0 auto; flex-wrap: wrap; gap: 6px 0; }
.ec-pathway__node { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ec-emerald-deep); padding: 0 clamp(10px, 2vw, 22px); }
.ec-pathway__arrow { color: var(--ec-gold); font-size: 13px; opacity: 0.7; }

/* =========================================================================
   SOLUTIONS — six equal services, each with its own illustration
   ========================================================================= */
.ec-solutions { background: var(--ec-emerald-dark); padding: clamp(56px, 7vw, 100px) 0; }
.ec-solutions__head { max-width: 660px; margin-bottom: clamp(36px, 4.5vw, 56px); }

.ec-solutions__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.ec-solution-item {
	padding: 32px 32px 32px;
	border-top: 1px solid var(--ec-hairline-light);
	border-left: 1px solid var(--ec-hairline-light);
}
.ec-solution-item:nth-child(3n+1) { border-left: none; }
.ec-solution-item:nth-child(-n+3) { border-top: none; }
.ec-solution-item__motif {
	margin-bottom: 26px;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.ec-solution-item__motif img {
	width: 100%; height: 100%; object-fit: cover;
	filter: saturate(0.92) contrast(1.02);
	transition: transform 0.7s var(--ec-ease);
}
.ec-solution-item:hover .ec-solution-item__motif img { transform: scale(1.04); }
.ec-solution-item__num { display: block; font-family: var(--font-mono); font-size: 13px; color: var(--ec-gold-soft); letter-spacing: 0.1em; margin-bottom: 14px; }
.ec-solution-item__name { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.6rem); color: #fff; margin-bottom: 14px; }
.ec-solution-item__desc { font-size: 15px; color: var(--ec-white-70); line-height: 1.68; max-width: 34ch; margin-bottom: 24px; }
.ec-solution-item__link { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--ec-gold-soft); }
.ec-solution-item__link span { transition: transform 0.25s var(--ec-ease); }
.ec-solution-item__link:hover span { transform: translateX(3px); }

/* =========================================================================
   CONNECTED LEARNING — orbital signature diagram
   ========================================================================= */
.ec-connected { position: relative; background: var(--ec-emerald-dark); padding: clamp(56px, 7vw, 104px) 0; text-align: center; overflow: hidden; }
.ec-connected .ec-eyebrow { justify-content: center; }
.ec-connected .ec-heading-lg { max-width: none; margin: 0 auto 8px; }
.ec-connected__sub { font-size: 15.5px; color: var(--ec-white-50); max-width: 48ch; margin: 20px auto 0; }

.ec-orbital { position: relative; max-width: 560px; margin: clamp(32px, 4vw, 56px) auto 0; aspect-ratio: 1 / 1; }
.ec-orbital__svg { width: 100%; height: 100%; }
.ec-orbital__center {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	font-family: var(--font-display); font-style: italic; font-size: clamp(1.1rem, 1rem + 0.5vw, 1.5rem);
	color: var(--ec-offwhite); text-align: center; white-space: nowrap;
}
.ec-orbital__node {
	position: absolute; text-align: center; width: 150px; margin-left: -75px;
}
.ec-orbital__node-label { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ec-gold-soft); display: block; margin-bottom: 4px; }
.ec-orbital__node p { font-size: 12.5px; color: var(--ec-white-50); }
.ec-orbital__node--content { top: 0; left: 50%; }
.ec-orbital__node--assessment { top: 50%; left: 100%; margin-top: -10px; }
.ec-orbital__node--analytics { top: 100%; left: 50%; margin-top: -20px; }
.ec-orbital__node--delivery { top: 50%; left: 0; margin-top: -10px; }

/* =========================================================================
   METHODOLOGY — editorial journey, scroll-linked line
   ========================================================================= */
.ec-method { padding: clamp(56px, 7vw, 100px) 0; background: var(--ec-mint); }
.ec-method__head { max-width: 660px; margin: 0 auto clamp(36px, 4.5vw, 56px); text-align: center; }
.ec-method__head .ec-eyebrow { justify-content: center; }
.ec-method__head .ec-heading-lg { max-width: none; margin: 0 auto; }

.ec-timeline { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; }
.ec-timeline__track { position: absolute; top: 5px; left: 0; right: 0; height: 1px; background: var(--ec-charcoal-15); }
.ec-timeline__fill { position: absolute; top: 5px; left: 0; height: 1px; background: var(--ec-green); width: 0%; transition: width 1.1s var(--ec-ease); }
.ec-timeline.is-active .ec-timeline__fill { width: 100%; }
.ec-timeline__step { position: relative; padding-top: 34px; }
.ec-timeline__step::before { content: ''; position: absolute; top: 0; left: 0; width: 11px; height: 11px; border-radius: 50%; background: var(--ec-mint); border: 1.5px solid var(--ec-emerald-deep); z-index: 1; }
.ec-timeline__num { font-family: var(--font-mono); font-size: 12px; color: var(--ec-gold); letter-spacing: 0.1em; display: block; margin-bottom: 12px; }
.ec-timeline__step h3 { font-family: var(--font-display); font-weight: 500; font-size: 19px; color: var(--ec-emerald-dark); margin-bottom: 10px; }
.ec-timeline__step p { font-size: 13.5px; color: var(--ec-charcoal-65); line-height: 1.6; }

/* =========================================================================
   WHY EXAMCERTIFY — one statement, typographic list
   ========================================================================= */
.ec-why { padding: clamp(56px, 7vw, 100px) 0; }
.ec-why__inner { max-width: 880px; margin: 0 auto; }
.ec-why__head { text-align: center; margin-bottom: clamp(36px, 4.5vw, 56px); }
.ec-why__head .ec-eyebrow { justify-content: center; }
.ec-why__head .ec-heading-lg { max-width: none; margin: 0 auto; }

.ec-why__list { display: flex; flex-direction: column; }
.ec-why__row { display: grid; grid-template-columns: 60px 1fr; align-items: baseline; gap: 22px; padding: 26px 0; border-top: 1px solid var(--ec-hairline); }
.ec-why__list li:last-child .ec-why__row { border-bottom: 1px solid var(--ec-hairline); }
.ec-why__mark { font-family: var(--font-mono); font-size: 12px; color: var(--ec-gold); letter-spacing: 0.08em; }
.ec-why__row h3 { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.7rem); color: var(--ec-emerald-dark); }

/* =========================================================================
   PHILOSOPHY QUOTE — brand statement pause
   ========================================================================= */
.ec-quote { padding: clamp(56px, 8vw, 110px) 0; text-align: center; background: var(--ec-stone); }
.ec-quote__mark { font-family: var(--font-display); font-size: 56px; color: var(--ec-gold); line-height: 1; margin-bottom: 14px; }
.ec-quote__text {
	font-family: var(--font-display); font-weight: 400; font-style: italic;
	font-size: clamp(1.7rem, 0.9rem + 2.9vw, 3.6rem);
	line-height: 1.32; color: var(--ec-emerald-dark);
	max-width: 18ch; margin: 0 auto;
}
.ec-quote__cite { display: block; margin-top: 28px; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ec-charcoal-45); }

/* =========================================================================
   EXPERTISE — image-first
   ========================================================================= */
.ec-expertise { padding: clamp(56px, 7vw, 100px) 0; }
.ec-expertise__inner { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(0px, 3vw, 24px); align-items: start; }
.ec-expertise__visual { position: relative; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; }
.ec-expertise__visual img { width: 100%; height: 100%; object-fit: cover; }
.ec-expertise__copy { min-width: 0; padding: clamp(24px, 4vw, 56px) 0 0 clamp(28px, 4vw, 56px); }
.ec-expertise__copy .ec-lede { margin: 22px 0 40px; }
.ec-expertise__list { display: flex; flex-direction: column; }
.ec-expertise__list li { font-size: 14.5px; font-weight: 600; color: var(--ec-emerald-dark); padding: 16px 0; border-top: 1px solid var(--ec-hairline); letter-spacing: 0.01em; }
.ec-expertise__list li:last-child { border-bottom: 1px solid var(--ec-hairline); }

/* =========================================================================
   FINAL CTA — campaign moment
   ========================================================================= */
.ec-cta { position: relative; background-size: cover; background-position: center; padding: clamp(72px, 9vw, 130px) 0; text-align: center; overflow: hidden; }
.ec-cta__scrim { position: absolute; inset: 0; background: linear-gradient(165deg, rgba(0,61,53,0.95) 0%, rgba(0,61,53,0.86) 45%, rgba(0,111,95,0.9) 100%); }
.ec-cta__linework { position: absolute; top: -10%; right: -8%; width: 46%; height: 120%; color: var(--ec-gold); opacity: 0.35; pointer-events: none; }
.ec-cta__inner { position: relative; }
.ec-cta .ec-heading-lg { max-width: none; margin: 0 auto 24px; }
.ec-cta .ec-lede { margin: 0 auto 46px; }
.ec-cta__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px; }

/* =========================================================================
   FOOTER — taller, photographic, richer
   ========================================================================= */
.ec-footer { background-size: cover; background-position: center; color: var(--ec-offwhite); }
.ec-footer__inner { padding: clamp(56px, 7vw, 96px) var(--ec-gutter) 40px; }
.ec-footer__top { display: grid; grid-template-columns: 1.7fr repeat(4, 1fr); gap: 40px; padding-bottom: 64px; border-bottom: 1px solid var(--ec-hairline-light); }
.ec-footer__brand .ec-logo__wordmark { font-size: 27px; }
.ec-footer__statement { font-size: 15px; color: var(--ec-white-70); line-height: 1.75; margin-top: 24px; max-width: 36ch; }
.ec-footer__heading { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ec-gold-soft); margin-bottom: 22px; font-weight: 500; }
.ec-footer__list { display: flex; flex-direction: column; gap: 13px; }
.ec-footer__list a { font-size: 14.5px; color: var(--ec-white-70); transition: color 0.2s var(--ec-ease); }
.ec-footer__list a:hover { color: #fff; }
.ec-footer__bottom { padding-top: 30px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.ec-footer__copyright { font-size: 13px; color: var(--ec-white-50); }
.ec-footer__contact-link { font-size: 13px; color: var(--ec-white-70); }
.ec-footer__contact-link:hover { color: #fff; }

/* =========================================================================
   REVIEWS — three client quotes, thin dividers, no boxes
   ========================================================================= */
.ec-reviews { padding: clamp(56px, 7vw, 100px) 0; background: var(--ec-offwhite); }
.ec-reviews__head { max-width: 640px; margin: 0 auto clamp(36px, 4.5vw, 56px); text-align: center; }
.ec-reviews__head .ec-eyebrow { justify-content: center; }
.ec-reviews__head .ec-heading-lg { max-width: none; margin: 0 auto; }

.ec-reviews__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.ec-review { padding: 0 32px; border-left: 1px solid var(--ec-hairline); }
.ec-review:first-child { border-left: none; }
.ec-review__quote-mark { display: block; font-family: var(--font-display); font-size: 40px; color: var(--ec-gold); line-height: 1; margin-bottom: 8px; }
.ec-review__text { font-family: var(--font-display); font-style: italic; font-size: 16.5px; line-height: 1.62; color: var(--ec-charcoal-65); margin-bottom: 28px; }
.ec-review__author { display: flex; align-items: center; gap: 12px; }
.ec-review__avatar {
	width: 42px; height: 42px; border-radius: 50%; flex: none;
	background: var(--ec-mint); color: var(--ec-emerald-deep);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-mono); font-size: 12.5px; font-weight: 600;
}
.ec-review__name { display: block; font-size: 14px; font-weight: 600; color: var(--ec-emerald-dark); }
.ec-review__role { display: block; font-size: 12px; color: var(--ec-charcoal-45); }

/* =========================================================================
   CONTACT FORM
   ========================================================================= */
.ec-contact { padding: clamp(56px, 7vw, 100px) 0; background: var(--ec-mint); }
.ec-contact__inner { max-width: 720px; margin: 0 auto; text-align: center; }
.ec-contact__head { margin-bottom: clamp(32px, 4vw, 48px); }
.ec-contact__head .ec-eyebrow { justify-content: center; }
.ec-contact__head .ec-heading-lg { max-width: none; margin: 0 auto 16px; }
.ec-contact__head .ec-lede { margin: 0 auto; }
.ec-contact__form { text-align: left; }
.ec-contact__notice { text-align: center; font-size: 14px; color: var(--ec-charcoal-45); }

/* Contact Form 7 style overrides — underline inputs to match the
   editorial, low-chrome aesthetic used throughout the rest of the page. */
.ec-contact__form .wpcf7-form p { margin: 0 0 22px; }
.ec-contact__form .wpcf7-form label { display: block; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ec-charcoal-45); margin-bottom: 8px; }
.ec-contact__form input[type="text"],
.ec-contact__form input[type="email"],
.ec-contact__form input[type="tel"],
.ec-contact__form input[type="url"],
.ec-contact__form textarea,
.ec-contact__form select {
	width: 100%; display: block;
	border: none; border-bottom: 1px solid var(--ec-charcoal-15);
	background: transparent; border-radius: 0;
	padding: 10px 2px; font-family: var(--font-body); font-size: 15px; color: var(--ec-charcoal);
	transition: border-color 0.25s var(--ec-ease);
}
.ec-contact__form input:focus,
.ec-contact__form textarea:focus,
.ec-contact__form select:focus {
	outline: none; border-bottom-color: var(--ec-emerald-deep);
}
.ec-contact__form textarea { min-height: 130px; resize: vertical; }
.ec-contact__form input[type="submit"] {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 15px 27px; border: none; border-radius: 3px; cursor: pointer;
	font-family: var(--font-body); font-weight: 600; font-size: 15px;
	background: var(--ec-emerald-deep); color: #fff;
	transition: background 0.25s var(--ec-ease);
}
.ec-contact__form input[type="submit"]:hover { background: var(--ec-emerald-dark); }
.ec-contact__form .wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: 12px; color: #b3261e; }
.ec-contact__form .wpcf7-response-output { margin-top: 22px; padding: 14px 18px; border-radius: 3px; font-size: 14px; border: 1px solid var(--ec-charcoal-15) !important; }
.ec-contact__form .wpcf7-spinner { margin-left: 10px; }

/* ---------- Simple/index fallback page ---------- */
.ec-main--simple { padding: 140px 0 100px; }
.ec-simple-article { max-width: 760px; margin: 0 auto; }
.ec-simple-content { margin-top: 24px; font-size: 17px; line-height: 1.75; color: var(--ec-charcoal-65); }

/* =========================================================================
   Responsive breakpoints
   ========================================================================= */

/* Laptop (1280px) */
@media (max-width: 1280px) {
	.ec-nav__list { gap: 24px; }
	.ec-orbital { max-width: 560px; }
}

/* Tablet landscape (1024px) */
@media (max-width: 1024px) {
	.ec-hero__inner { grid-template-columns: 1fr; }
	.ec-hero__rail { display: none; }
	.ec-hero__copy { padding-left: 0; }
	.ec-hero__visual { order: -1; max-width: 480px; margin: 0 auto; }
	.ec-hero__linework { display: none; }

	.ec-about__inner, .ec-expertise__inner { grid-template-columns: 1fr; }
	.ec-about__visual, .ec-expertise__visual { max-width: 460px; margin: 0 auto; aspect-ratio: 4/3; }
	.ec-about__body, .ec-expertise__copy { padding-left: 0; padding-top: 40px; }

	.ec-mv__inner { grid-template-columns: 1fr; gap: 40px; }
	.ec-mv__block--vision { text-align: left; }
	.ec-mv__block--vision .ec-eyebrow, .ec-mv__block--vision .ec-mv__rule, .ec-mv__block--vision .ec-mv__statement { justify-content: flex-start; margin-left: 0; }

	.ec-solutions__grid { grid-template-columns: repeat(2, 1fr); }
	.ec-solution-item:nth-child(3n+1) { border-left: 1px solid var(--ec-hairline-light); }
	.ec-solution-item:nth-child(-n+3) { border-top: 1px solid var(--ec-hairline-light); }
	.ec-solution-item:nth-child(2n+1) { border-left: none; }
	.ec-solution-item:nth-child(-n+2) { border-top: none; }

	.ec-orbital { max-width: 460px; }
}

/* Tablet portrait (768px) */
@media (max-width: 768px) {
	:root { --ec-gutter: 24px; }
	html { scroll-padding-top: 76px; }

	.ec-nav { position: fixed; inset: 76px 0 0 0; background: var(--ec-offwhite); z-index: 90; padding: 32px var(--ec-gutter); transform: translateY(-12px); opacity: 0; pointer-events: none; transition: opacity 0.25s var(--ec-ease), transform 0.25s var(--ec-ease); overflow-y: auto; }
	.ec-nav.is-open { opacity: 1; transform: translateY(0); pointer-events: auto; }
	.ec-nav__list { flex-direction: column; align-items: flex-start; gap: 4px; }
	.ec-nav__link { display: block; padding: 16px 0; font-size: 21px; font-family: var(--font-display); width: 100%; border-bottom: 1px solid var(--ec-hairline); }
	.ec-nav__link::after { display: none; }
	.ec-header__actions .ec-btn--compact { display: none; }
	.ec-menu-toggle { display: inline-flex; }

	.ec-marquee__item { font-size: 1.1rem; padding: 0 18px; }

	.ec-industry-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
	.ec-industry-tile, .ec-industry-tile--tall, .ec-industry-tile--wide, .ec-industry-tile--narrow { grid-column: span 2; grid-row: span 2; }
	.ec-industry-tile__desc { max-height: 60px; opacity: 1; margin-top: 8px; }

	.ec-pathway { flex-direction: column; gap: 14px; }
	.ec-pathway__arrow { transform: rotate(90deg); }

	.ec-solutions__grid { grid-template-columns: 1fr; }
	.ec-solution-item { border-left: none !important; }
	.ec-solution-item:nth-child(-n+3) { border-top: 1px solid var(--ec-hairline-light); }
	.ec-solution-item:first-child { border-top: none; }

	.ec-orbital { max-width: 340px; }
	.ec-orbital__node { width: 110px; margin-left: -55px; font-size: 90%; }
	.ec-orbital__node p { display: none; }

	.ec-timeline { grid-template-columns: 1fr; gap: 0; }
	.ec-timeline__track, .ec-timeline__fill { top: 0; left: 5px; right: auto; width: 1px; height: 100%; }
	.ec-timeline__fill { height: 0%; transition: height 1.1s var(--ec-ease); }
	.ec-timeline.is-active .ec-timeline__fill { height: 100%; width: 1px; }
	.ec-timeline__step { padding: 0 0 32px 30px; }
	.ec-timeline__step::before { top: 2px; left: 0; }

	.ec-footer__top { grid-template-columns: 1fr 1fr; gap: 32px; }
	.ec-footer__brand { grid-column: 1 / -1; margin-bottom: 12px; }
	.ec-cta__actions { flex-direction: column; align-items: stretch; }
	.ec-cta__actions .ec-btn { justify-content: center; }

	.ec-reviews__grid { grid-template-columns: 1fr; gap: 36px; }
	.ec-review { border-left: none; padding: 0; }
}

/* Mobile (430 / 390 / 360) */
@media (max-width: 480px) {
	.ec-hero { padding-top: 28px; }
	.ec-hero__actions { flex-direction: column; align-items: stretch; }
	.ec-hero__actions .ec-btn { justify-content: center; }
	.ec-hero__values { flex-direction: column; gap: 12px; }
	.ec-hero__frame { clip-path: none; }

	.ec-industry-grid { grid-template-columns: 1fr; grid-auto-rows: 240px; }
	.ec-industry-tile, .ec-industry-tile--tall, .ec-industry-tile--wide, .ec-industry-tile--narrow { grid-column: span 1; }

	.ec-quote__text { font-size: 1.7rem; }

	.ec-footer__top { grid-template-columns: 1fr; }
	.ec-footer__bottom { flex-direction: column; align-items: flex-start; }

	.ec-header__inner { padding: 14px var(--ec-gutter); }
	.ec-logo__wordmark { font-size: 18px; }
}

/* === v3.7 compact premium refinements === */
.ec-connected--compact{padding:clamp(56px,6vw,82px) 0}
.ec-connected--compact .ec-connected__inner{max-width:var(--ec-max);margin:auto;padding:0 var(--ec-gutter);display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(46px,7vw,100px);align-items:center}
.ec-connected--compact .ec-connected__intro{max-width:580px}.ec-connected--compact .ec-heading-lg{margin-bottom:18px}.ec-connected--compact .ec-connected__sub{max-width:52ch;margin:0}
.ec-connected__flow{padding-top:24px;border-top:1px solid var(--ec-hairline-light)}
.ec-connected__brand{font-family:var(--font-display);font-size:clamp(1.4rem,1.1rem + .8vw,2rem);color:var(--ec-offwhite);margin-bottom:22px}.ec-connected__brand em{color:var(--ec-gold-soft)}
.ec-connected__steps{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--ec-hairline-light);border-left:1px solid var(--ec-hairline-light)}
.ec-connected__step{min-height:118px;padding:20px 22px;border-right:1px solid var(--ec-hairline-light);border-bottom:1px solid var(--ec-hairline-light);display:grid;align-content:start}
.ec-connected__step span{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--ec-gold-soft);margin-bottom:14px}.ec-connected__step strong{font-family:var(--font-display);font-size:1.2rem;font-weight:500;color:var(--ec-offwhite);margin-bottom:5px}.ec-connected__step small{font-size:12px;color:var(--ec-white-50)}

.ec-why--compact{padding:clamp(56px,6vw,82px) 0}
.ec-why--compact .ec-why__inner{max-width:var(--ec-max);margin:auto;padding:0 var(--ec-gutter);display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(50px,7vw,100px);align-items:start}
.ec-why--compact .ec-why__head{text-align:left;margin:0}.ec-why--compact .ec-why__head .ec-eyebrow{justify-content:flex-start}.ec-why--compact .ec-why__head .ec-heading-lg{margin:0 0 16px}.ec-why--compact .ec-why__head .ec-lede{max-width:36ch}
.ec-why__grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--ec-hairline);border-left:1px solid var(--ec-hairline)}
.ec-why__item{padding:22px 24px;min-height:148px;border-right:1px solid var(--ec-hairline);border-bottom:1px solid var(--ec-hairline)}
.ec-why__item>span{display:block;font-family:var(--font-mono);font-size:10px;color:var(--ec-gold);letter-spacing:.12em;margin-bottom:20px}.ec-why__item h3{font-family:var(--font-display);font-size:clamp(1.1rem,1rem + .4vw,1.4rem);font-weight:500;color:var(--ec-emerald-dark);margin-bottom:7px}.ec-why__item p{font-size:12.5px;line-height:1.55;color:var(--ec-charcoal-65);max-width:30ch}
.ec-quote{display:none!important}

/* Contact no longer consumes a full screen: compact two-column presentation */
.ec-contact{padding:clamp(54px,5.5vw,76px) 0}
.ec-contact__inner{max-width:var(--ec-max);padding:0 var(--ec-gutter);display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(46px,7vw,100px);align-items:start;text-align:left}
.ec-contact__head{margin:0!important;position:sticky;top:110px}.ec-contact__head .ec-eyebrow{justify-content:flex-start}.ec-contact__head .ec-heading-lg{margin:0 0 14px!important}.ec-contact__head .ec-lede{margin:0!important;max-width:38ch}
.ec-contact__form{background:rgba(255,255,255,.5);border:1px solid var(--ec-hairline);padding:clamp(24px,3vw,34px)}
.ec-contact__form label{margin-bottom:16px}.ec-contact__form textarea{min-height:90px!important}
.ec-contact__form .ec-btn{margin-top:4px}
@media(max-width:900px){.ec-connected--compact .ec-connected__inner,.ec-why--compact .ec-why__inner,.ec-contact__inner{grid-template-columns:1fr;gap:36px}.ec-contact__head{position:static}}
@media(max-width:600px){.ec-connected--compact,.ec-why--compact,.ec-contact{padding:48px 0}.ec-connected__steps,.ec-why__grid{grid-template-columns:1fr}.ec-connected__step{min-height:100px}.ec-why__item{min-height:0}.ec-contact__form{padding:20px}}

/* === v3.7.2 custom logo — larger, responsive, header-safe === */
.ec-logo{
	flex:0 0 auto;
	min-width:0;
	max-width:230px;
	height:58px;
	display:inline-flex;
	align-items:center;
	justify-content:flex-start;
	overflow:visible;
	line-height:0;
}
.ec-logo__image{
	display:block !important;
	width:auto !important;
	height:52px !important;
	max-width:220px !important;
	max-height:52px !important;
	object-fit:contain;
	object-position:left center;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
}
.ec-header.is-scrolled .ec-logo{height:50px}
.ec-header.is-scrolled .ec-logo__image{
	height:44px !important;
	max-height:44px !important;
	max-width:205px !important;
}
@media(max-width:760px){
	.ec-logo{height:46px;max-width:175px}
	.ec-logo__image{
		height:40px !important;
		max-height:40px !important;
		max-width:170px !important;
	}
}
@media(max-width:390px){
	.ec-logo{height:42px;max-width:155px}
	.ec-logo__image{
		height:38px !important;
		max-height:38px !important;
		max-width:150px !important;
	}
}


/* === v3.7.3 navigation + footer cleanup === */
.ec-footer__top{
	grid-template-columns:1.7fr repeat(3,1fr);
}

/* Keep the mobile navigation above page content and make every item explicit. */
@media(max-width:768px){
	.ec-nav{
		display:block !important;
		visibility:visible;
	}
	.ec-nav.is-open{
		opacity:1 !important;
		transform:translateY(0) !important;
		pointer-events:auto !important;
	}
	.ec-nav__list{
		display:flex !important;
		flex-direction:column;
		align-items:stretch;
		width:100%;
	}
	.ec-nav__item{
		display:block;
		width:100%;
	}
	.ec-nav__item > .ec-nav__link{
		display:block !important;
		width:100%;
		padding:16px 0;
		color:var(--ec-charcoal) !important;
		opacity:1 !important;
		visibility:visible !important;
		font-family:var(--font-display);
		font-size:21px;
		line-height:1.25;
		border-bottom:1px solid var(--ec-hairline);
	}
}
@media(max-width:480px){
	.ec-footer__top{grid-template-columns:1fr}
}


/* ==========================================================================
   v3.7.4 — dedicated mobile drawer + correctly-sized bundled EC logo
   ========================================================================== */
.ec-logo{
	flex:0 0 auto;
	display:inline-flex;
	align-items:center;
	justify-content:flex-start;
	width:132px;
	height:58px;
	max-width:none;
	overflow:visible;
	line-height:0;
}
.ec-logo__image{
	display:block !important;
	width:132px !important;
	height:auto !important;
	max-width:none !important;
	max-height:52px !important;
	object-fit:contain;
	object-position:left center;
	margin:0 !important;
	padding:0 !important;
}
.ec-header.is-scrolled .ec-logo{width:118px;height:50px}
.ec-header.is-scrolled .ec-logo__image{width:118px !important;height:auto !important;max-height:44px !important}

.ec-mobile-drawer{display:none}

@media(max-width:768px){
	.ec-header{
		z-index:1000;
		background:var(--ec-offwhite);
	}
	.ec-header__inner{
		min-height:76px;
		padding:10px 20px;
		position:relative;
		z-index:1002;
	}
	.ec-logo,
	.ec-header.is-scrolled .ec-logo{
		width:138px;
		height:54px;
	}
	.ec-logo__image,
	.ec-header.is-scrolled .ec-logo__image{
		width:138px !important;
		height:auto !important;
		max-height:50px !important;
	}
	.ec-nav--desktop{display:none !important}
	.ec-header__actions .ec-btn--compact{display:none !important}
	.ec-menu-toggle{
		display:inline-flex !important;
		align-items:center;
		justify-content:center;
		width:46px;
		height:46px;
		padding:11px;
		position:relative;
		z-index:1003;
	}
	.ec-menu-toggle__box{width:24px;gap:7px}
	.ec-menu-toggle__bar{height:2px;background:var(--ec-charcoal)}

	.ec-mobile-drawer{
		display:block;
		position:fixed;
		inset:76px 0 0;
		z-index:1001;
		background:var(--ec-offwhite);
		overflow-y:auto;
		overscroll-behavior:contain;
		opacity:0;
		visibility:hidden;
		pointer-events:none;
		transform:translateY(-8px);
		transition:opacity .25s var(--ec-ease),transform .25s var(--ec-ease),visibility .25s;
	}
	.ec-mobile-drawer.is-open{
		opacity:1;
		visibility:visible;
		pointer-events:auto;
		transform:none;
	}
	body.ec-menu-open{
		overflow:hidden !important;
		touch-action:none;
	}

	.ec-mobile-nav{
		min-height:calc(100dvh - 76px);
		padding:28px 22px 34px;
		display:flex;
		flex-direction:column;
	}
	.ec-mobile-nav__list{
		display:flex;
		flex-direction:column;
		border-top:1px solid var(--ec-hairline);
	}
	.ec-mobile-nav__list li{
		display:block;
		width:100%;
		border-bottom:1px solid var(--ec-hairline);
	}
	.ec-mobile-nav__list a{
		width:100%;
		min-height:66px;
		display:grid;
		grid-template-columns:34px 1fr;
		align-items:center;
		gap:10px;
		padding:13px 2px;
		font-family:var(--font-mono);
		font-size:9px;
		letter-spacing:.1em;
		color:var(--ec-gold);
	}
	.ec-mobile-nav__list a span{
		font-family:var(--font-display);
		font-size:clamp(1.55rem,7vw,2rem);
		line-height:1.05;
		letter-spacing:-.015em;
		color:var(--ec-emerald-dark);
	}
	.ec-mobile-nav__list a:focus-visible{
		outline:2px solid var(--ec-green);
		outline-offset:-2px;
	}
	.ec-mobile-nav__cta{
		margin-top:auto;
		min-height:50px;
		display:flex;
		align-items:center;
		justify-content:space-between;
		gap:18px;
		padding:14px 18px;
		background:var(--ec-emerald-deep);
		color:#fff;
		font-size:14px;
		font-weight:700;
	}
}

@media(max-width:390px){
	.ec-logo,
	.ec-header.is-scrolled .ec-logo{
		width:128px;
	}
	.ec-logo__image,
	.ec-header.is-scrolled .ec-logo__image{
		width:128px !important;
		max-height:46px !important;
	}
	.ec-mobile-nav{padding-left:18px;padding-right:18px}
	.ec-mobile-nav__list a{min-height:62px}
}

/* === v3.8 professional training landing page === */
.ec-training-hero__media{position:relative;align-self:stretch;overflow:hidden}.ec-training-hero__media img{width:100%;height:100%;min-height:620px;object-fit:cover}.ec-training-hero__media figcaption{position:absolute;right:22px;bottom:22px;max-width:250px;padding:13px 16px;background:rgba(248,246,239,.94);font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--ec-emerald-dark)}
.ec-training-points{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:28px;padding-top:20px;border-top:1px solid var(--ec-hairline)}.ec-training-points span{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ec-emerald-deep)}
.ec-training-services{padding:clamp(68px,8vw,112px) 0}.ec-training-section-head{display:grid;grid-template-columns:1fr .72fr;gap:70px;align-items:end;margin-bottom:46px}.ec-training-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ec-training-card{position:relative;min-height:370px;overflow:hidden;background:var(--ec-emerald-dark)}.ec-training-card--feature{grid-column:span 2;grid-row:span 2;min-height:752px}.ec-training-card--wide{grid-column:span 2}.ec-training-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ec-ease)}.ec-training-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,rgba(0,39,34,.88) 100%)}.ec-training-card>div{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:26px;color:#fff}.ec-training-card span{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;color:var(--ec-gold-soft)}.ec-training-card h3{font-family:var(--font-display);font-size:clamp(1.35rem,1.1rem + .65vw,2rem);font-weight:500;margin:8px 0}.ec-training-card p{max-width:44ch;font-size:12.5px;line-height:1.6;color:rgba(255,255,255,.78)}.ec-training-card:hover img{transform:scale(1.025)}
.ec-training-expertise{padding:clamp(70px,8vw,110px) 0;background:var(--ec-emerald-dark);color:var(--ec-offwhite)}.ec-training-expertise__inner{max-width:var(--ec-max);margin:auto;padding:0 var(--ec-gutter);display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}.ec-training-expertise__inner>div:first-child>p:last-child{max-width:50ch;color:var(--ec-white-50);line-height:1.7}.ec-expertise-tiles{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ec-hairline-light);border-left:1px solid var(--ec-hairline-light)}.ec-expertise-tiles>div{min-height:170px;padding:24px;border-right:1px solid var(--ec-hairline-light);border-bottom:1px solid var(--ec-hairline-light)}.ec-expertise-tiles span{font-family:var(--font-mono);font-size:9px;color:var(--ec-gold-soft)}.ec-expertise-tiles strong{display:block;font-family:var(--font-display);font-size:1.25rem;font-weight:500;margin:24px 0 8px}.ec-expertise-tiles p{font-size:12px;line-height:1.55;color:var(--ec-white-50)}
.ec-training-why{padding:clamp(70px,8vw,110px) 0}.ec-training-why .ec-why__inner{max-width:var(--ec-max);margin:auto;padding:0 var(--ec-gutter)}
.ec-projects{padding:clamp(70px,8vw,110px) 0;background:var(--ec-offwhite)}.ec-projects__inner{max-width:var(--ec-max);margin:auto;padding:0 var(--ec-gutter)}.ec-project-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ec-hairline);border-left:1px solid var(--ec-hairline)}.ec-project-grid article{min-height:240px;padding:30px;border-right:1px solid var(--ec-hairline);border-bottom:1px solid var(--ec-hairline)}.ec-project-grid span{font-family:var(--font-mono);font-size:9px;color:var(--ec-gold)}.ec-project-grid h3{font-family:var(--font-display);font-size:1.55rem;font-weight:500;margin:48px 0 12px;color:var(--ec-emerald-dark)}.ec-project-grid p{font-size:13px;line-height:1.65;color:var(--ec-charcoal-65)}
.ec-team{padding:clamp(70px,8vw,110px) 0;background:#fff}.ec-team__inner{max-width:var(--ec-max);margin:auto;padding:0 var(--ec-gutter);display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center}.ec-team figure{overflow:hidden}.ec-team img{width:100%;height:540px;object-fit:cover}.ec-team .ec-lede{margin-bottom:20px}
.ec-footer__top{grid-template-columns:1.5fr 1fr 1fr}
@media(max-width:900px){.ec-training-section-head,.ec-training-expertise__inner,.ec-team__inner{grid-template-columns:1fr;gap:36px}.ec-training-grid{grid-template-columns:1fr 1fr}.ec-training-card--feature,.ec-training-card--wide{grid-column:span 2}.ec-training-card--feature{grid-row:auto;min-height:520px}.ec-project-grid{grid-template-columns:1fr}.ec-training-hero__media img{min-height:500px}}
@media(max-width:600px){.ec-training-grid{grid-template-columns:1fr}.ec-training-card,.ec-training-card--feature,.ec-training-card--wide{grid-column:auto;min-height:410px}.ec-expertise-tiles{grid-template-columns:1fr}.ec-team img{height:400px}.ec-footer__top{grid-template-columns:1fr}.ec-training-hero__media img{min-height:430px}}


/* === v3.8.1 QA refinements === */
.ec-training-why .ec-why__head{
	text-align:center !important;
	max-width:900px;
	margin:0 auto clamp(34px,4vw,50px) !important;
}
.ec-training-why .ec-why__head .ec-eyebrow{
	justify-content:center !important;
}
.ec-training-why .ec-why__head .ec-heading-lg{
	max-width:none !important;
	margin:0 auto 18px !important;
}
.ec-training-why .ec-why__head .ec-lede{
	max-width:760px !important;
	margin:0 auto !important;
	text-align:center;
}
.ec-training-card img{background:var(--ec-stone)}
@media(max-width:600px){
	.ec-training-why .ec-why__head{margin-bottom:30px !important}
}


/* ==========================================================================\n   v3.8.2 — Mobile UX polish\n   ========================================================================== */
.ec-training-hero__heading .ec-h1-line{display:inline}

@media (max-width: 600px){
	:root{--ec-gutter:20px}
	.ec-header__inner{padding-left:20px;padding-right:20px}

	/* Hero: controlled three-line title, tighter first viewport */
	.ec-training-hero{padding:28px 0 48px}
	.ec-training-hero .ec-hero__inner{gap:28px}
	.ec-training-hero .ec-hero__copy{padding-left:0}
	.ec-training-hero .ec-eyebrow{
		font-size:8.5px;
		letter-spacing:.095em;
		gap:8px;
		margin-bottom:20px;
		white-space:nowrap;
	}
	.ec-training-hero .ec-eyebrow__rule{width:20px}
	.ec-training-hero__heading{
		font-size:clamp(2.15rem,9.6vw,2.45rem) !important;
		line-height:1.01 !important;
		letter-spacing:-.025em !important;
		margin-bottom:22px !important;
		max-width:100% !important;
	}
	.ec-training-hero__heading .ec-h1-line{display:block}
	.ec-training-hero__heading .ec-h1-line--3{margin-top:1px}
	.ec-training-hero .ec-hero__lede{
		font-size:15.5px;
		line-height:1.67;
		max-width:100%;
		margin-bottom:26px;
	}
	.ec-training-hero .ec-hero__actions{gap:10px;margin-bottom:24px}
	.ec-training-hero .ec-hero__actions .ec-btn{
		width:100%;
		min-height:52px;
		justify-content:center;
		padding:13px 18px;
		font-size:14px;
	}
	.ec-training-points{margin-top:22px;padding-top:18px;gap:9px 14px}
	.ec-training-points span{font-size:8.5px}
	.ec-training-hero__media img{min-height:360px;height:58vh;max-height:470px;object-position:center 22%}
	.ec-training-hero__media figcaption{right:12px;bottom:12px;left:12px;max-width:none;padding:10px 12px;font-size:8px}

	/* Site-wide mobile type and rhythm */
	.ec-heading-lg{font-size:clamp(1.95rem,8.3vw,2.3rem);line-height:1.05;max-width:100%}
	.ec-lede{font-size:15px;line-height:1.66}
	.ec-eyebrow{font-size:9px;letter-spacing:.12em;margin-bottom:16px}
	.ec-about,.ec-training-services,.ec-training-expertise,.ec-training-why,.ec-projects,.ec-team,.ec-contact{padding-top:52px;padding-bottom:52px}
	.ec-about__body,.ec-about__content,.ec-expertise__copy{padding-top:26px}
	.ec-about__content>p:not(.ec-eyebrow):not(.ec-lede),.ec-team p:not(.ec-eyebrow):not(.ec-lede){font-size:14px;line-height:1.68}

	/* Service gallery: keep photography prominent without oversized cards */
	.ec-training-section-head{gap:18px;margin-bottom:28px}
	.ec-training-card,.ec-training-card--feature,.ec-training-card--wide{min-height:340px}
	.ec-training-card>div{padding:20px}
	.ec-training-card h3{font-size:1.55rem}
	.ec-training-card p{font-size:12px;line-height:1.55}

	/* Expertise / Why / Projects */
	.ec-training-expertise__inner{gap:30px}
	.ec-expertise-tiles>div{min-height:0;padding:20px}
	.ec-expertise-tiles strong{margin:14px 0 6px;font-size:1.15rem}
	.ec-why--compact .ec-why__head,.ec-training-why .ec-why__head{text-align:center}
	.ec-training-why .ec-why__head .ec-eyebrow{justify-content:center}
	.ec-training-why .ec-why__head .ec-lede{margin-left:auto;margin-right:auto}
	.ec-why__item{padding:20px}
	.ec-project-grid article{min-height:0;padding:22px}
	.ec-project-grid h3{margin:24px 0 8px;font-size:1.35rem}

	/* Team and contact */
	.ec-team__inner{gap:28px}
	.ec-team img{height:330px;object-position:center 25%}
	.ec-contact__inner{gap:28px}
	.ec-contact__head{position:static !important}
	.ec-contact__form{padding:20px}
	.ec-contact__form textarea{min-height:90px !important}

	/* Footer breathing room */
	.ec-footer__inner{padding-top:48px;padding-bottom:26px}
	.ec-footer__top{gap:26px;padding-bottom:36px}
}

@media (max-width: 390px){
	:root{--ec-gutter:18px}
	.ec-training-hero .ec-eyebrow{font-size:8px;letter-spacing:.085em}
	.ec-training-hero__heading{font-size:2.12rem !important}
	.ec-training-hero .ec-hero__lede{font-size:15px}
	.ec-logo,.ec-header.is-scrolled .ec-logo{width:122px}
	.ec-logo__image,.ec-header.is-scrolled .ec-logo__image{width:122px !important}
}

/* === v3.8.3 mobile typography correction === */
@media(max-width:600px){
 .ec-training-hero .ec-training-hero__heading{margin:0 0 18px!important;max-width:100%!important;font-size:clamp(35px,10vw,42px)!important;line-height:1.02!important;letter-spacing:-.035em!important}
 .ec-training-hero .ec-training-hero__heading em{display:inline!important;margin:0!important;padding:0!important;line-height:inherit!important}
 .ec-training-hero .ec-hero__lede{font-size:14px!important;line-height:1.58!important;margin:0 0 22px!important}
 .ec-training-hero .ec-eyebrow{margin-bottom:16px!important}
 .ec-heading-lg{font-size:clamp(30px,8.4vw,36px)!important;line-height:1.03!important;letter-spacing:-.025em!important;margin-bottom:15px!important}
 .ec-heading-lg br{display:none!important}
 .ec-heading-lg em{display:inline!important;line-height:inherit!important}
 .ec-about,.ec-training-services,.ec-training-expertise,.ec-training-why,.ec-projects,.ec-team,.ec-contact{padding-top:56px!important;padding-bottom:56px!important}
 .ec-training-section-head{gap:18px!important;margin-bottom:28px!important}
 .ec-training-why .ec-why__head{text-align:center!important;margin-left:auto!important;margin-right:auto!important}
 .ec-training-why .ec-why__head .ec-eyebrow{justify-content:center!important}
 .ec-training-why .ec-why__head .ec-heading-lg,.ec-training-why .ec-why__head .ec-lede{text-align:center!important;margin-left:auto!important;margin-right:auto!important}
 .ec-project-grid article{min-height:0!important;padding:24px!important}
 .ec-project-grid h3{margin-top:22px!important}
}

/* === v3.8.4 heading spacing + footer logo === */
.ec-footer__logo-image{display:inline-flex;align-items:center;width:150px;height:76px;overflow:hidden;line-height:0}
.ec-footer__logo-image img{display:block;width:150px;height:auto;max-height:76px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);opacity:.96}
@media(max-width:600px){
	.ec-heading-lg br{display:none!important}
	.ec-heading-lg em{display:inline!important;margin:0!important;padding:0!important}
	.ec-footer__logo-image{width:138px;height:68px}
	.ec-footer__logo-image img{width:138px;max-height:68px}
}

/* =========================================================================
   v3.9 — Technology repositioning: interior-page components
   (policy/legal pages, FAQ, service pages, contact details, nav dropdown)
   ========================================================================= */

/* Services dropdown in the primary nav */
.ec-nav__item--has-children { position: relative; }
.ec-nav__submenu {
	list-style: none; margin: 0; padding: 10px; position: absolute; top: 100%; left: 50%;
	transform: translate(-50%, 6px); min-width: 300px; background: #fff;
	border: 1px solid var(--ec-hairline); border-radius: 6px;
	box-shadow: 0 18px 40px rgba(0,61,53,0.14);
	opacity: 0; visibility: hidden; pointer-events: none;
	transition: opacity 0.2s var(--ec-ease), transform 0.2s var(--ec-ease), visibility 0.2s;
	z-index: 50;
}
.ec-nav__item--has-children:hover .ec-nav__submenu,
.ec-nav__item--has-children:focus-within .ec-nav__submenu {
	opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0);
}
.ec-nav__submenu li a { display: block; padding: 10px 14px; font-size: 13.5px; font-weight: 500; color: var(--ec-charcoal); border-radius: 4px; }
.ec-nav__submenu li a:hover { background: var(--ec-mint); color: var(--ec-emerald-deep); }
@media (max-width: 768px) { .ec-nav__submenu { display: none; } }

/* Mobile drawer: nested service links under the "Services" item */
.ec-mobile-nav__sublist { list-style: none; margin: 0 0 0 44px; padding: 4px 0 10px; }
.ec-mobile-nav__sublist li { border-bottom: none !important; }
.ec-mobile-nav__sublist a {
	min-height: 0 !important; display: block !important; grid-template-columns: none !important;
	padding: 9px 2px !important; font-family: var(--font-body) !important; font-size: 14.5px !important;
	color: var(--ec-charcoal-65) !important; font-weight: 500;
}

/* Generic interior page hero (About, Services, Contact, Portfolio, FAQ, policy pages) */
.ec-page-hero { position: relative; padding: clamp(120px, 14vw, 168px) 0 clamp(48px, 6vw, 72px); background: var(--ec-mint); overflow: hidden; }
.ec-page-hero__inner { max-width: var(--ec-max, var(--ec-container)); margin: 0 auto; padding: 0 var(--ec-gutter); }
.ec-page-hero__heading { max-width: 22ch; }
.ec-page-hero__lede { margin-top: 20px; }
.ec-page-hero--split .ec-page-hero__inner { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(28px, 4vw, 56px); align-items: center; }
.ec-page-hero__media { position: relative; aspect-ratio: 5/4; overflow: hidden; border-radius: 4px; }
.ec-page-hero__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.94) contrast(1.02); }
@media (max-width: 900px) { .ec-page-hero--split .ec-page-hero__inner { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .ec-page-hero { padding: 104px 0 40px; } }

/* Long-form prose (policies, about) */
.ec-prose-section { padding: clamp(48px, 6vw, 84px) 0; }
.ec-prose-wrap { max-width: 880px; margin: 0 auto; padding: 0 var(--ec-gutter); }
.ec-prose-wrap h2 { font-family: var(--font-display); font-weight: 500; font-size: clamp(1.3rem, 1.15rem + 0.5vw, 1.65rem); color: var(--ec-emerald-dark); margin: 0 0 14px; }
.ec-prose-wrap p { font-size: 15.5px; line-height: 1.75; color: var(--ec-charcoal-65); margin: 0 0 16px; }
.ec-prose-section__intro { font-size: 14.5px; color: var(--ec-charcoal-45); margin-bottom: 40px; padding-bottom: 28px; border-bottom: 1px solid var(--ec-hairline); }
.ec-policy-block { padding: 26px 0; border-top: 1px solid var(--ec-hairline); }
.ec-policy-block:last-child { padding-bottom: 0; }
.ec-policy-toc { background: var(--ec-mint); padding: 26px 28px; margin-bottom: 44px; border-radius: 4px; }
.ec-policy-toc h2 { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ec-emerald-deep); margin: 0 0 14px; }
.ec-policy-toc ol { columns: 2; column-gap: 28px; padding-left: 18px; margin: 0; }
.ec-policy-toc li { font-size: 13.5px; margin-bottom: 8px; break-inside: avoid; }
.ec-policy-toc a { color: var(--ec-charcoal-65); }
.ec-policy-toc a:hover { color: var(--ec-emerald-deep); }
@media (max-width: 600px) { .ec-policy-toc ol { columns: 1; } }

/* Company / contact detail card */
.ec-info-card { background: #fff; border: 1px solid var(--ec-hairline); padding: clamp(24px, 3vw, 34px); }
.ec-info-card h2 { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ec-emerald-deep); margin: 0 0 18px; }
.ec-info-card dl { margin: 0; }
.ec-info-card dt { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ec-charcoal-45); margin: 18px 0 4px; }
.ec-info-card dt:first-child { margin-top: 0; }
.ec-info-card dd { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ec-charcoal); }
.ec-info-card a { color: var(--ec-emerald-deep); font-weight: 600; }
.ec-info-card a:hover { text-decoration: underline; }

/* FAQ */
.ec-faq { padding: clamp(56px, 7vw, 100px) 0; }
.ec-faq__inner { max-width: 880px; margin: 0 auto; padding: 0 var(--ec-gutter); }
.ec-faq__item { padding: 26px 0; border-top: 1px solid var(--ec-hairline); }
.ec-faq__item:last-child { border-bottom: 1px solid var(--ec-hairline); }
.ec-faq__item h3 { font-family: var(--font-display); font-weight: 500; font-size: clamp(1.05rem, 1rem + 0.3vw, 1.3rem); color: var(--ec-emerald-dark); margin: 0 0 10px; }
.ec-faq__item p { font-size: 14.5px; line-height: 1.7; color: var(--ec-charcoal-65); margin: 0; max-width: 68ch; }

/* Service page: deliverables list + pricing note */
.ec-deliverables { display: flex; flex-direction: column; margin: 0 0 8px; }
.ec-deliverables li { position: relative; padding: 14px 0 14px 26px; border-top: 1px solid var(--ec-hairline); font-size: 14.5px; color: var(--ec-charcoal-65); line-height: 1.55; }
.ec-deliverables li:last-child { border-bottom: 1px solid var(--ec-hairline); }
.ec-deliverables li::before { content: ''; position: absolute; left: 2px; top: 22px; width: 8px; height: 1.5px; background: var(--ec-green); }
.ec-pricing-note { background: var(--ec-stone); padding: 22px 24px; font-size: 14px; line-height: 1.65; color: var(--ec-charcoal-65); border-left: 2px solid var(--ec-gold); }

/* Portfolio placeholder */
.ec-portfolio-notice { max-width: 720px; margin: 0 auto; text-align: center; padding: clamp(56px, 7vw, 96px) var(--ec-gutter); }
.ec-portfolio-notice .ec-heading-lg { max-width: none; margin: 0 auto 18px; }
.ec-portfolio-notice .ec-lede { margin: 0 auto; }

/* Breadcrumb */
.ec-breadcrumb { display: flex; flex-wrap: wrap; gap: 6px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.05em; color: var(--ec-charcoal-45); margin: 0 0 20px; }
.ec-breadcrumb a { color: var(--ec-charcoal-45); }
.ec-breadcrumb a:hover { color: var(--ec-emerald-deep); }

/* v4.1 — premium compact landing-page refinements; built on the original design system. */
.ec-premium-service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ec-hairline);border-left:1px solid var(--ec-hairline)}
.ec-premium-service-card{min-height:285px;padding:28px;display:flex;flex-direction:column;border-right:1px solid var(--ec-hairline);border-bottom:1px solid var(--ec-hairline);background:var(--ec-offwhite);transition:background .25s var(--ec-ease),transform .25s var(--ec-ease)}
.ec-premium-service-card:hover{background:#fff;transform:translateY(-2px)}
.ec-premium-service-card>span{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;color:var(--ec-gold)}
.ec-premium-service-card h3{font-family:var(--font-display);font-size:clamp(1.35rem,1.1rem + .35vw,1.7rem);font-weight:500;line-height:1.08;margin:34px 0 12px;color:var(--ec-emerald-dark)}
.ec-premium-service-card h3 a{color:inherit;text-decoration:none}
.ec-premium-service-card p{font-size:12.5px;line-height:1.65;color:var(--ec-charcoal-65);margin:0 0 24px}
.ec-premium-service-card__link{margin-top:auto;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ec-emerald-dark);text-decoration:none}
.ec-home-faq{background:var(--ec-offwhite)}
.ec-home-faq__head{margin-bottom:28px}
@media(max-width:1000px){.ec-premium-service-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.ec-premium-service-grid{grid-template-columns:1fr}.ec-premium-service-card{min-height:0;padding:22px}.ec-premium-service-card h3{margin-top:22px}}
.ec-about__content{min-width:0;padding:clamp(24px,4vw,56px) 0 0 clamp(28px,4vw,56px)}
.ec-about__content .ec-heading-lg{margin-bottom:24px}.ec-about__content .ec-lede{margin-bottom:22px}
@media(max-width:900px){.ec-about__content{padding-left:0;padding-top:36px}}

/* v4.3 — stable WordPress menu styling + premium compact header/footer */
.ec-header{background:rgba(250,248,243,.96);border-bottom:1px solid rgba(0,61,53,.08)}
.ec-header__inner{min-height:78px;padding:10px var(--ec-gutter);gap:20px}
.ec-header.is-scrolled .ec-header__inner{padding-top:8px;padding-bottom:8px}
.ec-logo,.ec-header.is-scrolled .ec-logo{width:148px;height:56px;max-width:148px;flex:0 0 148px}
.ec-logo__image,.ec-header.is-scrolled .ec-logo__image{width:148px!important;height:auto!important;max-width:148px!important;max-height:52px!important;object-fit:contain}
.ec-nav--desktop{margin-left:auto}.ec-nav__list{gap:22px}.ec-nav__item{position:relative}
.ec-nav__link{display:inline-flex;align-items:center;font-size:13.5px;font-weight:600;white-space:nowrap;color:var(--ec-charcoal)}
.ec-nav__item--has-children>.ec-nav__link::before{content:'';order:2;width:6px;height:6px;margin-left:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.65}
.ec-header__actions{gap:12px;flex:0 0 auto}.ec-header__actions .ec-btn--compact{padding:10px 15px;font-size:13px;white-space:nowrap}.ec-menu-toggle{border:1px solid var(--ec-hairline);border-radius:4px;background:rgba(255,255,255,.55)}
@media(max-width:1120px){.ec-nav--desktop{display:none!important}.ec-header__actions .ec-btn--compact{display:none!important}.ec-menu-toggle{display:inline-flex!important;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;position:relative;z-index:1003}.ec-mobile-drawer{display:block;position:fixed;inset:78px 0 0;z-index:1001;background:var(--ec-offwhite);overflow-y:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px);transition:opacity .22s var(--ec-ease),transform .22s var(--ec-ease),visibility .22s}.ec-mobile-drawer.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.ec-header{z-index:1000}.ec-header__inner{position:relative;z-index:1002}body.ec-menu-open{overflow:hidden}}
@media(max-width:600px){.ec-header__inner{min-height:70px;padding:8px 18px}.ec-logo,.ec-header.is-scrolled .ec-logo{width:132px;height:50px;max-width:132px;flex-basis:132px}.ec-logo__image,.ec-header.is-scrolled .ec-logo__image{width:132px!important;max-width:132px!important;max-height:46px!important}.ec-mobile-drawer{inset:70px 0 0}}
.ec-footer--compact{background:var(--ec-emerald-dark);color:var(--ec-offwhite)}.ec-footer--compact .ec-footer__inner{padding:34px var(--ec-gutter) 22px}.ec-footer__compact-main{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(420px,1fr);gap:44px;align-items:center;padding-bottom:22px}.ec-footer__brand--compact{display:flex;align-items:center;gap:20px;min-width:0}.ec-footer--compact .ec-footer__logo-image{width:126px;height:54px;flex:0 0 126px}.ec-footer--compact .ec-footer__logo-image img{width:126px;max-height:54px}.ec-footer__compact-copy{margin:0;max-width:48ch;font-size:13.5px;line-height:1.6;color:var(--ec-white-70)}.ec-footer__compact-nav{display:flex;justify-content:flex-end;gap:20px;flex-wrap:wrap}.ec-footer__compact-nav a,.ec-footer__legal-links a,.ec-footer__compact-contact a{color:var(--ec-white-70);font-size:13px;transition:color .2s var(--ec-ease)}.ec-footer__compact-nav a{font-weight:600;color:#fff}.ec-footer__compact-nav a:hover,.ec-footer__legal-links a:hover,.ec-footer__compact-contact a:hover{color:var(--ec-gold-soft)}.ec-footer__legal-links{display:flex;gap:16px;flex-wrap:wrap;padding:15px 0;border-top:1px solid var(--ec-hairline-light);border-bottom:1px solid var(--ec-hairline-light)}.ec-footer__bottom--compact{padding-top:17px;align-items:flex-end;gap:22px}.ec-footer__legal-identity{display:flex;flex-direction:column;gap:3px;margin:0;max-width:760px;font-size:11.5px;line-height:1.45;color:var(--ec-white-50)}.ec-footer__legal-identity strong{font-size:12.5px;color:var(--ec-white-70)}.ec-footer__compact-contact{display:flex;flex-direction:column;align-items:flex-end;gap:5px;margin-left:auto;font-size:11.5px;color:var(--ec-white-50);white-space:nowrap}
@media(max-width:900px){.ec-footer__compact-main{grid-template-columns:1fr;gap:20px}.ec-footer__compact-nav{justify-content:flex-start}.ec-footer__bottom--compact{align-items:flex-start}.ec-footer__compact-contact{align-items:flex-start;margin-left:0}}
@media(max-width:600px){.ec-footer--compact .ec-footer__inner{padding:28px 18px 20px}.ec-footer__brand--compact{align-items:flex-start;flex-direction:column;gap:10px}.ec-footer__compact-nav{gap:12px 18px}.ec-footer__legal-links{gap:10px 14px}.ec-footer__bottom--compact{flex-direction:column}.ec-footer__legal-identity span:last-child{max-width:34ch}}
