:root{
  --blue:#4e7baa;
  --navy:#1e3a5a;
  --ink:#142c47;
  --body:#3f4a54;
  --muted:#637586;
  --line:#d8dee4;
  --pale:#f0f4f7;
  --white:#fff;
  --green:#91c8a1;
  --font:"Inter","Segoe UI",Arial,sans-serif
}

*{
  box-sizing:border-box
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:112px
}

body{
  margin:0;
  color:var(--body);
  background:#fff;
  font-family:var(--font);
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased
}

body.modal-open{
  overflow:hidden
}

button,input,select,textarea{
  font:inherit
}

button,a,input,select,textarea{
  -webkit-tap-highlight-color:transparent
}

button{
  cursor:pointer
}

button:disabled{
  cursor:wait
}

a{
  color:inherit;
  text-decoration:none
}

button{
  color:inherit
}

img{
  max-width:100%;
  display:block
}

h1,h2,h3,p{
  margin:0
}

h1,h2,h3{
  color:var(--ink);
  line-height:1.18
}

h2{
  font-size:clamp(26px,2.25vw,36px);
  letter-spacing:-1px;
  font-weight:650
}

h3{
  font-weight:650
}

p{
  color:var(--muted)
}

::selection{
  background:#d3e2f1;
  color:var(--navy)
}

:focus-visible{
  outline:3px solid var(--blue);
  outline-offset:5px
}

button,a,input,textarea,select{
  touch-action:manipulation
}

.container{
  width:calc(100% - 96px);
  max-width:1376px;
  margin-inline:auto
}

.icon{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}

.icon-library{
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}

.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
}

.skip-link{
  position:fixed;
  top:10px;
  left:10px;
  padding:12px 20px;
  background:var(--navy);
  color:#fff;
  z-index:100;
  transform:translateY(-160%)
}

.skip-link:focus{
  transform:translateY(0)
}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-height:48px;
  padding:12px 23px;
  border:1px solid var(--blue);
  border-radius:4px;
  background:var(--blue);
  color:#fff;
  font-size:13px;
  font-weight:600;
  line-height:1.4;
  transition:background .2s,transform .2s,box-shadow .2s
}

.button:hover{
  background:var(--navy);
  border-color:var(--navy);
  transform:translateY(-2px);
  box-shadow:0 5px 14px #1e3a5a18
}

.button .icon{
  width:18px;
  height:18px
}

.button-outline{
  background:transparent;
  border-color:#8399af;
  color:var(--navy)
}

.button-outline:hover{
  background:#e7eef5;
  border-color:var(--blue)
}

.button-small{
  font-size:12px;
  padding:10px 17px;
  min-height:42px;
  gap:12px
}

.text-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:var(--navy);
  font-size:12px;
  font-weight:600;
  padding:5px 0;
  border:0;
  border-bottom:1px solid #b6c6d6;
  background:none;
  line-height:1.5
}

.text-link .icon{
  width:18px;
  height:18px;
  transition:transform .2s
}

.text-link:hover .icon{
  transform:translateX(4px)
}

.eyebrow{
  font-size:10px;
  letter-spacing:2.1px;
  font-weight:650;
  color:var(--blue);
  line-height:1.7;
  text-transform:uppercase
}

.eyebrow-line{
  display:inline-block;
  vertical-align:middle;
  width:25px;
  height:1px;
  background:#b3c8dc;
  margin-left:8px
}

.section{
  padding:60px 0
}

.section-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:28px
}

.section-heading .eyebrow{
  margin-bottom:9px
}

.section-heading>.text-link{
  flex-shrink:0;
  margin-bottom:4px
}

.mobile-break{
  display:none
}

/* Navigation */
.site-header{
  position:sticky;
  top:0;
  z-index:40;
  background:#fffffffa;
  border-bottom:1px solid #e8edf2;
  backdrop-filter:blur(14px)
}

.header-inner{
  height:112px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}

.brand{
  width:300px;
  flex-shrink:0;
  display:block
}

.brand img{
  width:286px;
  height:auto
}

.brand>span{
  display:block;
  margin:0 0 10px 17px;
  color:var(--navy);
  font-size:7.5px;
  font-weight:600;
  letter-spacing:1.35px;
  white-space:nowrap
}

.main-nav{
  display:flex;
  align-items:center;
  gap:24px;
  font-size:12px;
  font-weight:500;
  color:var(--navy)
}

.main-nav>a:not(.button){
  position:relative;
  padding:10px 0;
  white-space:nowrap
}

.main-nav>a:not(.button)::after{
  content:"";
  position:absolute;
  bottom:3px;
  left:0;
  width:100%;
  height:2px;
  background:var(--blue);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .2s
}

.main-nav>a:hover::after,.main-nav>a.active::after{
  transform:scaleX(1)
}

.menu-toggle{
  display:none;
  border:1px solid var(--line);
  background:#fff;
  width:44px;
  height:44px;
  padding:12px;
  border-radius:3px
}

.menu-toggle span{
  display:block;
  height:2px;
  background:var(--navy);
  margin:4px 0;
  transition:transform .2s,opacity .2s
}

/* Main image and interactive inspection */
.hero{
  position:relative;
  isolation:isolate;
  background:#f3f6f9;
  min-height:560px;
  overflow:hidden
}

.hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 45% 0 0;
  background:linear-gradient(135deg,#fff 5%,#f2f5f8 80%);
  clip-path:polygon(0 0,100% 0,74% 50%,100% 100%,0 100%)
}

.hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:39%;
  top:0;
  height:100%;
  width:19%;
  background:#d4dee850;
  clip-path:polygon(73% 0,100% 0,30% 50%,100% 100%,72% 100%,0 50%)
}

.hero-inner{
  position:relative;
  pointer-events:none
}

.hero-copy{
  padding:69px 0 68px;
  max-width:600px;
  width:50%;
  pointer-events:auto
}

.hero-copy .eyebrow{
  font-size:9px;
  letter-spacing:1.7px;
  margin-bottom:23px;
  white-space:nowrap
}

.hero-copy .eyebrow>span{
  color:#a1b2c4;
  margin:0 5px
}

h1{
  font-size:clamp(36px,3.55vw,57px);
  font-weight:700;
  letter-spacing:-2.2px;
  line-height:1.09;
  margin-bottom:22px
}

h1 span{
  color:var(--blue)
}

.hero-description{
  max-width:405px;
  font-size:15px;
  line-height:1.75;
  color:#526377
}

