[data-card-href] {
  cursor: pointer;
}

[data-card-href]:focus-visible {
  outline: 0.1875rem solid rgba(17, 91, 229, 0.5);
  outline-offset: 0.25rem;
}

.home-hero {
  position:relative;
  height:clamp(34rem,50vw,60.625rem);
  overflow:hidden;
  background:#07152d;
}

.hero-slide {
  position:absolute;
  inset:0;
  visibility:hidden;
  opacity:0;
  background-image:linear-gradient(90deg,rgba(3,12,28,.44),rgba(3,12,28,.05)),var(--hero);
  background-position:center;
  background-size:cover;
  transition:opacity .6s;
}

.hero-slide.is-active {
  visibility:visible;
  opacity:1;
}

.hero-copy {
  display:flex;
  height:100%;
  align-items:flex-start;
  justify-content:center;
  flex-direction:column;
  color:#fff;
}

.hero-copy--right {
  align-items:flex-end;
}

.hero-copy h1,.hero-copy h2 {
  max-width:52rem;
  margin:0;
  font-size:clamp(2.8rem,2rem + 3vw,5.25rem);
  line-height:1.14;
  font-weight:700;
  letter-spacing:.06em;
}

.hero-copy h1 span,.hero-copy h2 span {
  color:#1683ff;
}

.hero-copy p {
  margin:2rem 0 4rem;
  font-size:clamp(1.1rem,.95rem + .8vw,2rem);
}

.hero-dots {
  position:absolute;
  right:0;
  bottom:3rem;
  left:0;
  display:flex;
  justify-content:center;
  gap:.5rem;
}

.hero-dots button {
  width:.65rem;
  height:.65rem;
  padding:0;
  border:0;
  border-radius:50%;
  background:#fff8;
}

.hero-dots button.is-active {
  width:1.75rem;
  border-radius:999px;
  background:#fff;
}

.home-workflow {
  padding:clamp(4rem,6vw,6.25rem) 0;
  background:#f5f9ff url("../assets/home/decor-section-background.webp") center/cover;
}

.home-workflow img {
  width:100%;
  filter:drop-shadow(0 10px 24px rgba(8,53,121,.08));
}

.home-hardware,.home-software,.home-service,.home-solutions,.home-partners {
  padding:clamp(4rem,6vw,6.25rem) 0;
}

.home-hardware {
  background:url("../assets/home/image-hardware-background.webp") center/cover;
}

.hardware-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(1.25rem,3vw,5.75rem);
}

.hardware-card {
  position:relative;
  display:flex;
  min-width:0;
  min-height:38rem;
  overflow:hidden;
  padding:2rem 2.5rem;
  flex-direction:column;
  background:#fff;
  box-shadow:0 2px 8px rgba(15,98,223,.2);
}

.hardware-badge {
  width:4.1rem;
  height:4.1rem;
}

.hardware-card h3 {
  margin:1.5rem 0 .4rem;
  font-size:1.45rem;
}

.hardware-card p {
  color:#989b9f;
  font-size:.9rem;
  line-height:1.6;
}

.hardware-card .model {
  color:#0059ff;
}

.hardware-photo {
  width:100%;
  height:15rem;
  margin-top:auto;
  object-fit:contain;
}

.hardware-card a {
  margin-top:1rem;
  color:var(--accent);
  font-weight:700;
}

.home-software {
  background:var(--surface);
}

.plugin-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.25rem 2.25rem;
}

.plugin-card {
  display:grid;
  grid-template-columns:72px 1fr 44%;
  min-height:10.75rem;
  align-items:center;
  overflow:hidden;
  padding:1rem;
  border:1px solid #ebf1fa;
  background:#fff;
  box-shadow:0 2px 3px rgba(8,53,121,.12);
}

.plugin-card>img:first-child {
  width:4rem;
  height:4rem;
  object-fit:contain;
}

.plugin-card h3 {
  margin:0;
  font-size:1rem;
}

.plugin-card p {
  margin:.45rem 0 0;
  font-size:.82rem;
}

.plugin-card .plugin-screen {
  width:100%;
  height:8.4rem;
  object-fit:cover;
}

.center-action {
  display:flex;
  justify-content:center;
  margin-top:2.5rem;
}

.service-panels {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.75rem;
}

.service-panels h3 {
  margin:0 0 2rem;
  font-size:1.5rem;
}

.mini-steps {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
}

.mini-steps span {
  display:grid;
  min-height:7rem;
  place-items:center;
  padding:1rem;
  border-radius:1rem;
  color:var(--brand);
  background:var(--surface);
  text-align:center;
}

.oem-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}

.oem-grid>div {
  display:flex;
  min-width:0;
  padding:1rem;
  flex-direction:column;
  border-radius:1rem;
  background:var(--surface);
}

.oem-grid img {
  width:100%;
  height:10rem;
  object-fit:contain;
}

.oem-grid small {
  margin-top:.4rem;
  color:var(--muted);
}

.home-solutions {
  background:#fff;
}

.solution-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:.75rem;
}

.solution-grid article {
  overflow:hidden;
  border-radius:.75rem;
  background:#fff;
  box-shadow:0 4px 14px rgba(8,53,121,.12);
}

.solution-grid img {
  width:100%;
  aspect-ratio:1.8;
  object-fit:cover;
}

.solution-grid h3,.solution-grid p {
  margin:1rem 1.25rem;
}

.solution-grid p {
  color:var(--muted);
  font-size:.88rem;
  line-height:1.6;
}

.home-highlights {
  padding:4rem 0;
  color:#fff;
  background:#0871e9 url("../assets/home/decor-section-background-texture.png") center/cover;
}

