/* ==========================================================================
   Vigentia Solutions · Design system V2 (global, todas las páginas)
   Tema hijo vigentia-child-theme 2.1.0 · una sola implementación compartida.

   Estructura
     1. TOKENS (único bloque con HEX; copiados literalmente de producción v1.3.0)
     2. Alias --vigentia-*, ámbitos oscuros, estados derivados con color-mix()
     3. Neutralización de Astra / Gutenberg (azul, foco, hover, formularios)
     4. Base tipográfica y layout
     5. Componentes (contrato §5): botones, badges, tarjetas, paquetes, tablas,
        timeline, FAQ, avisos, formularios, herramientas…
     6. Chrome: cabecera, mega-menú, menú móvil, pie, migas, CTA fijo
     7. Páginas de sistema (404, búsqueda) y utilidades
     8. prefers-reduced-motion
     9. Clases de plugin (formularios, estado, gracias) y grano
    10. V2.1 — legibilidad e imagen (hero con imagen, split/figure, flow, tabla, antes/después,
        lista con iconos, características, details, barras) — al final del archivo

   Regla: fuera del bloque TOKENS no existe ningún valor HEX. Los estados
   éxito/aviso/error se derivan con color-mix() de tokens existentes.
   Animaciones: solo transform/opacity.
   ========================================================================== */

/* TOKENS:START ------------------------------------------------------------ */
:root{
  --hueso:#F6F3EE; --paper:#FFFFFF; --paper-2:#EFEAE1;
  --obsidian:#0A0F14; --obsidian-2:#0E151B;
  --ink:#12191E; --ink-soft:#454F57; --muted:#78868E;
  --line:#E2DBCF; --line-strong:#CDC3B2;
  --accent:#A85718; --accent-text:#8C4712; --accent-soft:#E0925A; --accent-glow:#F0A867;
  --bg:var(--hueso); --surface:var(--paper); --surface-2:var(--paper-2);
  --on-dark:#F6F3EE; --on-dark-soft:#BEC7CD; --on-dark-muted:#7C8992; --line-dark:#232E37;
  --radius:16px; --radius-sm:10px;
  --shadow-sm:0 1px 2px rgba(10,15,20,.04),0 4px 12px -6px rgba(10,15,20,.10);
  --shadow:0 2px 4px rgba(10,15,20,.05),0 18px 44px -18px rgba(10,15,20,.20);
  --maxw:1180px;
  --serif:'Fraunces','Fraunces Fallback',Georgia,'Times New Roman',serif;
  --sans:'Space Grotesk','Space Grotesk Fallback',Arial,system-ui,-apple-system,Segoe UI,sans-serif;
  --step:clamp(4.75rem,10vw,9.5rem);
  --ease:cubic-bezier(.16,1,.3,1);
  /* Texto sobre el relleno --accent-text (botón primario): blanco en claro. */
  --on-accent:var(--paper);
  /* Sombras para ámbitos oscuros (mismas del tema oscuro de producción). */
  --shadow-on-dark-sm:0 1px 2px rgba(0,0,0,.4),0 6px 16px -8px rgba(0,0,0,.5);
  --shadow-on-dark:0 2px 6px rgba(0,0,0,.45),0 22px 50px -20px rgba(0,0,0,.7);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0A0F14; --surface:#0E151B; --surface-2:#121B22;
  --ink:#F1EEE8; --ink-soft:#C2CAD0; --muted:#8A97A0;
  --line:#212C35; --line-strong:#31404B;
  --accent:#E0925A; --accent-text:#EBA774; --accent-soft:#C9772E; --accent-glow:#F0A867;
  --paper:#0E151B; --paper-2:#121B22;
  --on-accent:var(--obsidian);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4),0 6px 16px -8px rgba(0,0,0,.5);
  --shadow:0 2px 6px rgba(0,0,0,.45),0 22px 50px -20px rgba(0,0,0,.7);
}}
:root[data-theme="dark"]{
  --bg:#0A0F14; --surface:#0E151B; --surface-2:#121B22;
  --ink:#F1EEE8; --ink-soft:#C2CAD0; --muted:#8A97A0;
  --line:#212C35; --line-strong:#31404B;
  --accent:#E0925A; --accent-text:#EBA774; --accent-soft:#C9772E; --accent-glow:#F0A867;
  --paper:#0E151B; --paper-2:#121B22;
  --on-accent:var(--obsidian);
  --shadow-sm:0 1px 2px rgba(0,0,0,.4),0 6px 16px -8px rgba(0,0,0,.5);
  --shadow:0 2px 6px rgba(0,0,0,.45),0 22px 50px -20px rgba(0,0,0,.7);
}
/* TOKENS:END -------------------------------------------------------------- */

/* ==========================================================================
   2. ALIAS --vigentia-*, ÁMBITOS OSCUROS Y ESTADOS DERIVADOS
   Los alias se declaran en :root Y en los ámbitos oscuros: así se re-resuelven
   con los tokens del ámbito (un var() se evalúa donde se declara).
   ========================================================================== */
:root,
.vg-section--dark,.vg-hero:not(.vg-hero--light),.vg-cta,.vg-footer,.vg-on-dark,.vg-mega__feature{
  --vigentia-hueso:var(--hueso); --vigentia-paper:var(--paper); --vigentia-paper-2:var(--paper-2);
  --vigentia-obsidian:var(--obsidian); --vigentia-obsidian-2:var(--obsidian-2);
  --vigentia-ink:var(--ink); --vigentia-ink-soft:var(--ink-soft); --vigentia-muted:var(--muted);
  --vigentia-line:var(--line); --vigentia-line-strong:var(--line-strong);
  --vigentia-accent:var(--accent); --vigentia-accent-text:var(--accent-text);
  --vigentia-accent-soft:var(--accent-soft); --vigentia-accent-glow:var(--accent-glow);
  --vigentia-bg:var(--bg); --vigentia-surface:var(--surface); --vigentia-surface-2:var(--surface-2);
  --vigentia-on-dark:var(--on-dark); --vigentia-on-dark-soft:var(--on-dark-soft);
  --vigentia-on-dark-muted:var(--on-dark-muted); --vigentia-line-dark:var(--line-dark);
  --vigentia-on-accent:var(--on-accent);
  --vigentia-radius:var(--radius); --vigentia-radius-sm:var(--radius-sm);
  --vigentia-shadow:var(--shadow); --vigentia-shadow-sm:var(--shadow-sm);
  --vigentia-maxw:var(--maxw); --vigentia-serif:var(--serif); --vigentia-sans:var(--sans);
  --vigentia-step:var(--step); --vigentia-ease:var(--ease);
  /* Estados: derivados por mezcla, nunca HEX nuevos. Siempre acompañados de icono y texto. */
  --vigentia-info:var(--ink-soft);
  --vigentia-success:color-mix(in srgb,var(--ink) 70%,var(--accent-glow));
  --vigentia-warn:color-mix(in srgb,var(--accent) 55%,var(--ink));
  --vigentia-error:var(--accent-text);
  --vigentia-focus:var(--accent);
  --vigentia-field-border:var(--muted);
}

/* Ámbito oscuro: remapea los tokens semánticos para que TODO componente
   (tarjetas, botones, formularios) funcione dentro de secciones obsidiana. */
.vg-section--dark,.vg-hero:not(.vg-hero--light),.vg-cta,.vg-footer,.vg-on-dark,.vg-mega__feature{
  --bg:var(--obsidian); --surface:var(--obsidian-2); --surface-2:var(--obsidian-2);
  --paper:var(--obsidian-2); --paper-2:var(--obsidian-2);
  --ink:var(--on-dark); --ink-soft:var(--on-dark-soft); --muted:var(--on-dark-muted);
  --line:var(--line-dark); --line-strong:var(--on-dark-muted);
  --accent:var(--accent-glow); --accent-text:var(--accent-glow); --accent-soft:var(--accent-glow);
  --on-accent:var(--obsidian);
  --shadow-sm:var(--shadow-on-dark-sm); --shadow:var(--shadow-on-dark);
  color:var(--ink);
}

/* Iconos SVG por máscara (currentColor/background). Sin '#' dentro de las URIs. */
:root{
  --vg-i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E");
  --vg-i-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 7.5v.01'/%3E%3C/svg%3E");
  --vg-i-warn:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 2.8 19.5h18.4L12 3.5Z'/%3E%3Cpath d='M12 10v4.5M12 17.2v.01'/%3E%3C/svg%3E");
  --vg-i-error:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m9 9 6 6M15 9l-6 6'/%3E%3C/svg%3E");
  --vg-i-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --vg-i-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  /* Grano de producción (feTurbulence) en toda sección oscura: SVG en línea, 160 px, opacidad baja, sin imágenes externas. */
  --vg-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E");
  --vg-gutter:clamp(1.25rem,4vw,2.75rem);
  --vg-header-h:4.25rem;
  --vg-gap:clamp(1rem,2.2vw,1.75rem);
  --vg-tap:2.75rem;
}

/* ==========================================================================
   3. NEUTRALIZACIÓN DE ASTRA / GUTENBERG (sin azul, foco y hover de marca)
   ========================================================================== */
:root:root{--ast-global-color-0:var(--accent);--ast-global-color-1:var(--accent-text)}

body.vg-site,body.vg-site #page,body.vg-site #content,body.vg-site .site-content{background-color:var(--bg);color:var(--ink)}
/* Respaldo defensivo: si algún hook de Astra imprimiera su cabecera/pie, no se ve. */
body.vg-site #masthead,body.vg-site #colophon,body.vg-site .ast-above-header-wrap,
body.vg-site #page>.skip-link,body.vg-site .ast-mobile-popup-drawer{display:none!important}

a{color:var(--accent-text);text-decoration-thickness:.08em;text-underline-offset:.2em}
a:hover,a:focus,a:active{color:var(--ink)}
.vg a:where(:not([class])){color:var(--accent-text)}
.vg a:where(:not([class])):hover{color:var(--ink)}

/* Botones de Astra y Gutenberg → tokens de marca */
.wp-block-button .wp-block-button__link,.ast-button,.ast-custom-button,
input[type="button"],input[type="submit"],input[type="reset"],
.wp-block-search__button,.wp-block-file__button{
  background-color:var(--accent-text);color:var(--on-accent);border-color:var(--accent-text);
  border-radius:var(--radius-sm);
}
.wp-block-button .wp-block-button__link:hover,.wp-block-button .wp-block-button__link:focus,
.ast-button:hover,.ast-button:focus,.ast-custom-button:hover,.ast-custom-button:focus,
input[type="button"]:hover,input[type="button"]:focus,
input[type="submit"]:hover,input[type="submit"]:focus,
input[type="reset"]:hover,input[type="reset"]:focus,
.wp-block-search__button:hover,.wp-block-search__button:focus{
  background-color:var(--ink);color:var(--bg);border-color:var(--ink);
}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus{background:transparent;color:var(--accent-text);border-color:var(--accent)}
.wp-block-button .wp-block-button__link:focus-visible,.ast-button:focus-visible,
input[type="submit"]:focus-visible,input[type="button"]:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px}