.hero-actions{
  display:flex;
  gap:12px;
  margin-top:27px;
  flex-wrap:wrap
}

.hero-signature{
  display:flex;
  gap:14px;
  align-items:center;
  margin-top:34px;
  font-size:8px;
  letter-spacing:1.35px;
  color:var(--navy);
  font-weight:600
}

.slashes{
  display:flex;
  gap:4px;
  padding-left:3px
}

.slashes i{
  display:block;
  width:7px;
  height:12px;
  background:var(--navy);
  transform:skew(-30deg)
}

.slashes i:first-child{
  background:#9ebbd8
}

.slashes i:nth-child(2){
  background:var(--blue)
}

.hero-visual{
  position:absolute;
  inset:0 0 0 43%;
  background:#415971 url('assets/vision-inspection.jpg') center center/cover no-repeat;
  clip-path:polygon(21% 0,100% 0,100% 100%,21% 100%,0 50%);
  overflow:hidden;
  z-index:-2
}

.hero-visual::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#1e3a5a08,#0b203400 40%,#081d3a26)
}

.hero-visual::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  width:36%;
  height:39%;
  background:#183e62e8;
  clip-path:polygon(100% 0,100% 100%,0 100%)
}

.detection-box{
  position:absolute;
  left:31%;
  top:54%;
  width:39%;
  height:33%;
  border:1px solid #b6dbc1;
  box-shadow:inset 0 0 24px #8ab79c16;
  transition:border-color .3s
}

.detection-box::before,.detection-box::after{
  content:"";
  position:absolute;
  width:13px;
  height:13px;
  border-color:#a8d7b7;
  border-style:solid
}

.detection-box::before{
  left:-2px;
  top:-2px;
  border-width:3px 0 0 3px
}

.detection-box::after{
  right:-2px;
  bottom:-2px;
  border-width:0 3px 3px 0
}

.detection-label{
  position:absolute;
  left:-1px;
  top:-22px;
  padding:2px 7px;
  background:#132b3ddb;
  color:#d3e8dc;
  font:9px monospace;
  letter-spacing:1px
}

.detection-check{
  position:absolute;
  right:5px;
  top:5px;
  background:#47775d;
  color:white;
  width:24px;
  height:24px;
  text-align:center;
  line-height:24px
}

.scan-line{
  display:none;
  position:absolute;
  left:0;
  right:0;
  height:2px;
  background:#d5e9dd;
  box-shadow:0 0 18px #b6dbc1;
  top:0
}

.is-scanning .scan-line{
  display:block;
  animation:scan 1.1s ease-in-out 2
}

.is-scanning .detection-check{
  opacity:0
}

.inspection-panel{
  position:absolute;
  right:5%;
  top:19%;
  width:205px;
  background:#10273bd9;
  backdrop-filter:blur(9px);
  border:1px solid #d7e3ec70;
  padding:16px;
  color:#fff;
  box-shadow:0 8px 30px #0b172c26
}

.inspection-heading{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  padding-bottom:11px;
  border-bottom:1px solid #ffffff36
}

.status-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--green);
  display:inline-block;
  flex-shrink:0;
  box-shadow:0 0 0 3px #91c8a115
}

.inspection-panel dl{
  margin:10px 0
}

.inspection-panel dl>div{
  display:flex;
  justify-content:space-between;
  font-size:10px;
  line-height:2.05;
  gap:8px
}

.inspection-panel dt{
  color:#c0cfdd
}

.inspection-panel dd{
  margin:0
}

.simulation-label{
  display:block;
  color:#b4c7d6;
  font-size:8px;
  letter-spacing:.5px;
  padding-top:6px;
  border-top:1px solid #ffffff24
}

.visual-caption{
  position:absolute;
  bottom:24px;
  right:30px;
  font-size:8px;
  letter-spacing:2px;
  line-height:2;
  color:#fff;
  z-index:1
}

.simulation-trigger{
  position:absolute;
  bottom:24px;
  left:61%;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid #d0dde970;
  border-radius:3px;
  background:#10273bdf;
  color:#fff;
  padding:9px 13px;
  font-size:10px;
  transition:background .2s
}

.simulation-trigger:hover{
  background:var(--navy)
}

.simulation-trigger .icon{
  width:13px;
  height:13px
}

.is-defect .detection-box{
  border-color:#e0b078
}

.is-defect .detection-box::before,.is-defect .detection-box::after{
  border-color:#e0b078
}

.is-defect .detection-check{
  background:#9a652e
}

.is-defect .inspection-heading .status-dot{
  background:#e0b078
}

/* Expertise ribbon */
.capabilities{
  background:#edf2f6;
  border-bottom:1px solid #e3eaf0
}

.capability-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding-block:25px
}

.capability{
  display:flex;
  gap:17px;
  align-items:center;
  padding:0 24px;
  border-right:1px solid #cbd7e2
}

.capability:first-child{
  padding-left:0
}

.capability:last-child{
  padding-right:0;
  border:0
}

.capability>.icon{
  width:34px;
  height:34px;
  color:var(--navy);
  stroke-width:1.45
}

.capability h2{
  font-size:14px;
  letter-spacing:-.3px;
  margin-bottom:5px
}

.capability p{
  font-size:11px;
  white-space:nowrap;
  color:#5a6e82
}

/* Solution and sector cards */
.solutions-section{
  padding-block:43px 47px
}

.solution-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px
}

.solution-card{
  display:flex;
  flex-direction:column;
  text-align:left;
  min-width:0;
  padding:5px;
  border:1px solid var(--line);
  border-radius:5px;
  background:#fff;
  overflow:hidden;
  transition:transform .25s,box-shadow .25s,border-color .25s
}

.solution-card:hover,.sector-card:hover{
  transform:translateY(-5px);
  border-color:#9ab4cd;
  box-shadow:0 10px 24px #1e3a5a0d
}

.card-picture{
  display:block;
  position:relative;
  width:100%;
  aspect-ratio:2.22;
  border-radius:2px;
  overflow:hidden;
  background-color:#31506b;
  background-repeat:no-repeat
}