.highlight-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
}

.highlight-grid article {
  display:flex;
  align-items:center;
  flex-direction:column;
  border-right:1px solid #fff6;
  text-align:center;
}

.highlight-grid article:last-child {
  border:0;
}

.highlight-grid b {
  font-size:clamp(2rem,1.5rem + 2vw,4rem);
}

.highlight-grid sup {
  font-size:.35em;
}

.highlight-grid span {
  margin-top:.65rem;
}

.partner-grid {
  justify-content:center;
}

.partner-grid img {
  width:100%;
  aspect-ratio:2.88;
  object-fit:contain;
  border:0;
  background:#fff;
}

.home-partners {
  background:#fff;
}

@media(max-width:1180px) {
  .hardware-grid {
    gap:1.25rem;
  }

  .plugin-grid {
    grid-template-columns:repeat(2,1fr);
  }

  .solution-grid {
    grid-template-columns:repeat(3,1fr);
  }

}

@media(max-width:760px) {
  .home-hero {
    height:38rem;
  }

  .hero-slide {
    background-position:62% center;
  }

  .hero-slide::before {
    position:absolute;
    inset:0;
    content:"";
    background:linear-gradient(90deg,rgba(3,12,28,.78),rgba(3,12,28,.18));
  }

  .hero-copy {
    position:relative;
    align-items:flex-start!important;
  }

  .hero-copy h1,.hero-copy h2 {
    font-size:clamp(2.3rem,11vw,3.5rem);
  }

  .hero-copy p {
    max-width:18rem;
    margin:1.5rem 0 2rem;
    font-size:1.05rem;
  }

  .hardware-grid,.service-panels {
    grid-template-columns:1fr;
  }

  .hardware-card {
    min-height:32rem;
  }

  .plugin-grid {
    grid-template-columns:1fr;
  }

  .solution-grid {
    grid-template-columns:repeat(2,1fr);
  }

  .highlight-grid {
    grid-template-columns:repeat(2,1fr);
    gap:2rem;
  }

  .highlight-grid article {
    border:0;
  }

}

/* Figma section/hardware — node 2:3631 */
.home-hardware {
  min-height:61rem;
  padding:4.25rem 0 1.5rem;
  background:#fff url("../assets/home/image-hardware-background.webp") center/cover;
}

.home-hardware .section-heading {
  margin-bottom:4.55rem;
}

.hardware-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,26.1875rem));
  justify-content:center;
  gap:clamp(3.75rem,4.8vw,5.75rem);
}

.hardware-card {
  position:relative;
  width:100%;
  height:37.875rem;
  min-height:0;
  overflow:hidden;
  padding:0;
  background:#fff;
  box-shadow:0 2px 8px rgba(15,98,223,.2);
}

.hardware-card::before {
  position:absolute;
  inset:0;
  content:"";
  background:url("../assets/home/image-card-background.png") center bottom/100% 100% no-repeat;
  opacity:.66;
}

.hardware-card::after {
  position:absolute;
  inset:0;
  content:"";
  background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.96) 50%,rgba(255,255,255,.2) 107%);
}

.hardware-card>* {
  position:absolute;
  z-index:1;
}

.hardware-badge {
  top:2rem;
  left:2.5625rem;
  width:4.0625rem;
  height:4.0625rem;
}

.hardware-card h3 {
  top:7.6875rem;
  right:2.5625rem;
  left:2.5625rem;
  margin:0;
  color:#1f2937;
  font-size:1.5rem;
  line-height:1.35;
  letter-spacing:.02em;
  white-space:nowrap;
}

.hardware-models {
  top:10.4375rem;
  left:2.5625rem;
  width:calc(100% - 3.25rem);
  color:#1f2937;
  font-size:.75rem;
  line-height:1rem;
  letter-spacing:.04em;
}

.hardware-models p {
  margin:0 0 .25rem;
  white-space:nowrap;
}

.hardware-models b {
  color:#0059ff;
  font-weight:400;
}

.hardware-divider {
  top:13.75rem;
  left:2.5625rem;
  width:3.75rem;
  height:.25rem;
  background:url("../assets/home/decor-divider.svg") left center/100% 100% no-repeat;
}

.hardware-description {
  top:14.5rem;
  left:2.5625rem;
  width:calc(100% - 5.125rem);
  margin:0;
  color:#989b9f;
  font-size:.75rem;
  line-height:1.125rem;
  letter-spacing:.04em;
}

.hardware-photo {
  object-fit:contain;
}

.hardware-photo--scanner {
  bottom:4.25rem;
  left:4.0625rem;
  width:17.9375rem;
  height:13.875rem;
}

.hardware-photo--auto {
  bottom:3.6875rem;
  left:4rem;
  width:18.1875rem;
  height:14.875rem;
}

.hardware-photo--fast {
  bottom:3.6875rem;
  left:2.5625rem;
  width:21.8125rem;
  height:14.9375rem;
}

.hardware-action {
  display:flex;
  justify-content:flex-end;
  margin-top:1.5rem;
  padding-right:.9375rem;
}

.compact-outline-button {
  display:flex;
  width:14.875rem;
  height:2.0625rem;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  border:1px solid #86b3f6;
  border-radius:1rem;
  color:#095cd7;
  background:#fff;
  font-size:.875rem;
  letter-spacing:.04em;
}

.compact-outline-button img {
  width:.875rem;
  height:.5rem;
}

/* Figma section/service — node 2:3397 */
.home-service {
  padding:6.25rem 0;
}

.home-service .section-heading {
  margin-bottom:2.25rem;
}

