/* ===== Organigrama animado – Estructura Organizacional ===== */
.org{
  --o-line:#13323d;--o-line2:#B8530A;--o-glow:#F37F0A;
  --o-box:rgba(255,255,255,.95);--o-border:#13323d;--o-tx:#0d2229;
  --o-root-bg:#0d2229;--o-root-tx:#fff;--o-dir-bg:#13323d;--o-dir-tx:#fff;
  --o-chip:rgba(255,255,255,.7);--o-reg-border:#B8530A;--o-shadow:rgba(13,34,41,.22);
  margin:0;padding:var(--sp-m);border-radius:28px;position:relative;
}
:root[data-theme="dark"] .org{
  --o-line:#8DB1F5;--o-line2:#FFB36B;
  --o-box:rgba(16,28,68,.94);--o-border:#8DB1F5;--o-tx:#F2F6FF;
  --o-root-bg:#F2F6FF;--o-root-tx:#0d2229;--o-dir-bg:#2D63BF;--o-dir-tx:#fff;
  --o-chip:rgba(16,28,68,.72);--o-reg-border:#FFB36B;--o-shadow:rgba(0,0,0,.5);
}

/* Sin JavaScript: se ve la lista jerárquica tal cual */
.org-viewport{display:none}
.org-src{margin:0;padding:0 0 0 20px;line-height:1.75;font-size:15px}
.org-src ul{margin:0;padding-left:22px}
.org-printhead{display:none}

/* Con JavaScript: lienzo + lista accesible oculta visualmente */
.org-ready .org-viewport{display:block;position:relative;width:100%;height:calc(var(--H,600px) * var(--s,1))}
.org-ready .org-stage{position:absolute;left:0;top:0;width:var(--W,1060px);height:var(--H,600px);
  transform-origin:0 0;transform:translateX(var(--dx,0px)) scale(var(--s,1))}