.picture-quality{
  background-image:linear-gradient(0deg,#0d263653,transparent 60%),url('assets/vision-inspection.jpg');
  background-size:cover;
  background-position:center 71%
}

.picture-codes,.picture-robot,.picture-data,.sector-picture{
  background-repeat:no-repeat
}

.picture-codes{
  background-image:url(assets/codes.jpg);
  background-size:cover;
  background-position:center
}

.picture-robot{
  background-image:url(assets/robot.jpg);
  background-size:cover;
  background-position:center
}

.picture-data{
  background-image:url(assets/supervision.svg);
  background-size:cover;
  background-position:center
}

.picture-index{
  position:absolute;
  right:9px;
  top:9px;
  font:8px monospace;
  letter-spacing:1px;
  background:#112a3ed9;
  color:#edf2f7;
  padding:4px 6px
}

.card-content{
  display:flex;
  flex:1;
  flex-direction:column;
  position:relative;
  padding:31px 14px 12px
}

.card-icon{
  position:absolute;
  top:-24px;
  left:13px;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  background:var(--blue);
  border:3px solid #fff;
  color:#fff;
  border-radius:4px
}

.card-icon .icon{
  width:25px;
  height:25px
}

.card-content>strong{
  font-size:17px;
  color:var(--ink);
  font-weight:650;
  letter-spacing:-.45px;
  margin-bottom:9px;
  line-height:1.3
}

.card-description{
  font-size:12px;
  line-height:1.7;
  color:#607084;
  margin-bottom:20px
}

.card-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--navy);
  font-size:10px;
  font-weight:600;
  margin-top:auto;
  padding-top:13px;
  border-top:1px solid #edf0f3
}

.card-bottom .icon{
  width:19px;
  height:19px;
  transition:transform .2s
}

.solution-card:hover .card-bottom .icon{
  transform:translateX(3px)
}

.outcomes{
  background:#edf2f6;
  padding:29px 0
}

.outcomes-grid{
  display:grid;
  grid-template-columns:1.08fr repeat(3,1fr);
  gap:30px;
  align-items:center
}

.outcomes h2{
  font-size:26px;
  letter-spacing:-.8px;
  margin-top:8px
}

.outcome{
  padding-left:29px;
  border-left:1px solid #c4d2e0
}

.outcome>strong{
  font-size:28px;
  line-height:1.3;
  letter-spacing:-1px;
  color:var(--blue);
  font-weight:650
}

.outcome h3{
  font-size:11px;
  line-height:1.6;
  margin:6px 0
}

.outcome p{
  font-size:11px;
  max-width:235px;
  line-height:1.6
}

.sectors-section{
  padding-block:46px 52px
}

.sectors-layout{
  display:grid;
  grid-template-columns:1.08fr 3fr;
  gap:30px;
  align-items:center
}

.sector-intro h2{
  font-size:28px;
  margin:9px 0 13px
}

.sector-intro>p:last-child{
  font-size:12px
}

.sector-intro .eyebrow{
  font-size:9px;
  letter-spacing:1.6px
}

.sector-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:13px
}

.sector-card{
  min-width:0;
  border:1px solid var(--line);
  background:#fff;
  border-radius:4px;
  text-align:left;
  padding:4px;
  transition:transform .25s,border-color .25s,box-shadow .25s;
  overflow:hidden
}

.sector-picture{
  display:block;
  aspect-ratio:2.08;
  width:100%;
  border-radius:2px;
  background-size:cover
}

.picture-food{
  background-image:url(assets/food.jpg);
  background-position:center
}

.picture-pharma{
  background-image:url(assets/pharma.jpg);
  background-position:center
}

.picture-auto{
  background-image:url(assets/automotive.jpg);
  background-position:center
}

.picture-electronics{
  background-image:url(assets/electronics.jpg);
  background-position:center
}

.sector-body{
  position:relative;
  display:flex;
  flex-direction:column;
  padding:8px 8px 11px
}

.sector-body>.icon:first-child{
  width:25px;
  height:25px;
  padding:2px;
  color:var(--blue);
  background:white;
  box-sizing:content-box;
  margin-top:-22px;
  border:3px solid white;
  border-radius:3px;
  margin-bottom:6px
}

.sector-body strong{
  font-size:12px;
  color:var(--navy);
  font-weight:650;
  margin-bottom:3px
}

.sector-body>span{
  font-size:9px;
  letter-spacing:-.1px;
  line-height:1.6;
  padding-right:12px
}

.sector-arrow{
  position:absolute;
  right:5px;
  bottom:12px;
  width:14px;
  height:14px;
  color:var(--blue)
}

/* Technology and interactive application explorer */
.technology-section{
  padding:67px 0;
  background:#142c43;
  position:relative;
  overflow:clip
}

.technology-section::before{
  content:"";
  position:absolute;
  top:-100%;
  right:5%;
  height:300%;
  width:15%;
  background:#ffffff03;
  transform:rotate(40deg);
  pointer-events:none
}

.technology-grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:88px;
  align-items:center
}

.technology-copy .eyebrow{
  color:#a0bad2;
  font-size:9px;
  letter-spacing:1.7px
}

.technology-copy h2{
  color:#fff;
  font-size:clamp(29px,2.8vw,41px);
  margin:17px 0 24px;
  letter-spacing:-1.3px
}

.technology-copy>p:not(.eyebrow){
  color:#b6c4d1;
  font-size:13px;
  line-height:1.85;
  max-width:460px;
  margin-bottom:15px
}

.technology-copy .text-link{
  color:#e8f1f9;
  border-color:#6a849b;
  margin-top:10px
}

.tech-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:27px
}

.tech-tags span{
  font-size:9px;
  letter-spacing:.4px;
  color:#b6cbdf;
  padding:5px 9px;
  border:1px solid #ffffff22;
  border-radius:2px
}

.application-demo{
  border:1px solid #ffffff28;
  border-radius:6px;
  background:#0f2437;
  overflow:hidden;
  box-shadow:0 12px 30px #071a251f;
  scroll-margin-top:20px
}

.demo-topline{
  display:flex;
  align-items:center;
  gap:9px;
  padding:14px 17px;
  color:#bed0df;
  font:8px monospace;
  letter-spacing:1px;
  border-bottom:1px solid #ffffff18
}

.demo-topline .status-dot{
  width:5px;
  height:5px
}

.demo-version{
  margin-left:auto;
  color:#627e96
}

.application-tabs{
  display:flex;
  gap:3px;
  border-bottom:1px solid #ffffff1a;
  padding:0 15px
}

.application-tabs button{
  font-size:11px;
  color:#b0c3d4;
  padding:12px 15px;
  background:none;
  border:0;
  border-bottom:2px solid transparent
}