.service-panels {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  justify-content:center;
  gap:1.6875rem;
}

.service-card {
  position:relative;
  height:25.5rem;
  min-height:0;
  overflow:hidden;
  padding:0;
  background:#fff;
  box-shadow:2px 2px 12px rgba(0,105,170,.12);
}

.service-card__title {
  position:relative;
  height:7.5rem;
  padding:2rem 3.3125rem 0;
  border-bottom:1px solid #edf1f6;
}

.service-card__title>span {
  position:absolute;
  top:2rem;
  left:3.3125rem;
  width:2.25rem;
  height:.25rem;
  background:url("../assets/home/decor-title-underline.svg") center/100% 100% no-repeat;
}

.service-card__title h3 {
  margin:.875rem 0 .2rem;
  color:#1f2937;
  font-size:1.25rem;
  line-height:1.4;
  letter-spacing:.04em;
}

.service-card__title p {
  margin:0;
  color:#1f2937;
  font-size:.875rem;
  line-height:1.5;
  letter-spacing:.04em;
}

.service-flow {
  display:flex;
  height:auto;
  min-height:13.3125rem;
  align-items:flex-start;
  justify-content:space-between;
  padding:1.4375rem 1.8125rem 0;
}

.service-step {
  position:relative;
  width:7.6875rem;
  height:auto;
  min-height:0;
  flex:0 0 auto;
  text-align:center;
}

.service-step__number {
  width:1.5rem;
  height:1.5rem;
  margin:0 auto;
  object-fit:contain;
}

.service-step__visual {
  position:relative;
  width:5.8125rem;
  height:5.8125rem;
  margin:1.5rem auto 0;
}

.service-step__circle {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  transform:rotate(-90deg);
}

.service-step__image {
  position:absolute;
  inset:50% auto auto 50%;
  max-width:none;
  transform:translate(-50%,-50%);
  object-fit:contain;
}

.service-step__image--design {
  width:7.1875rem;
  height:5rem;
}

.service-step__image--analysis {
  width:5.375rem;
  height:4.75rem;
}

.service-step__image--delivery {
  width:3.3125rem;
  height:3.8125rem;
}

.service-step__image--algorithm {
  width:4.875rem;
  height:3.1875rem;
}

.service-step__ghost {
  position:absolute;
  z-index:0;
  top:6.9375rem;
  right:0;
  width:2.5rem;
  height:2.5rem;
  object-fit:contain;
}

.service-step h4 {
  position:relative;
  z-index:1;
  margin:1.25rem 0 .65rem;
  color:#1f2937;
  font-size:.875rem;
  line-height:.75rem;
  font-weight:400;
  letter-spacing:.04em;
  white-space:nowrap;
}

.service-step>p {
  position:relative;
  z-index:1;
  margin:0;
  color:#989b9f;
  font-size:.75rem;
  line-height:1.5;
  letter-spacing:.04em;
}

.service-flow__arrow {
  width:1.25rem;
  height:1.25rem;
  margin-top:4.375rem;
  flex:0 0 auto;
  transform:none;
}

.service-card--oem::after {
  position:absolute;
  top:0;
  right:0;
  width:13.625rem;
  height:7.25rem;
  content:"";
  background:url("../assets/home/decor-background-texture.png") center/cover;
  opacity:.06;
}

.oem-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin: .875rem 2.1875rem 0;
}

.oem-grid>.oem-card {
  position:relative;
  display:block;
  height:11.4375rem;
  min-width:0;
  overflow:hidden;
  padding:0;
  border:1px solid #ebf2fe;
  border-radius:.375rem;
  background:#fafcff;
}

.oem-card::after {
  position:absolute;
  right:1rem;
  bottom:1.8rem;
  width:10rem;
  height:2.375rem;
  content:"";
  background:url("../assets/home/decor-background-pattern.svg") center/contain no-repeat;
}

.oem-card h4 {
  position:absolute;
  z-index:2;
  top:5.1875rem;
  left:1.25rem;
  margin:0;
  color:#1f2937;
  font-size:.875rem;
  line-height:.75rem;
  font-weight:400;
}

.oem-card p {
  position:absolute;
  z-index:2;
  top:6.5625rem;
  left:1.25rem;
  width:calc(100% - 8.25rem);
  max-width:7.5rem;
  margin:0;
  color:#989b9f;
  font-size:.75rem;
  line-height:1.5;
  overflow-wrap:anywhere;
  text-wrap:balance;
}

.oem-grid .oem-card__tags {
  position:absolute;
  z-index:2;
  top:1.1875rem;
  left:1.25rem;
  width:2.9375rem;
  height:2.9375rem;
  object-fit:contain;
}

.oem-grid .oem-card__type {
  position:absolute;
  z-index:2;
  top:1rem;
  right:1rem;
  width:2.0625rem;
  height:2.4375rem;
  object-fit:contain;
}

.oem-grid .oem-card__product {
  position:absolute;
  z-index:1;
  right:1rem;
  bottom:1.8rem;
  margin:0;
  object-fit:contain;
}

.oem-grid .oem-card__product--device {
  width:10rem;
  height:6.125rem;
}

.oem-grid .oem-card__product--software {
  width:10rem;
  height:6.125rem;
}

.service-oem-action {
  position:absolute;
  z-index:2;
  right:2.4375rem;
  bottom:.8125rem;
  left:2.4375rem;
  display:flex;
  height:2.0625rem;
  align-items:center;
  justify-content:center;
  gap:.7rem;
  border:1px solid #86b3f6;
  border-radius:1rem;
  color:#095cd7;
  font-size:.875rem;
  letter-spacing:.04em;
}