.org-ready .org-src{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

.org-rios{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}
.org-rio{fill:none;stroke:var(--o-line);stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 2;stroke-dashoffset:1;visibility:hidden;
  transition:opacity .25s ease,stroke .25s ease}
.org-rio--b{stroke:var(--o-line2)}
.org-head{fill:var(--o-glow);visibility:hidden}
.org-rip{fill:none;stroke:var(--o-glow);stroke-width:1.6;visibility:hidden}

/* Cuadros */
.org-n{
  position:absolute;box-sizing:border-box;margin:0;display:flex;align-items:center;justify-content:center;text-align:center;
  border:1.5px solid var(--o-border);background:var(--o-box);color:var(--o-tx);
  font:600 12.5px/1.3 var(--font);padding:9px 12px;border-radius:12px;
  box-shadow:0 1px 3px var(--o-shadow),0 10px 22px -10px var(--o-shadow);
  opacity:0;
}
.org-stage:not(.is-done) .org-n{will-change:transform,opacity}
.org-t{display:block;opacity:0;text-wrap:balance;overflow-wrap:anywhere}
.org-n--root{font:700 16px/1.25 var(--font);background:var(--o-root-bg);color:var(--o-root-tx);border-color:var(--o-root-bg);border-radius:16px;padding:16px 20px}
.org-n--dir{font:700 13.5px/1.28 var(--font);background:var(--o-dir-bg);color:var(--o-dir-tx);border-color:var(--o-dir-bg);border-radius:14px;padding:10px 14px}
.org-n--chip{font:500 12px/1.3 var(--font);padding:5px 12px;border-width:1px;border-radius:999px;background:var(--o-chip);box-shadow:none;text-align:left;justify-content:flex-start;width:fit-content}
.org-n--chip .org-t{text-wrap:pretty}
.org-n--reg{border-color:var(--o-reg-border);border-radius:10px;padding:8px 2px;font-weight:700}
.org-n--reg .org-t{display:flex;flex-direction:column;gap:1px}
.org-n--reg .l1{font:500 10.5px/1.2 var(--font)}
.org-n--reg .l2{font:700 11.5px/1.2 var(--font)}
/* En la versión vertical las regionales ocupan una sola línea */
.org-stage[data-mode="tall"] .org-n--reg .org-t{flex-direction:row;gap:5px;justify-content:center}
.org-stage[data-mode="tall"] .org-n--reg .l1{font:500 12px/1.3 var(--font)}
.org-stage[data-mode="tall"] .org-n--reg .l2{font:700 12px/1.3 var(--font)}

/* Estado final: sin estilos en línea, así el resaltado por CSS funciona */
.org-stage.is-done .org-n{opacity:1;transition:opacity .25s ease}
.org-stage.is-done .org-t{opacity:1}

/* Resaltado de dependencias (al pasar el cursor o tocar un cuadro) */
.org-stage.is-focus .org-n:not(.is-lit){opacity:.3}
.org-stage.is-focus .org-rio{opacity:.18}
.org-lit{fill:none;stroke:var(--o-glow);stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:0;opacity:0;transition:opacity .25s ease}
.org-lit.is-on{opacity:1}
@media (hover:hover) and (pointer:fine){.org-stage.is-done .org-n{cursor:default}}

/* Fuente + botón */
.org-fuente{margin:var(--sp-s) 0 0;font-size:12px;line-height:16px;color:var(--text-em)}
.org-dl{position:sticky;bottom:20px;z-index:5;display:flex;justify-content:center;margin-top:var(--sp-m);pointer-events:none;min-height:48px}
.org .org-pdf{
  pointer-events:auto;padding:12px 28px;box-shadow:0 12px 28px -8px rgba(13,34,41,.55),0 2px 6px rgba(13,34,41,.25);
  opacity:0;visibility:hidden;transform:translateY(14px) scale(.96);
  transition:opacity .5s cubic-bezier(0.23,1,0.32,1),transform .5s cubic-bezier(0.23,1,0.32,1),visibility 0s linear .5s,background .15s;
}
.org.is-done .org-pdf{opacity:1;visibility:visible;transform:none;transition-delay:0s}
@media (hover:hover) and (pointer:fine){.org.is-done .org-pdf:hover{transform:translateY(-2px)}}
.org.is-done .org-pdf:active{transform:scale(.97);transition-duration:.12s}
:root[data-theme="dark"] .org .org-pdf{background:var(--orange);border-color:var(--orange);color:var(--navy)}
:root[data-theme="dark"] .org .org-pdf:hover{background:#ff9a3d}

@media only screen and (max-width:1180px){.org{padding:var(--sp-m) 14px}}
@media only screen and (max-width:600px){
  .org{padding:var(--sp-s) 12px;border-radius:22px}
  .org-dl{bottom:16px}
}

@media (prefers-reduced-motion:reduce){
  .org .org-pdf{transition:opacity .2s linear,visibility 0s}
  .org-lit,.org-rio,.org-stage.is-done .org-n{transition:none}
}

/* ===== Impresión / PDF ===== */
@page{size:A3 landscape;margin:10mm}
@media print{
  html,body{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body::before{display:none}
  main .caption,main .sec-head{display:none}
  main section.block{padding:0}
  .org,:root[data-theme="dark"] .org{
    --o-line:#13323d;--o-line2:#B8530A;--o-glow:#F37F0A;--o-box:#fff;--o-border:#13323d;--o-tx:#0d2229;
    --o-root-bg:#0d2229;--o-root-tx:#fff;--o-dir-bg:#13323d;--o-dir-tx:#fff;--o-chip:#fff;--o-reg-border:#B8530A;--o-shadow:rgba(13,34,41,.18);
    background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0;border-radius:0;
  }
  .org-printhead{display:flex;align-items:center;gap:28px;margin:0 0 18px;padding-bottom:17px;background:linear-gradient(#F37F0A,#F37F0A) left bottom/100% 3px no-repeat}
  .org-printhead img{height:auto;width:150px}
  .org-printtitle{margin:0;font:700 28px/34px var(--font);letter-spacing:-.01em;color:#0d2229;text-transform:uppercase}
  .org-printsrc{margin:4px 0 0;font:500 13px/18px var(--font);color:#34457A}
  .org-fuente,.org-dl{display:none}
  .org-viewport{--s:.9!important;--dx:0px!important;width:calc(var(--W) * var(--s));margin:0 auto}
  .org-n{box-shadow:none;break-inside:avoid}
}