.application-tabs button[aria-selected="true"]{
  color:#fff;
  border-bottom-color:#83a9cc;
  background:#ffffff05
}

.application-tabs button:hover{
  color:white
}

.demo-canvas{
  height:235px;
  position:relative;
  display:grid;
  place-items:center;
  overflow:hidden
}

.demo-grid{
  position:absolute;
  inset:0;
  background-image:linear-gradient(#7193ae0b 1px,transparent 1px),linear-gradient(90deg,#7193ae0b 1px,transparent 1px);
  background-size:25px 25px
}

.sample-part{
  width:192px;
  height:135px;
  border:1px solid #a7b3bd;
  border-radius:8px;
  background:linear-gradient(135deg,#526471 0%,#b2bcc3 25%,#71808b 40%,#9aa6af 68%,#455c6d 100%);
  box-shadow:9px 13px 0 #071a29,8px 9px 0 #4f6575;
  transform:rotate(-14deg);
  position:relative;
  transition:transform .6s
}

.sample-part::before,.sample-part::after{
  content:"";
  position:absolute;
  top:12px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#102b3c;
  box-shadow:0 100px 0 #102b3c,inset 1px 1px 2px #03090f
}

.sample-part::before{
  left:12px
}

.sample-part::after{
  right:12px
}

.part-hole{
  position:absolute;
  top:16px;
  left:61px;
  width:68px;
  height:68px;
  border:8px solid #758692;
  border-radius:50%;
  background:#112b3d;
  box-shadow:2px 3px 2px #d1d8dc,inset 6px 5px 8px #061421
}

.part-mark{
  position:absolute;
  bottom:15px;
  left:51px;
  font:11px monospace;
  letter-spacing:1px;
  color:#1b3444
}

.part-defect{
  position:absolute;
  right:24px;
  top:45px;
  width:29px;
  height:2px;
  background:#213c4c;
  transform:rotate(-40deg);
  box-shadow:0 1px 1px #d4e0e8
}

.demo-region{
  position:absolute;
  width:50px;
  height:52px;
  border:1px solid #dfb582;
  top:74px;
  left:calc(50% + 28px);
  transition:all .4s
}

.demo-region::before{
  content:"";
  position:absolute;
  width:5px;
  height:5px;
  background:#dfb582;
  top:-3px;
  left:-3px
}

.demo-tag{
  position:absolute;
  right:19px;
  top:28px;
  font:8px monospace;
  color:#e6c297;
  border:1px solid #9e7c5580;
  background:#122a3fe6;
  padding:5px 8px;
  letter-spacing:.6px
}

.demo-coordinate{
  position:absolute;
  bottom:28px;
  left:17px;
  font:8px monospace;
  letter-spacing:1px;
  color:#8fa9bd
}

.demo-caption{
  position:absolute;
  bottom:10px;
  left:17px;
  color:#8aa1b4;
  font-size:8px
}

.demo-crosshair{
  opacity:0;
  position:absolute;
  width:140px;
  height:140px;
  border:1px dashed #9bbad0;
  border-radius:50%;
  transition:opacity .3s
}

.demo-crosshair::before,.demo-crosshair::after{
  content:"";
  position:absolute;
  background:#9bbad0
}

.demo-crosshair::before{
  left:50%;
  top:-20px;
  width:1px;
  height:180px
}

.demo-crosshair::after{
  top:50%;
  left:-20px;
  width:180px;
  height:1px
}

.demo-canvas[data-mode="ocr"] .demo-region{
  top:144px;
  left:calc(50% - 54px);
  width:110px;
  height:27px;
  border-color:#99c7b0;
  transform:rotate(-14deg)
}

.demo-canvas[data-mode="ocr"] .demo-tag{
  color:#aad2bc;
  border-color:#99c7b060
}

.demo-canvas[data-mode="ocr"] .demo-region::before{
  background:#99c7b0
}

.demo-canvas[data-mode="guidage"] .sample-part{
  transform:rotate(0)
}

.demo-canvas[data-mode="guidage"] .demo-region{
  opacity:0
}

.demo-canvas[data-mode="guidage"] .demo-crosshair{
  opacity:1
}

.demo-canvas[data-mode="guidage"] .demo-tag{
  color:#adcce4;
  border-color:#adcce460
}

.demo-description{
  display:flex;
  gap:18px;
  padding:20px;
  border-top:1px solid #ffffff1b;
  min-height:113px;
  background:#ffffff03
}

.demo-step{
  font:22px monospace;
  color:#6587a4
}

.demo-description h3{
  font-size:14px;
  color:#eef3f7;
  margin:1px 0 7px
}

.demo-description p{
  font-size:11px;
  color:#aec0cf;
  line-height:1.7;
  max-width:380px
}

/* Project approach */
.process-section{
  padding-block:63px
}

.section-aside{
  font-size:11px;
  flex-shrink:0;
  line-height:1.8
}

.process-section .section-heading h2{
  font-size:29px;
  max-width:620px
}

.process-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:30px;
  padding-top:15px
}

.process-grid article{
  position:relative;
  border-top:1px solid #c5d3df;
  padding-top:22px
}

.process-grid article::before{
  content:"";
  position:absolute;
  width:5px;
  height:5px;
  background:var(--blue);
  top:-3px;
  left:0
}

.process-number{
  color:#a2b9cc;
  display:block;
  font-size:30px;
  font-weight:350;
  letter-spacing:-1px;
  margin-bottom:12px
}

.process-grid h3{
  font-size:15px;
  margin-bottom:11px
}

.process-grid p{
  font-size:12px;
  line-height:1.85;
  max-width:280px
}

.trust-section{
  padding:28px 0;
  background:var(--pale);
  border-block:1px solid #e8edf1
}

.trust-grid{
  display:grid;
  grid-template-columns:1.35fr repeat(3,1fr);
  gap:27px;
  align-items:center
}

.trust-grid>.trust-item{
  border-left:1px solid #c7d5e1;
  padding-left:24px
}

.trust-grid .eyebrow{
  font-size:8px;
  letter-spacing:1.5px;
  margin-bottom:7px
}

.trust-grid h2{
  font-size:23px;
  letter-spacing:-.5px
}

.trust-item{
  display:flex;
  gap:13px;
  align-items:flex-start
}

.trust-item>.icon{
  width:31px;
  height:31px;
  color:var(--navy)
}

.trust-item h3{
  font-size:12px;
  margin:1px 0 7px
}

.trust-item p{
  font-size:10px;
  line-height:1.7;
  max-width:160px
}

/* Contact */
.contact-section{
  padding-block:77px 80px
}

.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
  align-items:start
}

