/* Click Start V2.2 — connected intelligence, grounded in the V2 identity. */
:root { --tech-ink:#07192C; --tech-blue:#2178EE; --tech-cyan:#8FE6FF; --tech-line:#AACFF43B; }
body { background:#fff; }
.site-header { background:#FFFFFFEB; backdrop-filter:blur(22px); border-bottom-color:#D5E3F080; }
.site-header .brand img { border-radius:10px; }
.site-header .button.primary { box-shadow:0 4px 18px #176BE025,inset 0 1px 0 #FFFFFF40; }
.main-nav>a.active:not(.button)::after { background:linear-gradient(90deg,#176BE0,#65CDEB); }
.button.primary { background:linear-gradient(118deg,#1469E1,#217CEF); border:1px solid #2B84EB; }
.button { transition:background .25s,box-shadow .25s,border-color .25s; }
.button.primary:hover { box-shadow:0 8px 28px #176BE030; }
.button.white { border:1px solid #fff; box-shadow:0 6px 25px #06162B15; }
.button.white:hover { background:#DEF6FF; border-color:#B5EDFF; }

/* Immersive photographic hero with an explorable glass card. */
.tech-hero-shell { padding:24px 24px 25px; background:linear-gradient(180deg,#F5F9FD,#EAF2FB); }
.tech-hero { min-height:710px; border:1px solid #A2D7FF38; box-shadow:0 20px 65px #102D4F1A,inset 0 0 0 1px #FFFFFF06; border-radius:25px; }
.tech-hero .hero-image { object-position:center; }
.tech-hero .hero-shade { background:linear-gradient(90deg,#061829F5 0%,#061829D9 26%,#06182952 58%,#06182913 80%),linear-gradient(0deg,#061829B0,transparent 48%); }
.tech-hero .hero-content { z-index:2; padding-top:86px; padding-bottom:100px; }
.tech-hero .hero-content>* { max-width:620px; }
.tech-hero .hero-content h1 { font-size:clamp(64px,6.55vw,98px); line-height:1.01; letter-spacing:-.05em; }
.tech-hero .hero-content h1 em { background:linear-gradient(105deg,#B2D8FF 5%,#BDF4FF 84%); color:#B7E6FF; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.tech-hero .hero-content .eyebrow { display:inline-flex; align-items:center; padding:10px 13px; border:1px solid #A0D9FC42; border-radius:7px; background:#0C315454; color:#D0F0FF; font-size:11px; letter-spacing:.13em; backdrop-filter:blur(8px); margin-bottom:29px; }
.tech-hero .eyebrow i { background:#8FE6FF; box-shadow:0 0 14px #8FE6FF90; }
.tech-hero .hero-lead { color:#F1F7FC; font-size:21px; line-height:1.55; max-width:510px; }
.tech-hero .hero-description { color:#C2D2E1; font-size:14px; line-height:1.75; }
.tech-hero .button-row { margin-top:31px; gap:22px; }
.tech-hero .hero-image-caption { z-index:3; bottom:18px; right:30px; color:#DDE9F3; font-size:10px; }
.tech-grid { position:absolute; inset:0; pointer-events:none; z-index:-1; background-image:linear-gradient(#89D4FF0A 1px,transparent 1px),linear-gradient(90deg,#89D4FF0A 1px,transparent 1px); background-size:70px 70px; mask-image:linear-gradient(90deg,transparent 37%,#000); }
.tech-aura { position:absolute; z-index:-1; width:650px; height:650px; right:-150px; bottom:-230px; border-radius:50%; background:radial-gradient(ellipse,#3AA2FF30,transparent 65%); pointer-events:none; }
.hero-circuit { position:absolute; z-index:-1; right:-12px; top:0; width:61%; height:100%; pointer-events:none; stroke-width:1; opacity:.7; }
.hero-signal { stroke-width:3; stroke-dasharray:20 990; filter:drop-shadow(0 0 5px #B4EDFF); }
html[data-motion="on"] .hero-signal { animation:hero-signal-flow 11s linear infinite; }
html[data-motion="on"] .hero-signal-two { animation-delay:-4s; animation-duration:13s; }
html[data-page-visible="false"] .hero-signal { animation-play-state:paused; }
@keyframes hero-signal-flow { to { stroke-dashoffset:-1010; } }
.hero-command { position:absolute; right:42px; bottom:62px; z-index:3; width:327px; display:block; padding:22px 23px 19px; border-radius:18px; background:linear-gradient(130deg,#102A42CC,#071B30E6); border:1px solid #BFEAFF78; box-shadow:0 15px 60px #020D2A30,inset 0 1px 0 #C8EFFF3A; backdrop-filter:blur(23px); color:#fff; text-decoration:none; }
.hero-command::before { content:""; position:absolute; height:2px; inset:0 24px auto; background:linear-gradient(90deg,transparent,#B5EFFF,transparent); box-shadow:0 0 18px #76D1FF; }
.command-top { display:flex; justify-content:space-between; align-items:center; gap:10px; color:#B5E8FF; }
.command-top>.icon { width:18px; height:18px; }
.command-caption { font:500 10px/1.5 Inter,sans-serif; letter-spacing:.13em; }
.command-nodes { display:flex; justify-content:space-between; margin:21px 0 16px; gap:15px; position:relative; }
.command-nodes::before { content:""; position:absolute; height:1px; background:linear-gradient(90deg,#3D8EE8,#A6F1FF,#3D8EE8); inset:17px 22px auto; opacity:.55; }
.command-nodes>span { position:relative; display:flex; align-items:center; flex-direction:column; gap:7px; z-index:1; }
.command-nodes .icon { width:36px; height:36px; padding:9px; border:1px solid #8BCDFB70; border-radius:10px; background:#103253; color:#ACECFF; }
.command-nodes small { font-size:9px; color:#C9DDEB; }
.hero-command>strong { font:600 28px/1.12 Outfit,sans-serif; letter-spacing:-.035em; display:block; }
.hero-command>strong em { font-style:normal; color:#A9E7FF; }
.command-action { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:17px; margin-top:17px; border-top:1px solid #9CC7E931; font-size:11px; color:#D7EAF5; }
.command-action>.icon { width:16px; height:16px; }
.hero-command:hover,.hero-command:focus-visible { border-color:#CBF2FF; box-shadow:0 16px 65px #04244444,0 0 24px #78D9FF18; }
.hero-command:focus-visible { outline:3px solid #A6E9FF; outline-offset:5px; }
.tech-hero.ai-hero .hero-content { padding-top:77px; padding-bottom:90px; }
.tech-hero.ai-hero .hero-content h1 { font-size:clamp(61px,5.55vw,82px); }
.tech-hero.ai-hero .hero-image { object-position:65%; }
.tech-hero.ai-hero .hero-shade { background:linear-gradient(90deg,#061829F0 0%,#061829D1 29%,#06182920 73%),linear-gradient(0deg,#06182980,transparent 50%); }
.quick-services { background:#F7FAFD; }
.quick-services>.container { padding-block:22px; }
.quick-services a>.icon:first-child { box-sizing:content-box; padding:11px; background:#E7F0FD; border:1px solid #D3E3FA; border-radius:12px; width:20px; height:20px; }
.quick-services a { padding-block:5px; font-weight:500; }
.ai-proof { background:#F3F8FD; }

/* Visual continuity across the catalogue and all supporting pages. */
.service-card,.sp-service-tile,.case-card { border:1px solid #E0E9F4; }
.service-card .service-top .service-icon,.sp-tile-icon { background:#FFFFFFF5; box-shadow:0 0 0 6px #FFFFFF15; }
.ai-feature-art { box-shadow:0 22px 60px #0D345825; outline:1px solid #C8E0F64D; outline-offset:-1px; }
.ai-feature-art::after { border-radius:inherit; }
.feature-label { border:1px solid #CBEAFF55; background:#08243BBB; backdrop-filter:blur(15px); color:#CBEEFF; }
.studio-section { background:linear-gradient(180deg,#F4F8FD,#FFFFFF); }
.domain-explorer { box-shadow:0 17px 55px #1739580A; }
.domain-tabs [aria-selected="true"] { background:linear-gradient(120deg,#176BE0,#2788F1); box-shadow:0 8px 22px #176BE024; }
.section-nav a[aria-current="location"]::after { background:linear-gradient(90deg,#176BE0,#43BEDA); }
.company-review-section { background:radial-gradient(ellipse at 84% 40%,#153D61,transparent 48%),#081A2D; }
.blueprint-paper { box-shadow:0 30px 75px #020D2580,0 0 0 1px #DAEFFF36; }
.scope-tile>div:first-child { box-shadow:0 10px 32px #0D315618; }
.wide-statement { border-color:#CCE3FB; background:linear-gradient(115deg,#EFF6FF,#F5FAFF); }
.finder-section { background:radial-gradient(ellipse at 15% 25%,#1E477233,transparent 45%),#091A2D; }
.finder-panel { box-shadow:0 18px 70px #010C202A; }
.cta-inner { background:radial-gradient(ellipse at 26% 100%,#318EDF65,transparent 60%),linear-gradient(110deg,#093765,#1455A1); border:1px solid #65A9E351; box-shadow:0 20px 55px #12366324; }
.cta-inner::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:-1; background-image:linear-gradient(#9CD8FF09 1px,transparent 1px),linear-gradient(90deg,#9CD8FF09 1px,transparent 1px); background-size:60px 60px; }
.cta-copy .eyebrow { color:#B1E7FF; }
.cta-copy h2 { color:#fff; }
.cta-copy p { color:#D2E8F7; }
.site-footer { background:linear-gradient(135deg,#0C1E32,#061421); position:relative; }
.site-footer::before { content:""; position:absolute; inset:0 0 auto; height:1px; background:linear-gradient(90deg,transparent,#4C92C488,transparent); }
.footer-message>.icon { color:#9CDAFF; }
.sp-service-hero,.sp-services-hero,.sp-about-hero { background:radial-gradient(ellipse at 98% 30%,#1B48736B,transparent 52%),#081B2F; color:#fff; }
.sp-hero-copy { position:relative; isolation:isolate; }
.sp-hero-copy::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background-image:linear-gradient(#8FBCED0A 1px,transparent 1px),linear-gradient(90deg,#8FBCED0A 1px,transparent 1px); background-size:65px 65px; mask-image:linear-gradient(135deg,transparent 15%,#000); }
.sp-service-hero h1,.sp-services-hero h1,.sp-about-hero h1 { color:#fff; }
.sp-service-hero em,.sp-services-hero em,.sp-about-hero em { color:#A6DEFF; }
.sp-service-hero .sp-kicker,.sp-services-hero .sp-kicker,.sp-about-hero .sp-kicker { color:#ACDFFF; }
.sp-service-hero .sp-hero-lead,.sp-services-hero .sp-hero-lead,.sp-about-hero .sp-hero-lead { color:#BDD0E1; }
.sp-service-hero .sp-jump,.sp-services-hero .sp-jump,.sp-about-hero .sp-jump { color:#EAF5FF; border-color:#7DB7E965; }
.sp-hero-footnote { color:#A6BCCF; }
.sp-photo-index { opacity:.48; color:transparent; -webkit-text-stroke:1px #E9F8FF; }
.sp-photo-corner { border:1px solid #D7EFFF70; background:#0E2D4D9E; color:#B3E9FF; backdrop-filter:blur(15px); }
.sp-services-photo { border:1px solid #B8DFFF4F; box-shadow:0 22px 70px #020C2860; border-radius:22px; }
.sp-services-photo-label { background:#0C2C4BDC; color:#E5F5FF; border:1px solid #9BD1FC6B; backdrop-filter:blur(18px); }
.sp-services-photo-label>.icon { color:#B2E5FF; }
.sp-collage-main { box-shadow:0 20px 70px #020B2960; border:1px solid #B8DFFF4F; }
.sp-collage-detail { box-shadow:0 15px 55px #00000035; }
.sp-collage-note { background:linear-gradient(140deg,#216CE1,#1056AA); box-shadow:0 10px 35px #00000024; border:1px solid #7BBCFF72; }
.sp-collage-note em { color:#B5ECFF; }
.sp-collage-caption { color:#A6C2D9; }
.sp-accordion { transition:background .2s; }
.sp-accordion[open] { background:#FFFFFFC2; padding-inline:18px; margin-inline:-18px; border-radius:12px; }
.sp-relationship { background:radial-gradient(ellipse at 85% 30%,#17436A,transparent 50%),#081A2D; }
.sp-outcome-content { background:linear-gradient(125deg,#1767C6,#104D93); }
.contact-section { background:radial-gradient(ellipse at 0% 4%,#DCEBFF,transparent 44%),radial-gradient(ellipse at 100% 30%,#D9F4FC66,transparent 38%),#F4F7FC; }
.contact-form { box-shadow:0 25px 80px #183A6312,inset 0 1px 0 #FFFFFF; border-color:#CCDAEA; }
.contact-photo { box-shadow:0 18px 45px #152F5417; }
.enquiry-context { border-color:#B4D1F5; background:linear-gradient(115deg,#EAF3FF,#EDF8FF); }
.form-preview { border-color:#CFDDEC; }

/* Policy explorer: meaningful local interaction, with an explicit example. */
.policy-explorer { background:radial-gradient(ellipse at 95% 8%,#1A4975,transparent 65%),#0A1F35; color:#EDF7FF; border:1px solid #92CFFA65; box-shadow:0 22px 65px #10375E20; padding:31px; border-radius:22px; }
.knowledge-grid { align-items:start; }
.knowledge-grid>div:first-child { padding-top:18px; }
.policy-explorer .knowledge-stack { background:transparent; padding:0; box-shadow:none; border:0; }
.policy-explorer .knowledge-heading { border-bottom:1px solid #95C0E135; padding-bottom:23px; margin-bottom:24px; }
.policy-explorer .knowledge-heading>span { background:#183F62; border:1px solid #8DC6F354; color:#A6E6FF; box-shadow:0 0 28px #60BDF216; }
.policy-explorer .knowledge-heading small { color:#ABD9F3; font-size:10px; letter-spacing:.13em; }
.policy-explorer .knowledge-heading h3 { color:#fff; font-size:29px; line-height:1.15; margin-top:7px; }
.policy-explorer .knowledge-document { background:#173552; border:1px solid #87B5DF40; color:#E9F5FF; padding:18px; border-radius:12px; }
.policy-explorer .knowledge-document small { color:#BAD0E2; font-size:12px; }
.policy-explorer .document-icon { color:#AFDFFF; background:#224C73; }
.policy-instruction { font-size:12px; color:#C2D6E6; margin:22px 0 12px; line-height:1.65; }
.policy-explorer .knowledge-permissions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:0 0 17px; padding:0; }
.knowledge-permissions button { border:1px solid #89BCE73E; border-radius:7px; background:#12304D; color:#D4E7F6; min-height:44px; padding:9px 4px; font:500 11px/1.4 Inter,sans-serif; cursor:pointer; }
.knowledge-permissions button:hover { border-color:#9EDBFF; }
.knowledge-permissions button[aria-pressed="true"] { background:#B6E9FF; color:#0C2A42; border-color:#D2F1FF; box-shadow:0 0 24px #83CDFF12; }
.knowledge-permissions button:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.policy-example { padding:22px; background:#F5FAFF; color:#102B46; border:1px solid #D8E9F5; border-radius:12px; min-height:355px; }
.policy-level { display:block; font-size:10px; font-weight:500; letter-spacing:.1em; color:#2B638F; }
.policy-example h4 { font:600 28px/1.13 Outfit,sans-serif; letter-spacing:-.035em; margin:11px 0; }
.policy-source { font-size:12px; line-height:1.65; color:#49627B; margin:0 0 18px; }
.policy-example dl { margin:0; }
.policy-example dl>div { display:grid; grid-template-columns:48px 1fr; gap:12px; padding-block:11px; border-top:1px solid #D9E5F1; }
.policy-example dt { font-size:11px; color:#246293; font-weight:500; padding-top:2px; }
.policy-example dd { font-size:12px; line-height:1.65; color:#38546F; margin:0; }
.policy-explorer .knowledge-gate { margin-top:19px; background:#0C2F4E; border:1px solid #7BC6F33B; color:#E3F5FF; padding:17px; }
.policy-explorer .knowledge-gate>.icon { color:#AAE2FF; }
.policy-explorer .knowledge-gate span { color:#B7D1E4; font-size:12px; }
.policy-explorer>.visual-note { color:#ABC5DA; font-size:11px; line-height:1.65; margin:22px 0 0; }

@media(min-width:1680px) {
  .tech-hero { min-height:790px; }
  .hero-command { right:max(50px,calc((100% - 1300px)/2)); bottom:70px; width:355px; }
  .tech-hero .hero-content { padding-top:110px; padding-bottom:125px; }
}
@media(max-width:1180px) {
  .tech-hero { min-height:680px; }
  .tech-hero .hero-content>* { max-width:550px; }
  .tech-hero .hero-content h1 { font-size:78px; }
  .tech-hero.ai-hero .hero-content h1 { font-size:68px; max-width:560px; }
  .hero-command { width:285px; right:26px; bottom:45px; padding:19px; }
  .hero-command>strong { font-size:25px; }
  .command-nodes { margin-top:15px; }
  .tech-hero .hero-lead { max-width:470px; font-size:20px; }
  .tech-hero .hero-description { max-width:475px; }
  .policy-explorer { padding:24px; }
}
@media(min-width:761px) and (max-width:1000px) {
  .tech-hero .hero-content { padding-bottom:95px; }
  .tech-hero .hero-content>* { max-width:480px; }
  .tech-hero .hero-content h1 { font-size:68px; }
  .tech-hero.ai-hero .hero-content h1 { font-size:59px; }
  .hero-command { width:220px; right:22px; bottom:40px; padding:17px; }
  .command-caption { font-size:8px; }
  .command-nodes { gap:8px; }
  .command-nodes .icon { width:30px; height:30px; padding:7px; }
  .command-nodes small { font-size:8px; }
  .command-nodes::before { top:15px; }
  .hero-command>strong { font-size:23px; }
  .command-action { font-size:10px; line-height:1.5; }
  .tech-hero .hero-lead { max-width:430px; }
  .tech-hero .hero-description { max-width:410px; }
  .tech-hero .button-row { flex-direction:column; align-items:flex-start; }
  .tech-hero .button-row>.button.text { font-size:13px; padding-left:0; }
}
@media(max-width:760px) {
  .tech-hero-shell { padding:12px 10px 15px; }
  .tech-hero,.tech-hero.ai-hero { min-height:0; border-radius:20px; background:#081C30; }
  .tech-hero .hero-image { top:0; height:320px; bottom:auto; object-position:76% 43%; }
  .tech-hero.ai-hero .hero-image { height:320px; object-position:80% 50%; }
  .tech-hero .hero-shade,.tech-hero.ai-hero .hero-shade { background:linear-gradient(180deg,#06182A00 145px,#081C3040 230px,#081C30 317px); }
  .tech-hero .hero-content,.tech-hero.ai-hero .hero-content { width:calc(100% - 38px); padding:305px 0 28px; }
  .tech-hero .hero-content h1 { font-size:clamp(51px,10.4vw,74px); line-height:1.02; margin-bottom:22px; }
  .tech-hero.ai-hero .hero-content h1 { font-size:clamp(45px,9.7vw,68px); line-height:1.04; max-width:none; }
  .tech-hero .hero-content .eyebrow { font-size:10px; letter-spacing:.09em; padding:8px 10px; margin-bottom:23px; }
  .tech-hero .hero-lead { font-size:18px; line-height:1.6; max-width:100%; }
  .tech-hero .hero-description { font-size:13px; max-width:100%; }
  .tech-hero .button-row { margin-top:24px; gap:8px; }
  .tech-hero .button-row .button { font-size:14px; min-height:48px; }
  .hero-circuit { width:100%; height:350px; top:0; right:0; opacity:.7; }
  .tech-grid { background-size:45px 45px; mask-image:linear-gradient(180deg,#000,transparent 340px); }
  .tech-aura { width:440px; height:440px; right:-220px; bottom:120px; opacity:.5; }
  .hero-command { position:relative; right:auto; bottom:auto; width:calc(100% - 38px); margin:0 auto 24px; padding:16px 18px; display:grid; grid-template-columns:1fr auto; gap:8px 15px; border-radius:13px; }
  .command-top { grid-column:1/-1; }
  .command-caption { font-size:9px; }
  .command-nodes { grid-column:2; grid-row:2; align-self:center; gap:5px; margin:4px 0; }
  .command-nodes::before { display:none; }
  .command-nodes .icon { width:27px; height:27px; padding:6px; border-radius:8px; }
  .command-nodes small { display:none; }
  .hero-command>strong { grid-column:1; grid-row:2; font-size:21px; }
  .command-action { grid-column:1/-1; margin-top:3px; padding-top:11px; font-size:11px; }
  .tech-hero .hero-image-caption { display:none; }
  .quick-services>.container { padding-block:12px; }
  .quick-services a>.icon:first-child { padding:8px; width:18px; height:18px; border-radius:10px; }
  .quick-services a { font-size:12px; gap:10px; padding-block:13px; }
  .quick-services a:nth-child(even) { padding-left:13px; }
  .sp-services-photo { border-radius:16px; }
  .sp-service-hero .sp-hero-copy { padding-top:43px; padding-bottom:44px; }
  .sp-photo-index { opacity:.65; }
  .sp-about-hero .sp-collage-caption { color:#ABC3D8; }
  .sp-accordion[open] { padding-inline:10px; margin-inline:-10px; }
  .policy-explorer { padding:23px 19px; border-radius:18px; }
  .policy-explorer .knowledge-heading h3 { font-size:27px; }
  .policy-explorer .knowledge-heading { gap:13px; }
  .policy-explorer .knowledge-document { padding:15px 12px; }
  .policy-explorer .knowledge-document strong { font-size:14px; }
  .policy-explorer .knowledge-document small { font-size:12px; line-height:1.6; }
  .policy-explorer .knowledge-permissions { grid-template-columns:1fr 1fr; gap:8px; }
  .knowledge-permissions button { font-size:12px; min-height:44px; }
  .policy-example { padding:19px; min-height:0; }
  .policy-example h4 { font-size:27px; }
  .policy-source,.policy-example dd { font-size:13px; }
  .policy-example dl>div { grid-template-columns:40px 1fr; gap:10px; }
  .policy-instruction,.policy-explorer>.visual-note { font-size:12px; }
}
@media(max-width:390px) {
  .hero-command>strong { font-size:20px; }
  .command-nodes { gap:3px; }
  .command-nodes .icon { width:24px; height:24px; padding:5px; }
  .tech-hero .hero-content,.tech-hero.ai-hero .hero-content { width:calc(100% - 32px); }
  .hero-command { width:calc(100% - 32px); padding-inline:14px; }
  .tech-hero .hero-content h1 { font-size:48px; }
  .tech-hero.ai-hero .hero-content h1 { font-size:44px; }
}
@media(prefers-reduced-motion:reduce) {
  html:not([data-motion="on"]) .hero-signal { animation:none !important; }
  html:not([data-motion="on"]) .button,html:not([data-motion="on"]) .sp-accordion { transition:none; }
}
@media print {
  .hero-circuit,.tech-grid,.tech-aura,.hero-command { display:none; }
}
