:root{
  --accent:#5C6DF5;
  --bg-dark:#0e0e11;
  --bg-section:#141418;    /* subtle contrast */
  --bg-soft:#18181e;       /* cards / emphasis */
  --glass-bg:rgba(14,14,17,.55);
  --text-main:#ffffff;
  --text-muted:#d0d0da;
  --font-main: Optima, "Optima LT Std", "Segoe UI", Arial, sans-serif;
  --nav-h: 65px;
  --step-count: 4;
  --step-width: 160px;
  --step-red:    rgba(236, 87, 87, 1);
  --step-orange: rgba(245, 166, 82, 1);
  --step-yellow: rgba(246, 223, 126, 1);
  --step-green:  rgba(102, 201, 146, 1);
  --steps-baseline: 195px; /* bottom alignment reference */
  --steps-top-offset: -70px; /* clearance for tallest step + stickman */
}

/* RESET */
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  font-family:"Inter","Segoe UI",Arial,sans-serif;
}

body{
  background:var(--bg-section);
  color:var(--text-main);
}

/* ===== SECTION SEPARATOR (Why AIMS style) ===== */
.section-separator{
  position: relative;
  width: 100%;
  height: 1px;
  margin: 3.5rem 0;

  background: linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,0.6),
    transparent
  );

  opacity: 0.45;
  z-index: 2;
}

.section-separator::after{
  content:"";
  position:absolute;
  inset:0;

  box-shadow:
    0 0 14px rgba(92,109,245,0.45);
  pointer-events:none;
}

/* Stronger separator when used after service hero */
.hero-separator{
  margin: 2.8rem 0 3.6rem;
  opacity: 0.75;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,0.9),
    transparent
  );
}

.hero-separator::after{
  box-shadow:
    0 0 18px rgba(92,109,245,0.6),
    0 0 32px rgba(92,109,245,0.25);
}

.section-separator--after-steps{
  margin: 4.5rem 0 2.5rem;
  height: 2px; /* key difference */
  opacity: 0.9;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(92,109,245,0.85) 25%,
    rgba(92,109,245,1) 50%,
    rgba(92,109,245,0.85) 75%,
    transparent 100%
  );
  z-index:4;
}

.section-separator--after-steps::after{
  box-shadow:
    0 0 22px rgba(92,109,245,0.7),
    0 0 40px rgba(92,109,245,0.35);
}

.steps-spacer{
  height: clamp(5px, 5vw, 5px);
  pointer-events: none;
}


/* ================= NAVBAR ================= */
.navbar{
  height:var(--nav-h);
  position:fixed;
  top:0;
  left:0;
  width:100%;
  background:var(--glass-bg);
  backdrop-filter:blur(40px);
  z-index:1000;
  padding:0rem 2rem;
  transition:transform 0.35s cubic-bezier(.4,0,.2,1);
}

.nav-inner{
  height:100%;
  max-width:1300px;
  margin:auto;
  display:flex;
  align-items:center;
  gap:3rem;
  justify-content:flex-start;
}

.logo{
  display:flex;
  align-items:center;
  gap:0.6rem;
  font-size:1.6rem;
  font-weight:700;
  text-decoration:none;
  color:#ffffff;
  text-shadow:0 0 6px rgba(255,255,255,0.15);
}

.logo-icon{
  height:50px;           /* ideal navbar size */
  width:auto;
  display:block;
  filter:drop-shadow(0 0 6px rgba(92,109,245,0.25));
  object-fit:contain;
}

.logo-text{
  display:flex;
  align-items:center;
  filter:drop-shadow(0 0 6px rgba(92,109,245,0.25));
}

/* ===== LOGO HOVER — SUBTLE & EASED ===== */

.logo-icon,
.logo-text{
  transition:
    filter 0.45s cubic-bezier(.25,.8,.25,1),
    transform 0.45s cubic-bezier(.25,.8,.25,1);
}

.logo:hover .logo-icon,
.logo:hover .logo-text{
  filter:
    drop-shadow(0 0 6px rgba(92,109,245,0.35))
    drop-shadow(0 0 12px rgba(92,109,245,0.15));
}


.logo-text span{
  color:var(--accent);
}

.logo span{color:var(--accent)}

/* ================= NAV LINKS + DIVIDERS ================= */
.nav-links{
  list-style:none;
  display:flex;
  gap:0;                 /* IMPORTANT: no gap, we control spacing with padding */
  align-items:center;
}

.nav-links li{
  position:relative;
  display:flex;
  align-items:center;
  padding:0 1rem; /* spacing between tabs */
}

/* link spacing */
.nav-links a{
  position:relative;
  display:inline-block;
  padding:0;
  white-space:nowrap; 
  color:#cfcfd8;
  text-decoration:none;
  font-weight:600;
  letter-spacing:0.3px;
  position:relative;
  cursor:pointer;
  transition:color 0.25s ease, text-shadow 0.25s ease;
}

/* Selected tab: PURPLE text */
.nav-links a.active{
  color:#ffffff;
  font-weight:600;
  text-shadow:
    0 0 6px rgba(255,255,255,0.55),
    0 0 14px rgba(92,109,245,0.18);
}

/* underline becomes WHITE (hover + active) */
.nav-links a::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-6px;

  width:100%;
  height:1.5px;

  background:var(--accent);

  transform:translateX(-50%) scaleX(0);
  transform-origin:center;

  box-shadow:0 0 6px rgba(92,109,245,0.45);

  transition:
    transform 0.28s cubic-bezier(.25,.8,.25,1);
}

.nav-links a:hover::after,
.nav-links a.active::after{
  transform:translateX(-50%) scaleX(1);
}

/* ===== DIVIDER STYLE (single, no doubles) ===== */
/* Use ONE divider per boundary:
   - Start divider: first li::before
   - Middle dividers: li + li boundary via li::before (for every li except first)
   - End divider: last li::after
*/

.nav-links li::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:1px;
  height:18px;

  background:linear-gradient(
    to bottom,
    transparent,
    rgba(92,109,245,0.55),
    transparent
  );

  opacity:0.35; /* visible baseline like your example */
  transition:
    opacity 0.25s cubic-bezier(.25,.8,.25,1),
    height 0.25s cubic-bezier(.25,.8,.25,1),
    box-shadow 0.25s cubic-bezier(.25,.8,.25,1);
  pointer-events:none;
}

/* For middle items, the divider is their left boundary.
   We do NOT want a divider inside the first item spacing, so we move it outward. */
.nav-links li:first-child::before{
  left:-0.15rem; /* start divider before HOME */
}

/* Every item after the first: boundary divider before that item */
.nav-links li:not(:first-child)::before{
  left:0;
}

/* End divider after CONTACT US */
.nav-links li:last-child::after{
  content:"";
  position:absolute;
  right:-0.15rem;
  top:50%;
  transform:translateY(-50%);
  width:1px;
  height:18px;

  background:linear-gradient(
    to bottom,
    transparent,
    rgba(92,109,245,0.55),
    transparent
  );

  opacity:0.35;
  transition:
    opacity 0.25s cubic-bezier(.25,.8,.25,1),
    height 0.25s cubic-bezier(.25,.8,.25,1),
    box-shadow 0.25s cubic-bezier(.25,.8,.25,1);
  pointer-events:none;
}

/* ===== HOVER GLOW: divider before hovered + divider after hovered ===== */
.nav-links li:hover::before{
  opacity:0.95;
  height:26px;
  box-shadow:0 0 16px rgba(92,109,245,0.35);
}

/* "divider after hovered" = next li's ::before, or last li's ::after if hovering last */
.nav-links li:hover + li::before{
  opacity:0.95;
  height:26px;
  box-shadow:0 0 16px rgba(92,109,245,0.35);
}

.nav-links li:last-child:hover::after{
  opacity:0.95;
  height:26px;
  box-shadow:0 0 16px rgba(92,109,245,0.35);
}

/* ===== ACTIVE GLOW: divider before active + divider after active ===== */
.nav-links li.active::before{
  opacity:0.85;
  height:24px;
  box-shadow:0 0 14px rgba(92,109,245,0.28);
}

.nav-links li.active + li::before{
  opacity:0.85;
  height:24px;
  box-shadow:0 0 14px rgba(92,109,245,0.28);
}

/* If active is last item, glow the end divider too */
.nav-links li.active:last-child::after{
  opacity:0.85;
  height:24px;
  box-shadow:0 0 14px rgba(92,109,245,0.28);
}


.navbar .logo{
  color:#ffffff !important;
  background:none !important;
  -webkit-text-fill-color:#ffffff !important;
  text-shadow:0 0 6px rgba(255,255,255,0.15) !important;
  transition:
    text-shadow 0.3s ease,
    color 0.3s ease;
}

.navbar .logo:hover{
  text-shadow:
    0 0 6px rgba(92,109,245,0.45),
    0 0 14px rgba(92,109,245,0.25);
}

.navbar.hide{
  transform:translateY(-100%);
}

/* ================= PAGES ================= */
.page{display:none}
.page.active{display:block}

/* ================= HERO ================= */
.hero{
  position:relative;
  height:70vh;
  min-height:520px;
  max-height:720px;
  overflow:hidden;
  box-shadow:
    0 18px 40px rgba(0,0,0,0.6);
  z-index:3;
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size:3px 3px;
  opacity:.15;
  pointer-events:none;
  z-index:2;
}

.hero::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;

  background: linear-gradient(
    to right,
    transparent,
    rgba(92,109,245,0.7),
    transparent
  );

  z-index: 5;
}


@keyframes heroImageFade {
  from {
    opacity: 0.2;
    transform: scale(1.07);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.slide.intro img.bg{
  opacity: 0;
  transform:scale(1.1);
  animation:heroImageFade 2s cubic-bezier(.25,.8,.25,1) forwards;
  animation-delay: 0.2s;
  transition:none;
}

.slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 1s ease;
}

.slide.active{opacity:1}

.slide img.bg{
  min-width:100%;
  min-height:100%;
  width:100%;
  height:100%;
  object-fit:cover;
  /* improves clarity */
  image-rendering: auto;
  backface-visibility: hidden;
  transform: scale(1.02);
  transition:
    transform 3s ease,
    opacity 1s ease;
}

.slide.active img.bg{
  transform: scale(1);
}

.slide::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    90deg,
    rgba(0,0,0,.75) 0%,
    rgba(0,0,0,.55) 35%,
    rgba(0,0,0,.25) 65%,
    rgba(0,0,0,.05) 100%
  );
  z-index:1;
}

.hero-content{
  position:absolute;

  inset:var(--nav-h) 0 0;

  z-index:2;

  width:100%;
  max-width:1300px;

  margin:auto;

  padding:0 2rem 80px;

  display:flex;
  align-items:center;
}

.hero-text{
  width:100%;
  max-width:620px;
  height:100%;

  padding:
    18px
    0
    5px
    2.5rem;

  display:grid;

  grid-template-rows:
    50px
    160px
    26px
    90px
    minmax(0, 1fr)
    auto;
}


.hero-text h1{
  margin:0;

  font-size:4.4rem;
  font-weight:600;

  letter-spacing:0;
  line-height:1.1;

  text-shadow:
    0 6px 24px rgba(0,0,0,.45);
}


.hero-text .kicker{
  position:relative;

  justify-self:start;
  align-self:end;

  display:inline-flex;
  align-items:center;

  width:fit-content;

  font-weight:700;
  letter-spacing:3px;
  font-size:1.6rem;

  text-transform:uppercase;
  white-space:nowrap;

  margin:0;
  padding-bottom:10px;

  /* PREMIUM PURPLE TEXT */
  background:
    linear-gradient(
        110deg,
    
        #735cff 0%,
        #8068ff 35%,
    
        #a27cff 42%,
    
        #d6c8ff 47%,
        #f7f4ff 49.5%,
        #ffffff 50%,
        #e0d5ff 50.5%,
    
        #a27cff 55%,
        #8068ff 62%,
        #735cff 100%
      );

  background-size:320% 100%;
  background-position:120% center;

  -webkit-background-clip:text;
  background-clip:text;

  -webkit-text-fill-color:transparent;
  color:transparent;

  filter:
    drop-shadow(0 0 1.5px rgba(137,103,255,.48));
}

.hero-text .kicker::after{
  content:"";

  flex:0 0 auto;

  width:2px;
  height:19px;

  margin-left:14px;

  border-radius:999px;

  background:
    linear-gradient(
      to bottom,
      transparent 0%,
      rgba(190,197,255,.65) 20%,
      #ffffff 48%,
      rgba(122,135,255,.95) 65%,
      transparent 100%
    );

  transform:rotate(22deg);

  opacity:.72;

  box-shadow:
    0 0 5px rgba(190,197,255,.60),
    0 0 12px rgba(92,109,245,.38);
}

.slide.active .kicker{
  animation:
    kickerTextShine 1.35s
    cubic-bezier(.22,.61,.36,1)
    .22s
    both;
}

@keyframes kickerTextShine{

  0%{
    background-position:120% center;
  }

  18%{
    background-position:85% center;
  }

  50%{
    background-position:25% center;
  }

  78%{
    background-position:-55% center;
  }

  88%{
    background-position:-105% center;
  }

  100%{
    background-position:-120% center;
  }
}

.slide.active .kicker::after{
  animation:
    kickerSlashShine 1.35s
    cubic-bezier(.22,.61,.36,1)
    .22s
    both;
}

@keyframes kickerSlashShine{

  /* Normal slash while shine moves through text */
  0%,
  72%{
    opacity:.72;

    filter:brightness(1);

    box-shadow:
      0 0 5px rgba(190,197,255,.60),
      0 0 12px rgba(92,109,245,.38);
  }

  /* Shine is approaching the end of the lettering */
  80%{
    opacity:.82;

    filter:brightness(1.15);

    box-shadow:
      0 0 6px rgba(205,211,255,.70),
      0 0 15px rgba(92,109,245,.48);
  }

  /* Shine reaches the slash */
  89%{
    opacity:1;

    filter:brightness(2);

    box-shadow:
      0 0 7px rgba(255,255,255,.95),
      0 0 17px rgba(190,197,255,.90),
      0 0 29px rgba(112,126,255,.68),
      0 0 42px rgba(92,109,245,.30);
  }

  /* Quick polished afterglow */
  94%{
    opacity:.9;

    filter:brightness(1.35);

    box-shadow:
      0 0 6px rgba(213,218,255,.78),
      0 0 17px rgba(92,109,245,.50);
  }

  /* FINAL STATE */
  100%{
    opacity:.72;

    filter:brightness(1);

    box-shadow:
      0 0 5px rgba(190,197,255,.60),
      0 0 12px rgba(92,109,245,.38);
  }
}



.hero-heading{
  width:100%;
  min-width:0;

  display:flex;
  flex-direction:column;

  align-items:flex-start;
  justify-content:center;
}


.hero-rule{
  width:100%;

  display:flex;
  align-items:center;
}


.hero-copy{
  width:100%;
  min-width:0;

  display:flex;
  align-items:flex-start;

  padding-top:8px;
}


.hero-spacer{
  min-height:0;
}


/* =========================================================
   HOME HERO CTA
========================================================= */

.hero-cta-btn{
  position:relative;

  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.85rem;

  align-self:end;
  justify-self:start;
  
  width:fit-content;

  margin:0;

  /* KEEP APPROVED POSITION */
  transform:translateY(25px);

  padding:.9rem 1.75rem;

  overflow:hidden;

  border:1px solid rgba(145,155,255,.70);
  border-radius:999px;

  background:
    linear-gradient(
      135deg,
      rgba(92,109,245,.68) 0%,
      rgba(111,87,225,.62) 55%,
      rgba(141,83,235,.58) 100%
    );

  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);

  color:#ffffff;

  font-size:.84rem;
  font-weight:700;
  letter-spacing:.11em;

  text-decoration:none;
  text-transform:uppercase;

  cursor:pointer;

  box-shadow:
    0 8px 26px rgba(0,0,0,.28),
    0 0 18px rgba(92,109,245,.28),
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(255,255,255,.04);

  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    background .35s ease,
    border-color .35s ease,
    box-shadow .35s ease;
}


/* LIGHT SWEEP */

.hero-cta-btn::before{
  content:"";

  position:absolute;
  top:-60%;
  left:-30%;

  width:22%;
  height:220%;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.42),
      transparent
    );

  transform:rotate(18deg) translateX(-150%);
  opacity:0;

  pointer-events:none;
}


/* ARROW */

.hero-cta-btn::after{
  content:"→";

  position:relative;

  color:#ffffff;

  font-size:1.05rem;
  font-weight:400;
  line-height:1;

  text-shadow:
    0 0 8px rgba(255,255,255,.25);

  transform:translateX(0);

  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    text-shadow .35s ease;
}


/* HOVER */

.hero-cta-btn:hover{
  transform:translateY(21px);

  border-color:rgba(185,191,255,1);

  background:
    linear-gradient(
      135deg,
      rgba(106,121,255,.95) 0%,
      rgba(119,91,240,.92) 50%,
      rgba(157,91,247,.90) 100%
    );

  box-shadow:
    0 12px 34px rgba(0,0,0,.32),
    0 0 0 1px rgba(153,163,255,.18),
    0 0 24px rgba(92,109,245,.55),
    0 0 55px rgba(117,88,240,.25),
    inset 0 1px 0 rgba(255,255,255,.24);
}


/* ARROW MOVEMENT */

.hero-cta-btn:hover::after{
  transform:translateX(6px);

  text-shadow:
    0 0 8px rgba(255,255,255,.65),
    0 0 18px rgba(159,168,255,.75);
}


/* LIGHT SWEEP ANIMATION */

.hero-cta-btn:hover::before{
  opacity:1;

  animation:heroCtaSweep .75s cubic-bezier(.22,1,.36,1);
}

@keyframes heroCtaSweep{

  0%{
    transform:rotate(18deg) translateX(-150%);
  }

  100%{
    transform:rotate(18deg) translateX(750%);
  }

}


/* CLICK */

.hero-cta-btn:active{
  transform:translateY(24px) scale(.985);
}


/* KEYBOARD */

.hero-cta-btn:focus-visible{
  outline:none;

  border-color:#c4c9ff;

  box-shadow:
    0 0 0 3px rgba(92,109,245,.25),
    0 0 30px rgba(92,109,245,.50);
}





/* ===== AIMS WALL REVEAL ===== */
/* ===== AIMS WALL REVEAL ===== */
.aims-mask{
  display:inline-block;
  overflow:hidden;
  width:0;

  animation:
    maskReveal 4000ms
    cubic-bezier(.25,.8,.25,1)
    forwards;
}

.aims-main{
  position:relative;
  display:inline-block;

  font-size:4.8rem;
  font-weight:600;
  letter-spacing:2px;
  line-height:1;

  white-space:nowrap;

  transform:translateX(100px);

  animation:
    textSlide 1800ms
    cubic-bezier(.25,.8,.25,1)
    forwards;
}


/* -TT DOES NOT PARTICIPATE IN THE AIMS REVEAL */
.aims-main .brand-tt{
  position:absolute;

  left:100%;
  top:0;

  opacity:0;

  animation:
    aimsTtFadeIn 700ms
    ease
    800ms
    forwards;
}


@keyframes maskReveal{
  to{
    width:100%;
  }
}

@keyframes textSlide{
  to{
    transform:translateX(0);
  }
}

@keyframes aimsTtFadeIn{
  from{
    opacity:0;
  }

  to{
    opacity:1;
  }
}

/* ===== AIMS MEANING ===== */
.aims-meaning{
  margin-top:.25rem;
  opacity:0;
  transform:translateX(-20px);
  animation:meaningIn 700ms ease forwards;
  animation-delay:.55s;
}

@keyframes meaningIn{
  to{ opacity:1; transform:translateX(0); }
}

.aims-line-1,
.aims-line-2{
  font-size:2rem;
  font-weight:300;
  line-height:1.15;
}

.aims-line-2{ margin-top:.15rem; }

/* ===== ARROW ===== */
.meaning-arrow{
  margin:0;

  height:4px;
  width:100%;

  background:var(--accent);

  transform:scaleX(0);
  transform-origin:left;

  animation:
    arrowDraw 1500ms
    cubic-bezier(.25,.8,.25,1)
    forwards;

  animation-delay:.7s;

  position:relative;
}


.meaning-arrow::after{
  content:"";
  position:absolute;
  right:0px;
  top:50%;
  width:12px;
  height:12px;
  border-right:3px solid var(--accent);
  border-bottom:3px solid var(--accent);
  transform:translateY(-50%) rotate(-45deg);
}

@keyframes arrowDraw{ to{ transform:scaleX(1); } }

.hero-text p{
  opacity:0;

  transform:translateY(8px);

  animation:
    paragraphFade 700ms ease forwards;

  animation-delay:.9s;

  color:var(--text-muted);

  font-size:1.15rem;
  line-height:1.6;

  max-width:560px;

  margin:0;
}

@keyframes paragraphFade{
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* SLIDER DOTS */
.slider-controls{
  position:absolute;
  bottom:30px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:12px;
  z-index:3;
}

.dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#aaa;
  cursor:pointer;
}

.dot.active{background:var(--accent)}

/* ===== SLIDE ARROWS ===== */
.slide-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:70px;
  height:100%;
  cursor:pointer;
  opacity:0;
  transition:opacity .20s ease;
  z-index:4;
}

.slide-arrow.left{ left:0; }
.slide-arrow.right{ right:0; }

/* Show arrows only when hovering hero */
.hero:hover .slide-arrow{
  opacity:1;
}

/* Arrow icon base */
.slide-arrow::before{
  content:"";
  position:absolute;
  top:50%;
  width:14px;
  height:14px;
  border-top:2px solid rgba(255,255,255,.85);
  border-right:2px solid rgba(255,255,255,.85);
  transform:translateY(-50%);
}

/* LEFT arrow */
.slide-arrow.left::before{
  left:28px;
  transform:translateY(-50%) rotate(-135deg);
}

/* RIGHT arrow */
.slide-arrow.right::before{
  right:28px;
  transform:translateY(-50%) rotate(45deg);
}

/* ================= CONTENT ================= */
.content{
  padding:140px 2rem;
  max-width:1200px;
  margin:auto;
}

.content h1{
  font-size:2.8rem;
  margin-bottom:1rem;
  background:linear-gradient(90deg,var(--accent),#8a96ff);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.content h2{
  font-size:1.8rem;
  margin:3rem 0 1rem;
}

.content h3{
  font-size:1.4rem;
  margin-bottom:.75rem;
}

.content p{
  color:var(--text-muted);
  line-height:1.8;
  font-size:1.05rem;
  max-width:1000px;
  margin-bottom:1.5rem;
}

/* ===== SERVICES TABLE ===== */
.services-table{
  width:100%;
  border-collapse:collapse;
  margin-top:2rem;
}

.services-table th,
.services-table td{
  padding:1rem;
  text-align:left;
  vertical-align:top;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.services-table th{
  color:#fff;
  font-weight:600;
}

.services-table td{
  color:var(--text-muted);
}

.services-table th:first-child,
.services-table td:first-child{
  color:#fff;
  font-weight:500;
}

/* ===== SERVICE TIERS ===== */
.tiers{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:2rem;
  margin-top:3rem;
}

.tier{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  padding:2rem;
}

.tier h3{
  color:#fff;
}

.tier ul{
  margin-top:1rem;
  padding-left:1.2rem;
}

.tier li{
  margin-bottom:.6rem;
  color:var(--text-muted);
}

/* ================= HOME CONTENT ================= */
.home-content{
  padding:120px 2rem 60px;
  max-width:1200px;
  margin:auto;
}

.home-section{
  max-width:1300px;     /* match hero-content */
  padding-left:2rem;    /* match hero-content */
  padding-right:2rem;   /* match hero-content */
  margin-left:auto;
  margin-right:auto;
  margin-bottom:90px;
  background:var(--bg-soft);
  padding:80px 2rem;
  border-radius:18px;
  box-shadow:
    0 6px 20px rgba(0,0,0,0.3),
    0 0 0 1px rgba(255,255,255,0.025);
}



.section-divider{
  height:1px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,0.08),
    transparent
  );
  margin:0 auto;
  max-width:1200px;
}

.home-section.capabilities,
.home-section.levels{
  background:var(--bg-soft);
}

.home-section > *{
  padding-left:0.6rem;
}


.home-section h2{
  font-size:2.4rem;
  margin-left:.2rem;
  margin-bottom:1.2rem;
  background:linear-gradient(90deg,var(--accent),#8a96ff);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

.home-section p{
  color:var(--text-muted);
  font-size:1.1rem;
  line-height:1.8;
  max-width:900px;
  margin-bottom:1rem;
}

/* ================= AIMS VALUE PILLARS ================= */
.pillar-card,
.level-card,
.cap-item{
  background:rgba(22,22,28,0.95);
}

.aims-pillars{
  position:relative;
  z-index:5;

  /* THIS pulls it upward over the slideshow */
  margin-top:0px;

  padding: 35px 2rem; /* was 80px 2rem */
  background:var(--bg-section);
}

.aims-pillars::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:90px; /* shorter */

  background: linear-gradient(
    to bottom,
    rgba(92,109,245,0.08),
    rgba(92,109,245,0.04),
    rgba(92,109,245,0.015),
    transparent
  );

  pointer-events:none;
  z-index:0;
  filter:blur(1px);
}


.pillars-wrapper{
  max-width:1300px;
  margin:auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:2rem;
}

.pillar-card{
  background:rgba(20,20,26,0.95);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:16px;
  padding:2.2rem;
  position:relative;
  
  box-shadow:
    0 18px 36px rgba(0,0,0,0.55),
    0 0 0 1px rgba(255,255,255,0.02);
    
  transition:
    transform .3s ease,
    box-shadow .3s ease,
    border-color .3s ease;
}

.pillar-card:hover{
  transform:translateY(-6px);

  border-color:rgba(92,109,245,0.45);

  box-shadow:
    0 24px 50px rgba(0,0,0,0.65),
    0 0 0 1px rgba(92,109,245,0.22),
    0 0 18px rgba(92,109,245,0.35);
}

.pillar-icon{
  width:46px;
  height:46px;
  min-width:46px;
  min-height:46px;
  border-radius:50%;
  background:rgba(92,109,245,0.2);

  display:flex;
  align-items:center;
  justify-content:center;

  margin-bottom:1.2rem;

  box-shadow:
    0 0 0 1px rgba(92,109,245,0.35),
    0 0 14px rgba(92,109,245,0.45);
    
  transition:
    box-shadow 0.3s ease,
    background 0.3s ease;
}

.pillar-card:hover .pillar-icon{
  background: rgba(92,109,245,0.45);

  box-shadow:
    0 0 0 1px rgba(92,109,245,0.75),
    0 0 16px rgba(92,109,245,0.65);
}


.pillar-icon img{
  width:22px;
  height:22px;
  object-fit:contain;
  filter:
    drop-shadow(0 0 6px rgba(92,109,245,0.45));
}

/* Lock & Analytics icons – visual balance */
.pillar-card:nth-child(2) .pillar-icon img{
  transform:scale(1.7);
  filter:drop-shadow(0 0 6px rgba(255,255,255,0.5));
}

.pillar-card:nth-child(3) .pillar-icon img{
  transform:scale(1.5);
  filter:drop-shadow(0 0 6px rgba(255,255,255,0.5));
}

.pillar-card h3{
  font-size:1.25rem;
  font-weight:600;
  margin-bottom:.6rem;
}

.pillar-card p{
  color:var(--text-muted);
  font-size:1rem;
  line-height:1.7;
}

/* CAPABILITIES */
.cap-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:2rem;
  margin-top:2.5rem;
}

.cap-item{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  padding:1.8rem;
}

.cap-item h3{
  color:#fff;
  margin-bottom:.6rem;
}

.cap-item p{
  font-size:1.05rem;
}

/* SERVICE LEVELS */
.level-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:2rem;
  margin-top:2.5rem;
}

.level-card{
  border-left:4px solid var(--accent);
  padding:1.6rem;
  background:rgba(255,255,255,.02);
}

.level-card h3{
  color:#fff;
  margin-bottom:.5rem;
}

/* WHY */
.home-section.why{
  position:relative;
  background:var(--bg-section);
  border-radius:18px;
  padding:4rem 2rem;
  display:flex;
  flex-direction:column;
  align-items:center;      /* centers children blocks */
  text-align:center;
  margin-top:4rem;
  overflow:visible; /* CRITICAL */
}

/* shared glow styles */
.home-section.why::before,
.home-section.why::after{
  content:"";
  position:absolute;
  left:12%;
  right:12%;
  height:2px;
  background:linear-gradient(
    90deg,
    transparent,
    var(--accent),
    transparent
  );
  opacity:0.45;
  z-index:2;
  pointer-events:none;
}

/* top glow */
.home-section.why::before{
  top:0;
  box-shadow:0 0 14px rgba(92,109,245,0.45);
}

/* bottom glow */
.home-section.why::after{
  bottom:0;
  box-shadow:0 0 14px rgba(92,109,245,0.45);
}

/* OPTIONAL subtle pulse */
@keyframes softGlow{
  0%,100%{opacity:0.35}
  50%{opacity:0.55}
}

.home-section.why::before,
.home-section.why::after{
  animation:softGlow 6s ease-in-out infinite;
}

.home-section.why h2{
  width:100%;
  text-align:center;
}

/* Center the bullet block itself */
.home-section.why .why-list{
  list-style:none;
  list-style-position:outside;

  /* remove default browser offsets */
  margin:0;
  padding-left:1.2rem;

  /* make it a neat centered block */
  width:fit-content;
  max-width:720px;

  /* keep bullet text readable */
  text-align:left;

  /* spacing under the title */
  margin-top:.75rem;
}

.why-list{
  list-style:none;
  padding-left:0;
  margin-left:auto;
  margin-right:auto;
  margin-top:2rem;
  max-width:900px;
  text-align:left;
}

.why-list li{
  position:relative;
  padding-left:28px;
  margin-bottom:1rem;
  color:#fff;
  font-size:1.15rem;
  line-height:1.7;
}

.why-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.55rem;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 10px rgba(92,109,245,0.6);
}

/* CTA */
.home-cta,
.final-cta{
  text-align:center;
  margin-top:3rem;
}

.final-cta h2{
  background:linear-gradient(
    90deg,
    #9aa5ff 0%,
    var(--accent) 45%,
    #6f7cff 100%
  );
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;

  text-shadow:
    0 0 10px rgba(92,109,245,0.25);
}

.home-section.final-cta{
  position:relative;
  border-radius:18px;

  /* thin premium border */
  border:1px solid rgba(92,109,245,0.35);

  /* soft internal depth */
  background:linear-gradient(
    180deg,
    rgba(255,255,255,0.03),
    rgba(255,255,255,0.01)
  );

  /* spacing */
  padding:4.5rem 2rem;
  margin-top:120px;

  /* subtle separation */
  box-shadow:
    0 20px 45px rgba(0,0,0,0.45),
    inset 0 0 0 1px rgba(255,255,255,0.02);
}

.home-section.final-cta::before,
.home-section.final-cta::after{
  content:"";
  position:absolute;
  left:10%;
  right:10%;
  height:1px;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,0.6),
    transparent
  );
}

.home-section.final-cta::before{ top:0; }
.home-section.final-cta::after{ bottom:0; }

.final-cta p{
  text-align:center;
  margin:1.2rem auto 0;
  max-width:1000px;
  opacity:.9;
  margin-bottom:25px;
}

.cta-btn{
  display:inline-block;
  padding:0.85rem 2.2rem;
  font-size:1rem;
  font-weight:600;
  color:#fff;
  background:var(--accent);
  border-radius:5px;
  border:1px solid rgba(255,255,255,0.08);
  text-decoration:none;
  cursor:pointer;
  transition:
    background .25s ease,
    box-shadow .25s ease,
    transform .25s ease;
}

.cta-btn:hover{
  background:var(--accent);
  background:#6f7dff; /* slightly brighter than accent */
  transform:translateY(0px);
  box-shadow:
    0 10px 25px rgba(92,109,245,0.15),
    0 0 0 1px rgba(92,109,245,0.5);
}

.cta-btn.primary{
  background:var(--accent);
}

.has-dropdown{
  position:relative;
}

.dropdown-arrow{
  display:inline-block;
  width:8px;
  height:8px;
  margin-left:0.4rem;
  position:relative;
  top:-1px;

  border-right:2px solid rgba(255,255,255,0.75);
  border-bottom:2px solid rgba(255,255,255,0.75);

  /* DOWN by default */
  transform:rotate(45deg);
  transition:
    transform 0.3s cubic-bezier(.25,.8,.25,1),
    border-color 0.3s ease;
}

/* UP when open / hovered */
.nav-item.has-dropdown:hover .dropdown-arrow,
.nav-item.has-dropdown.open .dropdown-arrow{
  transform: rotate(-135deg) translateY(1px);
  border-color: var(--accent);
  opacity:1;
}

.nav-item.has-dropdown > .tab{
  display:flex;
  align-items:center;
}

.dropdown {
  position: absolute;
  top: calc(100% + 10px); /* small gap below navbar */
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  
  min-width: 280px;
  padding: 0.6rem 0;

  background: rgba(14,14,17,0.95);
  backdrop-filter: blur(20px);
  border-radius: 14px;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    visibility 0.25s ease;

  z-index: 2000;
}

/* KEEP dropdown open when hovering parent OR dropdown */
.has-dropdown:hover .dropdown,
.has-dropdown .dropdown:hover {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.dropdown::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  width: 100%;
  height: 12px;
}

.dropdown li{
  position:relative;
  padding:0;
}

.dropdown li:not(:last-child)::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;

  width:98%;               /* long, centered line */
  height:1px;

  transform:translateX(-50%);

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,0.55),
    transparent
  );

  box-shadow:0 0 10px rgba(92,109,245,0.35);

  opacity:0.6;
  pointer-events:none;
}

.dropdown li:hover::after{
  opacity:1;
  box-shadow:0 0 14px rgba(92,109,245,0.55);
}

.dropdown a{
  display:block;
  padding:0.75rem 1.5rem;
  font-size:0.9rem;
  color:#d0d0da;
  text-decoration:none;
  transition:
    background 0.2s ease,
    color 0.2s ease;
}

.dropdown a:hover{
  background:rgba(92,109,245,0.12);
  color:#ffffff;
}

.has-dropdown:hover .dropdown{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}

.has-dropdown:hover .dropdown-arrow{
  transform:rotate(180deg);
  opacity:1;
}

/* SUB-TABS — kill underline completely */
.nav-links .dropdown a::after{
  display:none !important;
}

/* SUB-TABS base */
.nav-links .dropdown a{
  color:#d6d7e0;
  font-weight:500;
  transition:
    color 0.25s ease,
    text-shadow 0.25s ease,
    background 0.25s ease;
}

.nav-links .dropdown a.active{
  color:#ffffff;
  font-weight:600;
  text-shadow:
    0 0 6px rgba(255,255,255,0.45),
    0 0 14px rgba(92,109,245,0.25);
}

/* SUB-TABS hover glow */
.nav-links .dropdown a:hover{
  color:var(--accent);
  text-shadow:
    0 0 6px rgba(92,109,245,0.55),
    0 0 14px rgba(92,109,245,0.25);
}

/* ===== SUB-TABS: REMOVE BACKGROUND HIGHLIGHT ===== */
.nav-links .dropdown a,
.nav-links .dropdown a:hover,
.nav-links .dropdown a.active,
.nav-links .dropdown li:hover > a{
  background: transparent !important;
  box-shadow: none !important;
}

.service-page {
  max-width: 1300px;
  margin: 0 auto;
  padding: 6rem 2rem 4rem;
}

.service-page h1{
  font-size:3rem;
  color:#ffffff;
  margin-bottom:0.6rem;
}

.service-hero {
  margin-bottom: 3rem;
}


/* Service page main title underline */
.service-hero h1{
  color: #ffffff;
  position: relative;
  display: inline-block;
  padding-bottom: 0.6rem;
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.service-hero h1::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;

  width:68px;
  height:3px;

  background: linear-gradient(
    to right,
    var(--accent),
    rgba(92,109,245,0.35)
  );

  border-radius:2px;
  box-shadow:0 0 10px rgba(92,109,245,0.35);
}

.service-overview{
  max-width: 760px;
  margin: 0 auto 4rem;   /* ← centers it */
  color: #d7d9ec;
  line-height: 1.7;
  text-align: center;    /* optional, see note below */
}

.overview-text{
  color:#d6d7e0;
  line-height:1.7;
}

/* hidden extended text */
.overview-more{
  display:inline;
  opacity:0;
  max-height:0;
  overflow:hidden;
  transition:opacity 0.35s ease;
}

/* expanded state */
.service-overview.expanded .overview-more{
  opacity:1;
}

/* hide ellipsis + read more when expanded */
.service-overview.expanded .ellipsis,
.service-overview.expanded .overview-toggle:not(.less){
  display:none;
}

/* read more / read less buttons */
.overview-toggle{
  background:none;
  border:none;
  padding:0;
  margin-left:4px;

  font-size:0.9rem;
  font-weight:500;
  color:var(--accent);
  cursor:pointer;

  transition:
    color 0.25s ease,
    text-shadow 0.25s ease;
}

.overview-toggle.less{
  margin-left:6px;
}

/* hover */
.overview-toggle:hover{
  color:#ffffff;
  text-shadow:0 0 6px rgba(92,109,245,0.35);
}


.service-tagline {
  max-width: 760px;
  font-size: 1.15rem;
  line-height: 1.6;
  color: #cfd1e6;
}

.service-divider{
  width:120px;
  height:2px;
  margin:1.5rem 0 3rem;
  background:linear-gradient(
    to right,
    transparent,
    rgba(92,109,245,0.65),
    transparent
  );
  box-shadow:0 0 12px rgba(92,109,245,0.35);
}

.service-problems {
  margin-bottom: 4.5rem;
}

.service-problems h2{
  font-size: 1.6rem;
  position: relative;
  display: inline-block;
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
}

.service-problems h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;

  width:52px;
  height:2px;

  background: linear-gradient(
    to right,
    var(--accent),
    rgba(92,109,245,0.25)
  );

  border-radius:2px;
  box-shadow:0 0 8px rgba(92,109,245,0.25);
}

/* Glowing X marker — aligned + larger */
.service-problems li::before{
  content: "×";
  position: absolute;
  left: 0;

  /* KEY FIX: vertical centering */
  top: 0.55em;
  transform: translateY(-50%);

  font-size: 1.25rem;     /* bigger, intentional */
  font-weight: 700;
  line-height: 1;

  color: var(--accent);

  text-shadow:
    0 0 6px rgba(92,109,245,0.6),
    0 0 14px rgba(92,109,245,0.35);
}



.service-capabilities {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2.5rem;
  margin-bottom: 5rem;
}

.service-capabilities > h2{
  grid-column: 1 / -1;
}


.service-capabilities h2{
  font-size: 1.6rem;
  position: relative;
  display: inline-block;
  padding-bottom: 0.5rem;
  margin-bottom: 0.2rem;
}

.service-capabilities h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;

  width:52px;
  height:2px;

  background: linear-gradient(
    to right,
    var(--accent),
    rgba(92,109,245,0.25)
  );

  border-radius:2px;
  box-shadow:0 0 8px rgba(92,109,245,0.25);
}


.capability-card li {
  margin-bottom: 0.6rem;
  line-height: 1.55;
  color: #d4d6eb;
}

.capability-card{
  background:rgba(22,22,28,0.9);
  border-radius:16px;
  padding:2.2rem;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.04),
    0 0 30px rgba(92,109,245,0.08);
}

.capability-card h3{
  font-size: 1.25rem;
  margin-bottom:1rem;
  color:#ffffff;
}