.contact-copy{
  padding-top:14px
}

.contact-copy h2{
  font-size:clamp(37px,3.65vw,54px);
  line-height:1.1;
  margin:17px 0 25px;
  letter-spacing:-1.7px
}

.contact-copy h2 span{
  color:var(--blue)
}

.contact-copy>p:not(.eyebrow){
  font-size:13px;
  max-width:355px;
  line-height:1.9
}

.contact-email{
  display:inline-flex;
  align-items:center;
  gap:11px;
  font-size:13px;
  color:var(--navy);
  margin-top:24px
}

.contact-email .icon{
  width:19px;
  height:19px
}

.contact-signature{
  display:block;
  margin-top:48px;
  color:#8095a7;
  font-size:9px;
  letter-spacing:2px;
  line-height:2
}

.contact-form{
  padding:29px 32px;
  background:#f5f7f9;
  border:1px solid #e2e8ee;
  border-radius:5px
}

.form-heading h3{
  font-size:20px;
  letter-spacing:-.5px;
  margin-bottom:7px
}

.form-heading p{
  font-size:10px;
  margin-bottom:25px
}

.contact-form label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:11px;
  font-weight:600;
  color:var(--navy);
  margin-bottom:16px
}

.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px
}

.contact-form input,.contact-form textarea,.contact-form select{
  min-width:0;
  width:100%;
  background:white;
  border:1px solid #cfd9e2;
  border-radius:3px;
  padding:11px 12px;
  font-size:12px;
  color:var(--body);
  font-weight:400;
  line-height:1.5
}

.contact-form input::placeholder,.contact-form textarea::placeholder{
  color:#7e8c98
}

.contact-form textarea{
  resize:vertical;
  min-height:105px;
  max-height:350px
}

.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{
  border-color:var(--blue);
  outline:2px solid #4e7baa25;
  outline-offset:1px
}

.form-notice{
  font-size:10px;
  line-height:1.7;
  margin:2px 0 19px;
  max-width:450px
}

.contact-form>.button{
  width:100%;
  justify-content:space-between
}

.contact-result{
  font-size:12px;
  background:#e6edf3;
  border-left:3px solid var(--blue);
  padding:15px;
  margin-top:20px
}

.contact-result strong{
  color:var(--navy)
}

.contact-result p{
  font-size:11px;
  margin:7px 0 10px
}

.contact-result p a{
  text-decoration:underline;
  overflow-wrap:anywhere
}

.contact-result .text-link{
  font-size:10px
}

/* Footer, dialogs and motion */
.site-footer{
  background:#102b43;
  color:#d1dfeb;
  position:relative;
  isolation:isolate;
  overflow:hidden
}

.site-footer::after{
  content:"";
  position:absolute;
  inset:-50% -5% -100% auto;
  width:26%;
  background:#274d6b3b;
  transform:rotate(43deg);
  z-index:-1
}

.footer-main{
  display:grid;
  grid-template-columns:1.5fr .75fr 1fr;
  padding-block:39px;
  gap:55px
}

.footer-logo{
  display:block;
  background:#f6f8fa;
  width:246px;
  border-radius:3px;
  padding:0 9px
}

.footer-logo img{
  width:100%;
  height:auto
}

.footer-tagline{
  font-size:7px;
  color:#d1dfeb;
  letter-spacing:1.5px;
  margin:16px 0 12px
}

.footer-brand>p:last-child{
  font-size:11px;
  color:#a9becf;
  line-height:1.75
}

.footer-nav{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 20px;
  align-content:center;
  border-inline:1px solid #ffffff28;
  padding-inline:32px;
  font-size:11px
}

.footer-nav a:hover{
  color:#fff;
  text-decoration:underline;
  text-underline-offset:5px
}

.footer-contact{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:22px
}

.footer-contact>span{
  font-size:10px;
  letter-spacing:2.1px;
  line-height:2
}

.footer-contact>a{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:11px
}

.footer-contact .icon{
  width:18px;
  height:18px
}

.footer-bottom{
  border-top:1px solid #ffffff22;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding-block:18px;
  font-size:9px;
  color:#9bb0c2
}

.footer-bottom p{
  color:inherit
}

.footer-bottom>div{
  display:flex;
  gap:19px
}

.footer-bottom button{
  border:0;
  background:none;
  color:inherit;
  font-size:9px;
  padding:4px 0
}

.footer-bottom button:hover{
  color:#fff
}

.footer-bottom button+button{
  padding-left:19px;
  border-left:1px solid #ffffff25
}

dialog{
  width:min(590px,calc(100% - 32px));
  border:1px solid var(--line);
  border-radius:6px;
  padding:0;
  max-height:85dvh;
  color:var(--body);
  box-shadow:0 24px 100px #07162450
}

dialog::backdrop{
  background:#0e2238a6;
  backdrop-filter:blur(5px)
}

.dialog-inner{
  padding:43px;
  position:relative
}

.dialog-close{
  display:grid;
  place-items:center;
  position:absolute;
  top:12px;
  right:12px;
  width:36px;
  height:36px;
  border:0;
  background:#edf2f6;
  border-radius:3px;
  color:var(--navy)
}

.dialog-inner h2{
  font-size:30px;
  margin:13px 0 20px;
  padding-right:10px
}

.dialog-inner>p:not(.eyebrow){
  font-size:13px;
  line-height:1.8
}

.dialog-inner ul{
  padding:0;
  list-style:none;
  margin:22px 0
}

.dialog-inner li{
  position:relative;
  padding:11px 0 11px 23px;
  border-bottom:1px solid #e3eaf0;
  font-size:12px
}

.dialog-inner li::before{
  content:"↗";
  position:absolute;
  left:0;
  color:var(--blue)
}

.dialog-inner .dialog-note{
  font-size:11px!important;
  padding-top:4px
}

.dialog-inner .button{
  margin-top:22px
}

.noscript-notice{
  position:fixed;
  bottom:0;
  width:100%;
  background:#fff3d9;
  color:#432e0f;
  padding:12px;
  text-align:center;
  font-size:12px;
  z-index:45
}

.noscript-notice a{
  text-decoration:underline
}

.reveal-ready{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .65s ease,transform .65s ease
}

.reveal-ready.is-visible{
  opacity:1;
  transform:translateY(0)
}

