/* Homepage business illustrations: shared geometry for light and dark surfaces. */
.business-icon {
  display: block;
  width: 80px;
  height: 80px;
  flex: 0 0 auto;
  object-fit: contain;
  filter: drop-shadow(0 5px 5px rgb(27 74 132 / 10%));
  transition: transform .25s ease;
}
.prod-head { gap: 18px; }
.prod-ico {
  width: 80px;
  height: 80px;
  flex: 0 0 80px;
  border-radius: 20px;
  background: radial-gradient(ellipse at 50% 70%, #e7f2ff 0%, #f7fbff 65%, #fff 100%);
  box-shadow: none;
}
.prod-ico .business-icon { width: 76px; height: 76px; }
.prod-card { --product-color: #287de2 !important; }
.prod-card:hover .business-icon,
.ai-card:hover .business-icon { transform: translateY(-3px); }
.flow-node { padding-top: 16px; padding-bottom: 16px; }
.flow-node .business-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 9px;
  filter: drop-shadow(0 5px 8px rgb(0 12 36 / 22%));
}
.flow-node:not(:last-child)::after { top: 58px; }
.ai-icon {
  width: 80px;
  height: 80px;
  border: 0;
  border-radius: 0;
  background: radial-gradient(ellipse, rgb(63 168 233 / 14%), transparent 72%);
  margin-bottom: 20px;
}
.ai-icon .business-icon {
  filter: drop-shadow(0 6px 10px rgb(0 12 36 / 24%));
}
@media (max-width: 600px) {
  .prod-head { gap: 14px; }
  .prod-ico { width: 68px; height: 68px; flex-basis: 68px; border-radius: 17px; }
  .prod-ico .business-icon { width: 64px; height: 64px; }
  .ai-icon, .ai-icon .business-icon { width: 72px; height: 72px; }
}
@media (prefers-reduced-motion: reduce) {
  .business-icon { transition: none; }
  .prod-card:hover .business-icon, .ai-card:hover .business-icon { transform: none; }
}

/* Reuse the same business vocabulary across product and solution pages.
   Navigation controls and contact/action glyphs intentionally stay line-based. */
.drop-ic { background: #f2f7fd; flex: 0 0 37px; }
.drop-ic .business-icon { width: 36px; height: 36px; filter: none; }
.product-tab .business-icon { width: 30px; height: 30px; filter: none; }
.module-card .module-symbol {
  width: 76px;
  height: 76px;
  background: radial-gradient(ellipse at 50% 70%, #eaf4ff, #fafcff 70%, #fff);
  border-radius: 18px;
}
.module-symbol .business-icon { width: 72px; height: 72px; }
.module-card h3 { margin-top: 17px; }
.module-card:hover .business-icon { transform: translateY(-3px); }
.process-visual {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin: -4px -2px 14px;
}
.process-visual .business-icon { width: 64px; height: 64px; }
.process-step .process-visual .num {
  display: inline-grid;
  place-items: center;
  min-width: 30px;
  height: 26px;
  margin-top: 5px;
  padding: 0 6px;
  border: 1px solid #dce9f7;
  border-radius: 7px;
  background: #f2f7fd;
  color: #527ca5;
  font-size: 12px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  letter-spacing: .8px;
}
.arch-unit .business-icon { width: 64px; height: 64px; margin: 0 auto; }
.solution-tile .tile-label { display: flex; align-items: center; gap: 18px; }
.tile-label .business-icon { width: 72px; height: 72px; }
.value-ico { width: 56px; height: 56px; flex: 0 0 56px; background: #f5faff; }
.value-ico .business-icon { width: 52px; height: 52px; }
.cap-item > .business-icon { width: 64px; height: 64px; }
@media (max-width: 600px) {
  .module-card .module-symbol { width: 68px; height: 68px; }
  .module-symbol .business-icon { width: 64px; height: 64px; }
  .process-visual { gap: 4px; margin-bottom: 12px; }
  .process-visual .business-icon { width: 56px; height: 56px; }
  .arch-unit .business-icon { width: 56px; height: 56px; }
  .tile-label .business-icon { width: 64px; height: 64px; }
  .solution-tile .tile-label { gap: 12px; font-size: 10px; }
  .value-ico { width: 40px; height: 40px; flex-basis: 40px; }
  .value-ico .business-icon { width: 38px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  .module-card:hover .business-icon { transform: none; }
}
