/* Portada, red interactiva de recursos y preguntas frecuentes. */
.lab-page .lab-obra-portada h1 {
  max-width: 18ch;
  font-size: clamp(40px, 3.75vw, 56px);
  line-height: 1.08;
  margin-bottom: 20px;
}
.lab-page .lab-obra-portada h1 em { display: inline; }
.lab-page .lab-obra-portada .intro-lead {
  max-width: 43ch;
  margin-bottom: 16px;
  font-size: clamp(18px, 1.35vw, 20px);
  line-height: 1.5;
  font-weight: 600;
}
.lab-page .lab-obra-portada .intro-detail {
  max-width: 58ch;
  margin-bottom: 25px;
  font-size: 16px;
  line-height: 1.55;
}
.lab-page .lab-obra-portada .intro-actions .intro-primary { padding-inline: 17px; }

/* Red de recursos: grupos, conexiones y selección accesible. */
.lab-page .lab-obra-portada .lab-knowledge-figure {
  --active-color: #9c3454;
  width: 100%; min-width: 0; min-height: 0; margin: 0;
  padding: 23px 25px 17px; border: 1px solid #dddeda; border-radius: 22px;
  background: linear-gradient(150deg, #fffefa, #f7f8f5);
  box-shadow: 0 20px 55px #243b4a0a;
  color: #172d4c; scroll-margin-top: 24px;
}
.lab-knowledge-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lk-eyebrow { display: block; margin-bottom: 7px; font: 750 10px/1.3 "DM Sans", sans-serif; letter-spacing: .14em; color: #923551; }
.lab-knowledge-head h2 { margin: 0; font: 550 clamp(22px, 2vw, 29px)/1.15 "Fraunces", Georgia, serif; letter-spacing: -.025em; }
.lk-replay { flex: 0 0 40px; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #d7dbd8; border-radius: 50%; background: #fff9; color: #566775; cursor: pointer; }
.lk-replay[hidden] { display: none; }
.lk-replay svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.lk-replay:hover { border-color: #9c3454; color: #9c3454; }
.lk-replay:focus-visible { outline: 3px solid #245fe2; outline-offset: 3px; }
.lk-stage { margin: 2px -13px 0; }
.lk-graph { display: block; width: 100%; height: auto; overflow: visible; }
.lk-regions { opacity: .55; }
.lk-link { fill: none; stroke: #9babb2; stroke-width: 1.6; transition: stroke .25s, opacity .25s, stroke-width .25s; }
.lk-satellite { transition: opacity .25s; }
.lk-satellite path { fill: none; stroke: var(--node-color); stroke-width: .85; opacity: .3; }
.lk-satellite circle { fill: var(--node-color); opacity: .65; }
.lk-node { cursor: pointer; outline: none; }
.lk-hit { fill: transparent; stroke: transparent; stroke-width: 2; }
.lk-halo { fill: var(--node-color); opacity: .07; transition: opacity .25s, r .25s; }
.lk-ring { fill: none; stroke: var(--node-color); stroke-width: 1; opacity: .22; transition: opacity .25s, stroke-width .25s; }
.lk-dot { fill: var(--node-color); stroke: #fff; stroke-width: 2.5; filter: drop-shadow(0 3px 4px #1e384126); }
.lk-shine { fill: #fff; opacity: .45; pointer-events: none; }
.lk-node text { fill: #22394c; font: 650 21px/1 "DM Sans", sans-serif; text-anchor: middle; stroke: #fbfcf8; stroke-width: 5px; paint-order: stroke; stroke-linejoin: round; }
.lk-node[aria-pressed="true"] text { fill: var(--node-color); font-weight: 800; }
.lk-node[aria-pressed="true"] .lk-ring { opacity: .75; stroke-width: 2; }
.lk-node[aria-pressed="true"] .lk-halo, .lk-node:hover .lk-halo { opacity: .17; }
.lk-node:focus-visible .lk-hit { stroke: #245fe2; fill: #fff7; }
.lk-link.is-connected { stroke: var(--active-color); stroke-width: 2.5; opacity: .72; }
.lk-link.is-muted, .lk-satellite.is-muted { opacity: .22; }
.lab-page .lab-obra-portada .lab-knowledge-figure .lk-detail { width: auto; max-width: none; margin: 5px 0 0; padding: 17px 18px 16px; min-height: 116px; border: 1px solid #e3e3dc; border-left: 3px solid var(--active-color); border-radius: 4px 12px 12px 4px; background: #ffffffbf; color: #52647a; font: 14px/1.55 "DM Sans", sans-serif; }
.lk-detail-heading { display: flex; align-items: center; gap: 9px; }
.lk-detail-heading strong { color: #22394c; font-size: 16px; font-weight: 750; }
.lk-detail-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--active-color); }
.lk-detail-count { margin-left: auto; color: #7b8589; font-size: 10px; font-variant-numeric: tabular-nums; letter-spacing: .1em; }
.lab-page .lab-obra-portada .lk-detail p { margin: 7px 0 0; font-size: 14px; line-height: 1.55; }
.lk-note { display: flex; justify-content: space-between; gap: 8px 18px; flex-wrap: wrap; margin-top: 12px; color: #68767c; font: 11px/1.4 "DM Sans", sans-serif; }
.lk-note span:last-child { color: #7c8587; }
.lk-building .lk-link, .lk-building .lk-satellite path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: lk-draw 1.2s ease-out var(--enter) both; }
.lk-building .lk-node, .lk-building .lk-satellite circle { animation: lk-emerge .8s ease-out var(--enter) both; }
.lk-building .lk-regions { animation: lk-region 1.8s ease-out both; }
@keyframes lk-draw { to { stroke-dashoffset: 0; } }
@keyframes lk-emerge { from { opacity: 0; } to { opacity: 1; } }
@keyframes lk-region { from { opacity: 0; } to { opacity: .55; } }

.lab-page .lab-faq {
  display: grid;
  grid-template-columns: minmax(235px, .7fr) minmax(0, 1.3fr);
  gap: clamp(35px, 5vw, 90px);
  max-width: none;
  padding: clamp(40px, 5vw, 76px) max(5%, calc((100vw - 1500px)/2));
  background: #fffdf9;
  color: #172d4c;
  border-top: 1px solid #d7dfe3;
}
.lab-page .lab-faq-eyebrow {
  margin: 0 0 10px;
  color: #923551;
  font: 750 12px/1.3 "DM Sans", sans-serif;
  letter-spacing: .13em;
}
.lab-page .lab-faq h2 {
  max-width: 11ch;
  margin: 0 0 16px;
  font: 600 clamp(34px, 3.2vw, 48px)/1.08 "Fraunces", Georgia, serif;
  letter-spacing: -.035em;
}
.lab-page .lab-faq-intro > p:not(.lab-faq-eyebrow) {
  max-width: 34ch;
  margin: 0 0 20px;
  color: #4b5c74;
  font-size: 16px;
  line-height: 1.55;
}
.lab-page .lab-faq-intro > a {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  min-height: 44px;
  color: #923551;
  font-size: 15px;
  font-weight: 700;
  text-underline-offset: 4px;
}
.lab-page .lab-faq-list { border-top: 1px solid #cad5dc; }
.lab-page .lab-faq-list details { border-bottom: 1px solid #cad5dc; }
.lab-page .lab-faq-list summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 70px;
  padding: 15px 3px;
  list-style: none;
  cursor: pointer;
  color: #172d4c;
  font-size: clamp(16px, 1.28vw, 19px);
  font-weight: 700;
  line-height: 1.35;
}
.lab-page .lab-faq-list summary::-webkit-details-marker { display: none; }
.lab-page .lab-faq-list summary::after {
  content: "+";
  flex: 0 0 28px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid #c4d0d7;
  border-radius: 50%;
  color: #923551;
  font-size: 20px;
  font-weight: 400;
}
.lab-page .lab-faq-list details[open] summary::after { content: "−"; }
.lab-page .lab-faq-list details[open] summary { color: #923551; }
.lab-page .lab-faq-list details p {
  max-width: 69ch;
  margin: -1px 36px 22px 3px;
  color: #4b5c74;
  font-size: 15px;
  line-height: 1.65;
}
.lab-page .lab-faq-list details a { color: #923551; text-underline-offset: 3px; }
.lab-page .lab-faq summary:focus-visible,
.lab-page .lab-faq a:focus-visible { outline: 3px solid #245fe2; outline-offset: 2px; }

@media (max-width: 900px) {
  .lab-page .lab-faq { grid-template-columns: minmax(205px, .65fr) minmax(0, 1.35fr); gap: 26px; }
}
@media (max-width: 700px) {
  .lab-page .lab-obra-portada h1 { max-width: 18ch; font-size: clamp(36px, 8.2vw, 46px); }
  .lab-page .lab-obra-portada .intro-lead { font-size: 18px; }
  .lab-page .lab-obra-portada .intro-detail { font-size: 15px; }
  .lab-page .lab-obra-portada .lab-knowledge-figure { min-height: 0; padding: 15px; }
  .lab-knowledge-head h2 { font-size: 25px; }
  .lk-stage { margin-inline: -9px; }
  .lk-node text { font-size: 23px; }
  .lk-note { font-size: 10px; }
  .lab-page .lab-obra-portada .lab-knowledge-figure .lk-detail { min-height: 130px; padding: 14px; }

  .lab-page .lab-faq { grid-template-columns: 1fr; gap: 21px; padding-block: 36px 46px; }
  .lab-page .lab-faq h2 { max-width: none; margin-bottom: 8px; }
  .lab-page .lab-faq-intro > p:not(.lab-faq-eyebrow) { margin-bottom: 8px; }
  .lab-page .lab-faq-list summary { min-height: 61px; font-size: 16px; }
}
@media (max-width: 400px) {
  .lk-node text { font-size: 30px; stroke-width: 6px; }
  .lab-knowledge-head h2 { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  .lk-building .lk-link, .lk-building .lk-satellite path { animation: none; stroke-dashoffset: 0; }
  .lk-building .lk-node, .lk-building .lk-satellite circle, .lk-building .lk-regions { animation: none; }
  .lk-link, .lk-satellite, .lk-halo, .lk-ring { transition: none; }
}