@keyframes scan{
  0%{
    top:0;
    opacity:.4
  }
  50%{
    opacity:1
  }
  100%{
    top:100%;
    opacity:.3
  }
}

@media(min-width:1600px){
  .hero{
    min-height:590px
  }
  .hero-copy{
    padding-top:78px;
    padding-bottom:78px
  }
  .hero-visual{
    background-position:center 54%
  }
}

@media(max-width:1250px){
  .container{
    width:calc(100% - 64px)
  }
  .header-inner{
    gap:12px;
    height:103px
  }
  .brand{
    width:253px
  }
  .brand img{
    width:247px
  }
  .brand>span{
    font-size:6.2px;
    margin-left:15px;
    letter-spacing:1.2px
  }
  .main-nav{
    gap:16px;
    font-size:11px
  }
  .main-nav .button{
    font-size:10px;
    padding-inline:12px;
    gap:7px
  }
  .hero{
    min-height:520px
  }
  .hero-copy{
    padding-top:61px;
    padding-bottom:55px
  }
  .hero-copy .eyebrow{
    font-size:8px;
    letter-spacing:1.3px
  }
  .hero-actions{
    gap:8px
  }
  .hero-actions .button{
    font-size:11px;
    padding-inline:15px
  }
  .hero-description{
    font-size:14px;
    max-width:350px
  }
  .hero-signature{
    font-size:7px
  }
  .inspection-panel{
    width:175px;
    right:4%;
    top:17%;
    padding:13px
  }
  .inspection-heading{
    font-size:11px
  }
  .inspection-panel dl>div{
    font-size:9px
  }
  .capability{
    padding-inline:18px;
    gap:12px
  }
  .capability h2{
    font-size:12px
  }
  .capability p{
    font-size:10px
  }
  .capability>.icon{
    width:29px;
    height:29px
  }
  .card-content{
    padding-inline:10px
  }
  .card-content>strong{
    font-size:15px
  }
  .card-description{
    font-size:11px
  }
  .technology-grid{
    gap:50px
  }
  .trust-grid{
    gap:18px
  }
  .trust-grid>.trust-item{
    padding-left:18px
  }
  .trust-grid h2{
    font-size:21px
  }
  .contact-grid{
    gap:65px
  }
  .footer-main{
    gap:35px
  }
  .footer-nav{
    padding-inline:23px
  }
  .outcomes-grid{
    gap:20px
  }
  .outcome{
    padding-left:23px
  }
  .sector-grid{
    gap:10px
  }
  .sector-body{
    padding-inline:4px
  }
  .sector-body strong{
    font-size:11px
  }
  .sector-body>span{
    font-size:8px
  }
  .sectors-layout{
    grid-template-columns:1fr 3.1fr;
    gap:23px
  }
  .sector-intro h2{
    font-size:25px
  }
  .sector-intro .eyebrow{
    font-size:8px
  }
}

