/* ==========================================================================
   VigourSoft Design System  v2.2
   Ported 1:1 from the "Vigoursoft Website Redesign" HTML/CSS design files.
   Light mode is the default; dark mode is the same system with swapped
   tokens, so every component below is written once and works in both.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS
   -------------------------------------------------------------------------- */
:root {
  --vs-bg: #F9FAFB;
  --vs-bg2: #FFFFFF;
  --vs-panel: #FFFFFF;
  --vs-card: #FFFFFF;
  --vs-card-soft: #F3F4F6;
  --vs-border: #E5E7EB;
  --vs-border-soft: #F0F0F0;
  --vs-ink: #111827;
  --vs-muted: #6B7280;
  --vs-muted-2: #9CA3AF;
  --vs-accent: #DA6340;
  --vs-accent-bright: #C4522F;
  --vs-accent-dim: #F2C3B2;
  --vs-accent-glow: rgba(218,99,64,0.18);
  --vs-on-accent: #FFFFFF;
  --vs-green: #22A06B;
  --vs-shadow-card: 0 1px 2px rgba(16,18,23,.04);
  --vs-shadow-hover: 0 14px 34px -18px rgba(218,99,64,0.45);

  --vs-container: 1240px;
  --vs-gutter: 32px;
  --vs-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

html[data-theme="dark"] {
  --vs-bg: #0A0A0A;
  --vs-bg2: #070707;
  --vs-panel: #111111;
  --vs-card: #131313;
  --vs-card-soft: #0F0F0F;
  --vs-border: #242424;
  --vs-border-soft: #1b1b1b;
  --vs-ink: #F5F3EF;
  --vs-muted: #9a9c9d;
  --vs-muted-2: #6c6f70;
  --vs-accent: #E8622C;
  --vs-accent-bright: #FF7A3D;
  --vs-accent-dim: #8a3d1c;
  --vs-accent-glow: rgba(232,98,44,0.32);
  --vs-on-accent: #0A0A0A;
  --vs-green: #3FBF6A;
  --vs-shadow-card: none;
  --vs-shadow-hover: 0 14px 34px -18px rgba(232,98,44,0.35);
}

/* --------------------------------------------------------------------------
   2. BASE
   -------------------------------------------------------------------------- */
html { scroll-behavior: smooth; background: var(--vs-bg); }
body {
  background: var(--vs-bg);
  color: var(--vs-ink);
  font-family: var(--vs-font);
  font-size: 14.5px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body, .vs-header, .vs-footer {
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
.vs-container { max-width: var(--vs-container); margin: 0 auto; padding: 0 var(--vs-gutter); }
.vs-accent { color: var(--vs-accent); }

h1, h2, h3, h4, h5, h6 { color: var(--vs-ink); font-weight: 700; line-height: 1.3; margin: 0; }

#vs-scroll-progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0;
  background: linear-gradient(90deg, var(--vs-accent), var(--vs-accent-bright));
  z-index: 100; box-shadow: 0 0 8px 1px var(--vs-accent-glow); transition: width .1s ease;
}

.vs-reveal { 
  opacity: 0; transform: translateY(22px);
  transition: opacity .7s cubic-bezier(.16,.84,.44,1), transform .7s cubic-bezier(.16,.84,.44,1); 
}
.vs-reveal.is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce){
  .vs-reveal { opacity: 1; transform: none; transition: none; }
}

/* --------------------------------------------------------------------------
   3. HEADER / NAV
   -------------------------------------------------------------------------- */
.vs-header {
  border-bottom: 1px solid var(--vs-border-soft);
  background: var(--vs-bg2);
  position: sticky; top: 0; z-index: 50;
}
@supports (backdrop-filter: blur(10px)){
  .vs-header { background: color-mix(in srgb, var(--vs-bg2) 85%, transparent); backdrop-filter: blur(10px); }
}
.vs-header-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px var(--vs-gutter); max-width: var(--vs-container); margin: 0 auto; gap: 20px;
}
.vs-logo { display: flex; align-items: center; gap: 9px; flex-shrink: 0; }
.vs-logo img, .vs-logo .custom-logo {
  width: auto !important; height: 26px !important; max-height: 26px; max-width: 190px;
  object-fit: contain; display: block;
  transition: transform .4s cubic-bezier(.34,1.56,.64,1);
}
.vs-logo:hover img { transform: scale(1.08); }
.vs-logo-word { font-weight: 800; font-size: 15px; letter-spacing: .3px; color: var(--vs-ink); }

.vs-primary-menu ul { display: flex; align-items: center; gap: 28px; list-style: none; margin: 0; padding: 0; }
.vs-primary-menu li { position: relative; }
.vs-primary-menu > ul > li > a {
  position: relative; display: flex; align-items: center; gap: 6px;
  font-size: 14px; color: var(--vs-muted); padding-bottom: 3px; transition: color .2s ease;
  white-space: nowrap;
}
.vs-primary-menu > ul > li > a::after {
  content: ''; position: absolute; left: 0; bottom: 0; width: 0; height: 1px;
  background: var(--vs-accent); transition: width .3s ease;
}
.vs-primary-menu > ul > li > a:hover { color: var(--vs-ink); }
.vs-primary-menu > ul > li > a:hover::after { width: 100%; }
.vs-primary-menu > ul > li.current-menu-item > a,
.vs-primary-menu > ul > li.current-menu-parent > a,
.vs-primary-menu > ul > li.current-menu-ancestor > a { color: var(--vs-ink); font-weight: 600; }
.vs-primary-menu > ul > li.menu-item-has-children > a::before {
  content: ''; order: 2; width: 7px; height: 7px; margin-bottom: 2px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}

/* Updated Dropdown CSS - v2.3 keeps the hover bridges in sync with the
   authoritative copy in header.php, so the submenus stay reachable even if the
   inline header block is ever removed. */
.vs-sub-menu {
  position: absolute; top: 100%; left: -10px; margin-top: 14px;
  min-width: 320px; max-width: calc(100vw - 32px); padding: 8px; list-style: none;
  background: var(--vs-card); border: 1px solid var(--vs-border); border-radius: 12px;
  box-shadow: 0 12px 32px -10px rgba(0,0,0,0.12);
  opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  z-index: 200;
}
/* Lip on the panel: covers the 14px gap along the panel's whole width. */
.vs-primary-menu .vs-sub-menu::before {
  content: ''; position: absolute; top: -18px; left: 0; right: 0; height: 18px;
}
/* Strip under the trigger: live before the panel is, so the cursor never
   crosses dead space on its way down. */
.vs-primary-menu > ul > li.menu-item-has-children::after {
  content: ''; position: absolute; top: 100%; left: -28px;
  width: 348px; max-width: 100vw; height: 20px; pointer-events: none; z-index: 199;
}
.vs-primary-menu > ul > li.menu-item-has-children:hover::after,
.vs-primary-menu > ul > li.menu-item-has-children:focus-within::after,
.vs-primary-menu > ul > li.menu-item-has-children.vs-open::after { pointer-events: auto; }
.vs-primary-menu > ul > li.vs-sub-flip::after { left: auto; right: -28px; }

.vs-primary-menu > ul > li.menu-item-has-children:hover,
.vs-primary-menu > ul > li.menu-item-has-children:focus-within,
.vs-primary-menu > ul > li.menu-item-has-children.vs-open { z-index: 70; }

.vs-primary-menu li.menu-item-has-children:hover > .vs-sub-menu,
.vs-primary-menu li.menu-item-has-children:focus-within > .vs-sub-menu,
.vs-primary-menu li.menu-item-has-children.vs-open > .vs-sub-menu {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
}
.vs-primary-menu > ul > li.vs-sub-flip > .vs-sub-menu { left: auto; right: -10px; }
.vs-sub-menu li { padding: 0; margin-bottom: 2px; }
.vs-sub-menu li:last-child { margin-bottom: 0; }
.vs-sub-menu a {
  display: block; padding: 14px 16px; border-radius: 9px;
  font-size: 14px; font-weight: 600; color: var(--vs-ink); text-decoration: none;
  transition: background .2s ease;
}
.vs-sub-menu a:hover { background: var(--vs-card-soft); }
.vs-sub-desc {
  display: block; font-weight: 400; font-size: 13px; color: var(--vs-muted);
  margin-top: 4px; line-height: 1.5; white-space: normal;
}

.vs-header-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.vs-search-toggle {
  width: 36px; height: 36px; border-radius: 9px; background: var(--vs-accent);
  display: flex; align-items: center; justify-content: center; color: var(--vs-on-accent);
  border: none; cursor: pointer; transition: background .2s ease, transform .2s ease;
}
.vs-search-toggle:hover { background: var(--vs-accent-bright); transform: scale(1.06); }
.vs-theme-toggle {
  width: 36px; height: 36px; border-radius: 9px; background: var(--vs-card);
  border: 1px solid var(--vs-border); color: var(--vs-ink);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  transition: border-color .2s ease, color .2s ease;
}
.vs-theme-toggle:hover { border-color: var(--vs-accent); color: var(--vs-accent); }
.vs-theme-toggle svg { width: 16px; height: 16px; display: block; }
.vs-theme-toggle .vs-icon-moon { display: none; }
html[data-theme="dark"] .vs-theme-toggle .vs-icon-sun { display: none; }
html[data-theme="dark"] .vs-theme-toggle .vs-icon-moon { display: block; }

.vs-header-cta {
  background: var(--vs-card); border: 1px solid var(--vs-border); border-radius: 9px;
  padding: 10px 18px; font-size: 13.5px; font-weight: 600; color: var(--vs-ink);
  white-space: nowrap; line-height: 1.2;
  transition: border-color .2s ease, background .2s ease;
}
.vs-header-cta:hover { border-color: var(--vs-accent-dim); background: var(--vs-card-soft); }

.vs-hamburger {
  display: none; width: 36px; height: 36px; border-radius: 9px; border: 1px solid var(--vs-border);
  background: none; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
}
.vs-hamburger span { display: block; width: 15px; height: 1.5px; background: var(--vs-ink); transition: transform .3s ease, opacity .3s ease; }
.vs-hamburger.is-open span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.vs-hamburger.is-open span:nth-child(2) { opacity: 0; }
.vs-hamburger.is-open span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }

.vs-drawer {
  position: fixed; inset: 0; z-index: 60; background: var(--vs-bg);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; transform: translateY(-10px);
  transition: opacity .3s ease, transform .3s ease, visibility .3s;
  pointer-events: none;   /* closed drawer must never intercept a click */
}
.vs-drawer.is-open { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
.vs-drawer ul { list-style: none; margin: 0; padding: 0; text-align: center; }
.vs-drawer li { margin: 18px 0; }
.vs-drawer a { font-size: 22px; font-weight: 700; color: var(--vs-ink); }
.vs-drawer a:hover { color: var(--vs-accent-bright); }

/* Updated Drawer CSS to work with new sub-menu padding.
   `visibility: inherit`, not `visible` - see the note in header.php. Forcing
   these visible lifted the drawer's hidden copy of the menu back into the
   hit-testable layer, where it covered the real dropdowns. */
.vs-drawer .vs-sub-menu { position: static; opacity: 1; visibility: inherit; pointer-events: auto;
  transform: none; background: none; border: 0; box-shadow: none; min-width: 0; max-width: none; padding: 0; }
.vs-drawer .vs-sub-menu::before { content: none; }
.vs-drawer .vs-sub-menu a { padding: 8px 0; background: transparent; font-size: 15px; font-weight: 500; }
.vs-drawer .vs-sub-menu a:hover { background: transparent; }
.vs-drawer .vs-sub-desc { display: none; }

.vs-drawer-close {
  position: absolute; top: 20px; right: 26px; width: 34px; height: 34px; border-radius: 50%;
  border: 1px solid var(--vs-border); background: none; color: var(--vs-muted);
  display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 15px;
}

/* --------------------------------------------------------------------------
   4. BUTTONS + LINKS  (shared by theme markup and Elementor widgets)
   -------------------------------------------------------------------------- */
.vs-btn,
.elementor .vs-btn-primary .elementor-button,
.elementor .vs-btn-secondary .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border-radius: 9px !important; padding: 12px 20px !important;
  font-size: 13.5px !important; font-weight: 700 !important;
  line-height: 1.2; border: 1px solid transparent; cursor: pointer; text-decoration: none;
  transition: box-shadow .2s ease, transform .2s ease, background .2s ease, border-color .2s ease;
}
.vs-btn-primary,
.elementor .vs-btn-primary .elementor-button {
  position: relative; overflow: hidden;
  background: var(--vs-accent) !important; color: var(--vs-on-accent) !important;
  border-color: var(--vs-accent) !important;
}
.vs-btn-primary:not(.elementor-widget):hover,
.elementor .vs-btn-primary .elementor-button:hover {
  background: var(--vs-accent-bright) !important; border-color: var(--vs-accent-bright) !important;
  box-shadow: 0 0 22px 2px var(--vs-accent-glow); transform: translateY(-2px);
}
.vs-btn-secondary,
.elementor .vs-btn-secondary .elementor-button {
  background: var(--vs-card) !important; color: var(--vs-ink) !important;
  border-color: var(--vs-border) !important;
}
.vs-btn-secondary:not(.elementor-widget):hover,
.elementor .vs-btn-secondary .elementor-button:hover {
  border-color: var(--vs-accent) !important; transform: translateY(-2px);
}

/* Consolidated Elementor Widget Wrapper Resets */
.elementor .elementor-widget.vs-btn-primary,
.elementor .elementor-widget.vs-btn-secondary,
.elementor .elementor-widget.vs-link-arrow,
.elementor .elementor-widget.vs-article-link,
.elementor .elementor-widget.vs-btn-story,
.elementor .elementor-widget.vs-btn-map { 
  background: none !important; border: 0 !important; padding: 0 !important; 
}
.elementor .vs-btn-primary .elementor-button-wrapper,
.elementor .vs-btn-secondary .elementor-button-wrapper { display: inline-block; }

/* Text link with arrow */
.elementor .vs-link-arrow .elementor-button {
  background: none !important; border: 0 !important; padding: 0 !important;
  color: var(--vs-accent) !important; font-size: 13.5px !important; font-weight: 600 !important;
  white-space: nowrap; transition: opacity .2s ease;
}
.elementor .vs-link-arrow .elementor-button:hover { opacity: .75; transform: none; box-shadow: none; }
.elementor .vs-link-arrow.vs-align-right .elementor-button-wrapper,
.elementor .vs-article-link .elementor-button-wrapper,
.elementor .vs-btn-story .elementor-button-wrapper,
.elementor .vs-btn-map .elementor-button-wrapper { text-align: right; }

/* --------------------------------------------------------------------------
   5. ELEMENTOR PLUMBING
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   5.0 SPACING SYSTEM (v2.6)
   One set of tokens drives every vertical rhythm on the site: the gap under
   the header, the gap between page sections, section-head -> content, filter
   rows -> content and the gap above the footer. Breakpoints below only change
   the token values, never the individual rules.
   -------------------------------------------------------------------------- */
:root {
  --vs-space-page-top: 36px;  /* header -> first section                */
  --vs-space-section:  64px;  /* section -> section, last section -> footer */
  --vs-space-head:     36px;  /* section heading block -> its content   */
  --vs-space-filter:   24px;  /* filter / pill row -> its content       */
}
@media (max-width: 1080px) {
  :root { --vs-space-page-top: 28px; --vs-space-section: 48px; --vs-space-head: 32px; }
}
@media (max-width: 767px) {
  :root { --vs-space-page-top: 22px; --vs-space-section: 36px; --vs-space-head: 24px; }
}

.vs-page-wrap { max-width: var(--vs-container); margin: 0 auto; padding: var(--vs-space-page-top) var(--vs-gutter) 0; }
.elementor .elementor { background: transparent; }

.elementor h1 { font-size: 38px; line-height: 1.2; font-weight: 800; letter-spacing: -.6px; }
.elementor h2 { font-size: 26px; line-height: 1.3; font-weight: 700; letter-spacing: -.3px; }
.elementor h3 { font-size: 16px; font-weight: 700; }
.elementor h4 { font-size: 15.5px; font-weight: 700; line-height: 1.4; }
.elementor h5 { font-size: 14.5px; font-weight: 700; }
.elementor h6 { font-size: 13px; font-weight: 700; }

.elementor .elementor-column-gap-default > .elementor-column > .elementor-widget-wrap { padding: 0; }
.elementor .elementor-widget:not(:last-child) { margin-bottom: 0; }
/* Every top-level block of a page gets the same section gap, whether it was
   built as a classic Section, a Flexbox Container or a bare widget. (Before
   v2.6 only classic Sections were spaced, so Containers sat flush against
   the next block.) */
.elementor > .elementor-section-wrap > .elementor-section,
.elementor > .elementor-section,
.elementor > .e-con,
.elementor > .elementor-widget { margin-bottom: var(--vs-space-section); }

/* Top-level Containers carried Elementor's default 10px padding, which pushed
   their content 10px in from every other section and padded the gaps around
   them. The Elementor variables are reset (not the padding itself) so any
   padding set explicitly on a container in the editor still wins. */
.elementor > .e-con:not(.vigour-master-container) {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
}
.elementor > .e-con.e-flexbox-base:not(.vigour-master-container) { padding: 0; }
.elementor .elementor-section .elementor-section { margin-bottom: 0; }
.elementor .elementor-section:last-child,
.elementor > :last-child { margin-bottom: 0; }

.vs-gap-16 > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-right: 16px; }
.vs-gap-16 > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap { padding-right: 0; }
.vs-gap-18 > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-right: 18px; }
.vs-gap-18 > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap { padding-right: 0; }
.vs-gap-20 > .elementor-container > .elementor-column > .elementor-widget-wrap { padding-right: 20px; }
.vs-gap-20 > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap { padding-right: 0; }

/* --------------------------------------------------------------------------
   6. SECTION HEADS
   -------------------------------------------------------------------------- */
.vs-section-head { margin-bottom: var(--vs-space-head) !important; }
.vs-section-head > .elementor-container { align-items: flex-end; }
.elementor .vs-eyebrow {
  font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase;
  color: var(--vs-muted-2); font-weight: 700; margin-bottom: 12px !important;
}
.elementor .vs-head-h2 { font-size: 26px; line-height: 1.3; font-weight: 700; letter-spacing: -.3px; color: var(--vs-ink); }
.elementor .vs-head-note { color: var(--vs-muted); font-size: 14.5px; line-height: 1.65; }
.vs-head-right > .elementor-widget-wrap { padding-left: 40px !important; padding-bottom: 4px !important; }
.vs-heading-row > .elementor-container { align-items: center; }

/* --------------------------------------------------------------------------
   7. HERO
   -------------------------------------------------------------------------- */
.vs-hero-box {
  position: relative; overflow: hidden;
  background: var(--vs-panel); border: 1px solid var(--vs-border);
  border-radius: 22px !important; padding: 44px !important;
  margin-bottom: var(--vs-space-section) !important;
}
.vs-hero-box::before {
  content: ''; position: absolute; top: -160px; left: -100px; width: 520px; height: 520px;
  background: radial-gradient(circle, var(--vs-accent-glow) 0%, transparent 68%);
  opacity: .45; pointer-events: none; animation: vsDriftGlow 14s ease-in-out infinite alternate;
}
@keyframes vsDriftGlow { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(35px,25px) scale(1.1); } }
.vs-hero-box > .elementor-container { position: relative; z-index: 2; align-items: center; }
.vs-hero-left > .elementor-widget-wrap { padding-right: 50px !important; }

.elementor .vs-eyebrow-pill { margin-bottom: 22px !important; }
.elementor .vs-eyebrow-pill p {
  display: inline-flex; align-items: center; gap: 9px;
  background: var(--vs-card); border: 1px solid var(--vs-border); border-radius: 999px;
  padding: 8px 16px; font-size: 13px; color: var(--vs-muted); margin: 0; line-height: 1.3;
}
.elementor .vs-eyebrow-pill p::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--vs-green);
  flex: 0 0 auto; animation: vsDotPulse 2.4s ease-in-out infinite;
}
@keyframes vsDotPulse { 0%,100% { opacity: 1; } 50% { opacity: .55; } }

.elementor .vs-hero-h1 {
  font-size: 38px; line-height: 1.2; font-weight: 800; letter-spacing: -.6px;
  color: var(--vs-ink); margin-bottom: 18px !important;
}
.elementor .vs-lede {
  font-size: 14.5px; line-height: 1.65; color: var(--vs-muted);
  max-width: 440px; margin-bottom: 28px !important;
}

.vs-stat-row { margin-bottom: 30px !important; }
.vs-stat-row .elementor-column { width: auto !important; flex: 0 0 auto !important; }
.elementor .vs-stat-value {
  display: block; font-size: 22px; font-weight: 800; color: var(--vs-ink);
  letter-spacing: -.3px; margin-bottom: 4px !important; line-height: 1.25;
}
.elementor .vs-stat-value .vs-sub { font-size: 11px; color: var(--vs-muted-2); font-weight: 600; letter-spacing: 0; }
.elementor .vs-stat-label { font-size: 11.5px; color: var(--vs-muted-2); line-height: 1.4; }

.vs-btn-row > .elementor-container { justify-content: flex-start; }
.vs-btn-row .elementor-column { width: auto !important; flex: 0 0 auto !important; }

/* Technology Services panel */
.vs-tech-panel {
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 22px 22px 20px !important;
}
.vs-panel-head { margin-bottom: 18px !important; }
.vs-panel-head > .elementor-container { align-items: center; }
.elementor .vs-panel-title { font-size: 12px; color: var(--vs-ink); font-weight: 600; }
.elementor .vs-panel-note { font-size: 12px; color: var(--vs-muted-2); text-align: right; }

.vs-tech-row { margin-bottom: 11px !important; }
.vs-tech-row .elementor-column > .elementor-widget-wrap { padding: 0 5.5px !important; }
.elementor .vs-tech-node {
  aspect-ratio: 1/1; width: 100%; border-radius: 50%;
  border: 1px solid var(--vs-border); background: var(--vs-panel);
  display: flex; align-items: center; justify-content: center; text-align: center;
  font-size: 10.5px; font-weight: 600; line-height: 1.25; color: var(--vs-muted);
  padding: 6px; transition: transform .3s ease, border-color .3s ease;
}
.elementor .vs-tech-node:hover { transform: scale(1.06); border-color: var(--vs-accent-dim); }
.elementor .vs-tech-node.vs-filled {
  background: var(--vs-accent); border-color: var(--vs-accent);
  color: var(--vs-on-accent); font-weight: 700;
  animation: vsNodeGlow 3s ease-in-out infinite;
}
.elementor .vs-tech-node.vs-filled-2 { animation-delay: 1.5s; }
@keyframes vsNodeGlow {
  0%,100% { box-shadow: 0 0 0 0 var(--vs-accent-glow); }
  50% { box-shadow: 0 0 22px 4px var(--vs-accent-glow); }
}

.vs-panel-foot { border-top: 1px solid var(--vs-border-soft); padding-top: 16px !important; margin-top: 7px !important; }
.elementor .vs-panel-foot-item { font-size: 11px; color: var(--vs-muted-2); line-height: 1.5; }
.elementor .vs-panel-foot-item b { color: var(--vs-muted); font-weight: 600; }
.elementor .vs-align-right { text-align: right; }

/* --------------------------------------------------------------------------
   8. CARDS  (edge / competency / case / insight share one hover behaviour)
   -------------------------------------------------------------------------- */
.vs-edge-card, .vs-case-card, .vs-insight-card,
.vs-process-card, .vs-careers-card, .vs-cta-box {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  box-shadow: var(--vs-shadow-card);
}
.vs-edge-card, .vs-case-card, .vs-insight-card {
  border-radius: 14px !important;
  transition: transform .3s cubic-bezier(.16,.84,.44,1), border-color .3s ease, box-shadow .3s ease;
}
.vs-edge-card:hover, .vs-case-card:hover, .vs-insight-card:hover {
  transform: translateY(-5px); border-color: var(--vs-accent-dim); box-shadow: var(--vs-shadow-hover);
}
.vs-edge-card { padding: 20px !important; }
.vs-case-card { padding: 20px 20px 22px !important; }
.vs-insight-card { padding: 20px !important; }

.vs-card-top { margin-bottom: 12px !important; }
.vs-card-top > .elementor-container { align-items: center; }
.elementor .vs-card-top-label { font-size: 12px; color: var(--vs-muted); line-height: 1.4; }
.elementor .vs-icon .elementor-icon {
  color: var(--vs-accent); font-size: 18px;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1);
}
.elementor .vs-icon { text-align: right; }
.vs-edge-card:hover .vs-icon .elementor-icon{ transform: scale(1.15); }

.elementor .vs-edge-num { font-size: 24px; font-weight: 800; color: var(--vs-ink); margin-bottom: 8px !important; line-height: 1.2; }
.elementor .vs-edge-desc { color: var(--vs-muted); font-size: 12.5px; line-height: 1.55; }

.elementor .vs-tag {
  display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .4px;
  text-transform: uppercase; color: var(--vs-accent);
  border: 1px solid var(--vs-accent-dim); border-radius: 6px; padding: 4px 9px;
  margin-bottom: 13px !important; line-height: 1.3;
}
.elementor .vs-case-title { font-size: 15.5px; font-weight: 700; line-height: 1.4; color: var(--vs-ink); margin-bottom: 16px !important; }
.elementor .vs-case-stat {
  display: inline-block; font-size: 11px; color: var(--vs-muted);
  border: 1px solid var(--vs-border-soft); border-radius: 6px; padding: 5px 9px; line-height: 1.3;
}
.elementor .vs-case-card .vs-link-arrow .elementor-button { font-size: 12.5px !important; }

.elementor .vs-insight-title { font-size: 15px; font-weight: 700; line-height: 1.4; color: var(--vs-ink); margin: 13px 0 14px !important; }
.elementor .vs-meta { color: var(--vs-muted-2); font-size: 11.5px; }

/* Filter pills */

.elementor > .vs-pill-group { margin-bottom: var(--vs-space-filter) !important; }
.vs-pill-group > .elementor-container { justify-content: flex-start; flex-wrap: wrap; }
.vs-pill-group .elementor-column { width: auto !important; flex: 0 0 auto !important; }
.elementor .vs-pill {
  display: inline-block; border: 1px solid var(--vs-border); border-radius: 999px;
  padding: 7px 15px; font-size: 12px; font-weight: 600; color: var(--vs-muted);
  cursor: pointer; line-height: 1.3;
  transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.elementor .vs-pill:hover { border-color: var(--vs-accent-dim); color: var(--vs-ink); }
.elementor .vs-pill.vs-pill-active {
  background: var(--vs-accent); color: var(--vs-on-accent); border-color: var(--vs-accent);
}
.elementor .vs-story-count {
  display: inline-block; font-size: 12px; color: var(--vs-muted-2);
  border: 1px solid var(--vs-border); border-radius: 999px; padding: 6px 13px; line-height: 1.3;
}

/* --------------------------------------------------------------------------
   9. HOW WE WORK
   -------------------------------------------------------------------------- */
.vs-process-card { border-radius: 16px !important; padding: 28px 30px 30px !important; }
.vs-progress-track { position: relative; height: 6px; background: var(--vs-border); border-radius: 999px; margin-bottom: 28px; }
.vs-progress-fill { position: absolute; left: 0; top: 0; height: 100%; width: 0; background: #DA6340;
  border-radius: 999px; transition: width 1.4s cubic-bezier(.16,.84,.44,1); }
.vs-progress-dot {
  position: absolute; top: 50%; left: 0; width: 14px; height: 14px; border-radius: 50%;
  background: var(--vs-accent); transform: translate(-50%,-50%);
  transition: left 1.4s cubic-bezier(.16,.84,.44,1); animation: vsDotBreathe 2.4s ease-in-out infinite;
}
@keyframes vsDotBreathe {
  0%,100% { box-shadow: 0 0 0 5px var(--vs-accent-glow); }
  50% { box-shadow: 0 0 0 9px transparent; }
}
.elementor .vs-step-num { display: block; font-size: 12px; color: var(--vs-muted-2); margin-bottom: 10px !important; }
.elementor .vs-step-title { font-size: 15px; font-weight: 700; color: var(--vs-ink); margin-bottom: 8px !important; }
.elementor .vs-step-text { color: var(--vs-muted); font-size: 12.5px; line-height: 1.55; }

/* --------------------------------------------------------------------------
   10. PARTNERS
   -------------------------------------------------------------------------- */
@keyframes vsFloatBox { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

/* --------------------------------------------------------------------------
   11. CAREERS
   -------------------------------------------------------------------------- */
.vs-careers-card { border-radius: 14px !important; padding: 26px 24px !important; }
.vs-careers-card > .elementor-widget-wrap { height: 100%; flex-wrap: nowrap; flex-direction: column; align-content: stretch; }
.vs-careers-card > .elementor-widget-wrap > .vs-btn-secondary { margin-top: auto !important; }
.elementor .vs-careers-h3 { font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--vs-ink); margin-bottom: 12px !important; }
.elementor .vs-careers-text { color: var(--vs-muted); font-size: 13px; line-height: 1.6; margin-bottom: 22px !important; }
.elementor .vs-careers-card .vs-btn-secondary .elementor-button-wrapper { display: block; }
.elementor .vs-careers-card .vs-btn-secondary .elementor-button { width: 100%; }

.vs-job-list {
  border: 1px solid var(--vs-border); border-radius: 14px !important; overflow: hidden;
  background: var(--vs-border-soft); padding: 0 !important;
}
.vs-job-row {
  background: var(--vs-card); padding: 18px 22px !important; margin-bottom: 1px !important;
  transition: background .2s ease;
}
.vs-job-row:last-child { margin-bottom: 0 !important; }
.vs-job-row:hover { background: var(--vs-card-soft); }
.vs-job-row > .elementor-container { align-items: center; }
.elementor .vs-job-title { font-size: 14.5px; font-weight: 700; color: var(--vs-ink); margin-bottom: 4px !important; }
.elementor .vs-job-meta { font-size: 12px; color: var(--vs-muted); }
.elementor .vs-job-tag {
  display: inline-block; font-size: 11.5px; font-weight: 700;
  color: var(--vs-on-accent) !important; background: var(--vs-accent); border-radius: 7px;
  padding: 7px 13px; white-space: nowrap; line-height: 1.3;
  animation: vsTagPulse 2.6s ease-in-out infinite;
  transition: background .2s ease, transform .2s ease;
}
.elementor .vs-job-tag-wrap { text-align: right; }
.elementor .vs-job-tag:hover { background: var(--vs-accent-bright); transform: translateY(-2px); animation-play-state: paused; }
@keyframes vsTagPulse {
  0%,100% { box-shadow: 0 0 0 0 var(--vs-accent-glow); }
  50% { box-shadow: 0 0 12px 3px var(--vs-accent-glow); }
}

/* --------------------------------------------------------------------------
   12. CTA
   -------------------------------------------------------------------------- */
.vs-cta-box {
  position: relative; overflow: hidden;
  background: var(--vs-panel); border-radius: 16px !important; padding: 32px 36px !important;
}
.vs-cta-box::before {
  content: ''; position: absolute; top: -100px; right: -80px; width: 280px; height: 280px;
  background: radial-gradient(circle, var(--vs-accent-glow) 0%, transparent 70%);
  opacity: .5; pointer-events: none; animation: vsDriftGlow2 9s ease-in-out infinite alternate;
}
@keyframes vsDriftGlow2 { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(-20px,15px) scale(1.1); } }
.vs-cta-box > .elementor-container { position: relative; z-index: 1; align-items: center; }
.elementor .vs-cta-h2 { font-size: 21px; font-weight: 700; color: var(--vs-ink); margin-bottom: 6px !important; }
.elementor .vs-cta-text { color: var(--vs-muted); font-size: 13.5px; }
.vs-cta-actions > .elementor-container { justify-content: flex-end; flex-wrap: wrap; }
.vs-cta-actions .elementor-column { width: auto !important; flex: 0 0 auto !important; }

/* --------------------------------------------------------------------------
   13. FOOTER
   -------------------------------------------------------------------------- */
.vs-footer { border-top: 1px solid var(--vs-border-soft); padding: 56px 0 30px; background: var(--vs-bg2); margin-top: var(--vs-space-section); }
.vs-footer-top {
  display: grid; grid-template-columns: .9fr 1.5fr .9fr; gap: 56px; margin-bottom: 44px;
  max-width: var(--vs-container); margin-left: auto; margin-right: auto; padding: 0 var(--vs-gutter);
}
.vs-roadmap-card { background: var(--vs-card); border: 1px solid var(--vs-border); border-radius: 14px; padding: 22px; }
.vs-roadmap-card h5 { font-size: 15px; font-weight: 700; margin-bottom: 10px; }
.vs-roadmap-card p { color: var(--vs-muted); font-size: 12.5px; line-height: 1.6; margin: 0 0 18px; }
.vs-roadmap-card .vs-btn { width: 100%; }
.vs-footer-label { font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--vs-muted-2); font-weight: 700; margin-bottom: 8px; }
.vs-footer-brandname { font-size: 14.5px; font-weight: 700; margin-bottom: 20px; color: var(--vs-ink); }
.vs-office-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.vs-office h6 { font-size: 14px; font-weight: 700; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; color: var(--vs-ink); }
.vs-office h6 svg { color: var(--vs-accent); flex-shrink: 0; }
.vs-office p { font-size: 12.5px; color: var(--vs-muted); line-height: 1.6; padding-left: 20px; margin: 0; }
.vs-connect h5 { font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--vs-muted-2); font-weight: 700; margin-bottom: 16px; }
.vs-connect p { font-size: 12.5px; color: var(--vs-muted); margin: 0 0 4px; }
.vs-connect a { color: var(--vs-accent); font-size: 12.5px; margin-bottom: 14px; display: inline-block; }
.vs-connect a:hover { opacity: .75; }
.vs-connect b { display: block; font-size: 13px; font-weight: 700; margin-bottom: 14px; color: var(--vs-ink); }
.vs-footer-bottom {
  border-top: 1px solid var(--vs-border-soft); padding: 22px var(--vs-gutter) 0;
  max-width: var(--vs-container); margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px;
  font-size: 12.5px; color: var(--vs-muted-2);
}
.vs-footer-bottom a { color: var(--vs-accent); }
.vs-social { display: flex; gap: 10px; }
.vs-social a {
  width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--vs-border);
  display: flex; align-items: center; justify-content: center; color: var(--vs-muted);
  transition: border-color .2s ease, color .2s ease, transform .2s ease;
}
.vs-social a:hover { border-color: var(--vs-accent); color: var(--vs-accent-bright); transform: translateY(-2px); }

/* --------------------------------------------------------------------------
   14. GRID SYSTEM
   -------------------------------------------------------------------------- */
.elementor .vs-flex > .elementor-container {
  display: flex; gap: var(--vs-gap, 16px); align-items: stretch; flex-wrap: nowrap;
}
.elementor .vs-flex > .elementor-container > .elementor-column {
  width: auto !important; flex: 1 1 0; min-width: 0;
}
.elementor .vs-flex-auto > .elementor-container > .elementor-column { flex: 0 0 auto; }
.elementor .vs-flex-between > .elementor-container { justify-content: space-between; align-items: center; }
.elementor .vs-flex-end > .elementor-container { justify-content: flex-end; }
.elementor .vs-flex-wrap > .elementor-container { flex-wrap: wrap; }

.vs-gap-8{ --vs-gap:8px; }
.vs-gap-11{ --vs-gap:11px; }
.vs-gap-12{ --vs-gap:12px; }
.vs-gap-14{ --vs-gap:14px; }
.vs-gap-16{ --vs-gap:16px; }
.vs-gap-18{ --vs-gap:18px; }
.vs-gap-20{ --vs-gap:20px; }
.vs-gap-24{ --vs-gap:24px; }
.vs-gap-30{ --vs-gap:30px; }
.vs-gap-40{ --vs-gap:40px; }
.vs-gap-50{ --vs-gap:50px; }

/* Grid Specific Ratios */
.elementor .vs-flex.vs-hero-box > .elementor-container > .elementor-column:first-child { flex: 1.1 1 0; }
.elementor .vs-flex.vs-hero-box > .elementor-container > .elementor-column:last-child { flex: 1 1 0; }
.elementor .vs-hero-left > .elementor-widget-wrap { padding-right: 0 !important; }

.elementor .vs-flex.vs-careers-grid > .elementor-container > .elementor-column:first-child { flex: .85 1 0; }
.elementor .vs-flex.vs-careers-grid > .elementor-container > .elementor-column:last-child { flex: 1.15 1 0; }

.elementor .vs-flex.vs-section-head > .elementor-container > .elementor-column:first-child { flex: 1 1 0; }
.elementor .vs-flex.vs-section-head > .elementor-container > .elementor-column:last-child { flex: 0 0 400px; }
.elementor .vs-head-right > .elementor-widget-wrap { padding-left: 0 !important; }

