/* Shared process-to-model image reveal: solutions overview and product hero. */
.process-comparison [hidden] { display: none !important; }
.process-comparison__stage { position: relative; isolation: isolate; overflow: hidden; border-radius: 6px; background: #e7f0f6; }
.process-comparison__layer { position: absolute; inset: 0; pointer-events: none; user-select: none; }
.process-comparison__layer--process { z-index: 1; clip-path: inset(0 calc(100% - var(--comparison-position)) 0 0); }
.process-comparison__layer img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.process-comparison__label { position: absolute; top: 16px; left: 16px; padding: 8px 11px; border: 1px solid #ffffff40; border-radius: 4px; background: #142a40ed; color: #fff; font: 500 10px/1.2 'IBM Plex Mono', monospace; letter-spacing: .09em; text-transform: uppercase; }
.process-comparison__label--model { right: 16px; left: auto; }
.process-comparison__divider { position: absolute; z-index: 2; inset-block: 0; left: var(--comparison-position); width: 3px; transform: translateX(-50%); background: #ff8a3d; box-shadow: 0 0 0 1px #142a404d; pointer-events: none; }
.process-comparison__handle { position: absolute; z-index: 2; top: 50%; left: clamp(26px, var(--comparison-position), calc(100% - 26px)); display: none; width: 48px; height: 48px; align-items: center; justify-content: center; transform: translate(-50%, -50%); border: 3px solid #ff8a3d; border-radius: 50%; background: linear-gradient(135deg, #254e76, #142a40); color: #fff; box-shadow: 0 4px 18px #142a4073, 0 0 0 4px #ffffff40; pointer-events: none; transition: box-shadow 200ms ease; }
.process-comparison__handle svg { display: block; width: 28px; height: 24px; }
.process-comparison[data-comparison-ready] .process-comparison__handle { display: flex; }
.process-comparison[data-comparison-ready] .process-comparison__stage { cursor: ew-resize; touch-action: pan-y pinch-zoom; }
.process-comparison[data-comparison-unavailable] .process-comparison__divider { display: none; }
.process-comparison__range { position: absolute; z-index: 3; inset: 0; display: block; width: 100%; height: 100%; min-width: 0; margin: 0; padding: 0; opacity: 0; pointer-events: none; }
.process-comparison__stage:focus-within { outline: 3px solid #254e76; outline-offset: 4px; }
.process-comparison__stage:is(:hover, :focus-within) .process-comparison__handle { box-shadow: 0 4px 22px #142a4099, 0 0 0 5px #ff8a3d40; }
.process-comparison[data-comparison-dragging] .process-comparison__stage { cursor: grabbing; }
.process-comparison .process-comparison__hint { margin: 13px 0 0; color: #41576a; font: 400 10px/1.6 'IBM Plex Mono', monospace; text-align: center; }

@media (max-width: 640px) {
  .process-comparison__label { top: 10px; left: 10px; padding: 7px 8px; font-size: 9px; }
  .process-comparison__label--model { right: 10px; left: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .process-comparison__handle { transition: none; }
}

@media print {
  .process-comparison__range, .process-comparison__divider, .process-comparison__handle, .process-comparison .process-comparison__hint { display: none !important; }
  .process-comparison__stage { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; overflow: visible; aspect-ratio: auto !important; background: transparent; }
  .process-comparison__layer { position: relative; clip-path: none; }
  .process-comparison__layer--process { order: -1; }
  .process-comparison__layer img { height: auto; }
  .process-comparison__label { position: static; display: block; padding: 6px 0 0; border: 0; background: transparent; color: #142a40; text-align: center; }
}