@media(max-width:1050px){
  html{
    scroll-padding-top:91px
  }
  .header-inner{
    height:90px
  }
  .brand{
    width:238px
  }
  .brand img{
    width:231px
  }
  .brand>span{
    font-size:5.8px;
    margin-top:-4px
  }
  .menu-toggle{
    display:block
  }
  .main-nav{
    display:none;
    position:absolute;
    top:90px;
    left:0;
    right:0;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:0 12px 20px #18334c12;
    padding:20px 32px;
    font-size:14px;
    gap:3px
  }
  .main-nav.is-open{
    display:flex;
    flex-direction:column;
    align-items:stretch
  }
  .main-nav>a:not(.button){
    padding:11px 4px
  }
  .main-nav .button{
    font-size:13px;
    padding:13px;
    margin-top:12px
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(1){
    transform:translateY(6px) rotate(45deg)
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(2){
    opacity:0
  }
  .menu-toggle[aria-expanded="true"] span:nth-child(3){
    transform:translateY(-6px) rotate(-45deg)
  }
  .hero-copy{
    width:53%;
    padding-top:48px;
    max-width:460px
  }
  h1{
    font-size:38px;
    letter-spacing:-1.6px
  }
  .hero-copy .eyebrow{
    white-space:normal;
    max-width:300px
  }
  .hero-description{
    max-width:315px;
    font-size:13px
  }
  .hero-signature{
    max-width:290px;
    line-height:1.9
  }
  .hero-visual{
    inset-inline-start:42%;
    clip-path:polygon(18% 0,100% 0,100% 100%,18% 100%,0 50%)
  }
  .hero-actions{
    max-width:270px
  }
  .hero-actions .button{
    min-height:42px
  }
  .hero{
    min-height:520px
  }
  .inspection-panel{
    right:4%;
    top:10%;
    width:158px;
    padding:11px
  }
  .inspection-heading{
    font-size:10px
  }
  .simulation-trigger{
    left:62%;
    font-size:9px;
    padding:9px
  }
  .visual-caption{
    right:18px;
    font-size:7px
  }
  .capability-grid{
    grid-template-columns:1fr 1fr;
    row-gap:22px;
    padding-block:23px
  }
  .capability:nth-child(2){
    border:0
  }
  .capability:nth-child(3){
    padding-left:0
  }
  .capability h2{
    font-size:13px
  }
  .capability p{
    font-size:11px
  }
  .solution-grid{
    gap:12px
  }
  .card-content>strong{
    font-size:14px
  }
  .card-bottom{
    font-size:9px
  }
  .card-picture{
    aspect-ratio:1.8
  }
  .picture-codes,.picture-robot,.picture-data{
    background-size:cover;
    background-position:center
  }
  .card-content{
    padding-top:27px
  }
  .card-icon{
    width:38px;
    height:38px;
    top:-22px;
    left:10px
  }
  .card-icon .icon{
    width:22px;
    height:22px
  }
  .outcome>strong{
    font-size:24px
  }
  .outcomes h2{
    font-size:23px
  }
  .outcome h3{
    font-size:10px
  }
  .outcome p{
    font-size:10px
  }
  .sectors-layout{
    grid-template-columns:1fr
  }
  .sector-intro{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:25px;
    flex-wrap:wrap
  }
  .sector-intro .eyebrow{
    width:100%;
    margin-bottom:-23px
  }
  .sector-intro h2{
    font-size:28px;
    margin-bottom:0
  }
  .sector-intro>p:last-child{
    text-align:right
  }
  .sector-body{
    padding-inline:8px
  }
  .sector-body strong{
    font-size:12px
  }
  .sector-body>span{
    font-size:10px
  }
  .technology-grid{
    gap:35px
  }
  .technology-copy h2{
    font-size:30px
  }
  .technology-copy>p:not(.eyebrow){
    font-size:12px
  }
  .demo-topline{
    font-size:7px;
    letter-spacing:.3px
  }
  .process-section .section-heading{
    display:block
  }
  .section-aside{
    margin-top:15px
  }
  .process-grid{
    gap:22px
  }
  .process-grid h3{
    font-size:14px
  }
  .process-grid p{
    font-size:11px
  }
  .trust-grid{
    grid-template-columns:1fr 1fr;
    gap:25px 30px
  }
  .trust-grid>.trust-item:nth-child(3){
    border:0;
    padding-left:0
  }
  .trust-item p{
    max-width:220px;
    font-size:11px
  }
  .trust-item h3{
    font-size:13px
  }
  .contact-grid{
    gap:35px
  }
  .contact-form{
    padding:25px
  }
  .form-row{
    gap:12px
  }
  .footer-main{
    gap:25px
  }
  .footer-nav{
    padding-inline:20px;
    grid-template-columns:1fr
  }
  .footer-contact>a{
    font-size:10px;
    gap:5px
  }
  .footer-contact .icon{
    width:15px
  }
  .footer-tagline{
    font-size:6px;
    letter-spacing:1px
  }
}

@media(max-width:760px){
  html{
    scroll-padding-top:83px
  }
  .container{
    width:calc(100% - 40px)
  }
  .header-inner{
    height:82px
  }
  .brand{
    width:220px
  }
  .brand img{
    width:215px
  }
  .brand>span{
    font-size:5.5px;
    letter-spacing:1px;
    margin-bottom:6px;
    margin-left:13px
  }
  .main-nav{
    top:82px;
    padding-inline:20px
  }
  .section{
    padding-block:40px
  }
  .section-heading{
    gap:15px;
    align-items:start;
    flex-direction:column;
    margin-bottom:22px
  }
  .section-heading h2{
    font-size:28px
  }
  .section-heading>.text-link{
    font-size:11px
  }
  .hero{
    padding-bottom:345px;
    min-height:0
  }
  .hero-copy{
    width:100%;
    max-width:none;
    padding:36px 0 30px
  }
  .hero-copy .eyebrow{
    font-size:8px;
    letter-spacing:1.3px;
    max-width:none;
    margin-bottom:17px;
    white-space:normal
  }
  h1{
    font-size:clamp(35px,7.6vw,50px);
    line-height:1.09;
    letter-spacing:-1.7px;
    margin-bottom:20px
  }
  .hero-description{
    font-size:13px;
    max-width:410px;
    line-height:1.75
  }
  .hero-actions{
    margin-top:22px;
    max-width:none;
    gap:10px
  }
  .hero-actions .button{
    font-size:11px;
    min-height:44px;
    padding-inline:16px
  }
  .hero-signature{
    font-size:7px;
    margin-top:22px;
    max-width:none;
    letter-spacing:1px
  }
  .hero-visual{
    top:auto;
    bottom:0;
    left:0;
    right:0;
    height:345px;
    clip-path:polygon(0 7%,8% 0,100% 0,100% 100%,0 100%);
    background-position:center 56%;
    background-size:cover;
    z-index:0
  }
  .hero::before{
    inset:0;
    background:#f3f6f9;
    clip-path:none
  }
  .hero::after{
    display:none
  }
  .detection-box{
    left:32%;
    top:54%;
    width:37%;
    height:34%
  }
  .inspection-panel{
    top:9%;
    right:5%;
    width:168px;
    padding:12px
  }
  .inspection-heading{
    font-size:11px
  }
  .inspection-panel dl>div{
    font-size:9px
  }
  .simulation-trigger{
    left:20px;
    bottom:16px;
    z-index:2;
    font-size:9px
  }
  .visual-caption{
    bottom:15px;
    right:20px;
    font-size:7px;
    line-height:1.8
  }
  .hero-visual::after{
    width:27%;
    height:40%
  }
  .capability-grid{
    row-gap:20px;
    padding-block:22px
  }
  .capability{
    padding-inline:15px;
    gap:10px
  }
  .capability h2{
    font-size:11px;
    letter-spacing:-.3px
  }
  .capability p{
    font-size:9px;
    white-space:normal;
    max-width:150px;
    line-height:1.5
  }
  .capability>.icon{
    width:27px;
    height:27px
  }
  .solution-grid{
    grid-template-columns:repeat(2,1fr);
    gap:14px
  }
  .card-picture{
    aspect-ratio:2.05
  }
  .card-content{
    padding:27px 11px 10px
  }
  .card-content>strong{
    font-size:15px;
    min-height:39px
  }
  .card-description{
    font-size:11px;
    margin-bottom:15px
  }
  .card-bottom{
    font-size:9px;
    gap:5px
  }
  .picture-codes,.picture-robot,.picture-data{
    background-size:cover;
    background-position:center
  }
  .outcomes{
    padding-block:30px
  }
  .outcomes-grid{
    grid-template-columns:1fr 1fr;
    gap:25px 18px;
    align-items:stretch
  }
  .outcomes-grid>div:first-child{
    align-self:center
  }
  .outcomes h2{
    font-size:25px
  }
  .outcome{
    padding-left:18px
  }
  .outcome:nth-child(3){
    padding-left:0;
    border-left:0
  }
  .outcome>strong{
    font-size:27px
  }
  .outcome h3{
    font-size:11px
  }
  .outcome p{
    font-size:11px;
    max-width:190px
  }
  .sectors-layout{
    gap:25px
  }
  .sector-intro h2{
    font-size:28px
  }
  .sector-intro>p:last-child{
    font-size:10px;
    max-width:160px
  }
  .sector-grid{
    grid-template-columns:repeat(2,1fr);
    gap:14px
  }
  .sector-body strong{
    font-size:13px
  }
  .sector-body>span{
    font-size:10px
  }
  .sector-picture{
    aspect-ratio:2.2;
    background-size:cover
  }
  .technology-section{
    padding-block:42px
  }
  .technology-grid{
    grid-template-columns:1fr;
    gap:30px
  }
  .technology-copy h2{
    font-size:33px;
    margin-top:14px
  }
  .technology-copy>p:not(.eyebrow){
    font-size:13px;
    max-width:550px
  }
  .tech-tags{
    margin-top:22px
  }
  .application-demo{
    max-width:550px;
    width:100%
  }
  .demo-topline{
    font-size:8px;
    letter-spacing:.5px
  }
  .demo-canvas{
    height:240px
  }
  .demo-description{
    min-height:111px
  }
  .process-section .section-heading h2{
    font-size:28px;
    max-width:470px
  }
  .section-aside{
    font-size:12px
  }
  .process-grid{
    grid-template-columns:1fr 1fr;
    gap:29px 25px;
    padding-top:4px
  }
  .process-number{
    font-size:28px;
    margin-bottom:8px
  }
  .process-grid h3{
    font-size:14px
  }
  .process-grid p{
    font-size:12px
  }
  .trust-section{
    padding-block:27px
  }
  .trust-grid{
    gap:25px 18px
  }
  .trust-grid h2{
    font-size:20px
  }
  .trust-grid>.trust-item{
    padding-left:18px
  }
  .trust-grid .eyebrow{
    font-size:7px;
    letter-spacing:1.1px
  }
  .trust-item{
    gap:10px
  }
  .trust-item>.icon{
    width:24px;
    height:24px
  }
  .trust-item h3{
    font-size:11px
  }
  .trust-item p{
    font-size:10px
  }
  .contact-grid{
    grid-template-columns:1fr;
    gap:30px
  }
  .contact-copy{
    padding:0
  }
  .contact-copy h2{
    font-size:43px
  }
  .contact-copy h2 br:nth-of-type(1){
    display:none
  }
  .contact-copy>p:not(.eyebrow){
    max-width:440px
  }
  .contact-signature{
    display:none
  }
  .contact-email{
    font-size:12px
  }
  .contact-form{
    padding:25px
  }
  .contact-form input,.contact-form textarea,.contact-form select{
    font-size:16px
  }
  .contact-form label{
    font-size:12px
  }
  .contact-form input::placeholder,.contact-form textarea::placeholder{
    font-size:13px
  }
  .form-notice{
    font-size:11px
  }
  .footer-main{
    grid-template-columns:1fr 1fr;
    gap:28px;
    padding-block:30px
  }
  .footer-brand{
    grid-column:1/-1
  }
  .footer-nav{
    border-left:0;
    padding-left:0;
    grid-template-columns:1fr 1fr;
    gap:12px;
    font-size:11px
  }
  .footer-contact>span{
    font-size:8px;
    letter-spacing:1.5px
  }
  .footer-contact{
    gap:14px
  }
  .footer-contact>a{
    font-size:10px;
    flex-wrap:wrap;
    overflow-wrap:anywhere
  }
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    font-size:9px;
    padding-block:18px
  }
  .footer-bottom>div{
    gap:13px
  }
  .footer-bottom button+button{
    padding-left:13px
  }
  .footer-tagline{
    font-size:7px;
    letter-spacing:1.3px
  }
  .footer-brand>p:last-child{
    font-size:12px
  }
  .dialog-inner{
    padding:35px 24px 28px
  }
  .dialog-inner h2{
    font-size:27px
  }
  .dialog-inner .button{
    font-size:11px
  }
  .eyebrow{
    font-size:9px;
    letter-spacing:1.6px
  }
}

@media(max-width:380px){
  .container{
    width:calc(100% - 32px)
  }
  .brand{
    width:210px
  }
  .hero-actions{
    gap:8px
  }
  .hero-actions .button{
    font-size:10px;
    padding-inline:11px
  }
  h1{
    font-size:34px
  }
  .hero-signature{
    font-size:6px
  }
  .hero-copy .eyebrow{
    font-size:7px
  }
  .capability{
    padding-inline:10px;
    gap:8px
  }
  .capability>.icon{
    width:23px;
    height:23px
  }
  .capability h2{
    font-size:10px
  }
  .capability p{
    font-size:9px
  }
  .solution-grid,.sector-grid{
    gap:10px
  }
  .card-content{
    padding-inline:7px
  }
  .card-content>strong{
    font-size:14px
  }
  .card-bottom{
    font-size:8px
  }
  .card-description{
    font-size:10px
  }
  .sector-intro>p:last-child{
    max-width:130px
  }
  .sector-body strong{
    font-size:12px
  }
  .sector-body>span{
    font-size:9px
  }
  .form-row{
    grid-template-columns:1fr;
    gap:0
  }
  .contact-form{
    padding:20px
  }
  .contact-email{
    font-size:11px
  }
  .trust-grid{
    gap:23px 12px
  }
  .trust-grid h2{
    font-size:18px
  }
  .trust-grid>.trust-item{
    padding-left:12px
  }
  .trust-item{
    gap:7px
  }
  .trust-item>.icon{
    width:22px
  }
  .demo-topline{
    font-size:7px
  }
  .contact-copy h2{
    font-size:38px
  }
}

@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto
  }
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important
  }
  .reveal-ready{
    opacity:1;
    transform:none
  }
  .solution-card:hover,.sector-card:hover,.button:hover{
    transform:none
  }
}