.elementor .vs-flex.vs-cta-box > .elementor-container > .elementor-column:first-child { flex: 1 1 auto; }
.elementor .vs-flex.vs-cta-box > .elementor-container > .elementor-column:last-child { flex: 0 0 auto; }
.elementor .vs-cta-actions .elementor-column > .elementor-widget-wrap { padding-left: 0 !important; }

/* Rows spaced with gap */
.elementor .vs-stat-row .elementor-column > .elementor-widget-wrap,
.elementor .vs-btn-row .elementor-column > .elementor-widget-wrap,
.elementor .vs-tech-row .elementor-column > .elementor-widget-wrap,
.elementor .vs-pill-group .elementor-column > .elementor-widget-wrap { padding: 0 !important; }

.elementor .vs-flex > .elementor-container > .elementor-column > .elementor-widget-wrap {
  flex-direction: column; flex-wrap: nowrap; height: 100%;
}

.elementor .vs-case-card > .elementor-widget-wrap > .vs-link-arrow { margin-top: auto !important; }

/* --------------------------------------------------------------------------
   15. RESPONSIVE QUERIES
   -------------------------------------------------------------------------- */
@media (max-width: 980px) {
  :root { --vs-gutter: 18px; }
  .vs-primary-menu { display: none; }
  .vs-hamburger { display: flex; }
  .vs-header-cta { display: none; }
  .elementor .elementor-section > .elementor-container { flex-wrap: wrap; }
  .elementor .vs-flex > .elementor-container { flex-wrap: wrap; }
  
  .vs-hero-box { padding: 26px !important; }
  .vs-hero-left > .elementor-widget-wrap { padding-right: 0 !important; padding-bottom: 28px !important; }
  .elementor .vs-hero-h1 { font-size: 30px; }
  .vs-head-right > .elementor-widget-wrap { padding-left: 0 !important; padding-top: 14px !important; }

  /* Full Width Adjustments */
  .vs-hero-box > .elementor-container > .elementor-column,
  .vs-section-head > .elementor-container > .elementor-column,
  .vs-cta-box > .elementor-container > .elementor-column,
  .elementor .vs-hero-box > .elementor-container > .elementor-column,
  .elementor .vs-section-head > .elementor-container > .elementor-column,
  .elementor .vs-careers-grid > .elementor-container > .elementor-column,
  .elementor .vs-cta-box > .elementor-container > .elementor-column {
    width: 100% !important;
    flex: 1 1 100%;
  }

  /* Half Width Adjustments */
  .vs-edge-grid > .elementor-container > .elementor-column,
  .vs-case-grid > .elementor-container > .elementor-column,
  .vs-insight-grid > .elementor-container > .elementor-column,
  .vs-process-row > .elementor-container > .elementor-column {
    flex: 1 1 calc(50% - var(--vs-gap));
    width: auto !important;
    margin-bottom: 16px;
  }

  .vs-careers-grid > .elementor-container > .elementor-column { width: 100% !important; margin-bottom: 20px; }
  .vs-cta-actions > .elementor-container { justify-content: flex-start; }
  .vs-cta-actions .elementor-column > .elementor-widget-wrap { padding: 14px 12px 0 0 !important; }
  .vs-footer-top { grid-template-columns: 1fr; gap: 32px; }
  .vs-office-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .elementor .vs-hero-h1 { font-size: 26px; }
  .vs-tech-row > .elementor-container > .elementor-column { width: 25% !important; }
  .elementor .vs-tech-row > .elementor-container { flex-wrap: nowrap; }

  /* Stack to Full Width */
  .vs-edge-grid > .elementor-container > .elementor-column,
  .vs-case-grid > .elementor-container > .elementor-column,
  .vs-insight-grid > .elementor-container > .elementor-column,
  .vs-process-row > .elementor-container > .elementor-column {
    width: 100% !important;
    flex: 1 1 100%;
  }
}

/* --------------------------------------------------------------------------
   16. INLINE CHIPS INSIDE FLEX COLUMNS
   -------------------------------------------------------------------------- */
.elementor .vs-tag,
.elementor .vs-pill,
.elementor .vs-case-stat,
.elementor .vs-story-count,
.elementor .vs-job-tag,
.elementor .vs-eyebrow-pill { width: fit-content !important; max-width: 100%; }
.elementor .vs-job-tag,
.elementor .vs-story-count { margin-left: auto !important; }

/* Trailing columns hugging content */
.elementor .vs-flex.vs-heading-row > .elementor-container > .elementor-column:last-child,
.elementor .vs-flex.vs-card-top > .elementor-container > .elementor-column:last-child,
.elementor .vs-flex.vs-job-row > .elementor-container > .elementor-column:last-child,
.elementor .vs-flex.vs-panel-head > .elementor-container > .elementor-column:last-child,
.elementor .vs-flex.vs-panel-foot > .elementor-container > .elementor-column:last-child { flex: 0 0 auto; }

.elementor .vs-head-h2 { max-width: 480px; }
.elementor .vs-head-note { max-width: 400px; }

/* Dark-mode logo swap */
.vs-logo .vs-logo-dark { display: none; }
html[data-theme="dark"] .vs-logo .vs-logo-light { display: none; }
html[data-theme="dark"] .vs-logo .vs-logo-dark { display: block; }

/* ==========================================================================
   17. INNER PAGE COMPONENTS
   ========================================================================== */
.elementor .vs-flex.vs-heading-row > .elementor-container > .elementor-column:first-child { flex: 1 1 460px; }
.elementor .vs-flex.vs-heading-row > .elementor-container > .elementor-column:last-child { flex: 1 1 360px; }
.elementor .vs-heading-row .vs-head-note { max-width: none; }

.elementor .vs-rule { border: none; border-top: 1px solid var(--vs-border-soft); margin: 0 0 12px; }

/* ---- CONTACT: inquiry form ---- */
.vs-form-panel {
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 22px !important;
}

/* ---- CONTACT: reach us cards ---- */
.vs-reach-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 26px !important;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.vs-reach-card:hover { transform: translateY(-5px); border-color: var(--vs-accent-dim); box-shadow: var(--vs-shadow-hover); }
.vs-reach-top { margin-bottom: 14px !important; }
.elementor .vs-reach-h3 { font-size: 18px; font-weight: 700; color: var(--vs-ink); }
.elementor .vs-reach-text { color: var(--vs-muted); font-size: 13.5px; line-height: 1.6; margin-bottom: 22px !important; }
.elementor .vs-icon-box-sm .elementor-icon {
  width: 38px; height: 38px; border-radius: 10px; background: var(--vs-card-soft);
  border: 1px solid var(--vs-border); color: var(--vs-accent);
  display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.elementor .vs-icon-box-sm .elementor-icon-wrapper { display: flex; justify-content: flex-end; }
.vs-reach-card:hover .vs-icon-box-sm .elementor-icon { transform: scale(1.1); }

.vs-email-row {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 10px; padding: 12px 16px; margin-top: auto;
}
.vs-email-row a { color: var(--vs-accent); font-weight: 600; font-size: 13.5px;
  text-decoration: underline; text-underline-offset: 3px; }
.vs-copy-btn {
  background: none; border: none; color: var(--vs-muted); font-size: 12.5px; font-weight: 600;
  padding: 4px 10px; border-left: 1px solid var(--vs-border); cursor: pointer; font-family: inherit;
  transition: color .2s ease;
}
.vs-copy-btn:hover { color: var(--vs-accent); }
.vs-copy-btn.is-copied { color: var(--vs-green); }

/* ---- CONTACT: office cards ---- */
.elementor .vs-flex.vs-office-section > .elementor-container > .elementor-column:first-child { flex: .9 1 0; }
.elementor .vs-flex.vs-office-section > .elementor-container > .elementor-column:last-child { flex: 1.4 1 0; }
.vs-office-section > .elementor-container { align-items: flex-start; }
.elementor .vs-office-intro { color: var(--vs-muted); font-size: 14px; line-height: 1.65; margin-bottom: 24px !important; }
.vs-office-cards { margin-bottom: 16px !important; }
.vs-office-cards:last-child { margin-bottom: 0 !important; }
.vs-office-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 14px !important; padding: 20px !important;
  transition: transform .3s ease, border-color .3s ease;
}
.vs-office-card:hover { transform: translateY(-4px); border-color: var(--vs-accent-dim); }
.elementor .vs-office-ib .elementor-icon-box-icon { margin-right: 8px; }
.elementor .vs-office-ib .elementor-icon { color: var(--vs-accent); font-size: 14px; }
.elementor .vs-office-ib .elementor-icon-box-title { font-size: 14.5px; font-weight: 700; color: var(--vs-ink); margin: 0 0 8px; }
.elementor .vs-office-ib .elementor-icon-box-description { font-size: 12.5px; color: var(--vs-muted-2); margin: 0 0 12px; }
.elementor .vs-office-desc { font-size: 12.5px; color: var(--vs-muted); line-height: 1.6; padding-left: 22px; }

/* ==========================================================================
   18. INNER PAGE COMPONENTS 
   ========================================================================== */

/* Shared */
.elementor .vs-lift { transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.elementor .vs-lift:hover { transform: translateY(-5px); border-color: var(--vs-accent-dim); box-shadow: var(--vs-shadow-hover); }
.elementor .vs-lift-sm { transition: transform .25s ease, border-color .25s ease; }
.elementor .vs-lift-sm:hover { transform: translateY(-3px); border-color: var(--vs-accent-dim); }

.elementor .vs-icon-chip .elementor-icon {
  width: 34px; height: 34px; border-radius: 9px;
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  color: var(--vs-accent); display: flex; align-items: center; justify-content: center;
  font-size: 15px; transition: transform .3s cubic-bezier(.34,1.56,.64,1), background .2s ease, color .2s ease;
}
.elementor .vs-icon-chip .elementor-icon-wrapper { display: flex; justify-content: flex-end; }
.elementor .vs-icon-chip-left .elementor-icon-wrapper { justify-content: flex-start; }
.elementor .vs-lift:hover .vs-icon-chip .elementor-icon,
.elementor .vs-lift-sm:hover .vs-icon-chip .elementor-icon { transform: scale(1.12); }

.vs-info-cell, .vs-facet-cell {
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 12px !important; padding: 16px !important;
}
.vs-info-cell-panel { background: var(--vs-panel) !important; }
.elementor .vs-cell-label { font-size: 11px; color: var(--vs-muted-2); margin-bottom: 6px !important; }
.elementor .vs-cell-label-caps {
  font-size: 10.5px; letter-spacing: .6px; text-transform: uppercase;
  color: var(--vs-muted-2); font-weight: 700; margin-bottom: 8px !important;
}
.elementor .vs-cell-value { font-size: 14px; font-weight: 700; color: var(--vs-ink); margin-bottom: 4px !important; }
.elementor .vs-cell-value-lg { font-size: 13.5px; font-weight: 700; color: var(--vs-ink); margin-bottom: 6px !important; }
.elementor .vs-cell-text { font-size: 12px; color: var(--vs-muted); line-height: 1.55; }
.elementor .vs-cell-text-ink { font-size: 12px; color: var(--vs-ink); line-height: 1.55; }

.vs-side-panel {
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 22px !important;
}
.elementor .vs-panel-eyebrow { font-size: 11px; color: var(--vs-muted-2); margin-bottom: 8px !important; }
.elementor .vs-panel-h4 { font-size: 16px; font-weight: 700; color: var(--vs-ink); margin-bottom: 18px !important; }
.elementor .vs-panel-intro { color: var(--vs-muted); font-size: 13px; line-height: 1.6; margin-bottom: 20px !important; }

/* ---- ABOUT ---- */
.elementor .vs-story-h2 { font-size: 26px; font-weight: 700; color: var(--vs-ink); margin-bottom: 18px !important; max-width: 460px; }
.elementor .vs-story-text { color: var(--vs-muted); font-size: 14.5px; line-height: 1.7; margin-bottom: 16px !important; }
.vs-story-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 26px !important;
}
.vs-story-card-top { margin-bottom: 16px !important; }
.elementor .vs-story-card-h4 { font-size: 16px; font-weight: 700; color: var(--vs-ink); }

.vs-vm-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 28px !important;
}
.vs-vm-top { margin-bottom: 8px !important; }
.vs-vm-top > .elementor-container { align-items: flex-start; }
.elementor .vs-vm-card .vs-eyebrow { margin-bottom: 6px !important; }
.elementor .vs-vm-h3 { font-size: 18px; font-weight: 700; color: var(--vs-ink); margin-bottom: 18px !important; }
.elementor .vs-vm-h5 { font-size: 13.5px; font-weight: 700; color: var(--vs-ink); margin-bottom: 8px !important; }
.elementor .vs-vm-text { color: var(--vs-muted); font-size: 13.5px; line-height: 1.65; margin-bottom: 16px !important; }
.elementor .vs-bullets ul { list-style: none; padding: 0; margin: 0; }
.elementor .vs-bullets li { color: var(--vs-muted); font-size: 13.5px; line-height: 1.7; padding-left: 16px; position: relative; }
.elementor .vs-bullets li::before { content: '\2022'; position: absolute; left: 0; color: var(--vs-accent); }
.elementor .vs-bullets b { color: var(--vs-ink); }
.vs-vm-connector { display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 24px 0; min-height: 120px; }
.vs-vm-connector .dot-top { width: 12px; height: 12px; border-radius: 50%; background: var(--vs-accent); }
.vs-vm-connector .line { width: 1px; flex: 1; background: var(--vs-border); }
.vs-vm-connector .dot-bottom { width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--vs-accent); }
.elementor .vs-flex.vs-vm-grid > .elementor-container > .elementor-column:nth-child(2) { flex: 0 0 40px; }
.elementor .vs-value-text { color: var(--vs-muted); font-size: 13px; line-height: 1.6; }

.elementor .vs-engage-h3 { font-size: 20px; font-weight: 700; color: var(--vs-ink); margin-bottom: 12px !important; }
.elementor .vs-engage-text { color: var(--vs-muted); font-size: 13.5px; line-height: 1.65; margin-bottom: 18px !important; }
.elementor .vs-tag-pill {
  display: inline-block; background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 8px; padding: 8px 14px; font-size: 12.5px; color: var(--vs-muted); line-height: 1.3;
  width: fit-content !important;
  transition: border-color .2s ease, color .2s ease, transform .2s ease;
}
.elementor .vs-tag-pill:hover { border-color: var(--vs-accent-dim); color: var(--vs-ink); transform: translateY(-2px); }
.vs-www-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 14px !important; padding: 22px !important;
}
.elementor .vs-www-h4 { font-size: 15.5px; font-weight: 700; color: var(--vs-ink); margin-bottom: 14px !important; }

/* ---- OFFERINGS ---- */
.vs-cap-item {
  background: var(--vs-panel); border: 1px solid var(--vs-border);
  border-radius: 12px !important; padding: 14px 16px !important; margin-bottom: 12px !important;
  transition: border-color .25s ease, transform .25s ease;
}
.vs-cap-item:last-child { margin-bottom: 0 !important; }
.vs-cap-item:hover { border-color: var(--vs-accent-dim); transform: translateX(3px); }
.elementor .vs-cap-item-b { font-size: 13.5px; font-weight: 700; color: var(--vs-ink); margin-bottom: 4px !important; }
.elementor .vs-cap-item-text { font-size: 12px; color: var(--vs-muted); line-height: 1.5; }
.elementor .vs-cap-panel-h4 { font-size: 15px; font-weight: 700; line-height: 1.4; color: var(--vs-ink); margin-bottom: 20px !important; max-width: 280px; }

.vs-snap-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 14px !important; padding: 20px !important;
}
.vs-snap-top { margin-bottom: 12px !important; }
.elementor .vs-snap-label { font-size: 11.5px; color: var(--vs-muted-2); }
.elementor .vs-snap-h4 { font-size: 15px; font-weight: 700; color: var(--vs-ink); margin-bottom: 10px !important; }
.elementor .vs-snap-text { color: var(--vs-muted); font-size: 12.5px; line-height: 1.55; }
.vs-engage-card, .vs-enable-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 14px !important; padding: 18px !important;
}
.elementor .vs-engage-tag {
  display: inline-block; font-size: 10.5px; color: var(--vs-muted-2);
  border: 1px solid var(--vs-border-soft); border-radius: 6px; padding: 3px 8px;
  margin-bottom: 12px !important; line-height: 1.3; width: fit-content !important;
}
.elementor .vs-mini-h5 { font-size: 14px; font-weight: 700; color: var(--vs-ink); margin-bottom: 8px !important; line-height: 1.35; }
.elementor .vs-mini-text { font-size: 12px; color: var(--vs-muted); line-height: 1.6; }
.elementor .vs-col-h2 { font-size: 22px; font-weight: 700; color: var(--vs-ink); margin-bottom: 24px !important; max-width: 360px; letter-spacing: -.3px; }

/* ---- INSIGHTS / BLOGS ---- */
.vs-coverage-cell {
  background: var(--vs-panel); border: 1px solid var(--vs-border);
  border-radius: 12px !important; padding: 16px !important;
}
.elementor .vs-coverage-b { font-size: 13.5px; font-weight: 700; color: var(--vs-ink); margin-bottom: 6px !important; }
.elementor .vs-coverage-text { font-size: 11.5px; color: var(--vs-muted); line-height: 1.5; }

.vs-ins-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 22px !important; margin-bottom: 16px !important;
}
.vs-ins-card:last-child { margin-bottom: 0 !important; }
.vs-ins-top { margin-bottom: 10px !important; }
.vs-ins-top > .elementor-container { align-items: flex-start; }
.elementor .vs-ins-h5 { font-size: 15px; font-weight: 700; color: var(--vs-ink); }
.elementor .vs-ins-text { color: var(--vs-muted); font-size: 13px; line-height: 1.6; }

.vs-library-panel {
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 20px !important; padding: 24px !important;
}
.vs-library-controls { margin-bottom: 24px !important; }
.vs-library-controls > .elementor-container { align-items: center; }
.vs-search-input {
  width: 100%; background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 10px; padding: 12px 16px; font-size: 13.5px; color: var(--vs-ink); font-family: inherit;
}
.vs-search-input::placeholder { color: var(--vs-muted-2); }
.vs-search-input:focus { outline: none; border-color: var(--vs-accent); box-shadow: 0 0 0 3px var(--vs-accent-glow); }
.elementor .vs-filter-chip {
  display: inline-block; background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 9px; padding: 9px 16px; font-size: 13px; font-weight: 600;
  color: var(--vs-muted); cursor: pointer; line-height: 1.3; width: fit-content !important;
  transition: all .2s ease;
}
.elementor .vs-filter-chip:hover { border-color: var(--vs-accent-dim); color: var(--vs-ink); }
.elementor .vs-filter-chip.vs-chip-on {
  background: var(--vs-accent); border-color: var(--vs-accent); color: var(--vs-on-accent);
}

.vs-article-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 22px !important;
}
.vs-article-meta { margin-bottom: 14px !important; }
.vs-article-meta > .elementor-container { align-items: center; }
.elementor .vs-article-tag {
  display: inline-block; background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 7px; padding: 5px 11px; font-size: 11px; font-weight: 700;
  color: var(--vs-accent); text-transform: uppercase; letter-spacing: .3px;
  line-height: 1.3; width: fit-content !important;
}
.elementor .vs-article-time { font-size: 12px; color: var(--vs-muted-2); }
.elementor .vs-article-h3 { font-size: 16px; font-weight: 700; line-height: 1.4; color: var(--vs-ink); margin-bottom: 12px !important; }
.elementor .vs-article-text { color: var(--vs-muted); font-size: 13px; line-height: 1.6; margin-bottom: 16px !important; }
.elementor .vs-article-arrow .elementor-icon {
  width: 34px; height: 34px; border-radius: 9px; background: var(--vs-card-soft);
  border: 1px solid var(--vs-border); color: var(--vs-accent);
  display: flex; align-items: center; justify-content: center; font-size: 14px;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), background .2s ease, color .2s ease;
}
.vs-article-card:hover .vs-article-arrow .elementor-icon {
  transform: scale(1.1); background: var(--vs-accent); color: var(--vs-on-accent);
}
.elementor .vs-sub-tag {
  display: inline-block; background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 7px; padding: 5px 11px; font-size: 11px; color: var(--vs-muted);
  line-height: 1.3; width: fit-content !important;
}
.vs-article-foot { border-top: 1px solid var(--vs-border-soft); padding-top: 16px !important; margin-top: auto !important; }
.vs-article-foot > .elementor-container { align-items: center; }
.elementor .vs-article-byline { font-size: 12px; color: var(--vs-muted-2); }
.elementor .vs-article-link .elementor-button {
  background: none !important; border: 0 !important; padding: 0 !important;
  font-size: 13px !important; font-weight: 700 !important; color: var(--vs-accent) !important;
}

.vs-find-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 22px !important;
}
.vs-find-top { margin-bottom: 12px !important; }
.vs-find-top > .elementor-container { align-items: center; }
.elementor .vs-find-h3 { font-size: 15.5px; font-weight: 700; color: var(--vs-ink); }
.elementor .vs-find-text { color: var(--vs-muted); font-size: 12.5px; line-height: 1.6; margin-bottom: 14px !important; }

.vs-stat-cell {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 14px !important; padding: 18px 20px !important;
}
.elementor .vs-stat-num { font-size: 20px; font-weight: 800; color: var(--vs-accent); margin-bottom: 8px !important; }
.elementor .vs-stat-num.elementor-widget-heading .elementor-heading-title { font-size: inherit; font-weight: inherit; color: var(--vs-accent); line-height: 1.2; letter-spacing: -0.3px; }
.elementor .vs-stat-cell-text { font-size: 12.5px; color: var(--vs-muted); line-height: 1.55; }