/* Campos de formulario genéricos (Astra) → tokens; los vg-input afinan abajo */
input[type="text"],input[type="email"],input[type="url"],input[type="password"],
input[type="search"],input[type="number"],input[type="tel"],input[type="date"],
input[type="datetime-local"],input[type="month"],input[type="time"],input[type="week"],
textarea,select{
  background-color:var(--surface);color:var(--ink);border-color:var(--muted);
}
input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,
input[type="search"]:focus,input[type="number"]:focus,input[type="tel"]:focus,input[type="date"]:focus,
input[type="datetime-local"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,
textarea:focus,select:focus{
  background-color:var(--surface);color:var(--ink);border-color:var(--accent);
  outline:2.5px solid var(--accent);outline-offset:1px;box-shadow:none;
}
::placeholder{color:var(--ink-soft);opacity:1}
::selection{background:var(--accent-text);color:var(--on-accent)}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:4px}

/* Plantilla lienzo y home: secciones a sangre, sin contenedor Astra */
body.page-template-vg-canvas .ast-container,body.vg-canvas .ast-container,
body.page-template-vg-canvas #content>.ast-container,body.home #content>.ast-container{
  max-width:none;padding:0;display:block;margin:0;
}
body.page-template-vg-canvas #primary,body.vg-canvas #primary,body.home #primary,
body.page-template-vg-canvas .site-content,body.vg-canvas .site-content{
  margin:0;padding:0;width:100%;max-width:none;
}
body.vg-canvas .ast-separate-container,body.vg-canvas.ast-separate-container{background-color:var(--bg)}

/* ==========================================================================
   4. BASE TIPOGRÁFICA Y LAYOUT
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--vg-header-h) + 1rem)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.62;
  letter-spacing:-.004em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%}
img{height:auto}
p{margin:0}

h1,h2,h3,h4,h5,h6,
.vg h1,.vg h2,.vg h3,.vg h4,.vg h5,.vg h6,
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5,.entry-content h6{
  font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:-.021em;text-wrap:balance;
  color:var(--ink);
}
h1,.vg h1,.entry-content h1{font-size:clamp(2.25rem,1.4rem + 3.6vw,4rem);line-height:1.04}
h2,.vg h2,.entry-content h2{font-size:clamp(1.75rem,1.2rem + 2.2vw,2.75rem);line-height:1.08}
h3,.vg h3,.entry-content h3{font-size:clamp(1.3rem,1.1rem + .9vw,1.75rem)}
h4,.vg h4,.entry-content h4{font-size:clamp(1.125rem,1.05rem + .4vw,1.375rem)}
h5,.vg h5,.entry-content h5{font-size:1.0625rem}
h6,.vg h6,.entry-content h6{font-family:var(--sans);font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}

.vg{color:var(--ink);overflow-x:clip}
.vg :where(h1,h2,h3,h4,h5,h6){overflow-wrap:break-word}

.vg-skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--accent-text);color:var(--on-accent);
  padding:.75rem 1.1rem;border-radius:0 0 var(--radius-sm) 0;font-weight:700;text-decoration:none}
.vg-skip:focus{left:0;color:var(--on-accent)}
.vg-sr,.vg-sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Layout */
.vg-wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--vg-gutter)}
.vg-section{padding-block:var(--step);background:var(--bg);color:var(--ink)}
.vg-section--tight{padding-block:clamp(2.5rem,5vw,4.5rem)}
.vg-section--alt{background:var(--surface-2)}
.vg-section--dark{background:var(--obsidian);border-block:1px solid var(--line-dark)}
.vg-grid{display:grid;gap:var(--vg-gap);grid-template-columns:minmax(0,1fr)}
.vg-stack>*+*{margin-top:var(--vg-stack,1.5rem)}
.vg-prose{max-width:68ch}
.vg-prose>*+*{margin-top:1.1em}
.vg-prose ul,.vg-prose ol{padding-left:1.25em}
.vg-prose li+li{margin-top:.4em}
.vg-split{display:grid;gap:clamp(1.5rem,4vw,3.5rem);grid-template-columns:minmax(0,1fr);align-items:center}
@media (min-width:768px){
  .vg-grid--2,.vg-grid--3,.vg-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
  .vg-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .vg-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .vg-split{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
}
.vg-section__head{max-width:62ch;margin-bottom:clamp(1.75rem,4vw,3rem)}
.vg-section__head>*+*{margin-top:1rem}

/* Tipografía utilitaria */
.vg-eyebrow{font-family:var(--sans);font-weight:700;font-size:.78rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--accent-text);display:inline-flex;align-items:center;gap:.65rem;line-height:1.3}
.vg-eyebrow::before{content:"";width:1.7rem;height:2px;background:var(--accent);display:inline-block;border-radius:2px;flex:none}
.vg-display{font-family:var(--serif);font-weight:600;font-size:clamp(2.6rem,6.6vw,5.6rem);line-height:1.02;letter-spacing:-.025em;text-wrap:balance}
.vg-h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.75rem,1.2rem + 2.2vw,2.75rem);line-height:1.08;letter-spacing:-.021em;text-wrap:balance}
.vg-h3{font-family:var(--serif);font-weight:600;font-size:clamp(1.3rem,1.1rem + .9vw,1.75rem);line-height:1.15;letter-spacing:-.018em}
.vg-lead{font-size:clamp(1.08rem,1rem + .5vw,1.3rem);line-height:1.6;color:var(--ink-soft);max-width:58ch}
.vg-muted{color:var(--ink-soft)}
.vg-kicker{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}

/* ==========================================================================
   5. COMPONENTES
   ========================================================================== */

/* ---- Botones ------------------------------------------------------------ */
.vg-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;position:relative;
  min-height:var(--vg-tap);padding:.72rem 1.3rem;border:1px solid transparent;border-radius:11px;
  font-family:var(--sans);font-weight:700;font-size:.97rem;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;
  background:transparent;color:var(--ink);box-shadow:none;
  transition:transform .18s var(--ease),box-shadow .2s,background-color .18s,color .18s,border-color .18s}
.vg-btn::after{content:none}
.vg-btn--lg{min-height:3.4rem;padding:.98rem 1.75rem;font-size:1.05rem}
.vg-btn--block{display:flex;width:100%}
.vg-btn--primary,.vg-btn--primary:visited{background:var(--accent-text);color:var(--on-accent);border-color:var(--accent-text)}
.vg-btn--primary:hover,.vg-btn--primary:focus{background:var(--accent-text);color:var(--on-accent);border-color:var(--accent-text);
  transform:translateY(-2px);box-shadow:0 12px 28px -12px var(--accent)}
.vg-btn--primary:active{transform:translateY(0);box-shadow:none;background:color-mix(in srgb,var(--accent-text) 82%,var(--ink));color:var(--on-accent)}
.vg-btn--ghost,.vg-btn--ghost:visited{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.vg-btn--ghost:hover,.vg-btn--ghost:focus{background:transparent;color:var(--accent-text);border-color:var(--accent);transform:translateY(-2px)}
.vg-btn--ghost:active{transform:translateY(0);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-text)}
.vg-btn--link,.vg-btn--link:visited{background:transparent;color:var(--accent-text);padding-inline:.25rem;min-height:var(--vg-tap);border-color:transparent;
  text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:.08em}
.vg-btn--link:hover,.vg-btn--link:focus{background:transparent;color:var(--ink);border-color:transparent}
.vg-btn--link:active{color:var(--ink);transform:none}
.vg-btn:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:11px}
.vg-btn[disabled],.vg-btn[aria-disabled="true"],.vg-btn:disabled:hover{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;pointer-events:none}
.vg-btn.is-loading,.vg-btn[aria-busy="true"]{pointer-events:none;cursor:progress}
.vg-btn.is-loading::before,.vg-btn[aria-busy="true"]::before{content:"";width:1em;height:1em;flex:none;border-radius:50%;
  border:2px solid currentColor;border-right-color:transparent;animation:vg-spin .7s linear infinite}
.vg-btn.is-success{border-color:var(--vigentia-success)}
.vg-btn.is-error{border-color:var(--vigentia-error)}
.vg-actions{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center}
@keyframes vg-spin{to{transform:rotate(360deg)}}

/* ---- Badges y etiquetas de evidencia ------------------------------------- */
.vg-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .65rem;border-radius:999px;border:1px solid var(--line-strong);
  font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.4;color:var(--ink);background:var(--surface)}
.vg-badge--scan{border-style:dashed}
.vg-badge--sprint{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.vg-badge--partner{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.vg-badge--controla{border-color:var(--accent);color:var(--accent-text)}
.vg-badge--optimiza{background:var(--surface-2);border-color:var(--ink-soft)}
.vg-badge--cumple{background:color-mix(in srgb,var(--ink) 8%,var(--surface));border-color:var(--ink)}
.vg-badge--startups{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:var(--accent);color:var(--ink)}
.vg-tag{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .6rem;border-radius:6px;border:1px solid var(--line-strong);
  font-size:.74rem;font-weight:700;letter-spacing:.04em;line-height:1.4;color:var(--ink)}
.vg-tag::before{content:"";width:.9em;height:.9em;flex:none;background:currentColor;-webkit-mask:var(--vg-i-info) center/contain no-repeat;mask:var(--vg-i-info) center/contain no-repeat}
.vg-tag--verificado{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent-text)}
.vg-tag--verificado::before{-webkit-mask-image:var(--vg-i-check);mask-image:var(--vg-i-check)}
.vg-tag--referencia{background:var(--surface-2)}
.vg-tag--simulacion{border-style:dashed;background:transparent;font-style:italic}

/* ---- Tarjetas (SolutionCard / SectorCard / ContentCard) ------------------- */
.vg-card{position:relative;display:flex;flex-direction:column;gap:.85rem;padding:clamp(1.25rem,2.4vw,1.85rem);
  background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .2s}
.vg-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.vg-card__eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-text)}
.vg-card__title{font-family:var(--serif);font-weight:600;font-size:clamp(1.3rem,1.1rem + .8vw,1.65rem);line-height:1.14;letter-spacing:-.018em;margin:0}
.vg-card__text{color:var(--ink-soft)}
.vg-card__list{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;color:var(--ink-soft);font-size:.96rem}
.vg-card__list li{position:relative;padding-left:1.15rem}
.vg-card__list li::before{content:"";position:absolute;left:0;top:.72em;width:.5rem;height:2px;background:var(--accent);border-radius:2px}
.vg-card__reveal{margin:0;padding-top:.75rem;border-top:1px dashed var(--line-strong);font-size:.93rem;font-weight:600;color:var(--ink)}
.vg-card__cta{margin-top:auto;display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--accent-text);text-decoration:none;min-height:var(--vg-tap)}
.vg-card__cta::before{content:"";width:1.05em;height:1.05em;order:2;background:currentColor;-webkit-mask:var(--vg-i-arrow) center/contain no-repeat;mask:var(--vg-i-arrow) center/contain no-repeat;transition:transform .25s var(--ease)}
.vg-card__cta::after{content:"";position:absolute;inset:0;border-radius:var(--radius)}
.vg-card__cta:hover,.vg-card__cta:focus{color:var(--ink);text-decoration:underline;text-underline-offset:.25em}
.vg-card:hover .vg-card__cta::before{transform:translateX(4px)}
.vg-card__cta:focus-visible{outline:none}
.vg-card__cta:focus-visible::after{outline:2.5px solid var(--accent);outline-offset:3px}
/* La línea de entregable se revela (opacity/transform, sin saltos de layout) solo con
   puntero fino; en táctil y por teclado (focus-within) está siempre accesible. */
@media (hover:hover) and (pointer:fine){
  .vg-card--solution .vg-card__reveal,.vg-card--sector .vg-card__reveal{opacity:0;transform:translateY(6px);transition:opacity .3s var(--ease),transform .3s var(--ease)}
  .vg-card--solution:hover .vg-card__reveal,.vg-card--solution:focus-within .vg-card__reveal,
  .vg-card--sector:hover .vg-card__reveal,.vg-card--sector:focus-within .vg-card__reveal{opacity:1;transform:none}
}
.vg-card--sector{background:var(--surface-2)}

