/* Editorial company section. The same open grid accepts approved logos
   or wordmarks; empty groups remain quiet announcements.
   Design variance 5 / motion 1 / visual density 3. Native CSS, existing brand. */
#empresas.companies-art {
  --companies-surface: #e3ebf8;
  --companies-surface-end: #eef3fb;
  --companies-ink: #030528;
  --companies-muted: #515b76;
  --companies-rule: #c2cfe5;
  --companies-accent: #0035f6;
  padding-block: 104px 80px;
  border-top: 1px solid var(--companies-rule);
  background: linear-gradient(155deg, var(--companies-surface), var(--companies-surface-end));
  color: var(--companies-ink);
}

:root[data-theme="dark"] #empresas.companies-art {
  --companies-surface: #0f193d;
  --companies-surface-end: #0b1234;
  --companies-ink: #f4f6ff;
  --companies-muted: #b5bfdc;
  --companies-rule: #344260;
  --companies-accent: #ffe43b;
}

#empresas .companies-intro {
  position: relative;
  margin-bottom: 46px;
}

#empresas .companies-overline {
  margin-bottom: 19px;
  color: var(--companies-accent);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .015em;
  line-height: 1.45;
}

#empresas .companies-intro h2 {
  max-width: 720px;
  color: var(--companies-ink);
  font-size: clamp(38px, 4.2vw, 56px);
  line-height: 1.06;
  letter-spacing: -.045em;
  font-weight: 500;
}

/* Two quiet 30-degree strokes meet at the same point, echoing the mark. */
#empresas .companies-joining-lines {
  position: absolute;
  top: 35px;
  right: 3px;
  width: 120px;
  height: 120px;
  pointer-events: none;
}

#empresas .companies-joining-lines::before,
#empresas .companies-joining-lines::after {
  content: "";
  position: absolute;
  top: 60px;
  right: 0;
  width: 116px;
  height: 1px;
  transform-origin: right center;
}

#empresas .companies-joining-lines::before {
  background: var(--companies-rule);
  transform: rotate(30deg);
}

#empresas .companies-joining-lines::after {
  background: var(--companies-accent);
  opacity: .55;
  transform: rotate(-30deg);
}

#empresas .companies-roster {
  border-block: 1px solid var(--companies-rule);
}

#empresas .companies-partner-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px 48px;
  padding-block: 38px;
  min-width: 0;
}

#empresas .companies-partner-group + .companies-partner-group {
  border-top: 1px solid var(--companies-rule);
}

#empresas .companies-category {
  min-width: 0;
}

#empresas .companies-category h3 {
  color: var(--companies-ink);
  font-size: clamp(29px, 2.8vw, 38px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -.04em;
}

#empresas .companies-category p {
  max-width: 560px;
  margin-top: 11px;
  color: var(--companies-muted);
  font-size: 16px;
  line-height: 1.6;
}

#empresas .companies-status {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: var(--companies-accent);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  white-space: nowrap;
}

#empresas .companies-status::before {
  content: "";
  width: 16px;
  height: 1px;
  background: currentColor;
  transform: rotate(-30deg);
  flex: none;
}

#empresas .companies-logo-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  column-gap: 24px;
  row-gap: 18px;
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}

#empresas .companies-logo-item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 94px;
  color: var(--companies-ink);
  text-align: center;
}

#empresas .companies-logo-item img {
  display: block;
  width: 100%;
  height: 72px;
  object-fit: contain;
}

/* Wordmarks are a fallback for names, never a substitute for approved logos.
   No frames or false links: the roster should read as a wall of brands. */
#empresas .company-wordmark {
  display: block;
  max-width: 100%;
  font-size: clamp(15px, 1.5vw, 21px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

#empresas .company-wordmark-1 {
  font-weight: 400;
  letter-spacing: -.025em;
}

#empresas .company-wordmark-2 {
  font-size: clamp(13px, 1.2vw, 17px);
  font-weight: 500;
  letter-spacing: .055em;
  text-transform: uppercase;
}

#empresas .company-wordmark-3 {
  font-weight: 700;
  font-style: italic;
  letter-spacing: -.05em;
}

#empresas .companies-preview-note {
  margin-top: 22px;
  color: var(--companies-muted);
  font-size: 13px;
  line-height: 1.5;
}

@media (max-width: 1100px) {
  #empresas .companies-logo-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px 32px;
  }

  #empresas .company-wordmark {
    font-size: 21px;
  }

  #empresas .company-wordmark-2 {
    font-size: 17px;
  }
}

@media (max-width: 900px) {
  #empresas .companies-joining-lines {
    width: 84px;
    right: 1px;
  }

  #empresas .companies-joining-lines::before,
  #empresas .companies-joining-lines::after {
    width: 80px;
  }

  #empresas .companies-partner-group {
    column-gap: 32px;
  }
}

@media (max-width: 767px) {
  #empresas.companies-art {
    padding-block: 64px 56px;
  }

  #empresas .companies-intro {
    margin-bottom: 32px;
  }

  #empresas .companies-intro h2 {
    font-size: 38px;
    line-height: 1.1;
  }

  #empresas .companies-overline {
    margin-bottom: 16px;
    font-size: 13px;
  }

  #empresas .companies-joining-lines {
    display: none;
  }

  #empresas .companies-partner-group {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 18px;
    padding-block: 28px;
  }

  #empresas .companies-category h3 {
    font-size: 30px;
  }

  #empresas .companies-category p {
    margin-top: 10px;
    font-size: 15px;
    max-width: 420px;
  }

  #empresas .companies-status {
    font-size: 13px;
  }

  #empresas .companies-logo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 24px;
    margin-top: 10px;
  }

  #empresas .companies-logo-item {
    min-height: 82px;
  }

  #empresas .companies-logo-item img {
    height: 64px;
  }
}

@media (max-width: 374px) {
  #empresas .companies-intro h2 {
    font-size: 34px;
  }

  #empresas .companies-category h3 {
    font-size: 28px;
  }

}
