/* Aceleradora visual components v1 — code-first charts/diagrams. No external libs. */
.vx .vx-kv,.vx .vx-bv,.vx .vx-rv,.vx-flow li::before,.vx-out output{font-variant-numeric:lining-nums}
.vx{--vx-gold:#C9A962;--vx-gold-d:#B8963F;--vx-ink:#1A1A1A;--vx-txt:#4A4A4A;--vx-mut:#7A7A7A;--vx-line:#E5E2DE;--vx-bg:#fff;--vx-bg2:#F8F6F3;margin:2rem 0;font-family:'Inter',sans-serif;color:var(--vx-txt)}
.vx-panel{background:var(--vx-bg);border:1px solid var(--vx-line);padding:1.6rem 1.6rem 1.2rem}
.vx-dark{background:linear-gradient(135deg,#1A1A1A 0%,#2D2D2D 100%);border:0;color:rgba(255,255,255,.82);--vx-line:#3a3a3a;--vx-ink:#fff;--vx-mut:rgba(255,255,255,.6);--vx-txt:rgba(255,255,255,.82);--vx-bg:#232323}
.vx-title{font-family:'Cormorant Garamond',serif;font-size:1.4rem;line-height:1.25;color:var(--vx-ink);margin:0 0 1.1rem!important;font-weight:500}
.vx figcaption{font-size:.8rem;color:var(--vx-mut);margin-top:1rem;line-height:1.55}
.vx figcaption a{color:var(--vx-gold-d)}
.vx-dark figcaption a{color:var(--vx-gold)}
/* Photo figure */
.vx-photo{margin:0 auto;max-width:1100px;padding:0 2rem 1rem}
.vx-photo img{display:block;width:100%;height:auto;border:1px solid var(--vx-line);aspect-ratio:16/9;object-fit:cover;background:#ece8e1}
.vx-photo figcaption{padding-top:.5rem;margin-top:0}
/* Horizontal bars */
.vx-bars{display:grid;gap:.85rem}
.vx-bar{display:grid;grid-template-columns:minmax(130px,36%) 1fr 4.6rem;align-items:center;gap:.9rem;font-size:.9rem}
.vx-bl{color:var(--vx-txt);line-height:1.3}
.vx-bt{display:block;height:14px;background:var(--vx-bg2);border:1px solid var(--vx-line);position:relative;overflow:hidden}
.vx-dark .vx-bt{background:#1d1d1d}
.vx-bf{display:block;height:100%;width:calc(var(--v,0)*1%);background:linear-gradient(90deg,var(--vx-gold-d),var(--vx-gold));transition:width 1.1s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*90ms)}
.vx-bar.vx-hl .vx-bf{background:linear-gradient(90deg,#8a6d2b,var(--vx-gold-d))}
.vx-bar.vx-mute .vx-bf{background:#cfc9bf}
.vx-bv{font-family:'Cormorant Garamond',serif;font-size:1.35rem;color:var(--vx-gold-d);text-align:right;white-space:nowrap}
.vx-dark .vx-bv{color:var(--vx-gold)}
/* KPI tiles */
.vx-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--vx-line);border:1px solid var(--vx-line)}
.vx-kpi{background:var(--vx-bg);padding:1.2rem 1rem;display:flex;flex-direction:column;gap:.35rem}
.vx-kv{font-family:'Cormorant Garamond',serif;font-size:2.3rem;line-height:1;color:var(--vx-gold-d)}
.vx-dark .vx-kv{color:var(--vx-gold)}
.vx-kl{font-size:.8rem;line-height:1.4;color:var(--vx-txt)}
/* Rings (SVG donut, circumference 100) */
.vx-rings{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1.2rem;text-align:center}
.vx-ring svg{width:112px;height:112px;transform:rotate(-90deg);display:block;margin:0 auto .5rem}
.vx-rt{fill:none;stroke:var(--vx-line);stroke-width:3.2}
.vx-rf{fill:none;stroke:var(--vx-gold-d);stroke-width:3.2;stroke-linecap:butt;transition:stroke-dasharray 1.2s cubic-bezier(.2,.7,.2,1)}
.vx-rv{display:block;font-family:'Cormorant Garamond',serif;font-size:1.6rem;color:var(--vx-ink);line-height:1}
.vx-rl{display:block;font-size:.8rem;margin-top:.3rem;line-height:1.4}
/* Step flow */
.vx-flow{list-style:none;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:1.4rem;margin:0;padding:0;counter-reset:vxs}
.vx-flow li{position:relative;background:var(--vx-bg);border:1px solid var(--vx-gold);padding:1rem .9rem;font-size:.86rem;line-height:1.45;transition:opacity .6s,transform .6s;transition-delay:calc(var(--i,0)*110ms)}
.vx-flow li::before{counter-increment:vxs;content:counter(vxs);display:block;font-family:'Cormorant Garamond',serif;font-size:1.9rem;line-height:1;color:var(--vx-gold-d);margin-bottom:.4rem}
.vx-flow li strong{display:block;color:var(--vx-ink);font-size:.95rem;margin-bottom:.25rem}
.vx-flow li:not(:last-child)::after{content:'';position:absolute;right:-1.05rem;top:50%;width:0;height:0;border:7px solid transparent;border-left:9px solid var(--vx-gold);transform:translateY(-50%)}
.vx-flow.vx-flow-4{grid-auto-columns:minmax(0,1fr)}
/* Timeline */
.vx-tl{list-style:none;margin:0;padding:0 0 0 1.6rem;position:relative}
.vx-tl::before{content:'';position:absolute;left:.42rem;top:.4rem;bottom:.4rem;width:2px;background:linear-gradient(var(--vx-gold),var(--vx-line))}
.vx-tl li{position:relative;padding:0 0 1.3rem;transition:opacity .6s,transform .6s;transition-delay:calc(var(--i,0)*110ms)}
.vx-tl li:last-child{padding-bottom:0}
.vx-tl li::before{content:'';position:absolute;left:-1.6rem;top:.35rem;width:.85rem;height:.85rem;border-radius:50%;background:var(--vx-bg);border:2px solid var(--vx-gold-d)}
.vx-when{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--vx-gold-d);font-weight:600}
.vx-tl strong{display:block;color:var(--vx-ink);font-size:1rem;margin:.1rem 0 .2rem}
.vx-tl p{margin:0!important;font-size:.88rem;color:var(--vx-txt)!important;line-height:1.5}
/* Comparison table */
.vx-tw{overflow-x:auto}
.vx-table{border-collapse:collapse;width:100%;font-size:.88rem;background:var(--vx-bg)}
.vx-table caption{caption-side:top;text-align:left;font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--vx-ink);padding-bottom:.8rem}
.vx-table th,.vx-table td{border-bottom:1px solid var(--vx-line);padding:.65rem .75rem;text-align:left;vertical-align:top}
.vx-table thead th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--vx-mut);font-weight:600;border-bottom:2px solid var(--vx-gold)}
.vx-table tbody th{font-weight:600;color:var(--vx-ink)}
.vx-table .vx-yes{color:#4f7a3a;font-weight:600}.vx-table .vx-no{color:#a2483a;font-weight:600}
/* Calculator */
.vx-calc{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:start}
.vx-calc label{display:block;font-size:.82rem;color:var(--vx-txt);margin-bottom:.9rem}
.vx-calc input{display:block;width:100%;margin-top:.3rem;padding:.55rem .7rem;font:inherit;font-size:1rem;border:1px solid var(--vx-line);background:var(--vx-bg2);color:var(--vx-ink)}
.vx-calc input:focus{outline:2px solid var(--vx-gold);outline-offset:1px}
.vx-out{background:linear-gradient(135deg,#1A1A1A,#2D2D2D);color:#fff;padding:1.3rem;display:grid;gap:.9rem}
.vx-out div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:1px solid #3a3a3a;padding-bottom:.6rem;font-size:.85rem;color:rgba(255,255,255,.75)}
.vx-out output{font-family:'Cormorant Garamond',serif;font-size:1.9rem;color:var(--vx-gold);line-height:1}
/* Scroll reveal only when JS + motion allowed (html.vx-js) */
.vx-js .vx-anim:not(.vx-in) .vx-bf{width:0}
.vx-js .vx-anim:not(.vx-in) .vx-rf{stroke-dasharray:0 100}
.vx-js .vx-anim:not(.vx-in) .vx-flow li,.vx-js .vx-anim:not(.vx-in) .vx-tl li{opacity:0;transform:translateY(14px)}
@media (max-width:760px){
.vx-panel{padding:1.2rem 1rem 1rem}
.vx-photo{padding:0 1.2rem 1rem}
.vx-bar{grid-template-columns:1fr 4.2rem;gap:.3rem .7rem}
.vx-bl{grid-column:1/-1}
.vx-flow{grid-auto-flow:row;gap:1.1rem}
.vx-flow li:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-1.05rem;border:7px solid transparent;border-top:9px solid var(--vx-gold);transform:translateX(-50%)}
.vx-calc{grid-template-columns:1fr}
.vx-kv{font-size:2rem}}
@media (prefers-reduced-motion:reduce){.vx *{transition:none!important}}
/* v2: neutralise article/blog base styles inside components */
.vx ol.vx-flow,.vx ol.vx-tl{margin:0;color:inherit}
.vx ol.vx-flow{padding:0}
.vx ol.vx-tl{padding:0 0 0 1.6rem}
.vx .vx-flow li,.vx .vx-tl li{margin-bottom:0}
.vx .vx-tl li{padding-bottom:1.3rem}.vx .vx-tl li:last-child{padding-bottom:0}
.vx p.vx-title{font-size:1.4rem;color:var(--vx-ink);line-height:1.25}
.vx .vx-tl p{font-size:.88rem;line-height:1.5}
.vx .vx-flow li strong,.vx .vx-tl strong{color:var(--vx-ink)}
.vx.vx-photo img{margin:0;border-radius:0;box-shadow:none}
.vx figcaption a{border-bottom:0}
.vx .vx-table{display:table}.vx .vx-table thead,.vx .vx-table tbody{display:table-row-group}.vx .vx-table tr{display:table-row}
.vx .vx-table th{background:none;color:var(--vx-ink)}.vx .vx-table thead th{color:var(--vx-mut)}
.vx-wrap{max-width:1200px;margin:0 auto;padding:64px 40px 0}.vx-wrap .vx{margin:0}
.vx-flow li a{color:inherit;text-decoration:none;border-bottom:1px solid var(--vx-gold)}
.vx-sub{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--vx-gold-d);font-weight:600;margin:1.2rem 0 .6rem}
.vx-sub:first-of-type{margin-top:0}
@media (max-width:760px){.vx-wrap{padding:40px 20px 0}}
.vx p.vx-sub{font-size:.72rem;line-height:1.4}
