/* ==========================================================================
   EM3 Energy - native-blocks.css
   Native (Gutenberg) block styling for the About + Contact clusters, built to
   MATCH the existing single service / category template design system. Scoped
   under body.em3-native so it never touches the rest of the site.

   It deliberately REUSES the established brand system: the site palette
   (--em3-* from brand.css), the real .em3-btn-primary/.em3-btn-ghost buttons,
   the .on-light light-band flip, the .em3-eyebrow / .accent type, the service
   split + corner crop-mark image frame, and the .em3-reveal / count-up / hero
   parallax animations (native-blocks.js). No em dashes. Left aligned.
   ========================================================================== */

body.em3-native { background: var(--em3-bg-deep); }

/* --------------------------------------------------------------------------
   1. Section bands (full-bleed group, constrained inner). Match .em3-section rhythm.
   -------------------------------------------------------------------------- */
.em3-native .is-style-em3-dark,
.em3-native .is-style-em3-dark-2,
.em3-native .is-style-em3-elev,
.em3-native .is-style-em3-light {
  padding-block: var(--em3-space-4);
  padding-inline: var(--em3-pad-x);
}
@media (max-width: 980px) { .em3-native .is-style-em3-dark, .em3-native .is-style-em3-dark-2, .em3-native .is-style-em3-elev, .em3-native .is-style-em3-light { padding-block: var(--em3-space-3); } }
@media (max-width: 640px) { .em3-native .is-style-em3-dark, .em3-native .is-style-em3-dark-2, .em3-native .is-style-em3-elev, .em3-native .is-style-em3-light { padding-block: var(--em3-space-2); } }

.em3-native .is-style-em3-dark   { background: var(--em3-bg-deep); color: var(--em3-ink-muted); }
.em3-native .is-style-em3-dark-2 { background: var(--em3-bg);      color: var(--em3-ink-muted); }
.em3-native .is-style-em3-elev   { background: var(--em3-bg-elev); color: var(--em3-ink-muted); }
.em3-native .is-style-em3-light  { background: var(--em3-snow);    color: var(--em3-charcoal); }

/* Heading + body colour by band (brand.css sets the type scale + capitalize + .accent). */
.em3-native .is-style-em3-dark :is(h1,h2,h3,h4,h5),
.em3-native .is-style-em3-dark-2 :is(h1,h2,h3,h4,h5),
.em3-native .is-style-em3-elev :is(h1,h2,h3,h4,h5),
.em3-native .wp-block-cover :is(h1,h2,h3,h4,h5) { color: var(--em3-ink); }
.em3-native .is-style-em3-light :is(h1,h2,h3,h4,h5) { color: var(--em3-ink-navy); }
.em3-native .is-style-em3-light p { color: var(--em3-charcoal); }
.em3-native .em3-main :is(h1,h2,h3,h4,h5,p) { text-align: left; }

/* Lede / section intro paragraph */
.em3-native .em3n-lede { font-size: clamp(16.5px, 1.4vw, 19px); line-height: 1.6; max-width: 74ch; color: var(--em3-ink-muted); }
.em3-native .is-style-em3-light .em3n-lede { color: rgba(10,24,88,0.74); }
.em3-native .em3-main .em3-eyebrow { display: block; margin-bottom: 14px; }
.em3-native .is-style-em3-light .em3-eyebrow { color: rgba(10,24,88,0.72); }
/* WP constrained-layout centres a child narrower than the container (margin-inline:auto).
   For section-level narrowed blocks, anchor the whole 1180 box left (margin-inline:0) so the
   block's left edge lines up with the headings, while max-width keeps a readable measure. */
.em3-native .is-style-em3-dark > .em3n-lede,
.em3-native .is-style-em3-dark-2 > .em3n-lede,
.em3-native .is-style-em3-elev > .em3n-lede,
.em3-native .is-style-em3-light > .em3n-lede { max-width: var(--em3-maxw); }

/* --------------------------------------------------------------------------
   2. Button rows (use the REAL .em3-btn-primary / .em3-btn-ghost from brand.css)
   -------------------------------------------------------------------------- */
.em3-native .em3n-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 28px; }

/* --------------------------------------------------------------------------
   3. Two-column split with framed, crop-marked image (matches .em3-svc-split)
   -------------------------------------------------------------------------- */
.em3-native .em3n-split { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: stretch; }
.em3-native .em3n-split__body { align-self: center; min-width: 0; }
.em3-native .em3n-split--reverse .em3n-split__media { order: 2; }
.em3-native .em3n-figure {
  margin: 0; position: relative; aspect-ratio: auto; height: 100%; min-height: 380px;
  border-radius: var(--em3-radius-card); border: 1px solid var(--em3-line-soft);
  box-shadow: 0 40px 80px -44px rgba(0,0,0,0.6);
}
.em3-native .is-style-em3-light .em3n-figure { border-color: var(--em3-line-onwhite); box-shadow: 0 40px 80px -44px rgba(10,24,88,0.32); }
.em3-native .em3n-figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; border-radius: inherit; }
/* engineering corner crop-marks just outside the frame (brand signal) */
.em3-native .em3n-figure::after {
  content: ""; position: absolute; inset: -9px; z-index: 2; pointer-events: none; --cm: var(--em3-accent-hot);
  background:
    linear-gradient(var(--cm),var(--cm)) left top / 13px 1.5px no-repeat,
    linear-gradient(var(--cm),var(--cm)) left top / 1.5px 13px no-repeat,
    linear-gradient(var(--cm),var(--cm)) right top / 13px 1.5px no-repeat,
    linear-gradient(var(--cm),var(--cm)) right top / 1.5px 13px no-repeat,
    linear-gradient(var(--cm),var(--cm)) left bottom / 13px 1.5px no-repeat,
    linear-gradient(var(--cm),var(--cm)) left bottom / 1.5px 13px no-repeat,
    linear-gradient(var(--cm),var(--cm)) right bottom / 13px 1.5px no-repeat,
    linear-gradient(var(--cm),var(--cm)) right bottom / 1.5px 13px no-repeat;
}
.em3-native .is-style-em3-light .em3n-figure::after { --cm: var(--em3-accent); }
@media (max-width: 860px) {
  .em3-native .em3n-split { grid-template-columns: 1fr; gap: 30px; }
  .em3-native .em3n-split__media { order: -1; }
  .em3-native .em3n-figure { aspect-ratio: 16 / 10; height: auto; min-height: 0; }
}

/* Native image (core/image) framed like the service split media, with crop-marks. */
.em3-native .wp-block-image.is-style-em3-frame { position: relative; margin: 0; }
.em3-native .wp-block-image.is-style-em3-frame img { width: 100%; border-radius: var(--em3-radius-card); border: 1px solid var(--em3-line-soft); box-shadow: 0 40px 80px -44px rgba(0,0,0,0.6); display: block; }
.em3-native .is-style-em3-light .wp-block-image.is-style-em3-frame img { border-color: var(--em3-line-onwhite); box-shadow: 0 40px 80px -44px rgba(10,24,88,0.32); }
.em3-native .wp-block-image.is-style-em3-frame::after {
  content: ""; position: absolute; inset: -9px; z-index: 2; pointer-events: none; --cm: var(--em3-accent);
  background:
    linear-gradient(var(--cm),var(--cm)) left top / 13px 1.5px no-repeat,
    linear-gradient(var(--cm),var(--cm)) left top / 1.5px 13px no-repeat,
    linear-gradient(var(--cm),var(--cm)) right top / 13px 1.5px no-repeat,
    linear-gradient(var(--cm),var(--cm)) right top / 1.5px 13px no-repeat,
    linear-gradient(var(--cm),var(--cm)) left bottom / 13px 1.5px no-repeat,
    linear-gradient(var(--cm),var(--cm)) left bottom / 1.5px 13px no-repeat,
    linear-gradient(var(--cm),var(--cm)) right bottom / 13px 1.5px no-repeat,
    linear-gradient(var(--cm),var(--cm)) right bottom / 1.5px 13px no-repeat;
}
.em3-native .is-style-em3-dark .wp-block-image.is-style-em3-frame::after,
.em3-native .is-style-em3-dark-2 .wp-block-image.is-style-em3-frame::after { --cm: var(--em3-accent-hot); }

/* --------------------------------------------------------------------------
   4. Cards (belief / method / dig-deeper) - match the service card language
   -------------------------------------------------------------------------- */