.capability-card ul{
  list-style:none;
  padding-left: 1.2rem;
}

.capability-card li{
  line-height: 1.55;
  color: #d4d6eb;
  padding-left:1.4rem;
  position:relative;
  margin-bottom:0.6rem;
}

.capability-card li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.6em;

  width:7px;
  height:7px;
  border-radius:50%;

  background: var(--accent);

  box-shadow:
    0 0 8px rgba(92,109,245,0.75),
    0 0 18px rgba(92,109,245,0.45);
}

.service-tiers{
  margin-top:4rem;
}

/* ===== RELATED SERVICES ===== */
.service-related{
  position: relative;
  z-index: 3;
  margin-top: 3.8rem;
}

.related-links{
  display: flex;
  flex-wrap: wrap;
  gap: 1.8rem;
  margin-top: 1.4rem;
}

/* ===== RELATED SERVICES — ARROW LIST ===== */
.related-list{
  list-style: none;
  margin: 0;
  padding: 0;
}

.related-list li{
  position: relative;
  padding-left: 1.8rem;
  margin-bottom: var(--list-item-spacing, 0.9rem);
}

/* purple glowing arrow */
.related-list li::before{
  content: "→";
  position: absolute;
  left: 0;

  top: 0.55em;
  transform: translateY(-50%);

  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;

  color: var(--accent);

  text-shadow:
    0 0 6px rgba(92,109,245,0.55),
    0 0 14px rgba(92,109,245,0.3);

  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    text-shadow 0.35s ease;
}

.related-list li:hover::before{
  transform: translateY(-50%) translateX(4px);
}


.related-link{
  position: relative;
  color: #e5e7f2;
  text-decoration: none;
  font-size: 1.05rem;
  line-height: 1.6;
  cursor: pointer;

  transition:
    color 0.3s ease,
    text-shadow 0.3s ease;
}


.related-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;

  width:100%;
  height:1px;

  background: var(--accent);

  opacity:0;

  transition:
    opacity 0.3s ease;
}


.related-list li:hover .related-link,
.related-link:focus-visible{
  color: var(--accent);

  text-shadow:
    0 0 4px rgba(92,109,245,0.15),
    0 0 8px rgba(92,109,245,0.15);
}

.related-list li:hover .related-link::after,
.related-link:focus-visible::after{
  opacity:0.35;
}

.related-list li::before{
  transition:
    transform 0.35s cubic-bezier(.22,1,.36,1),
    text-shadow 0.35s ease;
}

.related-list li:hover::before{
  transform: translateY(-50%) translateX(3px);
}

.service-tiers,
.service-outcomes,
.service-related{
  padding-top: 1.5rem;
}

.service-tiers h2,
.service-outcomes h2,
.service-related h2{
  font-size: 1.6rem;
  position: relative;
  display: inline-block;
  padding-bottom: 0.5rem;
  margin-bottom: 1.5rem;
}

/* PREMIUM ACCENT UNDERLINE — EXACT STYLE */
.service-tiers h2::after,
.service-outcomes h2::after,
.service-related h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;

  width:52px;
  height:2px;

  background: linear-gradient(
    to right,
    var(--accent),
    rgba(92,109,245,0.25)
  );

  border-radius:2px;
  box-shadow:0 0 8px rgba(92,109,245,0.25);
}



.tier-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:2rem;
  margin-top:2rem;
}

.tier{
  padding:1.8rem;
  border-radius:14px;
  background:rgba(18,18,24,0.85);
  box-shadow:0 0 20px rgba(92,109,245,0.08);
}

.tier h4{
  color:var(--accent);
  margin-bottom:0.6rem;
}

/* ===== BUSINESS OUTCOMES ===== */
.service-outcomes{
  margin-top: 3.5rem;
}

.outcomes-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.8rem 2.5rem;
  margin-top: 1.6rem;
}

.outcome-item{
  position: relative;
  padding-left: 1.6rem;

  color: #e5e7f2;
  font-size: 1.05rem;
  line-height: 1.7;
}

/* subtle accent marker */
.outcome-item::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;

  width: 6px;
  height: 6px;
  border-radius: 50%;

  background: var(--accent);
  box-shadow:
    0 0 6px rgba(92,109,245,0.5);
}

/* ===== BUSINESS OUTCOMES — VERTICAL TICK LIST ===== */
.outcomes-list{
  list-style: none;
  margin: 0;
  padding: 0;
}

.outcomes-list li{
  position: relative;
  padding-left: 1.9rem;
  margin-bottom: 0.9rem;

  color: #e5e7f2;
  font-size: 1.05rem;
  line-height: 1.7;
}

/* glowing check mark (aligned like X markers) */
.outcomes-list li::before{
  content: "✓";
  position: absolute;
  left: 0;

  /* vertical centering relative to first line */
  top: 0.55em;
  transform: translateY(-50%);

  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;

  color: var(--accent);

  text-shadow:
    0 0 6px rgba(92,109,245,0.55),
    0 0 14px rgba(92,109,245,0.3);
}


/* ONLY grid when explicitly intended */
.service-outcomes .outcomes-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1rem 2rem;
}

.service-outcomes li{
  color:#e5e5ed;
}

.service-related{
  margin-top:4rem;
}

.related-link{
  display:inline-block;
  margin-right:1.5rem;
  color:#cfcfd8;
  cursor:pointer;
  position:relative;
}

.related-link:hover{
  color:#ffffff;
  text-shadow:0 0 8px rgba(92,109,245,0.45);
}

/* REMOVE native bullets ONLY for Problems We Address */
.service-problems ul{
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.service-problems li{
  position: relative;
  padding-left: 1.9rem;
  margin-bottom: 0.9rem;

  color: #e5e7f2;
  font-size: 1.05rem;
  line-height: 1.7;
}

/* ===== SERVICE PROCESS STEPS (CONNECTED & UPRIGHT) ===== */
.service-steps{
  position:relative;
  isolation: isolate;
  display:flex;
  gap:0;
  margin:1.9rem 0 0;   /* remove bottom margin */
  padding-left:0.4rem;
  padding-top:120px;
  padding-bottom:50px; /* RESERVE SPACE for steps */
  justify-content: center;
  flex-wrap: wrap;
  padding-inline: 40px;
  inset-inline: 60px;
  z-index:1;
  transform: translateX(-80px); /* 👈 adjust 60–100px */
}

.steps-wrapper{
  display: flex;
  justify-content: center;
  width: 100%;
}


/* base step */
.step-item{
  position:relative;
  background:none;
  border:none;
  cursor:pointer;
  padding:5;
  text-align:left;

  display:flex;
  flex-direction:column;
  gap:0.2rem;
  transition: transform 0.4s cubic-bezier(.22,1,.36,1);
  padding-bottom:0;
  pointer-events:auto;
  flex: 0 0 auto;
  min-height: 180px;
  width: 160px;          /* MUST match .step-rail::after width */
  min-width: 160px;
  --base-y: 0px;
  transform: translateY(calc(var(--base-y) + var(--steps-top-offset)));
  --step-color: rgba(255,255,255,0.2); /* fallback */
  isolation: isolate; /* keeps glow contained */
}

/* ascending effect */
.step-item:nth-child(1){
  --base-y: 135px;
  --step-height: 70px;
  --step-color: var(--step-red);
}

.step-item:nth-child(2){
  --base-y: 90px;
  --step-height: 115px;
  --step-color: var(--step-orange);
}

.step-item:nth-child(3){
  --base-y: 45px;
  --step-height: 160px;
  --step-color: var(--step-yellow);
}

.step-item:nth-child(4){
  --base-y: 0px;
  --step-height: 205px;
  --step-color: var(--step-green);
}

/* STEP FILL – height-aware */
.step-item::before{
  content:"";
  position:absolute;

  /* anchor to the step’s vertical rail */
  left:-2px;               /* aligns with rail */
  
  top: calc(var(--step-height) * -1 + var(--step-height));
  bottom: auto;               /* start at base */
  
  width: calc(100% + 4px); /* soft horizontal spread */
  height: var(--step-height);             /* CRITICAL: matches step height */

  background: linear-gradient(
    to top,
    color-mix(in srgb, var(--step-color) 22%, transparent),
    color-mix(in srgb, var(--step-color) 8%, transparent) 95%,
    transparent 100%
  );

  opacity:0;
  border-radius:7px;

  transition:
    opacity 0.45s cubic-bezier(.22,1,.36,1),
    background 0.6s cubic-bezier(.22,1,.36,1);

  pointer-events:none;
}

.step-item:hover::before{
  opacity: 1;
}

.step-item::after{
  content: "";
  position: absolute;
  left: -20px;
  right: -20px;
  top: 0;
  height: 220px;           /* BIG hover area */
  pointer-events: auto;
}

/* Subtle lift on hover */
.step-item:hover{
  transform: translateY(calc(var(--base-y) + var(--steps-top-offset) - 6px));
  filter: drop-shadow(
    0 8px 18px color-mix(in srgb, var(--step-color) 25%, black)
  );
}

/* rail container */
.step-rail{
  position:relative;
  width:160px;     /* wider step */
  height:26px;
}

/* vertical riser (correct direction) */
.step-rail::before{
  content:"";
  position:absolute;
  left:0;
  top:6px;

  width:2px;
  height:90px;
  
  background: linear-gradient(
    to bottom,
    color-mix(in srgb, var(--step-color) 90%, white 10%),
    color-mix(in srgb, var(--step-color) 15%, transparent)
  );

  box-shadow: 0 0 14px color-mix(in srgb, var(--step-color) 45%, transparent);
}


.step-item:nth-child(1) .step-rail::before{
  height:60px;
}

.step-item:nth-child(2) .step-rail::before{
  height:105px;
}

.step-item:nth-child(3) .step-rail::before{
  height:150px;
}

.step-item:nth-child(4) .step-rail::before{
  height:195px;
}



/* horizontal tread (top of riser) */
.step-rail::after{
  content:"";
  position:absolute;
  left:0;
  top:6px;

  height:2px;
  width:160px;

  background: linear-gradient(
    to right,
    color-mix(in srgb, var(--step-color) 90%, white 10%),
    color-mix(in srgb, var(--step-color) 15%, transparent)
  );

  box-shadow: 0 0 14px color-mix(in srgb, var(--step-color) 45%, transparent);
}

.step-rail::before,
.step-rail::after{
  transition:
    box-shadow 0.35s cubic-bezier(.22,1,.36,1),
    background 0.35s cubic-bezier(.22,1,.36,1);
}


/* label */
.step-label{
  position: absolute;

  /* horizontal centering relative to step */
  left: 0;
  width: 160px;          /* same as tread width */
  text-align: center;
  transform:none;

  /* 👇 vertical positioning: near top of step */
  top: 20px;   /* adjust: 10–16px sweet spot */

  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.3px;
  white-space: nowrap;
  text-align: center;

  color: #d6d7e0;
  transition:
    color 0.35s ease,
    text-shadow 0.45s cubic-bezier(.22,1,.36,1);
}


.step-item:hover .step-rail::before,
.step-item:hover .step-rail::after{
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--step-color) 60%, transparent),
    0 0 22px color-mix(in srgb, var(--step-color) 55%, transparent);
}


.step-item:hover .step-label{
  color: #ffffff;
  text-shadow:
    0 0 6px color-mix(in srgb, var(--step-color) 55%, transparent),
    0 0 14px color-mix(in srgb, var(--step-color) 35%, transparent);
}

/* arrow container */
.steps-arrow{
  position: absolute;          /* ← KEY FIX */
  bottom: calc(-10px - var(--steps-top-offset));
  transform: none;

  height: 2px;
  width: calc(var(--step-count) * var(--step-width));

  background: rgba(92,109,245,0.08); /* faint rail */
  overflow: visible;

  pointer-events: none;        /* arrow doesn't block clicks */
}

/* animated fill */
.steps-arrow-fill{
  position: absolute;
  left: 0;
  top: 0;
  height: 2px;
  width: 0%;
  opacity: 0;

  --arrow-color: rgba(255,255,255,0.6);

  background: linear-gradient(
    to right,
    color-mix(in srgb, var(--arrow-color) 35%, transparent),
    var(--arrow-color)
  );
  box-shadow: 0 0 14px rgba(255,255,255,0.25);

  transition:
    width 0.6s cubic-bezier(.25,.8,.25,1),
    opacity 0.35s ease,
    box-shadow 0.45s cubic-bezier(.22,1,.36,1),
    color 0.45s cubic-bezier(.22,1,.36,1),
    --arrow-color 0.55s cubic-bezier(.22,1,.36,1);
}

.steps-arrow-fill::after{
  content:"";
  position:absolute;
  right:-6px;
  top:50%;

  width:8px;
  height:8px;
  color: var(--arrow-color);

  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;

  transition: color 0.45s cubic-bezier(.22,1,.36,1);

  transform:translateY(-50%) rotate(-45deg);
}

/* fade arrow in when hovering steps */
.service-steps:hover .steps-arrow-fill{
  opacity: 1;
}

/* individual step distances */
/* STEP → ARROW BEHAVIOR (WIDTH + COLOR) */

.step-item:nth-child(1):hover ~ .steps-arrow .steps-arrow-fill{
  width:25%;
  --arrow-color: rgba(236,87,87,0.85);
  box-shadow: 0 0 16px rgba(236,87,87,0.45);
}

.step-item:nth-child(2):hover ~ .steps-arrow .steps-arrow-fill{
  width:50%;
  --arrow-color: rgba(245,166,82,0.85);
  box-shadow: 0 0 16px rgba(245,166,82,0.45);
}

.step-item:nth-child(3):hover ~ .steps-arrow .steps-arrow-fill{
  width:75%;
  --arrow-color: rgba(246,223,126,0.8);
  box-shadow: 0 0 14px rgba(246,223,126,0.35);
}

.step-item:nth-child(4):hover ~ .steps-arrow .steps-arrow-fill{
  width:100%;
  --arrow-color: rgba(102,201,146,0.85);
  box-shadow: 0 0 16px rgba(102,201,146,0.45);
}

/* Arrow must never intercept clicks */
.steps-arrow,
.steps-arrow *{
  pointer-events: none;
}

/* ===== Symbol base ===== */
.step-symbol{
  position: absolute;
  top: -85px;
  left: 50%;

  transform:
    translateX(-50%)
    translateY(14px)
    scale(0.96);

  width: 76px;
  height: 76px;

  opacity: 0;
  pointer-events: none;
  color: var(--step-color);

  transition:
    opacity 0.35s ease,
    transform 0.55s cubic-bezier(.16,1,.3,1);
}


/* Use currentColor so no SVG attrs needed */
.step-symbol circle{
  fill: currentColor;
}

.step-symbol line{
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
  opacity: 0.65;
}

/* Show only on hover */
.step-item:hover .step-symbol{
  opacity: 1;
  transform:
    translateX(-50%)
    translateY(0)
    scale(1);
}



/* Optional: soften symbol on non-hover for smoother “fade-in” feel */
.step-item .step-symbol{
  will-change: opacity, transform, filter;
}


/* ================= ABOUT PAGE — AIMS REDESIGN ================= */
.about-page{
  max-width: 1180px;
  margin: 0 auto;
  padding: 7rem 2rem 5rem;
}

/* ---------- HERO ---------- */
.about-hero{
  position:relative;
  isolation:isolate;

  width:100%;
  min-height:430px;

  display:flex;
  flex-direction:column;
  align-items:flex-start;

  padding:
    4rem
    3.6rem
    3.2rem;

  overflow:hidden;

  border:
    1px solid
    rgba(118,128,255,.14);

  border-radius:22px;

  background:
    linear-gradient(
      115deg,
      rgba(25,25,34,.96) 0%,
      rgba(18,18,25,.97) 54%,
      rgba(20,20,31,.92) 100%
    );

  box-shadow:
    0 24px 60px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.025);
}

.about-hero::before{
  content:"";

  position:absolute;
  z-index:-2;

  inset:0;

  background:

    /* right-side purple atmosphere */
    radial-gradient(
      circle at 83% 42%,
      rgba(92,109,245,.15),
      rgba(92,109,245,.045) 28%,
      transparent 55%
    ),

    /* fine technical grid */
    linear-gradient(
      rgba(122,132,255,.035) 1px,
      transparent 1px
    ),

    linear-gradient(
      90deg,
      rgba(122,132,255,.035) 1px,
      transparent 1px
    );

  background-size:
    auto,
    46px 46px,
    46px 46px;

  mask-image:
    linear-gradient(
      90deg,
      transparent 28%,
      rgba(0,0,0,.22) 52%,
      #000 100%
    );

  -webkit-mask-image:
    linear-gradient(
      90deg,
      transparent 28%,
      rgba(0,0,0,.22) 52%,
      #000 100%
    );

  pointer-events:none;
}

.about-hero::after{
  content:"AIMS";

  position:absolute;
  z-index:-1;

  right:3.2rem;
  top:50%;

  transform:translateY(-54%);

  font-size:clamp(7rem,12vw,11rem);
  font-weight:800;

  line-height:1;

  letter-spacing:.08em;

  color:transparent;

  -webkit-text-stroke:
    1px
    rgba(128,138,255,.13);

  opacity:.8;

  text-shadow:
    0 0 40px rgba(92,109,245,.055);

  pointer-events:none;
  user-select:none;
}

.about-hero > *{
  position:relative;
  z-index:2;
}

.about-eyebrow,
.about-title,
.about-tagline{
  max-width:760px;
}

.about-eyebrow{
  display:flex;
  align-items:center;

  width:fit-content;
  max-width:100%;

  margin:0 0 1.15rem;

  color:#818cff;

  font-size:.78rem;
  font-weight:700;

  line-height:1.35;

  letter-spacing:2.6px;
  text-transform:uppercase;

  text-shadow:
    0 0 2px rgba(112,126,255,.35);
}

.about-eyebrow::after{
  content:"";

  width:2px;
  height:15px;

  margin-left:13px;

  transform:rotate(22deg);

  border-radius:999px;

  background:
    linear-gradient(
      to bottom,
      transparent,
      rgba(169,176,255,.9),
      transparent
    );

  box-shadow:
    0 0 5px rgba(92,109,245,.38);
}

.about-title{
  position:relative;

  display:block;
  width:fit-content;
  max-width:100%;

  margin:0 0 1.7rem;
  padding-bottom:.85rem;

  color:#ffffff;

  font-size:clamp(3.5rem,5.4vw,5rem);
  font-weight:700;

  line-height:.98;
  letter-spacing:-2px;
}

.about-title .accent{
  color:#6976ff;

  text-shadow:
    0 0 2px rgba(121,133,255,.28);
}

.about-title::after{
  content:"";

  position:absolute;

  left:0;
  bottom:0;

  width:94px;
  height:3px;

  border-radius:3px;

  background:
    linear-gradient(
      90deg,
      #727fff,
      rgba(92,109,245,.40),
      transparent
    );

  box-shadow:
    0 0 8px rgba(92,109,245,.30);
}

.about-tagline{
  max-width:760px;

  color:#d5d7e5;

  font-size:1.18rem;
  line-height:1.78;

  text-wrap:balance;
}

.about-principle-line{
  position:absolute;

  left:3.6rem;
  right:3.6rem;
  bottom:2.15rem;

  display:flex;
  align-items:center;
  flex-wrap:wrap;

  gap:.8rem;

  margin:0;

  padding-top:1rem;

  border-top:
    1px solid
    rgba(111,123,255,.13);

  color:#a8aec8;

  font-size:.76rem;
  font-weight:650;

  letter-spacing:1.4px;
  text-transform:uppercase;
}

.about-principle-line .principle-dot{
  width:4px;
  height:4px;

  border-radius:50%;

  background:#727fff;

  box-shadow:
    0 0 6px rgba(92,109,245,.55);
}

/* ---------- SHARED ABOUT SECTION ---------- */
.about-block{
  position:relative;
  padding:5.5rem 0;
}

.about-block + .about-block{
  border-top:1px solid rgba(92,109,245,0.12);
}

.about-section-kicker{
  display:block;
  margin-bottom:0.55rem;
  color:var(--accent);
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
}

.about-section-title{
  position:relative;
  display:inline-block;
  margin:0 0 1.4rem;
  padding-bottom:0.55rem;
  color:#ffffff;
  font-size:2rem;
  font-weight:650;
  line-height:1.2;
}

.about-section-title .accent-word{
  color:var(--accent);
}

.about-section-title::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:58px;
  height:2px;
  border-radius:2px;
  background:linear-gradient(
    to right,
    var(--accent),
    rgba(92,109,245,0.2)
  );
  box-shadow:0 0 10px rgba(92,109,245,0.28);
}

.about-lede{
  max-width:780px;
  color:#cfd1dc;
  font-size:1.05rem;
  line-height:1.8;
}

.about-lede + .about-lede{
  margin-top:1rem;
}

/* ---------- WHO WE ARE ---------- */
.about-identity-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,0.55fr);
  gap:4rem;
  align-items:center;
}

.about-identity-copy p{
  color:#d3d5df;
  font-size:1.02rem;
  line-height:1.8;
  margin-bottom:1.1rem;
}

.about-identity-copy p:last-child{
  margin-bottom:0;
}

.about-identity-panel{
  position:relative;
  overflow:hidden;
  min-height:275px;
  padding:2.2rem;
  border:1px solid rgba(92,109,245,0.18);
  border-radius:16px;
  background:
    linear-gradient(145deg, rgba(92,109,245,0.075), rgba(255,255,255,0.015));
  box-shadow:
    0 22px 55px rgba(0,0,0,0.28),
    inset 0 0 0 1px rgba(255,255,255,0.02);
}

.about-identity-panel::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(92,109,245,0.055) 1px, transparent 1px),
    linear-gradient(rgba(92,109,245,0.045) 1px, transparent 1px);
  background-size:36px 36px;
  opacity:0.35;
  pointer-events:none;
}

.identity-stack{
  position:relative;
  z-index:1;
  display:flex;
  height:100%;
  min-height:225px;
  flex-direction:column;
  justify-content:center;
  gap:1.1rem;
}

.identity-word{
  display:flex;
  align-items:center;
  gap:0.85rem;
  color:#eef0ff;
  font-size:1.15rem;
  font-weight:650;
  letter-spacing:0.7px;
}

.identity-word::before{
  content:"";
  width:28px;
  height:1px;
  flex:0 0 28px;
  background:linear-gradient(to right,var(--accent),transparent);
  box-shadow:0 0 8px rgba(92,109,245,0.35);
}

/* ---------- PURPOSE OUTCOME CARDS ---------- */
.about-purpose-intro{
  max-width:850px;
  margin-bottom:2rem;
}

.about-purpose-intro p{
  color:#cfd1dc;
  line-height:1.8;
}

.about-purpose-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}

.purpose-card{
  position:relative;
  overflow:hidden;
  min-height:185px;
  padding:1.5rem;
  border:1px solid rgba(255,255,255,0.06);
  border-radius:12px;
  background:rgba(20,20,27,0.62);
  transition:
    transform 0.35s cubic-bezier(.22,1,.36,1),
    border-color 0.35s ease,
    box-shadow 0.35s ease;
}

.purpose-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:2px;
  background:linear-gradient(to right,var(--accent),transparent 85%);
  opacity:0.65;
}

.purpose-card:hover{
  transform:translateY(-4px);
  border-color:rgba(92,109,245,0.22);
  box-shadow:0 14px 36px rgba(0,0,0,0.28),0 0 20px rgba(92,109,245,0.07);
}

.purpose-index{
  display:block;
  margin-bottom:1.1rem;
  color:rgba(92,109,245,0.75);
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:1.6px;
}

.purpose-card h3{
  margin-bottom:0.7rem;
  color:#ffffff;
  font-size:1rem;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:0.7px;
}

.purpose-card p{
  color:#bfc2cf;
  font-size:0.92rem;
  line-height:1.6;
}

/* ---------- WHAT WE DO CAPABILITY MATRIX ---------- */
.about-services-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:2.2rem;
  border-top:1px solid rgba(255,255,255,0.07);
  border-left:1px solid rgba(255,255,255,0.07);
}

.about-service-card{
  position:relative;
  overflow:hidden;
  min-height:205px;
  padding:1.8rem 2rem;
  border-right:1px solid rgba(255,255,255,0.07);
  border-bottom:1px solid rgba(255,255,255,0.07);
  background:rgba(255,255,255,0.006);
  cursor:pointer;
  transition:
    background 0.35s ease,
    box-shadow 0.35s ease;
}

.about-service-card::before{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-100px;
  bottom:-130px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(92,109,245,0.13),transparent 68%);
  opacity:0;
  transition:opacity 0.35s ease;
  pointer-events:none;
}

.about-service-card:hover{
  background:rgba(92,109,245,0.035);
  box-shadow:inset 0 0 0 1px rgba(92,109,245,0.13);
}

.about-service-card:hover::before{
  opacity:1;
}

.service-number{
  display:block;
  margin-bottom:1.2rem;
  color:rgba(92,109,245,0.75);
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:1.8px;
}

.about-service-card h3{
  max-width:390px;
  margin-bottom:0.8rem;
  color:#ffffff;
  font-size:1.08rem;
  line-height:1.4;
  text-transform:uppercase;
  letter-spacing:0.5px;
}

.about-service-card p{
  max-width:430px;
  padding-right:2rem;
  color:#b8bbc8;
  font-size:0.9rem;
  line-height:1.65;
}

.about-service-arrow{
  position:absolute;
  right:1.8rem;
  bottom:1.6rem;
  color:var(--accent);
  font-size:1.25rem;
  text-shadow:0 0 8px rgba(92,109,245,0.4);
  transition:transform 0.35s cubic-bezier(.22,1,.36,1);
}

.about-service-card:hover .about-service-arrow{
  transform:translateX(5px);
}

/* ---------- DELIVERY MODEL ---------- */
.about-delivery{
  position:relative;
  margin-top:2.6rem;
}

.delivery-track{
  position:absolute;
  left:10%;
  right:10%;
  top:42px;
  height:1px;
  background:linear-gradient(
    to right,
    rgba(92,109,245,0.18),
    rgba(92,109,245,0.7),
    rgba(92,109,245,0.18)
  );
}

.delivery-grid{
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem;
}

.delivery-stage{
  position:relative;
  padding-top:70px;
  text-align:center;
}

.delivery-node{
  position:absolute;
  left:50%;
  top:32px;
  width:20px;
  height:20px;
  transform:translateX(-50%);
  border:5px solid var(--bg-section);
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 1px rgba(92,109,245,0.65),0 0 15px rgba(92,109,245,0.32);
}

.delivery-stage h3{
  margin-bottom:0.6rem;
  color:#ffffff;
  font-size:1.1rem;
}

.delivery-stage p{
  max-width:300px;
  margin:0 auto;
  color:#bfc2cf;
  font-size:0.92rem;
  line-height:1.65;
}

.about-note{
  max-width:800px;
  margin:2.2rem auto 0;
  color:#aeb1c0;
  font-size:0.92rem;
  line-height:1.7;
  text-align:center;
}

/* ---------- APPROACH ---------- */
.approach-flow{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  margin-top:2.4rem;
}

.approach-step{
  position:relative;
  min-height:120px;
  padding:1.4rem 1rem;
  border-top:1px solid rgba(92,109,245,0.25);
  border-bottom:1px solid rgba(255,255,255,0.05);
  text-align:center;
}

.approach-step:not(:last-child)::after{
  content:"→";
  position:absolute;
  right:-8px;
  top:50%;
  transform:translateY(-50%);
  color:rgba(92,109,245,0.7);
  z-index:2;
}

.approach-step span{
  display:block;
  margin-bottom:0.45rem;
  color:var(--accent);
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:1.4px;
}

.approach-step strong{
  display:block;
  color:#f5f5f8;
  font-size:0.9rem;
  font-weight:600;
  line-height:1.45;
}

/* ---------- LEADERSHIP ---------- */

.about-leadership{
  padding-top:5.5rem;
}


/* =========================================================
   LEADERSHIP CARD
========================================================= */

.leadership-card{
  position:relative;

  overflow:hidden;

  padding:3rem 3.2rem;

  border:1px solid rgba(92,109,245,0.18);
  border-radius:18px;

  background:
    linear-gradient(
      135deg,
      rgba(92,109,245,0.08),
      rgba(255,255,255,0.018) 42%,
      rgba(255,255,255,0.01)
    );

  box-shadow:
    0 24px 60px rgba(0,0,0,0.35),
    inset 0 0 0 1px rgba(255,255,255,0.025);
}


.leadership-card::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      90deg,
      rgba(92,109,245,0.05) 1px,
      transparent 1px
    ),
    linear-gradient(
      rgba(92,109,245,0.04) 1px,
      transparent 1px
    );

  background-size:42px 42px;

  opacity:0.22;

  pointer-events:none;
}


.leadership-card::after{
  content:"";

  position:absolute;

  width:360px;
  height:360px;

  right:-120px;
  top:-150px;

  border-radius:50%;

  background:
    radial-gradient(
      circle,
      rgba(92,109,245,0.16),
      rgba(92,109,245,0.04) 42%,
      transparent 70%
    );

  pointer-events:none;
}


.leadership-heading,
.leadership-content{
  position:relative;
  z-index:2;
}


/* =========================================================
   LEADERSHIP HEADING
========================================================= */

.leadership-kicker{
  display:block;

  margin-bottom:0.55rem;

  color:var(--accent);

  font-size:0.76rem;
  font-weight:700;

  letter-spacing:2px;
  text-transform:uppercase;
}


.leadership-heading h2{
  margin:0;

  color:#bfc2d3;

  font-size:1.05rem;
  font-weight:500;
}


.leadership-heading h3{
  margin:0.3rem 0 0;

  color:#ffffff;

  font-size:2rem;
  font-weight:650;
}


.leadership-title{
  color:#8f93a8;

  font-size:.7em;
  font-weight:500;
}


/* =========================================================
   LEADERSHIP CONTENT
========================================================= */

.leadership-content{
  display:grid;

  grid-template-columns:
    minmax(0,1.15fr)
    minmax(300px,0.85fr);

  gap:4rem;

  margin-top:2.4rem;
}


.leadership-summary p{
  margin:0 0 1.1rem;

  color:#d5d6df;

  line-height:1.78;
}


.leadership-summary p:last-child{
  margin-bottom:0;
}


/* =========================================================
   RIGHT-SIDE DETAILS
========================================================= */

.leadership-details{
  padding-left:2rem;

  border-left:1px solid rgba(92,109,245,0.22);
}


.leadership-detail{
  padding-bottom:1.25rem;
  margin-bottom:1.25rem;

  border-bottom:1px solid rgba(255,255,255,0.055);
}


.leadership-detail:last-child{
  margin-bottom:0;
  padding-bottom:0;

  border-bottom:none;
}


.detail-label{
  display:block;

  margin-bottom:0.5rem;

  color:var(--accent);

  font-size:0.68rem;
  font-weight:700;

  letter-spacing:1.2px;
  text-transform:uppercase;
}


.detail-value{
  color:#e4e5ed;

  font-size:.88rem;
  line-height:1.6;
}


/* =========================================================
   QUALIFICATIONS
========================================================= */

.leadership-qualifications{
  align-items:flex-start;
}

/* =========================================================
   LEADERSHIP — PROFILE PHOTO
========================================================= */

.leadership-profile{
  display:flex;
  align-items:center;
  gap:1.5rem;
}


/* PHOTO FRAME */

.leadership-photo{
  position:relative;

  width:108px;
  height:108px;

  flex:0 0 108px;

  padding:4px;

  border:1px solid rgba(92,109,245,.75);
  border-radius:50%;

  background:rgba(92,109,245,.05);

  box-shadow:
    0 0 0 4px rgba(92,109,245,.06),
    0 0 22px rgba(92,109,245,.20);

  overflow:hidden;
}


/* SUBTLE INNER PURPLE RING */

.leadership-photo::after{
  content:"";

  position:absolute;
  inset:4px;

  border:1px solid rgba(92,109,245,.25);
  border-radius:50%;

  pointer-events:none;
}


/* ACTUAL PHOTO */

.leadership-photo img{
  display:block;

  width:100%;
  height:100%;

  object-fit:cover;
  object-position:center;

  border-radius:50%;
}


/* NAME / POSITION */

.leadership-identity{
  min-width:0;
}


/* =========================================================
   PHOTO HOVER — VERY SUBTLE
========================================================= */

.leadership-photo{
  transition:
    border-color .35s ease,
    box-shadow .35s ease,
    transform .35s cubic-bezier(.22,1,.36,1);
}

.leadership-card:hover .leadership-photo{
  transform:translateY(-2px);

  border-color:rgba(92,109,245,1);

  box-shadow:
    0 0 0 4px rgba(92,109,245,.08),
    0 0 30px rgba(92,109,245,.30);
}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:600px){

  .leadership-profile{
    align-items:flex-start;
    gap:1.1rem;
  }

  .leadership-photo{
    width:82px;
    height:82px;

    flex-basis:82px;
  }

  .leadership-identity h3{
    font-size:1.45rem;
  }

}


.qualification-list{
  width:100%;

  display:flex;
  flex-direction:column;
}


/* EACH QUALIFICATION */

.qualification-item{
  position:relative;

  margin-bottom:1.25rem;
  padding:
    0
    0
    1.25rem
    1.2rem;

  border-left:
    1px solid
    rgba(92,109,245,0.30);
}


.qualification-item:last-child{
  margin-bottom:0;
  padding-bottom:0;
}


/* PURPLE NODE */

.qualification-item::before{
  content:"";

  position:absolute;

  left:-3px;
  top:.42rem;

  width:5px;
  height:5px;

  border-radius:50%;

  background:var(--accent);

  box-shadow:
    0 0 10px rgba(92,109,245,.55);
}


/* DEGREE */

.qualification-degree{
  display:flex;

  align-items:center;
  flex-wrap:wrap;

  gap:.55rem;

  margin-bottom:.42rem;

  color:#f3f4f8;

  font-size:.9rem;
  font-weight:650;

  line-height:1.45;
}


/* IN PROGRESS */

.qualification-status{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  padding:.23rem .5rem;

  border:
    1px solid
    rgba(92,109,245,.34);

  border-radius:999px;

  background:
    rgba(92,109,245,.085);

  color:#929cff;

  font-size:.51rem;
  font-weight:800;

  line-height:1;

  letter-spacing:.1em;
}


/* UNIVERSITY */

.qualification-institution{
  color:#a3a6b5;

  font-size:.78rem;
  font-weight:500;

  line-height:1.5;
}


/* SECONDARY UNIVERSITY / LOCATION / YEAR */

.qualification-institution span{
  display:block;

  margin-top:.08rem;

  color:#777a8b;

  font-size:.73rem;
  font-weight:400;
}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:800px){

  .leadership-card{
    padding:2.3rem 1.6rem;
  }

  .leadership-content{
    grid-template-columns:1fr;
    gap:2.5rem;
  }

  .leadership-details{
    padding-left:0;
    padding-top:2rem;

    border-left:none;
    border-top:1px solid rgba(92,109,245,0.22);
  }

}


@media(max-width:500px){

  .leadership-card{
    padding:2rem 1.25rem;
  }

  .leadership-heading h3{
    font-size:1.65rem;
  }

  .qualification-item{
    padding-left:1rem;
  }

  .qualification-degree{
    font-size:.84rem;
  }

  .qualification-institution{
    font-size:.75rem;
  }

}

/* =========================================================
   LEADERSHIP — ALIGN HEADING WITH EXPERIENCE
========================================================= */
/* =========================================================
   LEADERSHIP — FINAL DESKTOP ALIGNMENT
========================================================= */

.leadership-card{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(300px,0.85fr);
  column-gap:4rem;
}

.leadership-content{
  display:contents;
}


/* LEFT: PHOTO + NAME */

.leadership-heading{
  grid-column:1;
  grid-row:1;
  margin:0;
  padding:0;
  align-self:start;
}


/* LEFT: BIO DIRECTLY UNDER NAME */

.leadership-summary{
  grid-column:1;
  grid-row:1;
  align-self:start;

  margin-top:8.25rem;
}


/* RIGHT: EXPERIENCE / EXPERTISE / QUALIFICATIONS */

.leadership-details{
  grid-column:2;
  grid-row:1;
  align-self:start;

  padding-left:2rem;

  border-left:1px solid rgba(92,109,245,0.22);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:950px){

  .leadership-card{
    display:block;
  }

  .leadership-content{
    display:grid;
    grid-template-columns:1fr;
    gap:2rem;

    margin-top:1.5rem;
  }

  .leadership-summary{
    margin-top:0;
  }

  .leadership-details{
    padding-left:0;
    padding-top:2rem;

    border-left:none;
    border-top:1px solid rgba(92,109,245,0.22);
  }

}

/* ---------- WHO WE WORK WITH ---------- */
.client-ecosystem{
  display:grid;
  grid-template-columns:1fr 210px 1fr;
  align-items:center;
  gap:2rem;
  margin-top:2.6rem;
}

.client-column{
  display:grid;
  gap:1rem;
}

.client-chip{
  padding:1.1rem 1.25rem;
  border:1px solid rgba(255,255,255,0.065);
  border-radius:10px;
  background:rgba(255,255,255,0.015);
  color:#d8dae5;
  font-size:0.92rem;
  line-height:1.45;
}

.client-core{
  position:relative;
  display:flex;
  width:150px;
  height:150px;
  margin:auto;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(92,109,245,0.32);
  border-radius:50%;
  color:#ffffff;
  font-size:1.45rem;
  font-weight:700;
  letter-spacing:1.4px;
  background:radial-gradient(circle,rgba(92,109,245,0.15),rgba(92,109,245,0.03) 60%,transparent 72%);
  box-shadow:0 0 30px rgba(92,109,245,0.09);
}

.client-core::before,
.client-core::after{
  content:"";
  position:absolute;
  top:50%;
  width:46px;
  height:1px;
  background:linear-gradient(to right,transparent,rgba(92,109,245,0.6));
}

.client-core::before{
  right:100%;
}

.client-core::after{
  left:100%;
  transform:rotate(180deg);
}

/* ---------- COMMITMENT ---------- */
.about-commitment{
  text-align:center;
}

.commitment-statement{
  max-width:900px;
  margin:0 auto;
}

.commitment-statement h2{
  margin-bottom:1.4rem;
  color:#ffffff;
  font-size:clamp(2rem,4vw,3.2rem);
  font-weight:580;
  line-height:1.22;
  letter-spacing:-0.7px;
}

.commitment-statement h2 .accent-word{
  color:var(--accent);
}

.commitment-statement p{
  max-width:760px;
  margin:0 auto;
  color:#c3c6d2;
  font-size:1.02rem;
  line-height:1.8;
}

.commitment-values{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:0.75rem 1.5rem;
  margin-top:2rem;
  color:#aeb1c0;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.commitment-values span:not(:last-child)::after{
  content:"·";
  margin-left:1.5rem;
  color:var(--accent);
}

/* ---------- CTA ---------- */
.about-cta{
  position:relative;
  overflow:hidden;
  margin-top:1rem;
  padding:4.5rem 2rem;
  border-top:1px solid rgba(92,109,245,0.2);
  border-bottom:1px solid rgba(92,109,245,0.2);
  text-align:center;
}

.about-cta::before{
  content:"";
  position:absolute;
  width:520px;
  height:260px;
  left:50%;
  bottom:-200px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(92,109,245,0.15),transparent 68%);
  pointer-events:none;
}

.about-cta > *{
  position:relative;
  z-index:1;
}

.about-cta h2{
  margin-bottom:0.9rem;
  color:#ffffff;
  font-size:2rem;
}