.service-oem-action img {
  width:.875rem;
  height:.5rem;
}

@media(max-width:1500px) {

  .home-hardware {
    min-height:0;
  }

  .hardware-grid {
    grid-template-columns:repeat(2,minmax(0,26.1875rem));
    gap:2rem;
  }

  .hardware-action {
    max-width:54.375rem;
    margin-right:auto;
    margin-left:auto;
    padding-right:0;
  }

  .service-panels {
    grid-template-columns:minmax(0,44.0625rem);
  }

}

@media(max-width:960px) {

  .hardware-grid {
    grid-template-columns:minmax(0,26.1875rem);
  }

  .hardware-action {
    max-width:26.1875rem;
  }

}

@media(max-width:760px) {

  .home-hardware {
    padding:4rem 0;
  }

  .home-hardware .section-heading {
    margin-bottom:2.5rem;
  }

  .hardware-grid {
    grid-template-columns:minmax(0,26.1875rem);
    gap:1.5rem;
  }

  .hardware-card {
    display:flex;
    height:auto;
    min-height:0;
    padding:1.5rem;
    flex-direction:column;
  }

  .hardware-card>* {
    position:relative;
  }

  .hardware-badge {
    top:auto;
    left:auto;
    width:4.0625rem;
    height:4.0625rem;
  }

  .hardware-card h3 {
    top:auto;
    right:auto;
    left:auto;
    margin:1.25rem 0 .5rem;
    font-size:1.25rem;
    white-space:normal;
  }

  .hardware-models {
    top:auto;
    left:auto;
    width:100%;
  }

  .hardware-models p {
    white-space:normal;
  }

  .hardware-divider {
    top:auto;
    left:auto;
    margin:.75rem 0;
  }

  .hardware-description {
    top:auto;
    left:auto;
    width:100%;
    min-height:5.625rem;
  }

  .hardware-photo,.hardware-photo--scanner,.hardware-photo--auto,.hardware-photo--fast {
    bottom:auto;
    left:auto;
    width:100%;
    height:15rem;
    margin:1rem 0 0;
    transform:none;
  }

  .hardware-action {
    justify-content:center;
    margin-top:2rem;
  }

  .home-service {
    padding:4rem 0;
  }

  .service-panels {
    grid-template-columns:1fr;
    gap:1.5rem;
  }

  .service-card {
    height:auto;
    min-height:0;
  }

  .service-card__title {
    height:7.5rem;
    padding-right:1.5rem;
    padding-left:1.5rem;
  }

  .service-card__title>span {
    left:1.5rem;
  }

  .service-flow {
    display:grid;
    height:auto;
    min-height:0;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1.75rem .5rem;
    padding:1.5rem 1rem 2rem;
  }

  .service-step {
    width:auto;
    height:auto;
    min-height:0;
  }

  .service-step h4 {
    min-height:2.4em;
    margin-bottom:.35rem;
    font-size:.75rem;
    line-height:1.2;
    white-space:normal;
  }

  .service-flow__arrow {
    display:none;
  }

  .oem-grid {
    grid-template-columns:1fr;
    gap:1rem;
    margin:1rem;
  }

  .oem-card {
    height:11.4375rem;
  }

  .oem-grid .oem-card__product--device {
    width:7rem;
  }

  .oem-grid>.oem-card:first-child::after {
    width:7rem;
  }

  .oem-grid .oem-card__product--software {
    width:7.125rem;
  }

  .oem-grid>.oem-card:nth-child(2)::after {
    width:7.125rem;
  }

  .service-oem-action {
    position:relative;
    right:auto;
    bottom:auto;
    left:auto;
    margin:0 1rem 1rem;
  }

}

@media(max-width:390px) {

  .service-flow {
    gap:1.5rem .25rem;
    padding-right:.5rem;
    padding-left:.5rem;
  }

}

/* Figma section/hero — node 2:3580 */
.home-hero {
  height:60.625rem;
  background:#050b1a;
}

.hero-slide {
  background-image:var(--hero);
  background-position:center;
  background-size:cover;
}

.hero-slide--light {
  background-color:#edf7ff;
}

.hero-copy {
  --copy-left:0;
  --hero-line-start:#2f8fff;
  --hero-line-end:#6ee7ff;
  --hero-line-glow:rgba(47,143,255,.34);
  position:relative;
  display:block;
  width:min(96.625rem,calc(100% - 3rem));
  height:100%;
  margin-inline:auto;
  color:#fff;
}

.hero-copy--stainer {
  --copy-left:58.875rem;
  --hero-line-start:#3599ff;
  --hero-line-end:#d9f7ff;
  --hero-line-glow:rgba(53,153,255,.34);
}

.hero-copy--service {
  --hero-line-start:#3599ff;
  --hero-line-end:#65f2b5;
  --hero-line-glow:rgba(77,247,146,.32);
}

.hero-copy--software {
  --hero-line-start:#095cd7;
  --hero-line-end:#14a1b5;
  --hero-line-glow:rgba(20,161,181,.3);
}

.hero-copy--scanner {
  --hero-line-start:#0067fa;
  --hero-line-end:#a8d8ff;
  --hero-line-glow:rgba(0,103,250,.34);
}

.hero-copy h1,.hero-copy h2 {
  position:absolute;
  top:13rem;
  left:var(--copy-left);
  max-width:50.5rem;
  margin:0;
  color:#fff;
  font-family:"Microsoft YaHei","Microsoft YaHei UI",sans-serif;
  font-size:5rem;
  line-height:6rem;
  font-weight:700;
  letter-spacing:.375rem;
}

