/* Recorrido de un caso (ecosistema 360 · D-016/D-017, 2026-10-01): el PROCESO, de la máquina al trabajo
   terminado. Común a todos los casos; cada página sólo pone sus datos. Usa las variables de main.css. */
.rc-lead { max-width: 44rem; margin-top: var(--sp-3); }
.rc-pasos { display: flex; flex-wrap: wrap; gap: var(--sp-1); margin-top: var(--sp-4); }
.rc-pasos a { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .8rem; border: var(--border) solid var(--line); border-radius: 999px; color: var(--ink); text-decoration: none; font-size: var(--step-sm); background: var(--surface); }
.rc-pasos a b { display: inline-grid; place-items: center; width: 1.4rem; height: 1.4rem; border-radius: 50%; background: var(--signal-wash); color: var(--signal-strong); font-size: .75rem; }
.rc-pasos a.is-actual { border-color: var(--signal); }
.rc-recorrido { list-style: none; padding: 0; margin: var(--sp-6) auto 0; position: relative; }
.rc-recorrido::before { content: ""; position: absolute; left: calc(1.25rem - 1px); top: 0; bottom: 0; width: 2px; background: linear-gradient(var(--signal), var(--line)); }
.rc-etapa { display: grid; grid-template-columns: 2.5rem 1fr; gap: var(--sp-4); padding-bottom: var(--sp-6); position: relative; }
.rc-num { width: 2.5rem; height: 2.5rem; border-radius: 50%; display: grid; place-items: center; background: var(--surface); border: 2px solid var(--signal); color: var(--signal-strong); font-weight: 700; position: relative; z-index: 1; }
.rc-cuerpo { min-width: 0; }
.rc-cuerpo > h2 { margin: .2rem 0 var(--sp-2); font-size: var(--h2); }
.rc-cuerpo > p { max-width: 42rem; color: var(--ink-soft); font-size: var(--step-lead); margin: 0 0 var(--sp-4); }
.rc-hueco { margin: 0; min-height: 13rem; display: grid; place-content: center; text-align: center; gap: .35rem; border: 2px dashed var(--line-strong); background: var(--signal-wash); color: var(--ink-soft); padding: var(--sp-4); }
.rc-hueco span { font-size: var(--step-lead); color: var(--ink); }
.rc-hueco small { text-transform: uppercase; letter-spacing: .08em; font-size: var(--step-eyebrow); color: var(--signal-strong); }
.rc-hueco--ancho { min-height: 18rem; }
.rc-principal { margin: 0 0 var(--sp-3); border: var(--border) solid var(--line); background: #eef0f2; }
.rc-principal img, .rc-galeria img { display: block; width: 100%; height: auto; }
.rc-principal img { max-height: 72vh; object-fit: contain; }
.rc-galeria { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); }
.rc-galeria--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rc-galeria figure { margin: 0; border: var(--border) solid var(--line); background: #eef0f2; overflow: hidden; }
.rc-galeria figure img { aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s ease; }
.rc-galeria figure:hover img { transform: scale(1.06); }
.rc-galeria figcaption { padding: .5rem .7rem; font-size: var(--step-sm); background: var(--surface); color: var(--ink); }
.rc-galeria .rc-hueco { min-height: 11rem; background: var(--signal-wash); }
.rc-cifras { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3); margin: var(--sp-4) 0 0; }
.rc-cifras div { border-top: 3px solid var(--signal); padding-top: var(--sp-2); }
.rc-cifras dt { font-size: var(--h2); font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.rc-cifras dd { margin: 0; color: var(--ink-soft); font-size: var(--step-sm); }
.rc-condiciones { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); margin-top: var(--sp-3); }
.rc-condiciones div { padding: var(--sp-3); border-left: 4px solid var(--signal); background: var(--surface); display: grid; gap: .3rem; }
.rc-condiciones span { color: var(--ink-soft); font-size: var(--step-sm); }
.rc-ciclo { margin: 0; background: var(--surface); border: var(--border) solid var(--line); padding: var(--sp-3); }
.rc-ciclo svg { width: 100%; height: auto; display: block; }
.rc-s-base { fill: var(--ink-faint); } .rc-s-cinta { fill: var(--steel); } .rc-s-centro { stroke: var(--signal); stroke-width: 3; stroke-dasharray: 5 4; }
.rc-s-txt { fill: var(--ink-soft); font-size: 13px; text-anchor: middle; font-family: var(--font-sans); }
.rc-s-paquete rect { fill: var(--signal); } .rc-s-paquete circle { fill: var(--surface); }
.rc-s-paquete { transform: translate(90px, 100px); animation: rc-ciclo 6s ease-in-out infinite; }
@keyframes rc-ciclo { 0% { transform: translate(90px, 100px); } 25% { transform: translate(90px, 30px); } 40% { transform: translate(230px, 96px); } 75%, 100% { transform: translate(350px, 96px); } }
.rc-visor { margin-top: var(--sp-4); display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); }
.rc-visor small { color: var(--ink-soft); }
.rc-visor iframe { width: 100%; height: min(82vh, 760px); min-height: 520px; border: var(--border) solid var(--line); background: #fff; }
.rc-anim .rc-etapa { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.rc-anim .rc-etapa.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .rc-anim .rc-etapa { opacity: 1; transform: none; transition: none; }
  .rc-s-paquete { animation: none; transform: translate(350px, 96px); }
  .rc-galeria figure img { transition: none; }
}
@media (max-width: 720px) {
  .rc-etapa { grid-template-columns: 1.9rem 1fr; gap: var(--sp-3); }
  .rc-num { width: 1.9rem; height: 1.9rem; font-size: .85rem; }
  .rc-recorrido::before { left: calc(.95rem - 1px); }
  .rc-galeria, .rc-galeria--2, .rc-condiciones { grid-template-columns: 1fr; }
  .rc-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Caso 07 (2026-10-19): galería de fotos limpias y ciclo real de los ejes dibujado desde el registro. */
.pz-visual { margin-top: var(--sp-6); }
.pz-visual > h2 { font-size: var(--h2); margin: 0 0 var(--sp-2); }
.pz-visual > p { max-width: 42rem; color: var(--ink-soft); margin: 0 0 var(--sp-4); }
.pz-galeria { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); margin-bottom: var(--sp-6); }
.pz-galeria figure { margin: 0; border: var(--border) solid var(--line); background: #eef0f2; overflow: hidden; display: flex; flex-direction: column; }
.pz-galeria a { display: block; flex: 1; overflow: hidden; }
.pz-galeria img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s ease; }
.pz-galeria a:hover img { transform: scale(1.05); }
.pz-galeria figcaption { padding: .5rem .7rem; font-size: var(--step-sm); background: var(--surface); color: var(--ink); }
.pz-galeria .pz-alta { grid-row: span 2; }
.pz-galeria .pz-alta img { aspect-ratio: auto; object-position: center 40%; }
.pz-galeria .pz-ancha { grid-column: span 2; }
.pz-galeria .pz-ancha img { aspect-ratio: 21 / 9; }
.pz-galeria .pz-entera { grid-column: 1 / -1; }
.pz-galeria .pz-entera img { aspect-ratio: 21 / 9; }
.cx { margin: 0; background: var(--surface); border: var(--border) solid var(--line); padding: var(--sp-3); }
.cx svg { display: block; width: 100%; height: auto; }
.cx-marco { fill: none; stroke: var(--line); stroke-width: 1; }
.cx-rejilla { stroke: var(--line); stroke-width: 1; stroke-dasharray: 2 5; }
.cx-guia { fill: none; stroke: var(--ink-faint); stroke-opacity: .35; stroke-width: 2; stroke-dasharray: 4 5; stroke-linejoin: round; }
.cx-traza { fill: none; stroke: var(--signal); stroke-width: 3.5; stroke-linejoin: round; stroke-linecap: round; }
.cx-cabezal { fill: var(--signal); stroke: var(--surface); stroke-width: 3; }
.cx-txt { fill: var(--ink-soft); font: 13px var(--font-sans); }
.cx-txt--fuerte { fill: var(--ink); font-weight: 600; }
.cx-esfera { fill: none; stroke: var(--line); stroke-width: 10; }
.cx-arco { fill: none; stroke: var(--steel); stroke-width: 10; }
.cx-aguja { stroke: var(--ink); stroke-width: 3; stroke-linecap: round; }
.cx-eje { fill: var(--ink); }
.cx-fondo-barra { fill: var(--line); }
.cx-barra, .cx-bx, .cx-by { fill: var(--signal); }
.cx-pie { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); margin-top: var(--sp-3); }
.cx-pie small { color: var(--ink-soft); flex: 1 1 16rem; }
.cx-boton { min-width: 9.5rem; justify-content: center; }
@media (max-width: 720px) {
  .pz-galeria { grid-template-columns: 1fr 1fr; }
  .pz-galeria .pz-alta { grid-row: span 1; grid-column: span 2; }
  .pz-galeria .pz-alta img { aspect-ratio: 3 / 4; max-height: 70vh; }
  .pz-galeria .pz-ancha { grid-column: span 2; }
  .pz-galeria .pz-placa { grid-column: span 2; }
  .pz-galeria .pz-entera img { aspect-ratio: 16 / 9; }
  .cx { padding: var(--sp-2); }
  .cx-txt { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  .pz-galeria img { transition: none; }
  .pz-galeria a:hover img { transform: none; }
}
.rc-cuerpo > .rc-sim { font-size: 1rem; max-width: 42rem; margin: var(--sp-4) 0 0; padding: var(--sp-3); border-left: 4px solid var(--signal); background: var(--surface); color: var(--ink-soft); }
.rc-sim a { font-weight: 600; white-space: nowrap; }
