/* =========================================================
   Refinamiento global (revisión de accesibilidad y oficio)
   Se carga el último en todas las páginas.
   ========================================================= */

/* 1. Contraste: el gris de apoyo #8D8D96 daba 3,3:1 sobre blanco.
      #6B6B74 da 5,3:1 (cumple 4,5:1 en texto pequeño). */
:root{--ink-400:#6B6B74;--ex-mute:#62626B;}

/* 2. Foco de teclado visible en todo el sitio */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--ex-signal);outline-offset:3px;
}
:where(header.vx,.hero,.hero-band,.mq-band,.cta-section,footer,.ab-mission,.mi-sec) :where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline-color:var(--ex-signal-on-dark);
}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,
.ct-field input:focus-visible,.ct-field textarea:focus-visible{outline:none;}

/* 3. Saltar al contenido */
.skip-link{
  position:fixed;left:16px;top:12px;z-index:1000;padding:12px 18px;
  background:var(--ex-ink);color:#fff;font-family:var(--ex-mono);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  transform:translateY(-160%);transition:transform .2s ease;
}
.skip-link:focus,.skip-link:focus-visible{transform:none;color:#fff;outline:2px solid var(--ex-signal-on-dark);outline-offset:2px;}

/* 4. Etiquetas mono: mínimo 12px (antes 11–11,5px en mayúsculas espaciadas) */
.eyebrow,.module-tag,.score-item .range,.quad .tag,.area-grid .area-card .tag,
.field label,.ct-field label,.cu-stat span,.adn-unit,.dim-donut-c span,.hb-mods .n,
.dg-k,.dg-sc-n,.mg-go,.vx-mega-foot a,.mp-crumb,.mp-rail a span,.mp-pager small,
.matrix-axes,.field .err,.form-foot,.bar-row .n,.ex-objective .lbl{font-size:12px;}
.mi-lbl{font-size:10.5px;}

/* 5. Tipografía: medida de lectura, cortes de línea y cifras */
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;}
h1,h2,h3{text-wrap:balance;}
p,li{text-wrap:pretty;}
main p{max-width:72ch;}
.bar-row .val,.dg-bv,.score-item .range,.cu-stat b,.adn-num,.hs-row .hs-n,.num,.mg-big{font-variant-numeric:tabular-nums;}

/* 6. Anclas bajo la cabecera fija (los enlaces a módulos y secciones ya no quedan tapados) */
html{scroll-padding-top:calc(var(--vx-h,72px) + 16px);}
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth;}}
[id]{scroll-margin-top:calc(var(--vx-h,72px) + 16px);}

/* 7. Áreas táctiles: 44px en móvil, 28px mínimo en escritorio */
.lang-switch.lang-switch.lang-switch button{min-height:28px;}
@media (pointer:coarse){
  .lang-switch.lang-switch.lang-switch button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;}
  .vx-s-sub a,.vx-s-big,.foot-col a{min-height:44px;display:flex;align-items:center;}
  .social-row a{min-width:44px;min-height:44px;}
}

/* 8. Ritmo vertical uniforme entre secciones */
.pad-section{padding-top:clamp(72px,9vw,128px);padding-bottom:clamp(72px,9vw,128px);}

/* 9. Preferencias del sistema */
@media (prefers-contrast: more){
  :root{--ex-mute:#3A3A42;--ex-ink-2:#1F1F24;--ex-rule:#8A887F;--ink-400:#3A3A42;}
  .lang-switch.lang-switch.lang-switch button{color:rgba(255,255,255,.8);}
}
@media (prefers-reduced-transparency: reduce){
  *{-webkit-backdrop-filter:none !important;backdrop-filter:none !important;}
  header.vx .vx-bar{background:#000 !important;}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  .reveal{opacity:1 !important;transform:none !important;}
}

/* Beta: una sola columna, texto compacto arriba y formulario debajo */
.cta-grid.beta-stack{display:flex;flex-direction:column;gap:48px;max-width:960px;margin:0 auto;}
.beta-stack .cta-copy{max-width:none;}
.beta-stack .cta-copy h2{max-width:760px;}
.beta-stack .cta-copy p.lead{max-width:760px;}
.beta-stack .cta-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:28px;}
.beta-stack .cta-points li{margin:0;align-items:flex-start;}
.beta-stack .form-card{width:100%;}
.beta-stack .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;}
.beta-stack .form-grid .field.full{grid-column:span 3;}
.beta-stack .form-grid .field:has(#company),
.beta-stack .form-grid .field:has(#address){grid-column:span 2;}
.beta-stack .form-grid .field:has(#email){grid-column:span 1;}
@media (max-width:900px){
  .beta-stack .cta-points{grid-template-columns:minmax(0,1fr);gap:12px;}
  .beta-stack .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .beta-stack .form-grid .field.full,.beta-stack .form-grid .field:has(#company),.beta-stack .form-grid .field:has(#address){grid-column:1 / -1;}
}
@media (max-width:560px){
  .beta-stack .form-grid{grid-template-columns:minmax(0,1fr);}
  .beta-stack .form-grid .field,.beta-stack .form-grid .field:has(#email){grid-column:1 / -1;}
}
