/* Piezas visuales de las guías (se generan con scripts/vis.js). Mismo lenguaje que la guía de declaración anual. */
.vv{margin:6px 0 22px}
.vv>.v{margin:0}
.v{margin:6px 0 20px}
.v-titulo{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold,#15847f);margin:0 0 10px!important}
.v-ico{width:30px;height:30px;fill:none;stroke:var(--gold,#15847f);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;display:block}
.v p,.v li,.v span,.v b{overflow-wrap:anywhere}

/* aparecen al hacer scroll (solo si corre el script) */
.v-js .v-rev{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1)}
.v-js .v-rev.v-in{opacity:1;transform:none}

/* flujo */
.v-flujo{display:flex;align-items:stretch}
.v-flujo .p{flex:1;min-width:0;background:var(--soft,#e5fffe);border:1px solid #cfe8e6;border-radius:12px;padding:14px 9px;text-align:center}
.v-flujo .p .v-ico{margin:0 auto 7px}
.v-flujo .p b{display:block;font-size:13.5px;line-height:1.25;color:var(--deep,#00384c)}
.v-flujo .p span{display:block;font-size:12px;line-height:1.35;color:var(--gray,#737373);margin-top:4px}
.v-flujo .f{flex:0 0 26px;position:relative;align-self:center;height:10px}
.v-flujo .f::before{content:"";position:absolute;left:2px;right:8px;top:4px;height:2px;background:#8fcfca}
.v-flujo .f::after{content:"";position:absolute;right:2px;top:0;border:5px solid transparent;border-left:8px solid #8fcfca;border-right:0}
.v-js .v-flujo .p{opacity:0;transform:scale(.94);transition:opacity .45s,transform .45s cubic-bezier(.3,1.5,.5,1)}
.v-js .v-flujo.v-in .p{opacity:1;transform:none}
.v-flujo .p:nth-child(3){transition-delay:.12s}.v-flujo .p:nth-child(5){transition-delay:.24s}.v-flujo .p:nth-child(7){transition-delay:.36s}.v-flujo .p:nth-child(9){transition-delay:.48s}
@media(max-width:640px){.v-flujo{flex-direction:column}.v-flujo .p{display:grid;grid-template-columns:34px 1fr;gap:4px 12px;text-align:left;align-items:center}.v-flujo .p .v-ico{grid-row:1/3;margin:0}.v-flujo .f{flex:0 0 22px;align-self:center;width:10px;height:22px}.v-flujo .f::before{left:4px;right:auto;top:2px;bottom:8px;width:2px;height:auto}.v-flujo .f::after{right:auto;left:0;top:auto;bottom:2px;border:5px solid transparent;border-top:8px solid #8fcfca;border-bottom:0;border-left:5px solid transparent}}

/* línea de tiempo */
.v-linea{margin-left:9px;padding-left:24px;border-left:3px solid #cfe8e6}
.v-linea .h{position:relative;padding:0 0 18px}
.v-linea .h:last-child{padding-bottom:4px}
.v-linea .h::before{content:"";position:absolute;left:-35px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--gold,#15847f);border:3px solid #fff;box-shadow:0 0 0 2px var(--gold,#15847f)}
.v-linea .h em{display:block;font-style:normal;font-weight:800;font-size:12.5px;letter-spacing:.03em;color:#8a5a00}
.v-linea .h b{display:block;color:var(--deep,#00384c);font-size:15px;line-height:1.35}
.v-linea .h span{display:block;font-size:13.5px;color:var(--gray,#737373);line-height:1.5;margin-top:2px}

/* comparar */
.v-comparar{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.v-comparar .c{border:1px solid var(--line,#dddee3);border-radius:12px;overflow:hidden;background:#fff}
.v-comparar .c h4{margin:0;padding:10px 14px;font-size:14px;color:#fff;background:var(--gold,#15847f);font-family:inherit}
.v-comparar .c.no h4{background:#b3413a}
.v-comparar .c ul{margin:0!important;padding:12px 14px 6px 30px!important}
.v-comparar .c li{font-size:14px!important;margin-bottom:7px!important}
@media(max-width:560px){.v-comparar{grid-template-columns:1fr}}

/* cifras */
.v-cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.v-cifras .n{border-radius:12px;background:linear-gradient(155deg,var(--deep,#00384c),var(--deep2,#052634));color:#fff;padding:16px 12px;text-align:center}
.v-cifras .n b{font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1;display:block;font-family:'Playfair Display',serif;font-size:clamp(22px,5vw,28px);line-height:1.15;color:#5fd0c9;font-variant-numeric:tabular-nums}
.v-cifras .n span{display:block;font-size:12.5px;line-height:1.35;color:rgba(255,255,255,.85);margin-top:6px}

/* pasos numerados */
.v-pasos ol{list-style:none;margin:0!important;padding:0!important;counter-reset:vp;display:grid;gap:10px}
.v-pasos li{counter-increment:vp;display:grid!important;grid-template-columns:36px 1fr;gap:12px;align-items:start;background:#fff;border:1px solid var(--line,#dddee3);border-radius:12px;padding:12px 14px;margin:0!important}
.v-pasos li::before{content:counter(vp);width:34px;height:34px;border-radius:50%;background:var(--gold,#15847f);color:#fff;font-weight:800;display:grid;place-items:center;font-size:15px}
.v-pasos li b{display:block;color:var(--deep,#00384c)}
.v-pasos li span{display:block;font-size:13.5px;color:var(--gray,#737373);margin-top:2px}
.v-js .v-pasos li{opacity:0;transform:translateX(-10px);transition:opacity .4s,transform .4s}
.v-js .v-pasos.v-in li{opacity:1;transform:none}
.v-pasos li:nth-child(2){transition-delay:.08s}.v-pasos li:nth-child(3){transition-delay:.16s}.v-pasos li:nth-child(4){transition-delay:.24s}.v-pasos li:nth-child(5){transition-delay:.32s}.v-pasos li:nth-child(6){transition-delay:.4s}.v-pasos li:nth-child(7){transition-delay:.48s}.v-pasos li:nth-child(8){transition-delay:.56s}

/* barra de proporciones */
.v-barra .b{display:flex;height:32px;border-radius:10px;overflow:hidden;background:#e5eeee}
.v-barra .b i{display:block;height:100%;width:0;transition:width 1.3s cubic-bezier(.2,.8,.2,1)}
.v-barra.v-in .b i,html:not(.v-js) .v-barra .b i{width:var(--w)}
.v-barra .l{display:grid;grid-template-columns:14px 1fr auto;gap:2px 10px;align-items:center;margin-top:10px;font-size:14px}
.v-barra .l span{width:14px;height:14px;border-radius:4px}
.v-barra .l b{color:var(--deep,#00384c)}
.v-barra .l em{font-style:normal;font-weight:800;color:var(--deep,#00384c);font-variant-numeric:tabular-nums}
.v-barra .l small{grid-column:2/4;color:var(--gray,#737373);font-size:12.5px}
.v-barra .nota{font-size:12px!important;color:var(--gray,#737373);margin:10px 0 0!important}

/* tarjetas con ícono */
.v-iconos{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.v-iconos .i{border:1px solid var(--line,#dddee3);border-radius:12px;padding:14px 13px;background:#fff;transition:transform .2s,box-shadow .2s}
.v-iconos .i:hover{transform:translateY(-2px);box-shadow:0 8px 18px -10px rgba(0,56,72,.35)}
.v-iconos .i .v-ico{margin-bottom:8px}
.v-iconos .i b{display:block;color:var(--deep,#00384c);font-size:14.5px;line-height:1.3}
.v-iconos .i span{display:block;font-size:13px;color:var(--gray,#737373);line-height:1.45;margin-top:3px}

/* semáforo */
.v-semaforo .s{display:grid;grid-template-columns:18px 1fr;gap:12px;align-items:start;padding:11px 13px;border-radius:10px;margin-bottom:8px;border:1px solid}
.v-semaforo .s i{width:14px;height:14px;border-radius:50%;margin-top:5px}
.v-semaforo .s b{display:block;color:var(--deep,#00384c)}
.v-semaforo .s span{display:block;font-size:13.5px;color:#4a4a4a;margin-top:2px}
.v-semaforo .verde{background:#e7f8ef;border-color:#b6e6cb}.v-semaforo .verde i{background:#1f9d58}
.v-semaforo .ambar{background:#fff4e0;border-color:#f3d79c}.v-semaforo .ambar i{background:#e0a21b}
.v-semaforo .rojo{background:#fbe5e2;border-color:#efb8b2}.v-semaforo .rojo i{background:#c0392b}

/* calendario anual */
.v-cal{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.v-cal .m{background:var(--soft,#e5fffe);border:1px solid #cfe8e6;border-radius:12px;padding:10px 12px}
.v-cal .m b{display:block;color:var(--deep,#00384c);font-size:14px;margin-bottom:4px}
.v-cal .m ul{margin:0!important;padding-left:16px!important}
.v-cal .m li{font-size:12.5px!important;margin-bottom:4px!important;line-height:1.4}

/* recuadros: ojo, dato, alto */
.v-nota{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;border-radius:10px;padding:13px 15px;border-left:5px solid}
.v-nota>div{font-size:14.5px;line-height:1.55}
.v-nota>div *:last-child{margin-bottom:0}
.v-nota.ojo{background:#fff9ea;border-color:#f2b33d}.v-nota.ojo .v-ico{stroke:#b36b00}
.v-nota.dato{background:var(--soft,#e5fffe);border-color:var(--gold,#15847f)}
.v-nota.alto{background:#fdecea;border-color:#b3413a}.v-nota.alto .v-ico{stroke:#b3413a}

@media (prefers-reduced-motion:reduce){.v-js .v-rev,.v-js .v-flujo .p,.v-js .v-pasos li{opacity:1!important;transform:none!important;transition:none!important}.v-barra .b i{transition:none;width:var(--w)}}