.vs-topic-row {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 22px 26px !important; margin-bottom: 14px !important;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.vs-topic-row:last-child { margin-bottom: 0 !important; }
.vs-topic-row:hover { transform: translateX(4px); border-color: var(--vs-accent-dim); box-shadow: var(--vs-shadow-hover); }
.vs-topic-row > .elementor-container { align-items: flex-start; }
.elementor .vs-topic-h3 { font-size: 16px; font-weight: 700; color: var(--vs-ink); margin-bottom: 8px !important; }
.elementor .vs-topic-text { color: var(--vs-muted); font-size: 13px; line-height: 1.6; max-width: 640px; }
.elementor .vs-topic-count {
  font-size: 12.5px; color: var(--vs-muted-2); font-weight: 600; white-space: nowrap;
  text-align: right; padding-top: 2px;
}
.vs-mini-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 14px !important; padding: 18px !important;
}
.vs-newsletter-panel {
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 24px !important;
}
.elementor .vs-check-line {
  font-size: 13px; color: var(--vs-ink); line-height: 1.55;
  padding-left: 22px; position: relative; margin-bottom: 14px !important;
}
.elementor .vs-check-line::before { content: '\2713'; position: absolute; left: 0; color: var(--vs-accent); font-weight: 700; }
.vs-newsletter-form { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.vs-newsletter-form input {
  flex: 1 1 220px; background: var(--vs-panel); border: 1px solid var(--vs-border);
  border-radius: 10px; padding: 12px 15px; font-size: 13.5px; color: var(--vs-ink); font-family: inherit;
}
.vs-newsletter-form input::placeholder { color: var(--vs-muted-2); }
.vs-newsletter-form input:focus { outline: none; border-color: var(--vs-accent); box-shadow: 0 0 0 3px var(--vs-accent-glow); }
.vs-newsletter-form button {
  background: var(--vs-accent); color: var(--vs-on-accent); border: none; border-radius: 10px;
  padding: 12px 22px; font-weight: 700; font-size: 13.5px; white-space: nowrap; cursor: pointer;
  font-family: inherit; transition: background .2s ease, transform .2s ease;
}
.vs-newsletter-form button:hover { background: var(--vs-accent-bright); transform: translateY(-2px); }

/* ---- SUCCESS STORIES ---- */
.vs-impact-cell {
  background: var(--vs-panel); border: 1px solid var(--vs-border);
  border-radius: 12px !important; padding: 16px !important;
}
.elementor .vs-impact-b { font-size: 15px; font-weight: 800; color: var(--vs-accent); margin-bottom: 4px !important; }
.elementor .vs-impact-sub { font-size: 11px; color: var(--vs-muted-2); font-weight: 600; margin-bottom: 8px !important; }
.elementor .vs-impact-desc { font-size: 11.5px; color: var(--vs-muted); line-height: 1.55; }

.vs-case-story {
  background: var(--vs-panel); border: 1px solid var(--vs-border);
  border-radius: 20px !important; padding: 28px !important; margin-bottom: 16px !important;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.vs-case-story:last-child { margin-bottom: 0 !important; }
.vs-case-story:hover { transform: translateY(-4px); border-color: var(--vs-accent-dim); box-shadow: var(--vs-shadow-hover); }
.vs-story-top { margin-bottom: 18px !important; }
.vs-story-top > .elementor-container { align-items: flex-start; }
.elementor .vs-story-tag {
  display: inline-block; background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 7px; padding: 6px 12px; font-size: 11.5px; font-weight: 600;
  color: var(--vs-muted); line-height: 1.3; width: fit-content !important;
}
.elementor .vs-case-story-h3 { font-size: 19px; font-weight: 700; color: var(--vs-ink); margin-bottom: 12px !important; letter-spacing: -.2px; }
.elementor .vs-case-story-text { color: var(--vs-muted); font-size: 13.5px; line-height: 1.65; margin-bottom: 22px !important; max-width: 920px; }
.vs-stat-block {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 12px !important; padding: 16px !important;
}
.elementor .vs-stat-block-b { font-size: 16px; font-weight: 800; color: var(--vs-ink); margin-bottom: 6px !important; }
.elementor .vs-stat-block-text { font-size: 12px; color: var(--vs-muted); line-height: 1.5; }
.elementor .vs-btn-story .elementor-button {
  background: var(--vs-accent) !important; color: var(--vs-on-accent) !important;
  border: 1px solid var(--vs-accent) !important; border-radius: 8px !important;
  padding: 9px 16px !important; font-size: 12.5px !important; font-weight: 700 !important;
}

/* ---- CAREERS ---- */
.vs-why-box {
  background: var(--vs-panel); border: 1px solid var(--vs-border);
  border-radius: 22px !important; padding: 32px !important;
}
.elementor .vs-why-h4 { font-size: 20px; font-weight: 700; line-height: 1.35; color: var(--vs-ink); margin-bottom: 22px !important; letter-spacing: -.3px; }
.vs-why-item {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 13px !important; padding: 16px 18px !important; margin-bottom: 12px !important;
  transition: border-color .25s ease, transform .25s ease;
}
.vs-why-item:last-child { margin-bottom: 0 !important; }
.vs-why-item:hover { border-color: var(--vs-accent-dim); transform: translateX(3px); }
.vs-why-item > .elementor-container { align-items: flex-start; }
.elementor .vs-flex.vs-why-item > .elementor-container > .elementor-column:first-child { flex: 0 0 auto; }
.elementor .vs-why-h5 { font-size: 13.5px; font-weight: 700; color: var(--vs-ink); margin-bottom: 4px !important; }
.elementor .vs-why-text { font-size: 12px; color: var(--vs-muted); line-height: 1.55; }

.vs-culture-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 16px !important; padding: 22px !important;
}
.vs-culture-top { margin-bottom: 14px !important; }
.vs-culture-top > .elementor-container { align-items: flex-start; }
.elementor .vs-culture-step { font-size: 11px; font-weight: 700; color: var(--vs-muted-2); letter-spacing: .4px; text-transform: uppercase; }
.elementor .vs-culture-h3 { font-size: 15.5px; font-weight: 700; color: var(--vs-ink); margin-bottom: 10px !important; }
.elementor .vs-culture-text { color: var(--vs-muted); font-size: 12.5px; line-height: 1.6; }

.vs-intern-card, .vs-people-card, .vs-loc-card {
  background: var(--vs-card); border: 1px solid var(--vs-border);
}
.vs-intern-card { border-radius: 16px !important; padding: 22px !important; }
.vs-people-card { border-radius: 14px !important; padding: 16px 18px !important; margin-bottom: 12px !important; }
.vs-people-card:last-child { margin-bottom: 0 !important; }
.vs-loc-card { border-radius: 14px !important; padding: 14px 16px !important; margin-bottom: 12px !important; }
.vs-loc-card:last-child { margin-bottom: 0 !important; }
.vs-loc-card > .elementor-container { align-items: center; }
.elementor .vs-triple-h2 { font-size: 20px; font-weight: 700; color: var(--vs-ink); margin-bottom: 20px !important; letter-spacing: -.2px; line-height: 1.35; }
.elementor .vs-intern-h5, .elementor .vs-people-h5 { font-size: 14px; font-weight: 700; color: var(--vs-ink); margin-bottom: 8px !important; }
.elementor .vs-intern-text { font-size: 12.5px; color: var(--vs-muted); line-height: 1.6; margin-bottom: 16px !important; }
.elementor .vs-people-text { font-size: 11.5px; color: var(--vs-muted); line-height: 1.55; }
.elementor .vs-loc-h6 { font-size: 13.5px; font-weight: 700; color: var(--vs-ink); margin-bottom: 4px !important; }
.elementor .vs-loc-sub { font-size: 11.5px; color: var(--vs-muted); }
.elementor .vs-btn-map .elementor-button {
  background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important;
  color: var(--vs-ink) !important; border-radius: 8px !important;
  padding: 8px 13px !important; font-size: 11.5px !important; font-weight: 700 !important;
}
.elementor .vs-btn-map .elementor-button:hover {
  background: var(--vs-accent) !important; border-color: var(--vs-accent) !important; color: var(--vs-on-accent) !important;
}

.elementor .vs-flex.vs-careers-hero > .elementor-container > .elementor-column:first-child { flex: 1.15 1 0; }
.elementor .vs-flex.vs-careers-hero > .elementor-container > .elementor-column:last-child { flex: 1 1 0; }
.vs-careers-hero > .elementor-container { align-items: stretch; }

.elementor .vs-row-mb { margin-bottom: var(--vs-gap, 16px) !important; }
.elementor .vs-hero-inner { margin-bottom: 0 !important; }
.elementor .vs-hero-inner > .elementor-widget-wrap { position: relative; z-index: 2; }
.elementor .vs-why-box > .elementor-widget-wrap { position: relative; z-index: 2; }

.elementor .vs-flex.vs-flex-between > .elementor-container > .elementor-column:last-child { flex: 0 0 auto; }
.elementor .vs-flex.vs-story-top > .elementor-container > .elementor-column:first-child { flex: 1 1 auto; }

.elementor .vs-vm-grid > .elementor-container { align-items: stretch; }
.elementor .vs-vm-grid .elementor-widget-html,
.elementor .vs-vm-grid .elementor-widget-html > .elementor-widget-container { height: 100%; }
.vs-vm-connector { height: 100%; }

.elementor .elementor-section.elementor-section-boxed > .elementor-container { max-width: 1176px; }

.vs-primary-menu > ul > li > a { white-space: nowrap; }

.vs-header .vs-logo img,
.vs-header img.custom-logo,
.vs-header img.vs-logo-light,
.vs-header img.vs-logo-dark { height: 26px !important; width: auto !important; max-width: 190px; object-fit: contain; }
.vs-footer img.vs-logo-light,
.vs-footer img.vs-logo-dark,
.vs-footer img.custom-logo { height: 26px !important; width: auto !important; }

/* --------------------------------------------------------------------------
   19. ELEMENTOR GLOBAL KIT
   -------------------------------------------------------------------------- */
.elementor .elementor-widget-heading .elementor-heading-title { color: var(--vs-ink); }
.elementor .elementor-widget-text-editor,
.elementor .elementor-widget-text-editor p,
.elementor .elementor-widget-text-editor li { color: var(--vs-muted); }
.elementor .elementor-widget-icon-box .elementor-icon-box-title { color: var(--vs-ink); }
.elementor .elementor-widget-icon-box .elementor-icon-box-description { color: var(--vs-muted); }

.elementor [class*="vs-"] > .elementor-widget-container > .elementor-heading-title,
.elementor [class*="vs-"] > .elementor-widget-container > p {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
}

.elementor { font-family: var(--vs-font); }
body.elementor-editor-active,
body.elementor-editor-preview { background: var(--vs-bg); color: var(--vs-ink); }

/* ==========================================================================
   20. LEADERSHIP SECTION OVERRIDES (The "Nuclear" Fix)
   ========================================================================== */

/* 1. Outer Wrapper */

/* 2. Force Strict Grid & Kill Elementor's Wrapper Styles */

/* 3. Force Columns to Fill the Grid (Prevents vertical squishing) */

/* 4. Individual Cards */

/* Strip padding from inner Elementor wrappers */

/* 5. Top Row Container (Avatar + Role) */

/* 6. Avatar Circle - Hardcoded to never shrink */

/* 7. Role Text (Pushed Right, Never Wraps) */

/* 8. Name */

/* 9. Description */

/* 10. Tags Row (Pushed to bottom) */

/* Pill Tags */

/* ==========================================================================
   Responsive Settings
   ========================================================================== */

/* ==========================================================================
   21. PARTNERS - COMPACT  (v2.3)
   --------------------------------------------------------------------------
   The partners strip was reading much taller than its content. Two things
   caused it: the shared rule in section 14 gives every .vs-flex column's
   widget-wrap `height: 100%`, which stretched the logo boxes to the height of
   the tallest column instead of hugging their own text, and any min-height
   Elementor writes for the section was left in place on top of that. Both are
   neutralised here, and the paddings are pulled in. Purely a size change - 
   colours, borders, radii, the float animation and the hover lift are all
   exactly as they were.
   ========================================================================== */
/* Stop the full-height stretch that produced the empty space. */
/* The logo tiles are flex items of the row; left to themselves they stretch to
   the height of the tallest column (the heading), which is where most of the
   empty space came from. Centred and content-sized, they stay 38px tall. */

/* Tablet: heading above the logos, logos left-aligned, still compact. */

/* Phone: two logos per line rather than four cramped ones. */


/* ==========================================================================
   22. RESPONSIVE OVERHAUL  (v2.3)
   --------------------------------------------------------------------------
   Everything below either applies at every width but cannot change a desktop
   layout (overflow guards on media, word wrapping), or sits inside a media
   query capped at 1080px. The desktop composition above 1080px is untouched.

   The list of "inline rows" in 22.3 is the important part: those are the small
   two-or-three-item rows that live INSIDE a card (a label and an icon, a job
   title and its tag, a row of stat chips). They must keep sitting side by side
   at every width, so they are excluded from the generic stacking rule that
   turns page-level columns into a single column.
   ========================================================================== */

/* --- 22.1 Overflow guards ------------------------------------------------ */
/* Anything the theme stretches to `width: 100%` has to measure its padding and
   border inside that 100%, otherwise it sticks out of its parent by the width
   of its own padding. Elementor already applies border-box inside its own
   markup, so this is a no-op there and a real fix everywhere else - the footer
   roadmap button and the form fields are both width:100% with 20px of padding. */
.vs-btn,
.elementor .elementor-button,
.vs-roadmap-card .vs-btn,
.vs-search-input,
.vs-newsletter-form input, .vs-newsletter-form button,
.vs-hsearch-input { box-sizing: border-box; }

img, svg, video, canvas, audio, iframe, embed, object { max-width: 100%; }
img, video { height: auto; }
iframe, embed, object { max-width: 100% !important; }
.vs-page-wrap pre, .vs-page-wrap code { max-width: 100%; overflow-x: auto; }
.elementor .elementor-column { min-width: 0; }

/* --- 22.2 Tablet: 1080px and below --------------------------------------- */
@media (max-width: 1080px) {
  :root { --vs-gutter: 24px; }

  .vs-page-wrap { padding-top: var(--vs-space-page-top); }
  .elementor > .elementor-section-wrap > .elementor-section,
  .elementor > .elementor-section { margin-bottom: var(--vs-space-section); }

  /* Wrapped columns need vertical spacing; the gap replaces the per-column
     bottom margins the old rules used, so nothing is double-spaced. */
  .elementor .elementor-section > .elementor-container,
  .elementor .vs-flex > .elementor-container { flex-wrap: wrap; row-gap: var(--vs-gap, 16px); }
  .vs-edge-grid > .elementor-container > .elementor-column,
  .vs-case-grid > .elementor-container > .elementor-column,
  .vs-insight-grid > .elementor-container > .elementor-column,
  .vs-process-row > .elementor-container > .elementor-column,
  .vs-careers-grid > .elementor-container > .elementor-column { margin-bottom: 0; }

  /* Three-and-more-across card grids become two-across. */
  .elementor .vs-edge-grid > .elementor-container > .elementor-column,
  .elementor .vs-case-grid > .elementor-container > .elementor-column,
  .elementor .vs-insight-grid > .elementor-container > .elementor-column,
  .elementor .vs-process-row > .elementor-container > .elementor-column {
    flex: 1 1 calc(50% - var(--vs-gap, 16px)) !important;
    width: auto !important;
    max-width: 100%;
  }

  .elementor h1, .elementor .vs-hero-h1 { font-size: clamp(26px, 4.6vw, 34px); }
  .elementor h2, .elementor .vs-head-h2, .elementor .vs-story-h2 { font-size: clamp(21px, 3.2vw, 26px); }
  .elementor .vs-head-h2, .elementor .vs-head-note { max-width: none; }

  .vs-hero-box { padding: 30px !important; margin-bottom: var(--vs-space-section) !important; }
  .vs-why-box { padding: 26px !important; }
  .vs-cta-box { padding: 26px 24px !important; }
  .vs-process-card { padding: 24px !important; }
  .vs-library-panel{ padding: 20px !important; }

  /* The vision/mission connector is a decorative 40px column - at tablet and
     below it is just an empty gap, so it goes away. */
  .elementor .vs-flex.vs-vm-grid > .elementor-container > .elementor-column:nth-child(2) { display: none; }
}

/* --- 22.2b Tablet stacking: 980px and below -------------------------------
   Section 15 already tried to stack these at 980px, but it only marked `width`
   as !important. These are flex items, so their `flex-basis: 0` from the ratio
   rules in section 14 - which are more specific - kept winning and the columns
   stayed side by side. Restating the intent on `flex` itself is what actually
   makes them stack. */
@media (max-width: 980px) {
  .elementor .vs-hero-box > .elementor-container > .elementor-column,
  .elementor .vs-section-head > .elementor-container > .elementor-column,
  .elementor .vs-heading-row > .elementor-container > .elementor-column,
  .elementor .vs-careers-grid > .elementor-container > .elementor-column,
  .elementor .vs-careers-hero > .elementor-container > .elementor-column,
  .elementor .vs-office-section > .elementor-container > .elementor-column,
  .elementor .vs-vm-grid > .elementor-container > .elementor-column,
  .elementor .vs-cta-box > .elementor-container > .elementor-column {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .elementor .vs-hero-left > .elementor-widget-wrap { padding-right: 0 !important; }
  .elementor .vs-head-right > .elementor-widget-wrap { padding-left: 0 !important; }
}

/* --- 22.3 Phone: 767px and below ----------------------------------------- */
@media (max-width: 767px) {
  :root { --vs-gutter: 18px; }

  .vs-page-wrap { padding: var(--vs-space-page-top) var(--vs-gutter) 0; }
  .elementor > .elementor-section-wrap > .elementor-section,
  .elementor > .elementor-section { margin-bottom: var(--vs-space-section); }

  /* Page-level columns stack. The :not() chain protects the small in-card
     rows listed in the comment at the top of this section. */
  .elementor .elementor-section > .elementor-container > .elementor-column,
  .elementor .vs-flex > .elementor-container > .elementor-column {
    max-width: 100%;
  }
  .elementor .elementor-section:not(.vs-card-top):not(.vs-comp-top):not(.vs-panel-head):not(.vs-panel-foot):not(.vs-filter-row):not(.vs-stat-row):not(.vs-btn-row):not(.vs-tech-row):not(.vs-case-stats):not(.vs-pill-group):not(.vs-partners-row):not(.vs-cta-actions):not(.vs-leader-top):not(.vs-leader-tags):not(.vs-article-meta):not(.vs-article-foot):not(.vs-benefit-top):not(.vs-testimonial-top):not(.vs-story-top):not(.vs-find-top):not(.vs-reach-top):not(.vs-role-top):not(.vs-role-tags):not(.vs-culture-top):not(.vs-ins-top):not(.vs-cap-top):not(.vs-snap-top):not(.vs-vm-top):not(.vs-story-card-top):not(.vs-form-panel-top):not(.vs-library-controls):not(.vs-why-item):not(.vs-loc-card):not(.vs-job-row):not(.vs-topic-row) > .elementor-container > .elementor-column {
    flex: 1 1 100% !important;
    width: 100% !important;
  }

  /* Two-across card grids go single file. */
  .elementor .vs-edge-grid > .elementor-container > .elementor-column,
  .elementor .vs-case-grid > .elementor-container > .elementor-column,
  .elementor .vs-insight-grid > .elementor-container > .elementor-column,
  .elementor .vs-process-row > .elementor-container > .elementor-column {
    flex: 1 1 100% !important;
    width: 100% !important;
  }

  /* Long unbroken strings (URLs, code, compound words) must not push the page
     sideways. */
  .vs-page-wrap h1, .vs-page-wrap h2, .vs-page-wrap h3, .vs-page-wrap h4,
  .vs-page-wrap h5, .vs-page-wrap h6, .vs-page-wrap p, .vs-page-wrap li,
  .vs-page-wrap a, .vs-footer p, .vs-footer a, .vs-footer h6 { overflow-wrap: break-word; }

  /* Wide content scrolls inside its own box instead of widening the page. */
  .vs-page-wrap table { display: block; width: 100%; max-width: 100%; overflow-x: auto; }

  /* Side padding on every panel comes down a notch. */
  .vs-hero-box { padding: 22px !important; border-radius: 18px !important; margin-bottom: var(--vs-space-section) !important; }
  .vs-hero-left > .elementor-widget-wrap { padding-right: 0 !important; padding-bottom: 22px !important; }
  .vs-tech-panel { padding: 18px !important; }
  .vs-edge-card { padding: 18px !important; }
  .vs-case-card, .vs-insight-card { padding: 18px !important; }
  .vs-process-card { padding: 20px 18px !important; }
  .vs-careers-card { padding: 20px 18px !important; }
  .vs-cta-box { padding: 22px 20px !important; }
  .vs-why-box { padding: 20px !important; border-radius: 18px !important; }
  .vs-case-story { padding: 20px !important; border-radius: 16px !important; }
   .vs-vm-card, .vs-story-card, .vs-reach-card { padding: 20px !important; }
  .vs-form-panel, .vs-side-panel, .vs-newsletter-panel { padding: 18px !important; }
  .vs-article-card,
  .vs-intern-card, .vs-find-card, .vs-mini-card, .vs-ins-card { padding: 18px !important; }
  .vs-topic-row { padding: 18px !important; }
  .vs-job-row { padding: 16px 18px !important; }
  .vs-library-panel{ padding: 16px !important; border-radius: 16px !important; }

  /* Section heads: title, then note, no side-by-side squeeze. */
  .vs-section-head { margin-bottom: var(--vs-space-head) !important; }
  .vs-head-right > .elementor-widget-wrap { padding-left: 0 !important; padding-top: 10px !important; }
  .elementor .vs-flex.vs-section-head > .elementor-container > .elementor-column:last-child { flex: 1 1 100% !important; }
  .elementor .vs-flex.vs-heading-row > .elementor-container > .elementor-column { flex: 1 1 100% !important; }

  /* Hero stats: three across on a phone rather than one long column. */
  .vs-stat-row > .elementor-container { flex-wrap: wrap; gap: 16px 22px; }

  /* Job rows keep the title and the tag on one line but let the tag drop
     underneath when there is genuinely no room. */
  .vs-job-row > .elementor-container { flex-wrap: wrap; row-gap: 10px; }
  .elementor .vs-job-tag { margin-left: 0 !important; }
  .elementor .vs-job-tag-wrap { text-align: left; }

  .vs-topic-row > .elementor-container { flex-wrap: wrap; row-gap: 8px; }
  .elementor .vs-topic-count { text-align: left; }
  .elementor .vs-topic-text { max-width: none; }

  /* Right-aligned trailing content reads better flush left once stacked. */
  .elementor .vs-cta-actions > .elementor-container{ justify-content: flex-start; }
  .elementor .vs-align-right, .elementor .vs-panel-note { text-align: left; }

  .vs-email-row { flex-wrap: wrap; gap: 8px; }
  .vs-copy-btn { border-left: 0; padding-left: 0; }
  .vs-newsletter-form { flex-direction: column; align-items: stretch; }
  .vs-newsletter-form button { width: 100%; }

  /* Footer */
  .vs-footer { padding: 40px 0 24px; margin-top: var(--vs-space-section); }
  .vs-footer-top { gap: 28px; margin-bottom: 30px; }
  .vs-footer-bottom { flex-direction: column; align-items: flex-start; gap: 14px; }
  .vs-roadmap-card { padding: 18px; }

  /* Comfortable tap targets. */
  .vs-btn, .elementor .vs-btn-primary .elementor-button,
  .elementor .vs-btn-secondary .elementor-button { min-height: 44px; }
  .vs-social a { width: 34px; height: 34px; }
}

/* --- 22.4 Small phones: 560px and below ---------------------------------- */
@media (max-width: 560px) {
  .elementor .vs-hero-h1 { font-size: clamp(22px, 7vw, 28px); }
  .elementor .vs-lede { max-width: none; }

  /* Button rows go full width so the two CTAs do not end up half a word wide. */
  .vs-btn-row > .elementor-container { flex-direction: column; align-items: stretch; gap: 10px; }
  .vs-btn-row .elementor-column { width: 100% !important; flex: 1 1 100% !important; }
  .vs-btn-row .elementor-button-wrapper,
  .vs-btn-row .vs-btn { display: block; width: 100%; }
  .vs-btn-row .elementor-button { width: 100%; }

  .vs-cta-actions > .elementor-container { gap: 10px; }
  .vs-cta-actions .elementor-column { width: 100% !important; flex: 1 1 100% !important; }
  .vs-cta-actions .elementor-button-wrapper { display: block; text-align: left; }
  .vs-cta-actions .elementor-button { width: 100%; }

  /* Stat chips and filter pills wrap rather than scroll off the edge. */
  
  .vs-pill-group > .elementor-container { flex-wrap: wrap; gap: 8px; }
  .vs-library-controls > .elementor-container { flex-wrap: wrap; row-gap: 12px; }

  .elementor .vs-tech-node { font-size: 9.5px; padding: 4px; }
  .vs-tech-row .elementor-column > .elementor-widget-wrap { padding: 0 4px !important; }
}

/* --- 22.5 Very small phones: 380px and below ----------------------------- */
@media (max-width: 380px) {
  :root { --vs-gutter: 14px; }
  .vs-hero-box { padding: 18px !important; }
  .vs-edge-card, .vs-case-card, .vs-insight-card, .vs-article-card { padding: 16px !important; }
  .elementor .vs-tech-node { font-size: 8.5px; }
  .vs-stat-row > .elementor-container { gap: 14px 18px; }
  .elementor .vs-stat-value { font-size: 19px; }
}

/* --- 22.6 Touch devices --------------------------------------------------
   Hover lifts and slides are a mouse affordance. On a touch screen they latch
   after a tap and the sideways ones can widen the page, so they are dropped -
   the cards keep their border-colour change, which is all a tap needs. */
@media (hover: none) {
  .vs-topic-row:hover,
  .vs-cap-item:hover,
  .vs-why-item:hover,
  .vs-edge-card:hover, .vs-case-card:hover, .vs-insight-card:hover,
  .vs-reach-card:hover, .vs-office-card:hover, .vs-case-story:hover,
  .elementor .vs-tag-pill:hover,
  .elementor .vs-lift:hover, .elementor .vs-lift-sm:hover { transform: none; }
}

/* --- 22.7 Reduced motion -------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  
  .elementor .vs-tech-node.vs-filled,
  .elementor .vs-job-tag,
  .vs-progress-dot,
  .vs-hero-box::before,
  .vs-cta-box::before,
  .elementor .vs-eyebrow-pill p::before { animation: none !important; }
}


/* ==========================================================================
   23. v2.3.1 - THREE TARGETED FIXES
   --------------------------------------------------------------------------
   23.1  Partners strip resized to the reference comp.
   23.2  Hero "Technology Services" nodes: label overflow on phones.
   23.3  Button rows followed by content (Careers first section).

   Everything here is additive. Nothing above 1080px changes except the
   Partners strip, which is the section that was asked to be resized.
   ========================================================================== */

/* --- 23.1 PARTNERS - MATCH THE REFERENCE COMP ----------------------------
   Section 21 already stopped the tiles stretching vertically, but the tile
   COLUMNS were still `flex: 1 1 0`, so the four tiles divided the whole
   remaining width (≈198px each) instead of the ~140px in the comp, and the
   heading was still at the 21px section scale. The comp measures:

       card            ≈ 92px tall, 16px radius, ~16px / 22px padding
       eyebrow         small caps above the heading
       heading         16px / 1.35, two lines, ~300px column
       logo tiles      137 x 48, 15px apart, flush right

   Those are the numbers below. Colours, borders, radii, the float animation
   and the hover lift are untouched.
   -------------------------------------------------------------------------- */

/* Heading column hugs its text instead of claiming a share of the row. */

/* The tile row: fixed-width tiles, 15px apart, pushed to the right edge. */

/* Tablet: heading above the tiles, tiles left-aligned. Section 22.2b stacks
   the two columns at 980px, so the tiles are given an explicit quarter share
   here - left to the 137px basis they would wrap 3 + 1, which reads as a
   mistake rather than a layout. */

/* Phone: two tiles per line rather than four cramped ones. 560px is the width
   at which a quarter tile stops holding "ServiceTitan" on one line. */


/* --- 23.2 TECH NODES - LABELS STAYING INSIDE THE CIRCLES ------------------
   The nodes are `aspect-ratio: 1/1; width: 100%` inside four equal columns,
   so their diameter tracks the viewport while the label did not. Below about
   470px the circle is under 60px across and the longer labels ("Cybersecurity",
   "Product Engineering") ran outside it.

   Fix in two parts: the label is now sized against the circle rather than
   against a fixed step, and below 480px the two rows of four become two rows
   of two, which is the first width at which a circle is large enough to hold
   its own label. The 4-across grid is kept everywhere it still fits.
   -------------------------------------------------------------------------- */
.elementor .vs-tech-node {
  overflow: hidden;            /* last-resort guard: nothing can leave the circle */
  overflow-wrap: break-word;   /* only breaks a word that would not otherwise fit */
  hyphens: auto;
}

/* 981–1080px: the hero is still two columns here, so the panel is at its
   narrowest and the circles drop to ~80px while the label is still at the
   desktop 10.5px. "Cybersecurity" is the one that stops fitting. */
@media (min-width: 981px) and (max-width: 1080px) {
  .elementor .vs-tech-node { font-size: clamp(9px, .95vw, 10.5px); padding: 5px; }
}

/* 480–620px: circles are 66–110px, so the label just needs to track them. */
@media (max-width: 620px) {
  .elementor .vs-tech-node {
    font-size: clamp(8.5px, 2.05vw, 10.5px);
    padding: 5px;
    line-height: 1.2;
  }
}

/* Below 480px a quarter-width circle is too small for the longest label, so
   the row wraps to two per line. Same circles, same panel, same order. */
@media (max-width: 479px) {
  .elementor .vs-tech-row > .elementor-container {
    flex-wrap: wrap !important;
    gap: 12px;
  }
  .elementor .vs-tech-row > .elementor-container > .elementor-column {
    flex: 0 0 calc(50% - 6px) !important;
    width: calc(50% - 6px) !important;
  }
  .elementor .vs-tech-row .elementor-column > .elementor-widget-wrap { padding: 0 !important; }
  .vs-tech-row { margin-bottom: 12px !important; }
  .elementor .vs-tech-node {
    font-size: 11px;
    padding: 10px;
    line-height: 1.3;
    max-width: 130px;          /* keeps the circles from ballooning on a phone */
    margin-left: auto;
    margin-right: auto;
  }
}

/* The 380px block in section 22.5 pushed the font down to 8.5px for the old
   4-across grid. With two per line there is room for the normal size. */
@media (max-width: 380px) {
  .elementor .vs-tech-node { font-size: 10.5px; max-width: 118px; }
}


/* --- 23.3 BUTTON ROW FOLLOWED BY CONTENT ---------------------------------
   Section 4 zeroes the bottom margin of every nested section and widget
   (`.elementor .elementor-section .elementor-section { margin-bottom: 0 }`),
   which is right for the rows that are meant to sit flush. A `.vs-btn-row`
   with something after it - the Careers first section, where three cards sit
   directly under the two buttons - was inheriting that zero and the cards
   ended up against the buttons.

   Only rows that actually have a sibling after them get the gap, so the hero,
   where the button row is the last element, is unchanged.
   -------------------------------------------------------------------------- */
.elementor .vs-btn-row:not(:last-child) { margin-bottom: 28px !important; }

@media (max-width: 767px) {
  /* Stacked buttons are taller, so the following card needs a touch more. */
  .elementor .vs-btn-row:not(:last-child) { margin-bottom: 24px !important; }
}


/* ==========================================================================
   24. IN-PAGE ANCHORS
   --------------------------------------------------------------------------
   Line 60 already sets `scroll-behavior: smooth` on <html>, so a #hash jump
   has always glided rather than snapped. What it did NOT do is account for
   the header, which is position:sticky - the target landed at scroll
   position 0 and the header sat on top of it, hiding the section's own
   heading.

   scroll-padding-top fixes that for every kind of scroll-into-view at once:
   clicking a link, loading a URL that already has a hash, and .focus(). The
   number is the header's real height, which main.js measures and writes into
   --vs-header-h on load and on resize. The 68px fallback is the desktop
   height, so the offset is right even if the script never runs.
   ========================================================================== */
:root { --vs-header-h: 68px; --vs-anchor-gap: 18px; }

html { scroll-padding-top: calc(var(--vs-header-h) + var(--vs-anchor-gap)); }

/* The anchor targets themselves, for browsers that honour scroll-margin on
   the element but not scroll-padding on the scroller. */
.elementor .elementor-element[id],
.elementor .e-con[id],
.vs-footer[id],
.vs-footer [id] {
  scroll-margin-top: calc(var(--vs-header-h) + var(--vs-anchor-gap));
}

/* main.js gives a target tabindex="-1" so keyboard focus follows the scroll.
   That would otherwise draw a focus ring around a whole page section. */
.elementor .elementor-element[id]:focus,
.elementor .e-con[id]:focus,
.vs-footer [id]:focus { outline: none; }

/* Section 22 already honours prefers-reduced-motion for the animations.
   Smooth scrolling is motion too, so it is switched off here as well; the
   jump still lands in the right place because the padding above is
   unconditional. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* ==========================================================================
   25. GCC PAGE
   --------------------------------------------------------------------------
   The GCC page used to be a single Elementor HTML widget holding ~23KB of
   CSS and ~22KB of markup. It is now an ordinary Elementor page built from
   Containers, Headings, Text Editors, Icons, Icon Lists and Buttons, and
   this block is that widget's stylesheet moved here unchanged in value.

   Three things had to change in the SELECTORS, nothing in the design:

   1. EVERYTHING IS SCOPED to .vigour-master-container. The Offerings page
      has its own HTML widget using .v-card-title, .v-card-num,
      .v-card-subtitle and .v-card-header - the same names. Unscoped, this
      block would have restyled that page. Scoped, it cannot touch anything
      outside the GCC page.

   2. Elementor puts a widget's CSS class on the OUTER .elementor-element
      wrapper, never on the inner <h2>/<p>. So every text element carries a
      second class, .v-txt, and one rule below makes its inner tag inherit
      the wrapper's typography - the same trick section 19 uses for the
      vs-* vocabulary. Containers carry .v-box, icons .v-icon, icon lists
      .v-list. Those four markers are what the two-class selectors below
      hook onto, which also lifts them above Elementor's own defaults
      without a single !important.

   3. The Solutions block's variables were named --vs-*, the same prefix the
      theme uses on :root. They never collided (different suffixes) but the
      names are now --vsol-* so they cannot start to. Values are identical.

   Everything else - every colour, size, radius, shadow, gap and breakpoint -
   is byte-for-byte what the widget had, including the two places where the
   original cascade produced a surprise (the highlight card's quote mark
   renders ink-on-orange at 36px because section 6 redefined .v-quote-icon
   after section 1; that is reproduced exactly, not "fixed").
   ========================================================================== */

/* --- 25.0 RESET: the blank slate a plain <div> used to start from --------
   An Elementor container arrives with display:flex, a 20px gap and the
   kit's 10px padding. These are cleared once here so each section rule
   below can be the original rule. The per-section rules carry two classes
   and therefore always outrank this. */
.elementor .vigour-master-container .v-box {
  display: block;
  gap: 0;
  padding: 0;
  margin: 0;
  width: 100%;
  max-width: none;

  /* `.e-con.e-flex` sets `--flex-direction: column`, and Elementor reads that
     variable back through `flex-direction: var(--flex-direction)`. Any rule
     below that says only `display: flex` - the card badge row, the solution
     and GCC card headers, all three banners - would therefore come out
     STACKED instead of side by side. Resetting the variable to `row` here
     (and the property itself, so the order the two stylesheets load in
     cannot matter) restores the browser default; the rules that genuinely
     want a column still say so, and outrank this. */
  flex-direction: row;      --flex-direction: row;
  flex-wrap: nowrap;        --flex-wrap: nowrap;
  justify-content: normal;  --justify-content: normal;
  align-items: normal;      --align-items: normal;
  align-content: normal;    --align-content: normal;
  --e-con-grid-template-columns: none;
  --e-con-grid-template-rows: none;

  --display: block;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
  --padding-block-start: 0px; --padding-block-end: 0px;
  --padding-inline-start: 0px; --padding-inline-end: 0px;
  --margin-block-start: 0px; --margin-block-end: 0px;
  --margin-inline-start: 0px; --margin-inline-end: 0px;
  --width: 100%; --content-width: 100%; --min-height: auto;
}

/* Heading and Text Editor widgets: the wrapper carries the type, the inner
   tag inherits it. Without this, .elementor h2 (section 5) and the kit's
   own colours would show through. */
.elementor .vigour-master-container .v-txt > .elementor-widget-container > * {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-align: inherit;
  margin: 0;
}
.elementor .vigour-master-container .v-txt { margin: 0; }

/* Icon widgets: the original icons were a bare <svg> centred in a coloured
   circle. Elementor wraps its <i> in two divs, so those are flattened and
   the glyph takes its size from the wrapper's font-size. */
.elementor .vigour-master-container .v-icon .elementor-icon-wrapper { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; margin: 0; }
.elementor .vigour-master-container .v-icon .elementor-icon { display: flex; align-items: center; justify-content: center; color: inherit; font-size: inherit; background: none; border: none; padding: 0; }
.elementor .vigour-master-container .v-icon .elementor-icon svg,
.elementor .vigour-master-container .v-icon .elementor-icon i { width: 1em; height: 1em; font-size: inherit; color: inherit; line-height: 1; fill: currentColor; }

.elementor .vigour-master-container * { box-sizing: border-box; }

/* --- 25.1 MASTER CONTAINER ---------------------------------------------- */
.elementor .v-box.vigour-master-container {
  /* The outer Elementor container the widget used to sit in carried the
     kit's 10px padding, which made the content 1156px inside a 1176px
     column. Kept, so the page lines up with where it is today. */
  padding: 0 10px; /* v2.6: vertical padding removed so the page follows the site rhythm */
  display: flex;
  flex-direction: column;
  gap: var(--vs-space-section);
  width: 100%;
  margin: 0 auto;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* --- 25.2 CHALLENGES ----------------------------------------------------- */
.elementor .vigour-master-container .v-box.v-challenges-wrapper {
  --vc-text-heading: #111827; --vc-text-desc: #6b7280; --vc-card-bg: #ffffff; --vc-card-border: #eaeaea; --vc-text-title: #111827; --vc-text-body: #6b7280; --vc-brand-orange: #d65c3b; --vc-badge-bg: #fdf2ef; --vc-hl-bg: #d65c3b; --vc-hl-text: #ffffff; --vc-hl-btn-bg: #ffffff; --vc-hl-btn-text: #d65c3b;
  max-width: 1400px; margin: 0 auto; width: 100%;
}
.elementor .vigour-master-container .v-box.v-challenges-header { text-align: center; max-width: 1100px; margin: 0 auto var(--vs-space-head) auto; }
.elementor .vigour-master-container .v-txt.v-challenges-title { font-size: 28px; font-weight: 700; color: var(--vc-text-heading); margin: 0 0 16px 0; line-height: 1.3; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-challenges-intro { font-size: 15px; color: var(--vc-text-desc); line-height: 1.7; margin: 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.v-challenges-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.elementor .vigour-master-container .v-box.v-challenge-card { background-color: var(--vc-card-bg); border: 1px solid var(--vc-card-border); border-radius: 16px; padding: 32px; display: flex; flex-direction: column; box-shadow: 0 4px 20px rgba(0,0,0,0.02); transition: all 0.3s; }
.elementor .vigour-master-container .v-box.v-card-badge-row { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.elementor .vigour-master-container .v-txt.v-card-num { width: 40px; height: 40px; border-radius: 50%; background-color: var(--vc-badge-bg); color: var(--vc-brand-orange); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; flex-shrink: 0; }
.elementor .vigour-master-container .v-txt.v-card-subtitle { font-size: 16px; font-weight: 600; color: var(--vc-brand-orange); margin: 0; }
.elementor .vigour-master-container .v-txt.v-card-title { font-size: 20px; font-weight: 700; color: var(--vc-text-title); margin: 0 0 16px 0; line-height: 1.3; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-card-text { font-size: 14px; line-height: 1.6; color: var(--vc-text-body); margin: 0 0 24px 0; flex-grow: 1; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-card-italic { font-size: 14px; font-style: italic; font-weight: 500; color: var(--vc-brand-orange); margin: 0; line-height: 1.5; }
.elementor .vigour-master-container .v-box.v-highlight-card { background-color: var(--vc-hl-bg); border-radius: 16px; padding: 32px; display: flex; flex-direction: column; box-shadow: 0 10px 30px rgba(214,92,59,0.2); transition: background-color 0.3s; }
.elementor .vigour-master-container .v-icon.v-quote-icon { margin-bottom: 20px; color: rgba(255,255,255,0.4); font-size: 44px; display: block; }
.elementor .vigour-master-container .v-txt.v-highlight-text { font-size: 22px; font-weight: 700; color: var(--vc-hl-text); line-height: 1.4; margin: 0 0 32px 0; flex-grow: 1; }
.elementor .vigour-master-container .v-txt.v-highlight-btn { background-color: var(--vc-hl-btn-bg); color: var(--vc-hl-btn-text); text-align: center; padding: 14px 20px; border-radius: 8px; font-size: 15px; font-weight: 600; width: 100%; cursor: pointer; transition: transform 0.2s, opacity 0.2s; }
.elementor .vigour-master-container .v-txt.v-highlight-btn:hover { opacity: 0.9; }

/* --- 25.3 SOLUTIONS ------------------------------------------------------ */
.elementor .vigour-master-container .v-box.v-solutions-wrapper {
  --vsol-text-heading: #111827; --vsol-text-desc: #6b7280; --vsol-card-bg: #ffffff; --vsol-card-border: #eaeaea; --vsol-card-title: #111827; --vsol-card-text: #6b7280; --vsol-brand-orange: #d65c3b; --vsol-icon-bg: #fdf2ef; --vsol-banner-bg: #f4f5f7; --vsol-banner-border: #e5e7eb; --vsol-banner-text: #374151;
  max-width: 1200px; margin: 0 auto; width: 100%;
}
.elementor .vigour-master-container .v-box.v-solutions-header { text-align: center; margin-bottom: var(--vs-space-head); }
.elementor .vigour-master-container .v-txt.v-solutions-heading { font-size: 28px; font-weight: 700; color: var(--vsol-text-heading); margin: 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.v-solutions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.elementor .vigour-master-container .v-box.v-solution-card { background-color: var(--vsol-card-bg); border: 1px solid var(--vsol-card-border); border-radius: 16px; padding: 32px; display: flex; flex-direction: column; box-shadow: 0 4px 20px rgba(0,0,0,0.02); transition: all 0.3s; }
.elementor .vigour-master-container .v-box.v-card-header { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.elementor .vigour-master-container .v-icon.v-sol-icon { width: 48px; height: 48px; border-radius: 12px; background-color: var(--vsol-icon-bg); color: var(--vsol-brand-orange); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 24px; transition: all 0.3s; }
.elementor .vigour-master-container .v-txt.v-sol-title { font-size: 20px; font-weight: 700; color: var(--vsol-card-title); margin: 0; line-height: 1.3; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-sol-desc { font-size: 15px; line-height: 1.6; color: var(--vsol-card-text); margin: 0 0 24px 0; transition: color 0.3s; }

/* The four ticks per card are one native Icon List widget. */
.elementor .vigour-master-container .v-list.v-check-list .elementor-icon-list-items { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.elementor .vigour-master-container .v-list.v-check-list .elementor-icon-list-item { display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 0; font-size: inherit; }
.elementor .vigour-master-container .v-list.v-check-list .elementor-icon-list-item:after { display: none; }
.elementor .vigour-master-container .v-list.v-check-list .elementor-icon-list-icon { color: var(--vsol-brand-orange); flex-shrink: 0; margin-top: 2px; font-size: 15px; line-height: 1; display: flex; padding: 0; }
.elementor .vigour-master-container .v-list.v-check-list .elementor-icon-list-icon i,
.elementor .vigour-master-container .v-list.v-check-list .elementor-icon-list-icon svg { font-size: inherit; width: 1em; height: 1em; color: inherit; fill: currentColor; }
.elementor .vigour-master-container .v-list.v-check-list .elementor-icon-list-text { font-size: 14px; font-weight: 500; color: var(--vsol-card-title); line-height: 1.5; padding: 0; transition: color 0.3s; }

.elementor .vigour-master-container .v-box.v-solution-banner { grid-column: 1 / -1; background-color: var(--vsol-banner-bg); border: 1px solid var(--vsol-banner-border); border-radius: 12px; padding: 20px 24px; display: flex; align-items: center; gap: 16px; margin-top: 8px; transition: all 0.3s; }
.elementor .vigour-master-container .v-icon.v-banner-icon { color: var(--vsol-brand-orange); flex-shrink: 0; font-size: 28px; display: flex; }
.elementor .vigour-master-container .v-txt.v-banner-text { margin: 0; font-size: 14px; line-height: 1.6; font-weight: 500; color: var(--vsol-banner-text); transition: color 0.3s; }

/* --- 25.4 GCC MODEL ------------------------------------------------------ */
.elementor .vigour-master-container .v-box.v-gcc-wrapper {
  --vg-text-heading: #111827; --vg-text-sub: #6b7280; --vg-card-bg: #ffffff; --vg-card-border: #eaeaea; --vg-card-title: #111827; --vg-card-text: #6b7280; --vg-brand-orange: #d65c3b; --vg-icon-bg: #fdf2ef; --vg-banner-bg: #0b132b; --vg-banner-border: #0b132b; --vg-banner-text: #ffffff; --vg-banner-icon-bg: rgba(255,255,255,0.1);
  max-width: 1300px; margin: 0 auto; width: 100%;
}
.elementor .vigour-master-container .v-box.v-gcc-header { text-align: center; margin-bottom: var(--vs-space-head); padding: 0 20px; }
.elementor .vigour-master-container .v-txt.v-gcc-heading { font-size: 28px; font-weight: 700; color: var(--vg-text-heading); margin: 0 0 12px 0; line-height: 1.3; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-gcc-subheading { font-size: 16px; color: var(--vg-text-sub); margin: 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.v-gcc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.elementor .vigour-master-container .v-box.v-gcc-card { background-color: var(--vg-card-bg); border: 1px solid var(--vg-card-border); border-radius: 12px; padding: 32px 24px; display: flex; flex-direction: column; box-shadow: 0 4px 20px rgba(0,0,0,0.02); transition: all 0.3s; }
.elementor .vigour-master-container .v-box.v-gcc-card:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,0.05); }
.elementor .vigour-master-container .v-icon.v-gcc-icon { width: 44px; height: 44px; border-radius: 50%; background-color: var(--vg-icon-bg); color: var(--vg-brand-orange); display: flex; align-items: center; justify-content: center; margin-bottom: 24px; font-size: 20px; flex-shrink: 0; transition: all 0.3s; }
.elementor .vigour-master-container .v-txt.v-gcc-title { font-size: 18px; font-weight: 700; color: var(--vg-card-title); margin: 0 0 16px 0; line-height: 1.3; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-gcc-desc { font-size: 14px; line-height: 1.6; color: var(--vg-card-text); margin: 0; flex-grow: 1; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.v-gcc-banner { grid-column: 1 / -1; background-color: var(--vg-banner-bg); border: 1px solid var(--vg-banner-border); border-radius: 16px; padding: 24px 32px; display: flex; align-items: center; gap: 20px; margin-top: 16px; box-shadow: 0 10px 30px rgba(11,19,43,0.1); transition: all 0.3s; }
.elementor .vigour-master-container .v-icon.v-gcc-banner-icon { width: 48px; height: 48px; border-radius: 50%; background-color: var(--vg-banner-icon-bg); color: var(--vg-brand-orange); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 22px; }
.elementor .vigour-master-container .v-txt.v-gcc-banner-text { margin: 0; font-size: 15px; line-height: 1.6; color: var(--vg-banner-text); }

/* --- 25.5 BOT MODEL ------------------------------------------------------ */
.elementor .vigour-master-container .v-box.vb-approach-wrapper {
  --vb-text-heading: #111827; --vb-text-desc: #6b7280; --vb-brand-orange: #d65c3b; --vb-card-bg: #ffffff; --vb-card-border: #eaeaea; --vb-card-title: #111827; --vb-card-text: #6b7280; --vb-num-bg: #d65c3b; --vb-num-text: #ffffff; --vb-banner-bg: #f4f5f7; --vb-banner-border: #e5e7eb; --vb-banner-text: #374151;
  max-width: 1400px; margin: 0 auto; width: 100%;
}
.elementor .vigour-master-container .v-box.vb-approach-layout { display: grid; grid-template-columns: 1fr 2.5fr; gap: 60px; align-items: start; }
.elementor .vigour-master-container .v-box.vb-intro-col { display: flex; flex-direction: column; }
.elementor .vigour-master-container .v-txt.vb-subtitle { font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--vb-brand-orange); margin-bottom: 12px; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.vb-title { font-size: 36px; font-weight: 700; color: var(--vb-text-heading); line-height: 1.2; margin: 0 0 20px 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.vb-desc { font-size: 16px; line-height: 1.7; color: var(--vb-text-desc); margin: 0 0 16px 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.vb-content-col { display: flex; flex-direction: column; gap: 24px; }
.elementor .vigour-master-container .v-box.vb-steps-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.elementor .vigour-master-container .v-box.vb-step-wrapper { display: flex; flex-direction: column; align-items: center; }
.elementor .vigour-master-container .v-txt.vb-step-num { width: 36px; height: 36px; border-radius: 50%; background-color: var(--vb-num-bg); color: var(--vb-num-text); display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; margin-bottom: 16px; flex-shrink: 0; box-shadow: 0 4px 10px rgba(214,92,59,0.2); transition: all 0.3s; }
.elementor .vigour-master-container .v-box.vb-step-card { background-color: var(--vb-card-bg); border: 1px solid var(--vb-card-border); border-radius: 12px; padding: 32px 24px; width: 100%; flex-grow: 1; box-shadow: 0 4px 20px rgba(0,0,0,0.02); transition: all 0.3s; }
.elementor .vigour-master-container .v-txt.vb-card-title { font-size: 16px; font-weight: 600; color: var(--vb-card-title); text-transform: uppercase; letter-spacing: 0.5px; margin: 0 0 16px 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.vb-card-text { font-size: 14px; line-height: 1.6; color: var(--vb-card-text); margin: 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.vb-banner { background-color: var(--vb-banner-bg); border: 1px solid var(--vb-banner-border); border-radius: 12px; padding: 20px 24px; display: flex; align-items: center; gap: 16px; transition: all 0.3s; }
.elementor .vigour-master-container .v-icon.vb-banner-icon { color: var(--vb-brand-orange); flex-shrink: 0; font-size: 24px; display: flex; }
.elementor .vigour-master-container .v-txt.vb-banner-text { margin: 0; font-size: 14px; line-height: 1.6; font-weight: 500; color: var(--vb-banner-text); transition: color 0.3s; }

/* --- 25.6 SCALE ---------------------------------------------------------- */
.elementor .vigour-master-container .v-box.v-scale-wrapper {
  --vsc-text-heading: #111827; --vsc-text-sub: #6b7280; --vsc-card-bg: #ffffff; --vsc-card-border: #eaeaea; --vsc-card-title: #111827; --vsc-card-text: #6b7280; --vsc-brand-orange: #d65c3b; --vsc-icon-bg: #fdf2ef; --vsc-num-bg: #d65c3b; --vsc-num-text: #ffffff;
  max-width: 1300px; margin: 0 auto; width: 100%;
}
.elementor .vigour-master-container .v-box.v-scale-header { text-align: left; margin-bottom: var(--vs-space-head); }
.elementor .vigour-master-container .v-txt.v-scale-heading { font-size: 28px; font-weight: 700; color: var(--vsc-text-heading); margin: 0 0 12px 0; line-height: 1.3; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-scale-subheading { font-size: 16px; color: var(--vsc-text-sub); margin: 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.v-scale-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.elementor .vigour-master-container .v-box.v-scale-col { display: flex; flex-direction: column; align-items: center; }
.elementor .vigour-master-container .v-txt.v-scale-num { width: 32px; height: 32px; border-radius: 50%; background-color: var(--vsc-num-bg); color: var(--vsc-num-text); display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; margin-bottom: 24px; flex-shrink: 0; box-shadow: 0 4px 10px rgba(214,92,59,0.2); transition: all 0.3s; }
.elementor .vigour-master-container .v-box.v-scale-card { background-color: var(--vsc-card-bg); border: 1px solid var(--vsc-card-border); border-radius: 12px; padding: 32px 24px; width: 100%; display: flex; flex-direction: column; flex-grow: 1; box-shadow: 0 4px 20px rgba(0,0,0,0.02); transition: all 0.3s; }
.elementor .vigour-master-container .v-box.v-scale-card:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,0.05); }
.elementor .vigour-master-container .v-icon.v-scale-icon { width: 44px; height: 44px; border-radius: 50%; background-color: var(--vsc-icon-bg); color: var(--vsc-brand-orange); display: flex; align-items: center; justify-content: center; margin-bottom: 24px; font-size: 20px; flex-shrink: 0; transition: all 0.3s; }
.elementor .vigour-master-container .v-txt.v-scale-title { font-size: 18px; font-weight: 700; color: var(--vsc-card-title); margin: 0 0 16px 0; line-height: 1.3; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-scale-desc { font-size: 14px; line-height: 1.6; color: var(--vsc-card-text); margin: 0; transition: color 0.3s; }

/* --- 25.7 TRACK RECORD --------------------------------------------------- */
.elementor .vigour-master-container .v-box.v-stats-wrapper {
  --vt-text-heading: #111827; --vt-card-bg: #ffffff; --vt-card-border: #eaeaea; --vt-stat-num: #d65c3b; --vt-stat-label: #6b7280; --vt-brand-orange: #d65c3b; --vt-icon-bg: #fdf2ef; --vt-quote-bg: #0b132b; --vt-quote-border: #0b132b; --vt-quote-text: #ffffff; --vt-quote-author: #a3a3a3; --vt-quote-company: #6b7280;
  max-width: 1400px; margin: 0 auto; width: 100%;
}
.elementor .vigour-master-container .v-box.v-stats-header { margin-bottom: var(--vs-space-head); }
.elementor .vigour-master-container .v-txt.v-stats-heading { font-size: 24px; font-weight: 700; color: var(--vt-text-heading); margin: 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.v-stats-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.elementor .vigour-master-container .v-box.v-stat-card { background-color: var(--vt-card-bg); border: 1px solid var(--vt-card-border); border-radius: 12px; padding: 32px 24px; display: flex; flex-direction: column; box-shadow: 0 4px 20px rgba(0,0,0,0.02); transition: all 0.3s; }
.elementor .vigour-master-container .v-box.v-stat-card:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,0.05); }
.elementor .vigour-master-container .v-icon.v-stat-icon { width: 40px; height: 40px; border-radius: 50%; background-color: var(--vt-icon-bg); color: var(--vt-brand-orange); display: flex; align-items: center; justify-content: center; margin-bottom: 24px; font-size: 20px; flex-shrink: 0; transition: all 0.3s; }
.elementor .vigour-master-container .v-txt.v-stat-number { font-size: 42px; font-weight: 700; color: var(--vt-stat-num); margin: 0 0 8px 0; line-height: 1; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-stat-label { font-size: 15px; line-height: 1.5; font-weight: 500; color: var(--vt-stat-label); margin: 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.v-quote-card { background-color: var(--vt-quote-bg); border: 1px solid var(--vt-quote-border); border-radius: 12px; padding: 32px 24px; display: flex; flex-direction: column; box-shadow: 0 10px 30px rgba(11,19,43,0.15); transition: all 0.3s; }

/* Section 6 of the original redefined .v-quote-icon after section 1, so BOTH
   quote marks render at 36px - the highlight card's in ink (its orange var
   is not in scope there) and the quote card's in brand orange. Reproduced
   exactly: this rule follows 25.2's, as it did before. */
.elementor .vigour-master-container .v-icon.v-quote-icon { color: var(--vt-brand-orange); margin-bottom: 20px; font-size: 36px; }

.elementor .vigour-master-container .v-txt.v-quote-text { font-size: 16px; line-height: 1.6; font-weight: 500; color: var(--vt-quote-text); margin: 0 0 24px 0; flex-grow: 1; }
.elementor .vigour-master-container .v-txt.v-quote-author { font-size: 14px; color: var(--vt-quote-author); margin: 0 0 4px 0; }
.elementor .vigour-master-container .v-txt.v-quote-company { font-size: 13px; color: var(--vt-quote-company); margin: 0; }

/* --- 25.8 WHY CHOOSE ----------------------------------------------------- */
.elementor .vigour-master-container .v-box.v-choose-wrapper {
  --vch-text-heading: #111827; --vch-card-bg: #ffffff; --vch-card-border: #eaeaea; --vch-card-title: #111827; --vch-card-sub: #6b7280; --vch-brand-orange: #d65c3b; --vch-icon-bg: #fdf2ef;
  max-width: 1400px; margin: 0 auto; width: 100%;
}
.elementor .vigour-master-container .v-box.v-choose-header { text-align: center; margin-bottom: var(--vs-space-head); }
.elementor .vigour-master-container .v-txt.v-choose-heading { font-size: 26px; font-weight: 700; color: var(--vch-text-heading); margin: 0; transition: color 0.3s; }
.elementor .vigour-master-container .v-box.v-choose-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
.elementor .vigour-master-container .v-box.v-choose-card { background-color: var(--vch-card-bg); border: 1px solid var(--vch-card-border); border-radius: 12px; padding: 32px 16px; display: flex; flex-direction: column; align-items: center; text-align: center; box-shadow: 0 4px 20px rgba(0,0,0,0.02); transition: all 0.3s; height: 100%; }
.elementor .vigour-master-container .v-box.v-choose-card:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,0.05); }
.elementor .vigour-master-container .v-icon.v-ch-icon { width: 44px; height: 44px; border-radius: 50%; background-color: var(--vch-icon-bg); color: var(--vch-brand-orange); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; font-size: 20px; flex-shrink: 0; transition: all 0.3s; }
.elementor .vigour-master-container .v-txt.v-ch-title { font-size: 15px; font-weight: 600; color: var(--vch-card-title); margin: 0; line-height: 1.4; transition: color 0.3s; }
.elementor .vigour-master-container .v-txt.v-ch-subtext { font-size: 13px; line-height: 1.5; color: var(--vch-card-sub); margin: 8px 0 0 0; transition: color 0.3s; }

/* --- 25.9 DARK MODE ------------------------------------------------------
   Verbatim from the widget. The theme flips html[data-theme] before first
   paint, so these re-point each section's variables and nothing else. */
html[data-theme="dark"] .elementor .vigour-master-container .v-box.v-challenges-wrapper {
  --vc-text-heading: #ffffff; --vc-text-desc: #a3a3a3; --vc-card-bg: #121212; --vc-card-border: #2a2a2a; --vc-text-title: #ffffff; --vc-text-body: #a3a3a3; --vc-brand-orange: #fc7258; --vc-badge-bg: #2a120c; --vc-hl-bg: #d65c3b;
}
html[data-theme="dark"] .elementor .vigour-master-container .v-box.v-solutions-wrapper {
  --vsol-text-heading: #ffffff; --vsol-text-desc: #a3a3a3; --vsol-card-bg: #121212; --vsol-card-border: #2a2a2a; --vsol-card-title: #ffffff; --vsol-card-text: #a3a3a3; --vsol-brand-orange: #fc7258; --vsol-icon-bg: #2a120c; --vsol-banner-bg: #1e1e1e; --vsol-banner-border: #374151; --vsol-banner-text: #e5e5e5;
}
html[data-theme="dark"] .elementor .vigour-master-container .v-box.v-gcc-wrapper {
  --vg-text-heading: #ffffff; --vg-text-sub: #a3a3a3; --vg-card-bg: #121212; --vg-card-border: #2a2a2a; --vg-card-title: #ffffff; --vg-card-text: #a3a3a3; --vg-brand-orange: #fc7258; --vg-icon-bg: #2a120c; --vg-banner-bg: #080d1f; --vg-banner-border: #2a2a2a;
}
html[data-theme="dark"] .elementor .vigour-master-container .v-box.vb-approach-wrapper {
  --vb-text-heading: #ffffff; --vb-text-desc: #a3a3a3; --vb-brand-orange: #fc7258; --vb-card-bg: #121212; --vb-card-border: #2a2a2a; --vb-card-title: #ffffff; --vb-card-text: #a3a3a3; --vb-num-bg: #fc7258; --vb-num-text: #ffffff; --vb-banner-bg: #1e1e1e; --vb-banner-border: #374151; --vb-banner-text: #e5e5e5;
}
html[data-theme="dark"] .elementor .vigour-master-container .v-box.v-scale-wrapper {
  --vsc-text-heading: #ffffff; --vsc-text-sub: #a3a3a3; --vsc-card-bg: #121212; --vsc-card-border: #2a2a2a; --vsc-card-title: #ffffff; --vsc-card-text: #a3a3a3; --vsc-brand-orange: #fc7258; --vsc-icon-bg: #2a120c; --vsc-num-bg: #fc7258; --vsc-num-text: #ffffff;
}
html[data-theme="dark"] .elementor .vigour-master-container .v-box.v-stats-wrapper {
  --vt-text-heading: #ffffff; --vt-card-bg: #121212; --vt-card-border: #2a2a2a; --vt-stat-num: #fc7258; --vt-stat-label: #a3a3a3; --vt-brand-orange: #fc7258; --vt-icon-bg: #2a120c; --vt-quote-bg: #080d1f; --vt-quote-border: #2a2a2a;
}
html[data-theme="dark"] .elementor .vigour-master-container .v-box.v-choose-wrapper {
  --vch-text-heading: #ffffff; --vch-card-bg: #121212; --vch-card-border: #2a2a2a; --vch-card-title: #ffffff; --vch-card-sub: #a3a3a3; --vch-brand-orange: #fc7258; --vch-icon-bg: #2a120c;
}

/* --- 25.10 RESPONSIVE ----------------------------------------------------
   The original breakpoints, kept exactly: 1200 / 1100 / 1024 / 992 / 768 /
   480. Elementor only has two active breakpoints on this install (1024 and
   767), so re-expressing these in the builder's responsive controls would
   have changed how the page reflows. They stay in CSS instead. */
@media (max-width: 1200px) {
  .elementor .vigour-master-container .v-box.v-choose-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}

@media (max-width: 1100px) {
  .elementor .vigour-master-container .v-box.v-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .elementor .vigour-master-container .v-box.v-quote-card { grid-column: span 2; }
}

@media (max-width: 1024px) {
  .elementor .vigour-master-container .v-box.v-challenges-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elementor .vigour-master-container .v-box.v-highlight-card { grid-column: span 2; }
  .elementor .vigour-master-container .v-box.v-gcc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .elementor .vigour-master-container .v-box.vb-approach-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .elementor .vigour-master-container .v-box.vb-intro-col { text-align: center; max-width: 800px; margin: 0 auto; }
  .elementor .vigour-master-container .v-box.v-scale-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
}

@media (max-width: 992px) {
  .elementor .vigour-master-container .v-box.v-solutions-grid { grid-template-columns: minmax(0, 1fr); }
  .elementor .vigour-master-container .v-box.v-solution-banner { grid-column: 1; align-items: flex-start; }
}

@media (max-width: 768px) {
  .elementor .v-box.vigour-master-container { gap: var(--vs-space-section); }

  /* Challenges */
  .elementor .vigour-master-container .v-box.v-challenges-header { margin-bottom: var(--vs-space-head); text-align: left; }
  .elementor .vigour-master-container .v-txt.v-challenges-title { font-size: 24px; }
  .elementor .vigour-master-container .v-box.v-challenges-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .elementor .vigour-master-container .v-box.v-highlight-card { grid-column: span 1; }
  .elementor .vigour-master-container .v-box.v-challenge-card,
  .elementor .vigour-master-container .v-box.v-highlight-card { padding: 24px; }
  .elementor .vigour-master-container .v-txt.v-highlight-text { font-size: 20px; }

  /* Solutions */
  .elementor .vigour-master-container .v-box.v-solutions-header { margin-bottom: var(--vs-space-head); }
  .elementor .vigour-master-container .v-txt.v-solutions-heading { font-size: 24px; }
  .elementor .vigour-master-container .v-box.v-solution-card { padding: 24px; }
  .elementor .vigour-master-container .v-txt.v-sol-title { font-size: 18px; }

  /* GCC model */
  .elementor .vigour-master-container .v-box.v-gcc-header { margin-bottom: var(--vs-space-head); }
  .elementor .vigour-master-container .v-txt.v-gcc-heading { font-size: 24px; }
  .elementor .vigour-master-container .v-box.v-gcc-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .elementor .vigour-master-container .v-box.v-gcc-banner { flex-direction: column; align-items: flex-start; padding: 24px; gap: 16px; }

  /* BOT model */
  .elementor .vigour-master-container .v-txt.vb-title { font-size: 28px; }
  .elementor .vigour-master-container .v-box.vb-steps-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .elementor .vigour-master-container .v-box.vb-banner { flex-direction: column; align-items: flex-start; padding: 20px; }

  /* Scale */
  .elementor .vigour-master-container .v-box.v-scale-header { margin-bottom: var(--vs-space-head); }
  .elementor .vigour-master-container .v-txt.v-scale-heading { font-size: 24px; }
  .elementor .vigour-master-container .v-box.v-scale-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .elementor .vigour-master-container .v-box.v-scale-col { align-items: flex-start; }
  .elementor .vigour-master-container .v-txt.v-scale-num { margin-bottom: 16px; }
  .elementor .vigour-master-container .v-box.v-scale-card { padding: 24px; }

  /* Track record */
  .elementor .vigour-master-container .v-box.v-stats-header { margin-bottom: var(--vs-space-head); }
  .elementor .vigour-master-container .v-txt.v-stats-heading { font-size: 22px; }
  .elementor .vigour-master-container .v-box.v-stats-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .elementor .vigour-master-container .v-box.v-quote-card { grid-column: span 1; }
  .elementor .vigour-master-container .v-box.v-stat-card,
  .elementor .vigour-master-container .v-box.v-quote-card { padding: 24px; align-items: center; text-align: center; }
  .elementor .vigour-master-container .v-icon.v-stat-icon,
  .elementor .vigour-master-container .v-icon.v-quote-icon { margin-bottom: 16px; }

  /* Why choose */
  .elementor .vigour-master-container .v-box.v-choose-header { margin-bottom: var(--vs-space-head); }
  .elementor .vigour-master-container .v-txt.v-choose-heading { font-size: 22px; }
  .elementor .vigour-master-container .v-box.v-choose-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .elementor .vigour-master-container .v-box.v-choose-card { padding: 24px 16px; }
}

@media (max-width: 480px) {
  .elementor .vigour-master-container .v-box.v-choose-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   26. SUCCESS STORY DETAIL PAGES                                   (v2.5)

   The three existing story pages are written in the block editor, not in
   Elementor, so they arrive as a flat run of <p><strong>Label</strong></p>,
   <ul> and <hr> with no wrappers to hang a design on. inc/success-story.php
   groups that run into sections - without touching a single word - and this
   block styles the result.

   Everything here is scoped to .vs-ss, which only that template prints, so
   no other page can be reached by it. Both palettes come from the tokens in
   section 1, so light and dark work without a second rule.
   ========================================================================== */

.vs-ss { --vs-ss-gap: 24px; }
.vs-ss *, .vs-ss *::before, .vs-ss *::after { box-sizing: border-box; }
.vs-ss-shell { width: 100%; }

/* ---- 26.1  HERO ---------------------------------------------------------- */
.vs-ss-hero {
  position: relative;
  background:
    radial-gradient(120% 140% at 88% -30%, var(--vs-accent-glow) 0%, transparent 58%),
    var(--vs-panel);
  border: 1px solid var(--vs-border);
  border-radius: 24px;
  padding: 40px 40px 42px;
  margin-bottom: var(--vs-ss-gap);
  overflow: hidden;
}
.vs-ss-hero::after {                      /* the accent hairline along the top */
  content: ""; position: absolute; inset: 0 0 auto 0; height: 3px;
  background: linear-gradient(90deg, var(--vs-accent), var(--vs-accent-bright), transparent 75%);
}
.vs-ss-back {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; font-weight: 600; color: var(--vs-muted);
  border: 1px solid var(--vs-border); border-radius: 999px;
  padding: 7px 14px; background: var(--vs-card);
  transition: color .25s ease, border-color .25s ease, transform .25s ease;
}
.vs-ss-back:hover { color: var(--vs-accent); border-color: var(--vs-accent-dim); transform: translateX(-3px); }
.vs-ss-eyebrow {
  margin: 22px 0 10px; font-size: 11px; font-weight: 700;
  letter-spacing: 1.6px; text-transform: uppercase; color: var(--vs-accent);
}
.vs-ss-title {
  margin: 0; max-width: 20ch;
  font-size: clamp(26px, 3.2vw, 40px); font-weight: 800;
  line-height: 1.16; letter-spacing: -.8px; color: var(--vs-ink);
  max-width: 24ch;
}

/* ---- 26.2  LAYOUT -------------------------------------------------------- */
.vs-ss-body { padding-bottom: 0; } /* v2.6: the footer gap now comes from --vs-space-section */
.vs-ss-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 336px;
  align-items: start;
  gap: var(--vs-ss-gap);
}
.vs-ss-main { display: flex; flex-direction: column; gap: var(--vs-ss-gap); min-width: 0; }
.vs-ss-aside {
  position: sticky;
  top: calc(var(--vs-header-h, 68px) + 18px);
  display: flex; flex-direction: column; gap: 16px; min-width: 0;
}

/* ---- 26.3  CARDS --------------------------------------------------------- */
.vs-ss-card {
  background: var(--vs-panel); border: 1px solid var(--vs-border);
  border-radius: 20px; padding: 28px 30px 30px;
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.vs-ss-card--main:hover { border-color: var(--vs-accent-dim); box-shadow: var(--vs-shadow-hover); transform: translateY(-3px); }
.vs-ss-card--aside { padding: 22px 22px 24px; border-radius: 18px; }

.vs-ss-card-head {
  display: flex; align-items: center; gap: 14px;
  padding-bottom: 16px; margin-bottom: 18px;
  border-bottom: 1px solid var(--vs-border);
}
.vs-ss-card--aside .vs-ss-card-head { padding-bottom: 12px; margin-bottom: 14px; }
.vs-ss-num {
  flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 10px;
  background: var(--vs-accent); color: var(--vs-on-accent);
  font-size: 12.5px; font-weight: 800; letter-spacing: .3px;
}
.vs-ss .vs-ss-card-title {
  margin: 0; font-weight: 700; color: var(--vs-ink);
  letter-spacing: -.3px; line-height: 1.3;
}
.vs-ss .vs-ss-card--main .vs-ss-card-title { font-size: 20px; }
.vs-ss .vs-ss-card--aside .vs-ss-card-title {
  font-size: 11px; font-weight: 700; letter-spacing: 1.4px;
  text-transform: uppercase; color: var(--vs-muted-2);
}
.vs-ss-card-body > :first-child { margin-top: 0; }
.vs-ss-card-body > :last-child { margin-bottom: 0; }

/* ---- 26.4  COPY ---------------------------------------------------------- */
.vs-ss .vs-ss-p, .vs-ss-card-body p {
  margin: 0 0 14px; font-size: 14px; line-height: 1.7; color: var(--vs-muted);
}
.vs-ss-card--aside .vs-ss-card-body p { font-size: 13px; line-height: 1.7; }
.vs-ss-card-body p:last-child { margin-bottom: 0; }
.vs-ss-card-body strong { color: var(--vs-ink); font-weight: 700; }
.vs-ss-card-body a { color: var(--vs-accent); text-decoration: underline; text-underline-offset: 2px; }
.vs-ss-lead {
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 18px; padding: 22px 24px;
}
.vs-ss-lead p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.7; color: var(--vs-muted); }
.vs-ss-lead p:last-child { margin-bottom: 0; }

/* Bulleted sections. The theme resets list-style globally, so the marker is
   drawn here rather than left to the browser. */
.vs-ss .vs-ss-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.vs-ss .vs-ss-list > li {
  position: relative; padding: 12px 16px 12px 40px;
  background: var(--vs-card-soft); border: 1px solid var(--vs-border-soft);
  border-radius: 12px;
  font-size: 13.8px; line-height: 1.65; color: var(--vs-muted);
  transition: border-color .25s ease, transform .25s ease, background-color .25s ease;
}
.vs-ss .vs-ss-list > li::before {
  content: ""; position: absolute; left: 17px; top: 20px;
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--vs-accent); box-shadow: 0 0 0 3px var(--vs-accent-glow);
}
.vs-ss .vs-ss-list > li:hover { border-color: var(--vs-accent-dim); transform: translateX(3px); }
.vs-ss .vs-ss-card--aside .vs-ss-list > li { font-size: 12.8px; padding: 10px 13px 10px 34px; }
.vs-ss .vs-ss-card--aside .vs-ss-list > li::before { left: 14px; top: 17px; width: 6px; height: 6px; }

/* Tech Stack: "Label: value" reads better as rows than as bullets. */
.vs-ss .vs-ss-rows { list-style: none; margin: 0; padding: 0; }
.vs-ss .vs-ss-rows > li {
  display: block; padding: 10px 0;
  border-bottom: 1px dashed var(--vs-border);
  font-size: 13px; line-height: 1.6; color: var(--vs-ink);
}
.vs-ss .vs-ss-rows > li:first-child { padding-top: 0; }
.vs-ss .vs-ss-rows > li:last-child { border-bottom: 0; padding-bottom: 0; }
.vs-ss .vs-ss-rows > li strong {
  display: block; margin-bottom: 3px;
  font-size: 10.5px; font-weight: 700; letter-spacing: 1px;
  text-transform: uppercase; color: var(--vs-muted-2);
}

/* ---- 26.5  RAIL CTA ------------------------------------------------------ */
.vs-ss-cta-card {
  display: flex; flex-direction: column; gap: 10px;
  background:
    radial-gradient(120% 160% at 100% 0%, var(--vs-accent-glow) 0%, transparent 62%),
    var(--vs-panel);
  border: 1px solid var(--vs-border); border-radius: 18px; padding: 20px;
}
.vs-ss-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 42px; padding: 11px 18px; border-radius: 10px;
  font-size: 13px; font-weight: 700; text-align: center;
  border: 1px solid transparent;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.vs-ss-btn--primary { background: var(--vs-accent); border-color: var(--vs-accent); color: var(--vs-on-accent); }
.vs-ss-btn--primary:hover { background: var(--vs-accent-bright); border-color: var(--vs-accent-bright); transform: translateY(-2px); }
.vs-ss-btn--ghost { background: var(--vs-card); border-color: var(--vs-border); color: var(--vs-ink); }
.vs-ss-btn--ghost:hover { border-color: var(--vs-accent-dim); color: var(--vs-accent); }

/* ---- 26.6  RESPONSIVE ---------------------------------------------------- */
@media (max-width: 1180px) {
  .vs-ss-grid { grid-template-columns: minmax(0, 1fr) 300px; }
  .vs-ss-hero { padding: 34px 32px 36px; }
}
@media (max-width: 980px) {
  .vs-ss { --vs-ss-gap: 20px; }
  .vs-ss-grid { grid-template-columns: minmax(0, 1fr); }
  .vs-ss-aside { position: static; gap: 14px; }
  .vs-ss-hero { border-radius: 20px; padding: 30px 26px 32px; }
  .vs-ss-card { padding: 24px 24px 26px; }
  .vs-ss-body { padding-bottom: 0; }
}
@media (max-width: 767px) {
  .vs-ss { --vs-ss-gap: 16px; }
  .vs-ss-hero { border-radius: 18px; padding: 24px 20px 26px; }
  .vs-ss-eyebrow { margin-top: 18px; }
  .vs-ss-title { max-width: none; letter-spacing: -.4px; }
  .vs-ss-card { border-radius: 16px; padding: 20px 18px 22px; }
  .vs-ss-card--aside { padding: 18px 18px 20px; }
  .vs-ss-card-head { gap: 11px; padding-bottom: 13px; margin-bottom: 15px; }
  .vs-ss-num { width: 30px; height: 30px; border-radius: 9px; font-size: 11.5px; }
  .vs-ss .vs-ss-card--main .vs-ss-card-title { font-size: 17px; }
  .vs-ss .vs-ss-list > li { padding: 11px 13px 11px 34px; font-size: 13.4px; }
  .vs-ss .vs-ss-list > li::before { left: 14px; top: 19px; }
  .vs-ss-lead { border-radius: 14px; padding: 18px; }
  .vs-ss-body { padding-bottom: 0; }
  /* Long unbroken strings (URLs, <<placeholders>>) must not widen the page. */
  .vs-ss h1, .vs-ss h2, .vs-ss h3, .vs-ss p, .vs-ss li, .vs-ss a { overflow-wrap: break-word; }
}
@media (max-width: 560px) {
  .vs-ss-btn { width: 100%; }
  .vs-ss-back { padding: 6px 12px; font-size: 12px; }
}
@media (hover: none) {
  /* Stops a hover lift latching after a tap on a touch screen. */
  .vs-ss-card--main:hover { transform: none; box-shadow: none; border-color: var(--vs-border); }
  .vs-ss .vs-ss-list > li:hover { transform: none; border-color: var(--vs-border-soft); }
  .vs-ss-back:hover { transform: none; }
  .vs-ss-btn--primary:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .vs-ss * { transition: none !important; }
}

/* ==========================================================================
   27. STORY LIBRARY - NINE CARDS INSTEAD OF THREE                   (v2.5)

   The card markup and the card design are unchanged: section 18 still owns
   both, so the three cards that were already there render exactly as before.
   The library only needed the one rule below.
   ========================================================================== */

/* main.js now filters the library by tag (see initChips). Cards it filters
   out get this class; everything else about them is untouched, so clearing
   the filter puts them straight back. */
.elementor .vs-case-story.vs-story-hidden { display: none !important; }


/* ==========================================================================
   27. SPACING SYSTEM - TEMPLATE & PLAIN-CONTENT PAGES                  (v2.6)

   The tokens live in section 5.0. This section only covers the templates
   that are not built from Elementor sections.
   ========================================================================== */

/* Single insight: the template's inline CSS adds 64px above and 96px below
   the article on top of the page wrap and footer gaps (100px / 160px in
   total). Let the shared page-top and section tokens handle it instead. */
.vs-page-wrap > .vs-insight { padding-top: 0; padding-bottom: 0; }

/* Plain content (block-editor pages and posts, or Elementor pages made of a
   single Text Editor widget) had no vertical rhythm: headings, lists and
   dividers sat flush against each other. Designed Elementor pages are left
   alone by the :has() guard. */
.vs-page-wrap > :is(h1, h2, h3, h4, h5, h6),
.elementor:not(:has(.vs-section-head, .vs-hero-box, .vs-careers-hero, .vigour-master-container)) .elementor-widget-text-editor > :is(h1, h2, h3, h4, h5, h6) {
  margin-top: 1.6em; margin-bottom: .6em;
}
.vs-page-wrap > :is(p, ul, ol, blockquote, figure, table, pre),
.elementor:not(:has(.vs-section-head, .vs-hero-box, .vs-careers-hero, .vigour-master-container)) .elementor-widget-text-editor > :is(p, ul, ol, blockquote, figure, table, pre) {
  margin-top: 0; margin-bottom: 1em;
}
.vs-page-wrap > :is(ul, ol) > li + li,
.elementor:not(:has(.vs-section-head, .vs-hero-box, .vs-careers-hero, .vigour-master-container)) .elementor-widget-text-editor > :is(ul, ol) > li + li { margin-top: .35em; }
.vs-page-wrap > hr,
.elementor:not(:has(.vs-section-head, .vs-hero-box, .vs-careers-hero, .vigour-master-container)) .elementor-widget-text-editor > hr { margin: 2em 0; }
.vs-page-wrap > :first-child,
.elementor:not(:has(.vs-section-head, .vs-hero-box, .vs-careers-hero, .vigour-master-container)) .elementor-widget-text-editor > :first-child { margin-top: 0; }
.vs-page-wrap > :last-child,
.elementor:not(:has(.vs-section-head, .vs-hero-box, .vs-careers-hero, .vigour-master-container)) .elementor-widget-text-editor > :last-child { margin-bottom: 0; }

/* A stray empty link paragraph at the very top of the content must not push
   the first heading down. */
.vs-page-wrap > p:first-child:has(> a:only-child:empty) + *,
.elementor:not(:has(.vs-section-head, .vs-hero-box, .vs-careers-hero, .vigour-master-container)) .elementor-widget-text-editor > p:first-child:has(> a:only-child:empty) + * { margin-top: 0; }
.vs-page-wrap > p:first-child:has(> a:only-child:empty),
.elementor:not(:has(.vs-section-head, .vs-hero-box, .vs-careers-hero, .vigour-master-container)) .elementor-widget-text-editor > p:first-child:has(> a:only-child:empty) { margin: 0 !important; }


/* ==========================================================================
   28. CORE COMPETENCIES - DARK MODE                                   (v2.7)

   The Core Competencies block (.v-comp-wrapper) is an Elementor container
   whose colours were typed into the widgets (white cards, #EAEAEA borders,
   #111827 headings). Those hard-coded values ignore the theme switch, so in
   dark mode the cards stayed white and the section title disappeared.
   These rules map them to the theme tokens only when dark mode is on;
   light mode is unchanged.
   ========================================================================== */
html[data-theme="dark"] .v-comp-wrapper .v-comp-title .elementor-heading-title,
html[data-theme="dark"] .v-comp-wrapper .v-comp-card.e-con .v-card-title .elementor-heading-title { color: var(--vs-ink); }
html[data-theme="dark"] .v-comp-wrapper .v-comp-kicker .elementor-heading-title { color: var(--vs-muted); }

html[data-theme="dark"] .v-comp-wrapper .elementor-element.v-comp-card.e-con,
html[data-theme="dark"] .v-comp-wrapper .elementor-element.v-comp-card.e-con:not(.elementor-motion-effects-element-type-background) {
  background-color: var(--vs-card);
  border-color: var(--vs-border);
  --border-color: var(--vs-border);
}
html[data-theme="dark"] .v-comp-wrapper .v-comp-card.e-con > .elementor-motion-effects-container > .elementor-motion-effects-layer { background-color: var(--vs-card); }
html[data-theme="dark"] .v-comp-wrapper .v-comp-card.e-con .v-card-desc,
html[data-theme="dark"] .v-comp-wrapper .v-comp-card.e-con .v-card-desc p { color: var(--vs-muted); }

html[data-theme="dark"] .v-comp-wrapper .v-comp-card.e-con .v-card-icon .elementor-icon { color: var(--vs-accent); border-color: var(--vs-accent); }
html[data-theme="dark"] .v-comp-wrapper .v-comp-card.e-con .v-card-icon .elementor-icon svg { fill: var(--vs-accent); }

html[data-theme="dark"] .v-comp-wrapper .elementor-widget-button .elementor-button { color: var(--vs-accent); fill: var(--vs-accent); }
html[data-theme="dark"] .v-comp-wrapper .elementor-widget-button .elementor-button:hover,
html[data-theme="dark"] .v-comp-wrapper .elementor-widget-button .elementor-button:focus { color: var(--vs-accent-bright); fill: var(--vs-accent-bright); }

html[data-theme="dark"] .v-comp-wrapper .v-comp-card.e-con:hover,
html[data-theme="dark"] .v-comp-wrapper .v-comp-card.e-con.is-active { border-color: var(--vs-accent-dim); }


/* ==========================================================================
   29. FULL-WIDTH BOXED CONTAINERS + PARTNERS CARD                     (v2.8)
   ========================================================================== */

/* Boxed top-level Containers were capped at Elementor's 1140px boxed width
   while every other section spans the full content column (1176px), so
   they - most visibly the Partners card on Home - looked narrower and
   inset. Let them fill the same column as the rest of the page. */
.elementor > .e-con.e-con-boxed:not(.vigour-master-container) { --content-width: 100%; }

/* Partners card: same inner padding as the other full-width panel cards
   (CTA box) at every breakpoint. */
.elementor .elementor-partners-card { padding: 32px 36px; }
@media (max-width: 1080px) { .elementor .elementor-partners-card { padding: 26px 24px; } }
@media (max-width: 767px)  { .elementor .elementor-partners-card { padding: 22px 20px; } }


/* ==========================================================================
   30. CONTACT - QUICK INQUIRY ICON                                     (v2.9)

   The chat icon sat in the header row right against the end of
   "Start your Conversation here" (the title was nowrap, so nothing kept
   them apart). The icon is now pinned to the panel's top-right corner,
   raised a little, beside the small "Quick Inquiry form" label; the
   heading starts just below it and keeps the full width, so the two can
   never touch.
   ========================================================================== */
.elementor .v-inquiry-box { position: relative; }
.elementor .v-inquiry-box .v-inquiry-header { display: block; padding-right: 0; }
.elementor .v-inquiry-box .v-inquiry-subtitle { padding-right: 64px; margin-bottom: 14px; }
.elementor .v-inquiry-box .v-inquiry-title { white-space: normal; }
.elementor .v-inquiry-box .v-inquiry-icon-box { position: absolute; top: 18px; right: 18px; width: 42px; height: 42px; }
.elementor .v-inquiry-box .v-inquiry-icon-box svg { width: 21px; height: 21px; }
@media (max-width: 767px) {
  .elementor .v-inquiry-box .v-inquiry-subtitle { padding-right: 52px; }
  .elementor .v-inquiry-box .v-inquiry-icon-box { top: 14px; right: 14px; width: 36px; height: 36px; border-radius: 9px; }
  .elementor .v-inquiry-box .v-inquiry-icon-box svg { width: 18px; height: 18px; }
}

/* Section-header right-side links (View all offerings / case studies / insights, etc.): uniform font size on all pages */
.elementor .v-comp-view-all .elementor-button,
.elementor .vs-link-arrow.vs-align-right .elementor-button { font-size: 13.5px !important; font-weight: 600 !important; }

/* Card hover for cards that had none (Home competencies, Offerings services, Careers benefits/testimonials/locations, GCC challenge/solution/step cards) */
.elementor .v-comp-wrapper .v-comp-card.e-con,
.elementor .v-services-card,
.elementor .v-benefits-card,
.elementor .vigour-testimonial-card,
.elementor .vs-loc-card,
.elementor .v-box.v-challenge-card,
.elementor .v-box.v-solution-card,
.elementor .v-box.vb-step-card {
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease, background-color .3s ease;
}
@media (hover: hover) {
.elementor .v-comp-wrapper .v-comp-card.e-con:hover,
.elementor .v-services-card:hover,
.elementor .v-benefits-card:hover,
.elementor .vigour-testimonial-card:hover,
.elementor .vs-loc-card:hover,
.elementor .v-box.v-challenge-card:hover,
.elementor .v-box.v-solution-card:hover,
.elementor .v-box.vb-step-card:hover {
  transform: translateY(-5px);
  border-color: var(--vs-accent-dim) !important;
  box-shadow: var(--vs-shadow-hover) !important;
}
}

/* ==========================================================================
   CASE STUDIES / SUCCESS STORIES added in wp-admin (inc/collections.php)
   Extras in the detail-page hero: summary line, tag chips, result highlights,
   cover image. Same tokens as the rest of the .vs-ss layout.
   ========================================================================== */
.vs-ss-sub { margin: 14px 0 0; max-width: 760px; font-size: 15px; line-height: 1.7; color: var(--vs-muted); }
.vs-ss-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.vs-ss-chip {
  display: inline-block; background: var(--vs-card); border: 1px solid var(--vs-border);
  border-radius: 7px; padding: 6px 12px; font-size: 11.5px; font-weight: 600; color: var(--vs-muted); line-height: 1.3;
}
.vs-ss-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-top: 24px; }
.vs-ss-stat {
  background: var(--vs-card); border: 1px solid var(--vs-border); border-radius: 12px; padding: 16px;
  transition: transform .25s ease, border-color .25s ease;
}
.vs-ss-stat:hover { transform: translateY(-3px); border-color: var(--vs-accent-dim); }
.vs-ss-stat strong { display: block; font-size: 16px; font-weight: 800; color: var(--vs-accent); margin-bottom: 6px; }
.vs-ss-stat span { display: block; font-size: 12px; line-height: 1.5; color: var(--vs-muted); }
.vs-ss-cover { margin: 0 0 var(--vs-ss-gap, 24px); }
.vs-ss-cover img { display: block; width: 100%; height: auto; max-height: 460px; object-fit: cover; border-radius: 20px; border: 1px solid var(--vs-border); }

/* Blogs & Resources hero: intro paragraph spans the full hero width (per Figma). */
.elementor-105 .vs-hero-box .vs-lede { max-width: none; }

/* Site-wide: form controls inherit Inter instead of the browser/system default font. */
button, input, select, textarea, optgroup { font-family: inherit; }

/* Careers: the embedded Keka jobs widget ships with Roboto - switch its text to Inter (its icon font on ::before is untouched). */
#khembedjobs, #khembedjobs * { font-family: var(--vs-font) !important; }

/* =========================================================
   Home – Careers section (compact two-column layout)
   Scoped to the careers head row + .vs-careers-grid only.
   ========================================================= */
.vs-section-head:has(+ .vs-careers-grid) > .elementor-container { align-items: flex-start; }
.elementor .vs-section-head:has(+ .vs-careers-grid) { margin-bottom: 22px !important; }
.elementor .vs-section-head:has(+ .vs-careers-grid) .vs-eyebrow { font-size: 11px; font-weight: 500; letter-spacing: 1.6px; color: var(--vs-muted); margin-bottom: 14px !important; }
.elementor .vs-section-head:has(+ .vs-careers-grid) .vs-head-h2,
.elementor .vs-section-head:has(+ .vs-careers-grid) .vs-head-h2 .elementor-heading-title { font-size: 21px; font-weight: 600; letter-spacing: -0.2px; }
.elementor .vs-section-head:has(+ .vs-careers-grid) .vs-head-note { font-size: 13px; line-height: 1.6; max-width: 440px; }
.elementor .vs-flex.vs-section-head:has(+ .vs-careers-grid) > .elementor-container > .elementor-column:first-child { flex: 0.85 1 0; }
.elementor .vs-flex.vs-section-head:has(+ .vs-careers-grid) > .elementor-container > .elementor-column:last-child { flex: 1.15 1 0; }
.elementor .vs-section-head:has(+ .vs-careers-grid) .vs-head-right > .elementor-widget-wrap { padding-left: 17% !important; }

.vs-careers-grid > .elementor-container { align-items: flex-start; column-gap: 4%; }

/* Left: plain text block, no card chrome */
.vs-careers-grid .vs-careers-card { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 4px 0 0 !important; }
.elementor .vs-careers-grid .vs-careers-h3,
.elementor .vs-careers-grid .vs-careers-h3 .elementor-heading-title { font-size: 25px; font-weight: 600; line-height: 1.3; letter-spacing: -0.3px; max-width: 420px; }
.elementor .vs-careers-grid .vs-careers-h3 { margin-bottom: 14px !important; }
.elementor .vs-careers-grid .vs-careers-text { font-size: 13.5px; max-width: 420px; margin-bottom: 14px !important; }
.elementor .vs-careers-grid .vs-careers-card > .elementor-widget-wrap > .vs-btn-secondary { margin-top: 0 !important; max-width: 430px; }
.elementor .vs-careers-grid .vs-btn-secondary .elementor-button {
  background: color-mix(in srgb, var(--vs-ink) 15%, var(--vs-card)) !important;
  border-color: transparent !important; border-radius: 12px !important; min-height: 38px; padding: 10px 20px !important;
  font-size: 14px !important; font-weight: 500 !important; color: var(--vs-ink) !important;
  box-shadow: 0 4px 10px rgba(16, 18, 23, .14);
}
.elementor .vs-careers-grid .vs-btn-secondary .elementor-button:hover { border-color: transparent !important; box-shadow: 0 6px 14px rgba(16, 18, 23, .18); }

/* Right: white card holding grey job rows */
.vs-careers-grid .vs-job-list { background: var(--vs-card) !important; border: 1px solid var(--vs-border); border-radius: 16px !important; padding: 12px 14px !important; box-shadow: 0 2px 12px rgba(16, 18, 23, .05); }
.vs-careers-grid .vs-job-list > .elementor-widget-wrap { row-gap: 8px; }
.vs-careers-grid .vs-job-row { background: var(--vs-border-soft) !important; border-radius: 8px; padding: 10px 10px 12px !important; margin-bottom: 0 !important; }
.vs-careers-grid .vs-job-row:hover { background: var(--vs-card-soft) !important; }
.vs-careers-grid .vs-job-row .elementor-column > .elementor-widget-wrap { padding: 0 !important; }
.elementor .vs-careers-grid .vs-job-title,
.elementor .vs-careers-grid .vs-job-title .elementor-heading-title { font-size: 13.5px; font-weight: 500; }
.elementor .vs-careers-grid .vs-job-meta { font-size: 10.5px; line-height: 1.4; }
.elementor .vs-careers-grid .vs-job-tag { border-radius: 999px; padding: 6px 18px; min-width: 72px; text-align: center; font-size: 12px; font-weight: 500; }
.elementor .vs-careers-grid .vs-job-tag .elementor-heading-title { font-size: inherit; font-weight: inherit; line-height: inherit; color: #fff !important; }
.elementor .vs-careers-grid .vs-job-title .elementor-heading-title { margin: 0 !important; line-height: 1.35; }
.elementor .vs-careers-grid .vs-job-title { margin-bottom: 6px !important; }
.elementor .vs-section-head:has(+ .vs-careers-grid) .elementor-widget-text-editor p,
.elementor .vs-careers-grid .elementor-widget-text-editor p { margin: 0 !important; }

@media (max-width: 980px) {
  .elementor .vs-section-head:has(+ .vs-careers-grid) .vs-head-right > .elementor-widget-wrap { padding-left: 0 !important; }
  .elementor .vs-careers-grid .vs-careers-card > .elementor-widget-wrap > .vs-btn-secondary { max-width: none; }
  .vs-careers-grid .vs-careers-card > .elementor-widget-wrap { padding-right: 0 !important; }
}
@media (max-width: 767px) {
  .elementor .vs-careers-grid .vs-careers-h3,
  .elementor .vs-careers-grid .vs-careers-h3 .elementor-heading-title { font-size: 21px; }
  .elementor .vs-careers-grid .vs-job-tag { margin-left: auto !important; }
  .vs-careers-grid .vs-job-row > .elementor-container { flex-wrap: nowrap; align-items: center; }
}

/* Home careers rows are filled from Keka (inc/keka-jobs.php): whole row links to the job. */
.vs-careers-grid .vs-job-row { position: relative; }
.vs-careers-grid .vs-job-row--link { cursor: pointer; }
.vs-careers-grid .vs-job-link { position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.vs-careers-grid .vs-job-link:focus-visible { outline: 2px solid var(--vs-accent); outline-offset: 2px; }

/* =========================================================
   Home – Core Competencies: compact layout (per reference)
   Scoped to the home page .v-comp-wrapper only.
   ========================================================= */
.home .elementor .v-comp-wrapper { margin-bottom: 28px !important; }
.home .elementor .v-comp-wrapper .e-con:has(> .e-con > .v-comp-title),
.home .elementor .v-comp-wrapper .e-con:has(> .v-comp-view-all) { align-items: flex-end !important; margin-bottom: 24px !important; }
.home .elementor .v-comp-wrapper .e-con:has(> .v-comp-title) { --gap: 14px; --row-gap: 14px; gap: 14px !important; }
.home .elementor .v-comp-wrapper .v-comp-kicker .elementor-heading-title { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; line-height: 1.4 !important; }
.home .elementor .v-comp-wrapper .v-comp-title .elementor-heading-title { font-size: 22px !important; font-weight: 600 !important; line-height: 1.35 !important; letter-spacing: -0.2px; }
.home .elementor .v-comp-wrapper .v-comp-view-all { margin: 0 0 4px !important; align-self: flex-end !important; }
.home .elementor .v-comp-wrapper .v-comp-view-all .elementor-button { font-size: 13px !important; font-weight: 500 !important; padding: 0 !important; }

/* Grid + cards */
.home .elementor .v-comp-wrapper .e-con.e-grid:has(> .v-comp-card) { --gap: 18px; --row-gap: 18px; --column-gap: 18px; gap: 18px !important; }
.home .elementor .v-comp-wrapper .v-comp-card.e-con { padding: 20px 20px 18px !important; border-radius: 14px !important; box-shadow: 0 2px 10px rgba(16, 18, 23, .06) !important; }
.home .v-comp-wrapper .v-comp-card.e-con > .e-con-inner > .v-card-top,
.home .v-comp-wrapper .v-comp-card.e-con > .v-card-top { margin-bottom: 12px !important; align-items: center !important; }
.home .elementor .v-comp-wrapper .v-comp-card .v-card-title .elementor-heading-title { font-size: 16px !important; font-weight: 500 !important; line-height: 1.35 !important; }
.home .elementor .v-comp-wrapper .v-comp-card .v-card-icon .elementor-icon { font-size: var(--vs-icon-size, 20px) !important; }
.home .elementor .v-comp-wrapper .v-comp-card .v-card-icon .elementor-icon svg { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; }
.home .v-comp-wrapper .v-comp-card .v-card-desc.elementor-element { margin-bottom: 14px !important; }
.home .elementor .v-comp-wrapper .v-comp-card .v-card-desc,
.home .elementor .v-comp-wrapper .v-comp-card .v-card-desc p { font-size: 13px !important; line-height: 1.6 !important; }
.home .v-comp-wrapper .v-comp-card .v-card-desc p { margin: 0 0 10px !important; }
.home .v-comp-wrapper .v-comp-card .v-card-desc p:last-child { margin-bottom: 0 !important; }
.home .elementor .v-comp-wrapper .v-comp-card .v-card-link .elementor-button { font-size: 12.5px !important; font-weight: 500 !important; padding: 0 !important; }

@media (max-width: 767px) {
  .home .elementor .v-comp-wrapper .e-con:has(> .e-con > .v-comp-title),
  .home .elementor .v-comp-wrapper .e-con:has(> .v-comp-view-all) { align-items: flex-start !important; margin-bottom: 20px !important; }
  .home .elementor .v-comp-wrapper .v-comp-title .elementor-heading-title { font-size: 20px !important; }
  .home .elementor .v-comp-wrapper .e-con.e-grid:has(> .v-comp-card) { --gap: 14px; --row-gap: 14px; gap: 14px !important; }
}

/* =========================================================
   Home – Case Studies: compact panel layout (per reference)
   Filter row + case grid read as one white panel.
   Scoped to the home page only.
   ========================================================= */

/* Panel: top half (filters) */

/* Panel: bottom half (cards) */

/* Home – Case Studies: tighter cards, result chips kept on one line (desktop). */

/* Home – Case Studies: keep "View case study" links on one baseline across cards. */

/* =========================================================
   Home – Insights: compact layout (per reference) + tighter gap
   before the "Ready to engineer what's next?" CTA. Home only.
   ========================================================= */
.home .elementor .vs-section-head:has(+ .vs-insight-grid) { margin-bottom: 22px !important; }
.home .elementor .vs-section-head:has(+ .vs-insight-grid) .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 14px !important; }
.home .elementor .vs-section-head:has(+ .vs-insight-grid) .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.home .elementor .vs-section-head:has(+ .vs-insight-grid) .vs-heading-row > .elementor-container { align-items: flex-end; }
.home .elementor .vs-section-head:has(+ .vs-insight-grid) .vs-head-h2,
.home .elementor .vs-section-head:has(+ .vs-insight-grid) .vs-head-h2 .elementor-heading-title { font-size: 22px !important; font-weight: 600 !important; line-height: 1.35 !important; letter-spacing: -0.2px; max-width: none !important; }
.home .elementor .vs-section-head:has(+ .vs-insight-grid) .vs-link-arrow { margin-bottom: 4px !important; }
.home .elementor .vs-section-head:has(+ .vs-insight-grid) .vs-link-arrow .elementor-button { font-size: 13px !important; font-weight: 500 !important; }
.home .elementor .vs-section-head + .vs-insight-grid { margin-bottom: 32px !important; }
.home .elementor .vs-section-head + .vs-insight-grid > .elementor-container { gap: 18px !important; }
.home .elementor .vs-section-head + .vs-insight-grid .vs-insight-card { padding: 14px 16px 16px !important; border-radius: 14px !important; box-shadow: 0 2px 10px rgba(16, 18, 23, .05) !important; }
.home .elementor .vs-section-head + .vs-insight-grid .vs-tag { background: var(--vs-accent) !important; border: 0 !important; border-radius: 999px !important; padding: 2px 10px !important; margin: 0 0 9px !important; width: fit-content !important; }
.home .elementor .vs-section-head + .vs-insight-grid .vs-tag .elementor-heading-title { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; color: #fff !important; line-height: 1.5 !important; }
.home .elementor .vs-section-head + .vs-insight-grid .vs-insight-title { margin: 0 0 8px !important; }
.home .elementor .vs-section-head + .vs-insight-grid .vs-insight-title .elementor-heading-title { font-size: 14.5px !important; font-weight: 500 !important; line-height: 1.45 !important; }
.home .elementor .vs-section-head + .vs-insight-grid .vs-meta { margin: auto 0 0 !important; font-size: 11px !important; color: var(--vs-muted) !important; }
@media (max-width: 767px) {
  .home .elementor .vs-section-head:has(+ .vs-insight-grid) .vs-head-h2,
  .home .elementor .vs-section-head:has(+ .vs-insight-grid) .vs-head-h2 .elementor-heading-title { font-size: 20px !important; }
  .home .elementor .vs-section-head + .vs-insight-grid > .elementor-container { gap: 14px !important; }
  .home .elementor .vs-section-head + .vs-insight-grid { margin-bottom: 24px !important; }
}

/* =========================================================
   Home – closing CTA ("Ready to engineer what's next?"):
   light compact card (per reference). Home only.
   ========================================================= */
.home .elementor .vs-insight-grid + .vs-cta-box { background: var(--vs-card) !important; border: 1px solid var(--vs-border) !important; border-radius: 16px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .06) !important; padding: 20px 28px !important; overflow: hidden; }
.home .elementor .vs-insight-grid + .vs-cta-box::before,
.home .elementor .vs-insight-grid + .vs-cta-box::after { display: none !important; }
.home .elementor .vs-insight-grid + .vs-cta-box > .elementor-container { align-items: center !important; }
.home .elementor .vs-insight-grid + .vs-cta-box .vs-cta-h2 { margin: 0 0 6px !important; }
.home .elementor .vs-insight-grid + .vs-cta-box .vs-cta-h2 .elementor-heading-title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.35 !important; color: var(--vs-ink) !important; letter-spacing: -0.1px; }
.home .elementor .vs-insight-grid + .vs-cta-box .vs-cta-text,
.home .elementor .vs-insight-grid + .vs-cta-box .vs-cta-text p { font-size: 12.5px !important; line-height: 1.55 !important; color: var(--vs-muted) !important; margin: 0 !important; }
.home .elementor .vs-insight-grid + .vs-cta-box .vs-btn-primary .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; box-shadow: none !important; }
@media (max-width: 767px) {
  .home .elementor .vs-insight-grid + .vs-cta-box { padding: 18px !important; }
  .home .elementor .vs-insight-grid + .vs-cta-box .vs-btn-primary .elementor-button { min-height: 40px !important; }
}

/* =========================================================
   About Us (page 102) – compact hero, story and vision/mission
   (per reference). Scoped to .elementor-102 only.
   ========================================================= */
/* Hero */
.elementor-102 .vs-hero-box { padding: 36px 40px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-102 .vs-hero-box > .elementor-container { align-items: flex-start; }
.elementor-102 .vs-hero-box .vs-eyebrow-pill { margin-bottom: 18px !important; }
.elementor-102 .vs-hero-box .vs-eyebrow-pill p { padding: 5px 13px !important; font-size: 11.5px !important; }
.elementor-102 .vs-hero-box .vs-hero-h1 { margin-bottom: 16px !important; }
.elementor-102 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 36px !important; line-height: 1.25 !important; letter-spacing: -0.6px; }
.elementor-102 .vs-hero-box .vs-lede, .elementor-102 .vs-hero-box .vs-lede p { font-size: 13.5px !important; line-height: 1.65 !important; margin-bottom: 0 !important; }
.elementor-102 .vs-hero-box .vs-side-panel {
  padding: 16px !important; border-radius: 16px !important; margin: 12px 12px 12px 0 !important;
  box-shadow: 0 0 0 12px var(--vs-card), 0 0 0 13px var(--vs-border) !important;
}
.elementor-102 .vs-hero-box .vs-panel-intro { margin-bottom: 14px !important; padding: 0 4px; }
.elementor-102 .vs-hero-box .vs-panel-intro p { font-size: 11.5px !important; line-height: 1.55 !important; margin: 0 !important; }
.elementor-102 .vs-hero-box .vs-side-panel .vs-row-mb { margin-bottom: 10px !important; }
.elementor-102 .vs-hero-box .vs-side-panel .vs-flex > .elementor-container { gap: 10px !important; }
.elementor-102 .vs-hero-box .vs-info-cell { padding: 11px 12px !important; border-radius: 10px !important; }
.elementor-102 .vs-hero-box .vs-cell-label { margin-bottom: 4px !important; }
.elementor-102 .vs-hero-box .vs-cell-label p { margin: 0 !important; font-size: 10px !important; line-height: 1.4 !important; color: var(--vs-muted) !important; }
.elementor-102 .vs-hero-box .vs-cell-value { margin: 0 !important; }
.elementor-102 .vs-hero-box .vs-cell-value .elementor-heading-title { font-size: 12.5px !important; font-weight: 500 !important; line-height: 1.4 !important; }

/* Section heads: eyebrow + h2 */
.elementor-102 .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-102 .vs-story-grid .vs-eyebrow,
.elementor-102 .vs-section-head .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 14px !important; }
.elementor-102 .vs-section-head:has(+ .vs-vm-grid) { margin-bottom: 26px !important; }
.elementor-102 .vs-section-head:has(+ .vs-vm-grid) .vs-head-h2,
.elementor-102 .vs-section-head:has(+ .vs-vm-grid) .vs-head-h2 .elementor-heading-title { font-size: 22px !important; font-weight: 600 !important; line-height: 1.35 !important; max-width: none !important; }

/* Our Story */
.elementor-102 .vs-story-grid > .elementor-container { align-items: flex-start; }
.elementor-102 .vs-story-grid .vs-story-h2 { margin-bottom: 14px !important; max-width: 480px; }
.elementor-102 .vs-story-grid .vs-story-h2 .elementor-heading-title { font-size: 21px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-102 .vs-story-grid .vs-story-text { margin-bottom: 12px !important; }
.elementor-102 .vs-story-grid .vs-story-text, .elementor-102 .vs-story-grid .vs-story-text p { font-size: 13px !important; line-height: 1.6 !important; }
.elementor-102 .vs-story-grid .vs-story-text p { margin: 0 0 10px !important; }
.elementor-102 .vs-story-grid .vs-story-text p:last-child { margin-bottom: 0 !important; }
.elementor-102 .vs-story-grid .vs-story-card { padding: 22px 24px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-102 .vs-story-grid .vs-story-card-top { margin-bottom: 10px !important; }
.elementor-102 .vs-story-grid .vs-story-card-top > .elementor-container { align-items: center !important; }
.elementor-102 .vs-story-grid .vs-story-card-h4 .elementor-heading-title { font-size: 15px !important; font-weight: 500 !important; }
.elementor-102 .vs-story-grid .vs-story-card .vs-value-text { margin-top: 0 !important; }
.elementor-102 .vs-story-grid .vs-story-card .vs-value-text p { font-size: 13px !important; line-height: 1.6 !important; margin: 0 0 10px !important; }
.elementor-102 .vs-story-grid .vs-story-card .vs-value-text p:last-child { margin-bottom: 0 !important; }

/* Vision & Mission */
.elementor-102 .vs-vm-grid > .elementor-container { align-items: stretch; }
.elementor-102 .vs-vm-grid .vs-vm-card { padding: 22px 24px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-102 .vs-vm-grid .vs-vm-top { margin-bottom: 14px !important; }
.elementor-102 .vs-vm-grid .vs-vm-top > .elementor-container { align-items: center !important; }
.elementor-102 .vs-vm-grid .vs-vm-top .vs-eyebrow { font-size: 10.5px !important; font-weight: 500 !important; letter-spacing: 1.4px !important; color: var(--vs-muted) !important; margin-bottom: 4px !important; }
.elementor-102 .vs-vm-grid .vs-vm-h3 .elementor-heading-title { font-size: 15px !important; font-weight: 500 !important; line-height: 1.4 !important; }
.elementor-102 .vs-vm-grid .vs-vm-h5 { margin-bottom: 4px !important; }
.elementor-102 .vs-vm-grid .vs-vm-h5 .elementor-heading-title { font-size: 12.5px !important; font-weight: 500 !important; line-height: 1.4 !important; }
.elementor-102 .vs-vm-grid .vs-vm-text { margin: 0 0 14px !important; }
.elementor-102 .vs-vm-grid .vs-vm-text p,
.elementor-102 .vs-vm-grid .vs-bullets li { font-size: 12px !important; line-height: 1.6 !important; }
.elementor-102 .vs-vm-grid .vs-vm-text p { margin: 0 !important; }
.elementor-102 .vs-vm-grid .vs-bullets { margin-top: 0 !important; }
.elementor-102 .vs-vm-grid .vs-bullets ul { margin: 0 !important; }
.elementor-102 .vs-vm-grid .vs-bullets li { margin: 0 !important; }
/* Timeline: ring in the middle of the connector line */
.elementor-102 .vs-vm-grid .vs-vm-connector { position: relative; }
.elementor-102 .vs-vm-grid .vs-vm-connector::after {
  content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 14px; transform: translate(-50%, -50%);
  border-radius: 50%; border: 2px solid var(--vs-accent); background: var(--vs-bg); box-sizing: border-box;
}

@media (max-width: 980px) {
  .elementor-102 .vs-hero-box .vs-side-panel { margin: 24px 12px 12px !important; }
}
@media (max-width: 767px) {
  .elementor-102 .vs-hero-box { padding: 24px 18px !important; }
  .elementor-102 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 28px !important; }
  .elementor-102 .vs-hero-box .vs-side-panel { margin: 20px 10px 10px !important; box-shadow: 0 0 0 10px var(--vs-card), 0 0 0 11px var(--vs-border) !important; }
  .elementor-102 .vs-story-grid .vs-story-card, .elementor-102 .vs-vm-grid .vs-vm-card { padding: 18px !important; }
}
@media (max-width: 767px) {
  /* About Us hero: keep the fact boxes two per row on phones */
  .elementor-102 .vs-hero-box .vs-side-panel .vs-flex > .elementor-container { flex-wrap: nowrap !important; gap: 8px !important; }
  .elementor-102 .vs-hero-box .vs-side-panel .vs-flex > .elementor-container > .elementor-column { width: 50% !important; flex: 1 1 0 !important; min-width: 0; margin-bottom: 0 !important; }
  .elementor-102 .vs-hero-box .vs-side-panel .vs-row-mb { margin-bottom: 8px !important; }
  .elementor-102 .vs-hero-box .vs-info-cell { padding: 10px !important; }
}

/* =========================================================
   About Us (page 102) – Core Values + Leadership: compact
   layout (per reference). Content unchanged.
   ========================================================= */
/* Section heads with a right-hand note (Core Values, Leadership, Who we work with) */
.elementor-102 .vs-section-head.vs-flex { margin-bottom: 24px !important; }
.elementor-102 .vs-section-head.vs-flex > .elementor-container { align-items: flex-start !important; }
.elementor-102 .vs-section-head.vs-flex .vs-head-h2,
.elementor-102 .vs-section-head.vs-flex .vs-head-h2 .elementor-heading-title { font-size: 20px !important; font-weight: 600 !important; line-height: 1.35 !important; max-width: 440px !important; }
.elementor-102 .vs-section-head.vs-flex .vs-head-right > .elementor-widget-wrap { padding-top: 22px !important; }
.elementor-102 .vs-section-head.vs-flex .vs-head-note,
.elementor-102 .vs-section-head.vs-flex .vs-head-note p { font-size: 12.5px !important; line-height: 1.6 !important; margin: 0 !important; color: var(--vs-muted) !important; }

/* Core Values – top row (Elementor cards) */

/* Core Values – remaining cards (HTML block) */

/* Leadership */

@media (max-width: 767px) {
  .elementor-102 .vs-section-head.vs-flex .vs-head-right > .elementor-widget-wrap { padding-top: 10px !important; }
}

/* About Us – Leadership: initials circle on the left, all details in one column beside it. */

/* =========================================================
   About Us (page 102) – Who we work with + closing CTA:
   compact layout (per reference). Content unchanged.
   ========================================================= */
.elementor-102 .vs-www-grid { margin-bottom: 48px !important; }
.elementor-102 .vs-www-grid > .elementor-container { align-items: stretch !important; gap: 28px !important; }

/* Left column */
.elementor-102 .vs-www-grid .vs-engage-h3 { margin-bottom: 12px !important; }
.elementor-102 .vs-www-grid .vs-engage-h3 .elementor-heading-title { font-size: 22px !important; font-weight: 600 !important; line-height: 1.3 !important; letter-spacing: -0.3px; }
.elementor-102 .vs-www-grid .vs-engage-text { margin-bottom: 16px !important; max-width: 320px; }
.elementor-102 .vs-www-grid .vs-engage-text, .elementor-102 .vs-www-grid .vs-engage-text p { font-size: 13px !important; line-height: 1.6 !important; margin-top: 0 !important; }
.elementor-102 .vs-www-grid .vs-engage-text p { margin-bottom: 0 !important; }
.elementor-102 .vs-www-grid .vs-tag-row > .elementor-container { gap: 7px !important; }
.elementor-102 .vs-www-grid .vs-tag-pill { padding: 5px 11px !important; border-radius: 999px !important; border: 0 !important; background: var(--vs-border-soft) !important; }
.elementor-102 .vs-www-grid .vs-tag-pill .elementor-heading-title { font-size: 11px !important; font-weight: 500 !important; line-height: 1.4 !important; }

/* Cards */
.elementor-102 .vs-www-grid .vs-www-card { padding: 20px 22px !important; border-radius: 16px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-102 .vs-www-grid .vs-www-h4 { margin-bottom: 10px !important; }
.elementor-102 .vs-www-grid .vs-www-h4 .elementor-heading-title { font-size: 15px !important; font-weight: 500 !important; line-height: 1.4 !important; }
.elementor-102 .vs-www-grid .vs-www-card .vs-bullets { margin-top: 0 !important; }
.elementor-102 .vs-www-grid .vs-www-card .vs-bullets ul { margin: 0 !important; }
.elementor-102 .vs-www-grid .vs-www-card .vs-bullets li { font-size: 12.5px !important; line-height: 1.5 !important; margin: 0 0 5px !important; padding-left: 12px !important; }
.elementor-102 .vs-www-grid .vs-www-card .vs-bullets li:last-child { margin-bottom: 0 !important; }
.elementor-102 .vs-www-grid .vs-www-card .vs-bullets li b { font-weight: 600; color: var(--vs-ink); }

/* Closing CTA */
.elementor-102 .vs-www-grid + .vs-cta-box { padding: 22px 28px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-102 .vs-www-grid + .vs-cta-box::before, .elementor-102 .vs-www-grid + .vs-cta-box::after { display: none !important; }
.elementor-102 .vs-www-grid + .vs-cta-box > .elementor-container { align-items: center !important; }
.elementor-102 .vs-www-grid + .vs-cta-box .vs-eyebrow { font-size: 10.5px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 8px !important; }
.elementor-102 .vs-www-grid + .vs-cta-box .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-102 .vs-www-grid + .vs-cta-box .vs-cta-h2 { margin-bottom: 8px !important; }
.elementor-102 .vs-www-grid + .vs-cta-box .vs-cta-h2 .elementor-heading-title { font-size: 18px !important; font-weight: 600 !important; line-height: 1.35 !important; color: var(--vs-ink) !important; }
.elementor-102 .vs-www-grid + .vs-cta-box .vs-cta-text, .elementor-102 .vs-www-grid + .vs-cta-box .vs-cta-text p { font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; margin: 0 !important; max-width: 680px; }
.elementor-102 .vs-www-grid + .vs-cta-box .vs-btn-primary .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; box-shadow: none !important; }

@media (max-width: 980px) {
  .elementor-102 .vs-www-grid > .elementor-container { gap: 16px !important; }
}
@media (max-width: 767px) {
  .elementor-102 .vs-www-grid { margin-bottom: 32px !important; }
  .elementor-102 .vs-www-grid .vs-engage-h3 .elementor-heading-title { font-size: 20px !important; }
  .elementor-102 .vs-www-grid + .vs-cta-box { padding: 18px !important; }
  .elementor-102 .vs-www-grid + .vs-cta-box .vs-btn-primary .elementor-button { min-height: 40px !important; }
}
@media (max-width: 980px) {
  /* Stacked on small screens: no equal-height stretching. */
  .elementor-102 .vs-www-grid > .elementor-container { align-items: flex-start !important; }
}
@media (max-width: 767px) {
  /* Industry pills stay inline and wrap on phones. */
  .elementor-102 .vs-www-grid .vs-tag-row:not(#vs-x1):not(#vs-x2) > .elementor-container > .elementor-column { width: auto !important; flex: 0 0 auto !important; margin-bottom: 0 !important; }
}

/* =========================================================
   Offerings (page 103) – compact hero + Offering Snapshots
   (per reference). Content unchanged. Scoped to .elementor-103.
   ========================================================= */
/* Hero */
.elementor-103 .vs-hero-box { padding: 32px 36px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-103 .vs-hero-box > .elementor-container { align-items: flex-start; }
.elementor-103 .vs-hero-box .vs-eyebrow-pill { margin-bottom: 18px !important; }
.elementor-103 .vs-hero-box .vs-eyebrow-pill p { padding: 5px 13px !important; font-size: 11.5px !important; }
.elementor-103 .vs-hero-box .vs-hero-h1 { margin-bottom: 14px !important; }
.elementor-103 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 35px !important; line-height: 1.25 !important; letter-spacing: -0.8px; }
.elementor-103 .vs-hero-box .vs-lede { margin-bottom: 18px !important; max-width: 500px; }
.elementor-103 .vs-hero-box .vs-lede, .elementor-103 .vs-hero-box .vs-lede p { font-size: 13.5px !important; line-height: 1.6 !important; }
.elementor-103 .vs-hero-box .vs-lede p { margin: 0 !important; }
.elementor-103 .vs-hero-box .vs-info-row > .elementor-container { gap: 10px !important; }
.elementor-103 .vs-hero-box .vs-info-cell { padding: 11px 12px !important; border-radius: 10px !important; }
.elementor-103 .vs-hero-box .vs-cell-label { margin-bottom: 3px !important; }
.elementor-103 .vs-hero-box .vs-cell-label p { margin: 0 !important; font-size: 10px !important; line-height: 1.4 !important; color: var(--vs-muted) !important; }
.elementor-103 .vs-hero-box .vs-cell-value { margin: 0 0 6px !important; }
.elementor-103 .vs-hero-box .vs-cell-value .elementor-heading-title { font-size: 13px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-103 .vs-hero-box .vs-cell-text p { margin: 0 !important; font-size: 11.5px !important; line-height: 1.5 !important; }

/* Hero side panel: grey panel inside a thin outer frame */
.elementor-103 .vs-hero-box .vs-side-panel {
  padding: 16px !important; border-radius: 16px !important; margin: 12px 12px 12px 0 !important;
  box-shadow: 0 0 0 12px var(--vs-card), 0 0 0 13px var(--vs-border) !important;
}
.elementor-103 .vs-hero-box .vs-panel-eyebrow { margin-bottom: 6px !important; }
.elementor-103 .vs-hero-box .vs-panel-eyebrow p { margin: 0 !important; font-size: 10.5px !important; line-height: 1.4 !important; }
.elementor-103 .vs-hero-box .vs-cap-panel-h4 { margin-bottom: 14px !important; }
.elementor-103 .vs-hero-box .vs-cap-panel-h4 .elementor-heading-title { font-size: 15px !important; font-weight: 600 !important; line-height: 1.4 !important; }
.elementor-103 .vs-hero-box .vs-cap-item { padding: 10px 14px !important; margin-bottom: 8px !important; border-radius: 10px !important; }
.elementor-103 .vs-hero-box .vs-cap-item:last-child { margin-bottom: 0 !important; }
.elementor-103 .vs-hero-box .vs-cap-item-b { margin-bottom: 4px !important; }
.elementor-103 .vs-hero-box .vs-cap-item-b .elementor-heading-title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.4 !important; }
.elementor-103 .vs-hero-box .vs-cap-item-text p { margin: 0 !important; font-size: 11px !important; line-height: 1.5 !important; }

/* Offering Snapshots head */
.elementor-103 .vs-section-head:has(+ .vs-snap-grid) { margin-bottom: 22px !important; }
.elementor-103 .vs-section-head .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 14px !important; }
.elementor-103 .vs-section-head .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-103 .vs-section-head .vs-heading-row > .elementor-container { align-items: flex-start !important; }
.elementor-103 .vs-section-head .vs-head-h2,
.elementor-103 .vs-section-head .vs-head-h2 .elementor-heading-title { font-size: 21px !important; font-weight: 600 !important; line-height: 1.35 !important; max-width: 440px !important; }
.elementor-103 .vs-section-head .vs-head-note,
.elementor-103 .vs-section-head .vs-head-note p { font-size: 12.5px !important; line-height: 1.6 !important; margin: 0 !important; color: var(--vs-muted) !important; }
.elementor-103 .vs-section-head .vs-heading-row .elementor-column:last-child > .elementor-widget-wrap { padding-top: 4px !important; }

/* Offering Snapshots cards */
.elementor-103 .vs-snap-grid > .elementor-container { gap: 16px !important; }
.elementor-103 .vs-snap-grid .vs-snap-card { padding: 16px 18px !important; border-radius: 14px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05) !important; }
.elementor-103 .vs-snap-grid .vs-snap-top { margin-bottom: 2px !important; }
.elementor-103 .vs-snap-grid .vs-snap-top > .elementor-container { align-items: center !important; }
.elementor-103 .vs-snap-grid .vs-snap-label, .elementor-103 .vs-snap-grid .vs-snap-label p { font-size: 11px !important; line-height: 1.4 !important; margin: 0 !important; color: var(--vs-muted) !important; }
.elementor-103 .vs-snap-grid .vs-snap-h4 { margin-bottom: 8px !important; }
.elementor-103 .vs-snap-grid .vs-snap-h4 .elementor-heading-title { font-size: 15px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-103 .vs-snap-grid .vs-snap-text { margin: 0 !important; }
.elementor-103 .vs-snap-grid .vs-snap-text p { font-size: 12.5px !important; line-height: 1.6 !important; margin: 0 !important; }

@media (max-width: 980px) {
  .elementor-103 .vs-hero-box .vs-side-panel { margin: 24px 12px 12px !important; }
}
@media (max-width: 767px) {
  .elementor-103 .vs-hero-box { padding: 22px 18px !important; }
  .elementor-103 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 28px !important; }
  .elementor-103 .vs-hero-box .vs-side-panel { margin: 20px 10px 10px !important; box-shadow: 0 0 0 10px var(--vs-card), 0 0 0 11px var(--vs-border) !important; }
  .elementor-103 .vs-section-head .vs-head-h2, .elementor-103 .vs-section-head .vs-head-h2 .elementor-heading-title { font-size: 20px !important; }
  .elementor-103 .vs-snap-grid > .elementor-container { gap: 12px !important; }
}

/* =========================================================
   Offerings (page 103) – How we engage / What this enables
   + closing CTA: compact panels (per reference). Content unchanged.
   ========================================================= */
.elementor-103 .vs-split-grid { margin-bottom: 48px !important; }
.elementor-103 .vs-split-grid > .elementor-container { gap: 20px !important; align-items: stretch !important; }
.elementor-103 .vs-split-grid > .elementor-container > .elementor-column > .elementor-widget-wrap { display: flex; flex-direction: column; flex-wrap: nowrap; }
.elementor-103 .vs-split-grid .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 14px !important; }
.elementor-103 .vs-split-grid .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-103 .vs-split-grid .vs-col-h2 { margin-bottom: 18px !important; max-width: 500px !important; }
.elementor-103 .vs-split-grid .vs-col-h2 .elementor-heading-title { font-size: 20px !important; font-weight: 600 !important; line-height: 1.35 !important; }

/* Left panel: engagement models */
.elementor-103 .vs-split-grid .vs-engage-cards { flex: 1 1 auto; background: var(--vs-card); border: 1px solid var(--vs-border); border-radius: 16px; padding: 14px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05); }
.elementor-103 .vs-split-grid .vs-engage-cards > .elementor-container { gap: 10px !important; height: 100%; align-items: stretch; }
.elementor-103 .vs-split-grid .vs-engage-card { padding: 12px 14px !important; border-radius: 10px !important; background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important; box-shadow: none !important; }
.elementor-103 .vs-split-grid .vs-engage-tag { padding: 2px 8px !important; margin-bottom: 10px !important; border-radius: 999px !important; background: var(--vs-card) !important; border: 1px solid var(--vs-border) !important; width: fit-content !important; }
.elementor-103 .vs-split-grid .vs-engage-tag .elementor-heading-title { font-size: 13px !important; font-weight: 500 !important; line-height: 1.5 !important; color: var(--vs-muted) !important; text-transform: none !important; letter-spacing: 0 !important; }

/* Right panel: two rows of outcome cards read as one panel */
.elementor-103 .vs-split-grid .vs-flex.vs-row-mb:has(+ .vs-flex) { background: var(--vs-card); border: 1px solid var(--vs-border); border-bottom: 0; border-radius: 16px 16px 0 0; padding: 14px 14px 5px !important; margin-bottom: 0 !important; }
.elementor-103 .vs-split-grid .vs-flex.vs-row-mb + .vs-flex { flex: 1 1 auto; background: var(--vs-card); border: 1px solid var(--vs-border); border-top: 0; border-radius: 0 0 16px 16px; padding: 5px 14px 14px !important; box-shadow: 0 6px 16px rgba(16, 18, 23, .05); }
.elementor-103 .vs-split-grid .vs-flex.vs-row-mb:has(+ .vs-flex) > .elementor-container,
.elementor-103 .vs-split-grid .vs-flex.vs-row-mb + .vs-flex > .elementor-container { gap: 10px !important; }
.elementor-103 .vs-split-grid .vs-enable-card { padding: 12px 14px !important; border-radius: 10px !important; background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important; box-shadow: none !important; }

/* Shared mini card text */
.elementor-103 .vs-split-grid .vs-mini-h5 { margin-bottom: 6px !important; }
.elementor-103 .vs-split-grid .vs-mini-h5 .elementor-heading-title { font-size: 13.5px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-103 .vs-split-grid .vs-mini-text { margin: 0 !important; }
.elementor-103 .vs-split-grid .vs-mini-text p { font-size: 11.5px !important; line-height: 1.55 !important; margin: 0 !important; color: var(--vs-muted) !important; }

/* Closing CTA */
.elementor-103 .vs-split-grid + .vs-cta-box { padding: 22px 28px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-103 .vs-split-grid + .vs-cta-box::before, .elementor-103 .vs-split-grid + .vs-cta-box::after { display: none !important; }
.elementor-103 .vs-split-grid + .vs-cta-box > .elementor-container { align-items: center !important; }
.elementor-103 .vs-split-grid + .vs-cta-box .vs-cta-h2 { margin-bottom: 8px !important; }
.elementor-103 .vs-split-grid + .vs-cta-box .vs-cta-h2 .elementor-heading-title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.35 !important; color: var(--vs-ink) !important; }
.elementor-103 .vs-split-grid + .vs-cta-box .vs-cta-text, .elementor-103 .vs-split-grid + .vs-cta-box .vs-cta-text p { font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; margin: 0 !important; max-width: 600px; }
.elementor-103 .vs-split-grid + .vs-cta-box .vs-btn-primary .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; box-shadow: none !important; }

@media (max-width: 767px) {
  .elementor-103 .vs-split-grid { margin-bottom: 32px !important; }
  .elementor-103 .vs-split-grid > .elementor-container { gap: 28px !important; }
  .elementor-103 .vs-split-grid + .vs-cta-box { padding: 18px !important; }
  .elementor-103 .vs-split-grid + .vs-cta-box .vs-btn-primary .elementor-button { min-height: 40px !important; }
}

/* =========================================================
   Careers (page 107) – compact hero + "Why work with us" +
   Life @ VigourSoft (per reference). Content unchanged.
   ========================================================= */
.elementor-107 .vs-careers-hero { margin-bottom: 56px !important; }
.elementor-107 .vs-careers-hero > .elementor-container { gap: 20px !important; align-items: stretch !important; }

/* Left hero card */
.elementor-107 .vs-careers-hero .vs-hero-inner { padding: 32px 36px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-107 .vs-careers-hero .vs-eyebrow-pill { margin-bottom: 18px !important; }
.elementor-107 .vs-careers-hero .vs-eyebrow-pill p { padding: 5px 13px !important; font-size: 11.5px !important; }
.elementor-107 .vs-careers-hero .vs-hero-h1 { margin-bottom: 14px !important; }
.elementor-107 .vs-careers-hero .vs-hero-h1 .elementor-heading-title { font-size: 35px !important; line-height: 1.2 !important; }
.elementor-107 .vs-careers-hero .vs-lede { margin-bottom: 18px !important; max-width: 540px !important; }
.elementor-107 .vs-careers-hero .vs-lede, .elementor-107 .vs-careers-hero .vs-lede p { font-size: 13.5px !important; line-height: 1.65 !important; }
.elementor-107 .vs-careers-hero .vs-lede p { margin: 0 !important; }
.elementor-107 .vs-careers-hero .vs-btn-row { margin-bottom: 18px !important; }
.elementor-107 .vs-careers-hero .vs-btn-primary .elementor-button { padding: 9px 20px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; }
.elementor-107 .vs-careers-hero .vs-facet-row > .elementor-container { gap: 8px !important; }
.elementor-107 .vs-careers-hero .vs-facet-cell { padding: 11px 12px !important; border-radius: 10px !important; }
.elementor-107 .vs-careers-hero .vs-cell-label-caps { margin-bottom: 4px !important; }
.elementor-107 .vs-careers-hero .vs-cell-label-caps p { margin: 0 !important; font-size: 10px !important; line-height: 1.4 !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--vs-muted) !important; font-weight: 400 !important; }
.elementor-107 .vs-careers-hero .vs-cell-value-lg { margin: 0 0 6px !important; }
.elementor-107 .vs-careers-hero .vs-cell-value-lg .elementor-heading-title { font-size: 13px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-107 .vs-careers-hero .vs-cell-text p { margin: 0 !important; font-size: 11.5px !important; line-height: 1.5 !important; }

/* Right "Why work with us" card */
.elementor-107 .vs-careers-hero .vs-why-box { padding: 30px 32px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-107 .vs-careers-hero .vs-why-box .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 10px !important; }
.elementor-107 .vs-careers-hero .vs-why-box .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-107 .vs-careers-hero .vs-why-h4 { margin-bottom: 18px !important; }
.elementor-107 .vs-careers-hero .vs-why-h4 .elementor-heading-title { font-size: 16px !important; font-weight: 600 !important; line-height: 1.45 !important; }
.elementor-107 .vs-careers-hero .vs-why-item { padding: 10px 12px !important; margin-bottom: 8px !important; border-radius: 10px !important; background: var(--vs-card-soft) !important; box-shadow: none !important; }
.elementor-107 .vs-careers-hero .vs-why-item:last-child { margin-bottom: 0 !important; }
.elementor-107 .vs-careers-hero .vs-why-item > .elementor-container { gap: 8px !important; align-items: flex-start !important; }
.elementor-107 .vs-careers-hero .vs-why-item > .elementor-container > .elementor-column:first-child { flex: 0 0 16px !important; width: 16px !important; max-width: 16px !important; }
.elementor-107 .vs-careers-hero .vs-why-item .vs-icon-chip { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; }
.elementor-107 .vs-careers-hero .vs-why-item .vs-icon-chip .elementor-icon { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; background: none !important; border: 0 !important; font-size: var(--vs-icon-size, 20px) !important; padding: 0 !important; display: flex; align-items: center; justify-content: center; }
.elementor-107 .vs-careers-hero .vs-why-item .vs-icon-chip .elementor-icon svg { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; }
.elementor-107 .vs-careers-hero .vs-why-h5 { margin-bottom: 4px !important; }
.elementor-107 .vs-careers-hero .vs-why-h5 .elementor-heading-title { font-size: 13px !important; font-weight: 500 !important; line-height: 1.4 !important; }
.elementor-107 .vs-careers-hero .vs-why-text p { margin: 0 !important; font-size: 11px !important; line-height: 1.55 !important; }

/* Life @ VigourSoft */
.elementor-107 .vs-section-head:has(+ .vs-culture-grid) { margin-bottom: 22px !important; }
.elementor-107 .vs-section-head:has(+ .vs-culture-grid) > .elementor-container { align-items: flex-start !important; }
.elementor-107 .vs-section-head:has(+ .vs-culture-grid) .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 14px !important; }
.elementor-107 .vs-section-head:has(+ .vs-culture-grid) .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-107 .vs-section-head:has(+ .vs-culture-grid) .vs-head-h2,
.elementor-107 .vs-section-head:has(+ .vs-culture-grid) .vs-head-h2 .elementor-heading-title { font-size: 20px !important; font-weight: 600 !important; line-height: 1.35 !important; max-width: 440px !important; }
.elementor-107 .vs-section-head:has(+ .vs-culture-grid) .vs-head-right > .elementor-widget-wrap { padding-top: 10px !important; }
.elementor-107 .vs-section-head:has(+ .vs-culture-grid) .vs-head-note,
.elementor-107 .vs-section-head:has(+ .vs-culture-grid) .vs-head-note p { font-size: 12.5px !important; line-height: 1.6 !important; margin: 0 !important; color: var(--vs-muted) !important; }
.elementor-107 .vs-culture-grid > .elementor-container { gap: 16px !important; }
.elementor-107 .vs-culture-grid .vs-culture-card { padding: 18px 20px !important; border-radius: 14px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05) !important; }
.elementor-107 .vs-culture-grid .vs-culture-top { margin-bottom: 6px !important; }
.elementor-107 .vs-culture-grid .vs-culture-top > .elementor-container { align-items: center !important; }
.elementor-107 .vs-culture-grid .vs-culture-step .elementor-heading-title { font-size: 11px !important; font-weight: 400 !important; letter-spacing: .6px !important; color: var(--vs-muted) !important; }
.elementor-107 .vs-culture-grid .vs-icon-chip .elementor-icon { background: none !important; border: 0 !important; }
.elementor-107 .vs-culture-grid .vs-culture-h3 { margin-bottom: 8px !important; }
.elementor-107 .vs-culture-grid .vs-culture-h3 .elementor-heading-title { font-size: 15px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-107 .vs-culture-grid .vs-culture-text { margin: 0 !important; }
.elementor-107 .vs-culture-grid .vs-culture-text p { font-size: 12.5px !important; line-height: 1.6 !important; margin: 0 !important; }

@media (max-width: 767px) {
  .elementor-107 .vs-careers-hero .vs-hero-inner, .elementor-107 .vs-careers-hero .vs-why-box { padding: 22px 18px !important; }
  .elementor-107 .vs-careers-hero .vs-hero-h1 .elementor-heading-title { font-size: 28px !important; }
  .elementor-107 .vs-section-head:has(+ .vs-culture-grid) .vs-head-right > .elementor-widget-wrap { padding-top: 0 !important; }
}

/* =========================================================
   Careers (page 107) – Benefits + What our people say:
   compact layout (per reference). Content unchanged.
   ========================================================= */
/* Section heads with a right-hand note */
.elementor-107 .vs-section-head.vs-flex { margin-bottom: 22px !important; }
.elementor-107 .vs-section-head.vs-flex > .elementor-container { align-items: flex-start !important; }
.elementor-107 .vs-section-head.vs-flex .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 14px !important; }
.elementor-107 .vs-section-head.vs-flex .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-107 .vs-section-head.vs-flex .vs-head-h2,
.elementor-107 .vs-section-head.vs-flex .vs-head-h2 .elementor-heading-title { font-size: 20px !important; font-weight: 600 !important; line-height: 1.35 !important; max-width: 460px !important; }
.elementor-107 .vs-section-head.vs-flex .vs-head-right > .elementor-widget-wrap { padding-top: 10px !important; }
.elementor-107 .vs-section-head.vs-flex .vs-head-note,
.elementor-107 .vs-section-head.vs-flex .vs-head-note p { font-size: 12.5px !important; line-height: 1.6 !important; margin: 0 !important; color: var(--vs-muted) !important; }

/* Benefits */

/* What our people say */

@media (max-width: 767px) {
  .elementor-107 .vs-section-head.vs-flex .vs-head-right > .elementor-widget-wrap { padding-top: 0 !important; }
}

/* =========================================================
   Careers (page 107) – Internships / Growth environment /
   Where we are: compact layout + closing CTA. Content unchanged.
   ========================================================= */
/* Pune & Bengaluru are shown together in the first India card (inc/careers-locations.php). */
.elementor-107 .elementor-element-e53fec0 { display: none !important; }

.elementor-107 .vs-triple-grid { margin-bottom: 48px !important; }
.elementor-107 .vs-triple-grid > .elementor-container { gap: 20px !important; align-items: stretch !important; }
.elementor-107 .vs-triple-grid > .elementor-container > .elementor-column > .elementor-widget-wrap { display: flex; flex-direction: column; flex-wrap: nowrap; }
.elementor-107 .vs-triple-grid .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 12px !important; }
.elementor-107 .vs-triple-grid .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-107 .vs-triple-grid .vs-triple-h2 { margin-bottom: 16px !important; }
.elementor-107 .vs-triple-grid .vs-triple-h2 .elementor-heading-title { font-size: 19px !important; font-weight: 600 !important; line-height: 1.35 !important; }

/* Cards in each column */
.elementor-107 .vs-triple-grid .vs-intern-card,
.elementor-107 .vs-triple-grid .vs-people-card,
.elementor-107 .vs-triple-grid .vs-loc-card { margin: 0 0 10px !important; border-radius: 12px !important; box-shadow: 0 2px 10px rgba(16, 18, 23, .04) !important; }
.elementor-107 .vs-triple-grid .vs-intern-card { padding: 18px 20px !important; flex: 0 0 auto !important; height: auto !important; }
.elementor-107 .vs-triple-grid .vs-intern-h5 { margin-bottom: 6px !important; }
.elementor-107 .vs-triple-grid .vs-intern-h5 .elementor-heading-title { font-size: 14px !important; font-weight: 600 !important; }
.elementor-107 .vs-triple-grid .vs-intern-text { margin: 0 0 14px !important; }
.elementor-107 .vs-triple-grid .vs-intern-text p { margin: 0 !important; font-size: 12.5px !important; line-height: 1.6 !important; }
.elementor-107 .vs-triple-grid .vs-intern-card .vs-btn-primary .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; }

.elementor-107 .vs-triple-grid .vs-people-card { padding: 14px 16px !important; }
.elementor-107 .vs-triple-grid .vs-people-h5 { margin-bottom: 4px !important; }
.elementor-107 .vs-triple-grid .vs-people-h5 .elementor-heading-title { font-size: 13.5px !important; font-weight: 600 !important; }
.elementor-107 .vs-triple-grid .vs-people-text { margin: 0 !important; }
.elementor-107 .vs-triple-grid .vs-people-text p { margin: 0 !important; font-size: 12px !important; line-height: 1.55 !important; }

.elementor-107 .vs-triple-grid .vs-loc-card { padding: 11px 14px !important; }
.elementor-107 .vs-triple-grid .vs-loc-card > .elementor-container { align-items: center !important; }
.elementor-107 .vs-triple-grid .vs-loc-h6 { margin-bottom: 2px !important; }
.elementor-107 .vs-triple-grid .vs-loc-h6 .elementor-heading-title { font-size: 13px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-107 .vs-triple-grid .vs-loc-sub { margin: 0 !important; }
.elementor-107 .vs-triple-grid .vs-loc-sub p { margin: 0 !important; font-size: 12px !important; line-height: 1.45 !important; }
.elementor-107 .vs-triple-grid .vs-loc-sub a.vs-loc-city { color: inherit; text-decoration: none; border-bottom: 1px dashed currentColor; }
.elementor-107 .vs-triple-grid .vs-loc-sub a.vs-loc-city:hover { color: var(--vs-accent); }
.elementor-107 .vs-triple-grid .vs-btn-map .elementor-button { padding: 5px 11px !important; font-size: 11px !important; border-radius: 8px !important; min-height: 0 !important; }

/* Closing CTA */
.elementor-107 .vs-triple-grid + .vs-cta-box { padding: 22px 28px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-107 .vs-triple-grid + .vs-cta-box::before, .elementor-107 .vs-triple-grid + .vs-cta-box::after { display: none !important; }
.elementor-107 .vs-triple-grid + .vs-cta-box > .elementor-container { align-items: center !important; }
.elementor-107 .vs-triple-grid + .vs-cta-box .vs-cta-h2 { margin-bottom: 8px !important; }
.elementor-107 .vs-triple-grid + .vs-cta-box .vs-cta-h2 .elementor-heading-title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.35 !important; color: var(--vs-ink) !important; }
.elementor-107 .vs-triple-grid + .vs-cta-box .vs-cta-text, .elementor-107 .vs-triple-grid + .vs-cta-box .vs-cta-text p { font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; margin: 0 !important; }
.elementor-107 .vs-triple-grid + .vs-cta-box .vs-btn-primary .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; box-shadow: none !important; }

@media (max-width: 767px) {
  .elementor-107 .vs-triple-grid { margin-bottom: 32px !important; }
  .elementor-107 .vs-triple-grid > .elementor-container { gap: 28px !important; }
  .elementor-107 .vs-triple-grid + .vs-cta-box { padding: 18px !important; }
  .elementor-107 .vs-triple-grid .vs-loc-card > .elementor-container { flex-wrap: nowrap !important; }
}

/* Careers – last section cards use the soft grey card colour (#F3F4F6 in light mode). */
body .elementor-107 .vs-triple-grid .vs-intern-card,
body .elementor-107 .vs-triple-grid .vs-people-card,
body .elementor-107 .vs-triple-grid .vs-loc-card { background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important; }

/* =========================================================
   Contact Us (page 108) – compact hero + form, reach cards,
   office locations, closing CTA (per reference). Content unchanged.
   ========================================================= */
/* Hero */
.elementor-108 .vs-hero-box { padding: 32px 36px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; margin-bottom: 56px !important; }
.elementor-108 .vs-hero-box > .elementor-container { align-items: flex-start; }
.elementor-108 .vs-hero-box .vs-eyebrow-pill { margin-bottom: 18px !important; }
.elementor-108 .vs-hero-box .vs-eyebrow-pill p { padding: 5px 13px !important; font-size: 11.5px !important; }
.elementor-108 .vs-hero-box .vs-hero-h1 { margin-bottom: 14px !important; }
.elementor-108 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 36px !important; line-height: 1.25 !important; }
.elementor-108 .vs-hero-box .vs-lede { margin-bottom: 18px !important; max-width: 480px !important; }
.elementor-108 .vs-hero-box .vs-lede p { margin: 0 !important; font-size: 13.5px !important; line-height: 1.65 !important; }
.elementor-108 .vs-hero-box .vs-btn-row .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; }

/* Form: grey panel inside a thin outer frame */
.elementor-108 .vs-hero-box .vs-form-panel { padding: 0 !important; border-radius: 16px !important; margin: 12px 12px 12px 0 !important; box-shadow: 0 0 0 12px var(--vs-card), 0 0 0 13px var(--vs-border) !important; overflow: hidden; }
.elementor-108 .v-inquiry-box { padding: 20px 22px !important; border-radius: 16px !important; }
.elementor-108 .v-inquiry-header { margin-bottom: 16px !important; align-items: flex-start !important; }
.elementor-108 .v-inquiry-subtitle { font-size: 10.5px !important; margin: 0 0 6px !important; padding-right: 0 !important; display: block; }
.elementor-108 .v-inquiry-title { font-size: 16px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-108 .v-inquiry-icon-box { width: 30px !important; height: 30px !important; min-width: 30px !important; border-radius: 8px !important; }
.elementor-108 .v-inquiry-icon-box svg { width: 16px !important; height: 16px !important; }
.elementor-108 .v-form-grid { gap: 10px 12px !important; margin-bottom: 10px !important; }
.elementor-108 .v-inquiry-form .v-input-group { gap: 4px !important; margin: 0 !important; }
.elementor-108 .v-inquiry-form > .v-input-group { margin-bottom: 14px !important; }
.elementor-108 .v-input-label { font-size: 11px !important; line-height: 1.4 !important; margin: 0 0 4px !important; }
.elementor-108 .v-form-input, .elementor-108 .v-form-select, .elementor-108 .v-form-textarea { padding: 7px 10px !important; font-size: 12px !important; line-height: 1.4 !important; border-radius: 8px !important; min-height: 0 !important; }
.elementor-108 .v-form-input, .elementor-108 .v-form-select { height: 32px !important; }
.elementor-108 .v-form-textarea { height: 58px !important; min-height: 58px !important; resize: vertical; }
.elementor-108 .v-form-submit { padding: 10px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; }

/* Section heads */
.elementor-108 .vs-section-head:has(+ .vs-reach-grid) { margin-bottom: 22px !important; }
.elementor-108 .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 12px !important; }
.elementor-108 .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-108 .vs-heading-row > .elementor-container { align-items: flex-start !important; }
.elementor-108 .vs-head-h2, .elementor-108 .vs-head-h2 .elementor-heading-title { font-size: 20px !important; font-weight: 600 !important; line-height: 1.35 !important; max-width: 460px !important; }
.elementor-108 .vs-head-note, .elementor-108 .vs-head-note p { font-size: 12.5px !important; line-height: 1.6 !important; margin: 0 !important; color: var(--vs-muted) !important; }

/* How to reach us */
.elementor-108 .vs-reach-grid { margin-bottom: 56px !important; }
.elementor-108 .vs-reach-grid > .elementor-container { gap: 18px !important; }
.elementor-108 .vs-reach-grid .vs-reach-card { padding: 18px 20px !important; border-radius: 14px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05) !important; }
.elementor-108 .vs-reach-grid .vs-reach-top { margin-bottom: 6px !important; }
.elementor-108 .vs-reach-grid .vs-reach-top > .elementor-container { align-items: center !important; }
.elementor-108 .vs-reach-grid .vs-reach-h3 .elementor-heading-title { font-size: 15px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-108 .vs-reach-grid .vs-icon-box-sm .elementor-icon { width: 28px !important; height: 28px !important; font-size: 15px !important; background: none !important; border: 0 !important; }
.elementor-108 .vs-reach-grid .vs-reach-text { margin: 0 0 14px !important; }
.elementor-108 .vs-reach-grid .vs-reach-text p { margin: 0 !important; font-size: 12.5px !important; line-height: 1.6 !important; }
.elementor-108 .vs-reach-grid .vs-email-row { padding: 8px 12px !important; border-radius: 10px !important; background: var(--vs-card-soft) !important; }
.elementor-108 .vs-reach-grid .vs-email-row a { font-size: 12.5px !important; }
.elementor-108 .vs-reach-grid .vs-copy-btn { padding: 2px 10px !important; font-size: 11px !important; }

/* Office locations */
.elementor-108 .vs-office-section { margin-bottom: 56px !important; }
.elementor-108 .vs-office-section > .elementor-container { gap: 28px !important; }
.elementor-108 .vs-office-section .vs-head-h2 { margin-bottom: 12px !important; }
.elementor-108 .vs-office-section .vs-office-intro { margin: 0 !important; max-width: 420px; }
.elementor-108 .vs-office-section .vs-office-intro p { margin: 0 !important; font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; }
.elementor-108 .vs-office-section .vs-office-cards { margin-bottom: 14px !important; }
.elementor-108 .vs-office-section .vs-office-cards:last-child { margin-bottom: 0 !important; }
.elementor-108 .vs-office-section .vs-office-cards > .elementor-container { gap: 14px !important; }
.elementor-108 .vs-office-section .vs-office-card { padding: 16px 18px !important; border-radius: 14px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05) !important; }
.elementor-108 .vs-office-section .vs-office-ib .elementor-icon-box-title { font-size: 14px !important; font-weight: 600 !important; line-height: 1.35 !important; margin-bottom: 4px !important; }
.elementor-108 .vs-office-section .vs-office-ib .elementor-icon-box-description { font-size: 11.5px !important; line-height: 1.5 !important; }
.elementor-108 .vs-office-section .vs-office-desc { margin-top: 6px !important; }
.elementor-108 .vs-office-section .vs-office-desc p { margin: 0 !important; font-size: 12px !important; line-height: 1.55 !important; }

/* Closing CTA */
.elementor-108 .vs-office-section + .vs-cta-box { padding: 22px 28px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-108 .vs-office-section + .vs-cta-box::before, .elementor-108 .vs-office-section + .vs-cta-box::after { display: none !important; }
.elementor-108 .vs-office-section + .vs-cta-box > .elementor-container { align-items: center !important; }
.elementor-108 .vs-office-section + .vs-cta-box .vs-cta-h2 { margin-bottom: 8px !important; }
.elementor-108 .vs-office-section + .vs-cta-box .vs-cta-h2 .elementor-heading-title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.35 !important; color: var(--vs-ink) !important; }
.elementor-108 .vs-office-section + .vs-cta-box .vs-cta-text, .elementor-108 .vs-office-section + .vs-cta-box .vs-cta-text p { font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; margin: 0 !important; }
.elementor-108 .vs-office-section + .vs-cta-box .vs-cta-actions > .elementor-container { gap: 10px !important; }
.elementor-108 .vs-office-section + .vs-cta-box .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; box-shadow: none !important; }

@media (max-width: 980px) {
  .elementor-108 .vs-hero-box .vs-form-panel { margin: 24px 12px 12px !important; }
}
@media (max-width: 767px) {
  .elementor-108 .vs-hero-box { padding: 22px 18px !important; }
  .elementor-108 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 28px !important; }
  .elementor-108 .vs-hero-box .vs-form-panel { margin: 20px 10px 10px !important; box-shadow: 0 0 0 10px var(--vs-card), 0 0 0 11px var(--vs-border) !important; }
  .elementor-108 .v-inquiry-box { padding: 16px !important; }
  .elementor-108 .vs-office-section + .vs-cta-box { padding: 18px !important; }
  .elementor-108 .vs-office-section + .vs-cta-box .elementor-button { min-height: 40px !important; }
}

/* Contact Us hero: "View Global Offices" uses the brand orange (primary style). */
body .elementor-108 .vs-hero-box .vs-btn-row .vs-btn-secondary .elementor-button { background: var(--vs-accent) !important; border-color: var(--vs-accent) !important; color: #fff !important; }
body .elementor-108 .vs-hero-box .vs-btn-row .vs-btn-secondary .elementor-button:hover,
body .elementor-108 .vs-hero-box .vs-btn-row .vs-btn-secondary .elementor-button:focus-visible { background: var(--vs-accent-bright, var(--vs-accent)) !important; border-color: var(--vs-accent-bright, var(--vs-accent)) !important; color: #fff !important; }
body .elementor-108 .vs-hero-box .vs-btn-row .vs-btn-secondary .elementor-button .elementor-button-text { color: #fff !important; }

/* =========================================================
   Insights (page 104) – compact hero, intro block and section
   heads (per reference). Library listing untouched. Content unchanged.
   ========================================================= */
/* Hero */
.elementor-104 .vs-hero-box { padding: 32px 36px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; margin-bottom: 56px !important; }
.elementor-104 .vs-hero-box > .elementor-container { align-items: flex-start; }
.elementor-104 .vs-hero-box .vs-eyebrow-pill { margin-bottom: 18px !important; }
.elementor-104 .vs-hero-box .vs-eyebrow-pill p { padding: 5px 13px !important; font-size: 11.5px !important; }
.elementor-104 .vs-hero-box .vs-hero-h1 { margin-bottom: 14px !important; }
.elementor-104 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 34px !important; line-height: 1.25 !important; letter-spacing: -0.6px; }
.elementor-104 .vs-hero-box .vs-lede { margin-bottom: 18px !important; max-width: 500px !important; }
.elementor-104 .vs-hero-box .vs-lede p { margin: 0 !important; font-size: 13.5px !important; line-height: 1.65 !important; }
.elementor-104 .vs-hero-box .vs-btn-row > .elementor-container { gap: 10px !important; }
.elementor-104 .vs-hero-box .vs-btn-row .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; }

/* Hero side panel: grey panel in a thin outer frame, compact coverage cells */
.elementor-104 .vs-hero-box .vs-side-panel { padding: 16px !important; border-radius: 16px !important; margin: 12px 12px 12px 0 !important; box-shadow: 0 0 0 12px var(--vs-card), 0 0 0 13px var(--vs-border) !important; }
.elementor-104 .vs-hero-box .vs-panel-eyebrow { margin-bottom: 6px !important; }
.elementor-104 .vs-hero-box .vs-panel-eyebrow p { margin: 0 !important; font-size: 10.5px !important; line-height: 1.4 !important; letter-spacing: 0 !important; text-transform: lowercase !important; }
.elementor-104 .vs-hero-box .vs-panel-eyebrow p::first-letter { text-transform: uppercase; }
.elementor-104 .vs-hero-box .vs-panel-h4 { margin-bottom: 14px !important; }
.elementor-104 .vs-hero-box .vs-panel-h4 .elementor-heading-title { font-size: 15px !important; font-weight: 600 !important; line-height: 1.4 !important; }
.elementor-104 .vs-hero-box .vs-side-panel .vs-row-mb { margin-bottom: 10px !important; }
.elementor-104 .vs-hero-box .vs-side-panel .vs-flex > .elementor-container { gap: 10px !important; }
.elementor-104 .vs-hero-box .vs-coverage-cell { padding: 12px 14px !important; border-radius: 10px !important; }
.elementor-104 .vs-hero-box .vs-coverage-b { margin-bottom: 6px !important; }
.elementor-104 .vs-hero-box .vs-coverage-b .elementor-heading-title { font-size: 13px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-104 .vs-hero-box .vs-coverage-text p { margin: 0 !important; font-size: 11px !important; line-height: 1.5 !important; }

/* Section heads + intro block */
.elementor-104 .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 12px !important; }
.elementor-104 .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-104 .vs-section-head.vs-flex { margin-bottom: 22px !important; }
.elementor-104 .vs-section-head.vs-flex > .elementor-container { align-items: flex-start !important; }
.elementor-104 .vs-section-head.vs-flex .vs-head-right > .elementor-widget-wrap { padding-top: 10px !important; }
.elementor-104 .vs-head-h2, .elementor-104 .vs-head-h2 .elementor-heading-title { font-size: 20px !important; font-weight: 600 !important; line-height: 1.35 !important; max-width: 460px !important; }
.elementor-104 .vs-head-note, .elementor-104 .vs-head-note p { font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; }
.elementor-104 .vs-head-note p { margin: 0 !important; }

.elementor-104 .vs-intro-grid { margin-bottom: 56px !important; }
.elementor-104 .vs-intro-grid > .elementor-container { gap: 40px !important; align-items: flex-start !important; }
.elementor-104 .vs-intro-grid .vs-head-h2 { margin-bottom: 12px !important; }
.elementor-104 .vs-intro-grid .vs-head-note { max-width: 440px !important; }
.elementor-104 .vs-intro-grid .vs-ins-card { padding: 18px 20px !important; margin-bottom: 14px !important; border-radius: 14px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05) !important; }
.elementor-104 .vs-intro-grid .vs-ins-card:last-child { margin-bottom: 0 !important; }
.elementor-104 .vs-intro-grid .vs-ins-top { margin-bottom: 8px !important; }
.elementor-104 .vs-intro-grid .vs-ins-top > .elementor-container { align-items: center !important; }
.elementor-104 .vs-intro-grid .vs-ins-h5 .elementor-heading-title { font-size: 14px !important; font-weight: 600 !important; line-height: 1.4 !important; }
.elementor-104 .vs-intro-grid .vs-ins-text { margin: 0 !important; }
.elementor-104 .vs-intro-grid .vs-ins-text p { margin: 0 !important; font-size: 13px !important; line-height: 1.6 !important; }

@media (max-width: 980px) {
  .elementor-104 .vs-hero-box .vs-side-panel { margin: 24px 12px 12px !important; }
  .elementor-104 .vs-intro-grid > .elementor-container { gap: 20px !important; }
}
@media (max-width: 767px) {
  .elementor-104 .vs-hero-box { padding: 22px 18px !important; }
  .elementor-104 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 28px !important; }
  .elementor-104 .vs-hero-box .vs-side-panel { margin: 20px 10px 10px !important; box-shadow: 0 0 0 10px var(--vs-card), 0 0 0 11px var(--vs-border) !important; }
  .elementor-104 .vs-section-head.vs-flex .vs-head-right > .elementor-widget-wrap { padding-top: 0 !important; }
}
@media (max-width: 767px) {
  /* Insights hero: keep the coverage boxes two per row on phones */
  .elementor-104 .vs-hero-box .vs-side-panel .vs-flex > .elementor-container { flex-wrap: nowrap !important; gap: 8px !important; }
  .elementor-104 .vs-hero-box .vs-side-panel .vs-flex > .elementor-container > .elementor-column { width: 50% !important; flex: 1 1 0 !important; min-width: 0; margin-bottom: 0 !important; }
  .elementor-104 .vs-hero-box .vs-side-panel .vs-row-mb { margin-bottom: 8px !important; }
  .elementor-104 .vs-hero-box .vs-coverage-cell { padding: 10px !important; }
}

/* =========================================================
   Insights (page 104) – Insights Library panel (per reference).
   Styling only: search, filters and dynamic cards keep working.
   ========================================================= */
.elementor-104 .vs-library-panel { background: var(--vs-card) !important; border: 1px solid var(--vs-border) !important; border-radius: 18px !important; padding: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }

/* Controls: search takes the remaining width, all chips stay on one line */
.elementor-104 .vs-library-controls { margin-bottom: 16px !important; }
.elementor-104 .vs-library-controls > .elementor-container { flex-wrap: nowrap !important; align-items: center !important; gap: 14px !important; }
.elementor-104 .vs-library-controls > .elementor-container > .elementor-column:first-child { flex: 1 1 auto !important; width: auto !important; min-width: 220px !important; }
.elementor-104 .vs-library-controls > .elementor-container > .elementor-column:last-child { flex: 0 0 auto !important; width: auto !important; max-width: 100% !important; }
.elementor-104 .vs-library-controls .vs-search-input { height: 34px !important; padding: 7px 34px 7px 14px !important; font-size: 12.5px !important; border-radius: 8px !important; background: var(--vs-card-soft) !important; border: 1px solid transparent !important; }
.elementor-104 .vs-library-controls .vs-search-input:focus { border-color: var(--vs-accent) !important; outline: none; background: var(--vs-card) !important; }
.elementor-104 .vs-library-controls .vs-pill-group > .elementor-container { flex-wrap: nowrap !important; justify-content: flex-end !important; gap: 6px !important; }
.elementor-104 .vs-library-controls .vs-pill-group > .elementor-container > .elementor-column { flex: 0 0 auto !important; width: auto !important; }
.elementor-104 .vs-library-controls .vs-filter-chip { padding: 7px 12px !important; border-radius: 8px !important; white-space: nowrap; }
.elementor-104 .vs-library-controls .vs-filter-chip .elementor-heading-title { font-size: 12px !important; font-weight: 500 !important; line-height: 1.35 !important; white-space: nowrap; }
.elementor-104 .vs-library-controls .vs-filter-chip:not(.vs-chip-on) { border-color: transparent !important; }

/* Article cards */
.elementor-104 .vs-library-panel .vs-article-grid { margin-bottom: 14px !important; }
.elementor-104 .vs-library-panel .vs-article-grid > .elementor-container { gap: 14px !important; }
.elementor-104 .vs-library-panel .vs-article-card { padding: 14px 16px !important; border-radius: 12px !important; box-shadow: none !important; }
.elementor-104 .vs-library-panel .vs-article-meta { margin-bottom: 10px !important; }
.elementor-104 .vs-library-panel .vs-article-meta > .elementor-container { align-items: center !important; gap: 10px !important; }
.elementor-104 .vs-library-panel .vs-article-tag { padding: 2px 9px !important; border-radius: 999px !important; }
.elementor-104 .vs-library-panel .vs-article-tag .elementor-heading-title { font-size: 10.5px !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important; line-height: 1.5 !important; }
.elementor-104 .vs-library-panel .vs-article-time p { font-size: 11px !important; line-height: 1.4 !important; }
.elementor-104 .vs-library-panel .vs-article-head > .elementor-container { align-items: center !important; }
.elementor-104 .vs-library-panel .vs-article-h3 .elementor-heading-title { font-size: 15px !important; font-weight: 600 !important; line-height: 1.4 !important; }
.elementor-104 .vs-library-panel .vs-article-arrow .elementor-icon { width: 30px !important; height: 30px !important; border-radius: 8px !important; border-color: var(--vs-border) !important; }
.elementor-104 .vs-library-panel .vs-article-text { margin-top: 8px !important; }
.elementor-104 .vs-library-panel .vs-article-text p { font-size: 12.5px !important; line-height: 1.6 !important; margin: 0 !important; }

/* Narrow screens: keep chips on one line and let them scroll sideways inside the panel */
@media (max-width: 1100px) {
  .elementor-104 .vs-library-controls > .elementor-container { flex-wrap: wrap !important; }
  .elementor-104 .vs-library-controls > .elementor-container > .elementor-column:first-child,
  .elementor-104 .vs-library-controls > .elementor-container > .elementor-column:last-child { flex: 1 1 100% !important; width: 100% !important; }
  .elementor-104 .vs-library-controls .vs-pill-group { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .elementor-104 .vs-library-controls .vs-pill-group::-webkit-scrollbar { display: none; }
  .elementor-104 .vs-library-controls .vs-pill-group > .elementor-container { justify-content: flex-start !important; width: max-content !important; max-width: none !important; }
}
@media (max-width: 767px) {
  .elementor-104 .vs-library-panel { padding: 12px !important; }
  .elementor-104 .vs-library-controls .vs-pill-group > .elementor-container > .elementor-column { width: auto !important; flex: 0 0 auto !important; }
}

/* Insights Library cards: plain orange ↗ arrow in a soft grey square (per Figma). */
.elementor-104 .vs-library-panel .vs-article-arrow .elementor-icon { position: relative; width: 30px !important; height: 30px !important; border-radius: 8px !important; background: var(--vs-card-soft) !important; border: 1px solid transparent !important; color: var(--vs-accent) !important; display: flex !important; align-items: center; justify-content: center; }
.elementor-104 .vs-library-panel .vs-article-arrow .elementor-icon svg { display: none !important; }
.elementor-104 .vs-library-panel .vs-article-arrow .elementor-icon::before {
  content: ""; width: 13px; height: 13px; background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M8 7h9v9'/%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' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E") center / contain no-repeat;
}
.elementor-104 .vs-library-panel .vs-article-card:hover .vs-article-arrow .elementor-icon { background: var(--vs-accent) !important; color: #fff !important; }

/* =========================================================
   Insights (page 104) – "What you'll find here" cards + closing
   CTA (per reference). Bullet lines come from inc/insights-find-notes.php.
   ========================================================= */
.elementor-104 .vs-find-grid { margin-bottom: 48px !important; }
.elementor-104 .vs-find-grid > .elementor-container { gap: 16px !important; align-items: stretch !important; }
.elementor-104 .vs-find-grid .vs-find-card { padding: 18px 18px 16px !important; border-radius: 14px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05) !important; }
.elementor-104 .vs-find-grid .vs-find-card > .elementor-widget-wrap { display: flex; flex-direction: column; flex-wrap: nowrap; height: 100%; }
.elementor-104 .vs-find-grid .vs-find-top { margin-bottom: 8px !important; }
.elementor-104 .vs-find-grid .vs-find-top > .elementor-container { align-items: center !important; }
.elementor-104 .vs-find-grid .vs-find-h3 .elementor-heading-title { font-size: 14.5px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-104 .vs-find-grid .vs-icon-chip { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; }
.elementor-104 .vs-find-grid .vs-icon-chip .elementor-icon { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; background: none !important; border: 0 !important; font-size: var(--vs-icon-size, 20px) !important; }
.elementor-104 .vs-find-grid .vs-icon-chip .elementor-icon svg { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; }
.elementor-104 .vs-find-grid .vs-find-text { margin: 0 0 14px !important; }
.elementor-104 .vs-find-grid .vs-find-text p { margin: 0 !important; font-size: 12.5px !important; line-height: 1.6 !important; }
/* Divider + bullet line pinned to the bottom so all cards line up */
.elementor-104 .vs-find-grid .vs-find-card .elementor-widget-html:last-child { margin-top: auto !important; }
.elementor-104 .vs-find-grid .vs-rule { margin: 0 0 12px !important; border: 0 !important; border-top: 1px solid var(--vs-border) !important; height: 0 !important; }
.elementor-104 .vs-find-note { list-style: none; margin: 0; padding: 0; }
.elementor-104 .vs-find-note li { position: relative; padding-left: 12px; font-size: 12px; line-height: 1.55; color: var(--vs-ink); }
.elementor-104 .vs-find-note li::before { content: "•"; position: absolute; left: 0; top: 0; color: var(--vs-ink); }

/* Closing CTA */
.elementor-104 .vs-find-grid + .vs-cta-box { padding: 22px 28px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-104 .vs-find-grid + .vs-cta-box::before, .elementor-104 .vs-find-grid + .vs-cta-box::after { display: none !important; }
.elementor-104 .vs-find-grid + .vs-cta-box > .elementor-container { align-items: center !important; }
.elementor-104 .vs-find-grid + .vs-cta-box .vs-cta-h2 { margin-bottom: 8px !important; }
.elementor-104 .vs-find-grid + .vs-cta-box .vs-cta-h2 .elementor-heading-title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.35 !important; color: var(--vs-ink) !important; }
.elementor-104 .vs-find-grid + .vs-cta-box .vs-cta-text, .elementor-104 .vs-find-grid + .vs-cta-box .vs-cta-text p { font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; margin: 0 !important; }
.elementor-104 .vs-find-grid + .vs-cta-box .vs-cta-actions > .elementor-container { gap: 10px !important; }
.elementor-104 .vs-find-grid + .vs-cta-box .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; box-shadow: none !important; }

@media (max-width: 767px) {
  .elementor-104 .vs-find-grid { margin-bottom: 32px !important; }
  .elementor-104 .vs-find-grid > .elementor-container { gap: 12px !important; }
  .elementor-104 .vs-find-grid + .vs-cta-box { padding: 18px !important; }
  .elementor-104 .vs-find-grid + .vs-cta-box .elementor-button { min-height: 40px !important; }
}

/* =========================================================
   Blogs & Resources (page 105) – compact hero + stats and
   "What you'll find here" (per reference). Content unchanged.
   ========================================================= */
/* Hero */
.elementor-105 .vs-hero-box { padding: 32px 36px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; margin-bottom: 56px !important; }
.elementor-105 .vs-hero-box .vs-eyebrow-pill { margin-bottom: 18px !important; }
.elementor-105 .vs-hero-box .vs-eyebrow-pill p { padding: 5px 13px !important; font-size: 11.5px !important; }
.elementor-105 .vs-hero-box .vs-hero-h1 { margin-bottom: 14px !important; }
.elementor-105 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 36px !important; line-height: 1.25 !important; letter-spacing: -0.6px; }
.elementor-105 .vs-hero-box .vs-lede { margin-bottom: 18px !important; }
.elementor-105 .vs-hero-box .vs-lede p { margin: 0 !important; font-size: 13.5px !important; line-height: 1.65 !important; }
.elementor-105 .vs-hero-box .vs-btn-row { margin-bottom: 18px !important; }
.elementor-105 .vs-hero-box .vs-btn-row > .elementor-container { gap: 10px !important; }
.elementor-105 .vs-hero-box .vs-btn-row .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; }

/* Stats: three soft grey boxes */
.elementor-105 .vs-hero-box .vs-stats-row { padding: 0 !important; }
.elementor-105 .vs-hero-box .vs-stats-row > .elementor-container,
.elementor-105 .vs-hero-box .vs-stats-row > .e-con-inner { padding: 0 !important; gap: 12px !important; }
.elementor-105 .vs-hero-box .vs-stat-cell { gap: 0 !important; --gap: 0px; --row-gap: 0px; padding: 12px 14px !important; border-radius: 10px !important; background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important; box-shadow: none !important; }
.elementor-105 .vs-hero-box .vs-stat-num { margin-bottom: 6px !important; }
.elementor-105 .vs-hero-box .vs-stat-num .elementor-heading-title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.3 !important; }
.elementor-105 .vs-hero-box .vs-stat-cell-text p { margin: 0 !important; font-size: 11.5px !important; line-height: 1.55 !important; }

/* Section heads */
.elementor-105 .vs-eyebrow { font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; margin-bottom: 12px !important; }
.elementor-105 .vs-eyebrow p { margin: 0 !important; line-height: 1.4; }
.elementor-105 .vs-section-head.vs-flex { margin-bottom: 22px !important; }
.elementor-105 .vs-section-head.vs-flex > .elementor-container { align-items: flex-start !important; }
.elementor-105 .vs-section-head.vs-flex .vs-head-right > .elementor-widget-wrap { padding-top: 10px !important; }
.elementor-105 .vs-section-head .vs-head-h2, .elementor-105 .vs-section-head .vs-head-h2 .elementor-heading-title { font-size: 20px !important; font-weight: 600 !important; line-height: 1.35 !important; max-width: 560px !important; }
.elementor-105 .vs-section-head .vs-head-note, .elementor-105 .vs-section-head .vs-head-note p { font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; }
.elementor-105 .vs-section-head .vs-head-note p { margin: 0 !important; }

/* What you'll find here */
.elementor-105 .vs-find-grid { margin-bottom: 56px !important; }
.elementor-105 .vs-find-grid > .elementor-container { gap: 16px !important; }
.elementor-105 .vs-find-grid .vs-find-card { padding: 18px 18px 16px !important; border-radius: 14px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05) !important; }
.elementor-105 .vs-find-grid .vs-find-top { margin-bottom: 8px !important; }
.elementor-105 .vs-find-grid .vs-find-top > .elementor-container { align-items: center !important; }
.elementor-105 .vs-find-grid .vs-find-h3 .elementor-heading-title { font-size: 14.5px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-105 .vs-find-grid .vs-icon-chip { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; }
.elementor-105 .vs-find-grid .vs-icon-chip .elementor-icon { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; background: none !important; border: 0 !important; font-size: var(--vs-icon-size, 20px) !important; }
.elementor-105 .vs-find-grid .vs-icon-chip .elementor-icon svg { width: var(--vs-icon-size, 20px) !important; height: var(--vs-icon-size, 20px) !important; }
.elementor-105 .vs-find-grid .vs-find-text { margin: 0 !important; }
.elementor-105 .vs-find-grid .vs-find-text p { margin: 0 !important; font-size: 12.5px !important; line-height: 1.6 !important; }

@media (max-width: 767px) {
  .elementor-105 .vs-hero-box { padding: 22px 18px !important; }
  .elementor-105 .vs-hero-box .vs-hero-h1 .elementor-heading-title { font-size: 28px !important; }
  .elementor-105 .vs-section-head.vs-flex .vs-head-right > .elementor-widget-wrap { padding-top: 0 !important; }
  .elementor-105 .vs-find-grid > .elementor-container { gap: 12px !important; }
}

/* =========================================================
   Blogs & Resources (page 105) – Explore by topic rows,
   "Why this page works" + Newsletter (per reference). Content unchanged.
   ========================================================= */
/* Topic rows */
.elementor-105 .vs-topic-list { margin-bottom: 56px !important; }
.elementor-105 .vs-topic-list .vs-topic-row { padding: 14px 20px !important; margin-bottom: 10px !important; border-radius: 14px !important; box-shadow: 0 2px 10px rgba(16, 18, 23, .04) !important; }
.elementor-105 .vs-topic-list .vs-topic-row:last-child { margin-bottom: 0 !important; }
.elementor-105 .vs-topic-list .vs-topic-row > .elementor-container { align-items: flex-start !important; }
.elementor-105 .vs-topic-list .vs-topic-row > .elementor-container > .elementor-column:first-child { flex: 1 1 auto !important; }
.elementor-105 .vs-topic-list .vs-topic-row > .elementor-container > .elementor-column:last-child { flex: 0 0 auto !important; width: auto !important; }
.elementor-105 .vs-topic-list .vs-topic-h3 { margin-bottom: 6px !important; }
.elementor-105 .vs-topic-list .vs-topic-h3 .elementor-heading-title { font-size: 14.5px !important; font-weight: 600 !important; line-height: 1.4 !important; }
.elementor-105 .vs-topic-list .vs-topic-text { max-width: none !important; width: 100% !important; }
.elementor-105 .vs-topic-list .vs-topic-text p { margin: 0 !important; font-size: 12.5px !important; line-height: 1.6 !important; }
.elementor-105 .vs-topic-list .vs-topic-count { padding: 2px 0 0 !important; }
.elementor-105 .vs-topic-list .vs-topic-count .elementor-heading-title { font-size: 11px !important; font-weight: 400 !important; color: var(--vs-muted) !important; white-space: nowrap; }

/* Split grid: headings */
.elementor-105 .vs-split-grid { margin-bottom: 48px !important; }
.elementor-105 .vs-split-grid > .elementor-container { gap: 20px !important; align-items: stretch !important; }
.elementor-105 .vs-split-grid > .elementor-container > .elementor-column > .elementor-widget-wrap { display: flex; flex-direction: column; flex-wrap: nowrap; }
.elementor-105 .vs-split-grid .vs-col-h2 { margin-bottom: 18px !important; max-width: 520px !important; }
.elementor-105 .vs-split-grid .vs-col-h2 .elementor-heading-title { font-size: 20px !important; font-weight: 600 !important; line-height: 1.35 !important; }

/* Left: audience cards inside one white panel */
.elementor-105 .vs-split-grid .vs-mini-grid { flex: 1 1 auto; background: var(--vs-card); border: 1px solid var(--vs-border); border-radius: 16px; padding: 14px !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05); }
.elementor-105 .vs-split-grid .vs-mini-grid > .elementor-container { gap: 10px !important; height: 100%; align-items: stretch; }
.elementor-105 .vs-split-grid .vs-mini-card { padding: 12px 14px !important; border-radius: 10px !important; background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important; box-shadow: none !important; }
.elementor-105 .vs-split-grid .vs-mini-h5 { margin-bottom: 8px !important; }
.elementor-105 .vs-split-grid .vs-mini-h5 .elementor-heading-title { font-size: 13px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.elementor-105 .vs-split-grid .vs-mini-text { margin: 0 !important; }
.elementor-105 .vs-split-grid .vs-mini-text p { margin: 0 !important; font-size: 11px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; }

/* Right: newsletter panel */
.elementor-105 .vs-split-grid .vs-newsletter-panel { flex: 1 1 auto; padding: 18px !important; border-radius: 16px !important; background: var(--vs-card) !important; box-shadow: 0 4px 16px rgba(16, 18, 23, .05) !important; }
.elementor-105 .vs-split-grid .vs-check-line { position: relative; padding-left: 26px !important; margin: 0 0 10px !important; }
.elementor-105 .vs-split-grid .vs-check-line p { margin: 0 !important; font-size: 12.5px !important; line-height: 1.5 !important; color: var(--vs-ink) !important; }
.elementor-105 .vs-split-grid .vs-check-line::before {
  content: "✓" !important; position: absolute !important; left: 0 !important; top: 1px !important;
  width: 16px !important; height: 16px !important; border-radius: 50% !important;
  background: color-mix(in srgb, var(--vs-accent) 14%, var(--vs-card)) !important; color: var(--vs-accent) !important;
  font-size: 9px !important; font-weight: 700; line-height: 16px !important; text-align: center;
}
.elementor-105 .vs-split-grid .vs-newsletter-form { margin-top: 16px !important; gap: 10px !important; }
.elementor-105 .vs-split-grid .vs-newsletter-form input { height: 36px !important; padding: 8px 14px !important; font-size: 12.5px !important; border-radius: 8px !important; background: var(--vs-card-soft) !important; border: 1px solid transparent !important; }
.elementor-105 .vs-split-grid .vs-newsletter-form input:focus { border-color: var(--vs-accent) !important; background: var(--vs-card) !important; outline: none; }
.elementor-105 .vs-split-grid .vs-newsletter-form button { height: 36px !important; padding: 8px 24px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 8px !important; }

@media (max-width: 767px) {
  .elementor-105 .vs-topic-list .vs-topic-row { padding: 14px 16px !important; }
  .elementor-105 .vs-topic-list .vs-topic-row > .elementor-container { flex-wrap: wrap !important; row-gap: 4px; }
  .elementor-105 .vs-split-grid { margin-bottom: 32px !important; }
  .elementor-105 .vs-split-grid > .elementor-container { gap: 28px !important; }
}
@media (max-width: 767px) {
  /* Newsletter form stacks on phones: keep the email box at its normal height. */
  .elementor-105 .vs-split-grid .vs-newsletter-form input,
  .elementor-105 .vs-split-grid .vs-newsletter-form button { flex: 0 0 auto !important; width: 100% !important; }
}

/* =========================================================
   Blogs & Resources (page 105) – "Recent blogs and resources"
   library + closing CTA (per reference). Styling only: filters
   and dynamic cards keep working.
   ========================================================= */
.elementor-105 .vs-library-panel { background: var(--vs-card) !important; border: 1px solid var(--vs-border) !important; border-radius: 18px !important; padding: 16px 18px 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; margin-bottom: 48px !important; }

/* Filter chips */
.elementor-105 .vs-library-panel > .elementor-container > .elementor-column > .elementor-widget-wrap > .vs-pill-group { margin-bottom: 12px !important; }
.elementor-105 .vs-library-panel .vs-pill-group > .elementor-container { gap: 6px !important; flex-wrap: wrap !important; }
.elementor-105 .vs-library-panel .vs-pill-group > .elementor-container > .elementor-column { flex: 0 0 auto !important; width: auto !important; }
.elementor-105 .vs-library-panel .vs-filter-chip { padding: 4px 11px !important; border-radius: 999px !important; }
.elementor-105 .vs-library-panel .vs-filter-chip:not(.vs-chip-on) { border-color: transparent !important; }
.elementor-105 .vs-library-panel .vs-filter-chip .elementor-heading-title { font-size: 11px !important; font-weight: 500 !important; line-height: 1.4 !important; white-space: nowrap; }

/* Cards */
.elementor-105 .vs-library-panel .vs-article-grid { margin-bottom: 14px !important; }
.elementor-105 .vs-library-panel .vs-article-grid:last-child { margin-bottom: 0 !important; }
.elementor-105 .vs-library-panel .vs-article-grid > .elementor-container { gap: 14px !important; }
.elementor-105 .vs-library-panel .vs-article-card { padding: 14px 16px !important; border-radius: 12px !important; box-shadow: 0 2px 10px rgba(16, 18, 23, .04) !important; }
.elementor-105 .vs-library-panel .vs-article-card > .elementor-widget-wrap { display: flex; flex-direction: column; flex-wrap: nowrap; height: 100%; }
.elementor-105 .vs-library-panel .vs-article-meta { margin-bottom: 10px !important; }
.elementor-105 .vs-library-panel .vs-article-meta > .elementor-container { align-items: center !important; }
.elementor-105 .vs-library-panel .vs-article-tag,
.elementor-105 .vs-library-panel .vs-sub-tag { padding: 2px 9px !important; border-radius: 999px !important; border-color: transparent !important; background: var(--vs-card-soft) !important; }
.elementor-105 .vs-library-panel .vs-article-tag .elementor-heading-title,
.elementor-105 .vs-library-panel .vs-sub-tag .elementor-heading-title { font-size: 10px !important; font-weight: 500 !important; line-height: 1.5 !important; letter-spacing: .2px !important; }
.elementor-105 .vs-library-panel .vs-article-tag { border: 1px solid var(--vs-border) !important; background: var(--vs-card) !important; }
.elementor-105 .vs-library-panel .vs-article-time p { font-size: 10.5px !important; line-height: 1.4 !important; color: var(--vs-muted) !important; }
.elementor-105 .vs-library-panel .vs-article-h3 { margin-bottom: 6px !important; }
.elementor-105 .vs-library-panel .vs-article-h3 .elementor-heading-title { font-size: 14.5px !important; font-weight: 600 !important; line-height: 1.4 !important; }
.elementor-105 .vs-library-panel .vs-article-text { margin: 0 0 12px !important; }
.elementor-105 .vs-library-panel .vs-article-text p { margin: 0 !important; font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; }
.elementor-105 .vs-library-panel .vs-article-card .vs-flex-wrap { margin-bottom: 14px !important; }
.elementor-105 .vs-library-panel .vs-article-card .vs-flex-wrap > .elementor-container { gap: 6px !important; }
.elementor-105 .vs-library-panel .vs-article-card .vs-flex-wrap > .elementor-container > .elementor-column { flex: 0 0 auto !important; width: auto !important; }
.elementor-105 .vs-library-panel .vs-article-foot { margin-top: auto !important; padding-top: 0 !important; }
.elementor-105 .vs-library-panel .vs-article-foot > .elementor-container { align-items: center !important; }
.elementor-105 .vs-library-panel .vs-article-byline p { margin: 0 !important; font-size: 11.5px !important; line-height: 1.4 !important; color: var(--vs-ink) !important; }
.elementor-105 .vs-library-panel .vs-article-link .elementor-button { font-size: 12.5px !important; font-weight: 500 !important; padding: 0 !important; }

/* Closing CTA */
.elementor-105 .vs-library-panel + .vs-cta-box { padding: 22px 28px !important; border-radius: 18px !important; box-shadow: 0 4px 18px rgba(16, 18, 23, .06) !important; }
.elementor-105 .vs-library-panel + .vs-cta-box::before, .elementor-105 .vs-library-panel + .vs-cta-box::after { display: none !important; }
.elementor-105 .vs-library-panel + .vs-cta-box > .elementor-container { align-items: center !important; }
.elementor-105 .vs-library-panel + .vs-cta-box .vs-cta-h2 { margin-bottom: 8px !important; }
.elementor-105 .vs-library-panel + .vs-cta-box .vs-cta-h2 .elementor-heading-title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.35 !important; color: var(--vs-ink) !important; }
.elementor-105 .vs-library-panel + .vs-cta-box .vs-cta-text, .elementor-105 .vs-library-panel + .vs-cta-box .vs-cta-text p { font-size: 12.5px !important; line-height: 1.6 !important; color: var(--vs-muted) !important; margin: 0 !important; max-width: 560px; }
.elementor-105 .vs-library-panel + .vs-cta-box .vs-cta-actions > .elementor-container { gap: 10px !important; }
.elementor-105 .vs-library-panel + .vs-cta-box .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; box-shadow: none !important; }

@media (max-width: 767px) {
  .elementor-105 .vs-library-panel { padding: 12px !important; margin-bottom: 32px !important; }
  .elementor-105 .vs-library-panel .vs-pill-group > .elementor-container > .elementor-column,
  .elementor-105 .vs-library-panel .vs-article-card .vs-flex-wrap > .elementor-container > .elementor-column { width: auto !important; flex: 0 0 auto !important; margin-bottom: 0 !important; }
  .elementor-105 .vs-library-panel + .vs-cta-box { padding: 18px !important; }
  .elementor-105 .vs-library-panel + .vs-cta-box .elementor-button { min-height: 40px !important; }
}

/* ==========================================================================
   HOME HERO - refreshed to match reference design (2026-09-23)
   Scoped to the home page hero; tokens keep dark mode working.
   ========================================================================== */
body.home .elementor .vs-hero-box {
  padding: 40px 38px !important; border-radius: 24px !important;
  border: 1px solid var(--vs-border-soft) !important;
  box-shadow: 0 24px 60px -28px rgba(16,18,23,.14), 0 2px 6px rgba(16,18,23,.03) !important;
}
body.home .elementor .vs-hero-box::before { display: none !important; }
body.home .elementor .vs-hero-box > .elementor-container { align-items: stretch !important; gap: 36px !important; }
body.home .elementor .vs-flex.vs-hero-box > .elementor-container > .elementor-column:first-child { flex: 1.15 1 0; }
body.home .elementor .vs-flex.vs-hero-box > .elementor-container > .elementor-column:last-child { flex: 1 1 0; }

/* Eyebrow pill */
body.home .elementor .vs-hero-box .vs-eyebrow-pill { margin-bottom: 20px !important; }
body.home .elementor .vs-hero-box .vs-eyebrow-pill p {
  background: var(--vs-card-soft); border: 0; padding: 7px 14px; gap: 8px;
  font-size: 11.5px; font-weight: 500; color: var(--vs-ink); opacity: .85;
}
body.home .elementor .vs-hero-box .vs-eyebrow-pill p::before { width: 6px; height: 6px; }

/* Heading */
body.home .vs-hero-box .custom-heading {
  font-size: clamp(28px, 2.72vw, 34px) !important; line-height: 1.2 !important; font-weight: 700 !important;
  letter-spacing: -.8px; margin-bottom: 18px;
}

/* Lede */
body.home .elementor .vs-hero-box .vs-lede { max-width: 440px; margin-bottom: 22px !important; }
body.home .elementor .vs-hero-box .vs-lede p {
  font-size: 14.5px; line-height: 1.6; color: var(--vs-muted); margin: 0;
}

/* Stats */
body.home .elementor .vs-hero-box .vs-stat-row { margin-bottom: 30px !important; }
body.home .elementor .vs-hero-box .vs-stat-row > .elementor-container { gap: 26px !important; flex-wrap: nowrap; }
body.home .elementor .vs-hero-box .vs-stat-value { margin-bottom: 6px !important; }
body.home .elementor .vs-hero-box .vs-stat-value .elementor-heading-title {
  font-size: 20px; font-weight: 500; letter-spacing: -.2px; line-height: 1.2; color: var(--vs-ink);
}
body.home .elementor .vs-hero-box .vs-stat-value .vs-sub { font-size: 10px; font-weight: 500; color: var(--vs-ink); margin-left: 3px; vertical-align: 3px; }
body.home .elementor .vs-hero-box .vs-stat-label,
body.home .elementor .vs-hero-box .vs-stat-label p { font-size: 9.5px; line-height: 1.3; color: var(--vs-ink); opacity: .8; margin: 0; white-space: nowrap; }

/* Buttons */
body.home .elementor .vs-hero-box .vs-btn-row > .elementor-container { gap: 14px !important; }
body.home .elementor .vs-hero-box .vs-btn-primary .elementor-button,
body.home .elementor .vs-hero-box .vs-btn-secondary .elementor-button {
  padding: 11px 16px !important; border-radius: 7px !important;
  font-size: 12.5px !important; font-weight: 500 !important;
}
body.home .elementor .vs-hero-box .vs-btn-primary .elementor-button {
  box-shadow: 0 6px 14px -4px rgba(218,99,64,.55);
}
body.home .elementor .vs-hero-box .vs-btn-secondary .elementor-button {
  background: var(--vs-card-soft) !important; border-color: var(--vs-card-soft) !important;
}
body.home .elementor .vs-hero-box .vs-btn-secondary .elementor-button:hover { border-color: var(--vs-border) !important; }

/* Technology Services panel: white card with an inner grey node tray */
body.home .elementor .vs-hero-box .vs-tech-panel {
  background: var(--vs-panel) !important; border: 1px solid var(--vs-border) !important;
  border-radius: 18px !important; padding: 20px 18px 18px !important;
}
body.home .elementor .vs-hero-box .vs-tech-panel > .elementor-widget-wrap { justify-content: center; }
body.home .elementor .vs-hero-box .vs-tech-panel .vs-panel-foot { margin-top: auto !important; }
body.home .elementor .vs-hero-box .vs-panel-head { margin-bottom: 14px !important; }
body.home .elementor .vs-hero-box .vs-panel-head { margin-bottom: 14px !important; }
body.home .elementor .vs-hero-box .vs-panel-title,
body.home .elementor .vs-hero-box .vs-panel-note,
body.home .elementor .vs-hero-box .vs-panel-title p,
body.home .elementor .vs-hero-box .vs-panel-note p { font-size: 11.5px; font-weight: 400; color: var(--vs-muted); margin: 0; }

body.home .elementor .vs-hero-box .vs-tech-row {
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  padding: 14px 14px 5px !important; margin: 0 !important;
  border-radius: 14px 14px 0 0 !important; border-bottom: 0;
}
body.home .elementor .vs-hero-box .vs-tech-row + .vs-tech-row {
  padding: 5px 14px 14px !important; border-radius: 0 0 14px 14px !important;
  border-top: 0; border-bottom: 1px solid var(--vs-border);
}
body.home .elementor .vs-hero-box .vs-tech-row > .elementor-container { gap: 9px !important; flex-wrap: nowrap; }
body.home .elementor .vs-hero-box .vs-tech-node {
  background: var(--vs-panel); border-color: var(--vs-border);
  font-size: 11px; color: var(--vs-ink); padding: 8px;
}
body.home .elementor .vs-hero-box .vs-tech-node .elementor-heading-title { font-size: 11px; line-height: 1.3; color: inherit; }
body.home .elementor .vs-hero-box .vs-tech-node.vs-filled {
  background: var(--vs-accent); border-color: var(--vs-accent); color: #fff; animation: none;
}

body.home .elementor .vs-hero-box .vs-panel-foot { border-top: 0 !important; padding-top: 14px !important; margin-top: 0 !important; }
body.home .elementor .vs-hero-box .vs-panel-foot > .elementor-container { align-items: flex-start; }
body.home .elementor .vs-hero-box .vs-panel-foot-item,
body.home .elementor .vs-hero-box .vs-panel-foot-item p { font-size: 11.5px; color: var(--vs-muted); margin: 0; }
body.home .elementor .vs-hero-box .vs-panel-foot-item b { color: var(--vs-ink); opacity: .8; font-weight: 600; }

@media (max-width: 980px) {
  body.home .elementor .vs-hero-box { padding: 26px !important; }
  body.home .elementor .vs-hero-box .vs-stat-row > .elementor-container { flex-wrap: wrap; gap: 18px 26px !important; }
}
@media (max-width: 620px) {
  body.home .vs-hero-box .custom-heading { font-size: 28px !important; }
  body.home .elementor .vs-hero-box .vs-tech-row { padding-left: 8px !important; padding-right: 8px !important; }
  body.home .elementor .vs-hero-box .vs-tech-row > .elementor-container { gap: 6px !important; flex-wrap: nowrap !important; }
  body.home .elementor .vs-hero-box .vs-tech-row > .elementor-container > .elementor-column { width: auto !important; flex: 1 1 0 !important; min-width: 0; margin: 0 !important; }
  body.home .elementor .vs-hero-box .vs-tech-panel { padding: 16px 14px !important; }
  body.home .elementor .vs-hero-box .vs-panel-head > .elementor-container,
  body.home .elementor .vs-hero-box .vs-panel-foot > .elementor-container { flex-direction: column; flex-wrap: nowrap; gap: 4px !important; align-items: flex-start; }
  body.home .elementor .vs-hero-box .vs-panel-head > .elementor-container > .elementor-column,
  body.home .elementor .vs-hero-box .vs-panel-foot > .elementor-container > .elementor-column { width: 100% !important; flex: 0 0 auto !important; }
  body.home .elementor .vs-hero-box .vs-panel-note,
  body.home .elementor .vs-hero-box .vs-panel-note p,
  body.home .elementor .vs-hero-box .vs-panel-foot .vs-align-right,
  body.home .elementor .vs-hero-box .vs-panel-foot .vs-align-right p { text-align: left !important; }
  body.home .elementor .vs-hero-box .vs-tech-node,
  body.home .elementor .vs-hero-box .vs-tech-node .elementor-heading-title { font-size: 8.5px; letter-spacing: -.1px; }
  body.home .elementor .vs-hero-box .vs-tech-node { padding: 2px; }
}

/* ==========================================================================
   STORY LIBRARY - Success Stories page (page 106) refresh (2026-09-23)
   Matches reference: grey chips, pill tags, soft-shadow cards, grey stat tiles.
   Also removes extra vertical spacing inside the section. Tokens keep dark mode.
   ========================================================================== */
/* Section head */
.elementor-106 .vs-section-head { margin-bottom: 28px !important; }
.elementor-106 .vs-section-head .vs-eyebrow p {
  font-size: 11px !important; font-weight: 500 !important; letter-spacing: 1.2px !important;
  color: var(--vs-muted) !important; margin: 0 0 10px !important;
}
.elementor-106 .vs-section-head .vs-head-h2 .elementor-heading-title {
  font-size: clamp(20px, 1.9vw, 23px) !important; font-weight: 600 !important;
  line-height: 1.35 !important; letter-spacing: -.3px !important; max-width: 520px;
}
.elementor-106 .vs-section-head .vs-head-note p {
  font-size: 13px !important; line-height: 1.6 !important; margin: 0 !important; color: var(--vs-muted) !important;
}

/* Filter chips */
.elementor-106 .vs-pill-group { margin-bottom: 22px !important; }
.elementor-106 .vs-pill-group .vs-filter-chip {
  background: var(--vs-card-soft) !important; border: 1px solid transparent !important;
  border-radius: 7px !important; padding: 9px 18px !important; box-shadow: none !important;
}
.elementor-106 .vs-pill-group .vs-filter-chip .elementor-heading-title {
  font-size: 12.5px !important; font-weight: 500 !important; line-height: 1.3 !important;
  color: var(--vs-ink) !important; opacity: .8;
}
.elementor-106 .vs-pill-group .vs-filter-chip:hover { background: var(--vs-border) !important; }
.elementor-106 .vs-pill-group .vs-filter-chip.vs-chip-on {
  background: var(--vs-accent) !important; border-color: var(--vs-accent) !important;
  box-shadow: 0 6px 16px -6px var(--vs-accent-glow), 0 2px 6px var(--vs-accent-glow) !important;
}
.elementor-106 .vs-pill-group .vs-filter-chip.vs-chip-on .elementor-heading-title { color: var(--vs-on-accent) !important; opacity: 1; }

/* Story card */
.elementor-106 .vs-case-story {
  background: var(--vs-panel) !important; border: 1px solid var(--vs-border) !important;
  border-radius: 22px !important; padding: 24px 26px !important; margin-bottom: 18px !important;
  box-shadow: 0 10px 30px -18px rgba(16,18,23,.16), 0 1px 3px rgba(16,18,23,.04) !important;
}
.elementor-106 .vs-case-story:hover { transform: translateY(-3px); border-color: var(--vs-accent-dim) !important; box-shadow: var(--vs-shadow-hover) !important; }
.elementor-106 .vs-case-story .vs-story-top { margin-bottom: 16px !important; }
.elementor-106 .vs-case-story .vs-story-top > .elementor-container { align-items: center !important; }

/* Tags (pills) */
.elementor-106 .vs-case-story .vs-story-tag {
  background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important;
  border-radius: 999px !important; padding: 5px 12px !important;
}
.elementor-106 .vs-case-story .vs-story-tag .elementor-heading-title {
  font-size: 11px !important; font-weight: 400 !important; line-height: 1.3 !important; color: var(--vs-muted) !important;
}

/* Read More button */
.elementor-106 .vs-case-story .vs-btn-story .elementor-button {
  border-radius: 7px !important; padding: 8px 18px !important; font-size: 12px !important;
  font-weight: 500 !important; line-height: 1.3 !important;
  box-shadow: 0 6px 14px -6px var(--vs-accent-glow), 0 2px 5px var(--vs-accent-glow) !important;
}

/* Title + description */
.elementor-106 .vs-case-story .vs-case-story-h3 { margin-bottom: 12px !important; }
.elementor-106 .vs-case-story .vs-case-story-h3 .elementor-heading-title {
  font-size: clamp(18px, 1.75vw, 21px) !important; font-weight: 600 !important;
  line-height: 1.35 !important; letter-spacing: -.3px !important;
}
.elementor-106 .vs-case-story .vs-case-story-text { margin-bottom: 18px !important; max-width: none !important; }
.elementor-106 .vs-case-story .vs-case-story-text p {
  font-size: 13px !important; line-height: 1.65 !important; color: var(--vs-muted) !important; margin: 0 !important;
}

/* Stat tiles */
.elementor-106 .vs-case-story .vs-story-stats > .elementor-container { gap: 14px !important; }
.elementor-106 .vs-case-story .vs-stat-block {
  background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important;
  border-radius: 10px !important; padding: 13px 16px !important; box-shadow: none !important;
}
.elementor-106 .vs-case-story .vs-stat-block:hover { transform: none; }
.elementor-106 .vs-case-story .vs-stat-block-b { margin-bottom: 6px !important; }
.elementor-106 .vs-case-story .vs-stat-block-b .elementor-heading-title {
  font-size: 15px !important; font-weight: 600 !important; line-height: 1.3 !important; color: var(--vs-ink) !important;
}
.elementor-106 .vs-case-story .vs-stat-block-text p {
  font-size: 11.5px !important; line-height: 1.5 !important; color: var(--vs-muted) !important; margin: 0 !important;
}

@media (max-width: 767px) {
  .elementor-106 .vs-case-story { padding: 18px !important; border-radius: 16px !important; }
  .elementor-106 .vs-case-story .vs-story-stats > .elementor-container { gap: 10px !important; }
}
@media (max-width: 767px) {
  .elementor-106 .vs-case-story .vs-story-top .vs-flex-wrap > .elementor-container { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; }
  .elementor-106 .vs-case-story .vs-story-top .vs-flex-wrap > .elementor-container > .elementor-column:not(#vs-none) { width: auto !important; flex: 0 0 auto !important; margin: 0 !important; }
  .elementor-106 .vs-case-story .vs-story-stats > .elementor-container { display: grid !important; grid-template-columns: 1fr 1fr; }
  .elementor-106 .vs-case-story .vs-story-stats > .elementor-container > .elementor-column:not(#vs-none) { width: auto !important; margin: 0 !important; }
  .elementor-106 .vs-case-story .vs-stat-block { padding: 11px 12px !important; }
}

/* ==========================================================================
   SUCCESS STORIES (page 106) - hero, "How we engage / What this enables"
   and closing CTA refreshed to match reference design (2026-09-23).
   ========================================================================== */
/* ---- Hero box ---- */
.elementor-106 .vs-hero-box {
  padding: 36px !important; border-radius: 22px !important;
  border: 1px solid var(--vs-border-soft) !important;
  box-shadow: 0 24px 60px -28px rgba(16,18,23,.16), 0 2px 6px rgba(16,18,23,.03) !important;
}
.elementor-106 .vs-hero-box::before { display: none !important; }
.elementor-106 .vs-hero-box > .elementor-container { align-items: center !important; gap: 34px !important; }
.elementor-106 .vs-hero-box .elementor-widget:not(:last-child) { margin-bottom: 0; }

.elementor-106 .vs-hero-box .vs-eyebrow-pill { margin-bottom: 14px !important; }
.elementor-106 .vs-hero-box .vs-eyebrow-pill p {
  background: var(--vs-card-soft) !important; border: 0 !important; padding: 6px 13px !important;
  font-size: 11px !important; font-weight: 500 !important; color: var(--vs-ink) !important; opacity: .85; margin: 0 !important;
}
.elementor-106 .vs-hero-box .vs-hero-h1 { margin-bottom: 18px !important; max-width: 440px; }
.elementor-106 .vs-hero-box .vs-hero-h1 .elementor-heading-title {
  font-size: clamp(28px, 2.7vw, 34px) !important; font-weight: 600 !important;
  line-height: 1.25 !important; letter-spacing: -.8px !important;
}
.elementor-106 .vs-hero-box .vs-lede { margin-bottom: 22px !important; max-width: 490px; }
.elementor-106 .vs-hero-box .vs-lede p { font-size: 13.5px !important; line-height: 1.6 !important; margin: 0 !important; }

/* Facet cells (By industry / technology / service) */
.elementor-106 .vs-hero-box .vs-facet-row > .elementor-container { gap: 8px !important; }
.elementor-106 .vs-hero-box .vs-facet-cell {
  background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important;
  border-radius: 8px !important; padding: 12px !important; box-shadow: none !important;
}
.elementor-106 .vs-hero-box .vs-facet-cell:hover { transform: none; }
.elementor-106 .vs-hero-box .vs-cell-label-caps { margin-bottom: 4px !important; }
.elementor-106 .vs-hero-box .vs-cell-label-caps p {
  font-size: 8.5px !important; font-weight: 400 !important; letter-spacing: .3px !important; line-height: 1.4 !important; margin: 0 !important;
}
.elementor-106 .vs-hero-box .vs-cell-text-ink p {
  font-size: 11.5px !important; line-height: 1.5 !important; color: var(--vs-ink) !important; margin: 0 !important;
}

/* Impact themes: white outer card, grey inner tray, white tiles */
.elementor-106 .vs-hero-box .vs-side-panel {
  background: var(--vs-panel) !important; border: 1px solid var(--vs-border) !important;
  border-radius: 18px !important; padding: 20px !important; align-self: center;
}
.elementor-106 .vs-hero-box .vs-side-panel > .elementor-widget-wrap {
  background: var(--vs-card-soft); border: 1px solid var(--vs-border);
  border-radius: 16px; padding: 18px !important;
}
.elementor-106 .vs-hero-box .vs-panel-eyebrow { margin-bottom: 6px !important; }
.elementor-106 .vs-hero-box .vs-panel-eyebrow p {
  font-size: 10.5px !important; font-weight: 400 !important; letter-spacing: .3px; text-transform: uppercase; margin: 0 !important;
}
.elementor-106 .vs-hero-box .vs-panel-h4 { margin-bottom: 14px !important; }
.elementor-106 .vs-hero-box .vs-panel-h4 .elementor-heading-title { font-size: 14.5px !important; font-weight: 500 !important; line-height: 1.4 !important; }
.elementor-106 .vs-hero-box .vs-side-panel .vs-flex > .elementor-container { gap: 10px !important; }
.elementor-106 .vs-hero-box .vs-side-panel .vs-row-mb { margin-bottom: 10px !important; }
.elementor-106 .vs-hero-box .vs-impact-cell {
  background: var(--vs-panel) !important; border: 1px solid var(--vs-border) !important;
  border-radius: 10px !important; padding: 13px 14px !important; box-shadow: none !important;
}
.elementor-106 .vs-hero-box .vs-impact-b { margin-bottom: 6px !important; }
.elementor-106 .vs-hero-box .vs-impact-b .elementor-heading-title {
  font-size: 19px !important; font-weight: 500 !important; line-height: 1.2 !important; color: var(--vs-accent) !important;
}
.elementor-106 .vs-hero-box .vs-impact-sub { margin-bottom: 10px !important; }
.elementor-106 .vs-hero-box .vs-impact-sub p { font-size: 10.5px !important; font-weight: 500 !important; color: var(--vs-ink) !important; line-height: 1.4 !important; margin: 0 !important; }
.elementor-106 .vs-hero-box .vs-impact-desc p { font-size: 10px !important; line-height: 1.55 !important; color: var(--vs-muted) !important; margin: 0 !important; }

/* ---- How we engage / What this enables ---- */
.elementor-106 .vs-split-grid > .elementor-container { align-items: stretch !important; }
.elementor-106 .vs-split-grid > .elementor-container > .elementor-column > .elementor-widget-wrap { align-content: flex-start; }
.elementor-106 .vs-split-grid .vs-eyebrow { margin-bottom: 8px !important; }
.elementor-106 .vs-split-grid .vs-eyebrow p {
  font-size: 11px !important; font-weight: 400 !important; letter-spacing: 1.4px !important; margin: 0 !important;
}
.elementor-106 .vs-split-grid .vs-col-h2 { margin-bottom: 22px !important; max-width: 470px; min-height: 2.7em; }
.elementor-106 .vs-split-grid .vs-col-h2 .elementor-heading-title {
  font-size: clamp(18px, 1.6vw, 20px) !important; font-weight: 500 !important; line-height: 1.35 !important; letter-spacing: -.3px !important;
}
/* white tray around each card group */
.elementor-106 .vs-split-grid .vs-engage-cards {
  background: var(--vs-panel); border: 1px solid var(--vs-border); border-radius: 18px;
  padding: 12px !important; box-shadow: 0 10px 30px -20px rgba(16,18,23,.18);
}
.elementor-106 .vs-split-grid .vs-engage-cards > .elementor-container { gap: 8px !important; }
.elementor-106 .vs-split-grid > .elementor-container > .elementor-column:last-child .vs-flex {
  background: var(--vs-panel); border: 1px solid var(--vs-border); margin: 0 !important;
}
.elementor-106 .vs-split-grid > .elementor-container > .elementor-column:last-child .vs-flex.vs-row-mb {
  padding: 12px 12px 4px !important; border-bottom: 0; border-radius: 18px 18px 0 0;
}
.elementor-106 .vs-split-grid > .elementor-container > .elementor-column:last-child .vs-flex:not(.vs-row-mb) {
  padding: 4px 12px 12px !important; border-top: 0; border-radius: 0 0 18px 18px;
  box-shadow: 0 14px 24px -22px rgba(16,18,23,.35);
}
.elementor-106 .vs-split-grid > .elementor-container > .elementor-column:last-child .vs-flex > .elementor-container { gap: 8px !important; }
/* grey cards inside the trays */
.elementor-106 .vs-split-grid .vs-engage-card,
.elementor-106 .vs-split-grid .vs-enable-card {
  background: var(--vs-card-soft) !important; border: 1px solid var(--vs-border) !important;
  border-radius: 10px !important; padding: 14px !important; box-shadow: none !important;
}
.elementor-106 .vs-split-grid .vs-engage-card { padding: 12px 14px 16px !important; }
.elementor-106 .vs-split-grid .vs-engage-card:hover,
.elementor-106 .vs-split-grid .vs-enable-card:hover { transform: none; }
.elementor-106 .vs-split-grid .vs-engage-tag {
  background: var(--vs-panel) !important; border: 1px solid var(--vs-border) !important;
  border-radius: 999px !important; padding: 3px 9px !important; margin-bottom: 14px !important;
}
.elementor-106 .vs-split-grid .vs-engage-tag .elementor-heading-title { font-size: 8.5px !important; font-weight: 400 !important; line-height: 1.4 !important; color: var(--vs-muted) !important; }
.elementor-106 .vs-split-grid .vs-mini-h5 { margin-bottom: 8px !important; }
.elementor-106 .vs-split-grid .vs-enable-card .vs-mini-h5 { margin-bottom: 6px !important; }
.elementor-106 .vs-split-grid .vs-mini-h5 .elementor-heading-title { font-size: 13px !important; font-weight: 500 !important; line-height: 1.35 !important; }
.elementor-106 .vs-split-grid .vs-mini-text p { font-size: 10.5px !important; line-height: 1.55 !important; color: var(--vs-muted) !important; margin: 0 !important; }

/* ---- Closing CTA ---- */
.elementor-106 .vs-cta-box {
  border-radius: 18px !important; padding: 24px 26px !important;
  border: 1px solid var(--vs-border) !important;
  box-shadow: 0 10px 30px -18px rgba(16,18,23,.16), 0 1px 3px rgba(16,18,23,.04) !important;
}
.elementor-106 .vs-cta-box > .elementor-container { align-items: center !important; }
.elementor-106 .vs-cta-box .vs-cta-h2 { margin-bottom: 12px !important; }
.elementor-106 .vs-cta-box .vs-cta-h2 .elementor-heading-title { font-size: 16px !important; font-weight: 500 !important; line-height: 1.35 !important; letter-spacing: -.2px !important; }
.elementor-106 .vs-cta-box .vs-cta-text { max-width: 540px; }
.elementor-106 .vs-cta-box .vs-cta-text p { font-size: 13px !important; line-height: 1.6 !important; margin: 0 !important; }
.elementor-106 .vs-cta-box .vs-btn-primary .elementor-button,
.elementor-106 .vs-cta-box .vs-btn-secondary .elementor-button {
  padding: 9px 16px !important; border-radius: 8px !important; font-size: 13px !important; font-weight: 400 !important; line-height: 1.3 !important;
}
.elementor-106 .vs-cta-box .vs-btn-primary .elementor-button { box-shadow: 0 6px 14px -5px var(--vs-accent-glow), 0 2px 5px var(--vs-accent-glow) !important; }
.elementor-106 .vs-cta-box .vs-btn-secondary .elementor-button {
  background: var(--vs-card-soft) !important; border-color: var(--vs-border) !important; color: var(--vs-ink) !important;
}
.elementor-106 .vs-cta-box .vs-btn-secondary .elementor-button:hover { border-color: var(--vs-accent-dim) !important; }

@media (max-width: 1024px) {
  .elementor-106 .vs-split-grid .vs-col-h2 { min-height: 0; }
}
@media (max-width: 767px) {
  .elementor-106 .vs-hero-box { padding: 20px !important; border-radius: 18px !important; }
  .elementor-106 .vs-hero-box .vs-side-panel { padding: 12px !important; }
  .elementor-106 .vs-hero-box > .elementor-container { gap: 22px !important; }
  .elementor-106 .vs-hero-box .vs-hero-left > .elementor-widget-wrap { padding-bottom: 0 !important; }
  .elementor-106 .vs-hero-box .vs-side-panel > .elementor-widget-wrap { padding: 14px !important; }
  .elementor-106 .vs-cta-box { padding: 20px !important; }
}

/* Insights Library cards: "Blog" chip + technology chips on one row (Elementor cards and live cards alike). */
.elementor-104 .vs-library-panel .vs-card-meta-tags > .elementor-widget-wrap,
.elementor-104 .vs-library-panel .elementor-widget-wrap.vs-card-meta-tags { display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; justify-content: flex-start !important; align-items: center !important; align-content: center !important; gap: 8px; }
.elementor-104 .vs-library-panel .vs-card-meta-tags > .elementor-widget-wrap > .elementor-element,
.elementor-104 .vs-library-panel .elementor-widget-wrap.vs-card-meta-tags > .elementor-element { width: auto !important; margin: 0 !important; }
.elementor-104 .vs-library-panel .vs-article-meta > .elementor-container { flex-wrap: nowrap !important; }
.elementor-104 .vs-library-panel .vs-article-meta .vs-card-meta-tags { flex: 1 1 auto !important; width: 100% !important; max-width: none !important; }

/* AWS Marketplace (page 1114): regular-weight text and buttons sized like the rest of the site. */
.elementor-1114 .elementor-button,
.elementor-1114 .vs-btn-primary .elementor-button,
.elementor-1114 .vs-btn-secondary .elementor-button { padding: 9px 18px !important; font-size: 13px !important; font-weight: 500 !important; border-radius: 10px !important; min-height: 0 !important; }
.elementor-1114 .elementor-button .elementor-button-text,
.elementor-1114 .elementor-button .elementor-button-text span { font-weight: inherit !important; }
.elementor-1114 .vs-aws-note-box strong { font-weight: 400 !important; }
.elementor-1114 .vs-impact-sub,
.elementor-1114 .vs-impact-sub p { font-weight: 400 !important; }

/* Offerings (page 103) hero: right "Capability Snapshots" panel lines up with the left column
   (same top & bottom edge, same inner padding on both sides) – desktop only. Remove this block to undo. */
@media (min-width: 981px) {
  html body .elementor-103 .elementor-element-7e1b2f5.vs-hero-box > .elementor-container > .vs-side-panel.elementor-column.elementor-element-7608219 { margin: 12px 12px 12px 0 !important; align-self: stretch !important; display: flex !important; }
  html body .elementor-103 .elementor-element-7608219.vs-side-panel > .elementor-widget-wrap { flex-direction: column !important; flex-wrap: nowrap !important; align-content: stretch !important; width: 100%; }
  html body .elementor-103 .elementor-element-7608219.vs-side-panel > .elementor-widget-wrap > .vs-cap-item { flex: 1 1 auto !important; display: flex !important; align-items: center; }
  html body .elementor-103 .elementor-element-7608219.vs-side-panel > .elementor-widget-wrap > .vs-cap-item > .elementor-container { width: 100%; }
}

/* Insights (page 104) hero: right "Coverage" panel lines up with the left column
   (same top & bottom edge, same inner padding on both sides) – desktop only. Remove this block to undo. */
@media (min-width: 981px) {
  html body .elementor-104 .elementor-element-0a20225.vs-hero-box > .elementor-container > .vs-side-panel.elementor-column.elementor-element-f0662c0 { margin: 11px 11px 11px 0 !important; align-self: stretch !important; display: flex !important; }
  html body .elementor-104 .elementor-element-f0662c0.vs-side-panel > .elementor-widget-wrap { flex-direction: column !important; flex-wrap: nowrap !important; align-content: stretch !important; width: 100%; }
  html body .elementor-104 .elementor-element-f0662c0.vs-side-panel > .elementor-widget-wrap > .vs-flex { flex: 1 1 auto !important; display: flex !important; }
  html body .elementor-104 .elementor-element-f0662c0.vs-side-panel > .elementor-widget-wrap > .vs-flex > .elementor-container { width: 100%; align-items: stretch !important; }
}

/* Footer headings match section eyebrows (OUR EDGE) */
html body .vs-footer-top .vs-footer-label, html body .vs-footer-top .vs-connect > h5 { font-size: 13px !important; font-weight: 500 !important; letter-spacing: 1.6px !important; color: var(--vs-muted) !important; }

/* Core Competencies: larger tags inside the capability cards (MVP, Architecture, Modernization, PODs) */
html body .elementor-103 .v-services-card .v-tag .elementor-heading-title { font-size: 13px !important; line-height: 1.4 !important; }
html body .elementor-103 .v-services-card .v-tag { padding: 5px 14px !important; }

/* Hero right-side boxes: shared scale matching Core Competencies (13 / 17 / 15) */
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-b,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-b .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-b .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-b p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-h5,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-h5 .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-h5 .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-h5 p { font-size: 17px !important; font-weight: 600 !important; line-height: 1.4 !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v p { font-size: 15px !important; font-weight: 500 !important; line-height: 1.45 !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-text,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-text .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-text .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-text p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-intro,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-intro .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-intro .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-intro p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-intro,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-intro .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-intro .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-intro p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-text,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-text .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-text .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-text p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-text,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-text .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-text .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-text p { font-size: 15px !important; line-height: 1.6 !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-kicker,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-kicker .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-kicker .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-kicker p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label-caps,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label-caps .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label-caps .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label-caps p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-svc-capno,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-svc-capno .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-svc-capno .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-svc-capno p { font-size: 13px !important; line-height: 1.4 !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4 .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4 .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4 p { font-size: 20px !important; font-weight: 600 !important; line-height: 1.3 !important; }
@media (max-width: 767px) {
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-b,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-b .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-b .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-b p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-h5,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-h5 .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-h5 .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-h5 p { font-size: 16px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-text,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-text .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-text .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-coverage-text p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-intro,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-intro .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-intro .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-intro p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-intro,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-intro .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-intro .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-intro p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-text,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-text .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-text .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-why-text p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-text,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-text .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-text .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-text p { font-size: 14px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4 .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4 .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4 p { font-size: 18px !important; }
}
/* Contact page form box */
html body .elementor .vs-form-panel .v-inquiry-subtitle, html body .elementor .vs-form-panel .v-inquiry-subtitle * { font-size: 13px !important; }
html body .elementor .vs-form-panel .v-inquiry-title, html body .elementor .vs-form-panel .v-inquiry-title * { font-size: 20px !important; }
html body .elementor .vs-form-panel .v-input-label, html body .elementor .vs-form-panel label { font-size: 13px !important; }
html body .elementor .vs-form-panel input, html body .elementor .vs-form-panel select, html body .elementor .vs-form-panel textarea { font-size: 15px !important; }
html body .elementor .vs-form-panel .v-form-submit, html body .elementor .vs-form-panel button { font-size: 15px !important; }
/* Customer Successes glance box: inner spans follow the same 15px text size */
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-side-panel .elementor-element.vs-cs-glance-v *, html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-side-panel .elementor-element.vs-coverage-b.vs-cs-glance-v * { font-size: 15px !important; font-weight: 500 !important; }

/* All buttons: normal weight */
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-button,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-button .elementor-button-text,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-button .elementor-button-content-wrapper,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-button *,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-btn,
html body :is(#vs-type-boost, main.vs-page-wrap, body) a.vs-btn-primary,
html body :is(#vs-type-boost, main.vs-page-wrap, body) a.vs-btn-secondary,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-aws-btn,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .v-form-submit,
html body :is(#vs-type-boost, main.vs-page-wrap, body) form button[type="submit"],
html body :is(#vs-type-boost, main.vs-page-wrap, body) input[type="submit"],
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-cta-actions a,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-btn-row a { font-weight: 400 !important; }

/* All buttons: normal weight (extra) */
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-gcc-pill .elementor-button,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-gcc-pill .elementor-button .elementor-button-text,
html body :is(#vs-type-boost, main.vs-page-wrap, body) a.vs-ss-btn,
html body :is(#vs-type-boost, main.vs-page-wrap, body) a.vs-ss-btn.vs-ss-btn--primary,
html body :is(#vs-type-boost, main.vs-page-wrap, body) a.vs-ss-btn.vs-ss-btn--ghost,
html body :is(#vs-type-boost, main.vs-page-wrap, body) a.sf-btn,
html body :is(#vs-type-boost, main.vs-page-wrap, body) a.sf-btn.sf-btn-primary,
html body :is(#vs-type-boost, main.vs-page-wrap, body) a.sf-btn.sf-btn-outline { font-weight: 400 !important; }

/* GCC pills normal weight */
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-gcc-box .vs-gcc-pill.vs-btn-primary .elementor-button,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-gcc-box .vs-gcc-pill.vs-btn-primary .elementor-button .elementor-button-text { font-weight: 400 !important; }

/* ===== Icons: scaled up to sit well with 16px body text ===== */
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.vs-icon .elementor-icon,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.v-icon .elementor-icon { font-size:24px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.vs-icon .elementor-icon svg,
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.v-icon .elementor-icon svg { width:24px !important; height:24px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.v-scale-icon .elementor-icon { font-size:28px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.v-scale-icon .elementor-icon svg { width:28px !important; height:28px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.vs-icon-chip .elementor-icon { font-size:22px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.vs-icon-chip .elementor-icon svg { width:22px !important; height:22px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.vs-aws-arrow-ico .elementor-icon { font-size:18px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-widget-icon.vs-aws-arrow-ico .elementor-icon svg { width:18px !important; height:18px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-icon-box-icon .elementor-icon { font-size:24px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-icon-box-icon .elementor-icon svg { width:24px !important; height:24px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-icon-list-icon { font-size:14px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-icon-list-icon svg { width:14px !important; height:14px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .v-check-list .elementor-icon-list-icon { width:22px !important; height:22px !important; min-width:22px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .v-check-list .elementor-icon-list-icon svg { width:13px !important; height:13px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-accordion-icon { font-size:12px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .elementor-accordion-icon svg { width:12px !important; height:12px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-ind-ico { width:28px !important; height:28px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-ind-ico svg { width:26px !important; height:26px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-aws-svg svg { width:20px !important; height:20px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-search-toggle svg,html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-search-field svg { width:18px !important; height:18px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-theme-toggle svg { width:16px !important; height:16px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-office h6 svg { width:18px !important; height:18px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .vs-footer-social a svg { width:20px !important; height:20px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .sf-icon svg { width:24px !important; height:24px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap, body) .sf-btn svg { width:18px !important; height:18px !important; }

/* Icons: header/footer + remaining widgets */
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor-widget-icon.v-diff-icon-w .elementor-icon { font-size:24px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor-widget-icon.v-diff-icon-w .elementor-icon svg { width:24px !important; height:24px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor-widget-icon.vs-icon-chip.vs-icon-chip-left .elementor-icon svg { width:22px !important; height:22px !important; }
html body header .vs-header-actions .vs-search-toggle svg, html body .vs-search-form .vs-search-field svg { width:18px !important; height:18px !important; }
html body header .vs-header-actions .vs-theme-toggle svg { width:16px !important; height:16px !important; }
html body footer .vs-office h6 svg, html body .vs-office h6 svg { width:18px !important; height:18px !important; }
html body footer .vs-footer-social a svg, html body .vs-footer-social a svg { width:20px !important; height:20px !important; }

/* Icons: theme toggle + careers chip fix */
html body header .vs-header-actions .vs-theme-toggle.vs-theme-toggle svg.vs-icon-sun, html body header .vs-header-actions .vs-theme-toggle.vs-theme-toggle svg.vs-icon-moon { width:16px !important; height:16px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .vs-why-item .elementor-widget-icon.vs-icon-chip .elementor-icon { width:auto !important; font-size:22px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .vs-why-item .elementor-widget-icon.vs-icon-chip .elementor-icon svg { width:22px !important; height:22px !important; min-width:22px !important; flex-shrink:0 !important; }

/* Mobile: hero competency circles - give labels room so they don't clip */
@media (max-width: 480px) {
  html body :is(#vs-type-boost, main.vs-page-wrap) .elementor-section.vs-hero-box { padding-left: 12px !important; padding-right: 12px !important; }
  html body :is(#vs-type-boost, main.vs-page-wrap) .vs-hero-box .elementor-column.vs-tech-panel > .elementor-widget-wrap,
  html body :is(#vs-type-boost, main.vs-page-wrap) .vs-hero-box .elementor-column.vs-tech-panel { padding-left: 6px !important; padding-right: 6px !important; }
  html body :is(#vs-type-boost, main.vs-page-wrap) .vs-hero-box .elementor-section.vs-tech-row { padding-left: 0 !important; padding-right: 0 !important; }
  html body :is(#vs-type-boost, main.vs-page-wrap) .vs-hero-box .vs-tech-row > .elementor-container { gap: 4px !important; }
  html body :is(#vs-type-boost, main.vs-page-wrap) .vs-hero-box .elementor-widget.vs-tech-node { padding: 0 !important; }
  html body :is(#vs-type-boost, main.vs-page-wrap) .vs-hero-box .elementor-widget.vs-tech-node .elementor-heading-title { font-size: 10.5px !important; line-height: 1.25 !important; letter-spacing: -0.1px !important; hyphens: auto !important; -webkit-hyphens: auto !important; overflow-wrap: break-word !important; }
}

/* Hero right boxes: heading bold, text normal (match Core Competencies) */
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label .elementor-icon-box-description { font-size:17px !important; font-weight:600 !important; line-height:1.4 !important; letter-spacing:0 !important; text-transform:none !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value .elementor-icon-box-description { font-size:15px !important; font-weight:400 !important; line-height:1.55 !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-co .elementor-icon-box-description { font-size:13px !important; font-weight:400 !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v .elementor-icon-box-description { font-size:17px !important; font-weight:600 !important; line-height:1.4 !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name .elementor-icon-box-description { font-size:15px !important; font-weight:400 !important; line-height:1.55 !important; }

/* Consistent spacing between sub-sections (72 desktop / 56 tablet / 48 mobile), heading-to-content 24px */
html body main.vs-page-wrap > .elementor > *:not(:last-child):not(#vs-x) { margin-bottom: 72px !important; }
html body main.vs-page-wrap > .elementor > .vs-section-head:not(:last-child):not(#vs-x),
html body main.vs-page-wrap > .elementor > .vs-aws-flow-grid:not(:last-child):not(#vs-x),
html body main.vs-page-wrap > .elementor > .vs-ind-detail:has(+ .vs-ind-detail):not(#vs-x) { margin-bottom: 24px !important; }
@media (max-width: 1024px) {
html body main.vs-page-wrap > .elementor > *:not(:last-child):not(#vs-x) { margin-bottom: 56px !important; }
html body main.vs-page-wrap > .elementor > .vs-section-head:not(:last-child):not(#vs-x),
html body main.vs-page-wrap > .elementor > .vs-aws-flow-grid:not(:last-child):not(#vs-x),
html body main.vs-page-wrap > .elementor > .vs-ind-detail:has(+ .vs-ind-detail):not(#vs-x) { margin-bottom: 24px !important; }
}
@media (max-width: 767px) {
html body main.vs-page-wrap > .elementor > *:not(:last-child):not(#vs-x) { margin-bottom: 48px !important; }
html body main.vs-page-wrap > .elementor > .vs-section-head:not(:last-child):not(#vs-x),
html body main.vs-page-wrap > .elementor > .vs-aws-flow-grid:not(:last-child):not(#vs-x),
html body main.vs-page-wrap > .elementor > .vs-ind-detail:has(+ .vs-ind-detail):not(#vs-x) { margin-bottom: 24px !important; }
}
/* Spacing: intro box before a heading + GCC inner sub-sections */
html body main.vs-page-wrap > .elementor > .vs-section-head:has(+ .vs-section-head):not(#vs-x) { margin-bottom: 72px !important; }
html body main.vs-page-wrap > .elementor > .elementor-element-7fab4bcc:not(#vs-x) { row-gap: 72px !important; gap: 72px !important; }
@media (max-width: 1024px) {
html body main.vs-page-wrap > .elementor > .vs-section-head:has(+ .vs-section-head):not(#vs-x) { margin-bottom: 56px !important; }
html body main.vs-page-wrap > .elementor > .elementor-element-7fab4bcc:not(#vs-x) { row-gap: 56px !important; gap: 56px !important; }
}
@media (max-width: 767px) {
html body main.vs-page-wrap > .elementor > .vs-section-head:has(+ .vs-section-head):not(#vs-x) { margin-bottom: 48px !important; }
html body main.vs-page-wrap > .elementor > .elementor-element-7fab4bcc:not(#vs-x) { row-gap: 48px !important; gap: 48px !important; }
}

/* Hero right boxes: headings = ink (black in light / white in dark) bold, text = muted grey */
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4:not(#vs-x),
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4:not(#vs-x) .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4:not(#vs-x) .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4:not(#vs-x) p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4:not(#vs-x) span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4:not(#vs-x) a,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4:not(#vs-x) .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-panel-h4:not(#vs-x) .elementor-icon-box-description,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b:not(#vs-x),
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b:not(#vs-x) .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b:not(#vs-x) .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b:not(#vs-x) p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b:not(#vs-x) span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b:not(#vs-x) a,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b:not(#vs-x) .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-b:not(#vs-x) .elementor-icon-box-description,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label:not(#vs-x),
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label:not(#vs-x) .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label:not(#vs-x) .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label:not(#vs-x) p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label:not(#vs-x) span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label:not(#vs-x) a,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label:not(#vs-x) .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-label:not(#vs-x) .elementor-icon-box-description,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v:not(#vs-x),
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v:not(#vs-x) .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v:not(#vs-x) .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v:not(#vs-x) p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v:not(#vs-x) span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v:not(#vs-x) a,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v:not(#vs-x) .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-v:not(#vs-x) .elementor-icon-box-description { color: var(--vs-ink) !important; font-weight: 600 !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value:not(#vs-x),
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value:not(#vs-x) .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value:not(#vs-x) .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value:not(#vs-x) p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value:not(#vs-x) span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value:not(#vs-x) a,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value:not(#vs-x) .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cell-value:not(#vs-x) .elementor-icon-box-description,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name:not(#vs-x),
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name:not(#vs-x) .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name:not(#vs-x) .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name:not(#vs-x) p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name:not(#vs-x) span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name:not(#vs-x) a,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name:not(#vs-x) .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-cs-glance-name:not(#vs-x) .elementor-icon-box-description,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub:not(#vs-x),
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub:not(#vs-x) .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub:not(#vs-x) .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub:not(#vs-x) p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub:not(#vs-x) span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub:not(#vs-x) a,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub:not(#vs-x) .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-sub:not(#vs-x) .elementor-icon-box-description,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc:not(#vs-x),
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc:not(#vs-x) .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc:not(#vs-x) .elementor-heading-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc:not(#vs-x) p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc:not(#vs-x) span,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc:not(#vs-x) a,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc:not(#vs-x) .elementor-icon-box-title,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-hero-box :is(.vs-side-panel, .vs-why-box) .elementor-element.vs-impact-desc:not(#vs-x) .elementor-icon-box-description { color: var(--vs-muted) !important; }

/* Home OUR EDGE cards: card headings match the OUR EDGE eyebrow (13px / 500 / uppercase / spaced) */
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-edge-grid .elementor-element.vs-card-top-label:not(#vs-x),
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-edge-grid .elementor-element.vs-card-top-label:not(#vs-x) .elementor-widget-container,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-edge-grid .elementor-element.vs-card-top-label:not(#vs-x) p,
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .vs-edge-grid .elementor-element.vs-card-top-label:not(#vs-x) .elementor-heading-title { font-size:13px !important; font-weight:500 !important; letter-spacing:1.6px !important; text-transform:uppercase !important; line-height:1.4 !important; color:var(--vs-muted) !important; }

/* Core Competencies card tick marks: a little larger */
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .v-feature-list .elementor-icon-list-item .elementor-icon-list-icon:not(#vs-x) { width:24px !important; height:24px !important; min-width:24px !important; flex:0 0 24px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .v-feature-list .elementor-icon-list-item .elementor-icon-list-icon:not(#vs-x) svg { width:16px !important; height:16px !important; }
html body :is(#vs-type-boost, main.vs-page-wrap) .elementor .v-feature-list .elementor-icon-list-item .elementor-icon-list-icon:not(#vs-x) i { font-size:16px !important; }

/* GCC "Why Choose" numbered badges: larger */
html body main.vs-page-wrap .elementor .v-choose-card.v-box:not(#vs-x)::before { width:40px !important; height:40px !important; font-size:15px !important; font-weight:600 !important; line-height:40px !important; top:16px !important; left:20px !important; display:flex !important; align-items:center !important; justify-content:center !important; }
html body main.vs-page-wrap .elementor .v-choose-card.v-box:not(#vs-x) { padding-left:76px !important; }
@media (max-width:480px) {
html body main.vs-page-wrap .elementor .v-choose-card.v-box:not(#vs-x)::before { width:34px !important; height:34px !important; font-size:13px !important; line-height:34px !important; left:16px !important; }
html body main.vs-page-wrap .elementor .v-choose-card.v-box:not(#vs-x) { padding-left:64px !important; }
}

/* GCC "How VigourSoft Addresses" tick points: larger text */
html body main.vs-page-wrap .elementor .v-solutions-wrapper .v-check-list:not(#vs-x) .elementor-icon-list-item .elementor-icon-list-text, html body main.vs-page-wrap .elementor .v-solutions-wrapper .v-check-list:not(#vs-x) .elementor-icon-list-item .elementor-icon-list-text a { font-size:15px !important; line-height:1.5 !important; }

/* AWS Offerings icons: match other pages (24px) */
html body main.vs-page-wrap .elementor .vs-aws-ico:not(#vs-x) .vs-aws-svg, html body main.vs-page-wrap .elementor .vs-aws-snap-ico:not(#vs-x) .vs-aws-svg { width:24px !important; height:24px !important; flex:0 0 24px !important; }
html body main.vs-page-wrap .elementor .vs-aws-ico:not(#vs-x) .vs-aws-svg svg, html body main.vs-page-wrap .elementor .vs-aws-snap-ico:not(#vs-x) .vs-aws-svg svg { width:24px !important; height:24px !important; }
html body main.vs-page-wrap .elementor .vs-aws-arrow-ico:not(#vs-x) .elementor-icon svg, html body main.vs-page-wrap .elementor .vs-aws-arrow-ico:not(#vs-x) svg { width:22px !important; height:22px !important; }

/* GCC + AWS paragraph text = 16px */
html body main.vs-page-wrap .elementor .v-solutions-wrapper .v-check-list:not(#vs-x) .elementor-icon-list-item .elementor-icon-list-text, html body main.vs-page-wrap .elementor .v-solutions-wrapper .v-check-list:not(#vs-x) .elementor-icon-list-item .elementor-icon-list-text a { font-size:16px !important; }
html body main.vs-page-wrap .elementor .vs-snap-grid .vs-snap-text:not(#vs-x), html body main.vs-page-wrap .elementor .vs-snap-grid .vs-snap-text:not(#vs-x) p, html body main.vs-page-wrap .elementor .vs-snap-grid .vs-snap-text:not(#vs-x) .elementor-widget-container { font-size:16px !important; }

/* Theme switch: change colours instantly (no 0.25s fade) so the sticky,
   blurred header never shows half-painted content. The toggle knob keeps
   its slide animation. */
html.vs-theme-switching *:not(.vs-theme-toggle),
html.vs-theme-switching *:not(.vs-theme-toggle)::before,
html.vs-theme-switching *:not(.vs-theme-toggle)::after {
  transition: none !important;
}

/* Solid header: no see-through blur. Chrome can leave old pixels under a
   blurred sticky header (a white line and faded text from lower down the
   page) after switching light/dark mode. */
html body .vs-header {
  background: var(--vs-bg2) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* Customers logo strip: keep the dark-mode logo blend (mix-blend-mode)
   inside each logo box. Without this Chrome can paint ghost copies of the
   strip (e.g. the CUSTOMERS label) under the header after a theme switch. */
html body .elementor .ep-carousel,
html body .elementor .ep-carousel .ep-inner-box {
  isolation: isolate;
}

/* Header on its own layer: stops Chrome painting leftover bits of the
   page (a white line, faded CUSTOMERS text) under the sticky header after
   a light/dark switch, especially at browser zoom levels other than 100%. */
html body .vs-header {
  transform: translateZ(0);
  will-change: transform;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* Customers logos in dark mode without blending: invert(0.925) turns the
   logos' white background into #131313 (the card colour), so
   mix-blend-mode is no longer needed. Blending inside the moving strip made
   Chrome paint ghost bits of it under the header. */
html[data-theme="dark"] body .elementor .ep-carousel .partner-img {
  filter: invert(0.925) hue-rotate(180deg) !important;
  mix-blend-mode: normal !important;
}