/* ---- PackageCard (lo genera el plugin) ------------------------------------ */
.vg-pkg{display:flex;flex-direction:column;gap:1rem;padding:clamp(1.25rem,2.4vw,1.85rem);background:var(--surface);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .3s var(--ease),border-color .2s}
.vg-pkg:hover,.vg-pkg:focus-within{box-shadow:var(--shadow);border-color:var(--line-strong)}
.vg-pkg__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}
.vg-pkg__title{font-family:var(--serif);font-weight:600;font-size:clamp(1.3rem,1.1rem + .9vw,1.7rem);line-height:1.12;margin:0}
.vg-pkg__problem{color:var(--ink-soft)}
.vg-pkg__meta{display:grid;gap:.6rem;margin:0;padding:1rem 0;border-block:1px solid var(--line)}
.vg-pkg__meta>div{display:grid;gap:.15rem}
.vg-pkg__meta dt{font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.vg-pkg__meta dd{margin:0;font-weight:600}
.vg-pkg__cols{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
.vg-pkg__incl,.vg-pkg__excl{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;font-size:.95rem}
.vg-pkg__incl li,.vg-pkg__excl li{position:relative;padding-left:1.5rem}
.vg-pkg__incl li::before,.vg-pkg__excl li::before{content:"";position:absolute;left:0;top:.2em;width:1.05rem;height:1.05rem;background:var(--accent-text);
  -webkit-mask:var(--vg-i-check) center/contain no-repeat;mask:var(--vg-i-check) center/contain no-repeat}
.vg-pkg__excl{color:var(--ink-soft)}
.vg-pkg__excl li::before{background:var(--ink-soft);-webkit-mask-image:var(--vg-i-error);mask-image:var(--vg-i-error)}
.vg-pkg__needs{font-size:.92rem;color:var(--ink-soft)}
.vg-pkg__cta{margin-top:auto;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.vg-grid>.vg-pkg--compact{align-self:start}
.vg-pkg--compact{gap:.65rem;padding:1.1rem 1.25rem}
.vg-pkg--compact .vg-pkg__cols,.vg-pkg--compact .vg-deliverables,.vg-pkg--compact .vg-pkg__needs{display:none}
@media (min-width:768px){.vg-pkg__cols{grid-template-columns:repeat(2,minmax(0,1fr))}.vg-pkg__meta{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---- DeliverablesList ----------------------------------------------------- */
.vg-deliverables{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.vg-deliverables>li{position:relative;padding-left:1.8rem}
.vg-deliverables>li::before{content:"";position:absolute;left:0;top:.18em;width:1.2rem;height:1.2rem;background:var(--accent-text);
  -webkit-mask:var(--vg-i-check) center/contain no-repeat;mask:var(--vg-i-check) center/contain no-repeat}

/* ---- PackageComparison: tabla ≥768px, tarjetas en móvil -------------------- */
.vg-compare__table{display:none;width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;table-layout:fixed}
.vg-compare__table caption{text-align:left;padding:0 0 .75rem;font-weight:700;caption-side:top}
.vg-compare__table th,.vg-compare__table td{padding:.9rem 1.1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:break-word}
.vg-compare__table thead th{background:var(--surface-2);font-family:var(--serif);font-size:1.1rem;border-bottom:1px solid var(--line-strong)}
.vg-compare__table tbody th{font-weight:700;color:var(--ink-soft);width:22%;font-size:.88rem}
.vg-compare__table tr:last-child>*{border-bottom:0}
.vg-compare__cards{display:grid;gap:var(--vg-gap)}
.vg-compare__cards .vg-pkg{box-shadow:none}
@media (min-width:768px){.vg-compare__table{display:table}.vg-compare__cards{display:none}}

/* ---- MetricEvidence / ProofCard ------------------------------------------- */
.vg-proof{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem 1.4rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.vg-proof__value{font-family:var(--serif);font-weight:600;font-size:clamp(2rem,1.4rem + 2vw,3rem);line-height:1;letter-spacing:-.02em;color:var(--ink)}
.vg-proof__label{color:var(--ink-soft);font-size:.95rem}
.vg-proof .vg-tag{align-self:flex-start;margin-top:.25rem}

/* ---- IllustrativeCase ------------------------------------------------------ */
.vg-case{display:flex;flex-direction:column;gap:1rem;padding:clamp(1.25rem,2.4vw,1.85rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.vg-case--ilustrativo{border-style:dashed;border-color:var(--line-strong);background:color-mix(in srgb,var(--ink) 2%,var(--surface))}
.vg-case--documentado{border-style:solid;border-color:var(--accent)}
.vg-case__flag{display:inline-flex;align-items:center;gap:.5rem;align-self:flex-start;margin:0;padding:.25rem .7rem;border-radius:6px;
  background:var(--ink);color:var(--bg);font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.vg-case__flag::before{content:"";width:1em;height:1em;background:currentColor;-webkit-mask:var(--vg-i-info) center/contain no-repeat;mask:var(--vg-i-info) center/contain no-repeat}
.vg-case__grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
.vg-case__col{padding:1rem;border-radius:var(--radius-sm);background:var(--surface-2)}
.vg-case__label{font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text);margin:0 0 .35rem}
@media (min-width:768px){.vg-case__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---- ProcessTimeline ------------------------------------------------------- */
.vg-timeline{list-style:none;margin:0;padding:0;display:grid;gap:1.75rem;position:relative;counter-reset:vgstep}
.vg-timeline__step{position:relative;padding-left:3.6rem;min-height:3rem}
.vg-timeline__step::before{content:"";position:absolute;left:1.25rem;top:2.6rem;bottom:-1.75rem;width:2px;background:var(--line-strong)}
.vg-timeline__step:last-child::before{display:none}
.vg-timeline__num{position:absolute;left:0;top:0;width:2.6rem;height:2.6rem;display:grid;place-items:center;border-radius:50%;
  border:2px solid var(--line-strong);background:var(--surface);color:var(--ink);font-family:var(--serif);font-weight:600;
  transition:background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease)}
.vg-timeline__step h3{font-size:clamp(1.15rem,1.05rem + .5vw,1.4rem);margin:.15rem 0 .35rem}
.vg-timeline__step p{color:var(--ink-soft);max-width:44ch}
.vg-timeline__step.is-active .vg-timeline__num{background:var(--accent-text);border-color:var(--accent-text);color:var(--on-accent);transform:scale(1.06)}
.vg-timeline__step.is-active::before{background:var(--accent)}
.vg-timeline--2{--vg-steps:2}.vg-timeline--4{--vg-steps:4}.vg-timeline--5{--vg-steps:5}
@media (min-width:768px){
  .vg-timeline:not(.vg-timeline--5){grid-template-columns:repeat(var(--vg-steps,3),minmax(0,1fr));gap:var(--vg-gap)}
  .vg-timeline:not(.vg-timeline--5) .vg-timeline__step{padding:3.6rem 0 0}
  .vg-timeline:not(.vg-timeline--5) .vg-timeline__step::before{left:2.6rem;right:calc(var(--vg-gap) * -1);top:1.2rem;bottom:auto;width:auto;height:2px}
  .vg-timeline:not(.vg-timeline--5) .vg-timeline__step:last-child::before{display:block;right:0;background:transparent}
}
@media (min-width:1024px){
  .vg-timeline--5{grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--vg-gap)}
  .vg-timeline--5 .vg-timeline__step{padding:3.6rem 0 0}
  .vg-timeline--5 .vg-timeline__step::before{left:2.6rem;right:calc(var(--vg-gap) * -1);top:1.2rem;bottom:auto;width:auto;height:2px}
  .vg-timeline--5 .vg-timeline__step:last-child::before{display:block;right:0;background:transparent}
}

/* ---- StartupStageSelector --------------------------------------------------- */
.vg-stages{display:grid;gap:.6rem;grid-template-columns:minmax(0,1fr);margin-block:clamp(1.25rem,3vw,2rem)}
.vg-stages__item{display:flex;flex-direction:column;gap:.15rem;min-height:var(--vg-tap);padding:.9rem 1.1rem;border:1px solid var(--line-strong);
  border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);text-decoration:none;font-weight:700;
  transition:border-color .2s,background-color .2s,transform .25s var(--ease)}
.vg-stages__item small{font-weight:400;color:var(--ink-soft);font-size:.88rem}
.vg-stages__item:hover,.vg-stages__item:focus{border-color:var(--accent);color:var(--ink);transform:translateY(-2px)}
.vg-stages__item[aria-current="page"]{background:var(--accent-text);border-color:var(--accent-text);color:var(--on-accent)}
.vg-stages__item[aria-current="page"] small{color:var(--on-accent)}
@media (min-width:768px){.vg-stages{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---- FAQAccordion ------------------------------------------------------------ */
.vg-faq{display:grid;gap:.6rem}
.vg-faq__item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);transition:border-color .2s}
.vg-faq__item[open]{border-color:var(--line-strong)}
.vg-faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.25rem;padding:.9rem 1.2rem;cursor:pointer;
  list-style:none;font-weight:700;color:var(--ink)}
.vg-faq__item summary::-webkit-details-marker{display:none}
.vg-faq__item summary::after{content:"";flex:none;width:1.1rem;height:1.1rem;background:var(--accent-text);
  -webkit-mask:var(--vg-i-chevron) center/contain no-repeat;mask:var(--vg-i-chevron) center/contain no-repeat;transition:transform .3s var(--ease)}
.vg-faq__item[open] summary::after{transform:rotate(180deg)}
.vg-faq__item summary:hover{color:var(--accent-text)}
.vg-faq__item summary:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}
.vg-faq__a{padding:0 1.2rem 1.1rem;color:var(--ink-soft);max-width:68ch}
.vg-faq__a>*+*{margin-top:.75em}

/* ---- RelatedServices / ContentCard / AuthorBlock ------------------------------ */
.vg-related{padding:1.4rem 1.5rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}
.vg-related h2{font-size:1.25rem;margin-bottom:.9rem}
.vg-related ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.vg-related a{display:inline-flex;align-items:center;min-height:var(--vg-tap);padding:.35rem .95rem;border:1px solid var(--line-strong);border-radius:999px;
  background:var(--surface);color:var(--ink);font-weight:600;font-size:.94rem;text-decoration:none;transition:border-color .2s,color .2s}
.vg-related a:hover,.vg-related a:focus{border-color:var(--accent);color:var(--accent-text)}

.vg-content-card{position:relative;display:flex;flex-direction:column;gap:.6rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.vg-content-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.vg-content-card__media{aspect-ratio:16/9;background:var(--surface-2);overflow:hidden}
.vg-content-card__media img{width:100%;height:100%;object-fit:cover}
.vg-content-card__body{display:flex;flex-direction:column;gap:.55rem;padding:1.1rem 1.3rem 1.3rem;flex:1}
.vg-content-card__meta{display:flex;flex-wrap:wrap;gap:.35rem .8rem;font-size:.8rem;color:var(--ink-soft)}
.vg-content-card__title{font-family:var(--serif);font-weight:600;font-size:1.25rem;line-height:1.2;margin:0}
.vg-content-card__title a{color:var(--ink);text-decoration:none}
.vg-content-card__title a::after{content:"";position:absolute;inset:0}
.vg-content-card__title a:hover,.vg-content-card__title a:focus{color:var(--accent-text);text-decoration:underline;text-underline-offset:.2em}
.vg-content-card__title a:focus-visible{outline:none}
.vg-content-card__title a:focus-visible::after{outline:2.5px solid var(--accent);outline-offset:-3px;border-radius:var(--radius)}
.vg-content-card__excerpt{color:var(--ink-soft);font-size:.96rem}

.vg-author{display:flex;gap:1rem;align-items:flex-start;padding:1.25rem 1.4rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.vg-author__avatar{flex:none;width:3.25rem;height:3.25rem;display:grid;place-items:center;border-radius:50%;background:var(--accent-text);color:var(--on-accent);
  font-family:var(--serif);font-weight:600;font-size:1.15rem}
.vg-author__name{font-weight:700;margin:0}
.vg-author__role,.vg-author__bio{color:var(--ink-soft);font-size:.94rem;margin:.15rem 0 0}

/* ---- DynamicCTA ----------------------------------------------------------------- */
.vg-cta{position:relative;isolation:isolate;overflow:hidden;display:grid;gap:1.1rem;padding:clamp(2rem,5vw,3.5rem);border-radius:var(--radius);
  background:var(--obsidian);color:var(--ink);border:1px solid var(--line-dark)}
.vg-cta::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60% 80% at 90% 0%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 65%)}
.vg-cta__title{font-family:var(--serif);font-weight:600;font-size:clamp(1.75rem,1.2rem + 2.2vw,2.75rem);line-height:1.08;color:var(--ink);max-width:22ch;margin:0}
.vg-cta p{color:var(--ink-soft);max-width:58ch}

/* ---- Notification ---------------------------------------------------------------- */
.vg-note{--n:var(--vigentia-info);position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;align-items:start;
  padding:.95rem 1.1rem;border:1px solid color-mix(in srgb,var(--n) 45%,var(--line));border-left:4px solid var(--n);border-radius:var(--radius-sm);
  background:color-mix(in srgb,var(--n) 7%,var(--surface));color:var(--ink)}
.vg-note::before{content:"";width:1.3rem;height:1.3rem;margin-top:.1rem;background:var(--n);
  -webkit-mask:var(--vg-i-info) center/contain no-repeat;mask:var(--vg-i-info) center/contain no-repeat}
.vg-note>*{grid-column:2;margin:0}
.vg-note strong{color:var(--n);display:block}
.vg-note--info{--n:var(--vigentia-info)}
.vg-note--warn{--n:var(--vigentia-warn)}
.vg-note--warn::before{-webkit-mask-image:var(--vg-i-warn);mask-image:var(--vg-i-warn)}
.vg-note--success{--n:var(--vigentia-success)}
.vg-note--success::before{-webkit-mask-image:var(--vg-i-check);mask-image:var(--vg-i-check)}
.vg-note--error{--n:var(--vigentia-error)}
.vg-note--error::before{-webkit-mask-image:var(--vg-i-error);mask-image:var(--vg-i-error)}

/* ---- EmptyState / ErrorState / Skeleton ------------------------------------------- */
.vg-empty,.vg-error{display:grid;justify-items:center;gap:.9rem;text-align:center;padding:clamp(2rem,5vw,3.5rem) 1.5rem;border:1px dashed var(--line-strong);
  border-radius:var(--radius);background:var(--surface);color:var(--ink)}
.vg-empty>*,.vg-error>*{max-width:46ch}
.vg-empty::before,.vg-error::before{content:"";width:2.6rem;height:2.6rem;background:var(--ink-soft);-webkit-mask:var(--vg-i-info) center/contain no-repeat;mask:var(--vg-i-info) center/contain no-repeat}
.vg-error{border-style:solid;border-color:color-mix(in srgb,var(--vigentia-error) 50%,var(--line))}
.vg-error::before{background:var(--vigentia-error);-webkit-mask-image:var(--vg-i-error);mask-image:var(--vg-i-error)}
.vg-skeleton{display:block;min-height:1rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);animation:vg-pulse 1.4s ease-in-out infinite}
.vg-skeleton--line{height:1rem;margin-bottom:.6rem}
.vg-skeleton--block{height:6rem}
@keyframes vg-pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* ---- Formularios (los pinta el plugin con estas clases) ---------------------------- */
.vg-form{display:grid;gap:1.25rem;max-width:44rem}
.vg-field{display:grid;gap:.4rem;min-width:0}
.vg-label{font-weight:700;font-size:.95rem;color:var(--ink);line-height:1.3}
.vg-label .vg-req{color:var(--accent-text)}
input.vg-input,textarea.vg-textarea,select.vg-select{width:100%;min-height:3rem;padding:.75rem .95rem;border:1.5px solid var(--vigentia-field-border);border-radius:var(--radius-sm);
  background:var(--surface);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.4;box-shadow:none;
  transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
textarea.vg-textarea{min-height:8rem;resize:vertical}
select.vg-select{padding-right:2.6rem;background-image:var(--vg-i-chevron);background-repeat:no-repeat;background-position:right .9rem center;background-size:1rem;
  background-color:var(--surface)}
input.vg-input:hover,textarea.vg-textarea:hover,select.vg-select:hover{border-color:var(--ink-soft)}
input.vg-input:focus,textarea.vg-textarea:focus,select.vg-select:focus{border-color:var(--accent);outline:2.5px solid var(--accent);outline-offset:1px;background-color:var(--surface);color:var(--ink)}
input.vg-input:disabled,textarea.vg-textarea:disabled,select.vg-select:disabled{opacity:.55;cursor:not-allowed;background-color:var(--surface-2)}
input.vg-input[aria-invalid="true"],textarea.vg-textarea[aria-invalid="true"],select.vg-select[aria-invalid="true"],.vg-field.is-invalid .vg-input,.vg-field.is-invalid .vg-textarea,.vg-field.is-invalid .vg-select,.vg-field--error .vg-input,.vg-field--error .vg-textarea,.vg-field--error .vg-select{
  border-color:var(--vigentia-error);border-width:2px}
.vg-field.is-valid input.vg-input,.vg-field.is-valid textarea.vg-textarea,.vg-field.is-valid select.vg-select{border-color:var(--vigentia-success);border-width:2px}
.vg-field__hint{font-size:.88rem;color:var(--ink-soft)}
.vg-field__error{display:flex;gap:.45rem;align-items:flex-start;font-size:.9rem;font-weight:600;color:var(--vigentia-error)}
.vg-field__error::before{content:"";flex:none;width:1.05rem;height:1.05rem;margin-top:.12rem;background:currentColor;-webkit-mask:var(--vg-i-error) center/contain no-repeat;mask:var(--vg-i-error) center/contain no-repeat}
.vg-check{display:flex;gap:.7rem;align-items:flex-start;min-height:var(--vg-tap);padding-block:.2rem;font-size:.95rem}
.vg-check input[type="checkbox"],.vg-check input[type="radio"]{flex:none;width:1.35rem;height:1.35rem;margin:.1rem 0 0;accent-color:var(--accent-text)}
.vg-check input:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}
.vg-form fieldset{border:0;margin:0;padding:0;min-width:0}
.vg-form legend{padding:0;font-weight:700}
/* Resumen: contenedor neutro de revisión (plugin) y variante de errores (--error). */
.vg-form__summary{padding:1rem 1.2rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2)}
.vg-form__summary:focus{outline:2.5px solid var(--accent);outline-offset:3px}
.vg-form__summary--error{border:2px solid var(--vigentia-error);background:color-mix(in srgb,var(--vigentia-error) 6%,var(--surface))}
.vg-form__summary h2,.vg-form__summary h3{font-size:1.05rem;margin-bottom:.5rem}
.vg-form__summary--error h2,.vg-form__summary--error h3{color:var(--vigentia-error)}
.vg-form__summary ul{margin:0;padding-left:1.2rem}
.vg-form__summary a{color:var(--ink)}
.vg-form.is-loading{opacity:.75;pointer-events:none}
.vg-honey,.vg-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.vg-progress{list-style:none;margin:0 0 1.5rem;padding:0;display:flex;gap:.5rem}
.vg-progress>li{flex:1;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.4rem .5rem;font-size:.82rem;font-weight:700;color:var(--ink-soft)}
.vg-progress>li::before{content:"";grid-column:1/-1;height:5px;border-radius:3px;background:var(--line-strong)}
.vg-progress>li>span:only-of-type{grid-column:1/-1}
.vg-progress>li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vg-progress__num{display:grid;place-items:center;width:1.55rem;height:1.55rem;border:2px solid var(--ink-soft);border-radius:50%;font-size:.78rem;line-height:1}
.vg-progress>li.is-done::before,.vg-progress>li.is-current::before,.vg-progress>li[aria-current="step"]::before{background:var(--accent-text)}
.vg-progress>li.is-done .vg-progress__num,.vg-progress>li.is-current .vg-progress__num,.vg-progress>li[aria-current="step"] .vg-progress__num{background:var(--accent-text);border-color:var(--accent-text);color:var(--on-accent)}
.vg-progress>li.is-current,.vg-progress>li[aria-current="step"]{color:var(--ink)}
/* ≤480 px: número (centrado) en todos los pasos y solo la etiqueta del paso actual; las demás siguen disponibles para lectores. */
@media (max-width:480px){
  .vg-progress>li{position:relative}
  .vg-progress>li.is-current,.vg-progress>li[aria-current="step"]{flex:2.8}
  .vg-progress>li>span:not(.vg-progress__num){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .vg-progress>li.is-current>span:not(.vg-progress__num),.vg-progress>li[aria-current="step"]>span:not(.vg-progress__num){position:static;width:auto;height:auto;margin:0;clip:auto;overflow:hidden;text-overflow:ellipsis}
  .vg-progress>li>.vg-progress__num{display:grid;place-items:center;padding:0;text-overflow:clip}
}

/* ---- Herramientas (el plugin pinta el interior; aquí el contenedor) ------------------ */
.vg-tool{padding:clamp(1.25rem,3vw,2.25rem);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.vg-tool--selector,.vg-tool--calc,.vg-tool--compare,.vg-tool--sim,.vg-tool--explorer{display:grid;gap:1.25rem}
.vg-tool [role="tablist"]{display:flex;flex-wrap:wrap;gap:.5rem}
.vg-tool [role="tab"]{min-height:var(--vg-tap);padding:.5rem 1rem;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-weight:700;cursor:pointer}
.vg-tool [role="tab"]:hover,.vg-tool [role="tab"]:focus{border-color:var(--accent);background:transparent;color:var(--accent-text)}
.vg-tool [role="tab"][aria-selected="true"]{background:var(--accent-text);border-color:var(--accent-text);color:var(--on-accent)}
.vg-tool output,.vg-tool [data-result]{font-family:var(--serif);font-weight:600}

/* ---- HeroEditorial -------------------------------------------------------------------- */
.vg-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--obsidian);color:var(--ink)}
.vg-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(60% 55% at 82% 12%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 62%),
             linear-gradient(180deg,transparent 55%,var(--bg) 100%)}
.vg-hero>.vg-wrap{position:relative;z-index:2;padding-block:clamp(3.5rem,9vw,7rem) clamp(3.5rem,7vw,5.5rem)}
.vg-hero__eyebrow{color:var(--accent-text)}
.vg-hero__title{font-family:var(--serif);font-weight:600;font-size:clamp(2.45rem,1.5rem + 4.6vw,5.6rem);line-height:1.02;letter-spacing:-.025em;max-width:16ch;margin:1.4rem 0 0;color:var(--ink);text-wrap:balance}
.vg-hero__sub{margin-top:1.6rem;max-width:54ch;font-size:clamp(1.08rem,1rem + .6vw,1.32rem);line-height:1.6;color:var(--ink-soft)}
.vg-hero__cta{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;margin-top:2.2rem}
.vg-hero .vg-kicker{margin-top:clamp(1.75rem,3vw,2.5rem)}
.vg-hero__scroll{display:inline-flex;align-items:center;gap:.6rem;margin-top:2.5rem;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none}
.vg-hero__scroll::after{content:"";width:1rem;height:1rem;background:currentColor;-webkit-mask:var(--vg-i-chevron) center/contain no-repeat;mask:var(--vg-i-chevron) center/contain no-repeat;animation:vg-nudge 2s ease-in-out infinite}
.vg-hero__scroll:hover,.vg-hero__scroll:focus{color:var(--accent-text)}
@keyframes vg-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
.vg-hero__art{display:none;position:absolute;z-index:0;pointer-events:none}
/* Red de nodos: solo ≥1024 px y solo en la columna derecha (40 %). El texto se limita a la columna izquierda para que nunca se solapen.
   En <1024 px no se pinta (legibilidad garantizada). */
@media (min-width:1024px){
  .vg-hero__art{display:block;top:0;bottom:0;right:0;left:auto;width:40%;opacity:.9;-webkit-mask-image:linear-gradient(90deg,transparent 0%,black 22%);mask-image:linear-gradient(90deg,transparent 0%,black 22%)}
  .vg-hero__eyebrow,.vg-hero__title,.vg-hero__sub,.vg-hero__cta,.vg-hero .vg-kicker{--vg-hero-col:calc(60vw - max(0px,(100vw - var(--maxw)) / 2) - var(--vg-gutter) - 1.75rem);max-width:min(var(--vg-hero-max,100%),var(--vg-hero-col))}
  .vg-hero__title{--vg-hero-max:16ch}
  .vg-hero__sub{--vg-hero-max:54ch}
}
.vg-hero__art svg{display:block;width:100%;height:100%}
.vg-nodes__n{fill:var(--accent-glow);will-change:transform}
.vg-nodes__n--hub{fill:var(--accent-soft)}
.vg-nodes__l{stroke:var(--accent-soft);stroke-width:1;fill:none;opacity:0}
.vg-hero--light{background:var(--bg);color:var(--ink)}
.vg-hero--light>.vg-wrap{padding-block:clamp(1.75rem,3.5vw,3rem) clamp(1.25rem,2.5vw,2rem)}
.vg-hero--light .vg-hero__title{margin-top:.9rem}
.vg-hero--light .vg-hero__sub{margin-top:1rem}
.vg-hero--light .vg-hero__cta{margin-top:1.5rem}
.vg-hero--light::after{background:radial-gradient(60% 55% at 82% 12%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 62%)}
.vg-hero--light .vg-nodes__n{fill:var(--accent)}
.vg-hero--light .vg-nodes__l{stroke:var(--accent)}

/* ==========================================================================
   6. CHROME: cabecera, mega-menú, menú móvil, pie, migas, CTA fijo
   ========================================================================== */
.vg-header{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 88%,transparent);
  -webkit-backdrop-filter:blur(12px) saturate(1.1);backdrop-filter:blur(12px) saturate(1.1);border-bottom:1px solid var(--line);color:var(--ink);
  transition:box-shadow .3s var(--ease)}
body.admin-bar .vg-header{top:32px}
@media (max-width:782px){body.admin-bar .vg-header{top:46px}}
.vg-header.is-compact{box-shadow:var(--shadow-sm)}
.vg-header__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--vg-header-h)}
.vg-header__brand{display:flex;align-items:center;flex:none;min-width:0}
.vg-header__brand .custom-logo-link{display:flex;align-items:center}
.vg-header__brand img.custom-logo{display:block;width:auto;height:2.25rem;max-width:11rem;object-fit:contain}
.vg-header__brand{transform-origin:left center;transition:transform .3s var(--ease)}
.vg-header.is-compact .vg-header__brand{transform:scale(.88)}
.vg-logo-text{font-family:var(--serif);font-weight:600;font-size:1.35rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;min-height:var(--vg-tap)}
.vg-logo-text i{font-style:italic;color:var(--accent-text)}
.vg-logo-text:hover,.vg-logo-text:focus{color:var(--ink)}
.vg-header__actions{display:flex;align-items:center;gap:.55rem;flex:none}
.vg-header__cta{display:none;white-space:nowrap}
@media (min-width:1024px) and (max-width:1199px){.vg-header__cta{padding-inline:.9rem;font-size:.88rem}.vg-header__bar{gap:.5rem}.vg-header__actions{gap:.4rem}}
.vg-nav{display:none}

