@font-face {
  font-family:Manrope;
  src:url("../assets/fonts/manrope-latin.woff2") format("woff2");
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
}
:root {
  --navy:#102637;
  --deep:#0b202f;
  --blue:#1263de;
  --blue-dark:#094bab;
  --ink:#172b3b;
  --muted:#566674;
  --line:#d7e0e7;
  --pale:#f3f6f8;
  --white:#fff;
  --max:1280px;
  --radius:4px;
  --gold:#b39b6c;
  --ease:cubic-bezier(.22,.61,.36,1);
  --shadow-soft:0 8px 24px rgba(16,38,55,.055);
  --accent:#195dc8;
  --accent-tint:#edf3ff;
  --teal:#08777d;
  --teal-tint:#edf8f7;
  --copper:#956331;
  --copper-tint:#fbf4eb;
  --section-space:clamp(64px,6.25vw,96px);
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}
body {
  margin:0;
  color:var(--ink);
  background:white;
  font-family:Manrope,Arial,sans-serif;
  font-size:15px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p {
  margin:0;
}
h1,h2,h3,h4 {
  font-weight:650;
  line-height:1.23;
  letter-spacing:-.035em;
}
h1 {
  font-size:clamp(38px,4.4vw,64px);
}
h2 {
  font-size:clamp(30px,3vw,43px);
  text-wrap:balance;
}
h3 {
  font-size:23px;
  letter-spacing:-.025em;
}
p {
  color:var(--muted);
}
a {
  color:inherit;
  text-decoration:none;
}
button,input,select,textarea {
  font:inherit;
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
img {
  display:block;
  max-width:100%;
  object-fit:cover;
}
svg {
  flex-shrink:0;
}
::selection {
  background:#bed6ff;
  color:var(--navy);
}
:focus-visible {
  outline:3px solid #2d7eea;
  outline-offset:5px;
}
button:disabled {
  cursor:wait;
  opacity:.65;
}
[hidden] {
  display:none!important;
}
.container {
  width:min(var(--max),calc(100% - 96px));
  margin-inline:auto;
}
.section {
  padding-block:var(--section-space);
}
.soft {
  background:linear-gradient(135deg,#f5f7f9,#f0f4f7);
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:11px;
  font-weight:750;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--blue);
  margin-bottom:24px;
  line-height:1.5;
}
.eyebrow:before {
  content:"";
  width:26px;
  height:1px;
  background:currentColor;
  flex-shrink:0;
}
.icon {
  width:24px;
  height:24px;
  stroke-width:1.6;
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.arrow {
  width:19px;
  height:19px;
  transition:transform .2s;
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  background:linear-gradient(120deg,#1768df,#0d59cc);
  color:#fff;
  padding:15px 23px;
  min-height:52px;
  font-size:13px;
  font-weight:700;
  border:1px solid var(--blue);
  border-radius:3px;
  transition:background .25s,border-color .25s,box-shadow .25s,transform .25s var(--ease);
  line-height:1.5;
  box-shadow:0 1px 2px #10263712,0 5px 14px #1263de12;
  letter-spacing:.005em;
}
.btn:hover {
  background:#0b50b4;
  border-color:#0b50b4;
  box-shadow:0 5px 14px #1026371c;
}
.text-link:hover .arrow {
  transform:translateX(3px);
}
.btn-outline {
  background:#ffffff80;
  border-color:#b7c6d2;
  color:var(--navy);
  box-shadow:none;
}
.btn-outline:hover {
  background:#fff;
  border-color:#8ea8bd;
  box-shadow:0 3px 12px #10263708;
}
.btn-white {
  background:#fff;
  color:var(--navy);
  border-color:white;
}
.btn-white:hover {
  background:#e0ebf6;
  border-color:#e0ebf6;
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:19px;
  min-height:44px;
  color:var(--blue);
  font-size:13px;
  font-weight:700;
  position:relative;
}
.actions {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:30px;
}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:1000;
  background:var(--navy);
  color:white;
  padding:10px 20px;
}
.skip-link:focus {
  top:10px;
}
.utility {
  background:var(--navy);
  color:#c4d0da;
  font-size:10px;
  letter-spacing:.03em;
}
.utility .container {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:33px;
}
.utility a {
  color:white;
  display:flex;
  gap:9px;
  align-items:center;
}
.utility .icon {
  width:12px;
  height:12px;
}
.site-header {
  position:sticky;
  top:0;
  z-index:100;
  background:#fff;
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s,border-color .25s;
  --accent:#195dc8;
  --accent-tint:#edf3ff;
}
.site-header.scrolled {
  box-shadow:0 6px 22px #10263709;
  border-color:#cddbe6;
}
.header-inner {
  height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
}
.logo {
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.desktop-nav {
  display:flex;
  align-items:center;
  gap:22px;
  font-size:13px;
  font-weight:650;
}
.desktop-nav>a,.nav-services>button {
  position:relative;
  min-height:44px;
  display:flex;
  align-items:center;
  gap:5px;
  white-space:nowrap;
}
.desktop-nav a[aria-current=page] {
  color:var(--blue);
}
.desktop-nav>a:not(.btn):after {
  content:"";
  position:absolute;
  bottom:3px;
  left:0;
  right:0;
  height:1px;
  background:var(--blue);
  transition:transform .25s var(--ease);
  transform:scaleX(0);
  transform-origin:left;
}
.desktop-nav>a:hover:after {
  transform:scaleX(1);
}
.header-cta {
  font-size:12px;
  padding:11px 17px;
  min-height:44px;
  gap:15px;
}
.nav-services {
  position:relative;
}
.nav-services>button {
  border:0;
  background:none;
  color:inherit;
  padding:0;
  font-weight:650;
  font-size:13px;
}
.nav-services>button .icon {
  width:12px;
  height:12px;
}
.services-menu {
  position:absolute;
  top:calc(100% + 20px);
  left:-25px;
  width:520px;
  display:grid;
  grid-template-columns:1fr 1fr;
  padding:18px;
  background:white;
  border:1px solid var(--line);
  box-shadow:0 14px 34px #10263712;
  border-radius:3px;
  border-top:2px solid var(--blue);
}
.services-menu a {
  padding:12px;
  font-size:13px;
  display:flex;
  align-items:center;
  gap:12px;
  border-radius:2px;
  transition:background .2s,color .2s;
  min-height:46px;
}
.services-menu a:hover {
  background:var(--accent-tint);
  color:var(--accent);
}
.services-menu .icon {
  width:18px;
  height:18px;
}
.menu-toggle {
  display:none;
  border:1px solid var(--line);
  background:white;
  border-radius:3px;
  align-items:center;
  justify-content:center;
  width:46px;
  height:44px;
  flex-direction:column;
  gap:6px;
  transition:border-color .2s,background .2s;
}
.menu-toggle span {
  display:block;
  width:20px;
  height:2px;
  background:var(--navy);
  transition:transform .2s;
}
.menu-toggle[aria-expanded=true] span:first-child {
  transform:translateY(4px) rotate(45deg);
}
.menu-toggle[aria-expanded=true] span:last-child {
  transform:translateY(-4px) rotate(-45deg);
}
.mobile-nav {
  padding:15px 24px 26px;
  max-height:calc(100dvh - 112px);
  overflow:auto;
  border-top:1px solid var(--line);
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.mobile-nav>a {
  display:block;
  padding:10px 0;
  border-bottom:1px solid var(--line);
  font-weight:650;
  min-height:46px;
}
.mobile-nav .btn {
  display:flex;
  margin-top:18px;
  padding:14px;
}
.hero {
  background:radial-gradient(ellipse at 86% 45%,#e2ecf5 0,transparent 50%),linear-gradient(120deg,#f7f9fb,#eff4f8);
  border-bottom:1px solid var(--line);
  padding:57px 0 56px;
  overflow:hidden;
  position:relative;
}
.hero-grid {
  display:grid;
  grid-template-columns:1.03fr 1fr;
  gap:58px;
  align-items:center;
}
.hero-copy {
  padding:14px 0;
}
.hero .eyebrow {
  font-size:10px;
  margin-bottom:23px;
}
.hero h1 {
  max-width:650px;
  line-height:1.12;
  letter-spacing:-.055em;
}
.hero h1 span {
  color:var(--blue);
}
.hero-copy>p {
  font-size:clamp(14px,1.1vw,16px);
  line-height:1.85;
  max-width:490px;
  margin-top:25px;
}
.hero .actions {
  gap:12px;
  margin-top:30px;
}
.hero .btn {
  font-size:13px;
  padding:15px 18px;
  gap:17px;
}
.hero-notes {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:33px;
  font-size:11px;
  color:var(--muted);
  font-weight:600;
  border-top:1px solid #d3dfe8;
  padding-top:20px;
  width:fit-content;
  column-gap:22px;
  row-gap:10px;
}
.hero-notes span {
  display:flex;
  align-items:center;
  gap:8px;
}
.hero-notes .icon {
  color:var(--blue);
  width:14px;
  height:14px;
}
.hero-visual {
  height:auto;
  position:relative;
  isolation:isolate;
  aspect-ratio:1671/941;
  box-shadow:0 18px 48px -18px #15395b45,0 2px 7px #15395b12;
  border-radius:4px;
}
.hero-visual:after {
  content:"";
  position:absolute;
  width:85px;
  height:85px;
  right:-13px;
  top:-13px;
  border-top:1px solid #9aaebf;
  border-right:1px solid #9aaebf;
  z-index:-1;
}
.hero-visual>img {
  height:100%;
  width:100%;
  border-radius:4px;
  object-position:50% 50%;
  border:1px solid #ffffffb3;
}
.capability-strip {
  border-bottom:1px solid #e0e7ed;
  padding:25px 0 30px;
  background:#fff;
}
.capability-strip .strip-label {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:650;
  text-align:center;
  margin-bottom:21px;
}
.strip-items {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
}
.strip-items a {
  display:flex;
  align-items:center;
  gap:11px;
  font-size:12px;
  font-weight:650;
  min-height:40px;
  position:relative;
  transition:color .2s;
}
.strip-items a:hover {
  color:var(--blue);
}
.strip-items .icon {
  color:var(--accent);
  width:36px;
  height:36px;
  padding:7px;
  background:#f2f6fa;
  border:1px solid #e2eaf1;
  border-radius:3px;
  transition:background .25s,color .25s,border-color .25s;
}
.section-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:50px;
  margin-bottom:36px;
}
.section-head h2 {
  max-width:610px;
}
.section-head .eyebrow {
  margin-bottom:18px;
}
.section-head>p {
  max-width:385px;
  font-size:14px;
}
.section-head>.text-link {
  flex-shrink:0;
}
.about-grid {
  display:grid;
  grid-template-columns:1fr 1.02fr;
  gap:clamp(40px,5.6vw,80px);
  align-items:center;
}
.about-visual {
  position:relative;
  padding-bottom:32px;
  padding-right:35px;
  isolation:isolate;
}
.about-visual img {
  height:365px;
  width:100%;
  object-position:center 43%;
  border-radius:3px;
  border:1px solid #e0e7ed;
  box-shadow:var(--shadow-soft);
}
.about-note {
  position:absolute;
  right:0;
  bottom:0;
  background:linear-gradient(130deg,#142f43,#102637);
  color:white;
  padding:23px 30px;
  max-width:285px;
  border-top:2px solid var(--gold);
  box-shadow:0 10px 25px #10263713;
}
.about-note span {
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#9fb5c5;
  display:block;
  margin-bottom:6px;
}
.about-note strong {
  font-size:17px;
  font-weight:600;
  line-height:1.5;
  display:block;
}
.about-copy h2 {
  max-width:470px;
}
.about-copy>p {
  margin-top:23px;
  line-height:1.95;
  font-size:15px;
}
.about-copy .text-link {
  margin-top:22px;
}
.service-showcase {
  display:grid;
  grid-template-columns:.82fr 1.4fr;
  gap:45px;
}
.featured-service {
  background:linear-gradient(150deg,#17364c,#0b2335);
  color:white;
  padding:34px;
  display:flex;
  flex-direction:column;
  min-height:445px;
  position:relative;
  overflow:hidden;
  border-radius:4px;
  border:1px solid #25485f;
  isolation:isolate;
}
.featured-service>.icon {
  width:40px;
  height:40px;
  color:#8bddda;
  margin-bottom:38px;
}
.featured-service .mini-label {
  font-size:10px;
  letter-spacing:.13em;
  color:#aabfcf;
  text-transform:uppercase;
  margin-bottom:13px;
}
.featured-service h3 {
  font-size:clamp(27px,2.25vw,31px);
  max-width:none;
  margin-bottom:19px;
}
.featured-service p {
  color:#c1cfda;
  font-size:14px;
  max-width:none;
  line-height:1.8;
}
.featured-service .text-link {
  color:white;
  margin-top:22px;
}
.featured-service .service-footnote {
  font-size:11px;
  margin-top:auto;
  padding-top:20px;
  color:#a6bac9;
  display:flex;
  align-items:center;
  gap:9px;
  border-top:1px solid #385467;
}
.featured-service .service-footnote .icon {
  width:15px;
  height:15px;
}
.service-rows {
  border-top:1px solid #c9d6df;
}
.service-row {
  display:grid;
  grid-template-columns:30px 1fr 24px;
  align-items:center;
  gap:17px;
  padding:19px 0;
  border-bottom:1px solid #ccd8e1;
  transition:background .25s,border-color .25s,color .25s;
  position:relative;
}
.service-row:hover {
  color:var(--accent);
  background:var(--accent-tint);
  border-color:var(--accent);
}
.service-number {
  align-self:start;
  margin-top:2px;
  font-size:11px;
  color:#586c7b;
  font-variant-numeric:tabular-nums;
}
.service-row h3 {
  font-size:17px;
  letter-spacing:-.025em;
  margin-bottom:4px;
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:650;
  transition:transform .25s var(--ease);
}
.service-row p {
  font-size:13px;
  line-height:1.75;
  max-width:520px;
}
.service-row .arrow {
  color:var(--accent);
}
.service-bottom {
  margin-top:25px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
}
.service-bottom p {
  font-size:11px;
}
.values-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  column-gap:48px;
  row-gap:37px;
}
.value {
  border-top:1px solid var(--line);
  padding-top:23px;
  position:relative;
}
.value>.icon {
  color:var(--accent);
  width:27px;
  height:27px;
  margin-bottom:20px;
  transition:transform .25s var(--ease);
}
.value h3 {
  font-size:18px;
  margin-bottom:11px;
}
.value p {
  font-size:13px;
  line-height:1.8;
  max-width:340px;
}
.security-section {
  background:radial-gradient(ellipse at 92% 45%,#123e46,transparent 65%),linear-gradient(130deg,#0b202f,#0d283b);
  color:white;
  position:relative;
  overflow:hidden;
}
.security-grid {
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:100px;
  align-items:center;
}
.security-section .eyebrow {
  color:#98d7d2;
}
.security-section h2 {
  font-size:clamp(32px,3.4vw,48px);
  max-width:530px;
}
.security-section p {
  color:#b5c5d1;
  margin-top:23px;
  max-width:515px;
  font-size:14px;
  line-height:1.9;
}
.security-section .btn {
  margin-top:30px;
}
.security-visual {
  position:relative;
}
.security-visual img {
  height:357px;
  width:100%;
  object-position:center;
  opacity:.88;
  border-radius:3px;
  border:1px solid #517087;
  box-shadow:0 14px 35px #00111f26;
}
.security-label {
  position:absolute;
  bottom:-20px;
  left:-30px;
  right:35px;
  background:linear-gradient(110deg,#1d3d52,#142e42);
  border:1px solid #42627a;
  padding:22px;
  display:flex;
  gap:17px;
  align-items:center;
  box-shadow:0 6px 18px #00000018;
  border-color:#406a76;
}
.security-label>.icon {
  color:#8bbaff;
  width:29px;
  height:29px;
}
.security-label strong {
  display:block;
  font-size:13px;
  font-weight:650;
}
.security-label small {
  color:#b5c5d1;
  font-size:10px;
}
.partner-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:80px;
  align-items:start;
}
.partner-copy>p {
  margin-top:24px;
  font-size:14px;
  line-height:1.9;
}
.capability-matrix {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
  background:#fff;
  box-shadow:0 8px 28px #10263704;
}
.matrix-item {
  display:flex;
  align-items:center;
  gap:15px;
  padding:26px 23px;
  border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);
  font-size:13px;
  font-weight:650;
  transition:background .25s,color .25s;
  position:relative;
}
.matrix-item:hover {
  background:var(--accent-tint);
  color:var(--accent);
}
.matrix-item .icon {
  color:var(--accent);
  width:22px;
  height:22px;
  transition:transform .25s var(--ease);
}
.process-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px;
  position:relative;
}
.process-step {
  position:relative;
  border-top:1px solid transparent;
  padding-top:28px;
}
.process-step:before {
  content:"";
  width:7px;
  height:7px;
  position:absolute;
  top:-4px;
  background:var(--blue);
  border-radius:50%;
  box-shadow:0 0 0 5px #f3f6f8;
  z-index:1;
}
.process-step>span {
  font-size:12px;
  color:var(--blue);
  font-weight:750;
  letter-spacing:.09em;
  font-variant-numeric:tabular-nums;
}
.process-step h3 {
  font-size:19px;
  margin-top:19px;
  margin-bottom:14px;
}
.process-step p {
  font-size:13px;
  max-width:250px;
  line-height:1.8;
}
.m365 {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}
.m365-copy p {
  margin-top:22px;
  max-width:480px;
  font-size:14px;
}
.m365-copy .text-link {
  margin-top:21px;
}
.m365-panel {
  border:1px solid var(--line);
  padding:31px;
  border-radius:3px;
  background:linear-gradient(145deg,#fff,#f8fafc);
  border-color:#d0dce6;
  box-shadow:var(--shadow-soft);
  position:relative;
}
.m365-title {
  display:flex;
  align-items:center;
  gap:13px;
  padding-bottom:23px;
  border-bottom:1px solid var(--line);
  font-size:21px;
  letter-spacing:-.025em;
  font-weight:650;
}
.ms-mark {
  display:grid;
  grid-template-columns:repeat(2,12px);
  gap:2px;
}
.ms-mark i {
  width:12px;
  height:12px;
  background:#f35325;
}
.ms-mark i:nth-child(2) {
  background:#81bc06;
}
.ms-mark i:nth-child(3) {
  background:#05a6f0;
}
.ms-mark i:nth-child(4) {
  background:#ffba08;
}
.m365-items {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 16px;
  margin-top:25px;
}
.m365-items span {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:11px;
}
.m365-items .icon {
  color:var(--blue);
  width:14px;
  height:14px;
}
.industry-list {
  display:flex;
  flex-wrap:wrap;
  gap:11px;
}
.industry-list a {
  border:1px solid #c8d3dc;
  padding:12px 20px;
  background:#ffffffb8;
  font-size:12px;
  display:flex;
  gap:16px;
  align-items:center;
  border-radius:2px;
  transition:border-color .25s,color .25s,background .25s;
  border-color:#cddae4;
  box-shadow:0 2px 3px #10263702;
}
.industry-list a:hover {
  color:var(--blue);
  border-color:#8dabca;
  background:#fff;
}
.industry-list .icon {
  width:15px;
  height:15px;
  color:var(--blue);
}
.insight-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}
.article-card .image-link {
  display:block;
  overflow:hidden;
  position:relative;
  border-radius:3px;
  border:1px solid #dce4eb;
}
.article-card img {
  width:100%;
  height:218px;
  transition:transform .65s var(--ease);
}
.article-card:hover img {
  transform:scale(1.035);
}
.article-meta {
  display:flex;
  justify-content:space-between;
  gap:5px 12px;
  color:var(--accent);
  font-size:11px;
  font-weight:650;
  letter-spacing:.035em;
  text-transform:uppercase;
  margin-top:22px;
  flex-wrap:wrap;
  align-items:baseline;
}
.article-meta span:last-child {
  color:var(--muted);
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
}
.article-card h3 {
  font-size:21px;
  line-height:1.4;
  margin-top:12px;
  max-width:370px;
  font-weight:650;
}
.article-card h3 a:hover {
  color:var(--accent);
}
.article-card>p {
  font-size:13px;
  margin-top:13px;
  line-height:1.8;
}
.article-card .text-link {
  font-size:11px;
  margin-top:13px;
  font-weight:700;
}
.cta-band {
  background:linear-gradient(115deg,#eef4fa,#e4edf6);
  border-top:1px solid #d5e3f0;
  border-bottom:1px solid #d5e3f0;
  padding-block:65px;
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.cta-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
}
.cta-inner h2 {
  font-size:clamp(29px,2.8vw,39px);
  max-width:700px;
}
.cta-inner p {
  max-width:690px;
  margin-top:19px;
  font-size:14px;
}
.cta-inner .actions {
  flex-shrink:0;
  flex-direction:column;
  gap:5px;
  margin:0;
  align-items:stretch;
}
.cta-inner .text-link {
  justify-content:center;
}
.site-footer {
  background:radial-gradient(ellipse at 100% 0,#163448,transparent 66%),linear-gradient(120deg,#0b202f,#0a1d2b);
  color:white;
  padding-top:65px;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-top:1px solid #284659;
}
.footer-grid {
  display:grid;
  grid-template-columns:1.45fr .8fr 1.2fr 1fr;
  gap:65px;
  padding-bottom:54px;
}
.site-footer .logo {
  margin-bottom:20px;
}
.footer-brand p {
  color:#a9bbc9;
  max-width:265px;
  font-size:13px;
  line-height:1.8;
}
.footer-brand>.tagline {
  font-size:11px;
  margin-top:23px;
  color:#d1dce5;
}
.footer-column h3 {
  font-size:13px;
  letter-spacing:0;
  margin-bottom:20px;
  font-weight:700;
}
.footer-column a {
  display:block;
  color:#a9bbc9;
  font-size:12px;
  padding-block:4px;
  min-height:34px;
  transition:color .2s;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}
.footer-column a:hover {
  color:white;
  text-decoration:underline;
  text-underline-offset:4px;
}
.footer-column .legal-heading {
  margin-top:25px;
  margin-bottom:13px;
}
.footer-bottom {
  border-top:1px solid #304756;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 0;
  font-size:11px;
  color:#9cafbd;
}
.footer-bottom a {
  display:flex;
  align-items:center;
  gap:8px;
  min-height:44px;
  flex-shrink:0;
}
.footer-bottom .icon {
  width:13px;
  height:13px;
}
.breadcrumbs {
  font-size:12px;
  color:var(--muted);
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  padding:22px 0;
}
.breadcrumbs a:hover {
  color:var(--blue);
}
.breadcrumbs span[aria-hidden] {
  color:#8c9caa;
}
.page-hero {
  background:linear-gradient(120deg,#f7f9fb,#eaf1f7);
  padding-bottom:56px;
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}
.page-hero .eyebrow {
  margin-top:28px;
  margin-bottom:20px;
}
.page-hero h1 {
  font-size:clamp(35px,4vw,55px);
  max-width:820px;
  text-wrap:balance;
}
.page-hero p {
  font-size:16px;
  max-width:710px;
  margin-top:23px;
}
.page-hero.split .page-hero-grid {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:65px;
  align-items:center;
  margin-top:20px;
}
.page-hero.split .eyebrow {
  margin-top:0;
}
.page-hero-image {
  width:100%;
  height:355px;
  border-radius:3px;
  border:1px solid #d3dfe8;
  box-shadow:var(--shadow-soft);
}
.page-hero .actions {
  margin-top:25px;
}
.service-directory {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 55px;
}
.directory-item {
  border-top:1px solid var(--line);
  padding:31px 0;
  display:grid;
  grid-template-columns:42px 1fr;
  gap:18px;
  position:relative;
  transition:border-color .25s;
}
.directory-item>.icon {
  color:var(--accent);
  margin-top:3px;
  width:38px;
  height:38px;
  padding:8px;
  background:var(--accent-tint);
  border:1px solid #dae6f0;
  border-radius:3px;
  transition:background .25s,transform .25s var(--ease);
}
.directory-item h2 {
  font-size:23px;
  letter-spacing:-.03em;
}
.directory-item p {
  font-size:14px;
  margin-top:14px;
  line-height:1.8;
}
.directory-item .text-link {
  font-size:11px;
  margin-top:12px;
}
.filter-bar {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:24px;
  padding-bottom:24px;
  border-bottom:1px solid var(--line);
}
.filter-bar button {
  background:white;
  color:var(--muted);
  border:1px solid var(--line);
  border-radius:2px;
  padding:10px 14px;
  font-size:12px;
  min-height:44px;
  transition:background .2s,color .2s,border-color .2s;
  font-weight:600;
}
.filter-bar button[aria-pressed=true] {
  background:var(--filter-ink,var(--navy));
  border-color:var(--filter-ink,var(--navy));
  color:white;
}
.filter-bar button:hover {
  border-color:var(--filter-ink,var(--navy));
}
.results-count {
  font-size:12px;
  margin-bottom:22px;
}
.detail-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px;
}
.detail-grid>div>p {
  margin-top:20px;
  font-size:14px;
}
.deliverables {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px 35px;
}
.deliverable {
  border-top:1px solid var(--line);
  padding-top:22px;
  position:relative;
}
.deliverable>span {
  color:var(--blue);
  font-size:10px;
}
.deliverable h3 {
  font-size:19px;
  margin-top:13px;
  margin-bottom:13px;
}
.deliverable p {
  font-size:14px;
  line-height:1.8;
}
.faq-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:90px;
}
.faq-grid h2 {
  max-width:350px;
}
.faq-grid details {
  border-top:1px solid var(--line);
  padding:19px 0;
  transition:border-color .25s;
}
.faq-grid details:last-child {
  border-bottom:1px solid var(--line);
}
.faq-grid summary {
  font-size:15px;
  line-height:1.5;
  font-weight:650;
  cursor:pointer;
  list-style:none;
  padding:12px 35px 12px 0;
  position:relative;
  min-height:48px;
  transition:color .2s;
}
.faq-grid summary::-webkit-details-marker {
  display:none;
}
.faq-grid summary:after {
  content:"+";
  position:absolute;
  right:4px;
  top:50%;
  font-size:23px;
  color:var(--blue);
  font-weight:400;
  translate:0 -50%;
}
.faq-grid details[open] summary:after {
  content:"−";
}
.faq-grid details p {
  font-size:14px;
  padding:14px 28px 4px 0;
}
.related-links {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}
.related-links a {
  padding:12px 18px;
  border:1px solid var(--line);
  font-size:12px;
  background:white;
}
.related-links a:hover {
  color:var(--accent);
  border-color:var(--accent);
  background:var(--accent-tint);
}
.industries-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 70px;
}
.industry-item {
  border-top:1px solid var(--line);
  padding:34px 0;
  scroll-margin-top:115px;
  position:relative;
  transition:border-color .25s;
}
.industry-item>span {
  font-size:10px;
  color:var(--blue);
  letter-spacing:.12em;
}
.industry-item h2 {
  font-size:clamp(22px,2.1vw,25px);
  margin-top:12px;
  display:flex;
  align-items:center;
  gap:14px;
}
.industry-item p {
  font-size:14px;
  margin-top:15px;
  line-height:1.8;
}
.industry-item .text-link {
  margin-top:10px;
  font-size:12px;
}
.capabilities-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
}
.capability-card {
  background:linear-gradient(140deg,#fbfcfd,#f0f5f9);
  padding:32px;
  border:1px solid var(--line);
  position:relative;
  border-radius:4px;
  transition:border-color .25s,box-shadow .25s,transform .25s var(--ease);
}
.capability-card .icon {
  color:var(--accent);
  margin-bottom:25px;
}
.capability-card h2 {
  font-size:25px;
  margin-bottom:15px;
}
.capability-card p {
  font-size:14px;
}
.capability-card ul {
  padding-left:18px;
  font-size:13px;
  color:var(--muted);
}
.contact-layout {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:80px;
}
.contact-aside h2 {
  font-size:31px;
}
.contact-aside>p {
  margin-top:20px;
  font-size:14px;
}
.contact-steps {
  margin-top:32px;
}
.contact-step {
  display:flex;
  gap:18px;
  padding:22px 0;
  border-top:1px solid var(--line);
}
.contact-step>span {
  color:var(--blue);
  font-size:10px;
}
.contact-step strong {
  display:block;
  font-size:13px;
  margin-bottom:6px;
}
.contact-step p {
  font-size:13px;
}
.contact-note {
  background:var(--pale);
  padding:22px;
  font-size:13px;
  margin-top:22px;
  border-left:2px solid var(--blue);
}
.contact-note strong {
  display:block;
  margin-bottom:7px;
}
.enquiry-form {
  padding:36px;
  background:linear-gradient(145deg,#f8fafc,#eef3f7);
  border:1px solid var(--line);
  border-radius:3px;
  border-color:#cbd9e3;
  box-shadow:var(--shadow-soft);
  position:relative;
}
.form-title {
  font-size:23px;
  margin-bottom:7px;
}
.form-intro {
  font-size:13px;
  margin-bottom:27px;
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:21px;
}
.field.full {
  grid-column:1/-1;
}
.field label {
  display:block;
  font-size:12px;
  font-weight:650;
  margin-bottom:8px;
}
.field label span {
  font-weight:400;
  color:var(--muted);
}
.field input,.field select,.field textarea {
  display:block;
  background:white;
  width:100%;
  border:1px solid #bdcbd5;
  border-radius:2px;
  padding:12px 13px;
  font-size:13px;
  color:var(--ink);
  min-height:48px;
  transition:border-color .2s,box-shadow .2s;
  border-color:#b7c7d3;
}
.field textarea {
  resize:vertical;
  min-height:137px;
}
.field input::placeholder,.field textarea::placeholder {
  color:#6c7d8a;
  font-size:12px;
}
.field [aria-invalid=true] {
  border-color:#b73333;
}
.field-error {
  display:block;
  min-height:0;
  font-size:12px;
  color:#ac2828;
  margin-top:5px;
  line-height:1.6;
}
.privacy-consent {
  font-size:12px;
  line-height:1.75;
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:22px;
}
.privacy-consent input {
  width:17px;
  height:17px;
  flex-shrink:0;
  accent-color:var(--blue);
  margin:3px 0 0;
}
.privacy-consent a {
  text-decoration:underline;
  text-underline-offset:3px;
}
.enquiry-form>.btn {
  margin-top:23px;
  width:100%;
  justify-content:space-between;
}
.form-status {
  margin-top:17px;
  font-size:12px;
  padding:15px;
  border:1px solid var(--line);
  background:white;
  line-height:1.8;
}
.form-status[data-state=error] {
  border-color:#d3a6a6;
  color:#8a2929;
}
.form-status[data-state=success] {
  border-color:#91b8a6;
  color:#246247;
}
.hp {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.article-layout {
  display:grid;
  grid-template-columns:240px minmax(0,760px);
  gap:85px;
  justify-content:start;
}
.article-toc {
  position:sticky;
  top:125px;
  align-self:start;
  border-top:2px solid #9cb3c7;
  padding-top:20px;
}
.article-toc strong {
  font-size:12px;
}
.article-toc a {
  display:block;
  font-size:13px;
  color:var(--muted);
  padding:10px 0;
  border-bottom:1px solid var(--line);
  min-height:44px;
}
.article-toc a:hover {
  color:var(--blue);
}
.prose {
  font-size:15px;
  line-height:1.95;
}
.prose h2 {
  font-size:29px;
  margin-top:40px;
  margin-bottom:19px;
  scroll-margin-top:125px;
}
.prose h2:first-child {
  margin-top:0;
}
.prose p {
  margin-bottom:18px;
}
.prose ul {
  padding-left:21px;
  color:var(--muted);
  margin-block:15px 26px;
}
.prose li {
  padding-left:5px;
  margin-bottom:9px;
}
.prose strong {
  color:var(--ink);
  font-weight:700;
}
.prose a {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px;
}
.article-cover {
  margin-bottom:38px;
  width:100%;
  height:340px;
  border-radius:3px;
}
.article-disclaimer {
  font-size:12px;
  padding:22px;
  background:var(--pale);
  border-left:2px solid var(--blue);
  margin-top:35px;
}
.legal-prose {
  max-width:850px;
}
.notice {
  background:#eef3f8;
  border-left:3px solid var(--blue);
  padding:20px 24px;
  margin-bottom:32px;
  font-size:13px;
}
.no-results {
  padding:35px;
  border:1px solid var(--line);
  background:var(--pale);
}
.error-page {
  text-align:center;
  padding:100px 24px;
}
.error-page .eyebrow {
  justify-content:center;
}
.error-page p {
  margin:22px auto;
  max-width:480px;
}
.error-page .actions {
  justify-content:center;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
/* Company-supplied logo; retain original artwork and aspect ratio. */
.brand-logo {
  display:block;
  width:220px;
  height:auto;
  max-width:100%;
  object-fit:contain;
}
.site-footer .brand-logo {
  width:250px;
  background:#fff;
  border-radius:2px;
}
/* Architectural surfaces: decorative only; content stays in normal document flow. */
.surface-grid {
  position:relative;
  isolation:isolate;
  --grid-ink:rgba(107,141,169,.14);
  --grid-opacity:.5;
}
.surface-grid::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background-image:linear-gradient(var(--grid-ink) 1px,transparent 1px),linear-gradient(90deg,var(--grid-ink) 1px,transparent 1px);
  background-size:64px 64px;
  opacity:var(--grid-opacity);
  mask-image:linear-gradient(110deg,transparent 28%,#000 100%);
}
.hero.surface-grid::before {
  left:48%;
  mask-image:radial-gradient(ellipse at center,#000,transparent 74%);
}
.page-hero.surface-grid::before {
  left:35%;
  --grid-opacity:.4;
}
.security-section.surface-grid,.site-footer.surface-grid {
  --grid-ink:rgba(145,186,215,.12);
  --grid-opacity:.45;
}
.site-footer.surface-grid::before {
  background-size:88px 88px;
  mask-image:linear-gradient(115deg,transparent 36%,#000);
}
.surface-architecture::after {
  content:"";
  position:absolute;
  inset:0 0 0 48%;
  z-index:-1;
  background:url("../images/patterns/architecture.svg") right center/160px 160px;
  opacity:.16;
  mask-image:linear-gradient(90deg,transparent,#000);
  pointer-events:none;
}
.cta-band::before {
  content:"";
  position:absolute;
  top:0;
  left:max(24px,calc((100% - 1280px)/2));
  width:92px;
  height:2px;
  background:var(--gold);
  pointer-events:none;
}
/* Framing and quiet depth. The supplied hero artwork is never covered or cropped. */
.hero-visual::before {
  content:"";
  position:absolute;
  left:-10px;
  bottom:-10px;
  width:29px;
  height:29px;
  border-left:1px solid var(--gold);
  border-bottom:1px solid var(--gold);
  z-index:-1;
  pointer-events:none;
}
.about-visual::before {
  content:"";
  position:absolute;
  left:-10px;
  top:-10px;
  width:62px;
  height:62px;
  border-top:1px solid #becdd9;
  border-left:1px solid #becdd9;
  z-index:-1;
  pointer-events:none;
}
.featured-service::before {content:none;}
.featured-service::after {
  content:"";
  position:absolute;
  top:0;
  left:34px;
  width:62px;
  height:2px;
  background:#53b4ae;
  pointer-events:none;
}
.security-section::after {
  content:"";
  position:absolute;
  right:3%;
  top:8%;
  width:420px;
  height:460px;
  background:url("../images/patterns/security-lines.svg") center/contain no-repeat;
  opacity:.085;
  pointer-events:none;
  z-index:-1;
}
body[data-service="cloud-solutions"] .page-hero::after {
  content:"";
  position:absolute;
  left:34%;
  bottom:-18px;
  width:430px;
  height:284px;
  background:url("../images/patterns/cloud-paths.svg") center/contain no-repeat;
  opacity:.13;
  pointer-events:none;
  z-index:-1;
}
body[data-service="cybersecurity"] .page-hero::after {
  content:"";
  position:absolute;
  left:38%;
  top:16%;
  width:265px;
  height:290px;
  background:url("../images/patterns/security-lines.svg") center/contain no-repeat;
  opacity:.16;
  pointer-events:none;
  z-index:-1;
}
.m365-panel::before,.enquiry-form::before {
  content:"";
  position:absolute;
  left:30px;
  right:30px;
  top:-1px;
  height:2px;
  background:linear-gradient(90deg,var(--blue),#afc6dd 38%,transparent 75%);
  pointer-events:none;
}
/* Interaction language. Hover never changes layout or hides information. */
.btn:active {
  transform:translateY(1px);
  box-shadow:0 1px 3px #10263712;
}
.btn:hover .arrow {
  transform:translate(3px,-3px);
}
.text-link::after {
  content:"";
  position:absolute;
  left:0;
  bottom:6px;
  width:calc(100% - 38px);
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  opacity:.55;
  transition:transform .25s var(--ease);
  pointer-events:none;
}
.text-link:hover::after,.text-link:focus-visible::after {
  transform:scaleX(1);
}
.desktop-nav>a[aria-current="page"]::after {
  transform:scaleX(1);
  background:linear-gradient(90deg,var(--blue) 78%,var(--gold) 78%);
}
.nav-services>button[aria-expanded="true"] {
  color:var(--blue);
}
.nav-services>button .icon {
  transition:transform .2s;
}
.nav-services>button[aria-expanded="true"] .icon {
  transform:rotate(180deg);
}
.services-menu a:focus-visible {
  background:var(--accent-tint);
  outline-offset:-3px;
  color:var(--accent);
}
.menu-toggle:hover,.menu-toggle[aria-expanded="true"] {
  border-color:#8aa7bf;
  background:#f4f8fc;
}
.mobile-nav>a[aria-current="page"] {
  color:var(--blue);
  border-left:2px solid var(--blue);
  padding-left:12px;
  background:linear-gradient(90deg,#edf4fc,transparent);
}
.strip-items a:hover .icon {
  color:var(--accent);
  background:var(--accent-tint);
  border-color:var(--accent);
}
.service-row h3 .service-glyph {
  width:19px;
  height:19px;
  color:var(--accent);
  stroke-width:1.6;
  transition:color .25s,transform .25s var(--ease);
}
.service-row:focus-visible {
  outline-offset:5px;
  background:var(--accent-tint);
  border-color:var(--accent);
}
.service-row:hover h3 .service-glyph {
  color:var(--accent);
}
.service-row:hover .arrow {
  transform:translate(2px,-2px);
}
.value::after,.deliverable::after,.directory-item::after,.industry-item::after {
  content:"";
  position:absolute;
  top:-1px;
  left:0;
  width:42px;
  height:1px;
  background:var(--accent);
  transform:scaleX(.45);
  transform-origin:left;
  opacity:.6;
  transition:transform .3s var(--ease),opacity .3s;
  pointer-events:none;
}
.value:hover::after,.deliverable:hover::after,.directory-item:hover::after,.directory-item:focus-within::after,.industry-item:hover::after,.industry-item:focus-within::after {
  transform:scaleX(1);
  opacity:1;
}
.directory-item:hover,.directory-item:focus-within,.industry-item:hover,.industry-item:focus-within {
  border-color:var(--accent);
}
.directory-item:hover>.icon {
  background:var(--accent-tint);
}
.matrix-item::before {
  content:"";
  position:absolute;
  left:-1px;
  top:22%;
  bottom:22%;
  width:2px;
  background:var(--accent);
  transform:scaleY(0);
  transition:transform .25s var(--ease);
  pointer-events:none;
}
.matrix-item:hover::before,.matrix-item:focus-visible::before {
  transform:scaleY(1);
}
.industry-item .industry-glyph {
  width:23px;
  height:23px;
  color:#53768e;
  stroke-width:1.5;
}
.industry-item:hover .industry-glyph {
  color:var(--blue);
}
.industry-list a:focus-visible {
  background:#fff;
}
.article-card:focus-within h3 {
  color:var(--accent);
}
.capability-card:hover,.capability-card:focus-within {
  border-color:var(--accent);
  box-shadow:0 10px 25px #10263708;
}
.faq-grid details[open] {
  border-top-color:#8daac2;
}
.faq-grid summary:hover {
  color:var(--blue);
}
.field input:focus,.field select:focus,.field textarea:focus {
  border-color:var(--blue);
  box-shadow:0 0 0 3px #1263de0c;
}
.field [aria-invalid="true"]:focus {
  border-color:#b73333;
  box-shadow:0 0 0 3px #b733330d;
}
/* A restrained process timeline, progressively enhanced by Intersection Observer. */
.process-grid::before,.process-grid::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  pointer-events:none;
}
.process-grid::before {
  background:#c6d4df;
}
.process-grid::after {
  background:linear-gradient(90deg,#246aca,#85a9c9 76%,var(--gold));
  transform-origin:left;
}
.process-step>.process-icon {
  position:absolute;
  right:9px;
  top:26px;
  width:23px;
  height:23px;
  color:#67869d;
  stroke-width:1.5;
  transition:color .25s,transform .25s;
}
.process-step:hover>.process-icon {
  color:var(--blue);
}
.process-step:hover:before {
  background:#0e55bf;
}
/* Native, non-interactive reading progress; no custom cursor or preloader. */
.reading-progress {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:2px;
  display:block;
  margin:0;
  border:0;
  background:transparent;
  appearance:none;
  pointer-events:none;
  color:var(--blue);
  z-index:2;
}
.reading-progress::-webkit-progress-bar {
  background:transparent;
}
.reading-progress::-webkit-progress-value {
  background:var(--blue);
}
.reading-progress::-moz-progress-bar {
  background:var(--blue);
}
@media (hover:hover) and (pointer:fine) {
  .btn:hover {
    transform:translateY(-1px);
  }
  .btn:active {
    transform:translateY(0);
  }
  .service-row:hover h3 {
    transform:translateX(3px);
  }
  .value:hover>.icon,.matrix-item:hover>.icon {
    transform:translateY(-2px);
  }
  .capability-card:hover {
    transform:translateY(-2px);
  }
  .process-step:hover>.process-icon {
    transform:translateY(-2px);
  }
}
/* Keep the Services navigation state consistent across its existing detail pages. */
body[data-service] .nav-services > button {
  color:var(--blue);
}
body[data-service] .nav-services::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:3px;
  height:1px;
  background:linear-gradient(90deg,var(--blue) 78%,var(--gold) 78%);
  pointer-events:none;
}
/* Reference-inspired device composition, using genuine Blue Stone page screenshots. */
.device-showcase {
  position:relative;
  isolation:isolate;
  width:min(100%,550px);
  aspect-ratio:.95;
  margin:0 auto;
}
.device-network {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  color:#658da8;
  pointer-events:none;
}
.network-base {opacity:.3;}
.network-response {opacity:.15;transition:opacity .3s,color .3s;}
.device-showcase:has(.device-link:hover) .network-response,.device-showcase:has(.device-link:focus-visible) .network-response {opacity:.65;color:var(--blue);}
.device-link {
  display:block;
  position:absolute;
  width:43%;
  border-radius:36px;
  transform-origin:center;
  z-index:1;
}
.device-primary {left:6%;top:4%;transform:rotate(-6deg);}
.device-secondary {left:49%;top:12%;transform:rotate(5deg);z-index:2;}
.device-frame {
  position:relative;
  display:block;
  aspect-ratio:390/840;
  border-radius:clamp(23px,3vw,36px);
  border:1px solid #7a858b;
  background:linear-gradient(105deg,#a3adb3,#26323a 5%,#111820 88%,#737f87);
  box-shadow:-5px 5px 0 -2px #65717a,0 22px 28px -15px #10263755;
  transition:translate .35s var(--ease),box-shadow .35s;
}
.device-frame::before {
  content:"";
  position:absolute;
  z-index:2;
  width:28%;
  height:2.7%;
  left:36%;
  top:2.7%;
  border-radius:20px;
  background:#111820;
}
.device-frame::after {
  content:"";
  position:absolute;
  left:34%;
  bottom:2.2%;
  width:32%;
  height:3px;
  border-radius:3px;
  background:#152534;
  z-index:2;
}
.device-screen {
  position:absolute;
  inset:6px;
  overflow:hidden;
  border-radius:clamp(18px,2.7vw,30px);
  background:#fff;
  padding-top:24px;
}
.device-screen img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top;
}
.device-link:focus-visible {outline-offset:8px;}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .device-link:hover .device-frame {translate:0 -4px;box-shadow:-5px 5px 0 -2px #65717a,0 25px 31px -15px #10263760;}
}

/* A reusable, restrained infrastructure motif, not a dashboard or partner badge. */
.featured-service {--preview-accent:#8bddda;}
.featured-service[data-preview="software-development"],.featured-service[data-preview="web-development"],.featured-service[data-preview="microsoft-365"] {--preview-accent:#9bbdff;}
.featured-service[data-preview="it-consulting"],.featured-service[data-preview="email-marketing"] {--preview-accent:#e2be88;}
.service-preview {display:block;width:100%;height:82px;color:var(--preview-accent);margin-bottom:20px;transition:color .3s;}
.preview-lines {opacity:.46;}
.preview-glyph {opacity:.95;}
.featured-service::after {background:var(--preview-accent);}
.service-row.is-selected {background:var(--accent-tint);border-color:var(--accent);color:var(--accent);}
.service-row.is-selected .arrow {transform:translate(2px,-2px);}
.service-row.is-selected .service-glyph {transform:scale(1.06);}
.service-image {position:relative;margin:0;isolation:isolate;}
.service-image::before {content:"";position:absolute;left:-12px;top:-12px;width:62px;height:62px;border-top:1px solid var(--accent);border-left:1px solid var(--accent);opacity:.5;z-index:-1;pointer-events:none;}
.service-signature {position:absolute;right:-19px;bottom:-29px;width:116px;height:78px;color:var(--accent);opacity:.62;pointer-events:none;}
.service-image .page-hero-image {transition:box-shadow .35s;border-color:#c8d6df;}
.service-image:hover .page-hero-image {box-shadow:0 14px 30px -18px #10263755;}
.capability-prompt {grid-column:1/-1;padding:19px 23px;font-size:16px;letter-spacing:-.02em;line-height:1.5;border-bottom:1px solid var(--line);border-right:1px solid var(--line);}
.matrix-item:focus-visible {background:var(--accent-tint);color:var(--accent);outline-offset:-4px;}

/* Journey progression changes decoration only; the copy is always available. */
.process-grid {--journey-progress:1;}
.process-grid[data-step="0"] {--journey-progress:0;}
.process-grid[data-step="1"] {--journey-progress:.25;}
.process-grid[data-step="2"] {--journey-progress:.5;}
.process-grid[data-step="3"] {--journey-progress:.75;}
.process-grid[data-step="4"] {--journey-progress:1;}
.process-grid[data-step]::after {transform:scaleX(var(--journey-progress));transition:transform .45s var(--ease);}
.process-step:before {transition:background .3s,box-shadow .3s;}
.process-step.is-current:before {box-shadow:0 0 0 5px #f3f6f8,0 0 0 6px #a4bfdd;background:var(--blue);}
.process-step.is-current>.process-icon,.process-step.is-reached>.process-icon {color:var(--blue);}
.process-step h3 {transition:color .3s;}
.process-step.is-current h3 {color:var(--blue-dark);}
.field:focus-within>label {color:var(--blue-dark);}
.field input:focus,.field textarea:focus,.field select:focus {background:#fcfdff;}
.hero-copy>p,.page-hero p,.section-head>p {text-wrap:pretty;}
/* Purpose-led accents: build (blue), operations/security (teal), guidance/growth (copper). */
[data-tone="blue"] {
  --accent:#195dc8;
  --accent-tint:#edf3ff;
}
[data-tone="teal"] {
  --accent:#08777d;
  --accent-tint:#edf8f7;
}
[data-tone="copper"] {
  --accent:#956331;
  --accent-tint:#fbf4eb;
}
body[data-tone="teal"] .page-hero {
  background:linear-gradient(120deg,#f8fbfc,#edf6f5);
}
body[data-tone="copper"] .page-hero {
  background:linear-gradient(120deg,#fbfcfd,#f7f2eb);
}
body[data-tone] .page-hero .eyebrow {
  color:var(--accent);
}
.directory-item .text-link,.capability-card .text-link,.article-card .text-link {
  color:var(--accent);
}
.article-card .image-link::after {
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  width:44px;
  height:3px;
  background:var(--accent);
  transform-origin:left;
  transition:transform .35s var(--ease);
  pointer-events:none;
}
.article-card:hover .image-link::after,.article-card:focus-within .image-link::after {
  transform:scaleX(1.65);
}
/* Use the existing featured service as an editorial anchor, not an oversized empty box. */
@media (min-width:768px) {
  .featured-service {
    align-self:start;
    position:sticky;
    top:108px;
    min-height:555px;
  }
}
@media (min-width:768px) and (max-width:1023px) {
  .featured-service {
    top:96px;
    min-height:520px;
  }
}
@media (min-width:768px) and (max-height:700px) {
  .featured-service {
    position:relative;
    top:auto;
  }
}
@media (hover:hover) and (pointer:fine) {
  .capability-card:hover {
    box-shadow:0 12px 28px #1026370c;
  }
  .directory-item:hover>.icon,.directory-item:focus-within>.icon {
    transform:translateY(-2px);
  }
}

/* Editorial controls: reuse the established service-family accents. */
.filter-bar button[data-filter="Cybersecurity"],.filter-bar button[data-filter="Cloud"],.filter-bar button[data-filter="IT Support"] {
  --filter-ink:#08777d;
}
.filter-bar button[data-filter="Business Technology"],.filter-bar button[data-filter="Digital Transformation"] {
  --filter-ink:#956331;
}
.filter-bar button[data-filter="Microsoft 365"],.filter-bar button[data-filter="Software Development"],.filter-bar button[data-filter="Web Development"] {
  --filter-ink:#195dc8;
}
.filter-bar button[aria-pressed="false"]:hover {
  background:var(--pale);
}
.breadcrumbs a {
  display:inline-flex;
  align-items:center;
  min-height:28px;
}
.breadcrumbs a:focus-visible,.footer-column a:focus-visible,.footer-bottom a:hover,.footer-bottom a:focus-visible {
  text-decoration:underline;
  text-underline-offset:4px;
}
.desktop-nav>a:focus-visible::after {
  transform:scaleX(1);
}
.mobile-nav>a:not(.btn):hover,.mobile-nav>a:not(.btn):focus-visible {
  color:var(--blue-dark);
  background:#edf4fc;
}
.mobile-nav>a:focus-visible {
  outline-offset:-3px;
}
.article-toc a:hover,.article-toc a:focus-visible {
  color:var(--blue-dark);
  background:#f3f7fb;
}
.faq-grid summary:hover,.faq-grid summary:focus-visible {
  color:var(--accent);
}

/* Homepage mobile alternative. Hidden variants leave the accessibility tree. */
.hero h1 .hero-title-desktop {color:inherit;}
.hero h1 .hero-title-mobile,.hero-description-mobile {display:none;}
.device-screen picture {display:contents;}

/* Owner-supplied contact details, shared by the contact page and footer. */
.business-contact {font-style:normal;font-size:14px;line-height:1.75;}
.business-contact-item {min-width:0;}
.business-contact-label {display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.business-contact a {display:inline-flex;align-items:center;min-height:44px;max-width:100%;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere;}
.business-contact .business-map-link {gap:9px;}
.business-map-link .icon {width:15px;height:15px;flex-shrink:0;}
.business-street-address {display:block;}
.contact-layout .enquiry-form {align-self:start;}
.contact-details {margin-top:26px;display:grid;gap:16px;padding-block:24px;border-block:1px solid var(--line);}
.contact-details .business-contact-label {color:var(--muted);}
.contact-details a {color:var(--blue-dark);}
.contact-details .business-contact-location .business-contact-label {margin-bottom:8px;}
.footer-contact {display:grid;grid-template-columns:1fr .85fr 1.65fr;gap:28px 40px;padding:28px 0;border-top:1px solid #304756;color:#fff;font-size:13px;}
.footer-contact .business-contact-label {color:#fff;}
.footer-contact a {color:#fff;}
.footer-contact .business-contact-location .business-contact-label {margin-bottom:8px;}
.footer-contact a:hover,.footer-contact a:focus-visible {color:#fff;text-decoration-thickness:2px;}
@media(max-width:900px) {.footer-contact {grid-template-columns:1fr 1fr;}.footer-contact .business-contact-location {grid-column:1 / -1;}}
@media(max-width:479px) {.footer-contact {grid-template-columns:1fr;gap:18px;}.footer-contact .business-contact-location {grid-column:auto;}}


/* Contact icons: the text labels remain the accessible names. */
.business-contact-label {display:flex;align-items:center;gap:8px;min-height:20px;}
.business-contact-label .contact-info-icon {width:18px;height:18px;flex:0 0 18px;color:var(--blue-dark);stroke-width:1.8;}
.footer-contact .business-contact-label .contact-info-icon {color:#fff;}