.about-cta p{
  max-width:720px;
  margin:0 auto 1.8rem;
  color:#c4c6d2;
  line-height:1.75;
}

/* ---------- ABOUT RESPONSIVE ---------- */
@media(max-width:950px){
  .about-purpose-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .about-identity-grid{
    grid-template-columns:1fr;
    gap:2rem;
  }

  .leadership-content{
    grid-template-columns:1fr;
    gap:2rem;
  }

  .leadership-details{
    padding-left:0;
    padding-top:2rem;
    border-left:none;
    border-top:1px solid rgba(92,109,245,0.22);
  }

  .client-ecosystem{
    grid-template-columns:1fr;
  }

  .client-core::before,
  .client-core::after{
    display:none;
  }
}

@media(max-width:720px){
  .about-page{
    padding:6rem 1.25rem 4rem;
  }

  .about-block{
    padding:4rem 0;
  }

  .about-purpose-grid,
  .about-services-grid,
  .delivery-grid,
  .approach-flow{
    grid-template-columns:1fr;
  }

  .about-services-grid{
    border-left:none;
  }

  .about-service-card{
    border-left:1px solid rgba(255,255,255,0.07);
  }

  .delivery-track{
    display:none;
  }

  .delivery-stage{
    padding:1.2rem 0;
    text-align:left;
  }

  .delivery-node{
    display:none;
  }

  .approach-step{
    text-align:left;
    border-top:none;
    border-left:1px solid rgba(92,109,245,0.25);
  }

  .approach-step:not(:last-child)::after{
    display:none;
  }

  .leadership-card{
    padding:2rem 1.5rem;
  }

  .commitment-values{
    flex-direction:column;
    gap:0.55rem;
  }

  .commitment-values span:not(:last-child)::after{
    display:none;
  }
  
    .about-hero{
    min-height:auto;

    padding:
      2.5rem
      1.6rem
      2rem;

    border-radius:18px;
  }

  .about-eyebrow{
    margin-bottom:1rem;

    font-size:.68rem;
    line-height:1.5;
    letter-spacing:2px;
  }

  .about-title{
    margin-bottom:1.4rem;

    font-size:clamp(2.45rem,10vw,3.4rem);
    line-height:1;
  }

  .about-tagline{
    max-width:100%;

    font-size:1rem;
    line-height:1.7;

    text-wrap:pretty;
  }

  .about-principle-line{
    position:relative;

    left:auto;
    right:auto;
    bottom:auto;

    width:100%;

    margin-top:2rem;

    gap:.65rem .75rem;
  }

  .about-hero::after{
    right:-1rem;

    font-size:clamp(6rem,28vw,9rem);

    opacity:.45;
  }
}

.request-page{
  padding-bottom: 6rem;
}

/* HERO */
.request-hero{
  padding: 7rem 2rem 4rem;
  text-align: center;

  background:
    linear-gradient(
      180deg,
      rgba(92,109,245,0.25),
      rgba(92,109,245,0.08),
      transparent
    );
}

.request-hero h1{
  font-size: 3rem;
  color: #ffffff;
  margin-bottom: 1rem;
}

.request-hero p{
  max-width: 720px;
  margin: auto;
  color: #d0d3ff;
}

/* FORM GLASS PANEL */
.request-form-wrapper{
  max-width: 900px;
  margin: auto;
  padding: 3.5rem;

  background: rgba(20,20,30,0.78);
  backdrop-filter: blur(16px);

  border-radius: 22px;

  box-shadow:
    0 0 45px rgba(92,109,245,0.18),
    inset 0 0 0 1px rgba(255,255,255,0.05);
}

.form-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

.form-full{
  margin-top: 2.2rem;
}

label{
  font-size: 0.85rem;
  color: #bfc4ff;
  margin-bottom: 0.4rem;
  display: block;
}

input,
select,
textarea{
  width: 100%;
  padding: 12px 14px;

  border-radius: 10px;
  background: rgba(0,0,0,0.4);
  border: 1px solid rgba(255,255,255,0.08);

  color: #ffffff;
}

input:focus,
textarea:focus,
select:focus{
  outline: none;
  border-color: rgba(92,109,245,0.8);
  box-shadow: 0 0 0 1px rgba(92,109,245,0.6);
}

.submit-btn{
  margin-top: 3rem;
  padding: 14px 36px;

  background: linear-gradient(
    135deg,
    rgba(92,109,245,1),
    rgba(140,92,245,1)
  );

  border: none;
  border-radius: 999px;

  color: #ffffff;
  font-weight: 600;
  cursor: pointer;

  box-shadow: 0 0 28px rgba(92,109,245,0.6);

  transition: transform 0.25s ease;
}

.submit-btn:hover{
  transform: translateY(-2px);
}

/* ===== NAVBAR CTA ===== */

.nav-cta{
  margin-left: auto; /* pushes it to far right */
  display: flex;
  align-items: center;
}

.request-btn{
  position: relative;

  padding: 10px 22px;
  border-radius: 999px;

  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.3px;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      rgba(92,109,245,0.95),
      rgba(140,92,245,0.95)
    );

  border: 1px solid rgba(255,255,255,0.08);

  cursor: pointer;

  box-shadow:
    0 0 12px rgba(92,109,245,0.45),
    inset 0 0 0 1px rgba(255,255,255,0.05);

  transition:
    background 0.2s cubic-bezier(.22,1,.36,1),
    color 0.2s ease,
    border-color 0.2s cubic-bezier(.22,1,.36,1),
    box-shadow 0.2s cubic-bezier(.22,1,.36,1);


}


.request-btn:hover{
  background: rgba(92,109,245,0.14);
  border-color: rgba(92,109,245,0.85);
  color: var(--accent);

  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  box-shadow:
    0 0 22px rgba(92,109,245,0.55),
    inset 0 0 0 1px rgba(255,255,255,0.08);
}



.request-btn:hover::before{
  opacity:1;
}

/* =========================================================
   AIMS CONTACT PAGE
   ========================================================= */

.contact-page{
  position:relative;
  min-height:100vh;
  padding-bottom:7rem;
  overflow:hidden;
}


/* ================= HERO ================= */

/* =========================================================
   CONTACT — CONNECTION HERO
========================================================= */

.contact-section-kicker{
  display:block;
  margin-bottom:0.8rem;

  color:var(--accent);

  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.2em;
}


.contact-page .contact-hero{
  position:relative;
  isolation:isolate;

  min-height:520px;

  display:flex;
  align-items:center;

  padding:
    calc(var(--nav-h) + 3.4rem)
    2rem
    4.8rem;

  overflow:hidden;

  background:
    radial-gradient(
      circle at 78% 45%,
      rgba(92,109,245,.12),
      rgba(92,109,245,.035) 24%,
      transparent 48%
    ),
    linear-gradient(
      120deg,
      rgba(21,21,29,.98) 0%,
      rgba(17,17,23,.99) 48%,
      rgba(18,18,27,.97) 100%
    );

  border-bottom:
    1px solid
    rgba(92,109,245,.12);
}


/* TECHNICAL GRID — RIGHT SIDE ONLY */

.contact-page .contact-hero::before{
  content:"";

  position:absolute;
  z-index:-2;

  inset:0;

  background:
    linear-gradient(
      rgba(122,132,255,.035) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(122,132,255,.035) 1px,
      transparent 1px
    );

  background-size:
    46px 46px,
    46px 46px;

  -webkit-mask-image:
    linear-gradient(
      90deg,
      transparent 42%,
      rgba(0,0,0,.18) 57%,
      #000 100%
    );

  mask-image:
    linear-gradient(
      90deg,
      transparent 42%,
      rgba(0,0,0,.18) 57%,
      #000 100%
    );

  pointer-events:none;
}


/* BOTTOM SIGNATURE LINE */

.contact-page .contact-hero::after{
  content:"";

  position:absolute;

  left:7%;
  right:7%;
  bottom:0;

  height:1px;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(92,109,245,.18) 22%,
      rgba(92,109,245,.85) 50%,
      rgba(92,109,245,.18) 78%,
      transparent
    );

  box-shadow:
    0 0 16px rgba(92,109,245,.22);

  pointer-events:none;
}


/* =========================================================
   HERO LAYOUT
========================================================= */

.contact-page .contact-hero-inner{
  position:relative;
  z-index:2;

  width:min(1240px,100%);

  margin:0 auto;

  display:grid;

  grid-template-columns:
    minmax(0,1.08fr)
    minmax(420px,.92fr);

  align-items:center;

  gap:
    clamp(3rem,6vw,6.5rem);

  text-align:left;
}


/* =========================================================
   COPY
========================================================= */

.contact-page .contact-hero-copy{
  max-width:650px;
}


.contact-page .contact-hero .contact-eyebrow{
  display:inline-flex;
  align-items:center;

  width:fit-content;

  margin:0 0 1.25rem;

  color:#7f8aff;

  font-size:.72rem;
  font-weight:700;

  line-height:1;

  letter-spacing:.22em;

  text-transform:uppercase;

  text-shadow:
    0 0 8px rgba(92,109,245,.20);
}


.contact-page .contact-hero .contact-eyebrow::after{
  content:"";

  width:34px;
  height:1px;

  margin-left:14px;

  background:
    linear-gradient(
      90deg,
      rgba(112,126,255,.9),
      transparent
    );

  box-shadow:
    0 0 8px rgba(92,109,245,.32);
}


.contact-page .contact-hero .contact-title{
  display:block;

  margin:0 0 1.55rem;
  padding:0;

  color:#f4f4f8;

  font-size:
    clamp(3.35rem,5.2vw,5.25rem);

  font-weight:650;

  line-height:.98;

  letter-spacing:-.035em;
}


.contact-page .contact-hero .contact-title::after{
  display:none;
}


.contact-page .contact-hero .contact-title-accent{
  display:inline-block;

  margin-top:.15em;

  background:
    linear-gradient(
      110deg,
      #6978ff 0%,
      #8994ff 48%,
      #b5bcff 100%
    );

  background-clip:text;
  -webkit-background-clip:text;

  color:transparent;
  -webkit-text-fill-color:transparent;

  text-shadow:
    0 0 28px rgba(92,109,245,.12);
}


.contact-page .contact-hero .contact-intro{
  max-width:610px;

  margin:0;

  color:#dedfe8;

  font-size:1.08rem;
  line-height:1.7;
}


.contact-page .contact-hero .contact-subtext{
  max-width:590px;

  margin:1rem 0 0;

  color:#9296aa;

  font-size:.92rem;
  line-height:1.7;
}


/* =========================================================
   AVAILABILITY
========================================================= */

.contact-availability{
  display:inline-flex;
  align-items:center;

  gap:.65rem;

  width:fit-content;

  margin-top:1.7rem;

  color:#85899a;

  font-size:.65rem;
  font-weight:700;

  letter-spacing:.16em;

  text-transform:uppercase;
}


.contact-availability-dot{
  width:7px;
  height:7px;

  flex:0 0 7px;

  border-radius:50%;

  background:#66c992;

  box-shadow:
    0 0 8px rgba(102,201,146,.65),
    0 0 16px rgba(102,201,146,.22);

  animation:
    contactAvailabilityPulse
    3s
    ease-in-out
    infinite;
}


@keyframes contactAvailabilityPulse{

  0%,
  100%{
    opacity:.72;
  }

  50%{
    opacity:1;

    box-shadow:
      0 0 10px rgba(102,201,146,.8),
      0 0 22px rgba(102,201,146,.30);
  }

}


/* =========================================================
   CONNECTION INTERFACE
========================================================= */

.contact-connect-system{
  position:relative;

  width:100%;
  max-width:500px;
  height:360px;

  justify-self:end;

  background:
    radial-gradient(
      circle at 50% 50%,
      rgba(92,109,245,.095),
      rgba(92,109,245,.025) 30%,
      transparent 58%
    );
}


.contact-connect-system::before{
  content:"";

  position:absolute;

  left:50%;
  top:50%;

  width:300px;
  height:300px;

  transform:
    translate(-50%,-50%);

  border:
    1px solid
    rgba(116,128,255,.055);

  border-radius:50%;

  box-shadow:
    0 0 70px rgba(92,109,245,.045);

  pointer-events:none;
}


/* =========================================================
   CONNECTION PATHS
========================================================= */

.contact-connect-lines{
  position:absolute;

  inset:0;

  width:100%;
  height:100%;

  overflow:visible;

  pointer-events:none;
}


.contact-connect-track{
  fill:none;

  stroke:
    rgba(118,130,255,.24);

  stroke-width:1;

  vector-effect:
    non-scaling-stroke;
}


.contact-connect-flow{
  fill:none;

  stroke:#7d89ff;

  stroke-width:1.5;

  stroke-linecap:round;

  stroke-dasharray:
    8 34;

  vector-effect:
    non-scaling-stroke;

  filter:
    drop-shadow(
      0 0 4px
      rgba(92,109,245,.48)
    );

  animation:
    contactSignalFlow
    4.5s
    linear
    infinite;
}


.contact-connect-flow-two{
  animation-delay:-1.5s;
}


.contact-connect-flow-three{
  animation-delay:-3s;
}


@keyframes contactSignalFlow{

  to{
    stroke-dashoffset:-84;
  }

}


/* =========================================================
   CENTRAL AIMS-TT CORE
========================================================= */

.contact-connect-core{
  position:absolute;

  left:50%;
  top:50%;

  width:148px;
  height:148px;

  transform:
    translate(-50%,-50%);

  display:flex;
  align-items:center;
  justify-content:center;

  border:
    1px solid
    rgba(121,133,255,.34);

  border-radius:50%;

  background:
    radial-gradient(
      circle,
      rgba(92,109,245,.16) 0%,
      rgba(25,26,40,.88) 52%,
      rgba(17,17,24,.96) 100%
    );

  box-shadow:
    0 0 0 1px rgba(255,255,255,.018),
    0 0 36px rgba(92,109,245,.13),
    inset 0 0 24px rgba(92,109,245,.06);
}


.contact-core-orbit{
  position:absolute;

  width:188px;
  height:188px;

  border:
    1px solid
    rgba(121,133,255,.12);

  border-radius:50%;

  box-shadow:
    0 0 30px rgba(92,109,245,.04);
}


.contact-core-orbit::before,
.contact-core-orbit::after{
  content:"";

  position:absolute;

  width:5px;
  height:5px;

  border-radius:50%;

  background:#8390ff;

  box-shadow:
    0 0 8px rgba(92,109,245,.75);
}


.contact-core-orbit::before{
  left:50%;
  top:-3px;

  transform:translateX(-50%);
}


.contact-core-orbit::after{
  right:10px;
  bottom:30px;
}


.contact-core-pulse{
  position:absolute;

  width:148px;
  height:148px;

  border:
    1px solid
    rgba(112,126,255,.26);

  border-radius:50%;

  animation:
    contactCorePulse
    3.2s
    ease-out
    infinite;
}


@keyframes contactCorePulse{

  0%{
    opacity:.45;
    transform:scale(.9);
  }

  70%{
    opacity:0;
    transform:scale(1.48);
  }

  100%{
    opacity:0;
    transform:scale(1.48);
  }

}


.contact-core-copy{
  position:relative;
  z-index:2;

  display:flex;
  flex-direction:column;
  align-items:center;

  gap:.45rem;

  text-align:center;
}


.contact-core-copy strong{
  color:#f1f2f7;

  font-size:1.18rem;
  font-weight:700;

  line-height:1;

  letter-spacing:.08em;
}


.contact-core-copy > span{
  color:#74798f;

  font-size:.56rem;
  font-weight:700;

  letter-spacing:.22em;
}


/* =========================================================
   CONNECTION CHANNELS
========================================================= */

.contact-channel{
  position:absolute;

  display:flex;
  align-items:center;

  gap:.7rem;

  padding:.72rem .9rem;

  border:
    1px solid
    rgba(255,255,255,.075);

  border-radius:10px;

  background:
    rgba(18,18,26,.88);

  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);

  box-shadow:
    0 12px 28px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.025);
}


.contact-channel-node{
  width:8px;
  height:8px;

  flex:0 0 8px;

  border:
    1px solid
    rgba(139,150,255,.88);

  border-radius:50%;

  background:
    rgba(92,109,245,.26);

  box-shadow:
    0 0 8px rgba(92,109,245,.50);
}


.contact-channel > div{
  display:flex;
  flex-direction:column;

  gap:.18rem;
}


.contact-channel span:not(.contact-channel-node){
  color:#686d81;

  font-size:.48rem;
  font-weight:700;

  line-height:1;

  letter-spacing:.15em;
}


.contact-channel strong{
  color:#dfe1ed;

  font-size:.68rem;
  font-weight:700;

  line-height:1;

  letter-spacing:.12em;
}


.contact-channel-virtual{
  left:50%;
  top:17px;

  transform:
    translateX(-50%);
}


.contact-channel-email{
  left:8px;
  bottom:15px;
}


.contact-channel-onsite{
  right:0;
  bottom:15px;
}


/* =========================================================
   CONTACT HERO — RESPONSIVE
========================================================= */

@media(max-width:1050px){

  .contact-page .contact-hero{
    min-height:auto;

    padding:
      calc(var(--nav-h) + 3rem)
      2rem
      4.5rem;
  }


  .contact-page .contact-hero-inner{
    grid-template-columns:1fr;

    gap:3rem;
  }


  .contact-page .contact-hero-copy{
    max-width:680px;
  }


  .contact-connect-system{
    justify-self:center;

    width:min(100%,540px);
  }

}


@media(max-width:700px){

  .contact-page .contact-hero{
    padding:
      calc(var(--nav-h) + 2.4rem)
      1.2rem
      3.7rem;
  }


  .contact-page .contact-hero-inner{
    gap:2.4rem;
  }


  .contact-page .contact-hero .contact-title{
    font-size:
      clamp(2.9rem,13vw,4rem);
  }


  .contact-page .contact-hero .contact-intro{
    font-size:1rem;
  }


  .contact-connect-system{
    width:100%;
    max-width:390px;

    height:290px;
  }


  .contact-connect-system::before{
    width:240px;
    height:240px;
  }


  .contact-connect-core{
    width:120px;
    height:120px;
  }


  .contact-core-orbit{
    width:150px;
    height:150px;
  }


  .contact-core-pulse{
    width:120px;
    height:120px;
  }


  .contact-channel{
    gap:.5rem;

    padding:.6rem .68rem;
  }


  .contact-channel strong{
    font-size:.58rem;
  }


  .contact-channel span:not(.contact-channel-node){
    font-size:.42rem;
  }


  .contact-channel-email{
    left:0;
  }


  .contact-channel-onsite{
    right:0;
  }

}


@media(max-width:430px){

  .contact-page .contact-hero .contact-title{
    font-size:2.75rem;
  }


  .contact-connect-system{
    height:270px;
  }


  .contact-channel{
    padding:.55rem .6rem;
  }


  .contact-channel span:not(.contact-channel-node){
    display:none;
  }

}


/* ================= MAIN CONTAINER ================= */

.contact-container{
  width:min(1200px, calc(100% - 4rem));
  margin:0 auto;
}


/* ================= CONTACT OPTION CARDS ================= */

.contact-options{
  position:relative;
  z-index:3;

  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;

  margin-top:-1.8rem;
}

.contact-option-card{
  position:relative;
  overflow:hidden;

  min-height:310px;
  padding:2rem;

  background:
    linear-gradient(
      145deg,
      rgba(25,25,33,0.96),
      rgba(17,17,23,0.96)
    );

  border:1px solid rgba(255,255,255,0.07);
  border-radius:16px;

  box-shadow:
    0 20px 45px rgba(0,0,0,0.32),
    inset 0 0 0 1px rgba(255,255,255,0.015);

  transition:
    transform 0.35s cubic-bezier(.22,1,.36,1),
    border-color 0.35s ease,
    box-shadow 0.35s ease;
}

.contact-option-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;

  width:100%;
  height:2px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,0.75),
    transparent
  );

  opacity:0;
  transition:opacity 0.35s ease;
}

.contact-option-card:hover{
  transform:translateY(-5px);

  border-color:rgba(92,109,245,0.3);

  box-shadow:
    0 26px 55px rgba(0,0,0,0.42),
    0 0 30px rgba(92,109,245,0.08);
}

.contact-option-card:hover::before{
  opacity:1;
}

.contact-option-icon{
  width:48px;
  height:48px;

  display:flex;
  align-items:center;
  justify-content:center;

  margin-bottom:2rem;

  border-radius:12px;

  background:rgba(92,109,245,0.09);
  border:1px solid rgba(92,109,245,0.25);

  box-shadow:0 0 20px rgba(92,109,245,0.08);
}

.contact-option-icon svg{
  width:22px;
  height:22px;

  fill:none;
  stroke:var(--accent);
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.contact-option-number{
  position:absolute;
  top:1.8rem;
  right:1.8rem;

  color:rgba(255,255,255,0.11);

  font-size:1.7rem;
  font-weight:700;
  letter-spacing:0.04em;
}

.contact-option-card h2{
  margin-bottom:0.8rem;

  color:#ffffff;

  font-size:1.3rem;
  font-weight:600;
}

.contact-option-card p{
  margin-bottom:1.7rem;

  color:#aeb0bd;

  font-size:0.96rem;
  line-height:1.7;
}

.contact-option-detail{
  margin-top:auto;
  padding-top:1rem;

  border-top:1px solid rgba(255,255,255,0.06);

  color:#d9daea;

  font-size:0.86rem;
  font-weight:500;
}


/* ================= SECTION HEADING ================= */

.contact-section-heading{
  max-width:680px;
  margin-bottom:2.7rem;
}

.contact-section-heading h2{
  margin-bottom:0.8rem;

  color:#ffffff;

  font-size:2rem;
  font-weight:600;
}

.contact-section-heading h2 span{
  color:var(--accent);
}

.contact-section-heading p{
  color:#aeb0bd;
  line-height:1.75;
}

.contact-section-heading-center{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}


/* ================= HOW TO ENGAGE ================= */

.contact-engage{
  margin-top:7rem;
}

.engage-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.5rem;
}

.engage-panel{
  position:relative;

  padding:2.3rem;

  background:rgba(20,20,27,0.72);

  border:1px solid rgba(255,255,255,0.07);
  border-radius:16px;

  transition:
    border-color 0.3s ease,
    background 0.3s ease;
}

.engage-panel:hover{
  border-color:rgba(92,109,245,0.22);
  background:rgba(23,23,31,0.88);
}

.engage-panel-featured{
  background:
    linear-gradient(
      145deg,
      rgba(92,109,245,0.075),
      rgba(20,20,27,0.8)
    );

  border-color:rgba(92,109,245,0.2);
}

.engage-panel-top{
  display:flex;
  align-items:center;
  gap:1rem;

  margin-bottom:1.8rem;
}

.engage-index{
  color:var(--accent);
  font-size:0.8rem;
  font-weight:700;
}

.engage-type{
  color:#858897;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.14em;
}

.engage-panel h3{
  margin-bottom:0.8rem;

  color:#ffffff;

  font-size:1.3rem;
  font-weight:600;
}

.engage-panel p{
  color:#aeb0bd;
  line-height:1.75;
}

.engage-contact-line{
  display:flex;
  flex-direction:column;
  gap:0.35rem;

  margin-top:2rem;
  padding-top:1.2rem;

  border-top:1px solid rgba(255,255,255,0.06);

  color:#e2e3ec;
}

.engage-contact-label{
  color:var(--accent);

  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.14em;
}

.contact-inline-link{
  display:inline-flex;
  align-items:center;
  gap:0.8rem;

  margin-top:1.5rem;
  padding:0;

  background:none;
  border:none;

  color:var(--accent);

  font-size:0.93rem;
  font-weight:600;

  cursor:pointer;

  transition:
    color 0.25s ease,
    text-shadow 0.25s ease;
}

.contact-inline-link span{
  transition:transform 0.3s cubic-bezier(.22,1,.36,1);
}

.contact-inline-link:hover{
  color:#ffffff;
  text-shadow:0 0 10px rgba(92,109,245,0.35);
}

.contact-inline-link:hover span{
  transform:translateX(4px);
}


/* ================= MEETING OPTIONS ================= */

.contact-meetings{
  margin-top:7rem;
  padding:4rem 0;

  border-top:1px solid rgba(255,255,255,0.055);
  border-bottom:1px solid rgba(255,255,255,0.055);
}

.meeting-strip{
  display:grid;
  grid-template-columns:1fr 70px 1fr 70px 1fr;
  align-items:center;
}

.meeting-item{
  display:flex;
  gap:1rem;
  align-items:flex-start;
}

.meeting-marker{
  width:10px;
  height:10px;
  min-width:10px;

  margin-top:0.35rem;

  border-radius:50%;

  background:var(--accent);

  box-shadow:
    0 0 8px rgba(92,109,245,0.75),
    0 0 18px rgba(92,109,245,0.35);
}

.meeting-label{
  display:block;
  margin-bottom:0.55rem;

  color:var(--accent);

  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.14em;
}

.meeting-item h3{
  margin-bottom:0.5rem;

  color:#ffffff;

  font-size:1.05rem;
}

.meeting-item p{
  color:#9fa2b0;

  font-size:0.9rem;
  line-height:1.65;
}

.meeting-connector{
  height:1px;
  margin:0 1rem;

  background:linear-gradient(
    90deg,
    rgba(92,109,245,0.12),
    rgba(92,109,245,0.55),
    rgba(92,109,245,0.12)
  );
}


/* ================= WHAT HAPPENS NEXT ================= */

.contact-next{
  margin-top:7rem;
}

.contact-process{
  position:relative;

  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.3rem;

  margin-top:3.5rem;
}

.contact-process-line{
  position:absolute;

  left:10%;
  right:10%;
  top:23px;

  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,0.45),
    rgba(92,109,245,0.45),
    transparent
  );

  z-index:0;
}

.contact-process-step{
  position:relative;
  z-index:1;

  text-align:center;
}

.process-number{
  width:46px;
  height:46px;

  display:flex;
  align-items:center;
  justify-content:center;

  margin:0 auto 1.4rem;

  border-radius:50%;

  background:#15151b;

  border:1px solid rgba(92,109,245,0.45);

  color:var(--accent);

  font-size:0.78rem;
  font-weight:700;

  box-shadow:
    0 0 0 6px var(--bg-section),
    0 0 18px rgba(92,109,245,0.15);
}

.process-content h3{
  margin-bottom:0.5rem;

  color:#ffffff;

  font-size:1rem;
}

.process-content p{
  max-width:230px;
  margin:0 auto;

  color:#9699a8;

  font-size:0.88rem;
  line-height:1.65;
}


/* ================= FINAL REQUEST CTA ================= */

.contact-request-cta{
  position:relative;
  overflow:hidden;

  margin-top:8rem;
  padding:5.5rem 2rem;

  text-align:center;

  border:1px solid rgba(92,109,245,0.2);
  border-radius:22px;

  background:
    linear-gradient(
      145deg,
      rgba(92,109,245,0.075),
      rgba(18,18,24,0.92) 50%,
      rgba(92,109,245,0.035)
    );

  box-shadow:
    0 30px 65px rgba(0,0,0,0.3),
    inset 0 0 0 1px rgba(255,255,255,0.015);
}

.contact-request-cta::before{
  content:"";
  position:absolute;

  top:0;
  left:12%;
  right:12%;

  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    var(--accent),
    transparent
  );

  box-shadow:0 0 18px rgba(92,109,245,0.5);
}

.contact-cta-glow{
  position:absolute;

  width:450px;
  height:220px;

  top:-150px;
  left:50%;

  transform:translateX(-50%);

  background:rgba(92,109,245,0.15);

  filter:blur(80px);

  border-radius:50%;

  pointer-events:none;
}

.contact-cta-content{
  position:relative;
  z-index:2;

  max-width:760px;
  margin:0 auto;
}

.contact-cta-content h2{
  margin-bottom:1rem;

  color:#ffffff;

  font-size:clamp(2rem,4vw,2.8rem);
  font-weight:600;
  line-height:1.2;
}

.contact-cta-content h2 span{
  color:var(--accent);
}

.contact-cta-content p{
  max-width:650px;
  margin:0 auto 2rem;

  color:#aeb0bd;

  line-height:1.75;
}

.contact-request-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.9rem;

  padding:0.9rem 1.7rem;

  background:rgba(92,109,245,0.08);

  border:1px solid rgba(92,109,245,0.65);
  border-radius:7px;

  color:#ffffff;

  font-size:0.82rem;
  font-weight:700;
  letter-spacing:0.08em;

  cursor:pointer;

  box-shadow:
    0 0 0 1px rgba(92,109,245,0.05),
    0 8px 24px rgba(0,0,0,0.2);

  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

.contact-request-btn svg{
  width:18px;
  height:18px;

  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;

  transition:transform 0.3s cubic-bezier(.22,1,.36,1);
}

.contact-request-btn:hover{
  background:rgba(92,109,245,0.18);
  border-color:var(--accent);

  box-shadow:
    0 0 0 1px rgba(92,109,245,0.15),
    0 0 24px rgba(92,109,245,0.18);
}

.contact-request-btn:hover svg{
  transform:translateX(4px);
}

.contact-email-link{
  color: #e2e3ec;
  text-decoration: none;
  position: relative;

  /* Keep the link exactly the width of the email text */
  display: inline-block;
  width: fit-content;
  max-width: fit-content;
  flex: 0 0 auto;

  transition:
    color 0.25s ease,
    text-shadow 0.25s ease;
}

.contact-email-link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-2px;

  width:100%;
  height:1px;

  background:var(--accent);

  transform:scaleX(0);
  transform-origin:left;

  transition:
    transform 0.3s cubic-bezier(.22,1,.36,1);
}

.contact-email-link:hover{
  color:var(--accent);

  text-shadow:
    0 0 8px rgba(92,109,245,0.25);
}

.contact-email-link:hover::after{
  transform:scaleX(1);
}


/* ================= RESPONSIVE ================= */

@media(max-width:900px){

  .contact-container{
    width:min(100% - 3rem, 1200px);
  }

  .contact-options{
    grid-template-columns:1fr;
  }

  .contact-option-card{
    min-height:auto;
  }

  .engage-grid{
    grid-template-columns:1fr;
  }

  .meeting-strip{
    grid-template-columns:1fr;
    gap:2rem;
  }

  .meeting-connector{
    display:none;
  }

  .contact-process{
    grid-template-columns:1fr 1fr;
    gap:2.5rem 1.5rem;
  }

  .contact-process-line{
    display:none;
  }

}


@media(max-width:600px){

  .contact-container{
    width:calc(100% - 2rem);
  }

  .contact-process{
    grid-template-columns:1fr;
  }

  .engage-panel{
    padding:1.7rem;
  }

  .contact-request-cta{
    padding:4rem 1.4rem;
  }

}

/* =========================================================
   AIMS — PREMIUM GENERAL SERVICES HUB
   ========================================================= */

.services-hub{
  --services-border: rgba(255,255,255,0.075);
  --services-border-accent: rgba(92,109,245,0.42);
  --services-card: rgba(19,19,25,0.88);
  --services-card-deep: rgba(15,15,20,0.96);
  --services-muted: #bfc2d3;

  position:relative;
  overflow:hidden;
  background:var(--bg-section);
}


/* ================= SHARED ================= */

.services-hub-container{
  width:min(1240px, calc(100% - 4rem));
  margin:0 auto;
  position:relative;
  z-index:2;
}

.services-hub-section{
  position:relative;
  padding:7rem 0;
}

.services-section-kicker,
.services-eyebrow{
  display:block;
  color:var(--accent);
  font-size:0.76rem;
  font-weight:700;
  letter-spacing:0.2em;
  text-transform:uppercase;
  margin-bottom:1rem;
}

.services-section-heading{
  max-width:780px;
  margin-bottom:3.5rem;
}

.services-section-heading h2{
  margin:0;
  font-size:clamp(2rem, 4vw, 3rem);
  line-height:1.12;
  letter-spacing:-0.035em;
  color:#fff;
}

.services-section-heading h2 span{
  color:var(--accent);
}

.services-section-heading p{
  max-width:720px;
  margin-top:1.2rem;
  margin-bottom:0;
  color:var(--services-muted);
  font-size:1.03rem;
  line-height:1.8;
}

.services-section-heading-centered{
  text-align:center;
  margin-left:auto;
  margin-right:auto;
}

.services-section-heading-centered p{
  margin-left:auto;
  margin-right:auto;
}


/* ================= HERO ================= */

.services-hub-hero{
  position:relative;
  min-height:610px;
  padding:calc(var(--nav-h) + 6rem) 0 6.5rem;
  display:flex;
  align-items:center;
  overflow:hidden;

  background:
    linear-gradient(
      180deg,
      rgba(10,10,14,0.82),
      rgba(18,18,24,0.96)
    );
}

.services-hub-hero::after{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  bottom:0;
  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,0.75),
    transparent
  );

  box-shadow:0 0 20px rgba(92,109,245,0.35);
}

.services-hero-grid{
  position:absolute;
  inset:0;

  background-image:
    linear-gradient(rgba(255,255,255,0.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.022) 1px, transparent 1px);

  background-size:52px 52px;

  mask-image:linear-gradient(
    to bottom,
    rgba(0,0,0,0.8),
    transparent 90%
  );

  opacity:0.6;
}

.services-hero-glow{
  position:absolute;
  width:520px;
  height:520px;
  border-radius:50%;
  filter:blur(110px);
  pointer-events:none;
}

.services-hero-glow-left{
  left:-260px;
  top:60px;
  background:rgba(92,109,245,0.15);
}

.services-hero-glow-right{
  right:-250px;
  top:-80px;
  background:rgba(120,82,245,0.10);
}

.services-hero-content{
  max-width:1240px;
}

.services-hub-hero h1{
  font-size:clamp(3.5rem, 7vw, 5.7rem);
  line-height:0.98;
  letter-spacing:-0.055em;
  margin:0;
  color:#fff;
}

.services-hub-hero h1 span{
  color:var(--accent);
}

.services-hub-hero h2{
  margin:1.7rem 0 0;
  font-size:clamp(1.45rem, 3vw, 2.1rem);
  line-height:1.25;
  font-weight:500;
  color:#fff;
}

.services-hub-hero h2 span{
  color:#9da6ff;
}

.services-hub-hero p{
  max-width:700px;
  margin:1.35rem 0 0;
  color:#c5c7d6;
  line-height:1.8;
  font-size:1.08rem;
}

.services-hero-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
  margin-top:2.5rem;
}

.services-primary-btn,
.services-secondary-btn,
.services-final-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.8rem;

  min-height:48px;
  padding:0.85rem 1.55rem;

  border-radius:999px;
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:0.08em;

  cursor:pointer;

  transition:
    transform .3s cubic-bezier(.22,1,.36,1),
    background .3s ease,
    border-color .3s ease,
    box-shadow .3s ease,
    color .3s ease;
}

.services-primary-btn{
  color:#fff;
  background:var(--accent);
  border:1px solid var(--accent);

  box-shadow:
    0 10px 30px rgba(92,109,245,0.18),
    0 0 18px rgba(92,109,245,0.16);
}

.services-primary-btn:hover{
  transform:translateY(-2px);

  background:#6878ff;

  box-shadow:
    0 14px 34px rgba(92,109,245,0.26),
    0 0 24px rgba(92,109,245,0.28);
}

.services-secondary-btn{
  color:#cdd2ff;
  background:rgba(92,109,245,0.035);
  border:1px solid rgba(92,109,245,0.52);
}

.services-secondary-btn:hover{
  transform:translateY(-2px);

  background:rgba(92,109,245,0.11);
  border-color:rgba(92,109,245,0.9);

  box-shadow:0 0 22px rgba(92,109,245,0.18);
}


/* ================= SIX CAPABILITIES ================= */

.services-capabilities-section{
  background:
    radial-gradient(
      circle at 50% 0%,
      rgba(92,109,245,0.055),
      transparent 35%
    );
}

.services-capability-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:1.35rem;
}

.services-capability-card{
  position:relative;
  min-height:330px;

  display:flex;
  flex-direction:column;

  padding:2rem;

  background:
    linear-gradient(
      145deg,
      rgba(24,24,31,0.92),
      rgba(16,16,21,0.95)
    );

  border:1px solid var(--services-border);
  border-radius:18px;

  overflow:hidden;
  cursor:pointer;

  box-shadow:
    0 18px 42px rgba(0,0,0,0.22),
    inset 0 0 0 1px rgba(255,255,255,0.012);

  transition:
    transform .45s cubic-bezier(.22,1,.36,1),
    border-color .4s ease,
    box-shadow .45s ease,
    background .4s ease;
}

.services-capability-card::before{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-110px;
  top:-110px;

  border-radius:50%;
  background:rgba(92,109,245,0.09);
  filter:blur(55px);

  opacity:0;
  transition:opacity .4s ease;
}

.services-card-line{
  position:absolute;
  top:0;
  left:0;

  width:0;
  height:2px;

  background:linear-gradient(
    90deg,
    var(--accent),
    rgba(130,142,255,0.8),
    transparent
  );

  box-shadow:0 0 14px rgba(92,109,245,0.6);

  transition:width .55s cubic-bezier(.22,1,.36,1);
}

.services-capability-card:hover{
  transform:translateY(-7px);

  border-color:rgba(92,109,245,0.42);

  box-shadow:
    0 26px 55px rgba(0,0,0,0.38),
    0 0 0 1px rgba(92,109,245,0.08),
    0 0 30px rgba(92,109,245,0.09);
}

.services-capability-card:hover::before{
  opacity:1;
}

.services-capability-card:hover .services-card-line{
  width:72%;
}

.services-card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:2rem;
}

.services-card-number{
  color:#707386;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.14em;

  transition:
    color .3s ease,
    text-shadow .3s ease;
}

.services-capability-card:hover .services-card-number{
  color:var(--accent);
  text-shadow:0 0 10px rgba(92,109,245,0.35);
}

.services-card-icon{
  width:46px;
  height:46px;

  display:flex;
  align-items:center;
  justify-content:center;

  border-radius:12px;

  color:#aeb5ff;

  background:rgba(92,109,245,0.075);
  border:1px solid rgba(92,109,245,0.18);

  transition:
    background .35s ease,
    border-color .35s ease,
    box-shadow .35s ease,
    transform .35s cubic-bezier(.22,1,.36,1);
}