.em3-native .em3n-grid { display: grid; gap: 24px; }
.em3-native .em3n-grid--2 { grid-template-columns: repeat(2, 1fr); }
.em3-native .em3n-grid--3 { grid-template-columns: repeat(3, 1fr); }
.em3-native .em3n-grid--4 { grid-template-columns: repeat(4, 1fr); }
.em3-native .em3n-card {
  background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));
  border: 1px solid var(--em3-line-soft); border-radius: var(--em3-radius-card);
  padding: 28px 26px;
  transition: transform .25s, border-color .2s, box-shadow .25s;
}
.em3-native .em3n-card:hover { transform: translateY(-4px); border-color: rgba(106,138,255,0.45); box-shadow: 0 30px 60px -26px rgba(46,93,255,0.28); }
.em3-native .is-style-em3-light .em3n-card { background: #fff; border-color: var(--em3-line-onwhite); box-shadow: 0 30px 60px -40px rgba(10,24,88,0.25); }
.em3-native .em3n-card :is(h3,h4) { margin: 0 0 10px; font-size: clamp(19px, 1.5vw, 22px); line-height: 1.28; letter-spacing: -0.01em; overflow-wrap: break-word; }
.em3-native .em3n-card p { margin: 0; color: var(--em3-ink-muted); font-size: 15px; line-height: 1.6; }
.em3-native .is-style-em3-light .em3n-card p { color: var(--em3-charcoal); }
.em3-native .em3n-card__num { display: block; font-size: 13px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--em3-accent-hot); margin: 0 0 12px; }
.em3-native .is-style-em3-light .em3n-card__num { color: var(--em3-accent); }
.em3-native .em3n-card a { color: var(--em3-accent-hot); font-weight: 600; text-decoration: none; }
.em3-native .is-style-em3-light .em3n-card a { color: var(--em3-accent); }
.em3-native .em3n-card a:hover { text-decoration: underline; }
/* Equal-height card rows (method, dig-deeper, beliefs) - match the service grid. */
.em3-native .wp-block-columns:not(.em3n-split) { align-items: stretch; }
/* SHV credentials strip (fills the trust band without an off-brand exterior photo). */
.em3-native .em3n-creds { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.em3-native .em3n-creds span { display: inline-flex; align-items: center; padding: 11px 18px; border: 1px solid var(--em3-line); border-radius: var(--em3-radius); background: rgba(255,255,255,0.04); font-size: 13px; font-weight: 600; letter-spacing: 0.03em; color: var(--em3-ink-muted); }
@media (max-width: 860px) { .em3-native .em3n-grid--3, .em3-native .em3n-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .em3-native .em3n-grid--2, .em3-native .em3n-grid--3, .em3-native .em3n-grid--4 { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   5. Stat strip (count-up) - matches the proven-outcome metric weight
   -------------------------------------------------------------------------- */
.em3-native .em3n-stats { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(120px, 220px); justify-content: center; gap: 24px 48px; margin: 8px auto 0; text-align: center; }
.em3-native .em3n-stat__val { font-size: clamp(46px, 5.6vw, 72px); font-weight: 700; line-height: 1; letter-spacing: -0.03em; color: var(--em3-ink); font-variant-numeric: tabular-nums; }
.em3-native .em3n-stat__bar { width: 42px; height: 3px; background: linear-gradient(90deg, var(--em3-accent), var(--em3-accent-hot)); margin: 14px auto 12px; }
.em3-native .em3n-stat__label { font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: var(--em3-ink-dim); margin: 0; }
@media (max-width: 860px) { .em3-native .em3n-stats { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, 1fr); justify-content: stretch; gap: 36px 24px; } }
@media (max-width: 420px) { .em3-native .em3n-stats { grid-template-columns: 1fr 1fr; } }

/* ---- Data charts: Proven Results (Our Clients) + Group Scale (Locations) ---- */
/* Centered chart section: centre the eyebrow/heading/lede (chart internals keep their own alignment) */
.em3-native .em3-main .em3n-csec > .em3-eyebrow,
.em3-native .em3-main .em3n-csec > .wp-block-heading { text-align: center; }
.em3-native .em3-main .em3n-csec > .em3n-lede { text-align: center; max-width: 760px; margin-left: auto; margin-right: auto; }
/* Our Clients: carbon before/after bar chart + aligned KPI counters */
.em3-native .em3-main .em3n-results { display: grid; grid-template-columns: minmax(340px, 480px) auto; gap: 72px; align-items: center; justify-content: center; width: fit-content; max-width: 100%; margin: 26px auto 0; }
.em3-native .em3-main .em3n-cbar { background: rgba(255,255,255,0.03); border: 1px solid var(--em3-line); border-radius: var(--em3-radius); padding: 26px 30px 22px; }
.em3-native .em3-main .em3n-cbar__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 34px; }
.em3-native .em3-main .em3n-cbar__title { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--em3-ink-dim); margin: 0; }
.em3-native .em3-main .em3n-cbar__delta { margin: 0; font-size: 16px; font-weight: 800; color: var(--em3-accent-hot); white-space: nowrap; }
.em3-native .em3-main .em3n-cbar__plot { display: flex; align-items: flex-end; justify-content: center; gap: 56px; height: 250px; border-bottom: 1px solid var(--em3-line); }
.em3-native .em3-main .em3n-cbar__bar { position: relative; width: 104px; height: 0; border-radius: 4px 4px 0 0; transition: height 1.25s cubic-bezier(.22,1,.36,1); }
.em3-native .em3-main .em3n-cbar__bar--base { background: rgba(255,255,255,0.09); border: 1px solid var(--em3-line); border-bottom: 0; }
.em3-native .em3-main .em3n-cbar__bar--em3 { background: linear-gradient(180deg, var(--em3-accent-hot), var(--em3-accent)); box-shadow: 0 0 44px -10px rgba(46,93,255,0.55); }
.em3-native .em3-main .em3n-results.is-revealed .em3n-cbar__bar--base { height: 228px; }
.em3-native .em3-main .em3n-results.is-revealed .em3n-cbar__bar--em3 { height: 93px; }
.em3-native .em3-main .em3n-cbar__cap { position: absolute; top: -28px; left: 0; right: 0; text-align: center; font-size: 18px; font-weight: 800; color: #fff; font-variant-numeric: tabular-nums; }
.em3-native .em3-main .em3n-cbar__labels { display: flex; justify-content: center; gap: 56px; margin-top: 12px; }
.em3-native .em3-main .em3n-cbar__lab { width: 104px; text-align: center; font-size: 12.5px; color: var(--em3-ink-dim); }
.em3-native .em3-main .em3n-kpis { display: flex; flex-direction: column; gap: 24px; }
.em3-native .em3-main .em3n-kpi { border-left: 2px solid var(--em3-accent-hot); padding-left: 20px; }
.em3-native .em3-main .em3n-kpi__val { font-size: clamp(34px, 4.2vw, 54px); font-weight: 800; line-height: 1; color: #fff; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.em3-native .em3-main .em3n-kpi__lab { font-size: 13.5px; line-height: 1.45; color: var(--em3-ink-dim); margin-top: 7px; }
@media (max-width: 860px) { .em3-native .em3-main .em3n-results { grid-template-columns: 1fr; gap: 34px; width: auto; } .em3-native .em3-main .em3n-kpis { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 26px 22px; } .em3-native .em3-main .em3n-kpi { flex: 0 1 160px; } }
@media (max-width: 480px) { .em3-native .em3-main .em3n-cbar__plot { gap: 38px; } .em3-native .em3-main .em3n-cbar__bar, .em3-native .em3-main .em3n-cbar__lab { width: 86px; } }
@media (prefers-reduced-motion: reduce) { .em3-native .em3-main .em3n-cbar__bar--base { height: 228px; } .em3-native .em3-main .em3n-cbar__bar--em3 { height: 93px; } .em3-native .em3-main .em3n-cbar__bar { transition: none; } }

/* Locations: "Part of SHV Energy" group stats (inside the image+text split) */
.em3-native .em3-main .em3n-grpstats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px 30px; margin-top: 30px; max-width: 460px; }
.em3-native .em3-main .em3n-grpstat { border-left: 2px solid var(--em3-accent-hot); padding-left: 17px; }
.em3-native .em3-main .em3n-grpstat__val { display: block; font-size: clamp(30px, 3.4vw, 42px); font-weight: 800; line-height: 1; color: #fff; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.em3-native .em3-main .em3n-grpstat__lab { display: block; font-size: 13px; line-height: 1.4; color: var(--em3-ink-dim); margin-top: 7px; }
@media (max-width: 600px) { .em3-native .em3-main .em3n-grpstats { gap: 22px 22px; max-width: none; } }

/* --------------------------------------------------------------------------
   6. Pull-quote (serif italic, accent rule)
   -------------------------------------------------------------------------- */
.em3-native .em3n-quote { margin: 0 auto; max-width: var(--em3-maxw); border: 0; border-left: 2px solid var(--em3-accent-hot); padding: 4px 0 4px 30px; }
.em3-native .em3n-quote p { max-width: 30ch; }
.em3-native .em3n-quote p { font-family: var(--em3-font-serif); font-style: italic; font-weight: 400; font-size: clamp(24px, 3vw, 38px); line-height: 1.3; letter-spacing: -0.01em; color: var(--em3-ink); margin: 0; }
.em3-native .em3n-quote cite { display: block; margin-top: 18px; font-family: var(--em3-font-sans); font-style: normal; font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: var(--em3-ink-dim); }

/* --------------------------------------------------------------------------
   7. Team card grid (matches the approved EM3 reference card)
   -------------------------------------------------------------------------- */
.em3-native .em3-team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 24px; }
.em3-native .em3-team-card {
  display: flex; flex-direction: column;
  background:
    radial-gradient(125% 78% at 50% 0%, rgba(46,93,255,0.38) 0%, rgba(26,48,138,0.34) 36%, rgba(11,22,78,0.16) 68%, rgba(11,22,78,0) 100%),
    linear-gradient(180deg, rgba(21,40,120,0.55) 0%, rgba(8,16,60,0.6) 100%);
  border: 1px solid rgba(91,139,255,0.30);
  border-radius: var(--em3-radius);
  padding: 15px 15px 26px;
  box-shadow: 0 26px 60px -32px rgba(11,40,150,0.7), inset 0 1px 0 rgba(255,255,255,0.08);
  transition: transform .28s ease, border-color .25s, box-shadow .28s;
}
.em3-native .em3-team-card:hover {
  transform: translateY(-5px); border-color: rgba(124,162,255,0.6);
  box-shadow: 0 42px 84px -32px rgba(46,93,255,0.55), inset 0 1px 0 rgba(255,255,255,0.14);
}
.em3-native .em3-team-card__photo { position: relative; aspect-ratio: 4 / 3; border-radius: var(--em3-radius); overflow: hidden; background: var(--em3-bg-elev); }
.em3-native .em3-team-card__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; display: block; }
.em3-native .em3-team-card__body { padding: 18px 7px 0; display: flex; flex-direction: column; flex: 1 1 auto; }
.em3-native .em3-team-card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.em3-native .em3-team-card__name { font-size: 20px; font-weight: 700; color: #fff; margin: 0; letter-spacing: -0.01em; line-height: 1.2; }
.em3-native .em3-team-card__role { color: var(--em3-accent-hot); font-size: 13.5px; font-weight: 600; line-height: 1.45; margin: 9px 0 14px; }
.em3-native .em3-team-card__bio { color: var(--em3-ink-muted); font-size: 14.5px; line-height: 1.62; margin: 0; }
.em3-native .em3-team-card__li { flex-shrink: 0; width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,0.18); border-radius: var(--em3-radius); background: rgba(255,255,255,0.06); color: #fff; transition: background .2s, border-color .2s, transform .2s; }
.em3-native .em3-team-card__li:hover, .em3-native .em3-team-card__li:focus { background: var(--em3-accent); border-color: var(--em3-accent); color: #fff; transform: translateY(-1px); }
.em3-native .em3-team-card__li svg { width: 18px; height: 18px; display: block; }
@media (max-width: 860px) { .em3-native .em3-team-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .em3-native .em3-team-grid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   8. Dash list (differentiators on light) + check list
   -------------------------------------------------------------------------- */
.em3-native .em3n-dashlist { list-style: none; padding-left: 0; margin: 8px 0 0; max-width: 900px; }
.em3-native .em3n-dashlist li { position: relative; padding-left: 28px; margin: 0 0 18px; line-height: 1.6; }
.em3-native .em3n-dashlist li::before { content: ""; position: absolute; left: 0; top: 13px; width: 16px; height: 1.5px; background: var(--em3-accent-hot); }
.em3-native .is-style-em3-light .em3n-dashlist li::before { background: var(--em3-accent); }
.em3-native .em3n-dashlist strong { color: var(--em3-ink); font-weight: 700; }
.em3-native .is-style-em3-light .em3n-dashlist strong { color: var(--em3-ink-navy); }

/* --------------------------------------------------------------------------
   9. Hero (core/cover, is-style-em3-hero): scrim, load zoom + pointer parallax
   -------------------------------------------------------------------------- */
.em3-native .wp-block-cover.is-style-em3-hero { min-height: clamp(460px, 64vh, 640px); padding-block: clamp(80px, 9vw, 132px); padding-inline: var(--em3-pad-x); align-items: center; }
.em3-native .wp-block-cover.is-style-em3-hero .wp-block-cover__background {
  background: linear-gradient(100deg, rgba(5,13,51,0.95) 0%, rgba(5,13,51,0.74) 46%, rgba(5,13,51,0.44) 100%) !important; opacity: 1 !important;
}
.em3-native .wp-block-cover.is-style-em3-hero .wp-block-cover__image-background { object-fit: cover; transform: scale(1.06); }
.em3-native .wp-block-cover.is-style-em3-hero.is-zoom .wp-block-cover__image-background { animation: em3n-hero-zoom 1.6s ease forwards; }
.em3-native .wp-block-cover.is-style-em3-hero.is-parallax .wp-block-cover__image-background { transition: transform .4s ease; transform: scale(1.06) translate3d(var(--em3-hero-px,0), var(--em3-hero-py,0), 0); }
@keyframes em3n-hero-zoom { from { transform: scale(1.14); } to { transform: scale(1.06); } }
.em3-native .wp-block-cover.is-style-em3-hero .wp-block-cover__inner-container { max-width: var(--em3-maxw); width: 100%; margin-inline: auto; text-align: left; }
.em3-native .wp-block-cover.is-style-em3-hero :is(h1,p) { text-align: left; }
.em3-native .wp-block-cover.is-style-em3-hero .em3n-lede { color: var(--em3-ink-muted); max-width: 680px; margin: 0; }
.em3-native .wp-block-cover.is-style-em3-hero .wp-block-cover__inner-container > * { margin-left: 0; margin-right: 0; }

/* --------------------------------------------------------------------------
   10. SHV trust lockup (text placeholder; swap real asset later)
   -------------------------------------------------------------------------- */
.em3-native .em3n-shv { display: inline-flex; flex-direction: column; gap: 6px; padding: 18px 26px; border: 1px solid var(--em3-line); border-radius: var(--em3-radius-card); background: rgba(255,255,255,0.04); margin-top: 8px; }
.em3-native .em3n-shv__label { font-size: 11.5px; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--em3-ink-dim); }
.em3-native .em3n-shv__name { font-size: 22px; font-weight: 700; color: #fff; letter-spacing: 0.02em; }

/* --------------------------------------------------------------------------
   11. Scroll reveal (engine = native-blocks.js; hidden only when JS present)
   -------------------------------------------------------------------------- */
.em3-js .em3-native .em3-reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.6s ease, transform 0.6s ease; }
.em3-js .em3-native .em3-reveal.is-revealed { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .em3-js .em3-native .em3-reveal { opacity: 1; transform: none; transition: none; } }

/* --------------------------------------------------------------------------
   12. Gravity Forms on native pages (used by the contact pages)
   -------------------------------------------------------------------------- */
.em3-native .em3-main .gform_wrapper input[type=text], .em3-native .em3-main .gform_wrapper input[type=email], .em3-native .em3-main .gform_wrapper input[type=tel], .em3-native .em3-main .gform_wrapper input[type=number], .em3-native .em3-main .gform_wrapper select, .em3-native .em3-main .gform_wrapper textarea {
  background: #fff; color: var(--em3-ink-navy); border: 1.5px solid var(--em3-line-onwhite); border-radius: var(--em3-radius); padding: 12px 14px; font-family: var(--em3-font-sans); font-size: 15px;
}
.em3-native .em3-main .gform_wrapper input:focus, .em3-native .em3-main .gform_wrapper select:focus, .em3-native .em3-main .gform_wrapper textarea:focus { border-color: var(--em3-accent); box-shadow: 0 0 0 4px rgba(46,93,255,0.14); outline: none; }
.em3-native .em3-main .gform_wrapper .gform_footer input[type=submit], .em3-native .em3-main .gform_wrapper .gform_footer button { background: var(--em3-ink-navy); color: #fff; border: 0; border-radius: var(--em3-radius); padding: 15px 30px; font-weight: 700; font-size: 15px; cursor: pointer; transition: background .2s, transform .15s; }
.em3-native .em3-main .gform_wrapper .gform_footer input[type=submit]:hover { background: var(--em3-accent); transform: translateY(-1px); }

/* --------------------------------------------------------------------------
   12c. Contact pages: split hero + white form card + confirmation + routing
   -------------------------------------------------------------------------- */
.em3-native .em3-main .em3n-contact-hero { align-items: flex-start !important; gap: 48px; }
.em3-native .em3-main .em3n-contact-hero > .wp-block-column { margin: 0 !important; }
.em3-native .em3-main .em3n-contact-hero .em3-eyebrow { color: var(--em3-ink-dim); }
/* Sticky value-prop column: only the form scrolls, columns end aligned, no empty gap (desktop only). */
@media (min-width: 981px) { .em3-native .em3-main .em3n-contact-hero > .wp-block-column:first-child { position: sticky; top: 108px; align-self: flex-start; } }
@media (max-width: 980px) { .em3-native .em3-main .em3n-contact-hero { gap: 30px; } }

.em3-native .em3-main .em3n-formcard { background: #fff; color: var(--em3-ink-navy); border: 1px solid var(--em3-line-onwhite); border-radius: var(--em3-radius); padding: 30px 30px 34px !important; box-shadow: 0 44px 90px -44px rgba(0,0,0,0.7); }
.em3-native .em3-main .em3n-formcard__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--em3-accent); margin: 0 0 8px; }
.em3-native .em3-main .em3n-formcard__h { font-size: 22px; font-weight: 700; color: var(--em3-ink-navy); margin: 0 0 8px; line-height: 1.25; }
.em3-native .em3-main .em3n-formcard__sub { font-size: 14px; line-height: 1.55; color: var(--em3-charcoal); margin: 0 0 4px; }
/* Gravity Form inside the white card */
.em3-native .em3-main .em3n-formcard .gform_wrapper { margin-top: 18px; }
.em3-native .em3-main .em3n-formcard .gfield { margin-bottom: 16px; }
.em3-native .em3-main .em3n-formcard .gfield_label, .em3-native .em3-main .em3n-formcard .gfield_consent_label, .em3-native .em3-main .em3n-formcard .gform_fields label { display: block; color: var(--em3-ink-navy); font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.em3-native .em3-main .em3n-formcard .gform_wrapper input[type=text], .em3-native .em3-main .em3n-formcard .gform_wrapper input[type=email], .em3-native .em3-main .em3n-formcard .gform_wrapper input[type=tel], .em3-native .em3-main .em3n-formcard .gform_wrapper select, .em3-native .em3-main .em3n-formcard .gform_wrapper textarea { width: 100%; box-sizing: border-box; }
.em3-native .em3-main .em3n-formcard .gform_wrapper textarea { min-height: 110px; }
.em3-native .em3-main .em3n-formcard .gfield_description { color: rgba(10,24,88,0.62); font-size: 12.5px; line-height: 1.45; margin: 4px 0 0; padding: 0; }
.em3-native .em3-main .em3n-formcard .gform_required_legend { color: rgba(10,24,88,0.55); font-size: 12px; }
.em3-native .em3-main .em3n-formcard .gfield_required { color: var(--em3-accent); margin-left: 3px; }
.em3-native .em3-main .em3n-formcard .gchoice { display: flex; align-items: flex-start; gap: 9px; margin: 7px 0; }
.em3-native .em3-main .em3n-formcard .gchoice label { font-weight: 500; font-size: 13.5px; color: var(--em3-charcoal); margin: 0; line-height: 1.45; }
.em3-native .em3-main .em3n-formcard .gfield-choice-input { accent-color: var(--em3-accent); width: 17px; height: 17px; margin-top: 1px; flex: 0 0 auto; }
.em3-native .em3-main .em3n-formcard .gform_fileupload_rules, .em3-native .em3-main .em3n-formcard .ginput_container_fileupload input { font-size: 13px; color: var(--em3-charcoal); }
.em3-native .em3-main .em3n-formcard .gform_footer { margin-top: 22px; }
.em3-native .em3-main .em3n-formcard .gform_footer input[type=submit] { width: 100%; background: linear-gradient(135deg, var(--em3-accent) 0%, var(--em3-accent-mid) 100%); box-shadow: 0 16px 32px -12px rgba(46,93,255,0.6); }
.em3-native .em3-main .em3n-formcard .gform_footer input[type=submit]:hover { background: linear-gradient(135deg, var(--em3-accent-mid) 0%, var(--em3-accent-hot) 100%); transform: translateY(-2px); box-shadow: 0 20px 38px -14px rgba(46,93,255,0.7); }
/* F2 premium form polish: bigger fields, custom select caret, file dropzone, premium checkboxes */
.em3-native .em3-main .em3n-formcard .gform_wrapper input[type=text], .em3-native .em3-main .em3n-formcard .gform_wrapper input[type=email], .em3-native .em3-main .em3n-formcard .gform_wrapper input[type=tel], .em3-native .em3-main .em3n-formcard .gform_wrapper select, .em3-native .em3-main .em3n-formcard .gform_wrapper textarea { padding: 13px 15px; font-size: 15px; border-width: 1.5px; transition: border-color .2s ease, box-shadow .2s ease; }
.em3-native .em3-main .em3n-formcard .gform_wrapper select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%232e5dff' stroke-width='2' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 15px center; padding-right: 40px; cursor: pointer; }
.em3-native .em3-main .em3n-formcard .gfield-choice-input { width: 18px; height: 18px; }
.em3-native .em3-main .em3n-formcard .ginput_container_fileupload { border: 1.5px dashed var(--em3-line-onwhite); border-radius: var(--em3-radius); padding: 18px 16px; background: #fbfcfe; transition: border-color .2s ease, background .2s ease; }
.em3-native .em3-main .em3n-formcard .ginput_container_fileupload:hover { border-color: var(--em3-accent); background: #f4f7ff; }
.em3-native .em3-main .em3n-formcard .gform_fileupload_rules { display: block; margin-top: 7px; color: rgba(10,24,88,0.55); font-size: 12px; }
.em3-native .em3-main .em3n-formcard .gform_validation_errors { background: rgba(214,69,69,0.08); border: 1px solid rgba(214,69,69,0.4); border-radius: var(--em3-radius); padding: 12px 14px; color: #a4262c; font-size: 13.5px; margin-bottom: 16px; }
.em3-native .em3-main .em3n-formcard .validation_message { color: #a4262c; font-size: 12.5px; margin-top: 4px; }
/* CRO: centred mid-page CTA row + the form highlight pulse it triggers */
.em3-native .em3-main .em3n-crorow { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; margin-top: 38px; }
@keyframes em3n-formpulse { 0% { box-shadow: 0 44px 90px -44px rgba(0,0,0,0.7), 0 0 0 0 rgba(46,93,255,0); } 30% { box-shadow: 0 44px 90px -44px rgba(0,0,0,0.7), 0 0 0 6px rgba(46,93,255,0.4); } 100% { box-shadow: 0 44px 90px -44px rgba(0,0,0,0.7), 0 0 0 0 rgba(46,93,255,0); } }
.em3-native .em3-main .em3n-formcard.is-pulse { animation: em3n-formpulse 1.5s ease; }
@media (prefers-reduced-motion: reduce) { .em3-native .em3-main .em3n-formcard.is-pulse { animation: none; } }
/* What happens next confirmation (replaces the form in place on ajax submit) */
.em3-native .em3-main .em3n-formdone { padding: 4px 2px; }
.em3-native .em3-main .em3n-formdone h3 { color: var(--em3-ink-navy); font-size: 20px; margin: 0 0 14px; }
.em3-native .em3-main .em3n-formdone ol { color: var(--em3-charcoal); padding-left: 1.15em; margin: 0; }
.em3-native .em3-main .em3n-formdone li { margin-bottom: 9px; line-height: 1.55; font-size: 14.5px; }
.em3-native .em3-main .em3n-formdone p { color: var(--em3-charcoal); margin: 14px 0 0; font-size: 14px; }
/* Routing cards (General Enquiry) reuse .em3n-card; office cards reuse .em3n-officecard */
.em3-native .em3-main .em3n-leaders { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 6px; }
.em3-native .em3-main .em3n-leader { display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.04); border: 1px solid var(--em3-line); border-radius: var(--em3-radius); padding: 10px 16px 10px 10px; }
.em3-native .em3-main .em3n-leader img { width: 46px; height: 46px; border-radius: var(--em3-radius); object-fit: cover; border: 1px solid rgba(46,93,255,0.5); flex: 0 0 auto; }
.em3-native .em3-main .em3n-leader b { display: block; color: #fff; font-size: 14px; font-weight: 700; line-height: 1.2; }
.em3-native .em3-main .em3n-leader span { display: block; color: var(--em3-accent-hot); font-size: 12px; font-weight: 600; margin-top: 2px; }

/* F4 premium people cards (who you meet / leadership) */
.em3-native .em3-main .em3n-persongrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 10px; }
.em3-native .em3-main .em3n-person { position: relative; aspect-ratio: 3 / 4; border-radius: var(--em3-radius); overflow: hidden; border: 1px solid var(--em3-line); background: var(--em3-bg-elev); transition: transform .25s ease, box-shadow .25s ease, border-color .2s ease; }
.em3-native .em3-main .em3n-person:hover { transform: translateY(-6px); border-color: rgba(46,93,255,0.55); box-shadow: 0 42px 72px -40px rgba(46,93,255,0.45); }
.em3-native .em3-main .em3n-person img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 16%; }
.em3-native .em3-main .em3n-person::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,13,51,0) 40%, rgba(4,9,40,0.55) 68%, rgba(4,9,40,0.94) 100%); }
.em3-native .em3-main .em3n-person::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; z-index: 3; background: linear-gradient(90deg, var(--em3-accent), var(--em3-accent-hot)); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.em3-native .em3-main .em3n-person:hover::before { transform: scaleX(1); }
.em3-native .em3-main .em3n-person__meta { position: absolute; left: 18px; right: 18px; bottom: 17px; z-index: 2; }
.em3-native .em3-main .em3n-person__name { font-size: 18px; font-weight: 700; color: #fff; line-height: 1.2; }
.em3-native .em3-main .em3n-person__role { font-size: 12.5px; font-weight: 600; color: var(--em3-accent-hot); margin-top: 3px; }
.em3-native .em3-main .em3n-person__li { position: absolute; top: 14px; right: 14px; z-index: 3; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: rgba(5,13,51,0.66); border: 1px solid var(--em3-line); border-radius: var(--em3-radius); color: #cfe0ff; transition: background .2s ease, color .2s ease, transform .2s ease; }
.em3-native .em3-main .em3n-person__li:hover { background: var(--em3-accent); color: #fff; transform: translateY(-2px); }
.em3-native .em3-main .em3n-person__li svg { width: 17px; height: 17px; }
.em3-native .em3-main .em3n-person__li::before { content: ""; width: 17px; height: 17px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.94v5.67H9.34V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM7.12 20.45H3.56V9h3.56v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.94v5.67H9.34V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM7.12 20.45H3.56V9h3.56v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0z'/%3E%3C/svg%3E") center / contain no-repeat; }
.em3-native .em3-main .em3n-person__li:has(svg)::before { display: none; }

/* Leadership card WITH bio (Our Team / contact who-you-meet) - content-complete premium people card */
.em3-native .em3-main .em3n-leadgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 10px; }
.em3-native .em3-main .em3n-leadcard { display: flex; flex-direction: column; background: linear-gradient(180deg, rgba(46,93,255,0.12) 0%, rgba(255,255,255,0.03) 100%); border: 1px solid var(--em3-line); border-radius: var(--em3-radius); overflow: hidden; transition: transform .25s ease, border-color .2s ease, box-shadow .25s ease; }
.em3-native .em3-main .em3n-leadcard:hover { transform: translateY(-6px); border-color: rgba(46,93,255,0.55); box-shadow: 0 42px 72px -40px rgba(46,93,255,0.45); }
.em3-native .em3-main .em3n-leadcard__photo { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: var(--em3-bg-elev); }
.em3-native .em3-main .em3n-leadcard__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 16%; display: block; transition: transform .5s ease; }
.em3-native .em3-main .em3n-leadcard:hover .em3n-leadcard__photo img { transform: scale(1.05); }
.em3-native .em3-main .em3n-leadcard__photo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, var(--em3-accent), var(--em3-accent-hot)); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.em3-native .em3-main .em3n-leadcard:hover .em3n-leadcard__photo::after { transform: scaleX(1); }
.em3-native .em3-main .em3n-leadcard__body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1 1 auto; }
.em3-native .em3-main .em3n-leadcard__name { font-size: 18px; font-weight: 700; color: #fff; line-height: 1.2; margin: 0; }
.em3-native .em3-main .em3n-leadcard__role { font-size: 12px; font-weight: 600; letter-spacing: 0.04em; color: var(--em3-accent-hot); margin: 4px 0 11px; }
.em3-native .em3-main .em3n-leadcard__bio { font-size: 14px; line-height: 1.6; color: var(--em3-ink-muted); margin: 0 0 14px; flex: 1 1 auto; }
.em3-native .em3-main .em3n-leadcard__li { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; font-size: 12.5px; font-weight: 600; color: var(--em3-accent-hot); text-decoration: none; }
.em3-native .em3-main .em3n-leadcard__li::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.94v5.67H9.34V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM7.12 20.45H3.56V9h3.56v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.94v5.67H9.34V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.45v6.29zM5.34 7.43a2.07 2.07 0 1 1 0-4.14 2.07 2.07 0 0 1 0 4.14zM7.12 20.45H3.56V9h3.56v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.72V1.72C24 .77 23.2 0 22.22 0z'/%3E%3C/svg%3E") center/contain no-repeat; }
.em3-native .em3-main .em3n-leadcard__li:hover { color: #fff; }
@media (max-width: 980px) { .em3-native .em3-main .em3n-leadgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .em3-native .em3-main .em3n-leadgrid { grid-template-columns: 1fr; } }
@media (max-width: 860px) { .em3-native .em3-main .em3n-persongrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .em3-native .em3-main .em3n-persongrid { gap: 14px; } }

/* Our Story signature: vertical heritage timeline (distinct from the horizontal method journey) */
.em3-native .em3-main .em3n-timeline { position: relative; margin-top: 14px; }
.em3-native .em3-main .em3n-tl__item { position: relative; padding: 0 0 34px 66px; }
.em3-native .em3-main .em3n-tl__item:last-child { padding-bottom: 0; }
.em3-native .em3-main .em3n-tl__item::before { content: ""; position: absolute; left: 19px; top: 8px; bottom: -8px; width: 2px; background: linear-gradient(180deg, var(--em3-accent), var(--em3-accent-hot)); transform: scaleY(0); transform-origin: top center; }
.em3-native .em3-main .em3n-tl__item:last-child::before { display: none; }
.em3-native .em3-main .em3n-tl__dot { position: absolute; left: 10px; top: 4px; width: 20px; height: 20px; border-radius: 50%; background: var(--em3-bg-deep); border: 2px solid var(--em3-accent); box-shadow: 0 0 0 5px rgba(46,93,255,0.12); z-index: 1; }
.em3-native .em3-main .em3n-tl__item:first-child .em3n-tl__dot { border-color: var(--em3-mint); box-shadow: 0 0 0 5px rgba(149,254,109,0.16); }
.em3-native .em3-main .em3n-tl__phase { font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--em3-accent-hot); }
.em3-native .em3-main .em3n-tl__title { font-size: 21px; font-weight: 700; color: #fff; margin: 4px 0 7px; line-height: 1.25; }
.em3-native .em3-main .em3n-tl__body { font-size: 15px; line-height: 1.6; color: var(--em3-ink-muted); margin: 0; max-width: 66ch; }
.em3-native .em3-main .is-style-em3-light .em3n-tl__phase { color: var(--em3-accent); }
.em3-native .em3-main .is-style-em3-light .em3n-tl__title { color: var(--em3-ink-navy); }
.em3-native .em3-main .is-style-em3-light .em3n-tl__body { color: var(--em3-charcoal); }
.em3-native .em3-main .is-style-em3-light .em3n-tl__dot { background: #fff; }

/* Our Story signature v2: CENTRED, interactive alternating milestone timeline */
.em3-native .em3-main .em3n-vtl { position: relative; max-width: 960px; margin: 18px auto 0; padding: 6px 0; }
.em3-native .em3-main .em3n-vtl__line { position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; transform: translateX(-50%); background: linear-gradient(180deg, var(--em3-accent-hot) 0%, var(--em3-accent) 100%); transform-origin: top center; }
.em3-native .em3-main .em3n-vtl__item { position: relative; width: 50%; box-sizing: border-box; padding: 0 46px 30px; }
.em3-native .em3-main .em3n-vtl__item:nth-child(odd) { margin-left: 0; text-align: right; }
.em3-native .em3-main .em3n-vtl__item:nth-child(even) { margin-left: 50%; text-align: left; }
.em3-native .em3-main .em3n-vtl__node { position: absolute; top: 6px; width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 2px solid var(--em3-accent); box-shadow: 0 0 0 6px rgba(46,93,255,0.12); z-index: 2; transition: transform .25s ease, box-shadow .25s ease; }
.em3-native .em3-main .em3n-vtl__item:nth-child(odd) .em3n-vtl__node { right: -11px; }
.em3-native .em3-main .em3n-vtl__item:nth-child(even) .em3n-vtl__node { left: -11px; }
.em3-native .em3-main .em3n-vtl__item:first-child .em3n-vtl__node { border-color: var(--em3-mint); box-shadow: 0 0 0 6px rgba(149,254,109,0.18); }
.em3-native .em3-main .em3n-vtl__card { display: inline-block; text-align: left; max-width: 380px; background: #fff; border: 1px solid var(--em3-line-onwhite); border-radius: var(--em3-radius); padding: 18px 22px; box-shadow: 0 26px 54px -40px rgba(10,24,88,0.3); transition: transform .25s ease, box-shadow .25s ease, border-color .2s ease; }
.em3-native .em3-main .em3n-vtl__card:hover { transform: translateY(-4px); border-color: rgba(46,93,255,0.4); box-shadow: 0 36px 64px -34px rgba(46,93,255,0.32); }
.em3-native .em3-main .em3n-vtl__item:hover .em3n-vtl__node { transform: scale(1.28); box-shadow: 0 0 0 7px rgba(46,93,255,0.22); }
.em3-native .em3-main .em3n-vtl__item:first-child:hover .em3n-vtl__node { box-shadow: 0 0 0 7px rgba(149,254,109,0.26); }
.em3-native .em3-main .em3n-vtl__phase { font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--em3-accent); margin: 0 0 5px; }
.em3-native .em3-main .em3n-vtl__title { font-size: 19px; font-weight: 700; color: var(--em3-ink-navy); margin: 0 0 7px; line-height: 1.25; }
.em3-native .em3-main .em3n-vtl__body { font-size: 14.5px; line-height: 1.6; color: var(--em3-charcoal); margin: 0; }
.em3-native .em3-main .em3n-vtl__item { --d: 0s; }
.em3-native .em3-main .em3n-vtl__item:nth-child(2) { --d: .12s; }
.em3-native .em3-main .em3n-vtl__item:nth-child(3) { --d: .24s; }
.em3-native .em3-main .em3n-vtl__item:nth-child(4) { --d: .36s; }
.em3-native .em3-main .em3n-vtl__item:nth-child(5) { --d: .48s; }
.em3-js .em3-native .em3-main .em3n-vtl__line { transform: translateX(-50%) scaleY(0); }
.em3-js .em3-native .em3-main .em3n-vtl.is-revealed .em3n-vtl__line { transform: translateX(-50%) scaleY(1); transition: transform 1.3s ease .1s; }
.em3-js .em3-native .em3-main .em3n-vtl__card { opacity: 0; transition: opacity .5s ease var(--d), transform .5s ease var(--d); }
.em3-js .em3-native .em3-main .em3n-vtl__node { opacity: 0; transition: opacity .4s ease var(--d), transform .25s ease, box-shadow .25s ease; }
.em3-js .em3-native .em3-main .em3n-vtl__item:nth-child(odd) .em3n-vtl__card { transform: translateX(26px); }
.em3-js .em3-native .em3-main .em3n-vtl__item:nth-child(even) .em3n-vtl__card { transform: translateX(-26px); }
.em3-js .em3-native .em3-main .em3n-vtl.is-revealed .em3n-vtl__card { opacity: 1; transform: none; }
.em3-js .em3-native .em3-main .em3n-vtl.is-revealed .em3n-vtl__node { opacity: 1; }
@media (max-width: 720px) {
  .em3-native .em3-main .em3n-vtl__line { left: 22px; }
  .em3-native .em3-main .em3n-vtl__item, .em3-native .em3-main .em3n-vtl__item:nth-child(odd), .em3-native .em3-main .em3n-vtl__item:nth-child(even) { width: 100%; margin-left: 0; text-align: left; padding: 0 0 26px 54px; }
  .em3-native .em3-main .em3n-vtl__item:nth-child(odd) .em3n-vtl__node, .em3-native .em3-main .em3n-vtl__item:nth-child(even) .em3n-vtl__node { left: 11px; right: auto; }
  .em3-native .em3-main .em3n-vtl__card { max-width: 100%; }
  .em3-js .em3-native .em3-main .em3n-vtl__item:nth-child(odd) .em3n-vtl__card, .em3-js .em3-native .em3-main .em3n-vtl__item:nth-child(even) .em3n-vtl__card { transform: translateX(20px); }
}
@media (prefers-reduced-motion: reduce) {
  .em3-js .em3-native .em3-main .em3n-vtl__line { transform: translateX(-50%) scaleY(1); transition: none; }
  .em3-js .em3-native .em3-main .em3n-vtl__card, .em3-js .em3-native .em3-main .em3n-vtl__node { opacity: 1; transform: none; transition: none; }
}

/* Editorial testimonial: large photo + serif pull-quote (replaces the tiny-top-circle .em3n-testi) */
.em3-native .em3-main .em3n-vquote { display: grid; grid-template-columns: 290px 1fr; gap: 48px; align-items: center; margin-top: 16px; }
.em3-native .em3-main .em3n-vquote__media { position: relative; aspect-ratio: 2 / 3; border-radius: var(--em3-radius); overflow: hidden; border: 1px solid var(--em3-line); box-shadow: 0 44px 84px -44px rgba(0,0,0,0.65); }
.em3-native .em3-main .em3n-vquote__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.em3-native .em3-main .em3n-vquote__media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--em3-accent), var(--em3-accent-hot)); }
.em3-native .em3-main .em3n-vquote__body { position: relative; padding-top: 6px; }
.em3-native .em3-main .em3n-vquote__body::before { content: "\201C"; position: absolute; top: -36px; left: -10px; font-family: var(--em3-font-serif, Georgia, "Times New Roman", serif); font-size: 130px; line-height: 1; color: var(--em3-accent); opacity: 0.16; pointer-events: none; }
.em3-native .em3-main .em3n-vquote__quote { font-size: clamp(23px, 2.6vw, 32px); line-height: 1.34; color: #fff; font-weight: 500; margin: 0; letter-spacing: -0.01em; position: relative; }
.em3-native .em3-main .em3n-vquote__by { margin-top: 26px; display: flex; flex-direction: column; gap: 2px; }
.em3-native .em3-main .em3n-vquote__name { font-size: 15px; font-weight: 700; color: #fff; }
.em3-native .em3-main .em3n-vquote__role { font-size: 13px; font-weight: 600; color: var(--em3-accent-hot); }
.em3-native .em3-main .is-style-em3-light .em3n-vquote__quote, .em3-native .em3-main .is-style-em3-light .em3n-vquote__name { color: var(--em3-ink-navy); }
.em3-native .em3-main .is-style-em3-light .em3n-vquote__role { color: var(--em3-accent); }
@media (max-width: 760px) { .em3-native .em3-main .em3n-vquote { grid-template-columns: 1fr; gap: 22px; } .em3-native .em3-main .em3n-vquote__media { max-width: 230px; aspect-ratio: 3 / 4; } }

/* Numbered vertical method timeline (Our Approach signature) - dark-band variant of .em3n-vtl */
.em3-native .em3-main .em3n-vtl--num .em3n-vtl__node { width: 40px; height: 40px; top: 2px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--em3-accent) 0%, var(--em3-accent-mid) 100%); border: 0; color: #fff; font-weight: 700; font-size: 13px; letter-spacing: 0.02em; box-shadow: 0 0 0 6px rgba(46,93,255,0.16); }
.em3-native .em3-main .em3n-vtl--num .em3n-vtl__item:nth-child(odd) .em3n-vtl__node { right: -20px; }
.em3-native .em3-main .em3n-vtl--num .em3n-vtl__item:nth-child(even) .em3n-vtl__node { left: -20px; }
.em3-native .em3-main .em3n-vtl--num .em3n-vtl__item:first-child .em3n-vtl__node { background: linear-gradient(135deg, var(--em3-accent) 0%, var(--em3-accent-mid) 100%); box-shadow: 0 0 0 6px rgba(46,93,255,0.16); }
.em3-native .em3-main .em3n-vtl--num .em3n-vtl__card { background: rgba(255,255,255,0.04); border-color: var(--em3-line); box-shadow: 0 30px 60px -44px rgba(0,0,0,0.55); max-width: 400px; }
.em3-native .em3-main .em3n-vtl--num .em3n-vtl__card:hover { border-color: rgba(46,93,255,0.5); box-shadow: 0 40px 70px -38px rgba(46,93,255,0.4); }
.em3-native .em3-main .em3n-vtl--num .em3n-vtl__title { color: #fff; }
.em3-native .em3-main .em3n-vtl--num .em3n-vtl__body { color: var(--em3-ink-muted); }
.em3-native .em3-main .em3n-vtl__out { margin: 13px 0 0; padding-top: 12px; border-top: 1px solid var(--em3-line); font-size: 13.5px; line-height: 1.5; color: var(--em3-ink-dim); }
.em3-native .em3-main .em3n-vtl__out strong { display: block; color: var(--em3-accent-hot); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 3px; }
@media (max-width: 720px) {
  .em3-native .em3-main .em3n-vtl--num .em3n-vtl__item:nth-child(odd) .em3n-vtl__node, .em3-native .em3-main .em3n-vtl--num .em3n-vtl__item:nth-child(even) .em3n-vtl__node { left: 2px; right: auto; }
  .em3-native .em3-main .em3n-vtl--num .em3n-vtl__line { left: 22px; }
  .em3-native .em3-main .em3n-vtl--num .em3n-vtl__item, .em3-native .em3-main .em3n-vtl--num .em3n-vtl__item:nth-child(odd), .em3-native .em3-main .em3n-vtl--num .em3n-vtl__item:nth-child(even) { padding-left: 64px; }
}

/* Sector / industry card icon tile */
.em3-native .em3-main .em3n-card__ico { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: var(--em3-radius); background: rgba(46,93,255,0.08); border: 1px solid var(--em3-line-onwhite); margin-bottom: 14px; }
.em3-native .em3-main .is-style-em3-dark .em3n-card__ico, .em3-native .em3-main .is-style-em3-dark-2 .em3n-card__ico { background: rgba(46,93,255,0.16); border-color: var(--em3-line); }
.em3-native .em3-main .em3n-card__ico img { width: 27px; height: 27px; }
.em3-native .em3-main .em3n-card__ico--m::before { content: ""; display: block; width: 26px; height: 26px; background: var(--em3-accent-hot); -webkit-mask: center / contain no-repeat var(--ico); mask: center / contain no-repeat var(--ico); }
.em3-native .em3-main .is-style-em3-light .em3n-card__ico--m::before, .em3-native .em3-main .on-light .em3n-card__ico--m::before { background: var(--em3-accent); }
.em3-native .em3-main .em3n-ci--listen { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--target { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--next { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8l4 4-4 4'/%3E%3Cpath d='M8 12h8'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--shield { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--tool { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--check { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpath d='M22 4 12 14.01l-3-3'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--careers { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--calendar { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--doc { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='M16 13H8M16 17H8M10 9H8'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--layers { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 9 5-9 5-9-5 9-5z'/%3E%3Cpath d='m3 12 9 5 9-5'/%3E%3Cpath d='m3 17 9 5 9-5'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--globe { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20'/%3E%3Cpath d='M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--gauge { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 14a4 4 0 0 0 4-4'/%3E%3Cpath d='M3.34 19a10 10 0 1 1 17.32 0'/%3E%3Cpath d='M12 14 8.5 9'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--people { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m2 6 10 7 10-7'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-ci--card { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2'/%3E%3Cpath d='M1 10h22'/%3E%3C/svg%3E"); }
/* animation on scroll reveal */
.em3-native .em3-main .em3n-tl__item { --d: 0s; }
.em3-native .em3-main .em3n-tl__item:nth-child(2) { --d: .12s; }
.em3-native .em3-main .em3n-tl__item:nth-child(3) { --d: .24s; }
.em3-native .em3-main .em3n-tl__item:nth-child(4) { --d: .36s; }
.em3-native .em3-main .em3n-tl__item:nth-child(5) { --d: .48s; }
.em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__item::before { transition: transform .6s ease calc(var(--d) + .15s); }
.em3-js .em3-native .em3-main .em3n-timeline.is-revealed .em3n-tl__item::before { transform: scaleY(1); }
.em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__dot { transform: scale(.2); opacity: 0; transition: transform .5s cubic-bezier(.34,1.56,.64,1) var(--d), opacity .4s ease var(--d); }
.em3-js .em3-native .em3-main .em3n-timeline.is-revealed .em3n-tl__dot { transform: scale(1); opacity: 1; }
.em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__phase, .em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__title, .em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__body { opacity: 0; transform: translateX(12px); transition: opacity .5s ease var(--d), transform .5s ease var(--d); }
.em3-js .em3-native .em3-main .em3n-timeline.is-revealed .em3n-tl__phase, .em3-js .em3-native .em3-main .em3n-timeline.is-revealed .em3n-tl__title, .em3-js .em3-native .em3-main .em3n-timeline.is-revealed .em3n-tl__body { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__item::before { transform: scaleY(1); transition: none; }
  .em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__dot, .em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__phase, .em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__title, .em3-js .em3-native .em3-main .em3n-timeline .em3n-tl__body { opacity: 1; transform: none; transition: none; }
}

/* --------------------------------------------------------------------------
   12b. Premium polish (round 2): ambient glows, richer cards, editorial accents
   -------------------------------------------------------------------------- */
/* Ambient blue corner glow on dark bands (the brand "glow bleeding from a corner"). */
.em3-native .is-style-em3-dark,
.em3-native .is-style-em3-dark-2,
.em3-native .is-style-em3-elev { position: relative; overflow: hidden; isolation: isolate; }
.em3-native .is-style-em3-dark::before,
.em3-native .is-style-em3-dark-2::before,
.em3-native .is-style-em3-elev::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  width: min(760px, 64vw); height: min(760px, 64vw); border-radius: 50%;
  top: -22%; right: -8%;
  background: radial-gradient(circle, rgba(46,93,255,0.18) 0%, rgba(46,93,255,0) 70%);
}
.em3-native .is-style-em3-dark-2::before { top: auto; bottom: -26%; right: auto; left: -10%; background: radial-gradient(circle, rgba(93,75,194,0.22) 0%, rgba(93,75,194,0) 70%); }
.em3-native .is-style-em3-dark > *,
.em3-native .is-style-em3-dark-2 > *,
.em3-native .is-style-em3-elev > * { position: relative; z-index: 1; }

/* Richer cards on dark bands (subtle blue tint) + a top accent bar that wipes in on hover. */
.em3-native .is-style-em3-dark .em3n-card,
.em3-native .is-style-em3-dark-2 .em3n-card { background: linear-gradient(180deg, rgba(46,93,255,0.10), rgba(255,255,255,0.02)); border-color: rgba(91,139,255,0.20); }
.em3-native .em3n-card { position: relative; overflow: hidden; }
.em3-native .em3n-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--em3-accent), var(--em3-accent-hot)); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.em3-native .em3n-card:hover::before { transform: scaleX(1); }

/* Dig Deeper link cards: an arrow that nudges on hover. */
.em3-native .em3n-card a::after { content: " \2192"; display: inline-block; transition: transform .2s ease; }
.em3-native .em3n-card:hover a::after { transform: translateX(4px); }

/* Stat numbers: soft blue glow. */
.em3-native .em3n-stat__val { text-shadow: 0 0 42px rgba(46,93,255,0.35); }

/* Pull-quote: large decorative serif quote mark behind the text. */
.em3-native .em3n-quote { position: relative; isolation: isolate; }
.em3-native .em3n-quote::before { content: "\201C"; position: absolute; top: -0.22em; right: 4px; left: auto; z-index: -1; font-family: var(--em3-font-serif); font-style: italic; font-weight: 400; font-size: 120px; line-height: 1; color: rgba(106,138,255,0.20); pointer-events: none; }

/* SHV credentials chips: subtle hover lift. */
.em3-native .em3n-creds span { transition: border-color .2s, background .2s, transform .2s; }
.em3-native .em3n-creds span:hover { border-color: rgba(91,139,255,0.5); background: rgba(46,93,255,0.12); transform: translateY(-1px); }

/* Testimonial (centred, with the speaker's photo; replaces the bare pull-quote). */
.em3-native .em3n-testi { max-width: 820px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; }
.em3-native .em3n-testi .em3-eyebrow { margin-bottom: 24px; }
.em3-native .em3n-testi__photo { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; border: 2px solid rgba(91,139,255,0.45); box-shadow: 0 0 0 6px rgba(46,93,255,0.12), 0 18px 36px -18px rgba(0,0,0,0.6); margin-bottom: 26px; flex-shrink: 0; }
.em3-native .em3n-testi__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.em3-native .em3n-testi__quote { font-family: var(--em3-font-serif); font-style: italic; font-weight: 400; font-size: clamp(23px, 2.8vw, 34px); line-height: 1.38; color: #fff; margin: 0 0 24px; border: 0; padding: 0; }
.em3-native .em3n-testi__by { display: flex; flex-direction: column; gap: 3px; }
.em3-native .em3n-testi__name { color: #fff; font-weight: 700; font-size: 16px; }
.em3-native .em3n-testi__role { color: var(--em3-accent-hot); font-size: 13px; font-weight: 600; letter-spacing: 0.04em; }

/* --------------------------------------------------------------------------
   12c. Method output line + engagement-journey timeline (Our Approach + reuse)
   -------------------------------------------------------------------------- */
/* "You receive:" output line inside a method card */
.em3-native .em3-main .em3n-card__out { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--em3-line-soft); font-size: 13.5px; line-height: 1.5; color: var(--em3-ink-muted); }
.em3-native .em3-main .em3n-card__out strong { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--em3-accent-hot); margin-bottom: 5px; }
.em3-native .em3-main .is-style-em3-light .em3n-card__out { border-top-color: var(--em3-line-onwhite); color: var(--em3-charcoal); }
.em3-native .em3-main .is-style-em3-light .em3n-card__out strong { color: var(--em3-accent); }

/* Connected horizontal engagement timeline (5 nodes), reflows to a vertical rail on mobile */
.em3-native .em3-main .em3n-journey { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(160px, 220px); justify-content: center; gap: 0 24px; margin: 14px auto 0; }
.em3-native .em3-main .em3n-journey__step { position: relative; padding-top: 52px; }
.em3-native .em3-main .em3n-journey__step:not(:last-child)::after { content: ""; position: absolute; top: 17px; left: 46px; right: -24px; height: 2px; background: var(--em3-line); z-index: 0; }
.em3-native .em3-main .em3n-journey__num { position: absolute; top: 0; left: 0; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; color: #fff; background: linear-gradient(135deg, var(--em3-accent), var(--em3-accent-mid)); box-shadow: 0 0 0 6px rgba(46,93,255,0.14); z-index: 1; }
.em3-native .em3-main .em3n-journey__title { font-size: 16px; font-weight: 700; color: #fff; margin: 0 0 6px; line-height: 1.25; }
.em3-native .em3-main .em3n-journey__body { font-size: 14px; line-height: 1.55; color: var(--em3-ink-muted); margin: 0; }
.em3-native .em3-main .is-style-em3-light .em3n-journey__title { color: var(--em3-ink-navy); }
.em3-native .em3-main .is-style-em3-light .em3n-journey__body { color: var(--em3-charcoal); }
@media (max-width: 860px) {
  .em3-native .em3-main .em3n-journey { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: 1fr; justify-content: stretch; gap: 0; }
  .em3-native .em3-main .em3n-journey__step { padding: 0 0 26px 52px; }
  .em3-native .em3-main .em3n-journey__step:not(:last-child)::after { top: 40px; bottom: 0; left: 17px; right: auto; width: 2px; height: auto; }
}
/* F5 animated journey: connecting line draws + nodes pop + text staggers on scroll-reveal */
.em3-native .em3-main .em3n-journey__step { --d: 0s; }
.em3-native .em3-main .em3n-journey__step:nth-child(2) { --d: .14s; }
.em3-native .em3-main .em3n-journey__step:nth-child(3) { --d: .28s; }
.em3-native .em3-main .em3n-journey__step:nth-child(4) { --d: .42s; }
.em3-native .em3-main .em3n-journey__step:nth-child(5) { --d: .56s; }
.em3-js .em3-native .em3-main .em3n-journey__step:not(:last-child)::after { background: linear-gradient(90deg, var(--em3-accent), var(--em3-accent-hot)); transform: scaleX(0); transform-origin: left center; transition: transform .7s ease calc(var(--d) + .18s); }
.em3-js .em3-native .em3-main .em3n-journey.is-revealed .em3n-journey__step:not(:last-child)::after { transform: scaleX(1); }
.em3-js .em3-native .em3-main .em3n-journey__num { transform: scale(.2); opacity: 0; transition: transform .5s cubic-bezier(.34,1.56,.64,1) var(--d), opacity .4s ease var(--d); }
.em3-js .em3-native .em3-main .em3n-journey.is-revealed .em3n-journey__num { transform: scale(1); opacity: 1; }
.em3-js .em3-native .em3-main .em3n-journey__title, .em3-js .em3-native .em3-main .em3n-journey__body { opacity: 0; transform: translateY(10px); transition: opacity .5s ease var(--d), transform .5s ease var(--d); }
.em3-js .em3-native .em3-main .em3n-journey.is-revealed .em3n-journey__title, .em3-js .em3-native .em3-main .em3n-journey.is-revealed .em3n-journey__body { opacity: 1; transform: none; }
@media (max-width: 860px) {
  .em3-js .em3-native .em3-main .em3n-journey__step:not(:last-child)::after { transform: scaleY(0); transform-origin: center top; }
  .em3-js .em3-native .em3-main .em3n-journey.is-revealed .em3n-journey__step:not(:last-child)::after { transform: scaleY(1); }
}
@media (prefers-reduced-motion: reduce) {
  .em3-js .em3-native .em3-main .em3n-journey__num, .em3-js .em3-native .em3-main .em3n-journey__title, .em3-js .em3-native .em3-main .em3n-journey__body { opacity: 1; transform: none; transition: none; }
  .em3-js .em3-native .em3-main .em3n-journey__step:not(:last-child)::after { transform: none; transition: none; }
}

/* --------------------------------------------------------------------------
   12d. Department cards (Our Team) - image-led cards on a light band
   -------------------------------------------------------------------------- */
.em3-native .em3-main .em3n-deptgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 12px; }
.em3-native .em3-main .em3n-deptcard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--em3-line-onwhite); border-radius: var(--em3-radius); overflow: hidden; box-shadow: 0 30px 60px -40px rgba(10,24,88,0.25); transition: transform .25s, border-color .2s, box-shadow .25s; }
.em3-native .em3-main .em3n-deptcard:hover { transform: translateY(-5px); border-color: rgba(46,93,255,0.4); box-shadow: 0 40px 72px -34px rgba(46,93,255,0.28); }
.em3-native .em3-main .em3n-deptcard__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--em3-bg-elev); }
.em3-native .em3-main .em3n-deptcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.em3-native .em3-main .em3n-deptcard:hover .em3n-deptcard__media img { transform: scale(1.05); }
.em3-native .em3-main .em3n-deptcard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,13,51,0) 55%, rgba(5,13,51,0.45)); pointer-events: none; }
.em3-native .em3-main .em3n-deptcard__badge { position: absolute; top: 14px; left: 14px; z-index: 2; width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; background: rgba(5,13,51,0.78); border: 1px solid rgba(255,255,255,0.18); border-radius: var(--em3-radius); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.em3-native .em3-main .em3n-deptcard__badge img { width: 24px; height: 24px; }

/* Framed wide feature banner (e.g. Book consultation section) */
.em3-native .em3-main .em3n-banner { position: relative; margin: 10px 0 4px; aspect-ratio: 24 / 9; border: 1px solid var(--em3-line-onwhite); border-radius: var(--em3-radius); overflow: hidden; box-shadow: 0 32px 64px -46px rgba(10,24,88,0.35); }
.em3-native .em3-main .is-style-em3-dark .em3n-banner, .em3-native .em3-main .is-style-em3-dark-2 .em3n-banner { border-color: var(--em3-line); }
.em3-native .em3-main .em3n-banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.em3-native .em3-main .em3n-banner::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--em3-accent), var(--em3-accent-hot)); }
@media (max-width: 680px) { .em3-native .em3-main .em3n-banner { aspect-ratio: 16 / 9; } }
.em3-native .em3-main .em3n-deptcard__body { padding: 22px 22px 24px; }
.em3-native .em3-main .em3n-deptcard__name { font-size: 18px; font-weight: 700; color: var(--em3-ink-navy); margin: 0 0 7px; letter-spacing: -0.01em; }
.em3-native .em3-main .em3n-deptcard__roles { font-size: 11.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--em3-accent); margin: 0 0 12px; }
.em3-native .em3-main .em3n-deptcard__desc { font-size: 14.5px; line-height: 1.6; color: var(--em3-charcoal); margin: 0; }
@media (max-width: 860px) { .em3-native .em3-main .em3n-deptgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .em3-native .em3-main .em3n-deptgrid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   12e. Logo wall + case-study cards (Our Clients)
   -------------------------------------------------------------------------- */
.em3-native .em3-main .em3n-logorail { position: relative; margin-top: 20px; background: var(--em3-bg-deep); border: 1px solid var(--em3-line); border-radius: var(--em3-radius); padding: 32px 0; overflow: hidden; box-shadow: 0 34px 64px -46px rgba(10,24,88,0.45); -webkit-mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent); }
.em3-native .em3-main .em3n-logorail__track { display: flex; align-items: center; gap: 68px; width: max-content; padding-left: 68px; animation: em3n-marquee 48s linear infinite; }
.em3-native .em3-main .em3n-logorail:hover .em3n-logorail__track { animation-play-state: paused; }
.em3-native .em3-main .em3n-logorail img { height: 38px; width: auto; flex: 0 0 auto; object-fit: contain; filter: brightness(0) invert(1); opacity: 0.6; transition: opacity .3s ease, transform .3s ease; }
.em3-native .em3-main .em3n-logorail img:hover { opacity: 1; transform: scale(1.1); }
@keyframes em3n-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.em3-native .em3-main .em3n-logowall-note { margin-top: 16px; font-size: 12.5px; color: rgba(10,24,88,0.6); }
@media (prefers-reduced-motion: reduce) { .em3-native .em3-main .em3n-logorail { -webkit-mask-image: none; mask-image: none; } .em3-native .em3-main .em3n-logorail__track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; gap: 36px 54px; padding: 0 30px; } .em3-native .em3-main .em3n-logorail img { opacity: 0.85; } }
@media (max-width: 640px) { .em3-native .em3-main .em3n-logorail img { height: 30px; } .em3-native .em3-main .em3n-logorail__track { gap: 48px; padding-left: 48px; } }