/* Botón-control compartido (tema, menú móvil, disclosure). Estados completos para
   ganar a los estilos globales de <button> de Astra. */
.vg-ctl{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-width:var(--vg-tap);min-height:var(--vg-tap);padding:0 .6rem;
  border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--ink);font-family:var(--sans);font-weight:600;
  font-size:.95rem;line-height:1.2;cursor:pointer;box-shadow:none;transition:border-color .18s,color .18s,background-color .18s}
.vg-ctl:hover,.vg-ctl:focus,.vg-ctl:active{background:transparent;color:var(--accent-text);border-color:var(--line-strong);box-shadow:none}
.vg-ctl:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}
.vg-ctl svg{width:1.2rem;height:1.2rem;flex:none}
.vg-theme-toggle{border-color:var(--line-strong)}
.vg-theme-toggle .vg-i-moon{display:none}
.vg-theme-toggle[aria-pressed="true"] .vg-i-sun{display:none}
.vg-theme-toggle[aria-pressed="true"] .vg-i-moon{display:block}
.vg-menu-btn[aria-expanded="true"]{border-color:var(--accent);color:var(--accent-text)}
.vg-menu-btn .vg-i-close{display:none}
.vg-menu-btn[aria-expanded="true"] .vg-i-open{display:none}
.vg-menu-btn[aria-expanded="true"] .vg-i-close{display:block}
.vg-ctl .vg-chev{width:.9rem;height:.9rem;transition:transform .25s var(--ease)}
.vg-ctl[aria-expanded="true"] .vg-chev{transform:rotate(180deg)}