.services-card-icon svg{
  width:22px;
  height:22px;

  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.services-capability-card:hover .services-card-icon{
  transform:translateY(-2px);

  background:rgba(92,109,245,0.14);
  border-color:rgba(92,109,245,0.45);

  box-shadow:
    0 0 16px rgba(92,109,245,0.18);
}

.services-capability-card h3{
  position:relative;
  z-index:2;

  max-width:310px;

  margin:0 0 0.8rem;

  color:#fff;
  font-size:1.25rem;
  line-height:1.3;
}

.services-capability-card p{
  position:relative;
  z-index:2;

  color:#b9bbc9;
  font-size:0.94rem;
  line-height:1.7;

  margin:0 0 1.6rem;
}

.services-card-link{
  position:relative;
  z-index:2;

  display:flex;
  align-items:center;
  gap:0.55rem;

  margin-top:auto;

  color:#d5d8ea;
  font-size:0.84rem;
  font-weight:600;
}

.services-card-link span{
  color:var(--accent);

  transition:transform .35s cubic-bezier(.22,1,.36,1);
}

.services-capability-card:hover .services-card-link{
  color:#fff;
}

.services-capability-card:hover .services-card-link span{
  transform:translateX(5px);
}


/* ================= SCALE ================= */

.services-scale-section{
  background:#101015;
  border-top:1px solid rgba(255,255,255,0.035);
  border-bottom:1px solid rgba(255,255,255,0.035);
}

.services-scale-track{
  position:relative;

  display:grid;
  grid-template-columns:repeat(3,1fr);

  max-width:1050px;
  margin:5rem auto 0;
}

.services-scale-line{
  position:absolute;

  top:28px;
  left:16.66%;
  right:16.66%;

  height:1px;

  background:linear-gradient(
    90deg,
    rgba(92,109,245,0.28),
    rgba(92,109,245,0.9),
    rgba(139,111,255,0.85)
  );

  box-shadow:0 0 12px rgba(92,109,245,0.25);
}

.services-scale-stage{
  position:relative;
  z-index:2;

  padding:0 2rem;
  text-align:center;
}

.scale-node{
  width:56px;
  height:56px;

  margin:0 auto 1.5rem;

  display:flex;
  align-items:center;
  justify-content:center;

  border-radius:50%;

  color:#c9ceff;
  font-size:0.75rem;
  font-weight:700;

  background:#15151c;

  border:1px solid rgba(92,109,245,0.45);

  box-shadow:
    0 0 0 7px #101015,
    0 0 16px rgba(92,109,245,0.15);
}

.scale-node-best{
  background:rgba(92,109,245,0.14);
  border-color:rgba(92,109,245,0.8);

  box-shadow:
    0 0 0 7px #101015,
    0 0 22px rgba(92,109,245,0.28);
}

.scale-label{
  display:block;

  color:var(--accent);

  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.18em;

  margin-bottom:0.65rem;
}

.services-scale-stage h3{
  color:#fff;
  font-size:1.18rem;
  margin:0 0 0.8rem;
}

.services-scale-stage p{
  max-width:270px;
  margin:0 auto;

  color:#aeb0be;
  line-height:1.65;
  font-size:0.9rem;
}


/* ================= LEVEL CARDS ================= */

.services-level-section{
  background:
    radial-gradient(
      circle at 50% 40%,
      rgba(92,109,245,0.035),
      transparent 40%
    );
}

.services-level-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.4rem;
  align-items:stretch;
}

.services-level-card{
  position:relative;

  display:flex;
  flex-direction:column;

  padding:2.2rem;

  border-radius:18px;

  background:
    linear-gradient(
      155deg,
      rgba(24,24,30,0.92),
      rgba(15,15,20,0.96)
    );

  border:1px solid rgba(255,255,255,0.075);

  box-shadow:
    0 20px 45px rgba(0,0,0,0.24);

  transition:
    transform .4s cubic-bezier(.22,1,.36,1),
    border-color .35s ease,
    box-shadow .4s ease;
}

.services-level-card:hover{
  transform:translateY(-5px);

  border-color:rgba(92,109,245,0.34);

  box-shadow:
    0 28px 55px rgba(0,0,0,0.35),
    0 0 22px rgba(92,109,245,0.07);
}

.services-level-card-featured{
  border-color:rgba(92,109,245,0.23);
}

.services-level-card-best{
  background:
    linear-gradient(
      155deg,
      rgba(32,31,48,0.94),
      rgba(16,16,23,0.98)
    );

  border-color:rgba(92,109,245,0.38);

  box-shadow:
    0 20px 50px rgba(0,0,0,0.28),
    0 0 28px rgba(92,109,245,0.07);
}

.level-card-header{
  display:flex;
  justify-content:space-between;
  align-items:center;

  margin-bottom:2rem;
}

.level-number{
  color:#6f7283;
  font-size:0.8rem;
  font-weight:700;
}

.level-name{
  color:var(--accent);

  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.17em;

  padding:0.45rem 0.75rem;

  border-radius:999px;

  background:rgba(92,109,245,0.07);
  border:1px solid rgba(92,109,245,0.16);
}

.services-level-card h3{
  color:#fff;

  font-size:1.35rem;
  line-height:1.3;

  margin:0 0 0.85rem;
}

.level-description{
  color:#b5b7c5;
  line-height:1.7;
  font-size:0.94rem;
  margin:0;
}

.level-divider{
  height:1px;

  margin:1.6rem 0;

  background:linear-gradient(
    90deg,
    rgba(92,109,245,0.6),
    rgba(255,255,255,0.055),
    transparent
  );
}

.services-level-card ul{
  list-style:none;
  margin:0 0 2rem;
  padding:0;
}

.services-level-card li{
  position:relative;

  padding-left:1.5rem;
  margin-bottom:0.85rem;

  color:#c9cbd8;
  font-size:0.9rem;
  line-height:1.5;
}

.services-level-card li::before{
  content:"";

  position:absolute;
  left:0;
  top:0.5em;

  width:6px;
  height:6px;

  border-radius:50%;

  background:var(--accent);

  box-shadow:0 0 8px rgba(92,109,245,0.5);
}

.level-audience{
  margin-top:auto;

  padding-top:1.25rem;

  border-top:1px solid rgba(255,255,255,0.055);
}

.level-audience > span{
  color:#777b90;
  font-size:0.66rem;
  font-weight:700;
  letter-spacing:0.16em;
}

.level-audience p{
  margin:0.55rem 0 0;

  color:#d8d9e3;
  font-size:0.82rem;
  line-height:1.5;
}


/* ================= ENGAGEMENT ================= */

.services-engagement-section{
  background:#101015;
}

.services-engagement-process{
  position:relative;

  display:grid;
  grid-template-columns:repeat(4,1fr);

  max-width:1120px;

  margin:4.5rem auto 0;
}

.engagement-connector{
  position:absolute;

  top:27px;
  left:12.5%;
  right:12.5%;

  height:1px;

  background:linear-gradient(
    90deg,
    rgba(92,109,245,0.18),
    rgba(92,109,245,0.75),
    rgba(92,109,245,0.18)
  );
}

.engagement-step{
  position:relative;
  z-index:2;

  text-align:center;

  padding:0 1.5rem;
}

.engagement-number{
  width:54px;
  height:54px;

  margin:0 auto 1.4rem;

  display:flex;
  align-items:center;
  justify-content:center;

  border-radius:50%;

  color:#cbd0ff;

  font-size:0.72rem;
  font-weight:700;

  background:#15151b;

  border:1px solid rgba(92,109,245,0.38);

  box-shadow:
    0 0 0 7px #101015,
    0 0 14px rgba(92,109,245,0.12);

  transition:
    border-color .3s ease,
    box-shadow .3s ease,
    background .3s ease;
}

.engagement-step:hover .engagement-number{
  background:rgba(92,109,245,0.12);
  border-color:rgba(92,109,245,0.8);

  box-shadow:
    0 0 0 7px #101015,
    0 0 22px rgba(92,109,245,0.28);
}

.engagement-step h3{
  color:#fff;

  margin:0 0 0.65rem;

  font-size:1.08rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
}

.engagement-step p{
  margin:0 auto;

  max-width:230px;

  color:#aeb0be;
  font-size:0.88rem;
  line-height:1.65;
}

.engagement-note{
  max-width:760px;

  margin:3.7rem auto 0;

  text-align:center;

  color:#c3c5d1;
  line-height:1.75;
  font-size:0.94rem;
}


/* ================= COMMITMENT ================= */

.services-commitment-section{
  padding-top:7.5rem;
  padding-bottom:7.5rem;
}

.services-commitment-panel{
  position:relative;

  overflow:hidden;

  padding:5rem 3rem;

  text-align:center;

  border-radius:24px;

  background:
    linear-gradient(
      145deg,
      rgba(24,24,32,0.95),
      rgba(14,14,19,0.98)
    );

  border:1px solid rgba(92,109,245,0.23);

  box-shadow:
    0 30px 70px rgba(0,0,0,0.35),
    inset 0 0 0 1px rgba(255,255,255,0.015);
}

.services-commitment-panel::before,
.services-commitment-panel::after{
  content:"";

  position:absolute;

  left:15%;
  right:15%;

  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,0.72),
    transparent
  );

  box-shadow:0 0 16px rgba(92,109,245,0.28);
}

.services-commitment-panel::before{
  top:0;
}

.services-commitment-panel::after{
  bottom:0;
}

.commitment-glow{
  position:absolute;

  width:500px;
  height:300px;

  left:50%;
  top:50%;

  transform:translate(-50%,-50%);

  border-radius:50%;

  background:rgba(92,109,245,0.10);

  filter:blur(100px);
}

.services-commitment-content{
  position:relative;
  z-index:2;
}

.services-commitment-content h2{
  max-width:900px;

  margin:0 auto;

  color:#fff;

  font-size:clamp(2rem, 4vw, 3.2rem);
  line-height:1.18;
  letter-spacing:-0.04em;
}

.services-commitment-content h2 span{
  color:var(--accent);
}

.services-commitment-content p{
  max-width:760px;

  margin:1.5rem auto 0;

  color:#bfc1cf;
  line-height:1.8;
}

.services-commitment-values{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;

  gap:0.8rem;

  margin-top:2rem;
}

.services-commitment-values span{
  padding:0.55rem 0.9rem;

  border-radius:999px;

  color:#cdd1f7;
  font-size:0.75rem;
  font-weight:600;

  background:rgba(92,109,245,0.055);
  border:1px solid rgba(92,109,245,0.17);
}


/* ================= FINAL CTA ================= */

.services-final-cta{
  position:relative;

  overflow:hidden;

  padding:7rem 0;

  text-align:center;

  background:#0e0e12;

  border-top:1px solid rgba(255,255,255,0.045);
}

.services-final-glow{
  position:absolute;

  width:650px;
  height:350px;

  left:50%;
  bottom:-280px;

  transform:translateX(-50%);

  border-radius:50%;

  background:rgba(92,109,245,0.17);

  filter:blur(100px);
}

.services-final-content{
  position:relative;
  z-index:2;
}

.services-final-content h2{
  max-width:760px;

  margin:0 auto;

  color:#fff;

  font-size:clamp(2rem,4vw,3rem);
  line-height:1.18;
  letter-spacing:-0.04em;
}

.services-final-content h2 span{
  color:var(--accent);
}

.services-final-content p{
  max-width:660px;

  margin:1.3rem auto 2rem;

  color:#b9bbc8;
  line-height:1.75;
}

.services-final-btn{
  color:#fff;

  background:var(--accent);

  border:1px solid var(--accent);

  box-shadow:0 10px 30px rgba(92,109,245,0.2);
}

.services-final-btn:hover{
  transform:translateY(-2px);

  background:rgba(92,109,245,0.1);
  color:#cbd0ff;

  border-color:rgba(92,109,245,0.85);

  box-shadow:0 0 24px rgba(92,109,245,0.25);
}


/* ================= ACCESSIBILITY ================= */

.services-capability-card:focus-visible,
.services-primary-btn:focus-visible,
.services-secondary-btn:focus-visible,
.services-final-btn:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
}


/* ================= SERVICES RESPONSIVE ================= */

@media(max-width:1000px){

  .services-capability-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .services-level-grid{
    grid-template-columns:1fr;
  }

  .services-level-card{
    max-width:720px;
    width:100%;
    margin:0 auto;
  }

  .services-engagement-process{
    grid-template-columns:repeat(2,1fr);
    gap:3rem 1rem;
  }

  .engagement-connector{
    display:none;
  }

}


@media(max-width:760px){

  .services-hub-container{
    width:min(100% - 2.4rem, 1240px);
  }

  .services-hub-section{
    padding:5rem 0;
  }

  .services-hub-hero{
    min-height:auto;
    padding:
      calc(var(--nav-h) + 5rem)
      0
      5rem;
  }

  .services-hub-hero h1{
    font-size:3.5rem;
  }

  .services-capability-grid{
    grid-template-columns:1fr;
  }

  .services-capability-card{
    min-height:300px;
  }

  .services-scale-track{
    grid-template-columns:1fr;
    gap:3rem;
    margin-top:3.5rem;
  }

  .services-scale-line{
    display:none;
  }

  .services-scale-stage{
    max-width:420px;
    margin:0 auto;
  }

  .services-engagement-process{
    grid-template-columns:1fr;
  }

  .engagement-step{
    max-width:420px;
    margin:0 auto;
  }

  .services-commitment-panel{
    padding:3.5rem 1.5rem;
  }

}


@media(max-width:520px){

  .services-hero-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .services-primary-btn,
  .services-secondary-btn{
    width:100%;
  }

  .services-capability-card{
    padding:1.6rem;
  }

}



/* RESPONSIVE */
@media(max-width:900px){
  .service-hero-glass{
    padding: 2rem 1.6rem 2.2rem;
    border-radius: 14px;
  }
  
  .nav-links li::after{
    display:none;
  }

  .home-section{
    padding:3.5rem 1.5rem;
  }
  
  .aims-pillars{
    padding:60px 1.5rem 20px;
  }

  .home-section h2{
    font-size:2rem;
  }

  .cap-grid,
  .level-grid{
    grid-template-columns:1fr;
  }

  /* HERO HEIGHT */
  .hero{
    height:60vh;
    min-height:480px;
  }
  
  .hero-text{
    padding-left:1.2rem;
  }

  /* AIMS LOGO REVEAL */
  .aims-main{
    font-size:3.2rem;
  }

  /* AIMS MEANING */
  .aims-line-1{
    display:inline-block
  }
  
  .aims-line-2{
    font-size:1.6rem;
  }

  /* SLIDE TITLES */
  .hero-text h1{
    font-size:3.2rem;
  }

  /* KICKER */
  .hero-text .kicker{
    font-size:1.2rem;
    letter-spacing:2px;
  }

  /* BODY COPY */
  .hero-text p{
    font-size:1.05rem;
    line-height:1.6;
  }

}



/* =========================================================
   AIMS — SHARED INDIVIDUAL SERVICE PAGE REDESIGN

   Applies to every page using:
   class="page service-page service-page-redesign"

   IMPORTANT:
   - Keep your existing staircase CSS.
   - Add this block at the END of your current CSS.
   - We will remove/clean the older #service-it rules later.
========================================================= */


/* =========================================================
   PAGE CONTAINER
========================================================= */

.service-page-redesign{
  max-width:1300px;
  margin:0 auto;
  padding:7.5rem 2rem 5rem;
}


/* =========================================================
   HERO
========================================================= */

.service-page-redesign .service-hero-redesign{
  display:grid;

  grid-template-columns:
    minmax(0,1.25fr)
    minmax(420px,.75fr);

  align-items:center;

  gap:3rem;

  margin-bottom:2.6rem;
}

.service-page-redesign .service-hero-copy{
  max-width:850px;
}

.service-page-redesign .service-eyebrow{
  display:block;
  margin-bottom:1rem;

  color:var(--accent);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
}

.service-page-redesign .service-hero-redesign h1{
  position:relative;
  display:inline-block;

  margin:0 0 1.2rem;
  padding-bottom:.8rem;

  color:#fff;
  font-size:clamp(3rem,5vw,5rem);
  font-weight:700;
  line-height:.98;
  letter-spacing:-.035em;
}

.service-page-redesign .service-hero-redesign h1::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;

  width:78px;
  height:3px;

  background:linear-gradient(
    90deg,
    var(--accent),
    rgba(92,109,245,.18)
  );

  border-radius:999px;

  box-shadow:
    0 0 12px rgba(92,109,245,.45);
}

.service-page-redesign .service-tagline{
  max-width:720px;
  margin:0;

  color:#cfd1df;
  font-size:1.08rem;
  line-height:1.75;
}


/* =========================================================
   HERO META GRID
========================================================= */

.service-page-redesign .service-hero-meta{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;

  background:rgba(255,255,255,.06);
}

.service-page-redesign .service-hero-meta span{
  display:flex;
  align-items:center;

  min-height:72px;
  padding:1rem 1.2rem;

  background:#121217;

  color:#bfc2d2;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.04em;

  transition:
    background .3s ease,
    color .3s ease;
}

.service-page-redesign .service-hero-meta span:hover{
  background:rgba(92,109,245,.08);
  color:#fff;
}


/* =========================================================
   LONG PURPLE LINE ABOVE STEPS
========================================================= */

.service-page-redesign .service-top-line{
  position:relative;
  width:100%;
  height:1px;
  margin:0 0 5rem;

  background:linear-gradient(
    90deg,
    transparent 0%,
    rgba(92,109,245,.28) 8%,
    rgba(92,109,245,.95) 50%,
    rgba(92,109,245,.28) 92%,
    transparent 100%
  );
}

.service-page-redesign .service-top-line::after{
  content:"";
  position:absolute;
  inset:-4px 12%;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,.22),
    transparent
  );

  filter:blur(7px);
  pointer-events:none;
}


/* =========================================================
   STEPS SPACING
   Existing staircase styling remains unchanged.
========================================================= */

.service-page-redesign .steps-wrapper{
  margin-bottom:2rem;
}


/* =========================================================
   OBJECTIVE / OVERVIEW
========================================================= */

.service-page-redesign .service-overview-redesign{
  position:relative;

  max-width:900px;
  margin:0 auto 3.5rem;
  padding:1.6rem 2.2rem;

  text-align:center;

  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);

  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.018),
    transparent
  );
}

.service-page-redesign .overview-kicker{
  display:block;
  margin-bottom:.8rem;

  color:#8f96c9;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.2em;
}

.service-page-redesign .service-overview-redesign .overview-text{
  max-width:820px;
  margin:0 auto;

  color:#d6d8e5;
  font-size:1.05rem;
  line-height:1.8;
}


/* =========================================================
   SHARED STAGE STRUCTURE
========================================================= */

.service-page-redesign .service-stage{
  position:relative;
  display:block;

  margin:0 0 5rem;
  padding:0;
}

.service-page-redesign .stage-heading{
  display:grid;
  grid-template-columns:70px minmax(0,720px);
  gap:1.5rem;
  align-items:start;

  margin-bottom:2.6rem;
}

.service-page-redesign .stage-number{
  padding-top:.15rem;

  color:rgba(255,255,255,.18);
  font-size:1.1rem;
  font-weight:700;
  letter-spacing:.12em;
}

.service-page-redesign .stage-kicker{
  display:block;
  margin-bottom:.55rem;

  font-size:.68rem;
  font-weight:700;
  letter-spacing:.18em;
}

.service-page-redesign .stage-heading h2{
  position:relative;
  display:inline-block;

  margin:0 0 .8rem;
  padding-bottom:.7rem;

  color:#fff;
  font-size:clamp(1.9rem,3vw,2.6rem);
  line-height:1.15;
}

.service-page-redesign .stage-heading h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;

  width:56px;
  height:2px;

  border-radius:999px;
}

.service-page-redesign .stage-heading p{
  max-width:680px;
  margin:0;

  color:#9fa2b3;
  font-size:.98rem;
  line-height:1.75;
}


/* =========================================================
   STAGE 1 — PROBLEMS / RED
========================================================= */

.service-page-redesign .stage-problems .stage-kicker{
  color:var(--step-red);
}

.service-page-redesign .stage-problems .stage-heading h2::after{
  background:linear-gradient(
    90deg,
    var(--step-red),
    transparent
  );

  box-shadow:0 0 10px rgba(236,87,87,.25);
}

.service-page-redesign .problem-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}

.service-page-redesign .problem-card{
  position:relative;
  min-height:210px;
  padding:2rem 2rem 2rem 5.2rem;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;

  background:
    linear-gradient(
      135deg,
      rgba(236,87,87,.045),
      rgba(18,18,23,.96) 45%
    );

  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    border-color .35s ease,
    box-shadow .35s ease;
}

.service-page-redesign .problem-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;

  width:2px;

  background:linear-gradient(
    180deg,
    transparent,
    var(--step-red),
    transparent
  );

  opacity:.7;
}

.service-page-redesign .problem-card:hover{
  transform:translateY(-4px);

  border-color:rgba(236,87,87,.25);

  box-shadow:
    0 18px 40px rgba(0,0,0,.28),
    0 0 25px rgba(236,87,87,.06);
}

.service-page-redesign .problem-index{
  position:absolute;
  right:1.4rem;
  top:1.2rem;

  color:rgba(255,255,255,.1);
  font-size:2rem;
  font-weight:700;
}

.service-page-redesign .problem-icon{
  position:absolute;
  left:1.8rem;
  top:2rem;

  width:42px;
  height:42px;

  display:flex;
  align-items:center;
  justify-content:center;

  border:1px solid rgba(236,87,87,.28);
  border-radius:50%;

  background:rgba(236,87,87,.06);

  color:var(--step-red);
  font-size:1.5rem;
  font-weight:500;

  box-shadow:
    0 0 16px rgba(236,87,87,.08);
}

.service-page-redesign .problem-card h3{
  margin:0 0 .7rem;

  color:#fff;
  font-size:1.12rem;
}

.service-page-redesign .problem-card p{
  max-width:470px;
  margin:0;

  color:#aeb0bf;
  font-size:.92rem;
  line-height:1.7;
}


/* =========================================================
   STAGE 2 — SOLUTIONS / ORANGE
========================================================= */

.service-page-redesign .stage-solutions .stage-kicker{
  color:var(--step-orange);
}

.service-page-redesign .stage-solutions .stage-heading h2::after{
  background:linear-gradient(
    90deg,
    var(--step-orange),
    transparent
  );

  box-shadow:0 0 10px rgba(245,166,82,.25);
}

.service-page-redesign .solution-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.2rem;
}

.service-page-redesign .solution-card{
  position:relative;
  min-height:390px;
  padding:2rem;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.07);
  border-radius:16px;

  background:
    linear-gradient(
      160deg,
      rgba(245,166,82,.045),
      rgba(18,18,23,.97) 38%
    );

  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    border-color .35s ease,
    box-shadow .35s ease;
}

.service-page-redesign .solution-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;

  width:100%;
  height:2px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(245,166,82,.7),
    transparent
  );

  opacity:.45;
}

.service-page-redesign .solution-card:hover{
  transform:translateY(-6px);

  border-color:rgba(245,166,82,.24);

  box-shadow:
    0 22px 45px rgba(0,0,0,.32),
    0 0 28px rgba(245,166,82,.06);
}

.service-page-redesign .solution-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;

  margin-bottom:2.2rem;
}

.service-page-redesign .solution-number{
  color:rgba(255,255,255,.17);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.12em;
}

.service-page-redesign .solution-icon{
  width:42px;
  height:42px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;

  border:1px solid rgba(245,166,82,.22);
  border-radius:10px;

  background:rgba(245,166,82,.05);
}

.service-page-redesign .solution-icon span{
  display:block;

  width:17px;
  height:2px;

  background:var(--step-orange);

  box-shadow:
    0 0 6px rgba(245,166,82,.35);
}

.service-page-redesign .solution-icon span:nth-child(2){
  width:11px;
}

.service-page-redesign .solution-card h3{
  min-height:54px;
  margin:0 0 .7rem;

  color:#fff;
  font-size:1.16rem;
  line-height:1.3;
}

.service-page-redesign .solution-intro{
  min-height:72px;
  margin:0 0 1.4rem;

  color:#9699aa;
  font-size:.9rem;
  line-height:1.65;
}

.service-page-redesign .solution-card ul{
  list-style:none;
  margin:0;
  padding:1.3rem 0 0;

  border-top:1px solid rgba(255,255,255,.06);
}

.service-page-redesign .solution-card li{
  position:relative;

  margin:0 0 .8rem;
  padding-left:1.25rem;

  color:#d1d3de;
  font-size:.88rem;
  line-height:1.55;
}

.service-page-redesign .solution-card li::before{
  content:"";
  position:absolute;
  left:0;
  top:.58em;

  width:5px;
  height:5px;

  border-radius:50%;

  background:var(--step-orange);

  box-shadow:
    0 0 7px rgba(245,166,82,.55);
}


/* =========================================================
   STAGE 3 — APPROACH / GOLD
========================================================= */

.service-page-redesign .stage-approach .stage-kicker{
  color:var(--step-yellow);
}

.service-page-redesign .stage-approach .stage-heading h2::after{
  background:linear-gradient(
    90deg,
    var(--step-yellow),
    transparent
  );

  box-shadow:0 0 10px rgba(246,223,126,.22);
}

.service-page-redesign .approach-track{
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.4rem;

  padding-top:2.6rem;
}

.service-page-redesign .approach-line{
  position:absolute;
  left:8%;
  right:8%;
  top:20px;

  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(246,223,126,.2),
    rgba(246,223,126,.75),
    rgba(246,223,126,.2),
    transparent
  );
}

.service-page-redesign .approach-card{
  position:relative;
  padding-top:1.2rem;
}

.service-page-redesign .approach-node{
  position:absolute;
  left:50%;
  top:-2.6rem;

  width:42px;
  height:42px;

  transform:translateX(-50%);

  display:flex;
  align-items:center;
  justify-content:center;

  border:1px solid rgba(246,223,126,.45);
  border-radius:50%;

  background:#141418;

  box-shadow:
    0 0 18px rgba(246,223,126,.1);
}

.service-page-redesign .approach-node span{
  color:var(--step-yellow);
  font-size:.68rem;
  font-weight:700;
}

.service-page-redesign .approach-content{
  min-height:285px;
  padding:2rem;

  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;

  background:
    linear-gradient(
      180deg,
      rgba(246,223,126,.035),
      rgba(18,18,23,.96) 35%
    );

  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    border-color .35s ease;
}

.service-page-redesign .approach-card:hover .approach-content{
  transform:translateY(-4px);
  border-color:rgba(246,223,126,.22);
}

.service-page-redesign .approach-level{
  display:block;
  margin-bottom:1rem;

  color:var(--step-yellow);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.16em;
}

.service-page-redesign .approach-content h3{
  margin:0 0 .8rem;

  color:#fff;
  font-size:1.18rem;
}

.service-page-redesign .approach-content > p{
  min-height:100px;
  margin:0;

  color:#a8aab9;
  font-size:.91rem;
  line-height:1.7;
}

.service-page-redesign .approach-focus{
  margin-top:1.4rem;
  padding-top:1.2rem;

  border-top:1px solid rgba(255,255,255,.06);
}

.service-page-redesign .approach-focus span{
  display:block;
  margin-bottom:.4rem;

  color:#777a89;
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.service-page-redesign .approach-focus strong{
  color:#d7d5c4;
  font-size:.8rem;
  font-weight:500;
}


/* =========================================================
   STAGE 4 — OUTCOMES / GREEN
========================================================= */

.service-page-redesign .stage-outcomes .stage-kicker{
  color:var(--step-green);
}

.service-page-redesign .stage-outcomes .stage-heading h2::after{
  background:linear-gradient(
    90deg,
    var(--step-green),
    transparent
  );

  box-shadow:0 0 10px rgba(102,201,146,.22);
}

.service-page-redesign .outcome-grid-redesign{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
}

.service-page-redesign .outcome-card{
  position:relative;
  min-height:260px;
  padding:2rem 1.7rem;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;

  background:
    linear-gradient(
      160deg,
      rgba(102,201,146,.045),
      rgba(18,18,23,.97) 42%
    );

  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    border-color .35s ease,
    box-shadow .35s ease;
}

.service-page-redesign .outcome-card:hover{
  transform:translateY(-5px);

  border-color:rgba(102,201,146,.25);

  box-shadow:
    0 20px 40px rgba(0,0,0,.28),
    0 0 25px rgba(102,201,146,.05);
}

.service-page-redesign .outcome-number{
  position:absolute;
  right:1.3rem;
  top:1.2rem;

  color:rgba(255,255,255,.1);
  font-size:1.5rem;
  font-weight:700;
}

.service-page-redesign .outcome-check{
  width:38px;
  height:38px;

  display:flex;
  align-items:center;
  justify-content:center;

  margin-bottom:1.5rem;

  border:1px solid rgba(102,201,146,.28);
  border-radius:50%;

  background:rgba(102,201,146,.05);

  color:var(--step-green);
  font-size:1rem;

  box-shadow:
    0 0 15px rgba(102,201,146,.08);
}

.service-page-redesign .outcome-card h3{
  margin:0 0 .7rem;

  color:#fff;
  font-size:1.05rem;
}

.service-page-redesign .outcome-card p{
  margin:0;

  color:#a4a7b5;
  font-size:.87rem;
  line-height:1.7;
}


/* =========================================================
   RELATED SERVICES
========================================================= */

.service-page-redesign .service-related-redesign{
  display:grid;
  grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);
  gap:4rem;
  align-items:start;

  margin:1rem 0 7rem;
  padding:4rem 0;

  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}

.service-page-redesign .related-kicker{
  display:block;
  margin-bottom:.6rem;

  color:var(--accent);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.18em;
}

.service-page-redesign .related-heading h2{
  margin:0 0 .8rem;

  color:#fff;
  font-size:2rem;
}

.service-page-redesign .related-heading p{
  max-width:420px;
  margin:0;

  color:#989baa;
  font-size:.92rem;
  line-height:1.7;
}

.service-page-redesign .related-service-grid{
  display:grid;
  gap:.8rem;
}

.service-page-redesign .related-service-card{
  position:relative;

  display:grid;
  grid-template-columns:45px 1fr 30px;
  gap:1rem;
  align-items:center;

  padding:1.5rem;

  border:1px solid rgba(255,255,255,.07);
  border-radius:12px;

  background:rgba(255,255,255,.018);

  cursor:pointer;

  transition:
    transform .3s cubic-bezier(.22,1,.36,1),
    border-color .3s ease,
    background .3s ease;
}

.service-page-redesign .related-service-card:hover{
  transform:translateX(5px);

  border-color:rgba(92,109,245,.28);

  background:rgba(92,109,245,.035);
}

.service-page-redesign .related-number{
  color:rgba(255,255,255,.18);
  font-size:.72rem;
  font-weight:700;
}

.service-page-redesign .related-category{
  display:block;
  margin-bottom:.3rem;

  color:var(--accent);
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.15em;
}

.service-page-redesign .related-service-card h3{
  margin:0 0 .3rem;

  color:#fff;
  font-size:1rem;
}

.service-page-redesign .related-service-card p{
  margin:0;

  color:#9396a5;
  font-size:.82rem;
  line-height:1.5;
}

.service-page-redesign .related-arrow{
  color:var(--accent);
  font-size:1.25rem;

  transition:transform .3s ease;
}

.service-page-redesign .related-service-card:hover .related-arrow{
  transform:translateX(4px);
}


/* =========================================================
   FINAL CTA
========================================================= */

.service-page-redesign .service-final-cta{
  position:relative;

  max-width:1050px;
  margin:0 auto;
  padding:4.5rem 2rem;

  overflow:hidden;

  text-align:center;

  border:1px solid rgba(92,109,245,.18);
  border-radius:18px;

  background:
    radial-gradient(
      circle at 50% 0%,
      rgba(92,109,245,.11),
      transparent 48%
    ),
    rgba(255,255,255,.012);
}

.service-page-redesign .service-final-cta::before{
  content:"";
  position:absolute;
  left:15%;
  right:15%;
  top:0;

  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    var(--accent),
    transparent
  );

  box-shadow:
    0 0 16px rgba(92,109,245,.35);
}

.service-page-redesign .cta-kicker{
  display:block;
  margin-bottom:.8rem;

  color:var(--accent);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.2em;
}

.service-page-redesign .service-final-cta h2{
  margin:0 0 .8rem;

  color:#fff;
  font-size:clamp(2rem,4vw,3rem);
}

.service-page-redesign .service-final-cta p{
  max-width:650px;
  margin:0 auto 1.8rem;

  color:#aeb0bf;
  font-size:.95rem;
  line-height:1.7;
}

.service-page-redesign .service-cta-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;

  padding:.85rem 1.6rem;

  border:1px solid rgba(92,109,245,.55);
  border-radius:999px;

  background:rgba(92,109,245,.1);

  color:#fff;
  font:inherit;
  font-size:.9rem;
  font-weight:600;

  cursor:pointer;

  transition:
    background .3s ease,
    border-color .3s ease,
    box-shadow .3s ease;
}

.service-page-redesign .service-cta-button span{
  color:var(--accent);

  transition:
    transform .3s ease,
    color .3s ease;
}

.service-page-redesign .service-cta-button:hover{
  background:var(--accent);
  border-color:var(--accent);

  box-shadow:
    0 8px 28px rgba(92,109,245,.22);
}

.service-page-redesign .service-cta-button:hover span{
  color:#fff;
  transform:translateX(4px);
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

.service-page-redesign .related-service-card:focus-visible,
.service-page-redesign .service-cta-button:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media (max-width:1050px){

  .service-page-redesign .service-hero-redesign{
    grid-template-columns:1fr;
    gap:2rem;
  }

  .service-page-redesign .service-hero-meta{
    max-width:600px;
  }

  .service-page-redesign .solution-grid{
    grid-template-columns:1fr 1fr;
  }

  .service-page-redesign .solution-card:last-child{
    grid-column:1 / -1;
  }

  .service-page-redesign .outcome-grid-redesign{
    grid-template-columns:1fr 1fr;
  }

  .service-page-redesign .service-related-redesign{
    grid-template-columns:1fr;
    gap:2rem;
  }

}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media (max-width:760px){

  .service-page-redesign{
    padding:
      calc(var(--nav-h) + 3rem)
      1.25rem
      4rem;
  }

  .service-page-redesign .service-hero-redesign h1{
    font-size:clamp(2.5rem,12vw,3.5rem);
  }

  .service-page-redesign .service-hero-meta{
    grid-template-columns:1fr 1fr;
  }

  .service-page-redesign .service-top-line{
    margin-bottom:3rem;
  }

  .service-page-redesign .stage-heading{
    grid-template-columns:1fr;
    gap:.5rem;
  }

  .service-page-redesign .stage-number{
    font-size:.75rem;
  }

  .service-page-redesign .problem-grid,
  .service-page-redesign .solution-grid,
  .service-page-redesign .outcome-grid-redesign{
    grid-template-columns:1fr;
  }

  .service-page-redesign .solution-card:last-child{
    grid-column:auto;
  }

  .service-page-redesign .problem-card{
    padding:
      4.8rem
      1.5rem
      1.7rem;
  }

  .service-page-redesign .problem-icon{
    left:1.5rem;
    top:1.4rem;
  }

  .service-page-redesign .approach-track{
    display:block;
    padding:
      0
      0
      0
      2.5rem;
  }

  .service-page-redesign .approach-line{
    left:18px;
    right:auto;
    top:0;
    bottom:0;

    width:1px;
    height:auto;

    background:linear-gradient(
      180deg,
      transparent,
      rgba(246,223,126,.7),
      transparent
    );
  }

  .service-page-redesign .approach-card{
    margin-bottom:1rem;
    padding-top:0;
  }

  .service-page-redesign .approach-node{
    left:-2.5rem;
    top:1.5rem;

    width:36px;
    height:36px;

    transform:none;
  }

  .service-page-redesign .approach-content > p{
    min-height:auto;
  }

  .service-page-redesign .related-service-card{
    grid-template-columns:35px 1fr 20px;
  }

}


/* =========================================================
   RESPONSIVE — SMALL MOBILE
========================================================= */

@media (max-width:480px){

  .service-page-redesign .service-hero-meta{
    grid-template-columns:1fr;
  }

  .service-page-redesign .service-hero-meta span{
    min-height:54px;
  }

  .service-page-redesign .service-overview-redesign{
    padding:1.5rem .5rem;
  }

  .service-page-redesign .service-final-cta{
    padding:3.5rem 1.3rem;
  }

}

/* =========================================================
   REQUEST INFORMATION — PREMIUM CONVERSION PAGE
========================================================= */

.request-page-premium{
  min-height:100vh;

  padding:
    calc(var(--nav-h) + 1rem)
    2rem
    6rem;

  background:
    radial-gradient(
      circle at 80% 5%,
      rgba(92,109,245,.10),
      transparent 30%
    ),
    radial-gradient(
      circle at 8% 85%,
      rgba(92,109,245,.045),
      transparent 30%
    ),
    var(--bg-section);
}


/* =========================================================
   PAGE SHELL
========================================================= */

.request-page-shell{
  position:relative;

  display:grid;
  grid-template-columns:minmax(340px,.8fr) minmax(520px,1.2fr);

  max-width:1120px;
  margin:0 auto;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.07);
  border-radius:22px;

  background:rgba(17,17,22,.92);

  box-shadow:
    0 30px 80px rgba(0,0,0,.35),
    0 0 40px rgba(92,109,245,.05);
}

.request-page-shell::before{
  content:"";

  position:absolute;
  left:8%;
  right:8%;
  top:0;

  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,.95),
    transparent
  );

  box-shadow:
    0 0 16px rgba(92,109,245,.35);

  z-index:4;
}


/* =========================================================
   LEFT PANEL
========================================================= */

.request-intro-panel{
  position:relative;

  padding:3.25rem 3rem;

  border-right:1px solid rgba(255,255,255,.06);

  background:
    radial-gradient(
      circle at 0% 0%,
      rgba(92,109,245,.12),
      transparent 38%
    ),
    linear-gradient(
      180deg,
      rgba(255,255,255,.018),
      transparent
    );
}

.request-intro-panel::after{
  content:"";

  position:absolute;

  right:-1px;
  top:10%;
  bottom:10%;

  width:1px;

  background:linear-gradient(
    180deg,
    transparent,
    rgba(92,109,245,.45),
    transparent
  );
}


/* EYEBROW */

.request-eyebrow{
  display:block;

  margin-bottom:1rem;

  color:var(--accent);

  font-size:.68rem;
  font-weight:700;
  letter-spacing:.20em;
}


/* MAIN HEADING */

.request-intro-panel h1{
  position:relative;

  max-width:390px;

  margin:0 0 1.4rem;
  padding-bottom:.9rem;

  color:#ffffff;

  font-size:clamp(2.8rem,4vw,4rem);
  line-height:.98;
  letter-spacing:-.04em;
}

.request-intro-panel h1 span{
  color:var(--accent);
}

.request-intro-panel h1::after{
  content:"";

  position:absolute;

  left:0;
  bottom:0;

  width:72px;
  height:3px;

  border-radius:999px;

  background:linear-gradient(
    90deg,
    var(--accent),
    transparent
  );

  box-shadow:
    0 0 12px rgba(92,109,245,.4);
}


/* LEAD */

.request-lead{
  max-width:500px;

  margin:0 0 3rem;

  color:#b5b8c8;

  font-size:1rem;
  line-height:1.8;
}


/* =========================================================
   VALUE LIST
========================================================= */

.request-value-list{
  display:grid;
  gap:1.6rem;
}

.request-value-item{
  display:grid;

  grid-template-columns:42px 1fr;

  gap:1rem;

  align-items:start;
}

.request-value-icon{
  width:38px;
  height:38px;

  display:flex;
  align-items:center;
  justify-content:center;

  border:1px solid rgba(92,109,245,.28);
  border-radius:50%;

  background:rgba(92,109,245,.06);

  color:var(--accent);

  font-size:.66rem;
  font-weight:700;
  letter-spacing:.08em;

  box-shadow:
    0 0 15px rgba(92,109,245,.08);
}

.request-value-item h3{
  margin:0 0 .35rem;

  color:#ffffff;

  font-size:.98rem;
}

.request-value-item p{
  margin:0;

  color:#8e91a2;

  font-size:.84rem;
  line-height:1.65;
}


/* =========================================================
   TRUST PANEL
========================================================= */

.request-trust-panel{
  margin-top:3.2rem;
  padding-top:2rem;

  border-top:1px solid rgba(255,255,255,.06);
}

.request-trust-kicker{
  display:block;

  margin-bottom:.9rem;

  color:#74778a;

  font-size:.62rem;
  font-weight:700;
  letter-spacing:.18em;
}

.request-trust-tags{
  display:flex;
  flex-wrap:wrap;

  gap:.55rem;
}

.request-trust-tags span{
  padding:.45rem .7rem;

  border:1px solid rgba(92,109,245,.14);
  border-radius:999px;

  background:rgba(92,109,245,.035);

  color:#aeb2d2;

  font-size:.68rem;
  font-weight:600;
}