/* Forward-only, looping sector carousel. */
.sector-carousel { min-width: 0; position: relative; }
.sector-carousel.is-enhanced { padding-right: 53px; }
.sector-viewport { min-width: 0; overflow: hidden; padding: 8px 3px; margin: -8px -3px; }
.is-enhanced .sector-grid { display: flex; gap: 13px; will-change: transform; }
.is-enhanced .sector-card { flex: 0 0 calc((100% - 39px) / 4); }
.sector-next { position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 38px; height: 48px; border: 1px solid #bdcddd; border-radius: 4px; background: var(--pale); color: var(--navy); transition: background .2s, color .2s; }
.sector-next[hidden] { display: none; }
.sector-next:hover { background: var(--blue); border-color: var(--blue); color: white; }
.sector-next[aria-disabled="true"] { cursor: wait; }
.sector-next .icon { width: 22px; height: 22px; }
.is-enhanced .sector-body strong { overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .sector-carousel.is-enhanced { padding-right: 43px; }
  .is-enhanced .sector-grid { gap: 12px; }
  .is-enhanced .sector-card { flex-basis: calc((100% - 12px) / 2); }
  .sector-next { width: 33px; height: 46px; }
}

.contact-form { position: relative; }
.contact-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-result.is-error { border-left-color: #a56d48; background: #f6ede7; }
.contact-result[hidden] { display: none; }
.contact-form [disabled] { cursor: wait; opacity: .75; }