.hero-copy h1 span,.hero-copy h2 span {
  color:#0067fa;
}

.hero-copy--service h1 span {
  color:transparent;
  background:linear-gradient(90deg,#3599ff,#c9fadc 52%,#4df792);
  background-clip:text;
  -webkit-background-clip:text;
}

.hero-copy--software h2 {
  color:#082258;
}

.hero-copy--software h2 span {
  color:transparent;
  background:linear-gradient(90deg,#052765,#0a66c9 50%,#14a1b5 91%);
  background-clip:text;
  -webkit-background-clip:text;
}

.hero-title-underline {
  position:absolute;
  top:28.8125rem;
  left:var(--copy-left);
  display:block;
  width:clamp(5.5rem,6.25vw,7.5rem);
  height:clamp(.25rem,.32vw,.375rem);
  border-radius:999px;
  background:linear-gradient(90deg,var(--hero-line-start) 0%,var(--hero-line-end) 72%,rgba(255,255,255,0) 100%);
  box-shadow:0 0 1.125rem var(--hero-line-glow);
}

.hero-title-underline::before {
  position:absolute;
  top:50%;
  left:0;
  width:.75rem;
  height:.75rem;
  border:2px solid rgba(255,255,255,.78);
  border-radius:50%;
  content:'';
  background:var(--hero-line-start);
  box-shadow:0 0 .875rem var(--hero-line-glow);
  transform:translate(-18%,-50%);
}

.hero-title-underline::after {
  position:absolute;
  top:50%;
  left:calc(100% + .5rem);
  width:clamp(2rem,2.5vw,3rem);
  height:1px;
  content:'';
  background:linear-gradient(90deg,var(--hero-line-end),rgba(255,255,255,0));
  opacity:.7;
  transform:translateY(-50%);
}

.hero-copy>p {
  position:absolute;
  top:30.25rem;
  left:var(--copy-left);
  margin:0;
  color:#fff;
  font-size:2rem;
  line-height:3rem;
  font-weight:400;
}

.hero-copy--software>p {
  color:#81838d;
}

.hero-cta {
  position:absolute;
  top:43.3125rem;
  left:var(--copy-left);
  display:flex;
  width:15rem;
  height:4rem;
  align-items:center;
  justify-content:center;
  gap:1rem;
  border-radius:2rem;
  color:#fff;
  background:#0067fa;
  font-size:1.375rem;
  line-height:1;
  font-weight:700;
}

.hero-cta img {
  width:.6875rem;
  height:1.6875rem;
  transform:rotate(180deg);
}

.hero-dots {
  bottom:2.9375rem;
  gap:.375rem;
}

.hero-dots button,.hero-dots button.is-active {
  width:.625rem;
  height:.625rem;
  border-radius:50%;
  background:#fff;
}

.hero-dots button.is-active {
  background:#0067fa;
}

@media(max-width:1180px) {

  .hero-copy {
    --copy-left:0;
  }

  .hero-copy--stainer {
    --copy-left:48%;
  }

}

@media(max-width:760px) {

  .home-hero {
    height:38rem;
  }

  .hero-slide::before {
    display:none;
  }

  .hero-slide--scanner {
    --hero:url("../assets/home/image-banner-bg3-mobile.webp") !important;
    background-position:center 74%;
    background-size:cover;
    background-repeat:no-repeat;
  }

  .hero-slide--stainer {
    --hero:url("../assets/home/image-banner-bg-mobile.webp") !important;
    background-position:center 74%;
    background-size:cover;
    background-repeat:no-repeat;
  }

  .hero-slide--service {
    --hero:url("../assets/home/image-banner-bg1-mobile.webp") !important;
    background-position:center 74%;
    background-size:cover;
    background-repeat:no-repeat;
  }

  .hero-slide--light {
    --hero:url("../assets/home/image-banner-bg2-mobile-v2.webp") !important;
    background-position:center 74%;
    background-size:cover;
    background-repeat:no-repeat;
  }

  .hero-copy,.hero-copy--stainer {
    --copy-left:0;
    display:flex;
    width:calc(100% - 2rem);
    padding-top:4.25rem;
    align-items:flex-start;
    justify-content:flex-start;
    flex-direction:column;
  }

  .hero-copy h1,.hero-copy h2 {
    position:static;
    width:100%;
    max-width:none;
    font-size:clamp(1.875rem,9vw,2.75rem);
    line-height:1.2;
    letter-spacing:.05rem;
    white-space:nowrap;
  }

  .hero-copy--stainer h2 {
    color:#fff;
    text-shadow:0 2px 12px rgba(0,0,0,.35);
  }

  .hero-title-underline {
    position:static;
    width:5.5rem;
    margin-top:1rem;
  }

  .hero-copy>p {
    position:static;
    max-width:17rem;
    margin:1rem 0 0;
    font-size:1rem;
    line-height:1.65;
  }

  .hero-cta {
    position:static;
    width:10.5rem;
    height:3.25rem;
    margin-top:3rem;
    font-size:1rem;
  }

  .hero-cta img {
    width:.5rem;
    height:1.2rem;
  }

  .hero-dots {
    bottom:1.5rem;
  }

}

/* Figma section/software — node 2:3476 */
.home-software {
  padding:6.25rem 0;
  background:#f5f9ff;
}

.home-software .section-heading {
  margin-bottom:2.25rem;
}

.plugin-grid {
  display:grid;
  height:auto;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:10.75rem;
  justify-content:center;
  gap:1.25rem 2.25rem;
}

.plugin-card {
  display:grid;
  width:100%;
  height:10.75rem;
  min-height:0;
  grid-template-columns:5.0625rem minmax(5.75rem,.65fr) minmax(11.5rem,1.5fr);
  align-items:center;
  column-gap:.5rem;
  overflow:hidden;
  padding:.9375rem .6875rem .75rem 1.3125rem;
  border:1px solid #ebf1fa;
  background:#fff;
  filter:drop-shadow(0 2px 3px rgba(8,53,121,.12));
}

.plugin-icon {
  width:5.0625rem;
  height:5rem;
  object-fit:cover;
}

.plugin-info {
  width:100%;
  min-width:0;
  align-self:start;
  padding-top:.5625rem;
}

.plugin-number {
  width:2.0625rem;
  height:1.9375rem;
  object-fit:contain;
}

.plugin-card h3 {
  margin:1.1rem 0 .35rem;
  color:#1f2937;
  font-size:1.125rem;
  line-height:1.4;
  font-weight:700;
  letter-spacing:-.03375rem;
  overflow-wrap:anywhere;
}

.plugin-card p {
  margin:0;
  color:#1f2937;
  font-size:.875rem;
  line-height:1.4;
  font-weight:400;
  letter-spacing:.0525rem;
}

.plugin-card .plugin-screen {
  width:100%;
  height:9.0625rem;
  object-fit:cover;
}

@media(min-width:1521px) {

  .plugin-card h3 {
    margin-top:.8rem;
    font-size:.9375rem;
    line-height:1.3;
  }

}

@media(max-width:1520px) {

  .plugin-grid {
    grid-template-columns:repeat(2,28.5rem);
  }

}

@media(max-width:1000px) {

  .plugin-grid {
    grid-template-columns:28.5rem;
  }

}

@media(max-width:760px) {

  .home-software {
    padding:4rem 0;
  }

  .plugin-grid {
    grid-template-columns:1fr;
    grid-auto-rows:9.5rem;
    gap:1rem;
  }

  .plugin-card {
    display:grid;
    width:100%;
    height:9.5rem;
    grid-template-columns:3.75rem minmax(0,1fr) 46%;
    align-items:center;
    padding:.75rem;
    column-gap:.5rem;
  }

  .plugin-icon {
    width:3.75rem;
    height:3.75rem;
  }

  .plugin-info {
    width:auto;
    padding-top:0;
  }

  .plugin-number {
    width:1.75rem;
    height:1.65rem;
  }

  .plugin-card h3 {
    margin:.6rem 0 .2rem;
    font-size:.8rem;
    overflow-wrap:anywhere;
  }

  .plugin-card p {
    font-size:.7rem;
    letter-spacing:0;
  }

  .plugin-card .plugin-screen {
    width:100%;
    height:7.5rem;
    object-fit:contain;
  }

}

/* Figma section/solutions — node 2:3359 */
.home-solutions {
  padding:6.25rem 0;
  background:#f5f9ff;
}

.home-solutions .section-heading {
  margin-bottom:2.25rem;
}

.solution-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.75rem;
}

.solution-grid article {
  position:relative;
  display:flex;
  min-height:18rem;
  overflow:hidden;
  flex-direction:column;
  border-radius:.625rem;
  background:#fff;
  box-shadow:2px 2px 6px rgba(0,105,170,.12);
}

.solution-grid article>img {
  width:100%;
  height:8.4375rem;
  aspect-ratio:auto;
  object-fit:cover;
  border-radius:.625rem .625rem 0 0;
}

.solution-grid h3 {
  margin:.875rem 1.0625rem .4rem;
  color:#1f2937;
  font-size:1rem;
  line-height:1.4;
  font-weight:400;
  letter-spacing:.035rem;
}

.solution-grid p {
  width:auto;
  margin:0 1.0625rem;
  color:#939393;
  font-size:.75rem;
  line-height:1.55;
  font-weight:400;
  letter-spacing:.02rem;
  flex:1;
}

.solution-grid article>a {
  display:flex;
  align-items:center;
  gap:.3rem;
  margin:.75rem 1.0625rem 1rem;
  color:#095cd7;
  font-size:.75rem;
  line-height:1.25;
  font-weight:400;
  letter-spacing:.02rem;
}

.solution-grid article>a img {
  width:.5625rem;
  height:.35rem;
}

@media(max-width:1180px) {

  .solution-grid {
    grid-template-columns:repeat(3,minmax(0,17.4375rem));
    justify-content:center;
  }

}

@media(max-width:760px) {

  .home-solutions {
    padding:4rem 0;
  }

  .solution-grid {
    grid-template-columns:1fr 1fr;
    gap:.75rem;
  }

  .solution-grid article {
    height:auto;
    min-height:18rem;
  }

  .solution-grid article>img {
    height:auto;
    aspect-ratio:2.05;
  }

  .solution-grid h3,.solution-grid p,.solution-grid article>a {
    position:relative;
    top:auto;
    left:auto;
  }

  .solution-grid h3 {
    margin:.75rem .75rem 0;
  }

  .solution-grid p {
    width:auto;
    min-height:2.8em;
    margin:.45rem .75rem 0;
    white-space:normal;
  }

  .solution-grid article>a {
    margin:.65rem .75rem .8rem;
  }

}

/* Figma section/highlights — node 2:3327 */
.home-highlights {
  height:20.4375rem;
  padding:5.4375rem 0 0;
  color:#fff;
  background:linear-gradient(90deg,#0085c6,#095cd7);
}

.home-highlights::before {
  position:absolute;
  inset:0;
  content:"";
  background:url("../assets/home/decor-section-background-texture.png") center/cover no-repeat;
}

.home-highlights {
  position:relative;
  overflow:hidden;
}

.highlight-grid {
  position:relative;
  display:flex;
  height:9.625rem;
  align-items:flex-start;
}

.highlight-grid article {
  position:relative;
  display:block;
  width:min(100%,12rem);
  height:9.625rem;
  border:0;
  text-align:center;
}

.highlight-column:not(:last-child)::after {
  position:absolute;
  top:0;
  right:0;
  width:1px;
  height:9.625rem;
  content:"";
  background:rgba(255,255,255,.45);
}

.highlight-value {
  display:flex;
  height:4.5rem;
  align-items:flex-end;
  justify-content:center;
  gap:.7rem;
}

.highlight-value b {
  font-size:5rem;
  line-height:4.5rem;
  font-weight:700;
  font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:"lnum" 1,"tnum" 1;
  letter-spacing:-.02em;
}

.highlight-value sup {
  position:static;
  margin-bottom:.2rem;
  font-size:1.125rem;
  line-height:1.5;
  font-weight:700;
  letter-spacing:.045rem;
}

.highlight-grid h3 {
  margin:1.75rem 0 0;
  color:#fff;
  font-size:1.125rem;
  line-height:1.3;
  font-weight:700;
  letter-spacing:.045rem;
  white-space:nowrap;
}

.highlight-grid p {
  margin:.5rem 0 0;
  color:#fff;
  font-size:1.0625rem;
  line-height:1.3;
  font-weight:400;
  letter-spacing:.0425rem;
  white-space:nowrap;
}

@media(max-width:991.98px) {

  .home-highlights {
    height:auto;
    padding:4rem 0;
  }

  .highlight-grid {
    height:auto;
    row-gap:3rem;
  }

  .highlight-grid article {
    width:auto;
  }

  .highlight-column:not(:last-child)::after {
    display:none;
  }

}

@media(max-width:440px) {
  .plugin-grid {
    grid-auto-rows:auto;
  }

  .plugin-card {
    height:auto;
    grid-template-columns:56px 1fr;
  }

  .plugin-card .plugin-screen {
    grid-column:1/-1;
    height:auto;
    margin-top:.75rem;
    object-fit:contain;
  }

  .solution-grid {
    grid-template-columns:1fr 1fr;
  }

  .oem-grid {
    grid-template-columns:1fr;
  }

}

/* 2026-07-30 homepage responsive banner and card radius corrections */
.hardware-card {
  border-radius:.75rem;
}

.plugin-card {
  border-radius:.5rem;
}

.plugin-card .plugin-screen {
  border-radius:.25rem;
}

.service-card {
  border-radius:.75rem;
}

.solution-grid article {
  border-radius:.5rem;
}

.solution-grid article>img {
  border-radius:.5rem .5rem 0 0;
}

@media(min-width:761px) and (max-width:1180px) {
  .home-hero {
    height:44rem;
  }

  .hero-slide {
    background-position:center bottom;
    background-size:100% auto;
    background-repeat:no-repeat;
  }

  .hero-slide--service,
  .hero-slide--scanner {
    background-color:#050b1a;
  }

  .hero-slide--light {
    background-color:#edf7ff;
  }

  .hero-slide--stainer {
    background-color:#233d59;
  }

  .hero-copy,
  .hero-copy--stainer {
    --copy-left:0;
    display:flex;
    width:calc(100% - 4rem);
    padding-top:4.25rem;
    align-items:flex-start;
    justify-content:flex-start;
    flex-direction:column;
  }

  .hero-copy h1,
  .hero-copy h2 {
    position:static;
    width:100%;
    max-width:38rem;
    font-size:clamp(2.5rem,5.7vw,3.75rem);
    line-height:1.16;
    letter-spacing:.12rem;
  }

  .hero-copy--stainer h2 {
    color:#fff;
  }

  .hero-title-underline {
    position:static;
    width:6.5rem;
    margin-top:1rem;
  }

  .hero-copy>p {
    position:static;
    margin:1rem 0 0;
    font-size:clamp(1rem,2vw,1.25rem);
    line-height:1.55;
  }

  .hero-cta {
    position:static;
    width:11.5rem;
    height:3.25rem;
    margin-top:2rem;
    font-size:1rem;
  }
}

/* 2026-08-03 mobile card density */
.hardware-grid__item,
.solution-grid__item {
  display:flex;
  min-width:0;
}

@media(max-width:760px) {
  .hardware-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem;
  }

  .hardware-card {
    padding:.875rem;
  }

  .hardware-badge {
    width:2.75rem;
    height:2.75rem;
  }

  .hardware-card h3 {
    margin:.75rem 0 .4rem;
    font-size:clamp(.82rem,3.7vw,1rem);
    line-height:1.35;
  }

  .hardware-models {
    font-size:.625rem;
    line-height:.9rem;
    letter-spacing:0;
  }

  .hardware-divider {
    width:2.75rem;
    margin:.55rem 0;
  }

  .hardware-description {
    min-height:0;
    font-size:.675rem;
    line-height:1rem;
    letter-spacing:0;
  }

  .hardware-photo,
  .hardware-photo--scanner,
  .hardware-photo--auto,
  .hardware-photo--fast {
    height:clamp(7.5rem,32vw,10rem);
    margin:.75rem 0 0;
  }

  .plugin-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:auto;
    gap:.75rem;
  }

  .plugin-card {
    display:grid;
    height:auto;
    min-height:12rem;
    grid-template-columns:2.75rem minmax(0,1fr);
    align-content:start;
    padding:.625rem;
    column-gap:.4rem;
  }

  .plugin-icon {
    width:2.75rem;
    height:2.75rem;
  }

  .plugin-number {
    width:1.35rem;
    height:1.25rem;
  }

  .plugin-card h3 {
    margin:.35rem 0 .1rem;
    font-size:.7rem;
    line-height:1.3;
  }

  .plugin-card p {
    font-size:.625rem;
    line-height:1.3;
  }

  .plugin-card .plugin-screen {
    width:100%;
    height:auto;
    aspect-ratio:1.7;
    grid-column:1/-1;
    margin-top:.55rem;
    object-fit:cover;
  }

  .solution-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem;
  }

  .solution-grid article {
    min-height:0;
  }

  .solution-grid article>img {
    aspect-ratio:1.55;
  }

  .solution-grid h3 {
    margin:.7rem .65rem 0;
    font-size:.85rem;
    line-height:1.35;
  }

  .solution-grid p {
    min-height:0;
    margin:.4rem .65rem 0;
    font-size:.675rem;
    line-height:1.5;
  }

  .solution-grid article>a {
    margin:.6rem .65rem .75rem;
    font-size:.7rem;
  }
}