/* =========================================================
   DIRECT EMAIL
========================================================= */

.request-direct-contact{
  margin-top:2.4rem;

  display:flex;
  flex-direction:column;

  gap:.4rem;
}

.request-direct-contact > span{
  color:#747787;

  font-size:.73rem;
}

.request-direct-contact a{
  width:fit-content;

  display:inline-flex;
  align-items:center;

  gap:.55rem;

  color:#dce0ff;

  text-decoration:none;

  font-size:.84rem;
  font-weight:600;
}

.request-direct-contact a span{
  color:var(--accent);

  transition:transform .25s ease;
}

.request-direct-contact a:hover span{
  transform:translateX(4px);
}


/* =========================================================
   RIGHT FORM PANEL
========================================================= */

.request-form-panel{
  padding:3.25rem 3.2rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.012),
      transparent 35%
    );
}

.request-form-heading{
  margin-bottom:2.8rem;
}

.request-form-step{
  display:block;

  margin-bottom:.7rem;

  color:var(--accent);

  font-size:.66rem;
  font-weight:700;
  letter-spacing:.18em;
}

.request-form-heading h2{
  margin:0 0 .65rem;

  color:#ffffff;

  font-size:2rem;
  line-height:1.2;
}

.request-form-heading p{
  margin:0;

  color:#777a8a;

  font-size:.8rem;
}


/* =========================================================
   FORM GRID
========================================================= */

.request-page-premium .form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));

  gap:1.7rem 1.4rem;
}

.request-page-premium .form-field{
  display:block;
}

.request-page-premium .form-field-full{
  margin-top:1.8rem;
}


/* LABELS */

.request-page-premium label{
  display:block;

  margin-bottom:.55rem;

  color:#b7bad0;

  font-size:.73rem;
  font-weight:600;
}


/* =========================================================
   INPUT SHELL
========================================================= */

.request-page-premium .input-shell{
  position:relative;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;

  background:#0e0e12;

  transition:
    border-color .25s ease,
    box-shadow .25s ease,
    background .25s ease;
}

.request-page-premium .input-shell::after{
  content:"";

  position:absolute;

  left:50%;
  bottom:0;

  width:100%;
  height:1px;

  transform:
    translateX(-50%)
    scaleX(0);

  transform-origin:center;

  background:var(--accent);

  box-shadow:
    0 0 9px rgba(92,109,245,.45);

  transition:
    transform .3s cubic-bezier(.22,1,.36,1);
}

.request-page-premium .input-shell:focus-within{
  border-color:rgba(92,109,245,.4);

  background:#101016;

  box-shadow:
    0 0 0 3px rgba(92,109,245,.035),
    0 0 24px rgba(92,109,245,.04);
}

.request-page-premium .input-shell:focus-within::after{
  transform:
    translateX(-50%)
    scaleX(1);
}


/* INPUTS */

.request-page-premium input,
.request-page-premium select,
.request-page-premium textarea{
  width:100%;

  border:none;
  outline:none;

  background:transparent;

  color:#ffffff;

  font:inherit;

  font-size:.86rem;
}

.request-page-premium input,
.request-page-premium select{
  min-height:48px;

  padding:.8rem 1rem;
}

.request-page-premium textarea{
  min-height:165px;

  padding:1rem;

  resize:vertical;

  line-height:1.65;
}

.request-page-premium input::placeholder,
.request-page-premium textarea::placeholder{
  color:#585b67;
}


/* SELECT */

.request-page-premium select{
  color:#c6c8d4;
  cursor:pointer;
}

.request-page-premium select option{
  background:#111116;
  color:#ffffff;
}


/* =========================================================
   CONTEXT NOTE
========================================================= */

.request-context-note{
  display:flex;
  align-items:flex-start;

  gap:.8rem;

  margin-top:1.3rem;
  padding:1rem 1.1rem;

  border:1px solid rgba(92,109,245,.10);
  border-radius:10px;

  background:rgba(92,109,245,.025);
}

.context-icon{
  flex:0 0 auto;

  width:22px;
  height:22px;

  display:flex;
  align-items:center;
  justify-content:center;

  border:1px solid rgba(92,109,245,.28);
  border-radius:50%;

  color:var(--accent);

  font-size:.68rem;
  font-weight:700;
}

.request-context-note p{
  margin:0;

  color:#858899;

  font-size:.75rem;
  line-height:1.55;
}


/* =========================================================
   SUBMIT AREA
========================================================= */

.request-submit-row{
  display:flex;

  align-items:center;
  justify-content:space-between;

  gap:1.5rem;

  margin-top:2rem;
}


/* BUTTON */

.request-submit-btn{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  gap:1rem;

  min-width:190px;

  padding:.9rem 1.5rem;

  border:1px solid rgba(92,109,245,.7);
  border-radius:999px;

  background:linear-gradient(
    90deg,
    rgba(92,109,245,.88),
    rgba(137,88,244,.92)
  );

  color:#ffffff;

  font:inherit;

  font-size:.82rem;
  font-weight:700;

  cursor:pointer;

  box-shadow:
    0 8px 24px rgba(92,109,245,.18),
    0 0 0 1px rgba(255,255,255,.03) inset;

  transition:
    transform .3s cubic-bezier(.22,1,.36,1),
    box-shadow .3s ease,
    filter .3s ease;
}

.request-submit-btn:hover{
  transform:translateY(-2px);

  filter:brightness(1.08);

  box-shadow:
    0 13px 34px rgba(92,109,245,.28),
    0 0 28px rgba(92,109,245,.12);
}

.request-submit-arrow{
  transition:
    transform .3s cubic-bezier(.22,1,.36,1);
}

.request-submit-btn:hover .request-submit-arrow{
  transform:translateX(4px);
}


/* RESPONSE NOTE */

.request-response-note{
  display:flex;
  align-items:center;

  gap:.55rem;

  color:#737686;

  font-size:.72rem;
}

.response-dot{
  width:6px;
  height:6px;

  border-radius:50%;

  background:var(--step-green);

  box-shadow:
    0 0 8px rgba(102,201,146,.55);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:1000px){

  .request-page-shell{
    grid-template-columns:1fr;
  }

  .request-intro-panel{
    border-right:none;
    border-bottom:1px solid rgba(255,255,255,.06);
  }

  .request-intro-panel::after{
    display:none;
  }

}


@media(max-width:700px){

  .request-page-premium{
    padding:
      calc(var(--nav-h) + 2.5rem)
      1rem
      4rem;
  }

  .request-intro-panel,
  .request-form-panel{
    padding:2.5rem 1.4rem;
  }

  .request-page-premium .form-grid{
    grid-template-columns:1fr;
  }

  .request-submit-row{
    align-items:flex-start;
    flex-direction:column;
  }

  .request-submit-btn{
    width:100%;
  }

}

/*SUBMIT ERROR*/
.request-inline-error{
  margin-top:1.5rem;
  padding:1rem 1.2rem;

  border:1px solid rgba(236,87,87,.28);
  border-radius:10px;

  background:rgba(236,87,87,.05);

  color:#e3a6a6;

  font-size:.8rem;
  line-height:1.6;
}

/* =========================================================
   AIMS — REQUEST SUCCESS PAGE
========================================================= */

.request-success-page{
  position:relative;

  width:100%;
  max-width:none;

  min-height:100vh;

  margin:0;
  padding:2rem;

  box-sizing:border-box;

  overflow:hidden;

  background:
    radial-gradient(
      circle at 50% 25%,
      rgba(92,109,245,.10),
      transparent 34%
    ),
    radial-gradient(
      circle at 50% 80%,
      rgba(102,201,146,.035),
      transparent 30%
    ),
    var(--bg-section);
}

/*
   IMPORTANT:
   .page normally controls whether pages are visible.

   We only activate flex centering when this page
   has the active class.
*/

.request-success-page.active{
  display:flex;
  min-height: 100vh;

  align-items:center;
  justify-content:center;
}


/* =========================================================
   MAIN SUCCESS CONTAINER
========================================================= */

.request-success-container{
  position:relative;
  z-index:2;

  width:min(100%, 880px);

  margin:0 auto;

  padding:4.5rem 3.5rem;

  box-sizing:border-box;

  text-align:center;

  border:1px solid rgba(255,255,255,.07);
  border-radius:24px;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.025),
      rgba(255,255,255,.008)
    ),
    rgba(16,16,21,.88);

  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);

  box-shadow:
    0 30px 80px rgba(0,0,0,.38),
    0 0 45px rgba(92,109,245,.055);

  animation:
    requestSuccessContainerIn
    .7s
    cubic-bezier(.22,1,.36,1)
    both;
}


/* TOP ACCENT LINE */

.request-success-container::before{
  content:"";

  position:absolute;

  left:12%;
  right:12%;
  top:0;

  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,.95),
    transparent
  );

  box-shadow:
    0 0 16px rgba(92,109,245,.38);
}


@keyframes requestSuccessContainerIn{

  from{
    opacity:0;
    transform:
      translateY(20px)
      scale(.985);
  }

  to{
    opacity:1;
    transform:
      translateY(0)
      scale(1);
  }

}


/* =========================================================
   SUCCESS VISUAL
========================================================= */

.request-success-visual{
  position:relative;

  width:130px;
  height:130px;

  margin:0 auto 2rem;

  display:flex;
  align-items:center;
  justify-content:center;
}


.request-form-panel{
  position:relative;

  padding:4rem 3.8rem;

  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.012),
      transparent 35%
    );
}

.request-form-panel::after{
  content:"AIMS";

  position:absolute;

  left:50%;
  bottom:2rem;

  transform:translateX(-50%);

  color:transparent;

  font-size:clamp(4rem,5vw,5.5rem);
  font-weight:800;
  line-height:1;

  letter-spacing:.16em;

  -webkit-text-stroke:
    1px
    rgba(112,123,255,.13);

  opacity:.58;

  text-shadow:
    0 0 24px rgba(92,109,245,.055);

  pointer-events:none;
  user-select:none;

  white-space:nowrap;
}

/* ORBITS */

.success-orbit{
  position:absolute;

  left:50%;
  top:50%;

  border-radius:50%;

  transform:
    translate(-50%,-50%)
    scale(.75);

  opacity:0;

  animation:
    successOrbitIn
    1s
    cubic-bezier(.22,1,.36,1)
    forwards;
}

.success-orbit-outer{
  width:128px;
  height:128px;

  border:1px solid rgba(92,109,245,.16);

  box-shadow:
    0 0 28px rgba(92,109,245,.07);

  animation-delay:.15s;
}

.success-orbit-inner{
  width:94px;
  height:94px;

  border:1px solid rgba(102,201,146,.22);

  box-shadow:
    0 0 24px rgba(102,201,146,.07);

  animation-delay:.25s;
}


@keyframes successOrbitIn{

  from{
    opacity:0;
    transform:
      translate(-50%,-50%)
      scale(.7);
  }

  to{
    opacity:1;
    transform:
      translate(-50%,-50%)
      scale(1);
  }

}


/* =========================================================
   CHECKMARK
========================================================= */

.success-check{
  position:relative;
  z-index:2;

  width:68px;
  height:68px;

  display:flex;
  align-items:center;
  justify-content:center;

  border:1px solid rgba(102,201,146,.42);
  border-radius:50%;

  background:
    radial-gradient(
      circle,
      rgba(102,201,146,.15),
      rgba(102,201,146,.035)
    );

  color:var(--step-green);

  box-shadow:
    0 0 22px rgba(102,201,146,.15),
    0 0 50px rgba(102,201,146,.06);

  transform:scale(.65);
  opacity:0;

  animation:
    successCheckIn
    .65s
    .25s
    cubic-bezier(.22,1,.36,1)
    forwards;
}

.success-check svg{
  width:34px;
  height:34px;
}

.success-check path{
  stroke-dasharray:45;
  stroke-dashoffset:45;

  animation:
    successCheckDraw
    .6s
    .65s
    ease
    forwards;
}


@keyframes successCheckIn{

  from{
    opacity:0;
    transform:scale(.65);
  }

  to{
    opacity:1;
    transform:scale(1);
  }

}


@keyframes successCheckDraw{

  to{
    stroke-dashoffset:0;
  }

}


/* =========================================================
   EYEBROW
========================================================= */

.request-success-eyebrow{
  display:block;

  margin-bottom:.9rem;

  color:var(--step-green);

  font-size:.68rem;
  font-weight:700;
  letter-spacing:.22em;

  opacity:0;
  transform:translateY(8px);

  animation:
    requestSuccessTextIn
    .55s
    .55s
    ease
    forwards;
}


/* =========================================================
   TITLE
========================================================= */

.request-success-page h1{
  max-width:720px;

  margin:0 auto 1.25rem;

  color:#ffffff;

  font-size:clamp(2.5rem,5vw,4.2rem);
  font-weight:700;
  line-height:1.05;
  letter-spacing:-.035em;

  opacity:0;
  transform:translateY(10px);

  animation:
    requestSuccessTextIn
    .6s
    .68s
    ease
    forwards;
}

.request-success-page h1 .accent{
  color:var(--accent);

  text-shadow:
    0 0 16px rgba(92,109,245,.18);
}


/* =========================================================
   INTRO
========================================================= */

.request-success-intro{
  max-width:650px;

  margin:0 auto;

  color:#b6b9c8;

  font-size:1rem;
  line-height:1.8;

  opacity:0;
  transform:translateY(10px);

  animation:
    requestSuccessTextIn
    .6s
    .8s
    ease
    forwards;
}


@keyframes requestSuccessTextIn{

  to{
    opacity:1;
    transform:translateY(0);
  }

}


/* =========================================================
   DIVIDER
========================================================= */

.request-success-divider{
  width:100%;
  max-width:620px;
  height:1px;

  margin:2.5rem auto;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,.45),
    transparent
  );

  box-shadow:
    0 0 12px rgba(92,109,245,.10);
}


/* =========================================================
   NEXT STEP PANEL
========================================================= */

.request-next-step{
  max-width:680px;

  margin:0 auto;

  padding:1.8rem 2rem;

  border-top:1px solid rgba(255,255,255,.055);
  border-bottom:1px solid rgba(255,255,255,.055);

  background:linear-gradient(
    90deg,
    transparent,
    rgba(92,109,245,.025),
    transparent
  );
}

.request-next-label{
  display:block;

  margin-bottom:.75rem;

  color:var(--accent);

  font-size:.64rem;
  font-weight:700;
  letter-spacing:.19em;
}

.request-next-step p{
  max-width:590px;

  margin:0 auto;

  color:#c4c6d2;

  font-size:.9rem;
  line-height:1.75;
}


/* =========================================================
   RECEIVED STATUS
========================================================= */

.request-success-status{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  gap:.6rem;

  margin-top:1.7rem;

  color:#858898;

  font-size:.76rem;
}

.success-status-dot{
  width:7px;
  height:7px;

  border-radius:50%;

  background:var(--step-green);

  box-shadow:
    0 0 8px rgba(102,201,146,.60);

  animation:
    successStatusPulse
    2.2s
    ease-in-out
    infinite;
}


@keyframes successStatusPulse{

  0%,
  100%{
    opacity:.55;
    box-shadow:
      0 0 5px rgba(102,201,146,.35);
  }

  50%{
    opacity:1;
    box-shadow:
      0 0 12px rgba(102,201,146,.75);
  }

}


/* =========================================================
   ACTION BUTTONS
========================================================= */

.request-success-actions{
  display:flex;

  align-items:center;
  justify-content:center;

  flex-wrap:wrap;

  gap:1rem;

  margin-top:2.6rem;
}


/* PRIMARY */

.request-success-primary{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  gap:.8rem;

  min-width:170px;

  padding:.9rem 1.6rem;

  border:1px solid rgba(92,109,245,.55);
  border-radius:999px;

  background:rgba(92,109,245,.10);

  color:#ffffff;

  font:inherit;
  font-size:.82rem;
  font-weight:600;

  cursor:pointer;

  box-shadow:
    0 8px 24px rgba(0,0,0,.14);

  transition:
    background .3s ease,
    border-color .3s ease,
    box-shadow .3s ease;
}

.request-success-primary span{
  color:var(--accent);

  transition:
    transform .3s cubic-bezier(.22,1,.36,1),
    color .3s ease;
}

.request-success-primary:hover{
  background:var(--accent);
  border-color:var(--accent);

  box-shadow:
    0 10px 30px rgba(92,109,245,.20);
}

.request-success-primary:hover span{
  color:#ffffff;
  transform:translateX(4px);
}


/* SECONDARY */

.request-success-secondary{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  min-width:170px;

  padding:.9rem 1.5rem;

  border:1px solid rgba(255,255,255,.075);
  border-radius:999px;

  background:rgba(255,255,255,.018);

  color:#9da0af;

  font:inherit;
  font-size:.80rem;
  font-weight:600;

  cursor:pointer;

  transition:
    color .3s ease,
    border-color .3s ease,
    background .3s ease;
}

.request-success-secondary:hover{
  color:#ffffff;

  border-color:rgba(92,109,245,.25);

  background:rgba(92,109,245,.035);
}


/* =========================================================
   DECORATIVE BACKGROUND
========================================================= */

.request-success-background{
  position:absolute;
  inset:0;

  overflow:hidden;

  pointer-events:none;

  z-index:0;
}


/* CENTRAL SOFT GLOW */

.request-success-background::before{
  content:"";

  position:absolute;

  left:50%;
  top:42%;

  width:700px;
  height:700px;

  transform:translate(-50%,-50%);

  border-radius:50%;

  background:
    radial-gradient(
      circle,
      rgba(92,109,245,.045),
      transparent 68%
    );

  filter:blur(20px);
}


/* GRID LINES */

.success-grid-line{
  position:absolute;

  left:10%;
  right:10%;

  height:1px;

  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.025),
    transparent
  );
}

.success-grid-line-1{
  top:28%;
}

.success-grid-line-2{
  top:50%;
}

.success-grid-line-3{
  top:72%;
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

.request-success-primary:focus-visible,
.request-success-secondary:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:700px){

  .request-success-page{
    padding:1rem;
  }

  .request-success-container{
    padding:3.2rem 1.4rem;
    border-radius:18px;
  }

  .request-success-visual{
    width:110px;
    height:110px;
  }

  .success-orbit-outer{
    width:108px;
    height:108px;
  }

  .success-orbit-inner{
    width:82px;
    height:82px;
  }

  .success-check{
    width:60px;
    height:60px;
  }

  .request-next-step{
    padding:1.5rem .8rem;
  }

  .request-success-actions{
    width:100%;
    flex-direction:column;
  }

  .request-success-primary,
  .request-success-secondary{
    width:100%;
  }

}


@media(max-width:420px){

  .request-success-page h1{
    font-size:2.3rem;
  }

  .request-success-intro{
    font-size:.9rem;
  }

  .request-next-step p{
    font-size:.84rem;
  }

}


/* =========================================================
   AIMS — FINAL RESPONSIVE / MOBILE ALIGNMENT PASS
========================================================= */

html{
  width:100%;
  overflow-x:hidden;
  scroll-behavior:smooth;
}

body{
  width:100%;
  min-width:0;
  overflow-x:hidden;
}

img,
svg{
  max-width:100%;
}

button,
input,
select,
textarea{
  font:inherit;
}

/* ---------- Mobile navigation control ---------- */
.nav-toggle{
  display:none;
  position:relative;
  width:44px;
  height:44px;
  flex:0 0 44px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  padding:0;
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  background:rgba(255,255,255,.025);
  cursor:pointer;
  z-index:2200;
}

.nav-toggle span{
  display:block;
  width:19px;
  height:1.5px;
  border-radius:999px;
  background:#fff;
  transition:
    transform .28s cubic-bezier(.22,1,.36,1),
    opacity .2s ease;
}

.mobile-request-item{
  display:none !important;
}

@media(max-width:1120px){
  .navbar{ padding-inline:1.25rem; }
  .nav-inner{ gap:1.4rem; }
  .nav-links li{ padding-inline:.7rem; }
  .nav-links a{ font-size:.88rem; }
  .request-btn{
    padding:9px 15px;
    font-size:.76rem;
  }
  .logo-icon{ height:46px; }
}

/* =========================================================
   TABLET + MOBILE
========================================================= */
@media(max-width:900px){
  :root{ --nav-h:64px; }

  .navbar{
    height:var(--nav-h);
    padding:0 1rem;
    overflow:visible;
  }

  .navbar.hide,
  .navbar.mobile-open{
    transform:translateY(0);
  }

  .nav-inner{
    position:relative;
    width:100%;
    max-width:none;
    gap:.75rem;
    justify-content:space-between;
  }

  .logo{
    flex:0 0 auto;
    font-size:1.35rem;
  }

  .logo-icon{ height:42px; }

  .nav-toggle{
    display:flex;
    order:3;
    margin-left:auto;
  }

  .navbar.mobile-open .nav-toggle span:nth-child(1){
    transform:translateY(6.5px) rotate(45deg);
  }

  .navbar.mobile-open .nav-toggle span:nth-child(2){
    opacity:0;
  }

  .navbar.mobile-open .nav-toggle span:nth-child(3){
    transform:translateY(-6.5px) rotate(-45deg);
  }

  .nav-cta{ display:none; }

  .nav-links{
    position:fixed;
    left:0;
    right:0;
    top:var(--nav-h);
    z-index:2100;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    width:100%;
    max-height:calc(100dvh - var(--nav-h));
    overflow-y:auto;
    padding:.55rem 1rem 1rem;
    background:rgba(14,14,17,.985);
    border-top:1px solid rgba(92,109,245,.16);
    border-bottom:1px solid rgba(255,255,255,.06);
    backdrop-filter:blur(28px);
    -webkit-backdrop-filter:blur(28px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-10px);
    box-shadow:0 24px 45px rgba(0,0,0,.38);
    transition:
      opacity .25s ease,
      transform .25s cubic-bezier(.22,1,.36,1),
      visibility .25s ease;
  }

  .navbar.mobile-open .nav-links{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
  }

  .nav-links > li{
    display:block;
    width:100%;
    padding:0;
    border-bottom:1px solid rgba(255,255,255,.055);
  }

  .nav-links > li::before,
  .nav-links > li::after{
    display:none !important;
  }

  .nav-links > li > a{
    display:flex;
    width:100%;
    min-height:50px;
    align-items:center;
    justify-content:space-between;
    padding:.85rem .55rem;
    font-size:.9rem;
    letter-spacing:.07em;
  }

  .nav-links > li > a::after{
    bottom:6px;
    width:44px;
    left:.55rem;
    transform:scaleX(0);
    transform-origin:left;
  }

  .nav-links > li > a:hover::after,
  .nav-links > li > a.active::after{
    transform:scaleX(1);
  }

  .dropdown{
    position:static;
    width:100%;
    min-width:0;
    max-height:0;
    margin:0;
    padding:0 .25rem;
    overflow:hidden;
    border:none;
    border-radius:0;
    background:rgba(92,109,245,.025);
    box-shadow:none;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:none;
    transition:
      max-height .35s cubic-bezier(.22,1,.36,1),
      opacity .25s ease;
  }

  .has-dropdown:not(.open) .dropdown,
  .has-dropdown:not(.open):hover .dropdown{
    max-height:0 !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:none !important;
  }

  .has-dropdown.open .dropdown{
    max-height:520px;
    padding:.25rem .25rem .7rem;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }

  .dropdown::before{ display:none; }

  .dropdown li{
    display:block;
    width:100%;
  }

  .dropdown li::before{ display:none !important; }

  .dropdown a{
    display:block;
    width:100%;
    padding:.72rem .85rem;
    white-space:normal;
    font-size:.84rem;
    line-height:1.35;
  }

  .mobile-request-item{
    display:block !important;
    padding:.85rem 0 .1rem !important;
    border-bottom:none !important;
  }

  .mobile-request-item button{
    width:100%;
    padding:.9rem 1rem;
    border:1px solid rgba(92,109,245,.72);
    border-radius:999px;
    background:linear-gradient(
      135deg,
      rgba(92,109,245,.95),
      rgba(140,92,245,.95)
    );
    color:#fff;
    font-size:.8rem;
    font-weight:700;
    letter-spacing:.06em;
    cursor:pointer;
    box-shadow:0 0 18px rgba(92,109,245,.18);
  }

  /* Home hero */
  .hero{
    height:min(760px,82svh);
    min-height:590px;
    max-height:none;
  }

  .hero-content{
    inset:var(--nav-h) 0 0;
    padding:1.5rem 1.5rem 45px;
  }

  .hero-text{
      max-width:620px;
    
      padding:
        0
        0
        5px
        0;
    
      grid-template-rows:
        34px
        138px
        24px
        96px
        minmax(0, 1fr)
        auto;
    }

  .hero-text h1{
    font-size:clamp(2.65rem,8vw,3.8rem);
  }

  .aims-main{
    font-size:clamp(3.1rem,10vw,4rem);
  }

  .aims-line-1,
  .aims-line-2{
    font-size:clamp(1.35rem,5vw,1.8rem);
  }

  .hero-text .kicker{
    font-size:clamp(.85rem,3vw,1.1rem);
  }

  .hero-text p{
    max-width:520px;
    font-size:1rem;
  }

  .slide-arrow{ display:none; }

  /* Home */
  .aims-pillars{
    padding:2.5rem 1.25rem 1rem;
  }

  .pillars-wrapper{
    grid-template-columns:1fr;
    gap:1rem;
  }

  .pillar-card{ padding:1.6rem; }

  .home-section{
    width:calc(100% - 2rem);
    margin:0 auto 2rem;
    padding:2.5rem 1.35rem;
    border-radius:15px;
  }

  .home-section > *{ padding-left:0; }

  .home-section h2{
    margin-left:0;
    font-size:clamp(1.75rem,6vw,2.15rem);
    line-height:1.2;
  }

  .home-section p{ font-size:1rem; }

  .home-section.why{
    margin-top:2rem;
    padding:3rem 1.35rem;
  }

  .home-section.final-cta{
    margin-top:3rem;
    padding:3rem 1.35rem;
  }

  /* Generic content */
  .content{
    padding:calc(var(--nav-h) + 3rem) 1.25rem 4rem;
  }

  .content h1{
    font-size:clamp(2.2rem,9vw,2.8rem);
  }

  .services-table{
    display:block;
    width:100%;
    overflow-x:auto;
    white-space:nowrap;
  }

  /* About */
  .about-page{
    padding:calc(var(--nav-h) + 3rem) 1.25rem 4rem;
  }

  .about-hero h1,
  .about-title{
    font-size:clamp(2.45rem,10vw,3.4rem);
  }

  .about-block{ padding:3.5rem 0; }

  /* Services hub */
  .services-hub-hero h1{
    font-size:clamp(2.65rem,10vw,3.5rem);
  }

  .services-hub-container{
    width:calc(100% - 2rem);
  }

  /* Contact */
  /* Contact */
    .contact-container{
      width:calc(100% - 2rem);
    }

  /* Redesigned service pages */
  .service-page-redesign{
    width:100%;
    max-width:100%;
    padding:calc(var(--nav-h) + 2.75rem) 1.25rem 4rem;
  }

  .service-page-redesign .service-hero-redesign{
    gap:1.6rem;
    margin-bottom:2rem;
  }

  .service-page-redesign .service-hero-redesign h1{
    max-width:100%;
    overflow-wrap:anywhere;
    font-size:clamp(2.35rem,9vw,3.3rem);
    line-height:1.02;
  }

  .service-page-redesign .service-tagline{
    font-size:1rem;
    line-height:1.65;
  }

  .service-page-redesign .service-hero-meta{
    width:100%;
    max-width:none;
  }

  .service-page-redesign .service-top-line{
    margin-bottom:2.7rem;
  }

  .service-page-redesign .steps-wrapper{
    display:block;
    width:100%;
    margin-bottom:2.5rem;
    overflow:visible;
  }

  .service-page-redesign .service-steps{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem;
    width:100%;
    margin:0;
    padding:0;
    inset:auto;
    transform:none;
  }

  .service-page-redesign .step-item{
    width:100%;
    min-width:0;
    min-height:88px;
    padding:1rem .65rem;
    border:1px solid rgba(255,255,255,.07);
    border-top:2px solid var(--step-color);
    border-radius:12px;
    background:rgba(255,255,255,.018);
    transform:none !important;
    filter:none !important;
  }

  .service-page-redesign .step-item::before,
  .service-page-redesign .step-item::after,
  .service-page-redesign .step-symbol,
  .service-page-redesign .step-rail,
  .service-page-redesign .steps-arrow{
    display:none !important;
  }

  .service-page-redesign .step-label{
    position:static;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    min-height:54px;
    padding:0;
    white-space:normal;
    text-align:center;
    color:#e4e5ee;
    font-size:.84rem;
    line-height:1.3;
  }

  .service-page-redesign .service-overview-redesign{
    margin-bottom:4.5rem;
    padding:1.5rem .65rem;
  }

  .service-page-redesign .service-stage{
    margin-bottom:4.5rem;
  }

  .service-page-redesign .stage-heading{
    margin-bottom:1.8rem;
  }

  .service-page-redesign .stage-heading h2{
    font-size:clamp(1.75rem,7vw,2.25rem);
  }

  .service-page-redesign .problem-card,
  .service-page-redesign .solution-card,
  .service-page-redesign .approach-content,
  .service-page-redesign .outcome-card{
    min-height:0;
  }

  .service-page-redesign .solution-card{
    padding:1.6rem;
  }

  .service-page-redesign .solution-card h3,
  .service-page-redesign .solution-intro,
  .service-page-redesign .approach-content > p{
    min-height:0;
  }

  .service-page-redesign .service-related-redesign{
    gap:1.75rem;
    margin-bottom:4rem;
    padding:3rem 0;
  }

  .service-page-redesign .related-service-card{
    grid-template-columns:28px minmax(0,1fr) 18px;
    gap:.75rem;
    padding:1.2rem 1rem;
  }

  .service-page-redesign .service-final-cta{
    padding:3rem 1.25rem;
  }

  /* Request information */
  .request-page-premium{
    padding:calc(var(--nav-h) + 2.5rem) 1rem 4rem;
  }

  .request-page-shell{
    width:100%;
    border-radius:18px;
  }

  .request-intro-panel,
  .request-form-panel{
    padding:2.5rem 1.4rem;
  }

  .request-intro-panel h1{
    font-size:clamp(2.6rem,11vw,3.7rem);
  }

  .request-value-item{
    grid-template-columns:38px minmax(0,1fr);
  }

  .request-page-premium .form-grid{
    grid-template-columns:1fr;
    gap:1.25rem;
  }

  .request-page-premium input,
  .request-page-premium select,
  .request-page-premium textarea{
    font-size:16px;
  }

  .request-submit-row{
    align-items:stretch;
    flex-direction:column;
  }

  .request-submit-btn{ width:100%; }

  .request-response-note{
    justify-content:center;
  }

  /* Success page */
  .request-success-page.active{
    display:flex;
    min-height:100svh;
    align-items:center;
    justify-content:center;
  }

  .request-success-container{
    width:100%;
    max-width:760px;
  }
}

@media(max-width:560px){
  .hero{
    min-height:620px;
    height:82svh;
  }

  .hero-content{
    padding:1.25rem 1.1rem 45px;
  }
  
  .hero-text{
      grid-template-rows:
        30px
        118px
        22px
        118px
        minmax(0, 1fr)
        auto;
    }

  .hero-text h1{
    font-size:clamp(2.3rem,11vw,3rem);
  }

  .aims-main{
    font-size:clamp(2.8rem,14vw,3.5rem);
  }

  .aims-line-1,
  .aims-line-2{
    font-size:clamp(1.18rem,5.5vw,1.45rem);
  }

  .hero-text p{
    font-size:.94rem;
    line-height:1.55;
  }

  .hero-cta-btn{
    max-width:100%;
    padding:.78rem 1.35rem;
    font-size:.88rem;
  }

  .slider-controls{
    bottom:24px;
    gap:8px;
  }

  .dot{
    width:8px;
    height:8px;
  }

  .home-section{
    width:calc(100% - 1.25rem);
  }

  .about-page,
  .service-page-redesign{
    padding-left:1rem;
    padding-right:1rem;
  }

  .services-hub-container,
  .contact-container{
    width:calc(100% - 1.25rem);
  }

  .service-page-redesign .service-hero-meta{
    grid-template-columns:1fr;
  }

  .service-page-redesign .service-hero-meta span{
    min-height:50px;
  }

  .service-page-redesign .problem-card{
    padding:4.4rem 1.25rem 1.5rem;
  }

  .service-page-redesign .problem-icon{
    left:1.25rem;
  }

  .service-page-redesign .approach-track{
    padding-left:2.15rem;
  }

  .service-page-redesign .approach-node{
    left:-2.15rem;
  }

  .request-intro-panel,
  .request-form-panel{
    padding:2rem 1rem;
  }

  .request-success-page{
    padding:.75rem;
  }

  .request-success-container{
    padding:2.6rem 1rem;
  }

  .request-success-page h1{
    font-size:clamp(2.05rem,10vw,2.7rem);
  }
}

@media(max-width:380px){
  .navbar{ padding-inline:.7rem; }
  .logo-icon{ height:38px; }
  .logo{ font-size:1.2rem; }

  .nav-toggle{
    width:40px;
    height:40px;
    flex-basis:40px;
  }

  .service-page-redesign .service-steps{
    grid-template-columns:1fr;
  }

  .service-page-redesign .step-item{
    min-height:68px;
  }

  .home-section{
    width:calc(100% - .8rem);
    padding:2.2rem 1rem;
  }

  .request-page-premium{
    padding-left:.65rem;
    padding-right:.65rem;
  }
}

@media(hover:none){
  .pillar-card:hover,
  .services-capability-card:hover,
  .service-page-redesign .problem-card:hover,
  .service-page-redesign .solution-card:hover,
  .service-page-redesign .outcome-card:hover,
  .service-page-redesign .related-service-card:hover{
    transform:none;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}



/* =========================================================
   HOME LANDING PAGE — REDESIGN
   Slideshow intentionally unchanged.
========================================================= */

#home{
  --home-panel:#141419;
  --home-panel-2:#17171d;
  --home-line:rgba(255,255,255,.07);
  --home-muted:#aeb1c0;
  background:
    radial-gradient(circle at 50% 38%, rgba(92,109,245,.035), transparent 30%),
    var(--bg-section);
}

#home .home-kicker{
  display:block;
  margin-bottom:.85rem;
  color:var(--accent);
  font-size:.67rem;
  font-weight:800;
  letter-spacing:.2em;
}

/* ---------------- VALUE STRIP ---------------- */
/* =========================================================
   HOME — VALUE CARDS
========================================================= */

.home-value-strip {
  position: relative;
  z-index: 8;

  max-width: 1240px;

  margin: 55px auto 0;
  padding: 0 2rem;
}

.home-value-strip::before {
  content: "";

  position: absolute;
  left: 50%;
  top: -75px;

  width: 70%;
  height: 110px;

  transform: translateX(-50%);

  background: radial-gradient(
    ellipse at center,
    rgba(92, 109, 245, 0.16) 0%,
    rgba(92, 109, 245, 0.07) 35%,
    transparent 72%
  );

  filter: blur(18px);

  pointer-events: none;
  z-index: -1;
}


/* THREE-CARD GRID */

.home-value-strip-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));

  gap: 16px;

  border: 0;
  background: transparent;
  box-shadow: none;
}


/* =========================================================
   INDIVIDUAL CARD
========================================================= */

.home-value-item {
  position: relative;
  overflow: hidden;

  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: start;

  gap: 1.2rem;

  min-height: 205px;

  padding: 1.8rem;

  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;

  background:
    radial-gradient(
      circle at 0% 0%,
      rgba(92, 109, 245, 0.08),
      transparent 38%
    ),
    linear-gradient(
      145deg,
      rgba(24, 24, 31, 0.98),
      rgba(15, 15, 20, 0.98)
    );

  box-shadow:
    0 18px 45px rgba(0, 0, 0, 0.24);

  transition:
    transform 0.35s cubic-bezier(.22, 1, .36, 1),
    border-color 0.35s ease,
    box-shadow 0.35s ease;
}


/* REMOVE OLD TABLE DIVIDERS */

.home-value-item + .home-value-item {
  border-left: 1px solid rgba(255, 255, 255, 0.08);
}


/* =========================================================
   ACCENT LINE
========================================================= */

.home-value-item::after {
  content: "";

  position: absolute;
  left: 0;
  bottom: 0;

  width: 100%;
  height: 2px;

  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(92, 109, 245, 0.35) 15%,
    #5c6df5 50%,
    rgba(92, 109, 245, 0.35) 85%,
    transparent 100%
  );

  opacity: 0.35;

  transition:
    opacity 0.35s ease,
    box-shadow 0.35s ease;
}

/* =========================================================
   ICON
========================================================= */

.home-value-icon {
  position: relative;

  width: 46px;
  height: 46px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid rgba(92, 109, 245, 0.32);
  border-radius: 12px;

  background:
    linear-gradient(
      145deg,
      rgba(92, 109, 245, 0.13),
      rgba(92, 109, 245, 0.025)
    );

  box-shadow:
    inset 0 0 16px rgba(92, 109, 245, 0.04),
    0 0 20px rgba(92, 109, 245, 0.06);

  transition:
    border-color 0.35s ease,
    background 0.35s ease,
    box-shadow 0.35s ease,
    transform 0.35s ease;
}


.home-value-icon img {
  width: 21px;
  height: 21px;

  object-fit: contain;
}


/* PRESERVE YOUR SPECIAL ICON SCALING */

.home-value-item:nth-child(2) .home-value-icon img {
  transform: scale(1.35);
}

.home-value-item:nth-child(3) .home-value-icon img {
  transform: scale(1.28);
}


/* =========================================================
   INDEX
========================================================= */

.home-value-index {
  display: block;

  margin-bottom: 0.65rem;

  color: #6f7df6;

  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.15em;
}


/* =========================================================
   TITLE
========================================================= */

.home-value-item h3 {
  margin: 0 0 0.6rem;

  color: #ffffff;

  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.3;

  letter-spacing: -0.015em;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.home-value-item p {
  max-width: 290px;

  margin: 0;

  color: #9699a9;

  font-size: 0.81rem;
  line-height: 1.7;
}


/* =========================================================
   HOVER
========================================================= */

.home-value-item:hover {
  transform: translateY(-6px);

  border-color: rgba(92, 109, 245, 0.32);

  box-shadow:
    0 24px 55px rgba(0, 0, 0, 0.32),
    0 0 30px rgba(92, 109, 245, 0.045);
}


.home-value-item:hover::after {
  opacity: 1;

  box-shadow:
    0 0 10px rgba(92, 109, 245, 0.55),
    0 -4px 18px rgba(92, 109, 245, 0.18);
}


.home-value-item:hover .home-value-icon {
  transform: translateY(-2px);

  border-color: rgba(92, 109, 245, 0.58);

  background:
    linear-gradient(
      145deg,
      rgba(92, 109, 245, 0.2),
      rgba(92, 109, 245, 0.04)
    );

  box-shadow:
    0 0 24px rgba(92, 109, 245, 0.11);
}

/* ---------------- POSITIONING ---------------- */

.home-positioning{
  max-width:1200px;
  margin:0 auto;
  padding:5.5rem 2rem;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.75fr);
  gap:7rem;
  align-items:start;
}

.home-positioning-heading h2{
  max-width:690px;
  margin:0;
  color:#fff;
  font-size:clamp(2.7rem,4.8vw,4.8rem);
  line-height:1.02;
  letter-spacing:-.045em;
}

.home-positioning-heading h2 span{
  display:block;
  margin-top:.25rem;
  color:#757b9b;
}

