/* ============================================================
   assets/enterprise-systems/enterprise-systems.css
   Enterprise Solutions-only: capabilities grid, partner ecosystem wall.
   Requires assets/css/main.css to be loaded first.
   ============================================================ */

.obs-org { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: start; }

@media (max-width: 920px) {
.obs-org { grid-template-columns: 1fr; gap: 24px; }
}

.obs-proof__grid--five { grid-template-columns: repeat(5, 1fr); }

@media (max-width: 1100px) {
.obs-proof__grid--five { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
.obs-proof__grid--five { grid-template-columns: repeat(2, 1fr); }
}

.es-caps { padding-top: var(--sect-y); padding-bottom: var(--sect-y); }

.es-caps__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.escap {
  display: flex;
  flex-direction: column;
  background: var(--card);
  border: 1px solid var(--card-line);
  border-radius: 16px;
  padding: 24px 22px 22px;
  transition: border-color .25s, transform .25s, box-shadow .25s;
}

.escap:hover { border-color: var(--rule); }

.escap__idx {
  align-self: flex-start;
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--fs-2xs);
  letter-spacing: .16em;
  color: var(--sig);
  border: 1px solid rgba(94, 99, 242, .3);
  border-radius: 20px;
  padding: 4px 11px;
  margin-bottom: 14px;
}

.escap h3 {
  font-family: "Sora", sans-serif;
  font-weight: 600;
  font-size: var(--fs-base);
  letter-spacing: -.015em;
  line-height: 1.3;
  color: var(--fg);
  margin: 0 0 6px;
}

.escap__tag {
  margin: 0 0 10px !important;
  font-family: "IBM Plex Mono", monospace;
  font-size: var(--fs-2xs) !important;
  letter-spacing: .04em;
  color: var(--sig) !important;
}

.escap p { margin: 0; color: var(--body); font-size: var(--fs-sm); line-height: 1.6; }

.escap--pointer {
  justify-content: center;
  background: linear-gradient(160deg, #191B3E, #10122B);
  border-color: rgba(155, 160, 255, .28);
  position: relative;
}

.escap--pointer::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 16px;
  padding: 1px;
  background: linear-gradient(140deg, var(--soft), transparent 40%, transparent 60%, var(--ice));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  opacity: .75;
}

.escap--pointer .escap__idx { color: var(--ice); border-color: rgba(123, 212, 245, .4); }

.escap--pointer h3 { color: #F2F3FA; font-size: var(--fs-sm2); }

.escap--pointer .escap__tag { color: var(--ice) !important; margin-bottom: 0 !important; }

.escap--pointer:hover { transform: translateY(-3px); }

@media (max-width: 1240px) {
.es-caps__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
.es-caps__grid { grid-template-columns: 1fr; }
}

.es-eco { padding-top: var(--sect-y); padding-bottom: var(--sect-y); }

.es-eco__top {
  margin-bottom: clamp(34px, 5vw, 54px);
}

.es-eco__top .obs-head { margin: 0 auto; text-align: center; }

.es-eco__top .obs-bridge { margin-left: auto; margin-right: auto; }

.es-eco__leads {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 18px;
}

.es-eco__leads--single {
  grid-template-columns: 1fr;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

.es-eco__lead {
  position: relative;
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: 18px;
  padding: 26px 28px 24px;
  box-shadow: 0 26px 70px -30px rgba(94, 99, 242, .5);
}

.es-eco__lead::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 18px;
  padding: 1px;
  background: linear-gradient(140deg, var(--soft), transparent 40%, transparent 60%, var(--ice));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  opacity: .8;
}

.es-eco__lead--cohere::before {
  background: linear-gradient(140deg, var(--ice), transparent 40%, transparent 60%, var(--soft));
}

.es-eco__lead-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.es-eco__lead-icon {
  flex: none;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--sig) 9%, transparent);
  border: 1px solid color-mix(in srgb, var(--sig) 22%, transparent);
}

.es-eco__lead-icon img { width: 20px; height: 20px; object-fit: contain; }

/* the card carries the tile's tint, and the tile drops its own fill and
   border, so the mark reads as sitting on the card rather than in a chip */
.es-eco__lead--cohere { background: color-mix(in srgb, var(--ice) 14%, var(--card)); }

.es-eco__lead-icon--cohere {
  background: transparent;
  border-color: transparent;
  color: var(--ice);
}

.es-eco__lead-icon--cohere {
  width: 72px;
  height: 72px;
  border-radius: 18px;
}

.es-eco__lead-icon--cohere img { width: 46px; height: 46px; }

.es-eco__lead h3 {
  font-family: "Sora", sans-serif;
  font-weight: 600;
  font-size: 20px;
  letter-spacing: -.015em;
  color: var(--fg);
  margin: 0;
}

.es-eco__lead p { margin: 12px 0 0; color: var(--body); font-size: var(--fs-sm); }

.es-eco .obs-chips span {
  color: color-mix(in srgb, var(--ice) 45%, var(--strong) 55%);
  border-color: color-mix(in srgb, var(--ice) 55%, transparent);
}

.es-eco__lead-tag { font-weight: 500; color: var(--strong); }

@media (max-width: 720px) {
.es-eco__leads { grid-template-columns: 1fr; }
}

.es-eco__wall {
  display: grid;
  gap: clamp(14px, 1.6vw, 22px);
}

.es-eco__row {
  position: relative;
  overflow: hidden;
  background: var(--surface);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent);
}

.es-eco__track {
  display: flex;
  width: max-content;
  animation: v4Marquee 68s linear infinite;
}

.es-eco__row--rev .es-eco__track {
  animation-duration: 84s;
  animation-direction: reverse;
}

.es-eco__row:hover .es-eco__track { animation-play-state: paused; }

.es-eco__group {
  display: flex;
  align-items: center;
  gap: clamp(40px, 4.6vw, 78px);
  padding-right: clamp(40px, 4.6vw, 78px);
}

.es-eco__icon { flex: 0 0 auto; display: flex; align-items: center; }

.es-eco__icon img {
  display: block;
  height: clamp(40px, 3.8vw, 52px);
  width: auto;
  max-width: 200px;
  object-fit: contain;
  opacity: .95;
  transition: opacity .3s ease;
}

.es-eco__row:hover .es-eco__icon img { opacity: .5; }

.es-eco__icon img:hover {
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
.es-eco__track { animation: none; }
}

@media (prefers-reduced-motion: reduce) {
.es-eco__row {
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-mask-image: none;
    mask-image: none;
  }
}

@media (prefers-reduced-motion: reduce) {
.es-eco__row::-webkit-scrollbar { display: none; }
}
