/* ═══════════════════════════════════════════════════════════
   LÍNEAS DE INVESTIGACIÓN — layout
   WPBakery fix, sección, wrapper, grid, fila, panel expandido
═══════════════════════════════════════════════════════════ */

/* ── Fix contenedores WPBakery ───────────────────────────── */
.vc_row:has(#lineas-investigacion) .full_section_inner,
.vc_row:has(#lineas-investigacion) .vc_column-inner,
.vc_row:has(#lineas-investigacion) .wpb_wrapper,
.vc_row:has(#lineas-investigacion) .wpb_raw_html {
  padding: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

/* ── Sección ─────────────────────────────────────────────── */
#lineas-investigacion {
  background: #000000;
  width: 100vw !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  position: relative !important;
  padding: 100px 0 120px;
  overflow: hidden;
  z-index: 1;
  contain: layout paint;
}

#lineas-investigacion::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 60% at 88% 8%,  rgba(0,184,219,0.35)  0%, transparent 65%),
    radial-gradient(ellipse 45% 55% at 12% 55%, rgba(173,70,255,0.28)  0%, transparent 65%),
    radial-gradient(ellipse 38% 45% at 55% 90%, rgba(21,93,252,0.22)   0%, transparent 60%);
  filter: blur(50px);
  transform: translateZ(0);
}

/* ── Wrapper interno ─────────────────────────────────────── */
.lineas__inner {
  max-width: 1750px;
  margin: 0 auto;
  padding: 0 190px;
}

/* ── Stack de filas ──────────────────────────────────────── */
.lineas__grid {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

/* ── Fila base ───────────────────────────────────────────── */
.linea-row {
  position: relative;
  z-index: 1;
  background: #0a0a0a;
  min-height: 122px;
  overflow: hidden;
  cursor: pointer;
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.linea-row__bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 122px;
  pointer-events: none;
  z-index: 0;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 55%);
          mask-image: linear-gradient(to right, transparent 0%, black 55%);
}

.linea-row__bg svg {
  width: 100%;
  height: 100%;
  display: block;
}

.linea-row__body {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 0 40px 0 32px;
  min-height: 122px;
}

.linea-row__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  min-width: 0;
}

.linea-row__header {
  display: flex;
  align-items: center;
  gap: 14px;
}

.linea-row__sep {
  flex: 1;
  height: 1px;
  background: rgba(255,255,255,0.10);
  max-width: 120px;
  transform-origin: left center;
  transition: max-width 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease;
}

.linea-row:hover .linea-row__sep,
.linea-row.is-open .linea-row__sep {
  max-width: 520px;
}

.linea-row__btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  color: rgba(255,255,255,0.35);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.3s ease, transform 0.3s ease;
}

.linea-row.is-open .linea-row__btn {
  transform: rotate(180deg);
  color: rgba(255,255,255,0.80);
}

/* ── Panel expandido ─────────────────────────────────────── */
.linea-desc {
  position: relative;
  background: linear-gradient(to bottom, rgba(255, 0, 110, 0.55) 0%, rgba(213, 0, 249, 0.55) 100%);
  border-top: 1.538px solid rgba(255, 0, 110, 0.60);
  height: 209px;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.50s cubic-bezier(0.4,0,0.2,1), opacity 0.35s ease;
}

.linea-row.is-open .linea-desc {
  max-height: 400px;
  opacity: 1;
}

.linea-desc__corner {
  position: absolute;
  width: 61px;
  height: 37px;
  border: 1.538px solid rgba(255,255,255,0.80);
  z-index: 2;
  pointer-events: none;
}

.linea-desc__corner--tl { top: 10px;    left:  11px; border-right: none; border-bottom: none; }
.linea-desc__corner--bl { bottom: 10px; left:  11px; border-right: none; border-top:    none; }
.linea-desc__corner--tr { top: 10px;    right: 11px; border-left:  none; border-bottom: none; }
.linea-desc__corner--br { bottom: 10px; right: 11px; border-left:  none; border-top:    none; }

.linea-desc__content {
  position: absolute;
  inset: 10px 12px 10px 12px;
  display: flex;
  align-items: center;
  gap: 16px;
  z-index: 1;
}

.linea-desc__num-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  align-self: center;
  padding-top: 0;
}

.linea-desc__dot {
  display: block;
  width: 13px;
  height: 13px;
  background: rgba(255,255,255,0.85);
  border-radius: 50%;
  flex-shrink: 0;
  align-self: flex-end;
  margin-bottom: 4px;
}

.linea-desc__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 0;
  min-width: 0;
}