/* 2026-08-03 mobile card breathing room */
@media(max-width:520px) {
  .hardware-grid,
  .solution-grid {
    grid-template-columns:none;
    grid-auto-flow:column;
    justify-content:start;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:inline mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }

  .hardware-grid::-webkit-scrollbar,
  .solution-grid::-webkit-scrollbar {
    display:none;
  }

  .hardware-grid {
    grid-auto-columns:min(78vw,20rem);
    gap:.9rem;
    padding:.2rem 0 .9rem;
  }

  .hardware-grid__item,
  .solution-grid__item {
    scroll-snap-align:start;
  }

  .hardware-card {
    padding:1.125rem;
  }

  .hardware-card h3 {
    font-size:1rem;
  }

  .hardware-models {
    font-size:.7rem;
    line-height:1.05rem;
  }

  .hardware-description {
    font-size:.75rem;
    line-height:1.15rem;
  }

  .hardware-photo,
  .hardware-photo--scanner,
  .hardware-photo--auto,
  .hardware-photo--fast {
    height:clamp(9rem,42vw,11rem);
  }

  .solution-grid {
    grid-auto-columns:min(72vw,18rem);
    gap:.9rem;
    padding:.2rem 0 .9rem;
  }

  .solution-grid article>img {
    aspect-ratio:1.75;
  }

  .solution-grid h3 {
    margin:.85rem .85rem 0;
    font-size:.95rem;
  }

  .solution-grid p {
    margin:.5rem .85rem 0;
    font-size:.75rem;
    line-height:1.55;
  }

  .solution-grid article>a {
    margin:.75rem .85rem .9rem;
    font-size:.75rem;
  }
}
/* 2026-08-03 home service card without CTA */
@media(min-width:761px) {
  .service-card--oem {
    display:grid;
    grid-template-rows:7.5rem minmax(0,1fr);
  }

  .service-card--oem .oem-grid {
    margin-top:0;
    margin-bottom:0;
    align-self:center;
  }
}