@media (min-width:1024px){
  .vg-header__cta{display:inline-flex}
  .vg-menu-btn{display:none}
  .vg-nav{display:block;flex:1 1 0;min-width:0;align-self:stretch;margin-inline:clamp(.25rem,1.2vw,1rem)}
  .vg-nav__list{display:flex;align-items:stretch;justify-content:center;height:100%;gap:clamp(0rem,.3vw,.15rem);list-style:none;margin:0;padding:0}
  .vg-nav__item{display:flex;align-items:center}
  .vg-nav__item.has-sub{position:relative}
  .vg-nav__link,.vg-nav__trigger{display:inline-flex;align-items:center;gap:.35rem;min-height:var(--vg-tap);padding:0 clamp(.4rem,.95vw,.75rem);border:0;border-radius:var(--radius-sm);
    background:transparent;color:var(--ink-soft);font-family:var(--sans);font-weight:600;font-size:clamp(.86rem,.7rem + .22vw,.94rem);line-height:1.2;text-decoration:none;cursor:pointer;box-shadow:none;
    position:relative;transition:color .18s}
  .vg-nav__link::after,.vg-nav__trigger::after{content:"";position:absolute;left:clamp(.4rem,.95vw,.75rem);right:clamp(.4rem,.95vw,.75rem);bottom:.35rem;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
  .vg-nav__link:hover,.vg-nav__link:focus,.vg-nav__trigger:hover,.vg-nav__trigger:focus,.vg-nav__trigger:active,
  .vg-nav__item.is-open>.vg-nav__trigger,.vg-nav__item.is-open>.vg-nav__link{background:transparent;color:var(--ink);box-shadow:none}
  .vg-nav__link:hover::after,.vg-nav__trigger:hover::after,.vg-nav__item.is-open>.vg-nav__trigger::after,
  .vg-nav__link[aria-current]::after,.vg-nav__trigger[aria-current]::after{transform:scaleX(1)}
  .vg-nav__link[aria-current],.vg-nav__trigger[aria-current]{color:var(--ink)}
  .vg-nav__link:focus-visible,.vg-nav__trigger:focus-visible{outline:2.5px solid var(--accent);outline-offset:-2px}
  .vg-nav__trigger .vg-chev{width:.85rem;height:.85rem;transition:transform .25s var(--ease)}
  .vg-nav__trigger[aria-expanded="true"] .vg-chev{transform:rotate(180deg)}
  .vg-nav__caret{margin-left:-.5rem;min-width:2rem;padding:0 .35rem}
  .vg-nav__item.has-sub>.vg-nav__link{padding-right:.4rem}

  /* Mega-menú: panel a ancho completo bajo la cabecera */
  .vg-mega{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .vg-nav__item.is-open>.vg-mega{display:block}
  .vg-mega__inner{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:2rem;padding-block:1.75rem 2rem}
  .vg-mega__all{display:inline-flex;align-items:center;min-height:var(--vg-tap);margin-top:.75rem;padding-inline:1rem;font-weight:700;color:var(--accent-text);text-decoration:underline;text-underline-offset:.25em}
  .vg-mega__all:hover,.vg-mega__all:focus{color:var(--ink)}
  .vg-mega__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 1rem}
  .vg-mega__link{display:block;height:100%;padding:.9rem 1rem;border-radius:var(--radius-sm);color:var(--ink);text-decoration:none;transition:background-color .18s}
  .vg-mega__link:hover,.vg-mega__link:focus{background:var(--surface-2);color:var(--ink)}
  .vg-mega__link[aria-current]{background:var(--surface-2)}
  .vg-mega__title{display:block;font-family:var(--serif);font-weight:600;font-size:1.15rem;line-height:1.2}
  .vg-mega__desc{display:block;margin-top:.2rem;font-size:.9rem;color:var(--ink-soft)}
  .vg-mega__feature{display:flex;flex-direction:column;justify-content:center;gap:.5rem;padding:1.4rem;border-radius:var(--radius);background:var(--obsidian);color:var(--ink);text-decoration:none;
    border:1px solid var(--line-dark);transition:transform .25s var(--ease),border-color .2s}
  .vg-mega__feature:hover,.vg-mega__feature:focus{background:var(--obsidian);color:var(--ink);border-color:var(--accent);transform:translateY(-2px)}
  .vg-mega__feature .vg-mega__title{color:var(--ink)}
  .vg-mega__feature .vg-mega__desc{color:var(--ink-soft)}
  .vg-mega__feature .vg-mega__go{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--accent-text)}
  .vg-mega__feature .vg-mega__go::after{content:"";width:1rem;height:1rem;background:currentColor;-webkit-mask:var(--vg-i-arrow) center/contain no-repeat;mask:var(--vg-i-arrow) center/contain no-repeat}

  /* Desplegable simple (Startups, Sectores, Recursos, Empresa) */
  .vg-sub{display:none;position:absolute;left:0;top:100%;min-width:17rem;margin:0;padding:.5rem;list-style:none;background:var(--bg);
    border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow)}
  .vg-nav__item.is-open>.vg-sub{display:block}
  .vg-sub a{display:block;padding:.65rem .85rem;border-radius:var(--radius-sm);color:var(--ink);font-weight:600;font-size:.94rem;text-decoration:none}
  .vg-sub a:hover,.vg-sub a:focus{background:var(--surface-2);color:var(--ink)}
  .vg-sub a[aria-current]{background:var(--surface-2)}
  .vg-sub small{display:block;font-weight:400;color:var(--ink-soft);font-size:.84rem}

  /* Sin JS: abre con foco/hover */
  html:not(.vg-js) .vg-nav__item:hover>.vg-mega,html:not(.vg-js) .vg-nav__item:focus-within>.vg-mega,
  html:not(.vg-js) .vg-nav__item:hover>.vg-sub,html:not(.vg-js) .vg-nav__item:focus-within>.vg-sub{display:block}
}
@media (min-width:1280px){.vg-nav__list{gap:.4rem}}

