.product-vision {
  position: relative;
  margin: 0;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(22, 25, 22, 0.16);
  border-radius: 1.15rem;
  background: #e9e8e1;
  box-shadow: 0 2.25rem 5rem rgba(25, 29, 25, 0.16);
}

.product-vision img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1586 / 992;
  object-fit: cover;
  transition: opacity 0.22s ease, transform 0.45s cubic-bezier(0.2, 0.75, 0.25, 1);
}

.product-vision.is-changing img { opacity: 0.38; }

.product-vision-switch {
  position: absolute;
  z-index: 3;
  top: 0.8rem;
  right: 0.8rem;
  display: flex;
  gap: 0.18rem;
  padding: 0.22rem;
  border: 1px solid rgba(22, 25, 22, 0.16);
  border-radius: 100vw;
  background: rgba(250, 249, 244, 0.9);
  box-shadow: 0 0.7rem 2rem rgba(17, 20, 17, 0.12);
  backdrop-filter: blur(0.75rem);
}

.product-vision-switch button,
.product-vision-switch span {
  min-height: 2rem;
  padding: 0 0.75rem;
  border: 0;
  border-radius: 100vw;
  color: #626760;
  background: transparent;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.55rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  cursor: pointer;
}

.product-vision-switch span {
  display: inline-flex;
  align-items: center;
  cursor: default;
}

.product-vision-switch button.active,
.product-vision-switch span.active {
  color: #f6f5ef;
  background: #171a17;
}

.product-vision-caption {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1rem;
  border-top: 1px solid rgba(22, 25, 22, 0.12);
  color: #5d625b;
  background: #f7f5ee;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.54rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.product-vision-caption strong {
  color: #171a17;
  font-weight: 650;
}

/* The public concept pages open in a calm corporate light theme.
   Their established dark visual language remains in the product preview toggle. */
.bank-page,
.industry-page,
.log-page {
  color: #181b18;
  background: #f2f0e9;
}

.bank-page .site-header.scrolled,
.industry-page .site-header.scrolled,
.log-page .site-header,
.log-page .site-header.scrolled {
  border-color: rgba(22, 25, 22, 0.12);
  background: rgba(247, 245, 238, 0.88);
}

.bank-hero,
.industry-hero,
.log-hero {
  color: #181b18;
  background: #f2f0e9;
}

.bank-hero::before,
.industry-hero-grid,
.log-world-grid {
  opacity: 0.24;
}

.bank-hero-lead,
.industry-hero-lead,
.log-hero-lead { color: #555d56; }

.bank-hero-copy h1 span { color: #17644f; }
.bank-page .bank-button-primary { color: #f7f5ef; background: #154f40; }
.bank-page .bank-button-primary:hover { background: #226a57; }

.industry-hero-copy h1 span { color: #a94f06; }

.log-hero-copy h1 span { color: #244f5d; }
.log-page .log-button-primary,
.log-page .log-header-cta { color: #f7f5ef; border-color: #183f4b; background: #183f4b; }
.log-page .log-button-primary:hover,
.log-page .log-header-cta:hover { color: #f7f5ef; border-color: #285e6e; background: #285e6e; }

.bank-breadcrumbs a,
.industry-breadcrumbs a,
.log-breadcrumbs a { color: #525a53; }

.bank-hero-tags span,
.industry-hero-tags span,
.log-hero-tags span { color: #626961; }

.bank-hero-layout,
.industry-hero-layout,
.log-hero-layout {
  grid-template-columns: minmax(0, 0.73fr) minmax(34rem, 1.27fr);
  gap: clamp(2.5rem, 4vw, 5rem);
}

.bank-console,
.plant-console,
.tower-console {
  min-height: 0;
  display: block;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}

.bank-console > :not(.product-vision),
.plant-console > :not(.product-vision),
.tower-console > :not(.product-vision) { display: none; }

.bank-hero-facts,
.industry-hero-facts,
.log-hero-facts {
  color: #181b18;
  background: rgba(250, 249, 244, 0.82);
}

.bank-hero-facts span,
.industry-hero-facts span,
.log-hero-facts span { color: #5c655e; }

.bank-capabilities,
.bank-architecture,
.bank-faq { color: var(--bank-text); }

.industry-modules,
.industry-architecture,
.industry-faq { color: var(--ind-text); }

.log-modules,
.log-architecture,
.log-faq { color: var(--log-text); }

@media (max-width: 920px) {
  .bank-hero-layout,
  .industry-hero-layout,
  .log-hero-layout { grid-template-columns: 1fr; }

  .bank-page .main-nav,
  .industry-page .main-nav,
  .log-page .main-nav {
    color: #181b18;
    background-color: #f2f0e9;
    background-image: none;
  }
}

@media (max-width: 620px) {
  .product-vision { border-radius: 0.8rem; }
  .product-vision-switch { top: 0.55rem; right: 0.55rem; }
  .product-vision-switch button,
  .product-vision-switch span { min-height: 1.8rem; padding-inline: 0.58rem; font-size: 0.47rem; }
  .product-vision-caption { padding: 0.68rem 0.75rem; font-size: 0.45rem; }
}