.home-positioning-copy{
  padding-top:1.6rem;
}

.home-positioning-copy p{
  margin:0 0 1.25rem;
  color:#9fa2b2;
  font-size:.96rem;
  line-height:1.82;
}

.home-positioning-copy .home-positioning-lead{
  color:#d5d7e1;
  font-size:1.03rem;
}

.home-text-link{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  margin-top:.7rem;
  padding:0 0 .35rem;
  border:0;
  border-bottom:1px solid rgba(92,109,245,.38);
  background:none;
  color:#dce0ff;
  font:inherit;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
  transition:color .25s ease,border-color .25s ease;
}

.home-text-link span{
  color:var(--accent);
  transition:transform .25s ease;
}

.home-text-link:hover{
  color:#fff;
  border-color:var(--accent);
}

.home-text-link:hover span{ transform:translateX(4px); }

/* ---------------- SHARED SECTION HEADING ---------------- */

.home-section-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,.62fr);
  gap:4rem;
  align-items:end;
  margin-bottom:3.2rem;
}

.home-section-heading h2{
  margin:0;
  color:#fff;
  font-size:clamp(2.2rem,3.5vw,3.25rem);
  line-height:1.08;
  letter-spacing:-.035em;
}

.home-section-heading > p{
  margin:0;
  color:#9699a9;
  font-size:.9rem;
  line-height:1.75;
}

.home-section-heading-centered{
  grid-template-columns:1fr;
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.home-section-heading-centered > p{
  max-width:680px;
  margin:0 auto;
}

/* ---------------- CAPABILITY BENTO ---------------- */

.home-capabilities-redesign{
  max-width:1300px;
  margin:0 auto;
  padding:1rem 2rem 9rem;
}

.home-capability-bento{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:1rem;
}

.home-capability-card{
  position:relative;
  grid-column:span 2;
  min-height:220px;
  padding:0.5rem 1.9rem 2.3rem;
  overflow:hidden;
  border:1px solid var(--home-line);
  border-radius:14px;

  background:
    linear-gradient(145deg,rgba(92,109,245,.025),transparent 42%),
    var(--home-panel);

  cursor:pointer;

  transition:
    transform .35s cubic-bezier(.22,1,.36,1),
    border-color .35s ease,
    background .35s ease,
    box-shadow .35s ease;
}

.home-capability-card-wide{
  grid-column:span 3;
  min-height:220px;
}

.home-capability-card-accent{
  background:
    radial-gradient(circle at 90% 10%,rgba(92,109,245,.12),transparent 34%),
    linear-gradient(145deg,rgba(92,109,245,.045),transparent 48%),
    var(--home-panel);
}

.home-capability-card:hover{
  transform:translateY(-5px);
  border-color:rgba(92,109,245,.3);
  box-shadow:0 22px 45px rgba(0,0,0,.25),0 0 30px rgba(92,109,245,.045);
}

.home-capability-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:2rem;
}

.home-capability-number{
  color:rgba(255,255,255,.22);

  font-size:.78rem;
  font-weight:800;
  letter-spacing:.1em;

  transition:
    color .3s ease,
    transform .3s ease;
}

.home-capability-card:hover .home-capability-number{
  color:var(--accent);
  transform:translateY(-1px);
}

.home-capability-arrow {
  width: 38px;
  height: 38px;

  display: flex;
  align-items: center;
  justify-content: center;

  flex-shrink: 0;

  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 50%;

  color: #8e94aa;

  font-size: 1rem;
  line-height: 1.1;

  background: rgba(255, 255, 255, 0.015);

  /* Optical centering of ↗ */
  padding: 0 0 2px 1px;

  transition:
    color .3s ease,
    border-color .3s ease,
    background .3s ease,
    transform .3s ease,
    box-shadow .3s ease;
}

.home-capability-card:hover .home-capability-arrow{
  color:#ffffff;

  border-color:rgba(92,109,245,.55);

  background:rgba(92,109,245,.10);

  transform:translate(2px,-2px);

  box-shadow:
    0 0 18px rgba(92,109,245,.14);
}



.home-capability-label{
  display:block;
  margin-bottom:.7rem;
  color:var(--accent);
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.16em;
}

.home-capability-card h3{
  max-width:420px;
  margin:0 0 .65rem;
  color:#fff;
  font-size:1.35rem;
  line-height:1.25;
}

.home-capability-card p{
  max-width:450px;
  margin:0;
  color:#9b9eae;
  font-size:.87rem;
  line-height:1.7;
}

.home-capability-line{
  position:absolute;
  left:0;
  right:0;
  bottom:0;

  height:2px;

  background:linear-gradient(
    90deg,
    transparent 0%,
    rgba(92,109,245,.45) 8%,
    #5c6df5 50%,
    rgba(92,109,245,.45) 92%,
    transparent 100%
  );

  opacity:.55;

  box-shadow:
    0 0 8px rgba(92,109,245,.18);

  transition:
    opacity .35s ease,
    box-shadow .35s ease;
}

.home-capability-card:hover .home-capability-line{
  opacity:1;

  box-shadow:
    0 0 12px rgba(92,109,245,.55),
    0 -5px 20px rgba(92,109,245,.16);
}

/* ---------------- MATURITY PATH ---------------- */

.home-maturity{
  position:relative;
  padding:8rem max(2rem,calc((100vw - 1240px)/2)) 8.5rem;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.04);
  border-bottom:1px solid rgba(255,255,255,.04);
  background:
    radial-gradient(circle at 50% 0%,rgba(92,109,245,.065),transparent 34%),
    #111115;
}

.home-maturity-track{
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
  padding-top:3rem;
}

.home-maturity-connector{
  position:absolute;
  left:12%;
  right:12%;
  top:20px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(92,109,245,.25),rgba(92,109,245,.75),rgba(92,109,245,.25),transparent);
}

.home-maturity-card{
  position:relative;
  min-height:300px;
  padding:2.3rem 2rem 2rem;
  border:1px solid var(--home-line);
  border-radius:14px;
  background:rgba(20,20,25,.93);
}

.home-maturity-card-featured{
  border-color:rgba(92,109,245,.22);
  background:
    linear-gradient(180deg,rgba(92,109,245,.055),transparent 42%),
    rgba(20,20,25,.97);
  box-shadow:0 0 35px rgba(92,109,245,.045);
}

.home-maturity-node{
  position:absolute;
  top:-3.2rem;
  left:50%;
  width:42px;
  height:42px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(92,109,245,.4);
  border-radius:50%;
  background:#111115;
  box-shadow:0 0 18px rgba(92,109,245,.09);
}

.home-maturity-node span{
  color:var(--accent);
  font-size:.64rem;
  font-weight:800;
}

.home-maturity-level{
  display:block;
  margin-bottom:1rem;
  color:var(--accent);
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.17em;
}

.home-maturity-card h3{
  margin:0 0 .8rem;
  color:#fff;
  font-size:1.25rem;
}

.home-maturity-card p{
  margin:0;
  color:#9da0ae;
  font-size:.88rem;
  line-height:1.72;
}

.home-maturity-focus{
  position:absolute;
  left:2rem;
  right:2rem;
  bottom:1.7rem;
  padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.055);
  color:#777b8f;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.04em;
}

.home-maturity-action{
  display:flex;
  justify-content:center;
  margin-top:2.5rem;
}

.home-outline-button,
.home-primary-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;
  border-radius:999px;
  font:inherit;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
  transition:background .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s ease;
}

.home-outline-button{
  padding:.85rem 1.5rem;
  border:1px solid rgba(92,109,245,.42);
  background:rgba(92,109,245,.055);
  color:#dce0ff;
}

.home-outline-button span,
.home-primary-button span{ transition:transform .3s ease; }

.home-outline-button:hover{
  border-color:var(--accent);
  background:rgba(92,109,245,.13);
  box-shadow:0 8px 26px rgba(92,109,245,.12);
}

.home-outline-button:hover span,
.home-primary-button:hover span{ transform:translateX(4px); }

/* ---------------- WHY AIMS ---------------- */

.home-why-redesign{
  max-width:1250px;
  margin:0 auto;
  padding:9rem 2rem;
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(430px,1fr);
  gap:7rem;
  align-items:start;
}

.home-why-statement{
  position:sticky;
  top:calc(var(--nav-h) + 3rem);
}

.home-why-statement h2{
  max-width:560px;
  margin:0 0 1.4rem;
  color:#fff;
  font-size:clamp(2.4rem,4vw,3.75rem);
  line-height:1.06;
  letter-spacing:-.04em;
}

.home-why-statement h2 span{ color:var(--accent); }

.home-why-statement p{
  max-width:520px;
  margin:0;
  color:#9699a8;
  font-size:.92rem;
  line-height:1.8;
}

.home-why-list-redesign{
  border-top:1px solid var(--home-line);
}

/* =========================================================
   WHY AIMS — SMOOTH INTERACTION
========================================================= */

.home-why-row{
  position:relative;

  display:grid;
  grid-template-columns:52px 1fr;
  gap:1.2rem;

  padding:1.65rem 1rem 1.65rem 0;

  overflow:hidden;

  border-bottom:1px solid var(--home-line);

  background:transparent;

  transition:
    background .4s cubic-bezier(.22,1,.36,1),
    border-color .4s ease;
}


/* SOFT PURPLE WASH */

.home-why-row::before{
  content:"";

  position:absolute;
  inset:0;

  background:linear-gradient(
    90deg,
    rgba(92,109,245,.08),
    rgba(92,109,245,.025) 55%,
    transparent 90%
  );

  opacity:0;

  transform:translateX(-20px);

  transition:
    opacity .4s ease,
    transform .45s cubic-bezier(.22,1,.36,1);

  pointer-events:none;
}


/* KEEP CONTENT ABOVE THE GLOW */

.home-why-row > *{
  position:relative;
  z-index:1;
}


/* MOVE ONLY THE CONTENT — NOT THE ROW */

.home-why-row > div{
  transition:transform .45s cubic-bezier(.22,1,.36,1);
}


/* NUMBER */

.home-why-row > span{
  color:rgba(255,255,255,.18);

  font-size:.68rem;
  font-weight:800;
  letter-spacing:.1em;

  transition:
    color .35s ease,
    transform .45s cubic-bezier(.22,1,.36,1);
}


/* TITLE */

.home-why-row h3{
  margin:0 0 .45rem;

  color:#fff;
  font-size:1rem;

  transition:
    color .35s ease,
    transform .45s cubic-bezier(.22,1,.36,1);
}


/* DESCRIPTION */

.home-why-row p{
  margin:0;

  color:#8e91a1;

  font-size:.82rem;
  line-height:1.65;

  transition:color .35s ease;
}


/* =========================================================
   HOVER
========================================================= */

.home-why-row:hover{
  border-color:rgba(92,109,245,.22);
}

.home-why-row:hover::before{
  opacity:1;
  transform:translateX(0);
}

.home-why-row:hover > div{
  transform:translateX(8px);
}

.home-why-row:hover > span{
  color:var(--accent);
  transform:translateX(3px);
}

.home-why-row:hover h3{
  color:#ffffff;
}

.home-why-row:hover p{
  color:#aeb1c1;
}

.home-why-row > span{
  color:rgba(255,255,255,.18);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.1em;
}

.home-why-row h3{
  margin:0 0 .45rem;
  color:#fff;
  font-size:1rem;
}

.home-why-row p{
  margin:0;
  color:#8e91a1;
  font-size:.82rem;
  line-height:1.65;
}

/* ---------------- FINAL CTA ---------------- */

.home-final-redesign{
  position:relative;
  max-width:1200px;
  margin:0 auto 7rem;
  padding:6rem 2rem;
  overflow:hidden;
  text-align:center;
  border:1px solid rgba(92,109,245,.2);
  border-radius:20px;
  background:
    linear-gradient(180deg,rgba(92,109,245,.04),transparent 42%),
    rgba(18,18,23,.97);
  box-shadow:0 28px 65px rgba(0,0,0,.25);
}

.home-final-redesign::before{
  content:"";
  position:absolute;
  left:14%;
  right:14%;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  box-shadow:0 0 18px rgba(92,109,245,.35);
}

.home-final-glow{
  position:absolute;
  left:50%;
  top:-180px;
  width:620px;
  height:360px;
  transform:translateX(-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(92,109,245,.12),transparent 68%);
  pointer-events:none;
}

.home-final-redesign > *:not(.home-final-glow){ position:relative; z-index:2; }

.home-final-redesign h2{
  max-width:830px;
  margin:0 auto 1.2rem;
  color:#fff;
  font-size:clamp(2.5rem,4.5vw,4.3rem);
  line-height:1.03;
  letter-spacing:-.045em;
}

.home-final-redesign h2 span{ color:var(--accent); }

.home-final-redesign p{
  max-width:650px;
  margin:0 auto 2rem;
  color:#a3a6b5;
  font-size:.94rem;
  line-height:1.75;
}

.home-primary-button{
  padding:.95rem 1.65rem;
  border:1px solid rgba(92,109,245,.65);
  background:linear-gradient(90deg,rgba(92,109,245,.9),rgba(130,82,245,.94));
  color:#fff;
  box-shadow:0 10px 28px rgba(92,109,245,.18);
}

.home-primary-button:hover{
  transform:translateY(-2px);
  box-shadow:0 15px 36px rgba(92,109,245,.26);
}

/* ---------------- KEYBOARD ---------------- */

.home-capability-card:focus-visible,
.home-text-link:focus-visible,
.home-outline-button:focus-visible,
.home-primary-button:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
}

/* ---------------- RESPONSIVE ---------------- */

@media(max-width:1050px){
  .home-positioning{
    gap:4rem;
  }

  .home-capability-bento{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .home-capability-card,
  .home-capability-card-wide{
    grid-column:span 1;
  }

  .home-capability-card:last-child{
    grid-column:1 / -1;
  }

  .home-why-redesign{
    gap:4rem;
  }
}

@media(max-width:900px){
  .home-value-strip{
    padding:0 1.25rem;
  }

  .home-value-strip-inner{
    grid-template-columns:1fr;
  }

  .home-value-item{
    min-height:auto;
    padding:1.5rem;
  }

  .home-value-item + .home-value-item{
    border-left:none;
    border-top:1px solid var(--home-line);
  }

  .home-positioning{
    padding:6.5rem 1.5rem;
    grid-template-columns:1fr;
    gap:2.5rem;
  }

  .home-positioning-copy{ padding-top:0; }

  .home-section-heading{
    grid-template-columns:1fr;
    gap:1.3rem;
  }

  .home-capabilities-redesign{
    padding:1rem 1.5rem 6.5rem;
  }

  .home-maturity{
    padding:6rem 1.5rem;
  }

  .home-maturity-track{
    grid-template-columns:1fr;
    gap:1rem;
    padding:0 0 0 2.6rem;
  }

  .home-maturity-connector{
    left:18px;
    right:auto;
    top:0;
    bottom:0;
    width:1px;
    height:auto;
    background:linear-gradient(180deg,transparent,rgba(92,109,245,.7),transparent);
  }

  .home-maturity-card{
    min-height:auto;
    padding:1.8rem;
  }

  .home-maturity-node{
    left:-2.6rem;
    top:1.5rem;
    transform:none;
    width:36px;
    height:36px;
  }

  .home-maturity-focus{
    position:static;
    display:block;
    margin-top:1.35rem;
  }

  .home-why-redesign{
    padding:6.5rem 1.5rem;
    grid-template-columns:1fr;
    gap:3rem;
  }

  .home-why-statement{ position:static; }

  .home-final-redesign{
    width:calc(100% - 3rem);
    margin:0 1.5rem 5rem;
    padding:4.5rem 1.5rem;
  }
}

@media(max-width:650px){
  .home-positioning-heading h2{
    font-size:clamp(2.35rem,11vw,3.3rem);
  }

  .home-capability-bento{
    grid-template-columns:1fr;
  }

  .home-capability-card,
  .home-capability-card-wide,
  .home-capability-card:last-child{
    grid-column:auto;
    min-height:245px;
  }

  .home-capability-card-top{ margin-bottom:2.4rem; }

  .home-section-heading h2{
    font-size:2.25rem;
  }

  .home-why-statement h2{
    font-size:2.45rem;
  }

  .home-why-row{
    grid-template-columns:38px 1fr;
  }

  .home-final-redesign h2{
    font-size:2.5rem;
  }
}

@media(max-width:420px){
  .home-value-strip{ padding:0 1rem; }
  .home-value-item{ grid-template-columns:42px 1fr; gap:.85rem; padding:1.3rem; }
  .home-value-icon{ width:38px; height:38px; }
  .home-positioning{ padding:5rem 1.15rem; }
  .home-capabilities-redesign{ padding:0 1.15rem 5rem; }
  .home-maturity{ padding:5rem 1.15rem; }
  .home-why-redesign{ padding:5rem 1.15rem; }
  .home-final-redesign{ width:calc(100% - 2rem); margin:0 1rem 4rem; padding:4rem 1.1rem; }
}

/* CENTER CORE CAPABILITIES INTRO ONLY */

.home-section-heading {
  display: block;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.home-section-heading > div {
  width: 100%;
  text-align: center;
}

.home-section-heading .home-eyebrow,
.home-section-heading h2,
.home-section-heading > p {
  text-align: center;
}


/* CORE CAPABILITIES — LIFECYCLE STATEMENT */

.home-section-heading > p {
  position: relative;
  margin-top: 20px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;

  width: 100%;
  max-width: 900px;

  margin-left: auto;
  margin-right: auto;

  color: #aeb3d1;
  text-align: center;
}

.home-section-heading > p::before,
.home-section-heading > p::after {
  content: "";

  width: 55px;
  height: 1px;

  flex: 0 0 55px;

  background: linear-gradient(
    90deg,
    transparent,
    rgba(92, 109, 245, 0.65)
  );
}

.home-section-heading > p::after {
  transform: rotate(180deg);
}


/* MOBILE */

@media (max-width: 700px) {

  .home-section-heading > p {
    max-width: 520px;
  }

  .home-section-heading > p::before,
  .home-section-heading > p::after {
    width: 24px;
    flex-basis: 24px;
  }

}


/* =========================================================
   HOME POSITIONING — AIMS APPROACH
========================================================= */

.positioning-statement {
  position: relative;
  padding-left: 24px;

  border-left: 2px solid rgba(92, 109, 245, 0.65);
}


/* SMALL LABEL */

.positioning-label {
  display: block;

  margin-bottom: 14px;

  color: #5c6df5;

  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.18em;
}


/* COPY */

.positioning-statement .home-positioning-lead {
  margin-top: 0;

  color: #f0f1f7;
}

.positioning-statement p:last-child {
  margin-bottom: 0;
}


/* =========================================================
   STRUCTURED / SECURE / SCALABLE
========================================================= */

.positioning-principles {
  display: flex;
  align-items: center;

  margin-top: 25px;
  margin-bottom: 21px;
  padding-left: 26px;
}

.positioning-principles span {
  display: flex;
  align-items: center;
  gap: 7px;

  padding: 0 16px;

  color: #b8bbca;

  font-size: 0.72rem;
  font-weight: 600;

  border-right: 1px solid rgba(255, 255, 255, 0.10);
}

.positioning-principles span:first-child {
  padding-left: 0;
}

.positioning-principles span:last-child {
  padding-right: 0;
  border-right: none;
}

.positioning-principles strong {
  color: #5c6df5;

  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}


/* ALIGN DISCOVER AIMS WITH CONTENT */

.home-positioning-copy > .home-text-link {
  margin-left: 26px;
}


/* =========================================================
   SUBTLE INTERACTION
========================================================= */

.positioning-statement {
  transition:
    border-color 0.3s ease,
    background 0.3s ease;
}

.positioning-statement:hover {
  border-left-color: #7886ff;

  background: linear-gradient(
    90deg,
    rgba(92, 109, 245, 0.035),
    transparent 70%
  );
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 700px) {

  .positioning-statement {
    padding-left: 18px;
  }

  .positioning-principles {
    padding-left: 20px;
    flex-wrap: wrap;
  }

  .positioning-principles span {
    padding: 0 11px;
  }

  .positioning-principles span:first-child {
    padding-left: 0;
  }

  .home-positioning-copy > .home-text-link {
    margin-left: 20px;
  }

}

/* =========================================================
   SCROLL REVEAL ANIMATION
   Excludes the first 3 value cards under the slideshow
========================================================= */

.reveal-on-scroll {
  opacity: 0;
  transform: translateY(34px);

  transition:
    opacity 0.75s ease,
    transform 0.75s cubic-bezier(.22, 1, .36, 1);

  will-change: opacity, transform;
}

.reveal-on-scroll.reveal-visible {
  opacity: 1;
  transform: translateY(0);
}


/* Slight stagger when multiple elements appear together */

.reveal-delay-1 {
  transition-delay: 0.08s;
}

.reveal-delay-2 {
  transition-delay: 0.16s;
}

.reveal-delay-3 {
  transition-delay: 0.24s;
}

.reveal-delay-4 {
  transition-delay: 0.32s;
}


/* Accessibility */

@media (prefers-reduced-motion: reduce) {

  .reveal-on-scroll {
    opacity: 1;
    transform: none;
    transition: none;
  }

}

/* =========================================================
   LEADERSHIP — AIMS SIGNATURE
========================================================= */

.leadership-aims-mark{
  position:absolute;

  left:3.2rem;
  bottom:3.5rem;

  width:calc(57.5% - 3.2rem);
  max-width:500px;

  z-index:2;

  text-align:center;

  pointer-events:none;
  user-select:none;
}


/* REMOVE TOP LINE */

.leadership-aims-line{
  display:none;
}


/* AIMS */

.leadership-aims-word{
  position:relative;

  width:max-content;
  margin:0 auto;

  color:#6876ff;

  font-size:2.4rem;
  font-weight:800;

  line-height:1;

  letter-spacing:.1em;

  text-shadow:
    0 0 7px rgba(92,109,245,.38),
    0 0 18px rgba(92,109,245,.18),
    0 0 35px rgba(92,109,245,.08);
}


/* SUBTLE GLOW BELOW */

.leadership-aims-word::after{
  content:"";

  position:absolute;

  left:10%;
  bottom:-8px;

  width:80%;
  height:8px;

  border-radius:50%;

  background:rgba(92,109,245,.15);

  filter:blur(11px);
}


/* COMPANY NAME */

.leadership-aims-caption{
  display:block;

  margin-top:.65rem;

  color:rgba(190,194,215,.48);

  font-size:.44rem;
  font-weight:650;

  letter-spacing:.18em;

  text-transform:uppercase;
}


/* AMBIENT GLOW */

.leadership-aims-mark::before{
  content:"";

  position:absolute;

  left:50%;
  bottom:-30px;

  width:210px;
  height:95px;

  transform:translateX(-50%);

  background:
    radial-gradient(
      ellipse at center,
      rgba(92,109,245,.08),
      rgba(92,109,245,.02) 45%,
      transparent 72%
    );

  filter:blur(10px);

  z-index:-1;
}


/* MOBILE */

@media(max-width:950px){

  .leadership-aims-mark{
    display:none;
  }

}

/* =========================================================
   AIMS — CONNECTED SERVICE CAPABILITY SYSTEM
   Reusable across service subpages
========================================================= */

.service-page-redesign .service-capability-system{
  position:relative;
  isolation:isolate;

  width:440px;
  max-width:100%;
  height:286px;

  justify-self:end;
  align-self:center;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.075);
  border-radius:22px;

  background:
    radial-gradient(
      circle at 50% 50%,
      rgba(92,109,245,.105) 0%,
      rgba(92,109,245,.035) 30%,
      transparent 62%
    ),
    linear-gradient(
      145deg,
      rgba(255,255,255,.018),
      rgba(255,255,255,.004)
    ),
    #111116;

  box-shadow:
    0 22px 50px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.025);
}


/* faint architectural / technology grid */

.service-page-redesign .service-capability-system::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      rgba(112,124,255,.027) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(112,124,255,.027) 1px,
      transparent 1px
    );

  background-size:30px 30px;

  -webkit-mask-image:
    radial-gradient(
      circle at center,
      #000 0%,
      rgba(0,0,0,.75) 38%,
      transparent 78%
    );

  mask-image:
    radial-gradient(
      circle at center,
      #000 0%,
      rgba(0,0,0,.75) 38%,
      transparent 78%
    );

  pointer-events:none;

  z-index:0;
}


/* subtle centre atmosphere */

.service-page-redesign .service-capability-system::after{
  content:"";

  position:absolute;

  left:50%;
  top:50%;

  width:190px;
  height:190px;

  transform:translate(-50%,-50%);

  border-radius:50%;

  background:
    radial-gradient(
      circle,
      rgba(92,109,245,.075),
      transparent 68%
    );

  filter:blur(5px);

  pointer-events:none;

  z-index:0;
}


/* =========================================================
   OUTER CONNECTION ORBIT
========================================================= */

.service-page-redesign .capability-system-orbit{
  position:absolute;

  left:50%;
  top:50%;

  width:156px;
  height:156px;

  transform:translate(-50%,-50%);

  border:1px solid rgba(112,124,255,.36);
  border-radius:50%;

  box-shadow:
    0 0 18px rgba(92,109,245,.07),
    inset 0 0 18px rgba(92,109,245,.035);

  z-index:4;
}


/* horizontal relationship */

.service-page-redesign .capability-system-orbit::before{
  content:"";

  position:absolute;

  left:0;
  right:0;
  top:50%;

  height:1px;

  transform:translateY(-50%);

  background:
    linear-gradient(
      90deg,
      rgba(105,119,255,.55),
      rgba(105,119,255,.13) 34%,
      rgba(105,119,255,.13) 66%,
      rgba(105,119,255,.55)
    );
}


/* vertical relationship */

.service-page-redesign .capability-system-orbit::after{
  content:"";

  position:absolute;

  top:0;
  bottom:0;
  left:50%;

  width:1px;

  transform:translateX(-50%);

  background:
    linear-gradient(
      180deg,
      rgba(105,119,255,.55),
      rgba(105,119,255,.13) 34%,
      rgba(105,119,255,.13) 66%,
      rgba(105,119,255,.55)
    );
}


/* =========================================================
   SIGNAL MOVING THROUGH THE CONNECTED SYSTEM
========================================================= */

.service-page-redesign .capability-orbit-signal{
  position:absolute;
  
  z-index:2;

  inset:-1px;

  border-radius:50%;

  z-index:6;

  animation:
    capabilitySystemOrbit
    7.5s
    linear
    infinite;

  pointer-events:none;
}


.service-page-redesign .capability-orbit-signal::before{
  content:"";

  position:absolute;

  left:50%;
  top:-4px;

  width:8px;
  height:8px;

  transform:translateX(-50%);

  border-radius:50%;

  background:#aab2ff;

  box-shadow:
    0 0 3px rgba(235,237,255,.95),
    0 0 8px rgba(151,161,255,.78),
    0 0 17px rgba(92,109,245,.36);
}


@keyframes capabilitySystemOrbit{

  from{
    transform:rotate(0deg);
  }

  to{
    transform:rotate(360deg);
  }

}


/* =========================================================
   CENTRAL SERVICE CORE
========================================================= */

.service-page-redesign .capability-system-core{
  position:absolute;

  left:50%;
  top:50%;

  width:96px;
  height:96px;

  transform:translate(-50%,-50%);

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  border:1px solid rgba(124,136,255,.46);
  border-radius:50%;

  background:
    radial-gradient(
      circle at 40% 32%,
      rgba(103,116,255,.20),
      rgba(24,24,35,.97) 52%,
      rgba(13,13,18,.99) 100%
    );

  box-shadow:
    0 0 0 5px rgba(92,109,245,.028),
    0 0 24px rgba(92,109,245,.14),
    inset 0 1px 0 rgba(255,255,255,.07);

  z-index:5;
}


.service-page-redesign .capability-core-title{
  color:#ffffff;

  font-size:1.95rem;
  font-weight:700;

  line-height:1;

  letter-spacing:-.035em;

  text-shadow:
    0 0 7px rgba(92,109,245,.18);
}


.service-page-redesign .capability-core-label{
  margin-top:.48rem;

  color:#878fca;

  font-size:.42rem;
  font-weight:700;

  line-height:1;

  letter-spacing:.14em;

  text-transform:uppercase;
}


/* =========================================================
   FOUR CONNECTED CAPABILITY POINTS
   Nodes are locked precisely to the orbit.
   Label length cannot affect node position.
========================================================= */

.service-page-redesign .capability-point{
  position:absolute;

  width:10px;
  height:10px;

  z-index:3;
}


/* =========================================================
   ACTUAL ORBIT NODE
========================================================= */

.service-page-redesign .capability-point-node{
  position:absolute;
  inset:0;

  display:block;

  width:10px;
  height:10px;
  
  z-index:1;

  border:1px solid rgba(139,150,255,.72);
  border-radius:50%;

  background:#16161f;

  box-shadow:
    0 0 0 3px rgba(92,109,245,.04),
    0 0 8px rgba(92,109,245,.28);

  transition:
    border-color .3s ease,
    background .3s ease,
    box-shadow .3s ease;
}


/* =========================================================
   LABEL BASE
========================================================= */

.service-page-redesign .capability-point-label{
  position:absolute;

  z-index:7;

  color:#c0c3d4;

  font-size:.59rem;
  font-weight:700;

  line-height:1.25;
  letter-spacing:.045em;

  text-transform:uppercase;
  white-space:nowrap;

  transition:
    color .3s ease,
    text-shadow .3s ease;
}


/* STRATEGY — TOP */

.service-page-redesign .capability-point-top{
  left:50%;
  top:calc(50% - 78px);

  transform:translate(-50%,-50%);
}

.service-page-redesign
.capability-point-top
.capability-point-label{
  left:50%;
  bottom:20px;

  transform:translateX(-50%);

  text-align:center;
}


/* INFRASTRUCTURE — RIGHT */

.service-page-redesign .capability-point-right{
  left:calc(50% + 78px);
  top:50%;

  transform:translate(-50%,-50%);
}


.service-page-redesign
.capability-point-right
.capability-point-label{
  left:17px;
  top:50%;

  transform:translateY(-50%);

  width:116px;

  text-align:left;
}

/* OPERATIONS — BOTTOM */

.service-page-redesign .capability-point-bottom{
  left:50%;
  top:calc(50% + 78px);

  transform:translate(-50%,-50%);
}

.service-page-redesign
.capability-point-bottom
.capability-point-label{
  left:50%;
  top:20px;

  transform:translateX(-50%);

  text-align:center;
}


/* GOVERNANCE — LEFT */

.service-page-redesign .capability-point-left{
  left:calc(50% - 78px);
  top:50%;

  transform:translate(-50%,-50%);
}

.service-page-redesign
.capability-point-left
.capability-point-label{
  right:17px;
  top:50%;

  transform:translateY(-50%);

  width:116px;

  text-align:right;
}


/* =========================================================
   SUBTLE INTERACTION
========================================================= */

.service-page-redesign
.capability-point:hover
.capability-point-label{
  color:#ffffff;

  text-shadow:
    0 0 7px rgba(119,131,255,.28);
}


.service-page-redesign
.capability-point:hover
.capability-point-node{
  border-color:#a6afff;

  background:#6876f6;

  box-shadow:
    0 0 0 4px rgba(92,109,245,.07),
    0 0 11px rgba(122,135,255,.62),
    0 0 20px rgba(92,109,245,.20);
}


.service-page-redesign
.service-capability-system:hover
.capability-system-orbit{
  border-color:rgba(127,139,255,.55);

  box-shadow:
    0 0 22px rgba(92,109,245,.11),
    inset 0 0 20px rgba(92,109,245,.045);
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .service-page-redesign .service-capability-system{
    justify-self:start;

    width:440px;
    max-width:100%;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .service-page-redesign .service-capability-system{
    justify-self:center;

    width:min(100%,360px);
    height:280px;

    margin-top:.25rem;
  }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:480px){

  .service-page-redesign .service-capability-system{
    width:100%;
    height:264px;

    border-radius:18px;
  }


  /* orbit shrinks from 170px to 150px */

  .service-page-redesign .capability-system-orbit{
    width:150px;
    height:150px;
  }


  /* centre core */

  .service-page-redesign .capability-system-core{
    width:92px;
    height:92px;
  }


  .service-page-redesign .capability-core-title{
    font-size:1.8rem;
  }


  .service-page-redesign .capability-core-label{
    font-size:.40rem;
  }


  /* general labels */

  .service-page-redesign .capability-point-label{
    font-size:.54rem;
    letter-spacing:.025em;
  }


  /* nodes */

  .service-page-redesign .capability-point,
  .service-page-redesign .capability-point-node{
    width:9px;
    height:9px;
  }


  /* =======================================================
     MOBILE NODE POSITIONS
     150px orbit = 75px radius
  ======================================================= */


  /* TOP */

  .service-page-redesign .capability-point-top{
    left:50%;
    top:calc(50% - 75px);

    transform:translate(-50%,-50%);
  }

  .service-page-redesign
  .capability-point-top
  .capability-point-label{
    left:50%;
    bottom:17px;

    transform:translateX(-50%);
  }


  /* RIGHT */

  .service-page-redesign .capability-point-right{
    left:calc(50% + 75px);
    top:50%;

    transform:translate(-50%,-50%);
  }

  .service-page-redesign
  .capability-point-right
  .capability-point-label{
    left:17px;
    top:50%;

    width:105px;

    transform:translateY(-50%);

    text-align:left;
  }


  /* BOTTOM */

  .service-page-redesign .capability-point-bottom{
    left:50%;
    top:calc(50% + 75px);

    transform:translate(-50%,-50%);
  }

  .service-page-redesign
  .capability-point-bottom
  .capability-point-label{
    left:50%;
    top:17px;

    transform:translateX(-50%);
  }


  /* LEFT */

  .service-page-redesign .capability-point-left{
    left:calc(50% - 75px);
    top:50%;

    transform:translate(-50%,-50%);
  }

  .service-page-redesign
  .capability-point-left
  .capability-point-label{
    right:17px;
    top:50%;

    width:105px;

    transform:translateY(-50%);

    text-align:right;
  }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media(prefers-reduced-motion:reduce){

  .service-page-redesign .capability-orbit-signal{
    animation:none;
  }

}






/* =========================================================
   AIMS — DATA & INFORMATION MANAGEMENT
   MANAGED INFORMATION LIFECYCLE
========================================================= */

.service-page-redesign .data-lifecycle-system{
  position:relative;
  isolation:isolate;

  width:440px;
  max-width:100%;
  height:286px;

  justify-self:end;
  align-self:center;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.075);
  border-radius:22px;

  background:
    radial-gradient(
      circle at 50% 47%,
      rgba(92,109,245,.105) 0%,
      rgba(92,109,245,.035) 30%,
      transparent 63%
    ),
    linear-gradient(
      145deg,
      rgba(255,255,255,.018),
      rgba(255,255,255,.004)
    ),
    #111116;

  box-shadow:
    0 22px 50px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.025);
}


/* =========================================================
   FAINT TECHNICAL GRID
========================================================= */

.service-page-redesign .data-lifecycle-system::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      rgba(112,124,255,.027) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(112,124,255,.027) 1px,
      transparent 1px
    );

  background-size:30px 30px;

  -webkit-mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.7) 42%,
      transparent 82%
    );

  mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.7) 42%,
      transparent 82%
    );

  opacity:.8;

  pointer-events:none;

  z-index:0;
}


/* =========================================================
   SVG CONNECTION SYSTEM
========================================================= */

.service-page-redesign .data-lifecycle-lines{
  position:absolute;

  inset:0;

  width:100%;
  height:100%;

  overflow:visible;

  pointer-events:none;

  z-index:1;
}


.service-page-redesign .data-connection{
  fill:none;

  stroke:rgba(105,119,255,.22);

  stroke-width:1;

  vector-effect:non-scaling-stroke;
}


.service-page-redesign .data-connection-strong{
  stroke:rgba(112,126,255,.40);
}


/* =========================================================
   LIFECYCLE TRACK
========================================================= */

.service-page-redesign .data-lifecycle-track{
  fill:none;

  stroke:rgba(111,124,255,.27);

  stroke-width:1.1;

  vector-effect:non-scaling-stroke;
}


/* animated information flow */

.service-page-redesign .data-lifecycle-flow{
  fill:none;

  stroke:#8995ff;

  stroke-width:1.5;

  stroke-linecap:round;

  stroke-dasharray:
    10
    110;

  filter:
    drop-shadow(
      0 0 4px
      rgba(105,121,255,.75)
    );

  vector-effect:non-scaling-stroke;

  animation:
    dataLifecycleFlow
    4.8s
    linear
    infinite;
}


@keyframes dataLifecycleFlow{

  from{
    stroke-dashoffset:0;
  }

  to{
    stroke-dashoffset:-240;
  }

}


/* =========================================================
   GOVERNANCE — CONTROL LAYER
========================================================= */

.service-page-redesign .data-control-layer{
  position:absolute;

  left:50%;
  top:27px;

  transform:translateX(-50%);

  min-width:175px;

  display:flex;
  flex-direction:column;
  align-items:center;

  text-align:center;

  z-index:4;
}


.service-page-redesign .data-control-kicker{
  margin-bottom:.2rem;

  color:#777fae;

  font-size:.43rem;
  font-weight:700;

  letter-spacing:.17em;

  text-transform:uppercase;
}


.service-page-redesign .data-control-layer strong{
  color:#c9ccdc;

  font-size:.64rem;
  font-weight:700;

  letter-spacing:.07em;

  text-transform:uppercase;
}


.service-page-redesign .data-control-node{
  display:block;

  width:10px;
  height:10px;

  margin-top:.48rem;

  border:1px solid rgba(144,154,255,.76);
  border-radius:50%;

  background:#171720;

  box-shadow:
    0 0 0 3px rgba(92,109,245,.045),
    0 0 9px rgba(92,109,245,.30);
}


/* =========================================================
   ARCHITECTURE / RECORDS
========================================================= */

.service-page-redesign .data-system-point{
  position:absolute;

  top:132px;

  display:flex;
  align-items:center;

  gap:.65rem;

  z-index:4;
}


.service-page-redesign .data-system-point > div{
  display:flex;
  flex-direction:column;

  gap:.12rem;
}


.service-page-redesign .data-system-point span:not(.data-system-node){
  color:#70789f;

  font-size:.41rem;
  font-weight:700;

  letter-spacing:.15em;

  text-transform:uppercase;
}


.service-page-redesign .data-system-point strong{
  color:#c4c7d7;

  font-size:.60rem;
  font-weight:700;

  letter-spacing:.055em;

  text-transform:uppercase;

  white-space:nowrap;
}


.service-page-redesign .data-system-node{
  display:block;
  flex:0 0 auto;

  width:10px;
  height:10px;

  border:1px solid rgba(139,150,255,.74);
  border-radius:50%;

  background:#16161f;

  box-shadow:
    0 0 0 3px rgba(92,109,245,.04),
    0 0 8px rgba(92,109,245,.28);

  transition:
    border-color .3s ease,
    background .3s ease,
    box-shadow .3s ease;
}


/* Architecture — left */

.service-page-redesign .data-system-architecture{
  left:33px;
}


/* Records — right */

.service-page-redesign .data-system-records{
  right:39px;

  text-align:right;
}


/* =========================================================
   CENTRAL INFORMATION ASSET
========================================================= */