/* Menú móvil: panel bajo la cabecera con acordeones */
.vg-mobile-nav{position:fixed;left:0;right:0;top:var(--vg-header-h);bottom:0;z-index:59;overflow-y:auto;overscroll-behavior:contain;
  background:var(--bg);border-top:1px solid var(--line);padding:1rem var(--vg-gutter) 2rem}
body.admin-bar .vg-mobile-nav{top:calc(var(--vg-header-h) + 46px)}
.vg-mobile-nav[hidden]{display:none}
.vg-mobile-nav__list{list-style:none;margin:0;padding:0}
.vg-mobile-nav__list>li{border-bottom:1px solid var(--line)}
.vg-mobile-nav__toggle,.vg-mobile-nav__link{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:3.25rem;padding:.5rem .25rem;border:0;border-radius:0;
  background:transparent;color:var(--ink);font-family:var(--serif);font-weight:600;font-size:1.25rem;text-align:left;text-decoration:none;cursor:pointer;box-shadow:none}
.vg-mobile-nav__toggle:hover,.vg-mobile-nav__toggle:focus,.vg-mobile-nav__toggle:active,.vg-mobile-nav__link:hover,.vg-mobile-nav__link:focus{background:transparent;color:var(--accent-text);box-shadow:none}
.vg-mobile-nav__toggle:focus-visible,.vg-mobile-nav__link:focus-visible{outline:2.5px solid var(--accent);outline-offset:-2px}
.vg-mobile-nav__toggle svg{width:1.1rem;height:1.1rem;transition:transform .25s var(--ease)}
.vg-mobile-nav__toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.vg-mobile-nav__toggle[aria-current],.vg-mobile-nav__link[aria-current]{color:var(--accent-text)}
.vg-mobile-nav__panel{margin:0;padding:0 0 .75rem .25rem;list-style:none}
.vg-mobile-nav__panel[hidden]{display:none}
.vg-mobile-nav__panel a{display:block;padding:.6rem .5rem;min-height:var(--vg-tap);border-radius:var(--radius-sm);color:var(--ink);font-weight:600;text-decoration:none}
.vg-mobile-nav__panel a small{display:block;font-weight:400;color:var(--ink-soft);font-size:.86rem}
.vg-mobile-nav__panel a:hover,.vg-mobile-nav__panel a:focus{background:var(--surface-2);color:var(--ink)}
.vg-mobile-nav__panel a[aria-current]{color:var(--accent-text)}
.vg-mobile-nav__cta{margin-top:1.25rem}
html.vg-nav-open{overflow:hidden}
@media (min-width:1024px){.vg-mobile-nav{display:none!important}html.vg-nav-open{overflow:visible}}

/* ---- Pie (5 zonas) ---- */
.vg-footer{background:var(--obsidian);color:var(--ink);border-top:1px solid var(--line-dark);padding-block:clamp(3rem,6vw,5rem) 2rem}
.vg-footer a{color:var(--ink-soft);text-decoration:none}
.vg-footer a:hover,.vg-footer a:focus{color:var(--accent-text);text-decoration:underline;text-underline-offset:.2em}
.vg-footer__grid{display:grid;gap:2.25rem 2rem;grid-template-columns:minmax(0,1fr)}
.vg-footer__zone h2,.vg-footer__zone h3{font-family:var(--sans);font-size:.78rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ink);margin:0 0 1rem}
.vg-footer__zone h3+ul{margin-top:0}
.vg-footer__zone ul{list-style:none;margin:0 0 1.25rem;padding:0;display:grid;gap:.15rem}
.vg-footer__zone li a{display:inline-flex;align-items:center;min-height:2.5rem;font-size:.97rem}
.vg-footer__brand .vg-logo-text{font-size:1.5rem}
.vg-footer__brand img.custom-logo{height:2.4rem;width:auto;max-width:12rem;object-fit:contain}
.vg-footer__manifesto{margin-top:1rem;max-width:34ch;color:var(--ink-soft);font-size:.98rem}
.vg-footer__social{display:flex;gap:.5rem;margin-top:1.25rem;list-style:none;padding:0}
.vg-footer__social a{display:grid;place-items:center;width:var(--vg-tap);height:var(--vg-tap);border:1px solid var(--line-dark);border-radius:var(--radius-sm)}
.vg-footer__social svg{width:1.15rem;height:1.15rem;fill:currentColor}
.vg-footer__zone,.vg-footer__brand{min-width:0}
.vg-footer__contact a,.vg-footer__contact address{overflow-wrap:anywhere}
.vg-footer__contact address{font-style:normal;display:grid;gap:.15rem;color:var(--ink-soft);font-size:.97rem}
.vg-footer__legal{display:grid;gap:.9rem;margin-top:clamp(2rem,4vw,3.5rem);padding-top:1.5rem;border-top:1px solid var(--line-dark);font-size:.86rem;color:var(--ink-soft)}
.vg-footer__legal ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
.vg-footer__legal a,.vg-footer__legal button{display:inline-flex;align-items:center;min-height:2.5rem}
.vg-linkbtn{padding:0;border:0;border-radius:0;background:transparent;color:var(--ink-soft);font:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer;box-shadow:none}
.vg-linkbtn:hover,.vg-linkbtn:focus,.vg-linkbtn:active{background:transparent;color:var(--accent-text);box-shadow:none}
@media (min-width:768px){.vg-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vg-footer__brand{grid-column:1/-1}}
@media (min-width:1024px){
  .vg-footer__grid{grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr))}
  .vg-footer__brand{grid-column:auto}
  .vg-footer__legal{grid-template-columns:1fr auto;align-items:center}
}

/* ---- Migas de pan ---- */
.vg-breadcrumbs{background:var(--bg);border-bottom:1px solid var(--line)}
.vg-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.1rem .45rem;list-style:none;margin:0;padding:.55rem 0;font-size:.86rem;color:var(--ink-soft)}
.vg-breadcrumbs li{display:inline-flex;align-items:center;gap:.45rem}
.vg-breadcrumbs li+li::before{content:"";width:.4rem;height:.4rem;border-top:2px solid var(--ink-soft);border-right:2px solid var(--ink-soft);transform:rotate(45deg);opacity:.7}
.vg-breadcrumbs a{display:inline-flex;align-items:center;min-height:1.75rem;color:var(--ink-soft);text-decoration:underline;text-underline-offset:.2em}
.vg-breadcrumbs a:hover,.vg-breadcrumbs a:focus{color:var(--accent-text)}
.vg-breadcrumbs [aria-current="page"]{color:var(--ink);font-weight:600}

/* ---- CTA fijo móvil ---- */
.vg-sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:55;transform:translateY(calc(var(--vg-sticky-offset,0px) * -1));transition:transform .2s ease;padding:.7rem var(--vg-gutter) calc(.7rem + env(safe-area-inset-bottom));
  background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
@media (max-width:767px){body.vg-has-sticky{padding-bottom:calc(4.6rem + var(--vg-sticky-offset,0px) + env(safe-area-inset-bottom))}}
@media (prefers-reduced-motion:reduce){.vg-sticky-cta{transition:none}}
@media (min-width:768px){.vg-sticky-cta{display:none}}

/* ==========================================================================
   7. PÁGINAS DE SISTEMA, BÚSQUEDA, REVELADO
   ========================================================================== */
.vg-search{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;max-width:38rem}
.vg-search .vg-field{flex:1 1 14rem}
.vg-system{padding-block:clamp(3rem,8vw,6rem)}
.vg-system__links{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr);list-style:none;margin:0;padding:0}
.vg-system__links a{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.25rem;padding:.75rem 1.1rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);
  background:var(--surface);color:var(--ink);font-weight:700;text-decoration:none;transition:border-color .2s,transform .25s var(--ease)}
.vg-system__links a::after{content:"";width:1rem;height:1rem;background:var(--accent-text);-webkit-mask:var(--vg-i-arrow) center/contain no-repeat;mask:var(--vg-i-arrow) center/contain no-repeat}
.vg-system__links a:hover,.vg-system__links a:focus{border-color:var(--accent);color:var(--ink);transform:translateY(-2px)}
@media (min-width:768px){.vg-system__links{grid-template-columns:repeat(2,minmax(0,1fr))}}
.vg-pagination .nav-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}
.vg-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:var(--vg-tap);min-height:var(--vg-tap);padding:0 .8rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);text-decoration:none;font-weight:700}
.vg-pagination .page-numbers.current,.vg-pagination .page-numbers:hover{background:var(--accent-text);border-color:var(--accent-text);color:var(--on-accent)}