/* Static premium client-logo grid (replaces the marquee) - 1px dividers via gap */
.em3-native .em3-main .em3n-logogrid { margin-top: 22px; display: grid; grid-template-columns: repeat(6, 1fr); gap: 1px; background: var(--em3-line); border: 1px solid var(--em3-line); border-radius: var(--em3-radius); overflow: hidden; box-shadow: 0 34px 64px -46px rgba(10,24,88,0.45); }
.em3-native .em3-main .em3n-logogrid__cell { background: var(--em3-bg-deep); display: flex; align-items: center; justify-content: center; padding: 30px 16px; transition: background .3s ease; }
.em3-native .em3-main .em3n-logogrid__cell:hover { background: #0a1650; }
.em3-native .em3-main .em3n-logogrid img { height: 34px; width: auto; max-width: 100%; object-fit: contain; filter: brightness(0) invert(1); opacity: 0.6; transition: opacity .3s ease, transform .3s ease; }
.em3-native .em3-main .em3n-logogrid__cell:hover img { opacity: 1; transform: scale(1.07); }
@media (max-width: 980px) { .em3-native .em3-main .em3n-logogrid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .em3-native .em3-main .em3n-logogrid { grid-template-columns: repeat(2, 1fr); } .em3-native .em3-main .em3n-logogrid__cell { padding: 26px 16px; } .em3-native .em3-main .em3n-logogrid img { height: 28px; } }

/* Services pillars - icon-left horizontal cards (distinct from the icon-top sector cards) */
.em3-native .em3-main .em3n-svcgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 10px; }
.em3-native .em3-main .em3n-svccard { display: flex; gap: 18px; align-items: flex-start; background: rgba(255,255,255,0.03); border: 1px solid var(--em3-line); border-radius: var(--em3-radius); padding: 26px 24px; transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.em3-native .em3-main .em3n-svccard:hover { transform: translateY(-3px); border-color: rgba(46,93,255,0.5); box-shadow: 0 30px 60px -40px rgba(46,93,255,0.4); }
.em3-native .em3-main .em3n-svccard__ico { flex: 0 0 auto; width: 52px; height: 52px; border-radius: var(--em3-radius); background: rgba(46,93,255,0.16); border: 1px solid var(--em3-line); display: flex; align-items: center; justify-content: center; }
.em3-native .em3-main .em3n-svccard__ico img { width: 28px; height: 28px; }
.em3-native .em3-main .em3n-svccard__body { min-width: 0; }
.em3-native .em3-main .em3n-svccard__body h3 { font-size: 18px; font-weight: 700; color: #fff; margin: 2px 0 6px; line-height: 1.25; }
.em3-native .em3-main .em3n-svccard__body p { font-size: 14px; line-height: 1.55; color: var(--em3-ink-muted); margin: 0 0 10px; }
.em3-native .em3-main .em3n-svccard__body a { color: var(--em3-accent-hot); font-weight: 600; font-size: 14px; text-decoration: none; }
.em3-native .em3-main .em3n-svccard__body a:hover { text-decoration: underline; }
@media (max-width: 720px) { .em3-native .em3-main .em3n-svcgrid { grid-template-columns: 1fr; } }

.em3-native .em3-main .em3n-csgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 12px; }
.em3-native .em3-main .em3n-cscard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--em3-line-onwhite); border-radius: var(--em3-radius); overflow: hidden; box-shadow: 0 30px 60px -40px rgba(10,24,88,0.25); transition: transform .25s, border-color .2s, box-shadow .25s; }
.em3-native .em3-main .em3n-cscard:hover { transform: translateY(-5px); border-color: rgba(46,93,255,0.4); box-shadow: 0 40px 72px -34px rgba(46,93,255,0.28); }
.em3-native .em3-main .em3n-cscard__media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--em3-bg-elev); }
.em3-native .em3-main .em3n-cscard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.em3-native .em3-main .em3n-cscard:hover .em3n-cscard__media img { transform: scale(1.05); }
.em3-native .em3-main .em3n-cscard__chip { position: absolute; top: 14px; left: 14px; background: rgba(5,13,51,0.82); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 6px 12px; border-radius: var(--em3-radius); }
.em3-native .em3-main .em3n-cscard__body { padding: 24px 24px 26px; display: flex; flex-direction: column; flex: 1 1 auto; }
.em3-native .em3-main .em3n-cscard__metric { font-size: clamp(30px, 3.2vw, 44px); font-weight: 700; color: var(--em3-ink-navy); line-height: 1; letter-spacing: -0.02em; margin: 0 0 4px; font-variant-numeric: tabular-nums; }
.em3-native .em3-main .em3n-cscard__metriclabel { font-size: 11.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--em3-accent); margin: 0 0 16px; }
.em3-native .em3-main .em3n-cscard__title { font-size: 18px; font-weight: 700; color: var(--em3-ink-navy); margin: 0 0 12px; line-height: 1.3; }
.em3-native .em3-main .em3n-cscard__desc { font-size: 14.5px; line-height: 1.6; color: var(--em3-charcoal); margin: 0; }
@media (max-width: 768px) { .em3-native .em3-main .em3n-csgrid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   12f. Locations: animated world map + office directory
   -------------------------------------------------------------------------- */
.em3-native .em3-main .em3n-map { position: relative; width: 100%; aspect-ratio: 1800 / 1140; margin-top: 28px; background-color: var(--em3-bg-deep); border: 1px solid var(--em3-line); border-radius: var(--em3-radius); overflow: visible; box-shadow: inset 0 0 140px -30px rgba(46,93,255,0.28); }
.em3-native .em3-main .em3n-map::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: url(../assets/img/em3-world.svg?v=4) center / 100% 100% no-repeat; -webkit-mask: linear-gradient(to bottom, transparent 0%, #000 11%, #000 87%, transparent 100%); mask: linear-gradient(to bottom, transparent 0%, #000 11%, #000 87%, transparent 100%); }
.em3-native .em3-main .em3n-map::after { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; background: radial-gradient(120% 90% at 60% 30%, transparent 55%, rgba(2,6,28,0.55) 100%); }
.em3-native .em3-main .em3n-map__svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.em3-native .em3-main .em3n-map__arc { fill: none; stroke: url(#em3arc); stroke-width: 1.6; stroke-linecap: round; opacity: 0.75; stroke-dasharray: 1200; stroke-dashoffset: 1200; animation: em3n-arc 2.6s ease forwards; }
@keyframes em3n-arc { to { stroke-dashoffset: 0; } }
.em3-native .em3-main .em3n-pin { position: absolute; transform: translate(-50%, -50%); width: 14px; height: 14px; display: block; z-index: 2; }
.em3-native .em3-main .em3n-pin__dot { position: relative; display: block; width: 12px; height: 12px; border-radius: 50%; background: var(--em3-accent); box-shadow: 0 0 0 4px rgba(46,93,255,0.22), 0 0 14px rgba(46,93,255,0.7); }
.em3-native .em3-main .em3n-pin__dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; box-shadow: 0 0 0 2px var(--em3-accent); animation: em3n-ping 2.6s ease-out infinite; }
@keyframes em3n-ping { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(3.4); opacity: 0; } }
.em3-native .em3-main .em3n-pin--hq { z-index: 3; }
.em3-native .em3-main .em3n-pin--hq .em3n-pin__dot { width: 16px; height: 16px; background: var(--em3-mint); box-shadow: 0 0 0 5px rgba(149,254,109,0.22), 0 0 18px rgba(149,254,109,0.7); }
.em3-native .em3-main .em3n-pin--hq .em3n-pin__dot::after { box-shadow: 0 0 0 2px var(--em3-mint); }
.em3-native .em3-main .em3n-pin__label { position: absolute; top: calc(100% + 7px); left: 50%; transform: translateX(-50%); font-size: 11px; font-weight: 700; letter-spacing: 0.04em; color: var(--em3-ink-muted); white-space: nowrap; text-shadow: 0 1px 6px rgba(0,0,0,0.8); }
.em3-native .em3-main .em3n-pin--hq .em3n-pin__label { color: var(--em3-mint); }
.em3-native .em3-main .em3n-pin__label--above { top: auto; bottom: calc(100% + 8px); }
.em3-native .em3-main .em3n-pin__tip { position: absolute; bottom: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(6px); background: #0a1650; border: 1px solid var(--em3-accent); border-radius: var(--em3-radius-card); padding: 11px 15px; width: max-content; max-width: 230px; text-align: left; opacity: 0; visibility: hidden; transition: opacity .2s, transform .2s; pointer-events: none; z-index: 20; box-shadow: 0 20px 44px -18px rgba(0,0,0,0.85); }
.em3-native .em3-main .em3n-pin:hover .em3n-pin__tip, .em3-native .em3-main .em3n-pin:focus .em3n-pin__tip, .em3-native .em3-main .em3n-pin:focus-visible .em3n-pin__tip { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
/* Raise the hovered/focused pin above every other pin so its tooltip is never covered (e.g. by the HQ pin). */
.em3-native .em3-main .em3n-pin:hover, .em3-native .em3-main .em3n-pin:focus, .em3-native .em3-main .em3n-pin:focus-within, .em3-native .em3-main .em3n-pin:focus-visible { z-index: 40; }

/* Centred contact-CTA closer band (Locations + reusable) */
.em3-native .em3-main .em3n-contactband { position: relative; overflow: hidden; border-top: 1px solid rgba(46,93,255,0.22); }
.em3-native .em3-main .em3n-contactband::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(130% 150% at 50% -25%, rgba(46,93,255,0.24), transparent 60%); }
.em3-native .em3-main .em3n-contactband__inner { position: relative; text-align: center; max-width: 760px; margin: 0 auto; }
.em3-native .em3-main .em3n-contactband__inner .em3-eyebrow { color: var(--em3-accent-hot); }
.em3-native .em3-main .em3n-contactband__h { font-size: clamp(28px, 3.4vw, 42px); font-weight: 800; color: #fff; line-height: 1.12; margin: 10px 0 0; letter-spacing: -0.02em; }
.em3-native .em3-main .em3n-contactband__sub { font-size: 17px; line-height: 1.6; color: var(--em3-ink-muted); margin: 16px auto 0; max-width: 600px; }
.em3-native .em3-main .em3n-contactband__cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }
.em3-native .em3-main .em3n-pin__tip b { display: block; color: #fff; font-size: 14px; }
.em3-native .em3-main .em3n-pin__tip span { display: block; color: var(--em3-accent-hot); font-size: 12px; font-weight: 600; margin-top: 2px; }
.em3-native .em3-main .em3n-pin__tip small { display: block; color: var(--em3-ink-dim); font-size: 11.5px; margin-top: 5px; }
.em3-native .em3-main .em3n-pin:focus-visible { outline: 2px solid var(--em3-accent-hot); outline-offset: 7px; border-radius: 50%; }
@media (prefers-reduced-motion: reduce) { .em3-native .em3-main .em3n-map__arc { animation: none; stroke-dashoffset: 0; } .em3-native .em3-main .em3n-pin__dot::after { animation: none; opacity: 0; } }
@media (max-width: 640px) { .em3-native .em3-main .em3n-pin__label { display: none; } .em3-native .em3-main .em3n-pin__dot { width: 10px; height: 10px; } }

/* Live office clocks strip (Locations signature support) */
.em3-native .em3-main .em3n-clocks { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; margin-top: 26px; }
.em3-native .em3-main .em3n-clock { background: rgba(255,255,255,0.04); border: 1px solid var(--em3-line); border-radius: var(--em3-radius); padding: 14px 16px; position: relative; overflow: hidden; }
.em3-native .em3-main .em3n-clock::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--em3-accent); opacity: 0.5; }
.em3-native .em3-main .em3n-clock--hq::before { background: var(--em3-mint); opacity: 0.9; }
.em3-native .em3-main .em3n-clock__city { font-size: 12px; font-weight: 700; letter-spacing: 0.04em; color: #fff; }
.em3-native .em3-main .em3n-clock__tz { font-size: 10.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--em3-ink-dim); margin-top: 1px; }
.em3-native .em3-main .em3n-clock__time { font-size: 22px; font-weight: 700; color: var(--em3-accent-hot); margin-top: 8px; font-variant-numeric: tabular-nums; letter-spacing: 0.02em; }
.em3-native .em3-main .em3n-clock--hq .em3n-clock__time { color: var(--em3-mint); }
@media (max-width: 860px) { .em3-native .em3-main .em3n-clocks { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px) { .em3-native .em3-main .em3n-clocks { grid-template-columns: repeat(2, 1fr); } }

/* Office directory */
.em3-native .em3-main .em3n-region { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(10,24,88,0.6); margin: 30px 0 6px; }
.em3-native .em3-main .em3n-officegrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.em3-native .em3-main .em3n-officecard { position: relative; background: #fff; border: 1px solid var(--em3-line-onwhite); border-radius: var(--em3-radius); padding: 26px 22px 22px; scroll-margin-top: 110px; box-shadow: 0 30px 60px -44px rgba(10,24,88,0.25); transition: transform .25s ease, border-color .2s, box-shadow .25s; overflow: hidden; }
.em3-native .em3-main .em3n-officecard::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--em3-accent), var(--em3-accent-hot)); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.em3-native .em3-main .em3n-officecard:target, .em3-native .em3-main .em3n-officecard:hover { transform: translateY(-4px); border-color: rgba(46,93,255,0.45); box-shadow: 0 40px 70px -38px rgba(46,93,255,0.32); }
.em3-native .em3-main .em3n-officecard:hover::before, .em3-native .em3-main .em3n-officecard:target::before { transform: scaleX(1); }
.em3-native .em3-main #office-limerick::before { background: linear-gradient(90deg, var(--em3-accent-hot), var(--em3-accent)); transform: scaleX(1); }
.em3-native .em3-main .em3n-officecard__city { font-size: 19px; font-weight: 700; color: var(--em3-ink-navy); margin: 0 0 4px; letter-spacing: -0.01em; }
.em3-native .em3-main .em3n-officecard__role { font-size: 11.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--em3-accent-hot); margin: 0 0 16px; }
.em3-native .em3-main .em3n-officecard__row { font-size: 14px; line-height: 1.5; color: var(--em3-charcoal); margin: 0 0 12px; }
.em3-native .em3-main .em3n-officecard__row:last-child { margin-bottom: 0; }
.em3-native .em3-main .em3n-officecard__row--ico { position: relative; padding-left: 24px; }
.em3-native .em3-main .em3n-officecard__row--ico::before { content: ""; position: absolute; left: 0; top: 1px; width: 15px; height: 15px; background: var(--em3-accent); -webkit-mask: center / contain no-repeat var(--ico); mask: center / contain no-repeat var(--ico); }
.em3-native .em3-main .em3n-officecard__row--call { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-officecard__row--email { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m2 6 10 7 10-7'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-officecard__row--time { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.em3-native .em3-main .em3n-officecard__row--ico .em3n-of__lbl { display: block; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--em3-accent); margin-bottom: 2px; }
.em3-native .em3-main .em3n-officecard__row strong { color: var(--em3-ink-navy); font-weight: 600; }
.em3-native .em3-main .em3n-officecard a { color: var(--em3-accent); text-decoration: none; font-weight: 600; }
.em3-native .em3-main .em3n-officecard a:hover { text-decoration: underline; }
@media (max-width: 860px) { .em3-native .em3-main .em3n-officegrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .em3-native .em3-main .em3n-officegrid { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   13. Accessibility
   -------------------------------------------------------------------------- */
.em3-native .em3-main a:focus-visible, .em3-native .em3-main button:focus-visible { outline: 2px solid var(--em3-accent-hot); outline-offset: 3px; }
.em3-native .is-style-em3-light a:focus-visible { outline-color: var(--em3-accent); }
.em3-native .em3n-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
