:root {
  --home-dark-copy: rgba(255,255,255,.84);
  --home-dark-muted: rgba(255,255,255,.68);
  --home-line: rgba(13,42,62,.12);
}
.site-header { background:rgba(255,255,255,.96); }
.home-shell { overflow:clip; }
.home-section { position:relative; padding-block:var(--section-space); }
.home-dark {
  color:#fff;
  background:
    radial-gradient(circle at 84% 0%,rgba(35,131,197,.25),transparent 34%),
    radial-gradient(circle at 4% 86%,rgba(15,122,128,.18),transparent 30%),
    linear-gradient(145deg,var(--color-navy-950),var(--color-navy-900));
}
.home-dark :is(h1,h2,h3,h4,h5,h6,.display) { color:#fff; }
.home-dark p,.home-dark li,.home-dark .muted { color:var(--home-dark-copy); }
.home-dark .eyebrow { color:#83d9d7; }
.home-dark a:not(.btn) { color:#9ae0ff; }
.home-dark a:not(.btn):hover { color:#fff; }

/* Hero */
.home-hero {
  position:relative;
  min-height:min(850px,calc(100svh - var(--header-height)));
  display:grid;
  align-items:center;
  padding-block:clamp(4rem,8vw,7rem);
  overflow:hidden;
}
.home-hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,rgba(7,31,46,.99) 0%,rgba(9,42,63,.93) 35%,rgba(13,42,62,.47) 65%,rgba(13,42,62,.14));
}
.home-hero::after {
  content:"";
  position:absolute;
  z-index:1;
  width:34rem;
  height:34rem;
  right:-9rem;
  bottom:-18rem;
  border:1px solid rgba(255,255,255,.13);
  border-radius:50%;
  box-shadow:0 0 0 4rem rgba(255,255,255,.025),0 0 0 8rem rgba(255,255,255,.018);
}
.home-hero__photo {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.86) contrast(1.03);
}
.home-hero__inner {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(2rem,5vw,5.5rem);
  align-items:end;
}
.home-hero__copy { max-width:54rem; }
.home-hero__title {
  max-width:52rem;
  font-size:clamp(2.65rem,5.6vw,5.15rem);
  line-height:.99;
  letter-spacing:-.052em;
}
.home-hero__title span { color:#70d1f8; }
.home-hero__lead {
  max-width:49rem;
  margin-top:1.45rem;
  color:var(--home-dark-copy);
  font-size:clamp(1.05rem,1.6vw,1.28rem);
}
.home-hero__lead--secondary { max-width:44rem; margin-top:.75rem; color:var(--home-dark-muted); font-size:clamp(.98rem,1.25vw,1.08rem); }
.home-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.7rem; }
.home-btn-ghost { border-color:rgba(255,255,255,.5); color:#fff; background:rgba(255,255,255,.06); }
.home-btn-ghost:visited { color:#fff; }
.home-btn-ghost:hover { color:#fff; border-color:#fff; background:rgba(255,255,255,.14); }

/* Foundation */
.home-client-proof__heading,.home-section-heading {
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(18rem,.62fr);
  gap:clamp(2rem,5vw,5rem);
  align-items:end;
  margin-bottom:clamp(2rem,4vw,3.25rem);
}
.home-client-proof__heading h2,.home-section-heading h2 { max-width:52rem; }
.home-client-proof__heading > p,.home-section-heading > p { color:var(--color-muted); font-size:1rem; }

/* Client proof */
.home-client-proof { padding-block:clamp(4rem,7vw,6rem); background:#fff; }
.home-logo-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid var(--color-border); border-left:1px solid var(--color-border); border-radius:var(--radius-xl); overflow:hidden; background:#fff; box-shadow:var(--shadow-md); }
.home-logo-grid a { min-height:8rem; display:grid; place-items:center; padding:1rem; border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); background:#fff; transition:background .2s,transform .2s,box-shadow .2s; }
.home-logo-grid a:hover { position:relative; z-index:1; transform:translateY(-2px); background:var(--color-surface-blue); box-shadow:var(--shadow-sm); }
.home-logo-grid a:focus-visible { position:relative; z-index:2; outline:3px solid rgba(35,131,197,.35); outline-offset:-4px; }
.home-logo-grid img { object-fit:contain; }
.home-cloud-proof {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:1.2rem;
  align-items:center;
  margin-top:1.5rem;
  padding:1.25rem 1.4rem;
  border:1px solid var(--color-border);
  border-radius:var(--radius-xl);
  background:linear-gradient(135deg,#f8fbfd,#eef6f8);
}
.home-cloud-proof__mark { width:13rem; height:7rem; display:grid; place-items:center; padding:.3rem; border-radius:.7rem; background:#fff; box-shadow:var(--shadow-sm); }
.home-cloud-proof__mark img { max-width:100%; max-height:100%; object-fit:contain; }
.home-cloud-proof strong { color:var(--color-navy-950); }
.home-cloud-proof p { margin-top:.2rem; color:var(--color-muted); font-size:.9rem; }

/* Solution explorer */
.home-solution-layout { display:grid; grid-template-columns:minmax(17rem,.72fr) minmax(0,1.28fr); gap:var(--grid-gap); }
.home-solution-nav { display:grid; gap:.65rem; align-content:start; }
.home-solution-tab {
  width:100%;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:.8rem;
  align-items:center;
  padding:1rem;
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  color:var(--color-ink);
  background:#fff;
  text-align:left;
  transition:transform .2s,background .2s,border-color .2s,box-shadow .2s;
}
.home-solution-tab:hover { transform:translateX(4px); border-color:var(--color-brand-blue); box-shadow:var(--shadow-sm); }
.home-solution-tab[aria-selected="true"] { color:#fff; border-color:transparent; background:linear-gradient(135deg,var(--color-navy-900),var(--color-brand-blue-700)); box-shadow:var(--shadow-md); }
.home-solution-tab .icon { width:1.25rem; height:1.25rem; }
.home-solution-panels { min-width:0; }
.home-solution-panel {
  min-height:28rem;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(16rem,.92fr);
  gap:var(--grid-gap);
  align-items:center;
  padding:clamp(1.6rem,3vw,2.65rem);
  border:1px solid rgba(35,131,197,.12);
  border-radius:var(--radius-2xl);
  background:#fff;
  box-shadow:var(--shadow-lg);
}
.home-solution-panel[hidden] { display:none; }
.home-solution-panel .link-arrow { margin-top:1rem; }
.home-solution-panel__visual {
  position:relative;
  display:grid;
  place-items:center;
  min-height:21rem;
  border-radius:var(--radius-xl);
  overflow:hidden;
  background:linear-gradient(145deg,var(--color-surface-blue),var(--color-surface-teal));
}
.home-solution-panel__visual::before,.home-solution-panel__visual::after { position:absolute; content:""; border:1px solid rgba(35,131,197,.22); border-radius:50%; }
.home-solution-panel__visual::before { width:15.5rem; height:15.5rem; }
.home-solution-panel__visual::after { width:9rem; height:9rem; }
.home-solution-panel__visual .icon { position:relative; z-index:2; width:4.6rem; height:4.6rem; color:var(--color-brand-blue-700); }
.home-solution-panel__visual span { position:absolute; z-index:3; display:inline-flex; padding:.45rem .67rem; border:1px solid rgba(35,131,197,.2); border-radius:999px; color:var(--color-navy-950); background:rgba(255,255,255,.9); box-shadow:var(--shadow-sm); font-size:.74rem; font-weight:800; }
.home-solution-panel__visual span:nth-of-type(1) { top:1.1rem; left:50%; transform:translateX(-50%); }
.home-solution-panel__visual span:nth-of-type(2) { top:50%; right:.85rem; transform:translateY(-50%); }
.home-solution-panel__visual span:nth-of-type(3) { bottom:1.1rem; left:50%; transform:translateX(-50%); }
.home-solution-panel__visual span:nth-of-type(4) { top:50%; left:.85rem; transform:translateY(-50%); }
.home-solution-panel__visual--workflow { background:linear-gradient(145deg,#eef4f8,#f7f2ec); }
.home-solution-panel__visual--data { background:linear-gradient(145deg,#e9f4fb,#eef1f4); }
.home-solution-panel__visual--customer { background:linear-gradient(145deg,#e9f6f5,#f7f2ec); }
.home-solution-panel__visual--integration { background:linear-gradient(145deg,#eef1f4,#e9f4fb); }

/* Commercial routes */
.home-routes { background:linear-gradient(180deg,#fff,#f7fafb); }
.home-routes__layout { display:grid; grid-template-columns:minmax(18rem,.82fr) minmax(0,1.18fr); gap:clamp(2rem,4vw,4rem); align-items:stretch; }
.home-routes__visual { margin:0; min-height:100%; display:grid; place-items:center; overflow:hidden; border:1px solid var(--color-border); border-radius:var(--radius-2xl); background:#fff; box-shadow:var(--shadow-lg); }
.home-routes__visual img { width:100%; height:100%; object-fit:cover; }
.home-route-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.home-route { position:relative; min-height:15rem; display:flex; flex-direction:column; padding:1.45rem; border:1px solid var(--color-border); border-radius:var(--radius-xl); background:#fff; box-shadow:var(--shadow-sm); transition:transform .2s,box-shadow .2s,border-color .2s; }
.home-route:hover { transform:translateY(-4px); border-color:rgba(35,131,197,.35); box-shadow:var(--shadow-md); }
.home-route--bespoke { color:#fff; border-color:transparent; background:linear-gradient(145deg,var(--color-navy-950),var(--color-brand-blue-800)); }
.home-route span { display:inline-grid; width:2.25rem; height:2.25rem; place-items:center; border-radius:50%; color:var(--color-brand-blue-700); background:var(--color-surface-blue); font-size:.72rem; font-weight:900; }
.home-route--bespoke span { color:#fff; background:rgba(255,255,255,.14); }
.home-route h3 { margin-top:1rem; font-size:var(--text-h4); }
.home-route p { margin-top:.65rem; color:var(--color-muted); font-size:.92rem; }
.home-route a { margin-top:auto; padding-top:1rem; font-weight:800; }
.home-route--bespoke h3,.home-route--bespoke a { color:#fff; }
.home-route--bespoke p { color:rgba(255,255,255,.76); }

/* Industry selector */
.home-industry { display:grid; grid-template-columns:minmax(16rem,.65fr) minmax(0,1.35fr); gap:var(--grid-gap); align-items:stretch; }
.home-industry__buttons { display:grid; gap:.75rem; align-content:start; }
.home-industry__button { padding:1rem 1.05rem; border:1px solid rgba(255,255,255,.18); border-radius:var(--radius-md); color:#fff; background:rgba(255,255,255,.055); text-align:left; transition:transform .2s,border-color .2s,background .2s; }
.home-industry__button:hover { transform:translateX(4px); border-color:rgba(142,219,255,.8); }
.home-industry__button[aria-pressed="true"] { border-color:#83d9d7; background:linear-gradient(135deg,rgba(15,122,128,.48),rgba(35,131,197,.42)); box-shadow:0 10px 30px rgba(0,0,0,.18); }
.home-industry__button strong { display:block; color:#fff; }
.home-industry__button small { display:block; margin-top:.35rem; color:rgba(255,255,255,.68); line-height:1.45; }
.home-industry__stage { position:relative; min-height:35rem; overflow:hidden; border:1px solid rgba(255,255,255,.17); border-radius:var(--radius-2xl); background:#102f44; box-shadow:var(--shadow-xl); }
.home-industry__figure { position:absolute; inset:0; margin:0; }
.home-industry__figure[hidden] { display:none; }
.home-industry__figure img { width:100%; height:100%; object-fit:cover; }
.home-industry__figure::after { position:absolute; inset:0; content:""; background:linear-gradient(180deg,transparent 28%,rgba(7,31,46,.9) 91%); }
.home-industry__caption { position:absolute; z-index:2; right:1.5rem; bottom:1.5rem; left:1.5rem; max-width:43rem; padding:1.2rem 1.25rem; border:1px solid rgba(255,255,255,.2); border-radius:var(--radius-lg); background:rgba(7,31,46,.72); backdrop-filter:blur(12px); }
.home-industry__caption p { margin-top:.5rem; color:rgba(255,255,255,.76); }
.home-industry__caption a { font-weight:800; }

/* Stories */
.home-stories { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; }
.home-story { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--color-border); border-radius:var(--radius-xl); background:#fff; box-shadow:var(--shadow-sm); transition:transform .25s,box-shadow .25s; }
.home-story:hover { transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.home-story__image { position:relative; aspect-ratio:16/9; overflow:hidden; background:linear-gradient(145deg,#eaf3f7,#f5f8fa); }
.home-story__image img { width:100%; height:100%; object-fit:cover; transition:transform .45s var(--ease-emphasised); }
.home-story:hover .home-story__image img { transform:scale(1.025); }
.home-story__body { display:flex; flex:1; flex-direction:column; padding:1.3rem; }
.home-story__meta { color:var(--color-brand-teal); font-size:.72rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.home-story h3 { margin-top:.65rem; }
.home-story p { margin-top:.55rem; color:var(--color-muted); font-size:.92rem; }
.home-story a { margin-top:auto; padding-top:1rem; display:inline-flex; gap:.35rem; align-items:center; font-weight:800; }
.home-story-actions { display:flex; justify-content:center; margin-top:2rem; }

/* Portfolio */
.home-portfolio { padding-block:clamp(4rem,7vw,6rem); background:linear-gradient(135deg,#e9f5f5,#eef5fa 55%,#f7f2ec); }
.home-portfolio__inner { display:grid; grid-template-columns:minmax(0,.8fr) minmax(22rem,1.2fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.home-portfolio__copy { max-width:39rem; }
.home-portfolio__copy .btn { margin-top:1.4rem; }
.home-portfolio__visual { position:relative; min-height:29rem; border:1px solid rgba(13,42,62,.12); border-radius:var(--radius-2xl); background:radial-gradient(circle at center,rgba(35,131,197,.18),transparent 38%),#fff; box-shadow:var(--shadow-lg); }
.home-portfolio__visual::before,.home-portfolio__visual::after { position:absolute; inset:16%; border:1px solid rgba(35,131,197,.22); border-radius:50%; content:""; }
.home-portfolio__visual::after { inset:28%; border-color:rgba(15,122,128,.28); }
.home-portfolio__visual span { position:absolute; display:grid; min-width:9.4rem; min-height:4.2rem; place-items:center; padding:.8rem; border:1px solid var(--color-border); border-radius:var(--radius-lg); color:var(--color-navy-950); background:#fff; box-shadow:var(--shadow-md); font-size:.82rem; font-weight:800; text-align:center; }
.home-portfolio__visual .home-portfolio__core { top:50%; left:50%; min-width:10.5rem; color:#fff; border-color:transparent; background:linear-gradient(135deg,var(--color-navy-950),var(--color-brand-blue-700)); transform:translate(-50%,-50%); }
.home-portfolio__visual span:nth-child(2) { top:9%; left:8%; }
.home-portfolio__visual span:nth-child(3) { top:9%; right:8%; }
.home-portfolio__visual span:nth-child(4) { bottom:9%; left:8%; }
.home-portfolio__visual span:nth-child(5) { right:8%; bottom:9%; }

/* CTA */
.home-cta { position:relative; display:grid; grid-template-columns:minmax(0,1fr) minmax(20rem,.62fr); gap:clamp(2rem,4vw,4rem); align-items:center; overflow:hidden; padding:clamp(2rem,5vw,4.2rem); border-radius:var(--radius-2xl); box-shadow:var(--shadow-xl); }
.home-cta__content { position:relative; z-index:2; max-width:48rem; }
.home-cta__content p:not(.eyebrow) { max-width:44rem; }

.home-cta__visual { position:relative; min-height:clamp(18rem,30vw,27rem); margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.18); border-radius:calc(var(--radius-2xl) - .4rem); box-shadow:0 22px 44px rgba(0,0,0,.28); }
.home-cta__visual::after { position:absolute; inset:0; content:""; pointer-events:none; background:linear-gradient(180deg,transparent 58%,rgba(5,23,34,.2)); }
.home-cta__visual picture,.home-cta__visual img { display:block; width:100%; height:100%; }
.home-cta__visual img { position:absolute; inset:0; object-fit:cover; object-position:center; transition:transform .6s var(--ease-emphasised); }
.home-cta:hover .home-cta__visual img { transform:scale(1.025); }



/* Progressive enhancement */
.no-js .home-solution-nav { display:none; }
.no-js .home-solution-panel[hidden] { display:grid!important; margin-top:1rem; }
.no-js .home-industry__buttons { display:none; }
.no-js .home-industry__stage { display:grid; gap:1rem; min-height:auto; overflow:visible; border:0; background:transparent; box-shadow:none; }
.no-js .home-industry__figure,.no-js .home-industry__figure[hidden] { position:relative; display:block!important; min-height:30rem; overflow:hidden; border-radius:var(--radius-xl); }

@media (max-width:74rem) {
  .home-logo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .home-solution-panel { grid-template-columns:1fr; }
  .home-solution-panel__visual { min-height:17rem; }
  .home-routes__layout { grid-template-columns:1fr; }
  .home-routes__visual img { min-height:25rem; object-fit:contain; }
}

@media (max-width:63.99rem) {
  .home-hero { min-height:auto; }
  .home-hero__inner { grid-template-columns:1fr; align-items:start; }
  .home-client-proof__heading,.home-section-heading { grid-template-columns:1fr; gap:1rem; align-items:start; }
  .home-solution-layout { grid-template-columns:1fr; }
  .home-solution-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-solution-tab { min-height:5.2rem; }
  .home-industry { grid-template-columns:1fr; }
  .home-industry__buttons { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-industry__stage { min-height:32rem; }
  .home-stories { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-story:last-child { grid-column:1/-1; max-width:36rem; justify-self:center; }
  .home-portfolio__inner { grid-template-columns:1fr; }
  .home-portfolio__copy { max-width:50rem; }
  .home-cta { grid-template-columns:1fr; }
  .home-cta__signal { min-height:13rem; }
}

@media (max-width:47.99rem) {
  .home-hero { padding-block:3.8rem 4.5rem; }
  .home-hero::before { background:linear-gradient(90deg,rgba(7,31,46,.98),rgba(9,42,63,.87)); }
  .home-hero__photo { object-position:62% center; }
  .home-actions { display:grid; }
  .home-actions .btn { width:100%; }
  .home-route-grid,.home-stories { grid-template-columns:1fr; }
  .home-story:last-child { grid-column:auto; max-width:none; }
  .home-logo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-logo-grid a { min-height:7rem; }
  .home-cloud-proof { grid-template-columns:auto 1fr; }
  .home-cloud-proof .link-arrow { grid-column:1/-1; }
  .home-solution-nav { display:flex; overflow-x:auto; padding-bottom:.5rem; scroll-snap-type:x mandatory; }
  .home-solution-tab { min-width:15.5rem; scroll-snap-align:start; }
  .home-solution-panel { min-height:auto; }
  .home-solution-panel__visual { min-height:15rem; }
  .home-industry__buttons { display:flex; overflow-x:auto; padding-bottom:.5rem; scroll-snap-type:x mandatory; }
  .home-industry__button { min-width:16.5rem; scroll-snap-align:start; }
  .home-industry__stage { min-height:31rem; }
  .home-industry__caption { right:.9rem; bottom:.9rem; left:.9rem; }
  .home-routes__visual img { min-height:20rem; }
  .home-portfolio__visual { min-height:25rem; }
  .home-portfolio__visual span { min-width:7.5rem; min-height:3.6rem; font-size:.72rem; }
  .home-portfolio__visual .home-portfolio__core { min-width:8.5rem; }
}

@media (max-width:29.99rem) {
  .home-hero__title { font-size:2.45rem; }
  .home-logo-grid { grid-template-columns:1fr 1fr; }
  .home-logo-grid a { min-height:6.2rem; padding:.6rem; }
  .home-logo-grid img { height:3.7rem; }
  .home-cloud-proof { grid-template-columns:1fr; }
  .home-cloud-proof__mark { width:6.5rem; }
  .home-industry__stage { min-height:33rem; }
  .home-portfolio__visual { min-height:31rem; }
  .home-portfolio__visual span:nth-child(2),.home-portfolio__visual span:nth-child(3) { top:7%; }
  .home-portfolio__visual span:nth-child(2),.home-portfolio__visual span:nth-child(4) { left:3%; }
  .home-portfolio__visual span:nth-child(3),.home-portfolio__visual span:nth-child(5) { right:3%; }
  .home-portfolio__visual span:nth-child(4),.home-portfolio__visual span:nth-child(5) { bottom:7%; }
  .home-cta { padding:1.55rem; }
}

@media (prefers-reduced-motion:reduce) {
  .home-logo-grid a,.home-route,.home-story,.home-solution-tab,.home-industry__button,.home-story__image img { transition:none; }
}

/* Products and Services distinction */
.home-route--connected {
  grid-column:1/-1;
  min-height:11rem;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  column-gap:1rem;
  align-items:center;
  background:linear-gradient(135deg,#eef7fa,#eaf6f3);
}
.home-route--connected span { grid-row:1/3; align-self:start; }
.home-route--connected h3 { margin-top:0; }
.home-route--connected p { margin-top:.35rem; }
.home-route--connected a { padding-top:0; align-self:center; white-space:nowrap; }
@media (max-width:47.99rem) {
  .home-route--connected { grid-column:auto; display:flex; min-height:15rem; }
  .home-route--connected h3 { margin-top:1rem; }
  .home-route--connected a { padding-top:1rem; white-space:normal; }
}

.home-proof-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1.4rem;max-width:58rem}.home-proof-strip__item{padding:.8rem .9rem;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-md);background:rgba(255,255,255,.07);backdrop-filter:blur(8px)}.home-proof-strip__item strong{display:block;color:#fff;font-size:.9rem}.home-proof-strip__item span{display:block;margin-top:.2rem;color:rgba(255,255,255,.7);font-size:.72rem;line-height:1.35}.home-route-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-route__links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:auto;padding-top:1rem}.home-route__links a{padding-top:0}.home-route-note{grid-column:1/-1;margin-top:1rem;padding:1rem 1.1rem;border-left:4px solid var(--color-brand-teal);border-radius:var(--radius-md);background:var(--color-surface-teal);color:var(--color-navy-950)}@media(max-width:63.99rem){.home-proof-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.home-route-grid{grid-template-columns:1fr}}@media(max-width:35rem){.home-proof-strip{grid-template-columns:1fr}}