/* 2026-08-06 homepage section rhythm and hardware card alignment */
.home-workflow,
.home-hardware,
.home-software,
.home-service,
.home-solutions,
.home-partners {
  min-height:0;
  padding:6rem 0;
}

.home-workflow .section-heading,
.home-hardware .section-heading,
.home-software .section-heading,
.home-service .section-heading,
.home-solutions .section-heading,
.home-partners .section-heading {
  width:min(100%,52rem);
  margin:0 auto 3.25rem;
}

.home-workflow .section-heading p,
.home-hardware .section-heading p,
.home-software .section-heading p,
.home-service .section-heading p,
.home-solutions .section-heading p,
.home-partners .section-heading p {
  margin-top:.5rem;
}

.hardware-grid {
  grid-template-columns:repeat(3,minmax(0,27.5rem));
  gap:2.25rem;
}

.hardware-badge,
.hardware-card h3,
.hardware-models,
.hardware-divider,
.hardware-description {
  left:2.75rem;
}

.hardware-card h3 {
  right:2.75rem;
}

.hardware-models,
.hardware-description {
  width:calc(100% - 5.5rem);
}

.hardware-photo--scanner {
  left:4.78125rem;
}

.hardware-photo--auto {
  left:4.65625rem;
}

.hardware-photo--fast {
  left:2.84375rem;
}

@media(min-width:961px) and (max-width:1500px) {
  .hardware-grid {
    grid-template-columns:repeat(2,minmax(0,27.5rem));
  }
}

@media(min-width:761px) and (max-width:960px) {
  .hardware-grid {
    grid-template-columns:minmax(0,27.5rem);
  }
}

@media(max-width:760px) {
  .home-workflow,
  .home-hardware,
  .home-software,
  .home-service,
  .home-solutions,
  .home-partners {
    padding:4rem 0;
  }

  .home-workflow .section-heading,
  .home-hardware .section-heading,
  .home-software .section-heading,
  .home-service .section-heading,
  .home-solutions .section-heading,
  .home-partners .section-heading {
    margin-bottom:2.5rem;
  }

  .hardware-badge,
  .hardware-card h3,
  .hardware-models,
  .hardware-divider,
  .hardware-description,
  .hardware-photo--scanner,
  .hardware-photo--auto,
  .hardware-photo--fast {
    right:auto;
    left:auto;
    width:100%;
  }

  .hardware-badge {
    width:2.75rem;
  }

  .hardware-divider {
    width:2.75rem;
  }
}