.service-page-redesign .data-system-core{
  position:absolute;

  left:50%;
  top:137px;

  width:104px;
  height:104px;

  transform:
    translate(-50%,-50%);

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  border:
    1px solid
    rgba(124,136,255,.47);

  border-radius:20px;

  background:
    linear-gradient(
      145deg,
      rgba(98,111,245,.16),
      rgba(21,21,30,.98) 52%,
      rgba(13,13,18,.99)
    );

  box-shadow:
    0 0 0 5px rgba(92,109,245,.025),
    0 0 24px rgba(92,109,245,.13),
    inset 0 1px 0 rgba(255,255,255,.065);

  z-index:5;
}


.service-page-redesign .data-core-small{
  margin-bottom:.3rem;

  color:#7e87bd;

  font-size:.40rem;
  font-weight:700;

  letter-spacing:.16em;

  text-transform:uppercase;
}


.service-page-redesign .data-system-core strong{
  color:#ffffff;

  font-size:1.8rem;
  font-weight:700;

  line-height:1;

  letter-spacing:-.025em;

  text-shadow:
    0 0 7px rgba(92,109,245,.18);
}


.service-page-redesign .data-core-label{
  margin-top:.4rem;

  color:#848dc5;

  font-size:.40rem;
  font-weight:700;

  letter-spacing:.11em;

  text-transform:uppercase;
}


/* =========================================================
   LIFECYCLE LABEL
========================================================= */

.service-page-redesign .data-lifecycle-label{
  position:absolute;

  left:50%;
  bottom:25px;

  transform:translateX(-50%);

  display:flex;
  flex-direction:column;
  align-items:center;

  text-align:center;

  z-index:4;
}


.service-page-redesign .data-lifecycle-label span{
  margin-bottom:.15rem;

  color:#737ba5;

  font-size:.40rem;
  font-weight:700;

  letter-spacing:.16em;

  text-transform:uppercase;
}


.service-page-redesign .data-lifecycle-label strong{
  color:#c4c7d7;

  font-size:.62rem;
  font-weight:700;

  letter-spacing:.07em;

  text-transform:uppercase;
}


/* =========================================================
   SUBTLE INTERACTION
========================================================= */

.service-page-redesign
.data-system-point:hover
.data-system-node{
  border-color:#a6afff;

  background:#6876f6;

  box-shadow:
    0 0 0 4px rgba(92,109,245,.07),
    0 0 11px rgba(122,135,255,.62),
    0 0 20px rgba(92,109,245,.20);
}


.service-page-redesign
.data-system-point:hover
strong{
  color:#ffffff;

  text-shadow:
    0 0 7px rgba(119,131,255,.28);
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .service-page-redesign .data-lifecycle-system{
    justify-self:start;

    width:440px;
    max-width:100%;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .service-page-redesign .data-lifecycle-system{
    justify-self:center;

    width:min(100%,440px);

    height:286px;

    margin-top:.25rem;
  }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:480px){

  .service-page-redesign .data-lifecycle-system{
    width:100%;
    height:264px;

    border-radius:18px;
  }


  .service-page-redesign .data-system-core{
    top:126px;

    width:90px;
    height:90px;
  }


  .service-page-redesign .data-system-core strong{
    font-size:1.55rem;
  }


  .service-page-redesign .data-control-layer{
    top:22px;
  }


  .service-page-redesign .data-system-point{
    top:121px;
  }


  .service-page-redesign .data-system-architecture{
    left:14px;
  }


  .service-page-redesign .data-system-records{
    right:14px;
  }


  .service-page-redesign .data-system-point strong{
    font-size:.51rem;
    letter-spacing:.025em;
  }


  .service-page-redesign
  .data-system-point
  span:not(.data-system-node){
    font-size:.36rem;
  }


  .service-page-redesign .data-system-node{
    width:9px;
    height:9px;
  }


  .service-page-redesign .data-lifecycle-label{
    bottom:19px;
  }


  .service-page-redesign .data-lifecycle-lines{
    transform:scaleY(.92);
    transform-origin:center;
  }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media(prefers-reduced-motion:reduce){

  .service-page-redesign .data-lifecycle-flow{
    animation:none;
  }

}





/* =========================================================
   AIMS — CYBERSECURITY & RISK MANAGEMENT
   LAYERED DEFENCE / RESILIENCE SYSTEM
========================================================= */

.service-page-redesign .cyber-defense-system{
  position:relative;
  isolation:isolate;

  width:440px;
  max-width:100%;
  height:286px;

  justify-self:end;
  align-self:center;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.075);
  border-radius:22px;

  background:
    radial-gradient(
      circle at 50% 49%,
      rgba(92,109,245,.11) 0%,
      rgba(92,109,245,.038) 29%,
      transparent 63%
    ),
    linear-gradient(
      145deg,
      rgba(255,255,255,.018),
      rgba(255,255,255,.004)
    ),
    #111116;

  box-shadow:
    0 22px 50px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.025);
}


/* =========================================================
   TECHNICAL GRID
========================================================= */

.service-page-redesign .cyber-defense-system::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      rgba(112,124,255,.027) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(112,124,255,.027) 1px,
      transparent 1px
    );

  background-size:30px 30px;

  -webkit-mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.72) 42%,
      transparent 82%
    );

  mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.72) 42%,
      transparent 82%
    );

  pointer-events:none;

  z-index:0;
}


/* ambient security glow */

.service-page-redesign .cyber-defense-system::after{
  content:"";

  position:absolute;

  left:50%;
  top:50%;

  width:220px;
  height:220px;

  transform:translate(-50%,-50%);

  border-radius:50%;

  background:
    radial-gradient(
      circle,
      rgba(92,109,245,.07),
      transparent 68%
    );

  filter:blur(7px);

  pointer-events:none;

  z-index:0;
}


/* =========================================================
   SHIELD CONTAINER
========================================================= */

.service-page-redesign .cyber-shield{
  position:absolute;

  left:50%;
  top:50%;

  width:150px;
  height:174px;

  transform:translate(-50%,-48%);

  z-index:3;
}


/* =========================================================
   COMMON SHIELD GEOMETRY
========================================================= */

.service-page-redesign .cyber-shield-layer{
  position:absolute;

  left:50%;
  top:50%;

  transform:translate(-50%,-50%);

  clip-path:
    polygon(
      50% 0%,
      88% 14%,
      85% 52%,
      77% 69%,
      65% 84%,
      50% 100%,
      35% 84%,
      23% 69%,
      15% 52%,
      12% 14%
    );
}


.service-page-redesign .cyber-shield-layer::after{
  content:"";

  position:absolute;
  inset:1px;

  clip-path:
    polygon(
      50% 0%,
      88% 14%,
      85% 52%,
      77% 69%,
      65% 84%,
      50% 100%,
      35% 84%,
      23% 69%,
      15% 52%,
      12% 14%
    );

  background:
    rgba(17,17,22,.94);
}


/* =========================================================
   OUTER DEFENCE LAYER
========================================================= */

.service-page-redesign .cyber-shield-outer{
  width:150px;
  height:174px;

  background:
    linear-gradient(
      180deg,
      rgba(151,161,255,.82),
      rgba(92,109,245,.34) 52%,
      rgba(92,109,245,.65)
    );

  filter:
    drop-shadow(
      0 0 7px
      rgba(92,109,245,.22)
    );

  z-index:1;

  animation:
    cyberOuterShieldPulse
    4.5s
    ease-in-out
    infinite;
}


@keyframes cyberOuterShieldPulse{

  0%,
  100%{
    opacity:.62;
  }

  50%{
    opacity:.94;
  }

}


/* =========================================================
   MIDDLE DEFENCE LAYER
========================================================= */

.service-page-redesign .cyber-shield-middle{
  width:118px;
  height:138px;

  background:
    linear-gradient(
      180deg,
      rgba(130,141,255,.72),
      rgba(92,109,245,.22) 55%,
      rgba(92,109,245,.52)
    );

  z-index:2;
}


/* =========================================================
   INNER DEFENCE LAYER
========================================================= */

.service-page-redesign .cyber-shield-inner{
  width:90px;
  height:108px;

  background:
    linear-gradient(
      180deg,
      rgba(123,135,255,.78),
      rgba(92,109,245,.26) 55%,
      rgba(92,109,245,.58)
    );

  z-index:3;
}


/* =========================================================
   PROTECTED RESILIENCE CORE
========================================================= */

.service-page-redesign .cyber-shield-core{
  position:absolute;

  left:50%;
  top:50%;

  width:116px;
  height:76px;

  transform:translate(-50%,-50%);

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  border:none;
  border-radius:0;

  background:
    radial-gradient(
      ellipse at center,
      rgba(103,116,255,.15) 0%,
      rgba(92,109,245,.055) 45%,
      transparent 72%
    );

  box-shadow:none;

  clip-path:none;

  z-index:5;
}


.service-page-redesign .cyber-core-kicker{
  margin-bottom:.23rem;

  color:#929adb;

  font-size:.35rem;
  font-weight:700;

  letter-spacing:.17em;

  text-transform:uppercase;
}


.service-page-redesign .cyber-shield-core strong{
  color:#ffffff;

  font-size:.55rem;
  font-weight:800;

  letter-spacing:.07em;

  line-height:1;

  text-transform:uppercase;

  text-shadow:
    0 0 8px rgba(135,146,255,.30);
}


.service-page-redesign .cyber-core-label{
  margin-top:.3rem;

  color:#7d85b7;

  font-size:.29rem;
  font-weight:700;

  letter-spacing:.10em;

  text-transform:uppercase;
}


/* =========================================================
   CONTINUOUS SECURITY SCAN
========================================================= */

.service-page-redesign .cyber-shield-scan{
  position:absolute;

  left:22%;
  right:22%;
  top:23%;

  height:1px;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(185,192,255,.25),
      #c9ceff,
      rgba(122,136,255,.55),
      transparent
    );

  box-shadow:
    0 0 7px rgba(112,126,255,.55);

  opacity:0;

  z-index:6;

  animation:
    cyberShieldScan
    3.8s
    cubic-bezier(.4,0,.2,1)
    infinite;
}


@keyframes cyberShieldScan{

  0%{
    transform:translateY(0);
    opacity:0;
  }

  12%{
    opacity:.8;
  }

  82%{
    opacity:.8;
  }

  100%{
    transform:translateY(92px);
    opacity:0;
  }

}


/* =========================================================
   CONTROL LABELS
========================================================= */

.service-page-redesign .cyber-control{
  position:absolute;

  display:flex;
  flex-direction:column;

  z-index:7;
}


.service-page-redesign .cyber-control-kicker{
  margin-bottom:.16rem;

  color:#747ca8;

  font-size:.39rem;
  font-weight:700;

  letter-spacing:.16em;

  text-transform:uppercase;
}


.service-page-redesign .cyber-control strong{
  color:#c5c8d8;

  font-size:.59rem;
  font-weight:700;

  letter-spacing:.06em;

  line-height:1.15;

  text-transform:uppercase;

  white-space:nowrap;

  transition:
    color .3s ease,
    text-shadow .3s ease;
}


.service-page-redesign .cyber-control-node{
  display:block;

  width:9px;
  height:9px;

  border:1px solid rgba(139,150,255,.74);
  border-radius:50%;

  background:#16161f;

  box-shadow:
    0 0 0 3px rgba(92,109,245,.04),
    0 0 8px rgba(92,109,245,.28);

  transition:
    background .3s ease,
    border-color .3s ease,
    box-shadow .3s ease;
}


/* =========================================================
   GOVERNANCE — TOP
========================================================= */

.service-page-redesign .cyber-control-top{
  left:50%;
  top:21px;

  transform:translateX(-50%);

  align-items:center;

  text-align:center;
}


.service-page-redesign
.cyber-control-top
.cyber-control-node{
  margin-top:.42rem;
}


.service-page-redesign .cyber-control-top::after{
  content:"";

  position:absolute;

  left:50%;
  top:100%;

  width:1px;
  height:16px;

  transform:translateX(-50%);

  background:
    linear-gradient(
      180deg,
      rgba(112,126,255,.55),
      transparent
    );
}


/* =========================================================
   RISK — LEFT
========================================================= */

.service-page-redesign .cyber-control-left{
  left:26px;
  top:50%;

  transform:translateY(-50%);

  align-items:flex-end;

  text-align:right;
}


.service-page-redesign
.cyber-control-left
.cyber-control-node{
  margin-top:.42rem;
}


.service-page-redesign .cyber-control-left::after{
  content:"";

  position:absolute;

  left:calc(100% + 14px);
  top:50%;

  width:50px;
  height:1px;

  background:
    linear-gradient(
      90deg,
      rgba(112,126,255,.25),
      rgba(112,126,255,.55)
    );
}


/* =========================================================
   PROTECTION — RIGHT
========================================================= */

.service-page-redesign .cyber-control-right{
  right:26px;
  top:50%;

  transform:translateY(-50%);

  align-items:flex-start;

  text-align:left;
}


.service-page-redesign
.cyber-control-right
.cyber-control-node{
  margin-bottom:.42rem;
}


.service-page-redesign .cyber-control-right::after{
  content:"";

  position:absolute;

  right:calc(100% + 14px);
  top:50%;

  width:50px;
  height:1px;

  background:
    linear-gradient(
      90deg,
      rgba(112,126,255,.55),
      rgba(112,126,255,.25)
    );
}


/* =========================================================
   RECOVERY — BOTTOM
========================================================= */

.service-page-redesign .cyber-control-bottom{
  left:50%;
  bottom:19px;

  transform:translateX(-50%);

  align-items:center;

  text-align:center;
}


.service-page-redesign
.cyber-control-bottom
.cyber-control-node{
  margin-bottom:.42rem;
}


.service-page-redesign .cyber-control-bottom::before{
  content:"";

  position:absolute;

  left:50%;
  bottom:100%;

  width:1px;
  height:16px;

  transform:translateX(-50%);

  background:
    linear-gradient(
      0deg,
      rgba(112,126,255,.55),
      transparent
    );
}


/* =========================================================
   PERIMETER THREAT SIGNALS
========================================================= */

.service-page-redesign .cyber-threat-signal{
  position:absolute;

  top:35%;

  width:7px;
  height:7px;

  border-radius:50%;

  background:#aeb6ff;

  box-shadow:
    0 0 4px rgba(238,240,255,.95),
    0 0 10px rgba(151,161,255,.72),
    0 0 19px rgba(92,109,245,.30);

  opacity:0;

  z-index:5;

  pointer-events:none;
}


.service-page-redesign .cyber-threat-signal-left{
  left:38px;

  animation:
    cyberThreatLeft
    5.2s
    ease-in-out
    infinite;
}


.service-page-redesign .cyber-threat-signal-right{
  right:38px;

  animation:
    cyberThreatRight
    5.2s
    ease-in-out
    2.6s
    infinite;
}


@keyframes cyberThreatLeft{

  0%{
    transform:translateX(0);
    opacity:0;
  }

  16%{
    opacity:.85;
  }

  70%{
    opacity:.85;
  }

  82%{
    transform:translateX(105px);
    opacity:1;
  }

  100%{
    transform:translateX(105px) scale(.35);
    opacity:0;
  }

}


@keyframes cyberThreatRight{

  0%{
    transform:translateX(0);
    opacity:0;
  }

  16%{
    opacity:.85;
  }

  70%{
    opacity:.85;
  }

  82%{
    transform:translateX(-105px);
    opacity:1;
  }

  100%{
    transform:translateX(-105px) scale(.35);
    opacity:0;
  }

}


/* =========================================================
   SUBTLE INTERACTION
========================================================= */

.service-page-redesign
.cyber-control:hover
strong{
  color:#ffffff;

  text-shadow:
    0 0 7px rgba(119,131,255,.30);
}


.service-page-redesign
.cyber-control:hover
.cyber-control-node{
  border-color:#a6afff;

  background:#6876f6;

  box-shadow:
    0 0 0 4px rgba(92,109,245,.07),
    0 0 11px rgba(122,135,255,.62),
    0 0 20px rgba(92,109,245,.20);
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .service-page-redesign .cyber-defense-system{
    justify-self:start;

    width:440px;
    max-width:100%;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .service-page-redesign .cyber-defense-system{
    justify-self:center;

    width:min(100%,440px);
    height:286px;

    margin-top:.25rem;
  }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:480px){

  .service-page-redesign .cyber-defense-system{
    width:100%;
    height:264px;

    border-radius:18px;
  }


  .service-page-redesign .cyber-shield{
    width:132px;
    height:154px;
  }


  .service-page-redesign .cyber-shield-outer{
    width:132px;
    height:154px;
  }


  .service-page-redesign .cyber-shield-middle{
    width:104px;
    height:122px;
  }


  .service-page-redesign .cyber-shield-inner{
    width:79px;
    height:96px;
  }


  .service-page-redesign .cyber-shield-core{
    width:61px;
    height:74px;
  }


  .service-page-redesign .cyber-shield-core strong{
    font-size:.49rem;
  }


  .service-page-redesign .cyber-control strong{
    font-size:.51rem;
    letter-spacing:.035em;
  }


  .service-page-redesign .cyber-control-kicker{
    font-size:.34rem;
    letter-spacing:.11em;
  }


  .service-page-redesign .cyber-control-top{
    top:17px;
  }


  .service-page-redesign .cyber-control-bottom{
    bottom:15px;
  }


  .service-page-redesign .cyber-control-left{
    left:12px;
  }


  .service-page-redesign .cyber-control-right{
    right:12px;
  }


  .service-page-redesign .cyber-control-left::after,
  .service-page-redesign .cyber-control-right::after{
    width:34px;
  }


  .service-page-redesign .cyber-control-left::after{
    left:calc(100% + 9px);
  }


  .service-page-redesign .cyber-control-right::after{
    right:calc(100% + 9px);
  }


  .service-page-redesign .cyber-threat-signal-left{
    left:18px;
  }


  .service-page-redesign .cyber-threat-signal-right{
    right:18px;
  }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media(prefers-reduced-motion:reduce){

  .service-page-redesign .cyber-shield-outer,
  .service-page-redesign .cyber-shield-scan,
  .service-page-redesign .cyber-threat-signal-left,
  .service-page-redesign .cyber-threat-signal-right{
    animation:none;
  }

}






/* =========================================================
   CYBERSECURITY — FINAL GEOMETRY CORRECTIONS
   Wider shield + symmetrical side controls
========================================================= */


/* =========================================================
   WIDEN THE ENTIRE SHIELD
========================================================= */

.service-page-redesign .cyber-shield{
  width:188px;
  height:174px;
}


.service-page-redesign .cyber-shield-outer{
  width:188px;
  height:174px;
}


.service-page-redesign .cyber-shield-middle{
  width:150px;
  height:138px;
}


.service-page-redesign .cyber-shield-inner{
  width:116px;
  height:108px;
}


/* =========================================================
   CENTRE CORE
   Remove clipping so RESILIENCE is fully visible
========================================================= */

.service-page-redesign .cyber-shield-core{
  width:104px;
  height:70px;

  clip-path:none;

  border:1px solid rgba(124,136,255,.42);
  border-radius:14px;

  background:
    radial-gradient(
      circle at 50% 35%,
      rgba(108,121,255,.22),
      rgba(25,25,37,.98) 58%,
      rgba(13,13,18,.99)
    );

  box-shadow:
    0 0 16px rgba(92,109,245,.10),
    inset 0 1px 0 rgba(255,255,255,.07);
}


.service-page-redesign .cyber-shield-core strong{
  color:#ffffff;

  font-size:.60rem;
  font-weight:800;

  line-height:1;

  letter-spacing:.065em;

  white-space:nowrap;

  text-shadow:
    0 0 5px rgba(255,255,255,.18),
    0 0 12px rgba(112,126,255,.36);
}


.service-page-redesign .cyber-core-label{
  margin-top:.32rem;

  color:#858dc5;

  font-size:.28rem;
  font-weight:700;

  letter-spacing:.10em;

  text-transform:uppercase;
  white-space:nowrap;
}


/* =========================================================
   PERFECTLY MIRROR RISK + PROTECTION
========================================================= */

.service-page-redesign .cyber-control-left,
.service-page-redesign .cyber-control-right{
  top:50%;

  width:92px;
  min-height:44px;

  transform:translateY(-50%);

  justify-content:center;
}


/* LEFT — RISK */

.service-page-redesign .cyber-control-left{
  left:22px;

  padding-right:18px;

  align-items:flex-end;

  text-align:right;
}


/* RIGHT — PROTECTION */

.service-page-redesign .cyber-control-right{
  right:22px;

  padding-left:18px;

  align-items:flex-start;

  text-align:left;
}


/* =========================================================
   LOCK SIDE NODES TO EXACT MIRRORED POSITIONS
========================================================= */

.service-page-redesign
.cyber-control-left
.cyber-control-node{
  position:absolute;

  right:0;
  top:50%;

  margin:0;

  transform:translateY(-50%);
}


.service-page-redesign
.cyber-control-right
.cyber-control-node{
  position:absolute;

  left:0;
  top:50%;

  margin:0;

  transform:translateY(-50%);
}


/* =========================================================
   SYMMETRICAL CONNECTOR LINES
========================================================= */

.service-page-redesign .cyber-control-left::after{
  left:calc(100% + 4px);
  top:50%;

  width:14px;
  height:1px;

  transform:translateY(-50%);

  background:
    linear-gradient(
      90deg,
      rgba(112,126,255,.35),
      rgba(112,126,255,.65)
    );
}


.service-page-redesign .cyber-control-right::after{
  right:calc(100% + 4px);
  top:50%;

  width:14px;
  height:1px;

  transform:translateY(-50%);

  background:
    linear-gradient(
      90deg,
      rgba(112,126,255,.65),
      rgba(112,126,255,.35)
    );
}


/* =========================================================
   THREAT SIGNALS NOW STOP AT THE WIDER SHIELD
========================================================= */

@keyframes cyberThreatLeft{

  0%{
    transform:translateX(0);
    opacity:0;
  }

  16%{
    opacity:.85;
  }

  70%{
    opacity:.85;
  }

  82%{
    transform:translateX(88px);
    opacity:1;
  }

  100%{
    transform:translateX(88px) scale(.35);
    opacity:0;
  }

}


@keyframes cyberThreatRight{

  0%{
    transform:translateX(0);
    opacity:0;
  }

  16%{
    opacity:.85;
  }

  70%{
    opacity:.85;
  }

  82%{
    transform:translateX(-88px);
    opacity:1;
  }

  100%{
    transform:translateX(-88px) scale(.35);
    opacity:0;
  }

}


/* =========================================================
   SMALL MOBILE CORRECTIONS
========================================================= */

@media(max-width:480px){

  .service-page-redesign .cyber-shield{
    width:146px;
    height:154px;
  }


  .service-page-redesign .cyber-shield-outer{
    width:146px;
    height:154px;
  }


  .service-page-redesign .cyber-shield-middle{
    width:116px;
    height:122px;
  }


  .service-page-redesign .cyber-shield-inner{
    width:88px;
    height:96px;
  }


  .service-page-redesign .cyber-shield-core{
    width:88px;
    height:60px;

    border-radius:12px;
  }


  .service-page-redesign .cyber-shield-core strong{
    font-size:.48rem;
  }


  .service-page-redesign .cyber-core-label{
    font-size:.24rem;
  }


  .service-page-redesign .cyber-control-left,
  .service-page-redesign .cyber-control-right{
    width:78px;
  }


  .service-page-redesign .cyber-control-left{
    left:10px;
    padding-right:14px;
  }


  .service-page-redesign .cyber-control-right{
    right:10px;
    padding-left:14px;
  }


  .service-page-redesign .cyber-control-left::after,
  .service-page-redesign .cyber-control-right::after{
    width:10px;
  }

}





/* =========================================================
   AIMS — BUSINESS INTELLIGENCE & ANALYTICS
   DATA-TO-DECISION INTELLIGENCE PIPELINE
========================================================= */

.service-page-redesign .bi-intelligence-system{
  position:relative;
  isolation:isolate;

  width:440px;
  max-width:100%;
  height:286px;

  justify-self:end;
  align-self:center;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.075);
  border-radius:22px;

  background:
    radial-gradient(
      ellipse at 52% 48%,
      rgba(92,109,245,.105) 0%,
      rgba(92,109,245,.035) 31%,
      transparent 66%
    ),
    linear-gradient(
      145deg,
      rgba(255,255,255,.018),
      rgba(255,255,255,.004)
    ),
    #111116;

  box-shadow:
    0 22px 50px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.025);
}


/* =========================================================
   FAINT ANALYTICS GRID
========================================================= */

.service-page-redesign .bi-intelligence-system::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      rgba(112,124,255,.026) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(112,124,255,.026) 1px,
      transparent 1px
    );

  background-size:30px 30px;

  -webkit-mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.72) 46%,
      transparent 86%
    );

  mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.72) 46%,
      transparent 86%
    );

  pointer-events:none;

  z-index:0;
}


/* subtle horizontal data glow */

.service-page-redesign .bi-intelligence-system::after{
  content:"";

  position:absolute;

  left:8%;
  right:8%;
  top:50%;

  height:60px;

  transform:translateY(-50%);

  background:
    radial-gradient(
      ellipse at center,
      rgba(92,109,245,.065),
      transparent 70%
    );

  filter:blur(8px);

  pointer-events:none;

  z-index:0;
}


/* =========================================================
   HEADER
========================================================= */

.service-page-redesign .bi-system-kicker{
  position:absolute;

  left:50%;
  top:24px;

  transform:translateX(-50%);

  color:#8189bb;

  font-size:.43rem;
  font-weight:700;

  letter-spacing:.19em;

  text-transform:uppercase;
  white-space:nowrap;

  z-index:5;
}


/* =========================================================
   PIPELINE RAIL
========================================================= */

.service-page-redesign .bi-pipeline-rail{
  position:absolute;

  left:54px;
  right:54px;
  top:135px;

  height:1px;

  background:
    linear-gradient(
      90deg,
      rgba(92,109,245,.18),
      rgba(116,129,255,.55) 18%,
      rgba(116,129,255,.42) 50%,
      rgba(116,129,255,.55) 82%,
      rgba(92,109,245,.18)
    );

  box-shadow:
    0 0 10px rgba(92,109,245,.08);

  z-index:auto;
}


/* =========================================================
   MOVING INTELLIGENCE SIGNAL
========================================================= */

.service-page-redesign .bi-pipeline-flow{
  position:absolute;

  left:0;
  top:50%;

  width:8px;
  height:8px;

  transform:
    translate(-50%,-50%);

  border-radius:50%;

  background:#c3c9ff;

  box-shadow:
    0 0 4px rgba(255,255,255,.95),
    0 0 10px rgba(163,173,255,.78),
    0 0 20px rgba(92,109,245,.38);

  animation:
    biPipelineFlow
    5.2s
    cubic-bezier(.45,0,.2,1)
    infinite;

  z-index:10;
}


@keyframes biPipelineFlow{

  0%{
    left:0;
    opacity:0;
  }

  7%{
    opacity:1;
  }

  92%{
    opacity:1;
  }

  100%{
    left:100%;
    opacity:0;
  }

}


/* =========================================================
   COMMON PIPELINE STAGE
========================================================= */

.service-page-redesign .bi-stage{
  position:absolute;

  top:67px;

  width:86px;

  display:flex;
  flex-direction:column;
  align-items:center;

  text-align:center;

  z-index:4;
}


/* =========================================================
   EXACT STAGE POSITIONS
========================================================= */

.service-page-redesign .bi-stage-dashboard{
  left:27px;
}


.service-page-redesign .bi-stage-kpi{
  left:127px;
}


.service-page-redesign .bi-stage-analytics{
  left:227px;
}


.service-page-redesign .bi-stage-decision{
  left:327px;
}


/* =========================================================
   STAGE VISUAL CONTAINER
========================================================= */

.service-page-redesign .bi-stage-visual{
  position:relative;

  width:58px;
  height:54px;

  display:flex;
  align-items:center;
  justify-content:center;

  margin-bottom:12px;

  border:1px solid rgba(124,136,255,.24);
  border-radius:13px;

  background:
    linear-gradient(
      145deg,
      rgba(103,116,255,.095),
      rgba(18,18,25,.90)
    );

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.035),
    0 0 14px rgba(92,109,245,.045);

  transition:
    border-color .3s ease,
    box-shadow .3s ease,
    transform .3s ease;
}


/* =========================================================
   PIPELINE NODES
========================================================= */

.service-page-redesign .bi-stage-node{
  position:absolute;

  left:50%;
  top:68px;

  width:10px;
  height:10px;

  transform:
    translate(-50%,-50%);

  border:
    1px solid
    rgba(144,154,255,.74);

  border-radius:50%;

  background:#16161f;

  box-shadow:
    0 0 0 3px rgba(92,109,245,.04),
    0 0 8px rgba(92,109,245,.28);

  z-index:5;
}


/* =========================================================
   STAGE COPY
========================================================= */

.service-page-redesign .bi-stage-copy{
  margin-top:15px;

  display:flex;
  flex-direction:column;
  align-items:center;

  gap:.16rem;
}


.service-page-redesign .bi-stage-copy span{
  color:#727aa7;

  font-size:.36rem;
  font-weight:700;

  letter-spacing:.16em;

  text-transform:uppercase;
}


.service-page-redesign .bi-stage-copy strong{
  color:#c4c7d7;

  font-size:.54rem;
  font-weight:700;

  line-height:1.2;

  letter-spacing:.035em;

  text-transform:uppercase;

  white-space:nowrap;

  transition:
    color .3s ease,
    text-shadow .3s ease;
}


/* decision support needs a little less spacing */

.service-page-redesign
.bi-stage-decision
.bi-stage-copy strong{
  font-size:.48rem;
  letter-spacing:.01em;
}


/* =========================================================
   DASHBOARD ICON
========================================================= */

.service-page-redesign .bi-dashboard-visual{
  align-items:flex-end;

  gap:5px;

  padding-bottom:11px;
}


.service-page-redesign .bi-dashboard-bar{
  display:block;

  width:7px;

  border-radius:2px 2px 0 0;

  background:
    linear-gradient(
      180deg,
      #919cff,
      rgba(92,109,245,.42)
    );

  box-shadow:
    0 0 6px rgba(92,109,245,.18);
}


.service-page-redesign .bi-dashboard-bar-1{
  height:13px;
}


.service-page-redesign .bi-dashboard-bar-2{
  height:25px;
}


.service-page-redesign .bi-dashboard-bar-3{
  height:18px;
}


/* =========================================================
   KPI ICON
========================================================= */

.service-page-redesign .bi-kpi-visual{
  border-radius:50%;
}


.service-page-redesign .bi-kpi-visual::before{
  content:"";

  position:absolute;
  inset:7px;

  border-radius:50%;

  background:
    conic-gradient(
      #919cff 0deg 259.2deg,
      rgba(126,140,255,.18) 259.2deg 360deg
    );

  box-shadow:
    0 0 9px rgba(92,109,245,.12);
}

.service-page-redesign .bi-kpi-visual::after{
  content:"";

  position:absolute;
  inset:9px;

  border-radius:50%;

  background:#15151d;

  z-index:1;
}


.service-page-redesign .bi-kpi-visual > span{
  position:absolute;

  left:50%;
  top:50%;

  transform:translate(-58%,-50%);

  color:#fff;

  font-size:.93rem;
  font-weight:700;
  line-height:1;

  z-index:2;
}


.service-page-redesign .bi-kpi-visual > small{
  position:absolute;

  left:calc(50% + 9px);
  top:50%;

  transform:translateY(-48%);

  margin:0;

  color:#8d96d4;

  font-size:.44rem;
  font-weight:700;
  line-height:1;

  z-index:2;
}


/* =========================================================
   ANALYTICS ICON
========================================================= */

.service-page-redesign .bi-analytics-visual svg{
  width:44px;
  height:30px;

  overflow:visible;
}


.service-page-redesign
.bi-analytics-visual
polyline{
  fill:none;

  stroke:#8f9aff;

  stroke-width:1.7;

  stroke-linecap:round;
  stroke-linejoin:round;

  filter:
    drop-shadow(
      0 0 3px
      rgba(92,109,245,.35)
    );
}


.service-page-redesign
.bi-analytics-visual
circle{
  fill:#b0b8ff;

  stroke:#15151d;

  stroke-width:1;
}


/* =========================================================
   DECISION SUPPORT ICON
========================================================= */

.service-page-redesign .bi-decision-diamond{
  position:absolute;

  width:27px;
  height:27px;

  transform:rotate(45deg);

  border:
    1px solid
    rgba(141,152,255,.62);

  background:
    rgba(92,109,245,.07);

  box-shadow:
    0 0 10px rgba(92,109,245,.10);
}


.service-page-redesign .bi-decision-core{
  position:absolute;

  width:8px;
  height:8px;

  border-radius:50%;

  background:#a8b1ff;

  box-shadow:
    0 0 5px rgba(201,206,255,.8),
    0 0 12px rgba(92,109,245,.35);

  z-index:2;
}


/* =========================================================
   OUTPUT / DECISION END STATE
========================================================= */

.service-page-redesign .bi-intelligence-output{
  position:absolute;

  left:50%;
  bottom:20px;

  transform:translateX(-50%);

  display:flex;
  align-items:center;

  gap:.45rem;

  z-index:4;
}


.service-page-redesign .bi-intelligence-output::before,
.service-page-redesign .bi-intelligence-output::after{
  content:"";

  width:36px;
  height:1px;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(112,126,255,.42)
    );
}


.service-page-redesign
.bi-intelligence-output::after{
  transform:scaleX(-1);
}


.service-page-redesign .bi-intelligence-output span{
  color:#747ca9;

  font-size:.34rem;
  font-weight:700;

  letter-spacing:.15em;
}


.service-page-redesign .bi-intelligence-output strong{
  color:#bfc4ee;

  font-size:.43rem;
  font-weight:700;

  letter-spacing:.11em;
}


/* =========================================================
   SUBTLE INTERACTION
========================================================= */

.service-page-redesign
.bi-stage:hover
.bi-stage-visual{
  transform:translateY(-2px);

  border-color:
    rgba(141,152,255,.55);

  box-shadow:
    0 0 18px rgba(92,109,245,.12),
    inset 0 1px 0 rgba(255,255,255,.055);
}


.service-page-redesign
.bi-stage:hover
.bi-stage-copy strong{
  color:#ffffff;

  text-shadow:
    0 0 7px rgba(119,131,255,.28);
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .service-page-redesign .bi-intelligence-system{
    justify-self:start;

    width:440px;
    max-width:100%;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .service-page-redesign .bi-intelligence-system{
    justify-self:center;

    width:min(100%,440px);
    height:286px;

    margin-top:.25rem;
  }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:480px){

  .service-page-redesign .bi-intelligence-system{
    width:100%;
    height:264px;

    border-radius:18px;
  }


  .service-page-redesign .bi-pipeline-rail{
    left:39px;
    right:39px;
    top:130px;
  }


  .service-page-redesign .bi-stage{
    top:61px;

    width:68px;
  }


  .service-page-redesign .bi-stage-dashboard{
    left:7px;
  }


  .service-page-redesign .bi-stage-kpi{
    left:calc(33.333% - 34px);
  }


  .service-page-redesign .bi-stage-analytics{
    left:calc(66.666% - 34px);
  }


  .service-page-redesign .bi-stage-decision{
    left:auto;
    right:7px;
  }


  .service-page-redesign .bi-stage-visual{
    width:50px;
    height:48px;

    border-radius:11px;
  }


  .service-page-redesign .bi-stage-node{
    top:69px;

    width:9px;
    height:9px;
  }


  .service-page-redesign .bi-stage-copy{
    margin-top:17px;
  }


  .service-page-redesign .bi-stage-copy strong{
    font-size:.46rem;
    letter-spacing:.015em;
  }


  .service-page-redesign
  .bi-stage-decision
  .bi-stage-copy strong{
    font-size:.39rem;
  }


  .service-page-redesign .bi-stage-copy span{
    font-size:.31rem;
    letter-spacing:.11em;
  }


  .service-page-redesign .bi-system-kicker{
    top:20px;
  }


  .service-page-redesign .bi-intelligence-output{
    bottom:17px;
  }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media(prefers-reduced-motion:reduce){

  .service-page-redesign .bi-pipeline-flow{
    animation:none;
  }

}





/* =========================================================
   AIMS — BUSINESS PROCESS & DIGITAL ENABLEMENT
   PROCESS TRANSFORMATION SYSTEM
========================================================= */

.service-page-redesign .process-transform-system{
  position:relative;
  isolation:isolate;

  width:440px;
  max-width:100%;
  height:286px;

  justify-self:end;
  align-self:center;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.075);
  border-radius:22px;

  background:
    radial-gradient(
      ellipse at 50% 48%,
      rgba(92,109,245,.105) 0%,
      rgba(92,109,245,.035) 32%,
      transparent 66%
    ),
    linear-gradient(
      145deg,
      rgba(255,255,255,.018),
      rgba(255,255,255,.004)
    ),
    #111116;

  box-shadow:
    0 22px 50px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.025);
}


/* =========================================================
   TECHNICAL GRID
========================================================= */

.service-page-redesign .process-transform-system::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      rgba(112,124,255,.027) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(112,124,255,.027) 1px,
      transparent 1px
    );

  background-size:30px 30px;

  -webkit-mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.72) 43%,
      transparent 84%
    );

  mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.72) 43%,
      transparent 84%
    );

  pointer-events:none;

  z-index:0;
}


.service-page-redesign .process-transform-system::after{
  content:"";

  position:absolute;

  left:50%;
  top:50%;

  width:190px;
  height:170px;

  transform:translate(-50%,-50%);

  border-radius:50%;

  background:
    radial-gradient(
      circle,
      rgba(92,109,245,.07),
      transparent 69%
    );

  filter:blur(8px);

  pointer-events:none;

  z-index:0;
}


/* =========================================================
   SYSTEM HEADER
========================================================= */

.service-page-redesign .process-system-kicker{
  position:absolute;

  left:50%;
  top:23px;

  transform:translateX(-50%);

  color:#8088ba;

  font-size:.43rem;
  font-weight:700;

  letter-spacing:.19em;

  text-transform:uppercase;
  white-space:nowrap;

  z-index:6;
}


/* =========================================================
   CONNECTION ARCHITECTURE
========================================================= */

.service-page-redesign .process-transform-lines{
  position:absolute;

  inset:0;

  width:100%;
  height:100%;

  pointer-events:none;

  z-index:1;
}


.service-page-redesign .process-flow-line,
.service-page-redesign .process-output-line{
  fill:none;

  stroke:rgba(108,121,255,.23);

  stroke-width:1;

  vector-effect:non-scaling-stroke;
}


.service-page-redesign .process-flow-line-strong{
  stroke:rgba(119,132,255,.48);
}


/* =========================================================
   MOVING PROCESS SIGNAL
========================================================= */

/* =========================================================
   MULTI-STREAM PROCESS FLOW
========================================================= */

.service-page-redesign .process-flow-signal{
  fill:none;

  stroke:#aab3ff;

  stroke-width:1.6;

  stroke-linecap:round;

  stroke-dasharray:
    7
    92;

  filter:
    drop-shadow(
      0 0 4px
      rgba(137,149,255,.82)
    );

  vector-effect:non-scaling-stroke;

  pointer-events:none;
}


/* =========================================================
   THREE INPUT STREAMS
   Each fragmented process moves INTO the workflow engine
========================================================= */

.service-page-redesign .process-signal-input{
  animation:
    processInputFlow
    3.2s
    linear
    infinite;
}


.service-page-redesign .process-signal-input-top{
  animation-delay:0s;
}


.service-page-redesign .process-signal-input-middle{
  animation-delay:.38s;
}


.service-page-redesign .process-signal-input-bottom{
  animation-delay:.76s;
}


@keyframes processInputFlow{

  from{
    stroke-dashoffset:0;
  }

  to{
    stroke-dashoffset:-198;
  }

}