/* Revelado al scroll: solo se oculta si el JS del tema está activo (clase vg-js). */
.vg-js .vg-rv{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.vg-js .vg-rv.is-in{opacity:1;transform:none}
.vg-rv[data-d="1"]{transition-delay:.08s}.vg-rv[data-d="2"]{transition-delay:.16s}.vg-rv[data-d="3"]{transition-delay:.24s}

/* ==========================================================================
   8. MOVIMIENTO REDUCIDO: todo visible, estático
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .vg-js .vg-rv{opacity:1;transform:none}
  .vg-card:hover,.vg-content-card:hover,.vg-btn--primary:hover,.vg-btn--ghost:hover,.vg-stages__item:hover,.vg-mega__feature:hover{transform:none}
  .vg-card--solution .vg-card__reveal,.vg-card--sector .vg-card__reveal{opacity:1;transform:none}
}

/* Ajustes finos de chrome */
.vg-footer .vg-logo-text{color:var(--ink)}
.vg-footer .vg-logo-text:hover,.vg-footer .vg-logo-text:focus{color:var(--ink);text-decoration:none}
.vg-system .vg-stack{--vg-stack:1.75rem}

/* ==========================================================================
   9. CLASES DE PLUGIN (formularios, estado, gracias) Y GRANO
   ========================================================================== */

/* Grano en toda sección oscura (capa de fondo; no añade nodos ni peticiones). */
.vg-section--dark,.vg-hero:not(.vg-hero--light),.vg-cta,.vg-footer,.vg-mega__feature{
  background-image:var(--vg-grain);background-size:160px 160px;background-repeat:repeat}

/* ---- Formularios del plugin ---- */
.vg-formwrap{max-width:46rem;padding:clamp(1.25rem,3vw,2rem);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.vg-formwrap .vg-form{max-width:none}
.vg-form__required{font-size:.86rem;color:var(--ink-soft)}
.vg-form__legal{font-size:.9rem}
.vg-form__legal ul{margin:.4rem 0;padding-left:1.1rem}
.vg-form__legal p+ul,.vg-form__legal ul+p{margin-top:.4rem}
.vg-form__nav{margin-top:.75rem;justify-content:space-between}
.vg-label__req{color:var(--accent-text);font-weight:700}
.vg-field--group{border:0;margin:0;padding:0;min-width:0}
.vg-field--group>legend,.vg-field--group>.vg-label{margin-bottom:.4rem;font-weight:700}
.vg-field--error{padding-left:.9rem;border-left:3px solid var(--vigentia-error)}
.vg-field--error>.vg-label,.vg-field--error .vg-check{color:var(--ink)}
.vg-check__text{font-weight:600;color:var(--ink)}
.vg-check__desc{display:block;font-size:.88rem;font-weight:400;color:var(--ink-soft)}
.vg-choices{display:grid;gap:.6rem}
.vg-choices .vg-check{margin:0;padding:.7rem .9rem;border:1.5px solid var(--vigentia-field-border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .2s,background-color .2s}
.vg-choices .vg-check:hover{border-color:var(--ink-soft)}
.vg-choices .vg-check:focus-within{outline:2.5px solid var(--accent);outline-offset:2px}
.vg-choices .vg-check:has(input:checked){border-color:var(--accent-text);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.vg-choices .vg-check input:focus-visible{outline:none}
@media (min-width:768px){.vg-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}
.vg-tabs{display:flex;flex-wrap:wrap;gap:.5rem}
.vg-tabs .vg-check{flex:1 1 auto;min-height:var(--vg-tap);align-items:center;padding:.4rem 1rem;border-radius:999px}
.vg-tab{display:inline-flex;align-items:center;min-height:var(--vg-tap);padding:.4rem 1rem;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink);font-weight:700;cursor:pointer}
.vg-tab:hover,.vg-tab:focus{background:transparent;color:var(--accent-text);border-color:var(--accent)}
.vg-tab[aria-selected="true"],.vg-tab.is-active{background:var(--accent-text);border-color:var(--accent-text);color:var(--on-accent)}
.vg-step{display:grid;gap:1.1rem;min-width:0}
.vg-step[hidden]{display:none}
.vg-step__title{float:left;width:100%;margin:0 0 1rem;font-family:var(--serif);font-weight:600;font-size:clamp(1.3rem,1.1rem + .9vw,1.7rem);line-height:1.15;color:var(--ink)}
.vg-step__title+*{clear:both}
.vg-summary{display:grid;gap:.5rem;margin:0}
.vg-summary__row{display:grid;grid-template-columns:minmax(0,1fr);gap:.1rem .75rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.vg-summary__row:last-child{border-bottom:0}
.vg-summary__row dt{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.vg-summary__value{margin:0;font-weight:600;overflow-wrap:anywhere}
.vg-summary__edit{margin:0}
.vg-summary__edit a,.vg-summary__edit button{display:inline-flex;align-items:center;min-height:var(--vg-tap);padding:0 .25rem;border:0;background:transparent;color:var(--accent-text);font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:.2em;cursor:pointer;box-shadow:none}
.vg-summary__edit a:hover,.vg-summary__edit a:focus,.vg-summary__edit button:hover,.vg-summary__edit button:focus{background:transparent;color:var(--ink)}
@media (min-width:768px){.vg-summary__row{grid-template-columns:12rem minmax(0,1fr) auto;align-items:center}}

/* ---- Estado de la solicitud y gracias ---- */
.vg-status{display:grid;gap:clamp(1.5rem,3vw,2.5rem);max-width:52rem}
.vg-status__head>*+*{margin-top:.75rem}
.vg-status__ref{font-family:var(--sans);letter-spacing:.04em;color:var(--accent-text);overflow-wrap:anywhere}
.vg-status__meta{display:grid;gap:.75rem;margin:0;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.vg-status__meta>div{display:grid;gap:.1rem}
.vg-status__meta dt{font-size:.76rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.vg-status__meta dd{margin:0;font-weight:600}
@media (min-width:768px){.vg-status__meta{grid-template-columns:repeat(3,minmax(0,1fr))}}
.vg-status__messages>*+*{margin-top:1rem}
.vg-status__list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.vg-status__message{padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.vg-status__message--equipo{border-left:4px solid var(--accent);background:var(--surface-2)}
.vg-status__who{margin:0 0 .3rem;font-size:.86rem;color:var(--ink-soft)}
.vg-status__who strong{color:var(--ink)}
.vg-status__add{padding:clamp(1.1rem,2.5vw,1.6rem);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.vg-status__add>*+*{margin-top:1rem}
.vg-form--estado{max-width:none}
/* Línea de estado: hecho / actual / pendiente (siempre con texto accesible en el marcado) */
.vg-timeline--status{margin:0}
@media (min-width:768px){.vg-timeline.vg-timeline--status{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}
.vg-timeline--status .vg-timeline__step h3{font-size:1rem;font-family:var(--sans);font-weight:700}
.vg-timeline__step--done .vg-timeline__num{background:var(--accent-text);border-color:var(--accent-text);color:var(--on-accent)}
.vg-timeline__step--done::before{background:var(--accent)}
.vg-timeline__step--current .vg-timeline__num{background:var(--surface);border-color:var(--accent-text);border-width:3px;color:var(--accent-text);transform:scale(1.08)}
.vg-timeline__step--current h3{color:var(--accent-text)}
.vg-timeline__step--todo .vg-timeline__num{border-style:dashed;color:var(--ink-soft)}
.vg-timeline__step--todo h3{color:var(--ink-soft);font-weight:600}
.vg-gracias{display:grid;gap:1rem;max-width:46rem;padding:clamp(1.25rem,3vw,2rem);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.vg-gracias__ref{font-family:var(--serif);font-weight:600;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);letter-spacing:.02em;color:var(--accent-text);overflow-wrap:anywhere}
.vg-gracias__subject{color:var(--ink-soft)}

/* ---- Varios ---- */
.vg-content-card__text{color:var(--ink-soft);font-size:.96rem}
.vg-mega__main{min-width:0}

/* ==========================================================================
   10. V2.1 — LEGIBILIDAD E IMAGEN  (tema 2.1.0 · contrato 03-design-system/componentes-v2.1.md)
   --------------------------------------------------------------------------
   Componentes nuevos (§2.1–2.9), todos con prefijo vg-, sin JS (salvo <details> nativo):
     2.1 .vg-hero--media  (+ __grid, __body, __media)   hero con imagen: 2 columnas ≥1024 (4:3), imagen
                                                          debajo en <1024 (16:9). La imagen NO se anima (candidata a LCP).
     2.2 .vg-split--media (+ --reverse) · .vg-figure (+ __cap)   texto + imagen (3:2)
     2.3 .vg-flow (+ __step, __num, __title, __text)    flujo de pasos: horizontal ≥1024 con conector, vertical con línea en móvil
     2.4 .vg-table-wrap · .vg-table                     tabla de datos; <720 px apilada con td::before{content:attr(data-label)}
     2.5 .vg-ba (+ __col--before/--after, __title)      antes / después
     2.6 .vg-icon-list (+ --2col) · .vg-ico (+ --check|alert|clock|doc|chart|users|gear|shield|target|arrow|x)
                                                         iconos SVG (trazo 1,75) por mask-image con data URI, 20 px, currentColor
     2.7 .vg-features · .vg-feature (+ __title, __text) rejilla de características (1 · 2 · 3/4 columnas)
     2.8 .vg-more (+ __body)                            <details> con marcador propio y foco visible
     2.9 .vg-bars (+ __label, __val)                    barras: ancho = calc(var(--v) * 1%) (solo datos reales)
   Densidad tipográfica: párrafos de sección ≤ 68 ch (especificidad 0: cualquier regla de componente gana).
   PackageCard V2.1 (plugin vigentia-core 1.1.0): sin SKU visible, etiqueta única «Familia · Tipo», <details> con el alcance.

   Reglas: SOLO tokens existentes (sin HEX nuevos; el color de estado sale de --vigentia-warn / --accent-text).
   Contraste AA en ambos temas porque todo texto usa --ink / --ink-soft / --accent-text y los rellenos con texto
   usan --accent-text + --on-accent (ver 03-design-system/tokens-y-contraste.md). Foco visible 2,5 px --accent.
   Sin desbordes 360–1440 px (min-width:0 en hijos de rejilla). prefers-reduced-motion: no se añade ninguna animación.
   ========================================================================== */
:root{
  /* Iconos V2.1 (viewBox 24, stroke-width 1.75, sin '#' en las URI). Nombres propios: no pisan --vg-i-* de §2. */
  --vg-i2-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7'/%3E%3C/svg%3E");
  --vg-i2-alert:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5 2.8 19.5h18.4L12 3.5Z'/%3E%3Cpath d='M12 10v4.5M12 17.2v.01'/%3E%3C/svg%3E");
  --vg-i2-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
  --vg-i2-doc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5Z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h4'/%3E%3C/svg%3E");
  --vg-i2-chart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16M7 20v-7M12 20V5M17 20v-10'/%3E%3C/svg%3E");
  --vg-i2-users:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6'/%3E%3Ccircle cx='17.5' cy='9' r='2.4'/%3E%3Cpath d='M17 14.2c2.5.2 4.5 2.3 4.5 5'/%3E%3C/svg%3E");
  --vg-i2-gear:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3.3'/%3E%3Cpath d='M19.4 13.5a7.7 7.7 0 0 0 0-3l1.9-1.5-2-3.4-2.3.9a7.6 7.6 0 0 0-2.6-1.5L14 2.5h-4l-.4 2.5a7.6 7.6 0 0 0-2.6 1.5l-2.3-.9-2 3.4 1.9 1.5a7.7 7.7 0 0 0 0 3l-1.9 1.5 2 3.4 2.3-.9a7.6 7.6 0 0 0 2.6 1.5l.4 2.5h4l.4-2.5a7.6 7.6 0 0 0 2.6-1.5l2.3.9 2-3.4-1.9-1.5Z'/%3E%3C/svg%3E");
  --vg-i2-shield:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4.5 6v5.5c0 4.6 3.1 8.4 7.5 9.5 4.4-1.1 7.5-4.9 7.5-9.5V6L12 3Z'/%3E%3Cpath d='m9 12 2.2 2.2L15.5 10'/%3E%3C/svg%3E");
  --vg-i2-target:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1.2'/%3E%3C/svg%3E");
  --vg-i2-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --vg-i2-x:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E");
}

/* ---- Densidad tipográfica: medida de lectura ----------------------------------- */
:where(.vg-section p,.vg-prose p){max-width:68ch}
.vg-prose{line-height:1.65}

/* ---- 2.1 Hero con imagen ----------------------------------------------------------- */
.vg-hero__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1.75rem,4vw,3rem);align-items:center}
.vg-hero__body,.vg-hero__media{min-width:0}
.vg-hero--media .vg-hero__eyebrow,.vg-hero--media .vg-hero__title,.vg-hero--media .vg-hero__cta,.vg-hero--media .vg-kicker{max-width:none}
.vg-hero--media .vg-hero__title{font-size:clamp(2.2rem,1.4rem + 3.2vw,3.75rem);max-width:18ch}
.vg-hero--media .vg-hero__sub{max-width:54ch}
.vg-hero__media{margin:0;border-radius:var(--radius);overflow:hidden;background:var(--surface-2);border:1px solid var(--line);box-shadow:var(--shadow)}
.vg-hero__media img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
@media (min-width:1024px){
  .vg-hero__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vg-hero__media img{aspect-ratio:4/3}
}

/* ---- 2.2 Texto + imagen ------------------------------------------------------------- */
.vg-split>*{min-width:0}
.vg-figure{margin:0;min-width:0}
.vg-figure img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;
  border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line)}
.vg-figure__cap{margin-top:.65rem;max-width:none;font-size:.875rem;line-height:1.5;color:var(--ink-soft)}
.vg-split--media{align-items:center}
@media (min-width:1024px){
  .vg-split--media{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .vg-split--media.vg-split--reverse{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .vg-split--media.vg-split--reverse>.vg-figure{order:-1}
}

/* ---- 2.3 Flujo de pasos --------------------------------------------------------------- */
.vg-flow{list-style:none;margin:0;padding:0;display:grid;gap:1.75rem;grid-template-columns:minmax(0,1fr)}
.vg-flow__step{position:relative;min-width:0;padding-left:3.6rem;min-height:2.75rem}
.vg-flow__step::before{content:"";position:absolute;left:1.2rem;top:2.9rem;bottom:-1.75rem;width:2px;background:var(--line-strong)}
.vg-flow__step:last-child::before{display:none}
.vg-flow__num{position:absolute;left:0;top:0;width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:50%;
  background:var(--accent-text);color:var(--on-accent);font-family:var(--serif);font-weight:600;font-size:1.05rem;line-height:1}
.vg-flow .vg-flow__title{margin:.15rem 0 .35rem;font-family:var(--serif);font-weight:600;font-size:clamp(1.1rem,1.02rem + .4vw,1.3rem);line-height:1.2;letter-spacing:-.012em}
.vg-flow .vg-flow__text{margin:0;max-width:44ch;color:var(--ink-soft);font-size:.97rem;line-height:1.55}
@media (min-width:1024px){
  .vg-flow{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-columns:none;gap:var(--vg-gap)}
  .vg-flow__step{padding:3.6rem 0 0}
  .vg-flow__step::before{left:3.25rem;right:calc(var(--vg-gap) * -1 + .75rem);top:1.2rem;bottom:auto;width:auto;height:2px}
  .vg-flow__step:last-child::before{display:none}
}

/* ---- 2.4 Tabla de datos ------------------------------------------------------------------- */
.vg-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius)}
.vg-table-wrap:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px}
.vg-table{width:100%;border-collapse:collapse;font-size:.97rem;line-height:1.5;color:var(--ink)}
.vg-table caption{caption-side:top;text-align:left;padding:1rem 1.1rem .75rem;font-family:var(--serif);font-weight:600;font-size:1.15rem;line-height:1.2;color:var(--ink)}
.vg-table th,.vg-table td{padding:.8rem 1.1rem;text-align:left;vertical-align:top;border-top:1px solid var(--line);overflow-wrap:break-word}
.vg-table thead th{background:var(--surface-2);border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.vg-table tbody th{font-weight:700;color:var(--ink)}
.vg-table tbody td{color:var(--ink-soft)}
.vg-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--ink) 3%,var(--surface))}
@media (max-width:719.98px){
  .vg-table-wrap{overflow:visible;background:transparent;border:0;border-radius:0}
  .vg-table,.vg-table tbody,.vg-table tr,.vg-table th,.vg-table td{display:block;width:100%}
  .vg-table caption{display:block;padding:0 0 .75rem}
  .vg-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .vg-table tbody tr{margin-bottom:1rem;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}
  .vg-table tbody tr:nth-child(even){background:var(--surface)}
  .vg-table tbody th{padding:.75rem 1rem;background:var(--surface-2);border-top:0}
  .vg-table td{padding:.6rem 1rem;border-top:1px solid var(--line)}
  .vg-table td[data-label]{display:grid;grid-template-columns:minmax(5.5rem,38%) minmax(0,1fr);column-gap:.9rem;align-items:baseline}
  .vg-table td[data-label]::before{content:attr(data-label);font-size:.76rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}
}

/* ---- 2.6 Iconos y lista con iconos (antes de 2.5 y 2.7, que los usan) ------------------------------- */
.vg-ico{--vg-ico:var(--vg-i2-check);display:inline-block;flex:none;width:20px;height:20px;background-color:currentColor;color:var(--accent-text);
  -webkit-mask:var(--vg-ico) center/contain no-repeat;mask:var(--vg-ico) center/contain no-repeat}
.vg-ico--check{--vg-ico:var(--vg-i2-check)}
.vg-ico--alert{--vg-ico:var(--vg-i2-alert);color:var(--vigentia-warn)}
.vg-ico--clock{--vg-ico:var(--vg-i2-clock)}
.vg-ico--doc{--vg-ico:var(--vg-i2-doc)}
.vg-ico--chart{--vg-ico:var(--vg-i2-chart)}
.vg-ico--users{--vg-ico:var(--vg-i2-users)}
.vg-ico--gear{--vg-ico:var(--vg-i2-gear)}
.vg-ico--shield{--vg-ico:var(--vg-i2-shield)}
.vg-ico--target{--vg-ico:var(--vg-i2-target)}
.vg-ico--arrow{--vg-ico:var(--vg-i2-arrow)}
.vg-ico--x{--vg-ico:var(--vg-i2-x);color:var(--vigentia-warn)}
ul.vg-icon-list,.vg-prose ul.vg-icon-list{list-style:none;margin-inline:0;margin-bottom:0;padding:0;display:grid;gap:.7rem;grid-template-columns:minmax(0,1fr)}
.vg-icon-list>li,.vg-prose .vg-icon-list>li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.7rem;align-items:start;margin:0;line-height:1.5;color:var(--ink)}
.vg-icon-list>li>.vg-ico{margin-top:.15em}
@media (min-width:720px){
  ul.vg-icon-list--2col{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.75rem}
}

/* ---- 2.5 Antes / después ------------------------------------------------------------------------------ */
.vg-ba{display:grid;gap:var(--vg-gap);grid-template-columns:minmax(0,1fr)}
.vg-ba__col{min-width:0;padding:clamp(1.1rem,2.4vw,1.6rem);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius)}
.vg-ba__col--before{background:var(--surface-2);border-style:dashed;border-color:var(--line-strong)}
.vg-ba__col--after{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.vg-ba .vg-ba__title{margin:0 0 .9rem;font-family:var(--sans);font-size:.8rem;font-weight:700;letter-spacing:.14em;line-height:1.3;text-transform:uppercase;color:var(--ink-soft)}
.vg-ba__col--after .vg-ba__title{color:var(--accent-text)}
@media (min-width:768px){.vg-ba{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---- 2.7 Rejilla de características ------------------------------------------------------------------------ */
.vg-features{display:grid;gap:var(--vg-gap);grid-template-columns:minmax(0,1fr)}
.vg-feature{display:grid;align-content:start;gap:.6rem;min-width:0;padding:clamp(1.1rem,2.2vw,1.5rem);background:var(--surface);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.vg-feature>.vg-ico{width:28px;height:28px}
.vg-features .vg-feature__title{margin:.2rem 0 0;font-family:var(--serif);font-weight:600;font-size:clamp(1.12rem,1.05rem + .4vw,1.3rem);line-height:1.2;letter-spacing:-.012em}
.vg-features .vg-feature__text{margin:0;max-width:none;color:var(--ink-soft);font-size:.97rem;line-height:1.55}
@media (min-width:640px){.vg-features{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){
  .vg-features{grid-template-columns:repeat(3,minmax(0,1fr))}
  .vg-features:has(>.vg-feature:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* ---- 2.8 Detalle plegable ----------------------------------------------------------------------------------- */
.vg-more{min-width:0;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-sm)}
.vg-more>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--vg-tap);padding:.65rem 1rem;cursor:pointer;
  list-style:none;font-weight:700;color:var(--accent-text)}
.vg-more>summary::-webkit-details-marker{display:none}
.vg-more>summary::marker{content:""}
.vg-more>summary::after{content:"";flex:none;width:1.1rem;height:1.1rem;background:currentColor;
  -webkit-mask:var(--vg-i-chevron) center/contain no-repeat;mask:var(--vg-i-chevron) center/contain no-repeat;transition:transform .3s var(--ease)}
.vg-more[open]>summary::after{transform:rotate(180deg)}
.vg-more>summary:hover{color:var(--ink)}
.vg-more>summary:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}
.vg-more[open]>summary{border-bottom:1px solid var(--line)}
.vg-more__body{display:grid;gap:1rem;padding:1rem;color:var(--ink-soft)}
.vg-more__body>*{margin:0}

/* ---- 2.9 Gráfico de barras ------------------------------------------------------------------------------------ */
.vg-bars{margin:0;padding:clamp(1.1rem,2.4vw,1.6rem);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius)}
.vg-bars>figcaption{margin:0 0 1rem;font-weight:700;color:var(--ink)}
.vg-bars>ul{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.vg-bars li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:1rem;row-gap:.4rem;align-items:baseline;margin:0}
.vg-bars li::before,.vg-bars li::after{content:"";grid-row:2;grid-column:1/-1;height:.65rem;border-radius:999px}
.vg-bars li::before{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}
.vg-bars li::after{width:min(100%,calc(var(--v,0) * 1%));justify-self:start;background:var(--accent)}
.vg-bars__label{min-width:0;color:var(--ink)}
.vg-bars__val{font-weight:700;color:var(--accent-text);white-space:nowrap}

/* ---- PackageCard V2.1 (la genera vigentia-core 1.1.0) -------------------------------------------------------------------- */
.vg-pkg__meta{grid-template-columns:minmax(0,1fr)}
.vg-pkg__head .vg-badge{max-width:100%;white-space:normal;letter-spacing:.07em}
.vg-pkg .vg-pkg__cols{grid-template-columns:minmax(0,1fr)}
.vg-pkg__notice{margin:0;padding:.6rem .85rem;border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  background:var(--surface-2);color:var(--ink-soft);font-size:.88rem;line-height:1.5}
.vg-pkg__scope{color:var(--ink-soft)}
.vg-pkg__scope strong{color:var(--ink)}
.vg-pkg__sub{font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.vg-pkg .vg-more{margin-top:.1rem}
.vg-pkg .vg-more__body .vg-deliverables{font-size:.95rem;gap:.45rem}
.vg-pkg .vg-more__body .vg-deliverables>li{padding-left:1.5rem}
.vg-pkg .vg-more__body .vg-deliverables>li::before{top:.2em;width:1.05rem;height:1.05rem}
/* V2.1.1 (2026-10-19, orquestador): aire entre grupos de paquetes y tarjeta única no estirada */
.vg-wrap > .vg-h3:not(:first-child), .vg-wrap > .vg-grid + .vg-h3 { margin-top: 2.75rem; }
.vg-grid > .vg-pkg:only-child { max-width: 46rem; }
/* V2.1.2 (2026-10-19): hero con imagen vertical (equipo, home) y pie de transparencia IA */
.vg-hero__media--portrait img{object-position:50% 28%}
@media (min-width:1024px){.vg-hero__media--portrait img{aspect-ratio:4/5;max-height:72vh}}
.vg-hero__media .vg-figure__cap{margin:0;padding:.45rem .8rem;font-size:.75rem;line-height:1.4}
/* V2.1.3 (2026-10-19): ficha del fundador apilada y credenciales como etiquetas */
.vg-author{flex-wrap:wrap}
.vg-author>p{flex:1 1 100%;margin:0}
.vg-author>ul{display:flex;flex-wrap:wrap;gap:.45rem;list-style:none;padding:0;margin:.25rem 0 0}
.vg-author>ul>li{padding:.25rem .7rem;border:1px solid var(--line);border-radius:999px;font-size:.85rem;line-height:1.3;background:var(--surface-2)}
.vg-author>ul>li::before{content:none}