/* =========================================================
   THREE OUTPUT STREAMS
   Automated workflow distributes OUT to integrations
========================================================= */

.service-page-redesign .process-signal-output{
  animation:
    processOutputFlow
    3.2s
    linear
    infinite;
}


/*
   Delay output slightly so visually it feels like:
   input → engine → output
*/

.service-page-redesign .process-signal-output-top{
  animation-delay:1.05s;
}


.service-page-redesign .process-signal-output-middle{
  animation-delay:1.43s;
}


.service-page-redesign .process-signal-output-bottom{
  animation-delay:1.81s;
}


@keyframes processOutputFlow{

  from{
    stroke-dashoffset:0;
  }

  to{
    stroke-dashoffset:-260;
  }

}


/* =========================================================
   FRAGMENTED PROCESS LABEL
========================================================= */

.service-page-redesign .process-input-cluster{
  position:absolute;

  left:25px;
  top:49px;

  display:flex;
  flex-direction:column;

  z-index:5;
}


.service-page-redesign .process-cluster-kicker{
  margin-bottom:.17rem;

  color:#727aa5;

  font-size:.37rem;
  font-weight:700;

  letter-spacing:.16em;

  text-transform:uppercase;
}


.service-page-redesign .process-input-cluster strong{
  color:#c3c6d5;

  font-size:.59rem;
  font-weight:700;

  letter-spacing:.06em;

  text-transform:uppercase;
}


/* =========================================================
   FRAGMENTED MANUAL INPUT BLOCKS
========================================================= */

.service-page-redesign .process-input{
  position:absolute;

  left:36px;

  width:46px;
  height:25px;

  padding:6px;

  display:flex;
  align-items:center;

  gap:4px;

  border:1px solid rgba(128,139,255,.20);
  border-radius:7px;

  background:
    rgba(20,20,28,.93);

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025);

  z-index:4;
}


.service-page-redesign .process-input-top{
  top:78px;
}


.service-page-redesign .process-input-middle{
  top:124px;
}


.service-page-redesign .process-input-bottom{
  top:170px;
}


.service-page-redesign .process-input > span{
  display:block;

  flex:1;

  height:3px;

  border-radius:4px;

  background:
    rgba(122,133,199,.42);
}


.service-page-redesign .process-input > span:nth-child(2){
  opacity:.62;
}


.service-page-redesign .process-input > span:nth-child(3){
  opacity:.35;
}


/* =========================================================
   CENTRAL WORKFLOW ENGINE
========================================================= */

.service-page-redesign .process-engine{
  position:absolute;

  left:50%;
  top:137px;

  width:92px;
  height:106px;

  transform:translate(-50%,-50%);

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  border:
    1px solid
    rgba(130,142,255,.47);

  clip-path:
    polygon(
      18% 0%,
      82% 0%,
      100% 18%,
      100% 82%,
      82% 100%,
      18% 100%,
      0% 82%,
      0% 18%
    );

  background:
    linear-gradient(
      145deg,
      rgba(102,115,255,.17),
      rgba(21,21,31,.98) 52%,
      rgba(13,13,18,.99)
    );

  box-shadow:
    0 0 0 5px rgba(92,109,245,.025),
    0 0 25px rgba(92,109,245,.13);

  z-index:5;
}


.service-page-redesign .process-engine-kicker{
  color:#818acf;

  font-size:.35rem;
  font-weight:700;

  letter-spacing:.16em;

  text-transform:uppercase;
}


.service-page-redesign .process-engine > strong{
  margin-top:.26rem;

  color:#ffffff;

  font-size:.63rem;
  font-weight:800;

  letter-spacing:.06em;

  text-transform:uppercase;

  text-shadow:
    0 0 8px rgba(116,129,255,.25);
}


/* =========================================================
   AUTOMATION CORE
========================================================= */

.service-page-redesign .process-engine-core{
  position:relative;

  width:27px;
  height:27px;

  margin:.48rem 0 .40rem;

  border:
    1px solid
    rgba(144,154,255,.62);

  border-radius:50%;

  box-shadow:
    0 0 12px rgba(92,109,245,.14);
}


.service-page-redesign .process-engine-core::before,
.service-page-redesign .process-engine-core::after{
  content:"";

  position:absolute;

  left:50%;
  top:50%;

  background:
    rgba(137,148,255,.68);

  transform:
    translate(-50%,-50%);
}


.service-page-redesign .process-engine-core::before{
  width:14px;
  height:1px;
}


.service-page-redesign .process-engine-core::after{
  width:1px;
  height:14px;
}


.service-page-redesign .process-engine-core > span{
  position:absolute;

  left:50%;
  top:50%;

  width:7px;
  height:7px;

  transform:
    translate(-50%,-50%);

  border-radius:50%;

  background:#adb6ff;

  box-shadow:
    0 0 5px rgba(222,225,255,.75),
    0 0 11px rgba(92,109,245,.38);

  animation:
    processEnginePulse
    2.8s
    ease-in-out
    infinite;
}


@keyframes processEnginePulse{

  0%,
  100%{
    transform:
      translate(-50%,-50%)
      scale(.85);

    opacity:.70;
  }

  50%{
    transform:
      translate(-50%,-50%)
      scale(1.15);

    opacity:1;
  }

}


.service-page-redesign .process-engine-label{
  color:#7c85bf;

  font-size:.31rem;
  font-weight:700;

  letter-spacing:.12em;

  text-transform:uppercase;
}


/* =========================================================
   WORKFLOW LABEL
========================================================= */

.service-page-redesign .process-workflow-label{
  position:absolute;

  left:50%;
  top:48px;

  transform:translateX(-50%);

  display:flex;
  flex-direction:column;
  align-items:center;

  text-align:center;

  z-index:5;
}


.service-page-redesign .process-workflow-label span{
  margin-bottom:.12rem;

  color:#747ca9;

  font-size:.34rem;
  font-weight:700;

  letter-spacing:.15em;

  text-transform:uppercase;
}


.service-page-redesign .process-workflow-label strong{
  color:#c4c7d8;

  font-size:.56rem;
  font-weight:700;

  letter-spacing:.055em;

  text-transform:uppercase;
}


/* =========================================================
   INTEGRATION LABEL
========================================================= */

.service-page-redesign .process-output-cluster{
  position:absolute;

  right:22px;
  top:49px;

  display:flex;
  flex-direction:column;
  align-items:flex-end;

  text-align:right;

  z-index:5;
}


.service-page-redesign .process-output-cluster strong{
  color:#c3c6d5;

  font-size:.59rem;
  font-weight:700;

  letter-spacing:.055em;

  text-transform:uppercase;
}


/* =========================================================
   INTEGRATED DIGITAL OUTPUTS
========================================================= */

.service-page-redesign .process-output{
  position:absolute;

  right:30px;

  width:38px;
  height:26px;

  display:flex;
  align-items:center;

  gap:7px;

  z-index:5;
}


.service-page-redesign .process-output-top{
  top:78px;
}


.service-page-redesign .process-output-middle{
  top:124px;
}


.service-page-redesign .process-output-bottom{
  top:170px;
}


.service-page-redesign .process-output-node{
  flex:0 0 auto;

  display:block;

  width:9px;
  height:9px;

  border:
    1px solid
    rgba(145,155,255,.74);

  border-radius:50%;

  background:#171720;

  box-shadow:
    0 0 0 3px rgba(92,109,245,.04),
    0 0 8px rgba(92,109,245,.28);
}


.service-page-redesign .process-output > div{
  flex:1;

  display:flex;
  flex-direction:column;

  gap:4px;
}


.service-page-redesign .process-output > div > span{
  display:block;

  width:100%;
  height:3px;

  border-radius:3px;

  background:
    rgba(137,147,215,.52);
}


.service-page-redesign
.process-output
> div
> span:last-child{
  width:68%;

  opacity:.56;
}


/* =========================================================
   AUTOMATED FLOW STATUS
========================================================= */

.service-page-redesign .process-automation-status{
  position:absolute;

  left:50%;
  bottom:22px;

  transform:translateX(-50%);

  display:flex;
  align-items:center;

  gap:.45rem;

  color:#777fae;

  font-size:.34rem;
  font-weight:700;

  letter-spacing:.14em;

  white-space:nowrap;

  z-index:5;
}


.service-page-redesign .process-status-dot{
  width:6px;
  height:6px;

  border-radius:50%;

  background:#8f9aff;

  box-shadow:
    0 0 7px rgba(113,127,255,.55);

  animation:
    processStatusPulse
    2.4s
    ease-in-out
    infinite;
}


@keyframes processStatusPulse{

  0%,
  100%{
    opacity:.45;
  }

  50%{
    opacity:1;
  }

}


/* =========================================================
   INTERACTION
========================================================= */

.service-page-redesign .process-engine:hover{
  border-color:
    rgba(157,167,255,.72);

  box-shadow:
    0 0 0 5px rgba(92,109,245,.035),
    0 0 30px rgba(92,109,245,.20);
}


.service-page-redesign
.process-output:hover
.process-output-node{
  border-color:#abb3ff;

  background:#6876f6;

  box-shadow:
    0 0 0 4px rgba(92,109,245,.07),
    0 0 11px rgba(122,135,255,.60);
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .service-page-redesign .process-transform-system{
    justify-self:start;

    width:440px;
    max-width:100%;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .service-page-redesign .process-transform-system{
    justify-self:center;

    width:min(100%,440px);
    height:286px;

    margin-top:.25rem;
  }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:480px){

  .service-page-redesign .process-transform-system{
    width:100%;
    height:264px;

    border-radius:18px;
  }


  .service-page-redesign .process-system-kicker{
    top:18px;

    font-size:.39rem;
  }


  .service-page-redesign .process-workflow-label{
    top:42px;
  }


  .service-page-redesign .process-engine{
    top:129px;

    width:82px;
    height:96px;
  }


  .service-page-redesign .process-input-cluster{
    left:12px;
    top:44px;
  }


  .service-page-redesign .process-output-cluster{
    right:12px;
    top:44px;
  }


  .service-page-redesign .process-input{
    left:16px;

    width:39px;
  }


  .service-page-redesign .process-output{
    right:12px;

    width:34px;
  }


  .service-page-redesign .process-input-top,
  .service-page-redesign .process-output-top{
    top:72px;
  }


  .service-page-redesign .process-input-middle,
  .service-page-redesign .process-output-middle{
    top:118px;
  }


  .service-page-redesign .process-input-bottom,
  .service-page-redesign .process-output-bottom{
    top:164px;
  }


  .service-page-redesign .process-transform-lines{
    transform:
      translateY(-8px)
      scaleX(.92);

    transform-origin:center;
  }


  .service-page-redesign .process-automation-status{
    bottom:16px;
  }


  .service-page-redesign .process-input-cluster strong,
  .service-page-redesign .process-output-cluster strong{
    font-size:.49rem;
  }


  .service-page-redesign .process-cluster-kicker{
    font-size:.31rem;
  }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media(prefers-reduced-motion:reduce){

  .service-page-redesign .process-flow-signal,
  .service-page-redesign .process-engine-core > span,
  .service-page-redesign .process-status-dot{
    animation:none;
  }

}

/* =========================================================
   PROCESS — CENTRE MIDDLE INTEGRATION NODE
========================================================= */

.service-page-redesign
.process-output-middle
.process-output-node{
  transform:translateY(-1.5px);
}





/* =========================================================
   AIMS — BUSINESS DEVELOPMENT & ADVISORY
   ADVISORY ALIGNMENT FRAMEWORK
========================================================= */

.service-page-redesign .advisory-framework-system{
  position:relative;
  isolation:isolate;

  width:440px;
  max-width:100%;
  height:286px;

  justify-self:end;
  align-self:center;

  overflow:hidden;

  border:1px solid rgba(255,255,255,.075);
  border-radius:22px;

  background:
    radial-gradient(
      ellipse at 50% 48%,
      rgba(92,109,245,.105) 0%,
      rgba(92,109,245,.035) 31%,
      transparent 66%
    ),
    linear-gradient(
      145deg,
      rgba(255,255,255,.018),
      rgba(255,255,255,.004)
    ),
    #111116;

  box-shadow:
    0 22px 50px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.025);
}


/* =========================================================
   TECHNICAL GRID
========================================================= */

.service-page-redesign .advisory-framework-system::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      rgba(112,124,255,.026) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(112,124,255,.026) 1px,
      transparent 1px
    );

  background-size:30px 30px;

  -webkit-mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.7) 43%,
      transparent 84%
    );

  mask-image:
    radial-gradient(
      ellipse at center,
      #000 0%,
      rgba(0,0,0,.7) 43%,
      transparent 84%
    );

  pointer-events:none;

  z-index:0;
}


/* CENTRAL STRATEGIC GLOW */

.service-page-redesign .advisory-framework-system::after{
  content:"";

  position:absolute;

  left:50%;
  top:48%;

  width:210px;
  height:170px;

  transform:translate(-50%,-50%);

  border-radius:50%;

  background:
    radial-gradient(
      ellipse at center,
      rgba(92,109,245,.075),
      transparent 70%
    );

  filter:blur(8px);

  pointer-events:none;

  z-index:0;
}


/* =========================================================
   SYSTEM HEADER
========================================================= */

.service-page-redesign .advisory-system-kicker{
  position:absolute;

  left:50%;
  top:22px;

  transform:translateX(-50%);

  color:#8088ba;

  font-size:.43rem;
  font-weight:700;

  letter-spacing:.18em;

  text-transform:uppercase;

  white-space:nowrap;

  z-index:7;
}


/* =========================================================
   SVG CONNECTION FRAMEWORK
========================================================= */

.service-page-redesign .advisory-framework-lines{
  position:absolute;

  inset:0;

  width:100%;
  height:100%;

  pointer-events:none;

  z-index:2;
}


.service-page-redesign .advisory-framework-line{
  fill:none;

  stroke:rgba(111,124,255,.30);

  stroke-width:1;

  vector-effect:non-scaling-stroke;
}


/* =========================================================
   MOVING STRATEGIC SIGNALS
========================================================= */

.service-page-redesign .advisory-framework-signal{
  fill:none;

  stroke:#aab3ff;

  stroke-width:1.55;

  stroke-linecap:round;

  stroke-dasharray:
    7
    72;

  filter:
    drop-shadow(
      0 0 4px
      rgba(137,149,255,.78)
    );

  vector-effect:non-scaling-stroke;

  animation:
    advisorySignalFlow
    2.8s
    linear
    infinite;
}


.service-page-redesign .advisory-signal-strategy{
  animation-delay:0s;
}


.service-page-redesign .advisory-signal-growth{
  animation-delay:.4s;
}


.service-page-redesign .advisory-signal-governance{
  animation-delay:.8s;
}


.service-page-redesign .advisory-signal-performance{
  animation-delay:1.2s;
}


@keyframes advisorySignalFlow{

  from{
    stroke-dashoffset:75;
  }

  to{
    stroke-dashoffset:0;
  }

}


/* =========================================================
   EXECUTION → OUTCOME TRACK
========================================================= */

.service-page-redesign .advisory-outcome-track{
  fill:none;

  stroke:rgba(116,129,255,.40);

  stroke-width:1;

  vector-effect:non-scaling-stroke;
}


.service-page-redesign .advisory-outcome-signal{
  fill:none;

  stroke:#bec5ff;

  stroke-width:1.7;

  stroke-linecap:round;

  stroke-dasharray:
    8
    42;

  filter:
    drop-shadow(
      0 0 4px
      rgba(143,154,255,.8)
    );

  vector-effect:non-scaling-stroke;

  animation:
    advisoryOutcomeFlow
    2.8s
    linear
    1.45s
    infinite;
}


@keyframes advisoryOutcomeFlow{

  from{
    stroke-dashoffset:48;
  }

  to{
    stroke-dashoffset:0;
  }

}


/* =========================================================
   COMMON STRATEGIC FACTORS
========================================================= */

.service-page-redesign .advisory-factor{
  position:absolute;

  width:94px;

  display:flex;
  flex-direction:column;

  z-index:6;
}


.service-page-redesign .advisory-factor-kicker{
  margin-bottom:.15rem;

  color:#747ca8;

  font-size:.37rem;
  font-weight:700;

  letter-spacing:.16em;

  text-transform:uppercase;
}


.service-page-redesign .advisory-factor strong{
  color:#c5c8d8;

  font-size:.58rem;
  font-weight:700;

  line-height:1.15;

  letter-spacing:.055em;

  text-transform:uppercase;

  white-space:nowrap;

  transition:
    color .3s ease,
    text-shadow .3s ease;
}


/* =========================================================
   COMMON STRATEGIC NODES
========================================================= */

.service-page-redesign .advisory-factor-node{
  position:absolute;

  top:50%;

  width:10px;
  height:10px;

  transform:translateY(-50%);

  border:
    1px solid
    rgba(144,154,255,.75);

  border-radius:50%;

  background:#16161f;

  box-shadow:
    0 0 0 3px rgba(92,109,245,.04),
    0 0 8px rgba(92,109,245,.28);

  transition:
    border-color .3s ease,
    background .3s ease,
    box-shadow .3s ease;
}


/* =========================================================
   STRATEGY — TOP LEFT
========================================================= */

.service-page-redesign .advisory-factor-strategy{
  left:29px;
  top:67px;

  align-items:flex-end;

  text-align:right;
}


.service-page-redesign
.advisory-factor-strategy
.advisory-factor-node{
  right:-9px;
}


/* =========================================================
   GROWTH — TOP RIGHT
========================================================= */

.service-page-redesign .advisory-factor-growth{
  right:29px;
  top:67px;

  align-items:flex-start;

  text-align:left;
}


.service-page-redesign
.advisory-factor-growth
.advisory-factor-node{
  left:-9px;
}


/* =========================================================
   GOVERNANCE — BOTTOM LEFT
========================================================= */

.service-page-redesign .advisory-factor-governance{
  left:29px;
  top:166px;

  align-items:flex-end;

  text-align:right;
}


.service-page-redesign
.advisory-factor-governance
.advisory-factor-node{
  right:-9px;
}


/* =========================================================
   PERFORMANCE — BOTTOM RIGHT
========================================================= */

.service-page-redesign .advisory-factor-performance{
  right:29px;
  top:166px;

  align-items:flex-start;

  text-align:left;
}


.service-page-redesign
.advisory-factor-performance
.advisory-factor-node{
  left:-9px;
}


/* =========================================================
   CENTRAL EXECUTION CORE
========================================================= */

.service-page-redesign .advisory-execution-core{
  position:absolute;

  left:50%;
  top:137px;

  width:122px;
  height:86px;

  transform:translate(-50%,-50%);

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  clip-path:
    polygon(
      18% 0%,
      82% 0%,
      100% 50%,
      82% 100%,
      18% 100%,
      0% 50%
    );

  background:
    linear-gradient(
      145deg,
      rgba(104,117,255,.20),
      rgba(21,21,31,.98) 52%,
      rgba(13,13,18,.99)
    );

  box-shadow:
    0 0 0 5px rgba(92,109,245,.025),
    0 0 24px rgba(92,109,245,.14);

  z-index:5;
}


/* CORE BORDER */

.service-page-redesign .advisory-execution-core::before{
  content:"";

  position:absolute;

  inset:0;

  clip-path:
    polygon(
      18% 0%,
      82% 0%,
      100% 50%,
      82% 100%,
      18% 100%,
      0% 50%
    );

  background:
    linear-gradient(
      135deg,
      rgba(155,164,255,.68),
      rgba(92,109,245,.26)
    );

  z-index:-2;
}


.service-page-redesign .advisory-execution-core::after{
  content:"";

  position:absolute;

  inset:1px;

  clip-path:
    polygon(
      18% 0%,
      82% 0%,
      100% 50%,
      82% 100%,
      18% 100%,
      0% 50%
    );

  background:
    linear-gradient(
      145deg,
      rgba(100,113,255,.16),
      #171720 52%,
      #101015
    );

  z-index:-1;
}


/* =========================================================
   EXECUTION CORE TEXT
========================================================= */

.service-page-redesign .advisory-core-kicker{
  margin-bottom:.27rem;

  color:#828bd0;

  font-size:.34rem;
  font-weight:700;

  letter-spacing:.17em;

  text-transform:uppercase;
}


.service-page-redesign .advisory-execution-core > strong{
  color:#ffffff;

  font-size:.68rem;
  font-weight:800;

  line-height:1;

  letter-spacing:.07em;

  text-transform:uppercase;

  text-shadow:
    0 0 8px rgba(119,131,255,.28);
}


.service-page-redesign .advisory-core-label{
  margin-top:.34rem;

  color:#818ac2;

  font-size:.30rem;
  font-weight:700;

  letter-spacing:.11em;

  text-transform:uppercase;

  white-space:nowrap;
}


/* =========================================================
   BUSINESS OUTCOME
========================================================= */

.service-page-redesign .advisory-business-outcome{
  position:absolute;

  left:50%;
  top:218px;

  transform:translateX(-50%);

  display:flex;
  flex-direction:column;
  align-items:center;

  text-align:center;

  z-index:6;
}


.service-page-redesign .advisory-outcome-node{
  display:block;

  width:10px;
  height:10px;

  margin-bottom:.48rem;

  border:
    1px solid
    rgba(158,167,255,.78);

  border-radius:50%;

  background:#171720;

  box-shadow:
    0 0 0 4px rgba(92,109,245,.045),
    0 0 10px rgba(116,129,255,.38);
}


.service-page-redesign .advisory-outcome-kicker{
  margin-bottom:.13rem;

  color:#7880ad;

  font-size:.34rem;
  font-weight:700;

  letter-spacing:.16em;

  text-transform:uppercase;

  white-space:nowrap;
}


.service-page-redesign .advisory-business-outcome strong{
  color:#c9ccdc;

  font-size:.56rem;
  font-weight:700;

  letter-spacing:.065em;

  text-transform:uppercase;
}


/* =========================================================
   INTERACTION
========================================================= */

.service-page-redesign
.advisory-factor:hover
strong{
  color:#ffffff;

  text-shadow:
    0 0 7px rgba(119,131,255,.30);
}


.service-page-redesign
.advisory-factor:hover
.advisory-factor-node{
  border-color:#a6afff;

  background:#6876f6;

  box-shadow:
    0 0 0 4px rgba(92,109,245,.07),
    0 0 11px rgba(122,135,255,.62),
    0 0 20px rgba(92,109,245,.18);
}


.service-page-redesign
.advisory-business-outcome:hover
.advisory-outcome-node{
  border-color:#b5bcff;

  background:#7581f7;

  box-shadow:
    0 0 0 4px rgba(92,109,245,.07),
    0 0 12px rgba(130,142,255,.68);
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1050px){

  .service-page-redesign .advisory-framework-system{
    justify-self:start;

    width:440px;
    max-width:100%;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .service-page-redesign .advisory-framework-system{
    justify-self:center;

    width:min(100%,440px);
    height:286px;

    margin-top:.25rem;
  }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:480px){

  .service-page-redesign .advisory-framework-system{
    width:100%;
    height:264px;

    border-radius:18px;
  }


  .service-page-redesign .advisory-system-kicker{
    top:18px;

    font-size:.38rem;
  }


  .service-page-redesign .advisory-execution-core{
    top:128px;

    width:108px;
    height:78px;
  }


  .service-page-redesign .advisory-factor{
    width:76px;
  }


  .service-page-redesign .advisory-factor-strategy,
  .service-page-redesign .advisory-factor-governance{
    left:10px;
  }


  .service-page-redesign .advisory-factor-growth,
  .service-page-redesign .advisory-factor-performance{
    right:10px;
  }


  .service-page-redesign .advisory-factor-strategy,
  .service-page-redesign .advisory-factor-growth{
    top:60px;
  }


  .service-page-redesign .advisory-factor-governance,
  .service-page-redesign .advisory-factor-performance{
    top:155px;
  }


  .service-page-redesign .advisory-factor strong{
    font-size:.49rem;
    letter-spacing:.025em;
  }


  .service-page-redesign .advisory-factor-kicker{
    font-size:.31rem;
    letter-spacing:.11em;
  }


  .service-page-redesign .advisory-business-outcome{
    top:205px;
  }


  .service-page-redesign .advisory-framework-lines{
    transform:
      scale(.84,.92);

    transform-origin:center;
  }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media(prefers-reduced-motion:reduce){

  .service-page-redesign .advisory-framework-signal,
  .service-page-redesign .advisory-outcome-signal{
    animation:none;
  }

}

/* =========================================================
   ADVISORY FRAMEWORK — EXACT FACTOR ALIGNMENT
   Labels + nodes locked to SVG connection endpoints
========================================================= */


/* ---------------------------------------------------------
   COMMON FACTOR STRUCTURE
--------------------------------------------------------- */

.service-page-redesign .advisory-factor{
  width:98px;

  display:grid;

  grid-template-rows:
    7px
    10px;

  row-gap:5px;

  align-items:center;

  z-index:6;
}


/* ---------------------------------------------------------
   EXACT VERTICAL POSITIONS

   Node sits 17px below factor top.

   SVG endpoints:
   top pair    = 86 / 286
   bottom pair = 185 / 286
--------------------------------------------------------- */

.service-page-redesign .advisory-factor-strategy,
.service-page-redesign .advisory-factor-growth{
  top:calc(30.06993% - 17px);
}


.service-page-redesign .advisory-factor-governance,
.service-page-redesign .advisory-factor-performance{
  top:calc(64.68531% - 17px);
}


/* ---------------------------------------------------------
   EXACT HORIZONTAL POSITIONS

   Left endpoint  = 127 / 440 = 28.863636%
   Right endpoint = 313 / 440 = 71.136364%
--------------------------------------------------------- */

.service-page-redesign .advisory-factor-strategy,
.service-page-redesign .advisory-factor-governance{
  left:calc(28.863636% - 93px);
  right:auto;

  grid-template-columns:
    82px
    10px;

  column-gap:6px;

  text-align:right;
}


.service-page-redesign .advisory-factor-growth,
.service-page-redesign .advisory-factor-performance{
  left:calc(71.136364% - 5px);
  right:auto;

  grid-template-columns:
    10px
    82px;

  column-gap:6px;

  text-align:left;
}


/* ---------------------------------------------------------
   RESET OLD ABSOLUTE NODE POSITIONING
--------------------------------------------------------- */

.service-page-redesign .advisory-factor-node{
  position:static;

  left:auto;
  right:auto;
  top:auto;

  width:10px;
  height:10px;

  transform:none;

  margin:0;

  align-self:center;
  justify-self:center;
}


/* ---------------------------------------------------------
   LEFT SIDE
   DEFINE / STRATEGY
   GUIDE / GOVERNANCE

                     label  ○
--------------------------------------------------------- */

.service-page-redesign
.advisory-factor-strategy
.advisory-factor-kicker,
.service-page-redesign
.advisory-factor-governance
.advisory-factor-kicker{
  grid-column:1;
  grid-row:1;

  justify-self:end;
}


.service-page-redesign
.advisory-factor-strategy
strong,
.service-page-redesign
.advisory-factor-governance
strong{
  grid-column:1;
  grid-row:2;

  justify-self:end;
}


.service-page-redesign
.advisory-factor-strategy
.advisory-factor-node,
.service-page-redesign
.advisory-factor-governance
.advisory-factor-node{
  grid-column:2;
  grid-row:2;

  left:auto;
  right:auto;
  top:auto;
}


/* ---------------------------------------------------------
   RIGHT SIDE
   ENABLE / GROWTH
   MEASURE / PERFORMANCE

   ○  label
--------------------------------------------------------- */

.service-page-redesign
.advisory-factor-growth
.advisory-factor-node,
.service-page-redesign
.advisory-factor-performance
.advisory-factor-node{
  grid-column:1;
  grid-row:2;

  left:auto;
  right:auto;
  top:auto;
}


.service-page-redesign
.advisory-factor-growth
.advisory-factor-kicker,
.service-page-redesign
.advisory-factor-performance
.advisory-factor-kicker{
  grid-column:2;
  grid-row:1;

  justify-self/* BI — keep lowercase s in KPIs */
.service-page-redesign
.bi-stage-kpi
.bi-stage-copy strong{
  text-transform:none;
}:start;
}


.service-page-redesign
.advisory-factor-growth
strong,
.service-page-redesign
.advisory-factor-performance
strong{
  grid-column:2;
  grid-row:2;

  justify-self:start;
}


/* ---------------------------------------------------------
   REMOVE OLD MARGINS / LINE-HEIGHT VARIATION
--------------------------------------------------------- */

.service-page-redesign .advisory-factor-kicker{
  margin:0;

  line-height:7px;
}


.service-page-redesign .advisory-factor strong{
  margin:0;

  line-height:10px;
}

/* BI — keep lowercase s in KPIs */
.service-page-redesign
.bi-stage-kpi
.bi-stage-copy strong{
  text-transform:none;
}








/* =========================================================
   AIMS — GLOBAL SITE FOOTER
========================================================= */

.site-footer{
  position:relative;
  width:100%;
  margin-top:0;
  overflow:hidden;

  color:#a9acb9;
  background:#0b0b0f;

  border-top:1px solid rgba(255,255,255,.055);
}


/* =========================================================
   AMBIENT BACKGROUND
========================================================= */

.site-footer::before{
  content:"";

  position:absolute;
  left:50%;
  top:0;

  width:900px;
  height:380px;

  transform:translateX(-50%);

  background:
    radial-gradient(
      ellipse at center top,
      rgba(92,109,245,.075),
      transparent 68%
    );

  pointer-events:none;
}


/* =========================================================
   MAIN FOOTER
========================================================= */

.footer-main{
  position:relative;
  padding:4.5rem 2rem 3.8rem;
  z-index:2;
}


.footer-grid{
  width:min(1180px,100%);
  margin:0 auto;

  display:grid;

  grid-template-columns:
    minmax(250px,1.35fr)
    minmax(125px,.58fr)
    minmax(250px,1.05fr)
    minmax(215px,.82fr);

  gap:3.5rem;
}


/* =========================================================
   BRAND
========================================================= */

.footer-brand{
  max-width:330px;
}


.footer-brand-link{
  display:inline-flex;
  align-items:center;

  gap:.9rem;

  color:inherit;
  text-decoration:none;
}


.footer-logo-shell{
  width:48px;
  height:48px;

  display:flex;
  align-items:center;
  justify-content:center;

  flex:0 0 auto;

  border:1px solid rgba(255,255,255,.075);
  border-radius:10px;

  background:rgba(255,255,255,.018);

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.025);
}


.footer-logo{
  display:block;

  width:34px;
  height:34px;

  object-fit:contain;
}


.footer-brand-name{
  display:flex;
  flex-direction:column;
  gap:.18rem;
}


.footer-brand-name strong{
  color:#f0f0f5;

  font-size:1rem;
  font-weight:700;

  line-height:1;

  letter-spacing:.12em;
}


/* ONLY the description underneath */
.footer-brand-name > span{
  color:#737682;

  font-size:.52rem;
  font-weight:600;

  line-height:1.35;

  letter-spacing:.075em;

  text-transform:uppercase;
}


/* TT stays part of the main AIMS wordmark */
.footer-brand-name .footer-brand-tt{
  color:#7784f4;

  font-size:inherit;
  font-weight:inherit;

  line-height:inherit;

  letter-spacing:inherit;

  text-transform:none;

  vertical-align:baseline;

  text-shadow:
    0 0 7px rgba(92,109,245,.28);
}


.footer-brand-description{
  margin:1.45rem 0 0;

  color:#858894;

  font-size:.78rem;

  line-height:1.75;
}


.footer-brand-principles{
  margin-top:1.25rem;

  display:flex;
  flex-wrap:wrap;

  gap:.45rem;
}


.footer-brand-principles span{
  padding:.34rem .55rem;

  color:#7e86ba;

  font-size:.52rem;
  font-weight:700;

  letter-spacing:.08em;
  text-transform:uppercase;

  border:1px solid rgba(113,126,255,.13);
  border-radius:5px;

  background:rgba(92,109,245,.025);
}


/* =========================================================
   FOOTER COLUMNS
========================================================= */

.footer-column{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}


.footer-column-title{
  position:relative;

  margin-bottom:1.25rem;
  padding-bottom:.65rem;

  color:#d7d8df;

  font-size:.59rem;
  font-weight:700;

  letter-spacing:.17em;
  text-transform:uppercase;
}


.footer-column-title::after{
  content:"";

  position:absolute;
  left:0;
  bottom:0;

  width:22px;
  height:1px;

  background:#6572e6;

  box-shadow:
    0 0 7px rgba(92,109,245,.28);
}


/* =========================================================
   STANDARD FOOTER LINKS
========================================================= */

/* =========================================================
   STANDARD FOOTER LINKS
========================================================= */

.footer-column > a:not(.footer-email):not(.footer-contact-link){
  position:relative;

  margin-bottom:.67rem;

  color:#858894;

  font-size:.72rem;
  font-weight:500;

  line-height:1.45;

  text-decoration:none;

  transition:
    color .22s ease,
    text-shadow .22s ease;
}


.footer-column > a:not(.footer-email):not(.footer-contact-link):visited{
  color:#858894;
}


.footer-column > a:not(.footer-email):not(.footer-contact-link)::after{
  content:"";

  position:absolute;

  left:0;
  bottom:-2px;

  width:100%;
  height:1px;

  background:
    linear-gradient(
      90deg,
      rgba(116,130,255,.75),
      rgba(116,130,255,.18)
    );

  transform:scaleX(0);
  transform-origin:left center;

  opacity:0;

  transition:
    transform .25s ease,
    opacity .25s ease;
}


.footer-column > a:not(.footer-email):not(.footer-contact-link):hover{
  color:#d9dbea;

  text-shadow:
    0 0 10px rgba(116,130,255,.14);
}


.footer-column > a:not(.footer-email):not(.footer-contact-link):hover::after{
  transform:scaleX(1);

  opacity:1;
}


/* =========================================================
   CONTACT
========================================================= */

.footer-contact p{
  max-width:240px;

  margin:0 0 1.15rem;

  color:#81848f;

  font-size:.73rem;

  line-height:1.7;
}


/* =========================================================
   EMAIL
========================================================= */

.footer-email{
  display:inline-flex;
  align-items:center;

  gap:.55rem;

  color:#b9beeb;

  font-size:.72rem;
  font-weight:600;

  line-height:1.4;

  text-decoration:none;

  transition:
    color .22s ease,
    text-shadow .22s ease;
}


.footer-email:visited{
  color:#b9beeb;
}


.footer-email-icon{
  width:21px;
  height:21px;

  display:grid;
  place-items:center;

  flex:0 0 21px;

  box-sizing:border-box;

  color:#8995ff;

  font-size:.66rem;
  line-height:1;

  border:1px solid rgba(125,138,255,.26);
  border-radius:50%;

  transition:
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}


.footer-email-icon > span{
  display:block;

  line-height:1;

  transform:translate(-.5px, 2px);
}


.footer-email:hover{
  color:#eef0ff;

  text-shadow:
    0 0 10px rgba(116,130,255,.28);
}


.footer-email:hover .footer-email-icon{
  color:#b2baff;

  border-color:rgba(145,156,255,.55);

  box-shadow:
    0 0 10px rgba(92,109,245,.16);
}


/* =========================================================
   SERVICE ENQUIRY LINK
========================================================= */

.footer-contact-link{
  position:relative;

  margin-top:1.1rem;

  display:inline-flex;
  align-items:center;

  gap:.5rem;

  color:#777faa;

  font-size:.61rem;
  font-weight:700;

  line-height:1.4;

  letter-spacing:.045em;

  text-decoration:none;
  text-transform:uppercase;

  transition:
    color .22s ease,
    text-shadow .22s ease;
}


.footer-contact-link:visited{
  color:#777faa;
}


.footer-contact-link::after{
  content:"";

  position:absolute;

  left:0;
  bottom:-4px;

  width:100%;
  height:1px;

  background:
    linear-gradient(
      90deg,
      rgba(116,130,255,.78),
      transparent
    );

  transform:scaleX(0);
  transform-origin:left center;

  opacity:0;

  transition:
    transform .25s ease,
    opacity .25s ease;
}


.footer-contact-link > span{
  color:#838fff;

  transition:
    color .22s ease,
    text-shadow .22s ease,
    transform .22s ease;
}


.footer-contact-link:hover{
  color:#d0d4ef;

  text-shadow:
    0 0 10px rgba(116,130,255,.13);
}


.footer-contact-link:hover > span{
  color:#aab3ff;

  transform:translateX(3px);

  text-shadow:
    0 0 8px rgba(116,130,255,.45);
}


.footer-contact-link:hover::after{
  transform:scaleX(1);

  opacity:1;
}

/* =========================================================
   KEYBOARD FOCUS
========================================================= */

.site-footer a:focus-visible{
  outline:1px solid rgba(145,156,255,.8);
  outline-offset:5px;

  border-radius:3px;
}


/* =========================================================
   BOTTOM BAR
========================================================= */

.footer-bottom-wrap{
  position:relative;

  padding:0 2rem;

  border-top:1px solid rgba(255,255,255,.05);

  z-index:2;
}


.footer-bottom{
  width:min(1180px,100%);
  min-height:70px;

  margin:0 auto;

  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:2rem;
}


.footer-bottom p{
  margin:0;

  color:#5f626d;

  font-size:.60rem;

  letter-spacing:.035em;
}


.footer-bottom-mark{
  display:flex;
  align-items:center;

  gap:.55rem;

  color:#676b7c;

  font-size:.54rem;
  font-weight:700;

  letter-spacing:.15em;
}


.footer-status-dot{
  width:5px;
  height:5px;

  flex:0 0 auto;

  border-radius:50%;

  background:#7784f4;

  box-shadow:
    0 0 7px rgba(92,109,245,.5);
}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1000px){

  .footer-grid{
    grid-template-columns:
      1.2fr
      .8fr
      1.2fr;

    gap:3rem 2.5rem;
  }


  .footer-contact{
    grid-column:1 / -1;

    padding-top:.5rem;
  }


  .footer-contact p{
    max-width:520px;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:760px){

  .footer-main{
    padding:3.6rem 1.25rem 3rem;
  }


  .footer-grid{
    grid-template-columns:
      1fr
      1fr;

    gap:3rem 2rem;
  }


  .footer-brand{
    grid-column:1 / -1;

    max-width:450px;
  }


  .footer-contact{
    grid-column:1 / -1;
  }


  .footer-bottom-wrap{
    padding:0 1.25rem;
  }


  .footer-bottom{
    min-height:auto;

    padding:1.25rem 0;

    flex-direction:column;
    align-items:flex-start;

    gap:.7rem;
  }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media(max-width:480px){

  .footer-main{
    padding-top:3.2rem;
  }


  .footer-grid{
    grid-template-columns:1fr;

    gap:2.6rem;
  }


  .footer-brand,
  .footer-contact{
    grid-column:auto;
  }


  .footer-brand-description{
    max-width:320px;
  }


  .footer-services{
    max-width:280px;
  }

}


/* =========================================================
   ACCESSIBILITY
========================================================= */

@media(prefers-reduced-motion:reduce){

  .footer-column a,
  .footer-contact-link span{
    transition:none;
  }

}

.footer-tt{
  color:#7784f4;

  text-shadow:
    0 0 7px rgba(92,109,245,.28);
}

.footer-brand-tt{
  color:#7784f4;

  text-shadow:
    0 0 7px rgba(92,109,245,.28);
}

/* =========================================================
   AIMS-TT — GLOBAL BRAND ACCENT
========================================================= */

.brand-tt{
  color:#7784f4 !important;
  -webkit-text-fill-color:#7784f4 !important;

  font-style:inherit;
  font-weight:inherit;

  text-shadow:
    0 0 7px rgba(92,109,245,.28);
}