@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;1,600&family=Sono:wght@400;500&family=Source+Serif+4:ital,opsz,wght@1,8..60,600;1,8..60,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;1,600&family=Sono:wght@400;500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Albert+Sans:ital,wght@0,400;0,500;0,600;0,700;1,500&display=swap');
/* NextOP · hoja del tema v1.0.4 (generada desde el canvas de Claude Design) */
/* ── Neutraliza los estilos del tema (Twenty Twenty-Four) bajo el diseño NextOP ── */
body{margin:0;background:#ffffff;font-size:16px;line-height:normal;color:#0b1f33;-webkit-font-smoothing:auto}
.wp-site-blocks{padding:0 !important}
.wp-site-blocks > *, .wp-site-blocks > * > *, .nx-page > *{margin-block-start:0 !important;margin-block-end:0 !important}
.wp-block-post-content.nx-page{max-width:none !important;margin:0 !important;padding:0 !important}
.wp-block-group.nx{max-width:none;margin:0;padding:0}
.wp-block-group.nx > *{margin-block-start:0 !important;margin-block-end:0 !important;max-width:none}
:where(.nx) :is(h1,h2,h3,h4,h5,h6,p,ul,ol,li,figure,blockquote,a,button,summary,label,input,select,textarea,img,video,span,strong,b,em){font-family:revert;font-size:revert;font-weight:revert;line-height:revert;letter-spacing:revert;color:revert;text-decoration:revert}
:where(.nx) :is(h1,h2,h3,h4,h5,h6,p,ul,ol,figure,blockquote){margin:revert}
:where(.nx) :is(h1,h2,h3,h4,h5,h6,p,li,a,span,strong,b,em,summary,label){font-family:inherit;color:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit}
:where(.nx) h1{font-size:2em;font-weight:bold}:where(.nx) h2{font-size:1.5em;font-weight:bold}:where(.nx) h3{font-size:1.17em;font-weight:bold}
:where(.nx) :is(strong,b){font-weight:bold}
:where(.nx) img{max-width:none;height:revert}
:where(.nx) a{text-decoration:none}



/* ---- tokens ---- */
/* NextOP — generado desde tokens.json del Design System "NextOP". No editar a mano: se regenera al sincronizar. */
:root {
  --color-primary: #0b1f33;
  --color-secondary: #173a5c;
  --color-support: #3f7aac;
  --color-action: #4fc21f;
  --color-accent: #4a9b2d;
  --color-success: #3d8424;
  --color-brand-mark: #fdf652;
  --color-background: #ffffff;
  --color-background-alt: #f2f2f2;
  --color-background-tint: #eaf1f8;
  --color-error: #b42318;
  --color-disabled-background: #d5dbe1;
  --color-disabled-text: #5b6672;
  --color-divider: rgba(11,31,51,0.15);
  --color-divider-inverse: rgba(255,255,255,0.2);
  --surface-base: var(--color-background);
  --surface-alt: var(--color-background-alt);
  --surface-tint: var(--color-background-tint);
  --surface-dark: var(--color-primary);
  --surface-dark-alt: var(--color-secondary);
  --surface-accent: var(--color-support);
  --text-primary: var(--color-primary);
  --text-on-dark: var(--color-background);
  --action-primary: var(--color-action);
  --text-on-action: var(--color-primary);
  --action-hover-on-light: var(--color-primary);
  --action-hover-on-dark: var(--color-background);
  --accent-on-light: var(--color-accent);
  --accent-on-dark: var(--color-action);
  --focus-on-light: var(--color-primary);
  --focus-on-dark: var(--color-action);
  --border-field: var(--color-support);
  --icon-support: var(--color-support);
  --feedback-error: var(--color-error);
  --feedback-success: var(--color-success);
  --control-disabled-bg: var(--color-disabled-background);
  --control-disabled-fg: var(--color-disabled-text);
  --divider-on-light: var(--color-divider);
  --divider-on-dark: var(--color-divider-inverse);
  --font-sans: "Plus Jakarta Sans", system-ui, sans-serif;
  --font-mono: "Sono", ui-monospace, "SF Mono", Menlo, monospace;
  --font-serif: "Source Serif 4", Georgia, serif;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-18: 72px;
  --space-20: 80px;
  --space-24: 96px;
  --space-30: 120px;
  --space-36: 144px;
  --radius-lg: 32px;
  --radius-sm: 16px;
  --radius-circle: 50%;
  --shadow-card: 8px 8px 16px rgba(11,31,51,0.12);
  --shadow-sticky: 0 -8px 24px rgba(11,31,51,0.25);
  --container-max: 1240px;
  --breakpoint-tablet: 1024px;
  --breakpoint-mobile: 680px;
  --control-sm: 44px;
  --control-md: 48px;
  --control-field: 52px;
  --control-lg: 60px;
  --duration-fast: 200ms;
  --duration-base: 250ms;
  --easing-standard: ease;
  --lh-tight: 1;
  --fs-display: 72px;
  --lh-display: 1.04;
  --fs-display-mobile: 40px;
  --lh-display-mobile: 1.08;
  --fs-h2: 66px;
  --lh-h2: 1.08;
  --fs-h3: 40px;
  --lh-h3: 1.15;
  --fs-h3-mobile: 28px;
  --lh-h3-mobile: 1.2;
  --fs-lead: 24px;
  --lh-lead: 1.6;
  --fs-lead-sm: 20px;
  --lh-lead-sm: 1.55;
  --fs-body: 16px;
  --lh-body: 1.6;
  --fs-overline: 16px;
  --lh-overline: 1.4;
  --fs-button: 16px;
  --lh-button: 1.2;
  --fs-caption: 14px;
  --lh-caption: 1.4;
  --fs-accent: 66px;
  --lh-accent: 1.08;
  --fs-card-title: 40px;
  --lh-card-title: 1.1;
  --fs-highlight: 24px;
  --lh-highlight: 1.5;
}
.t-display { font-family: var(--font-sans); font-size: 72px; line-height: 1.04; font-weight: 500; letter-spacing: -0.035em; }
.t-display-mobile { font-family: var(--font-sans); font-size: 40px; line-height: 1.08; font-weight: 500; letter-spacing: -0.03em; }
.t-h2 { font-family: var(--font-sans); font-size: 66px; line-height: 1.08; font-weight: 500; letter-spacing: -0.025em; }
.t-h3 { font-family: var(--font-sans); font-size: 40px; line-height: 1.15; font-weight: 500; letter-spacing: -0.02em; }
.t-h3-mobile { font-family: var(--font-sans); font-size: 28px; line-height: 1.2; font-weight: 500; letter-spacing: -0.015em; }
.t-lead { font-family: var(--font-sans); font-size: 24px; line-height: 1.6; font-weight: 400; }
.t-lead-sm { font-family: var(--font-sans); font-size: 20px; line-height: 1.55; font-weight: 400; }
.t-body { font-family: var(--font-sans); font-size: 16px; line-height: 1.6; font-weight: 400; }
.t-overline { font-family: var(--font-sans); font-size: 16px; line-height: 1.4; font-weight: 600; letter-spacing: 0.08em; }
.t-button { font-family: var(--font-sans); font-size: 16px; line-height: 1.2; font-weight: 600; }
.t-caption { font-family: var(--font-sans); font-size: 14px; line-height: 1.4; font-weight: 400; }
.t-accent { font-family: var(--font-serif); font-size: 66px; line-height: 1.08; font-weight: 700; letter-spacing: -0.01em; font-style: italic; }
.t-card-title { font-family: var(--font-serif); font-size: 40px; line-height: 1.1; font-weight: 700; letter-spacing: -0.01em; font-style: italic; }
.t-highlight { font-family: var(--font-serif); font-size: 24px; line-height: 1.5; font-weight: 600; font-style: italic; }

/* ---- componentes del Design System ---- */
/* NextOP · hoja de componentes compartida.
   Única fuente de contextos, interacción, layout y tipografía responsive.
   Se instala en el canvas junto a los tokens; ningún tablero debe redefinir estas clases. */

/* ── Superficies: la propiedad data-surface del contenedor fija el fondo y el contexto ──
   Claras: base · alt · tint      Oscuras: dark · dark-alt · accent
   Los componentes usan --text, --accent, --focus, --divider, --link-hover y --action-hover-*;
   nunca eligen entre verdes ni colores de texto por su cuenta. */
:root, [data-surface="base"], .nx-surface--base, [data-surface="alt"], .nx-surface--alt, [data-surface="tint"], .nx-surface--tint {
  --text: var(--text-primary, #0b1f33);
  --accent: var(--accent-on-light, #4a9b2d);
  --focus: var(--focus-on-light, #0b1f33);
  --action-hover-bg: var(--action-hover-on-light, #0b1f33);
  --action-hover-fg: var(--text-on-dark, #ffffff);
  --divider: var(--divider-on-light, rgba(11,31,51,0.15));
  --link-hover: var(--border-field, #3f7aac);
}
[data-surface="dark"], .nx-surface--dark, [data-surface="dark-alt"], .nx-surface--dark-alt, [data-surface="accent"], .nx-surface--accent {
  --text: var(--text-on-dark, #ffffff);
  --accent: var(--accent-on-dark, #4fc21f);
  --focus: var(--focus-on-dark, #4fc21f);
  --action-hover-bg: var(--action-hover-on-dark, #ffffff);
  --action-hover-fg: var(--text-primary, #0b1f33);
  --divider: var(--divider-on-dark, rgba(255,255,255,0.2));
  --link-hover: var(--text-on-dark, #ffffff);
}
[data-surface="base"], .nx-surface--base{background-color:var(--surface-base, #ffffff)}
[data-surface="alt"], .nx-surface--alt{background-color:var(--surface-alt, #f2f2f2)}
[data-surface="tint"], .nx-surface--tint{background-color:var(--surface-tint, #eaf1f8)}
[data-surface="dark"], .nx-surface--dark{background-color:var(--surface-dark, #0b1f33)}
[data-surface="dark-alt"], .nx-surface--dark-alt{background-color:var(--surface-dark-alt, #173a5c)}
[data-surface="accent"], .nx-surface--accent{background-color:var(--surface-accent, #3f7aac)}
/* Superficie sin fondo propio (p. ej. sobre una foto): solo cambia el contexto */
[data-context="dark"], .nx-context--dark{--text:var(--text-on-dark, #ffffff);--accent:var(--accent-on-dark, #4fc21f);--focus:var(--focus-on-dark, #4fc21f);--action-hover-bg:var(--action-hover-on-dark, #ffffff);--action-hover-fg:var(--text-primary, #0b1f33);--divider:var(--divider-on-dark, rgba(255,255,255,0.2));--link-hover:var(--text-on-dark, #ffffff)}
[data-context="light"], .nx-context--light{--text:var(--text-primary, #0b1f33);--accent:var(--accent-on-light, #4a9b2d);--focus:var(--focus-on-light, #0b1f33);--action-hover-bg:var(--action-hover-on-light, #0b1f33);--action-hover-fg:var(--text-on-dark, #ffffff);--divider:var(--divider-on-light, rgba(11,31,51,0.15));--link-hover:var(--border-field, #3f7aac)}

/* Equivalentes en clase para editores que no admiten atributos (WordPress): nx-surface--<valor>, nx-context--<valor> */

/* ── Base y layout ── */
.nx *{box-sizing:border-box}
.nx-wrap{max-width:var(--container-max, 1240px);margin:0 auto;padding:0 var(--space-10, 40px)}
.g-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6, 24px)}
.g-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-18, 72px);align-items:start}
.g-foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--space-10, 40px)}
.nx-h1,.nx-h2,.nx-h3{text-wrap:balance}
.nx-accent{font-family:var(--font-serif, Georgia, serif);font-style:italic;font-weight:700;letter-spacing:-0.01em;color:var(--accent)}

/* ── Timeline de fases ── */
.nx-tl{display:grid;grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr);align-items:start}

/* ── Botones ── */
.nx-b,.nx-cta{transition:background var(--duration-fast, 200ms) var(--easing-standard, ease),color var(--duration-fast, 200ms) var(--easing-standard, ease),opacity var(--duration-fast, 200ms) var(--easing-standard, ease)}
.nx-b--primario:hover,.nx-b--secundario:hover,.nx-cta:hover{background:var(--action-hover-bg) !important;color:var(--action-hover-fg) !important}
.nx-b--texto:hover{color:var(--link-hover) !important}
[data-surface="dark"] .nx-b--texto:hover,.nx-surface--dark .nx-b--texto:hover,[data-surface="dark-alt"] .nx-b--texto:hover,.nx-surface--dark-alt .nx-b--texto:hover,[data-surface="accent"] .nx-b--texto:hover,.nx-surface--accent .nx-b--texto:hover,[data-context="dark"] .nx-b--texto:hover,.nx-context--dark .nx-b--texto:hover{opacity:.75}

/* ── Enlaces de texto ── */
.nx-rlink,.nx-tlink,.nx-link{transition:color var(--duration-fast, 200ms) var(--easing-standard, ease),opacity var(--duration-fast, 200ms) var(--easing-standard, ease)}
.nx-rlink:hover,.nx-tlink:hover{color:var(--link-hover) !important}
.nx-link:hover{opacity:.75}

/* ── Foco: un solo anillo, color según contexto ── */
.nx-b:focus-visible,.nx-cta:focus-visible,.nx-route:focus-visible,.nx-rlink:focus-visible,.nx-tlink:focus-visible,
.nx-ftab:focus-visible,.nx-tab:focus-visible,.nx-faq:focus-visible,.nx-step:focus-visible,.nx-burger:focus-visible,
.nx-mlink:focus-visible,.nx-flink:focus-visible,.nx-nav a:focus-visible,.nx-navbtn:focus-visible,.nx-sublink:focus-visible{outline:2px solid var(--focus) !important;outline-offset:3px}

/* ── Tarjeta de ruta: al hover entra en contexto oscuro ── */
.nx-route{transition:background var(--duration-base, 250ms) var(--easing-standard, ease),color var(--duration-base, 250ms) var(--easing-standard, ease)}
.nx-route:hover{background:var(--surface-dark-alt, #173a5c) !important;--text:var(--text-on-dark, #ffffff);--accent:var(--accent-on-dark, #4fc21f);--link-hover:var(--text-on-dark, #ffffff);--divider:var(--divider-on-dark, rgba(255,255,255,0.2))}
.nx-route:hover h3,.nx-route:hover p,.nx-route:hover li,.nx-route:hover .nx-rlink{color:var(--text-on-dark, #ffffff) !important}
.nx-route:hover .nx-rk{color:var(--accent-on-dark, #4fc21f) !important}

/* ── Campos ── */
.nx-field,.ds-f{transition:border-color var(--duration-fast, 200ms) var(--easing-standard, ease)}
.nx-field:hover,.ds-f:hover{border-color:var(--surface-dark-alt, #173a5c) !important}
.nx-field:focus,.ds-f:focus{outline:none;border-color:var(--border-field, #3f7aac) !important;box-shadow:inset 0 0 0 1px var(--border-field, #3f7aac),0 0 0 4px rgba(63,122,172,.2) !important}
.nx-field[aria-invalid="true"],.ds-f[aria-invalid="true"]{border-color:var(--feedback-error, #b42318) !important;box-shadow:inset 0 0 0 1px var(--feedback-error, #b42318) !important}

/* ── Tabs, pasos, FAQ ── */
.nx-ftab,.nx-tab,.nx-step{transition:color var(--duration-fast, 200ms) var(--easing-standard, ease)}
.nx-ftab:hover,.nx-tab:hover,.nx-step:hover{color:var(--link-hover) !important}
.nx-faq:hover span:first-child{color:var(--link-hover)}

/* ── Navegación ── */
.nx-nav a{color:var(--text-on-dark, #ffffff);opacity:.82;transition:opacity var(--duration-fast, 200ms);text-decoration:none}
.nx-nav a:hover,.nx-nav a[aria-current]{opacity:1;color:var(--text-on-dark, #ffffff)}
.nx-burger{transition:background var(--duration-fast, 200ms)}.nx-burger:hover{background:rgba(255,255,255,.12) !important}
.nx-mlink{transition:background var(--duration-fast, 200ms)}.nx-mlink:hover{background:rgba(255,255,255,.08)}
.nx-flink{color:var(--text-on-dark, #ffffff);text-decoration:none}.nx-flink:hover{color:var(--text-on-dark, #ffffff);text-decoration:underline}

/* ── Elevación al hover ── */
.nx-svc,.nx-inst{transition:transform var(--duration-base, 250ms) var(--easing-standard, ease)}
.nx-svc:hover{transform:translateY(-4px)}.nx-inst:hover{transform:translateY(-3px)}

/* ── Header y menú móvil (NxHeader) ── */
.nx-hdr{height:var(--space-24, 96px)}
.nx-burger{display:none}
.nx-hdr--movil .nx-hdr{height:var(--space-18, 72px);padding:0 var(--space-5, 20px)}
.nx-hdr--movil .nx-nav,.nx-hdr--movil .nx-hcta,.nx-hdr--movil .nx-logo-sub{display:none !important}
.nx-hdr--movil .nx-burger{display:flex !important}
.nx-hdr--movil .nx-mmenu{display:block !important}
.nx-hdr--escritorio .nx-burger,.nx-hdr--escritorio .nx-mmenu{display:none !important}
.nx-hdr--escritorio .nx-nav{display:flex !important}
.nx-hdr--escritorio .nx-hcta{display:inline-flex !important}

.nx-navbtn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2, 8px);padding:var(--space-2, 8px) 0;border-bottom:2px solid transparent;color:var(--text-on-dark, #ffffff);opacity:.82;transition:opacity var(--duration-fast, 200ms)}
.nx-navbtn:hover,.nx-navbtn[aria-expanded="true"]{opacity:1}
.nx-nav .nx-sublink,.nx-nav .nx-sublink[aria-current],.nx-nav .nx-sublink:hover{color:var(--text);opacity:1}
.nx-sublink{transition:background var(--duration-fast, 200ms)}.nx-sublink:hover{background:rgba(255,255,255,.08)}
.nx-hdr--movil .nx-submenu{display:none !important}

/* ── Plus Jakarta Sans tiene el espacio entre palabras corto: se compensa (más en titulares con tracking negativo) ── */
.nx{word-spacing:0.05em}
.nx :is(h1,h2,h3,.nx-h1,.nx-h2,.nx-h3){word-spacing:0.1em}
/* ── Acotaciones (Sono): fuentes de datos, ayudas y errores bajo los campos, tooltips, aviso de privacidad, footer ── */
.nx-note{font-family:var(--font-mono, ui-monospace, monospace) !important;font-size:var(--fs-caption, 14px) !important;line-height:1.5 !important;letter-spacing:0 !important;word-spacing:0 !important;font-weight:400 !important}
.nx-footmono :is(p,li,a,span):not(.nx-footlogo, .nx-footlogo *){font-family:var(--font-mono, ui-monospace, monospace) !important;font-size:var(--fs-caption, 14px) !important;letter-spacing:0 !important;word-spacing:0 !important}

/* ── Responsive ── */
@media (max-width:1024px){
  .g-2{grid-template-columns:1fr;gap:var(--space-12, 48px)}
  .g-3{grid-template-columns:1fr}
  .g-foot{grid-template-columns:1fr 1fr}
  .nx-nav{display:none !important}
  .nx-submenu{display:none !important}
  .nx-stat{border-left:0 !important;padding:0 !important}
  .nx-hdr{height:var(--space-18, 72px)}
  .nx-burger{display:flex}
  .nx-tl{grid-template-columns:72px minmax(0,1fr) !important}
  .nx-tl > .nx-tl-l{grid-column:2 !important;text-align:left !important;padding:0 0 var(--space-12, 48px) !important}
  .nx-tl > .nx-tl-m{grid-column:1 !important;grid-row:1 / span 2 !important;justify-content:flex-start !important}
  .nx-tl > .nx-tl-r{grid-column:2 !important;padding:0 0 var(--space-12, 48px) !important}
  .nx-tl-e{display:none !important}
  .nx-tlline{left:31px !important}
}
@media (max-width:680px){
  .nx-wrap{padding:0 var(--space-5, 20px)}
  .nx-hcta,.nx-logo-sub{display:none !important}
  .g-foot{grid-template-columns:1fr}
  .nx-h1,.nx-h2{font-size:var(--fs-display-mobile, 40px) !important}
  .nx-h3{font-size:var(--fs-h3-mobile, 28px) !important}
  .nx-lead{font-size:var(--fs-lead-sm, 20px) !important}
}
@media (min-width:1025px){.nx-mmenu{display:none !important}}
@media (prefers-reduced-motion: reduce){.nx *,.nx-b,.nx-cta{transition:none !important}}

/* ---- componentes del sitio ---- */

body{margin:0}
@media (max-width:680px){.nx-logo-img{height:36px !important}}


body{margin:0}
.nx-b--neutro{transition:background var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard)}
.nx-b--neutro:hover{background:var(--action-hover-bg) !important;color:var(--action-hover-fg) !important}
.nx-b--neutro:focus-visible{outline:2px solid var(--focus) !important}


body{margin:0}


body{margin:0}
@media (max-width:1024px){.nx-tile{min-height:0 !important;padding-bottom:var(--space-8) !important}}


body{margin:0}
.nx-lada:focus-within{box-shadow:inset 0 0 0 1px var(--border-field),0 0 0 4px rgba(63,122,172,.2)}

/* ---- responsive ---- */
/* NextOP · capa responsive (tokens fluidos + reglas compartidas)
   Se carga DESPUÉS de tokens/nextop.css y ds/nextop/components/bundle.css en todas las páginas.
   Escala fluida lineal entre 360 px y 1440 px de viewport: clamp(mín, base + pendiente·vw, máx).
   En WordPress: estos valores van a theme.json (settings.typography.fontSizes / settings.spacing.spacingSizes)
   y las reglas de abajo a la hoja del tema hijo. */

:root {
  /* ── Tipografía fluida (360 → 1440) ── */
  --fs-display: clamp(2.5rem, 1.8333rem + 2.963vw, 4.5rem);      /* H1      40 → 72 */
  --fs-h2: clamp(2.125rem, 1.4583rem + 2.963vw, 4.125rem);       /* H2      34 → 66 */
  --fs-accent: var(--fs-h2);                                     /* acento serif de H2 */
  --fs-h3: clamp(1.75rem, 1.5rem + 1.111vw, 2.5rem);             /* H3      28 → 40 */
  --fs-card-title: var(--fs-h3);                                 /* título de card 28 → 40 */
  --fs-lead: clamp(1.25rem, 1.1667rem + 0.3704vw, 1.5rem);       /* lead    20 → 24 */
  --fs-highlight: var(--fs-lead);                                /* 20 → 24 */
  --fs-lead-sm: clamp(1.125rem, 1.0833rem + 0.1852vw, 1.25rem);  /* 18 → 20 */
  --fs-body: 1rem;                                               /* 16 fijo */
  --fs-label: 1rem;                                              /* labels de formulario 16 */
  --fs-input: 1rem;                                              /* inputs 16 (evita zoom iOS) */
  --fs-button: 1rem;                                             /* 16 */
  --fs-overline: 1rem;                                           /* 16 */
  --fs-caption: 0.875rem;                                        /* small 14 (mínimo) */
  --fs-display-mobile: 2.5rem;                                   /* compatibilidad */

  /* Interlineado: titulares 1.1–1.15, cuerpo 1.6 */
  --lh-display: 1.1;
  --lh-display-mobile: 1.1;
  --lh-h2: 1.1;
  --lh-accent: 1.1;
  --lh-h3: 1.15;
  --lh-card-title: 1.1;
  --lh-lead: 1.6;
  --lh-lead-sm: 1.55;
  --lh-body: 1.6;

  /* ── Espaciado fluido (múltiplos de 4/8 en sus extremos) ── */
  --gutter: clamp(1.25rem, 0.1471rem + 4.902vw, 2.5rem);         /* margen lateral 20 (360) → 40 (≥768) */
  --card-pad: clamp(1.5rem, 1.25rem + 1.111vw, 2.25rem);         /* padding interno de card 24 → 36 */
  --space-16: clamp(3rem, 2.6667rem + 1.4815vw, 4rem);           /* 48 → 64  padding de sección */
  --space-18: clamp(3rem, 2.5rem + 2.2222vw, 4.5rem);            /* 48 → 72 */
  --space-20: clamp(3rem, 2.3333rem + 2.963vw, 5rem);            /* 48 → 80  título → contenido */
  --space-24: clamp(4rem, 3.3333rem + 2.963vw, 6rem);            /* 64 → 96 */
  --space-30: clamp(5rem, 4.1667rem + 3.7037vw, 7.5rem);         /* 80 → 120 */
  --space-36: clamp(4rem, 2.3333rem + 7.4074vw, 9rem);           /* 64 → 144 */
  --section-y: var(--space-16);
  --target-min: 44px;                                            /* área táctil mínima */
}

/* ── Contenedor y titulares ── */
.nx-wrap { padding-left: var(--gutter) !important; padding-right: var(--gutter) !important; }
@media (max-width: 680px) {
  .nx-h1 { font-size: var(--fs-display) !important; }
  .nx-h2 { font-size: var(--fs-h2) !important; }
  .nx-h3 { font-size: var(--fs-h3) !important; }
  .nx-lead { font-size: var(--fs-lead) !important; }
}
.nx-h1, .nx-h2 { overflow-wrap: break-word; hyphens: manual; }
@media (max-width: 1024px) { .nx-1line { white-space: normal !important; } }
/* El CTA sticky nunca tapa el destino de un ancla ni el foco */
@media (max-width: 680px) { html { scroll-padding-bottom: 96px; } }

/* ── Hero ── */
@media (max-width: 1024px) {
  .nx-hero { height: auto !important; }
  .nx-herotext { max-width: 720px !important; }
  /* Texto a todo el ancho: el degradado lateral deja zonas claras, se pasa a velo vertical */
  .nx-ovl { background: linear-gradient(180deg, rgba(11,31,51,.80) 0%, rgba(11,31,51,.90) 100%) !important; }
}

/* ── Áreas táctiles de enlaces de texto (sin cambiar su aspecto) ── */
.nx-rlink, .nx-tlink, .nx-hit, .nx-formcard p a { position: relative; }
.nx-rlink::after, .nx-tlink::after, .nx-hit::after, .nx-formcard p a::after { content: ""; position: absolute; left: -4px; right: -4px; top: 50%; height: var(--target-min); transform: translateY(-50%); }
.nx-hdr > a:first-child { min-height: var(--target-min); justify-content: center; }
@media (max-width: 1024px) {
  .g-foot ul { gap: 0 !important; }
  .g-foot ul a, .g-foot p > a, .g-foot > div > a:first-child, .nx-foot-legal a { display: inline-flex; align-items: center; min-height: var(--target-min); min-width: var(--target-min); }
  .nx-foot-legal { gap: 0 var(--space-6) !important; }
}

/* ── Grid de rutas (NxRouteCard): 3 → 1 columna, centrada en tablet ── */
@media (min-width: 900px) and (max-width: 1024px) { .g-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); } }
@media (max-width: 899px) { .g-3 > * { width: 100%; max-width: 560px; margin-inline: auto; } }

/* ── Carrusel de servicios (nx-inst) y de videos: card cortada al borde como indicador ── */
@media (max-width: 680px) {
  .nx .nx-icar { -webkit-mask-image: none !important; mask-image: none !important; gap: var(--space-4) !important; scroll-padding-inline: 0; }
  .nx-icar .nx-inst { width: calc(100cqw - var(--space-12)) !important; padding: var(--card-pad) !important; }
  .nx-inst > div[aria-hidden="true"] { height: 112px !important; }
  .nx-inst > div[aria-hidden="true"] svg { width: 72px; height: 72px; }
  .nx-inst h3 { min-height: 0 !important; margin-top: var(--space-6) !important; }
  .nx-inst p:last-child { font-size: var(--fs-lead-sm) !important; line-height: var(--lh-lead-sm) !important; }
  .nx-vcar { gap: var(--space-4) !important; }
}
@media (min-width: 681px) and (max-width: 1024px) {
  .nx-icar .nx-inst { width: calc((100cqw - var(--space-8)) / 1.6) !important; }
  .nx-vcar .nx-vcard { width: calc((100cqw - 2 * var(--space-8)) / 2.5) !important; }
}

/* ── Pasos seleccionables de la metodología (nx-step) ── */
.nx-step { min-height: var(--target-min) !important; }

/* ── Línea de tiempo: sin saltos de línea forzados en tablet/mobile ── */
@media (max-width: 1024px) {
  .nx-tl br, .nx-tl-l br, .nx-tl-r br { display: none; }
  .nx-tl { min-height: 0 !important; }
}

/* ── Ventajas (tabs + cards riesgo/estrategia) ── */
@media (max-width: 680px) {
  [role="tablist"] { gap: var(--space-3) !important; }
  [role="tabpanel"] h3 { font-size: var(--fs-h3) !important; }
  .nx-2col > div { padding: var(--card-pad) !important; }
}

/* ── Mini CTA y cierres con foto ── */
@media (max-width: 1024px) {
  .nx-mini .nx-minibox { margin: 0 !important; padding: 0 !important; }
  .nx .nx-mini { min-height: 0 !important; }
}

/* ── Equipo (Inicio): 3 col → 2 col (tablet) → 1 col; las fotos conservan altura para no perder al sujeto ── */
@media (max-width: 1024px) {
  .nx .nx-team { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-template-rows: none !important; gap: var(--space-6) !important; }
  .nx .nx-team > .nx-team-fiscal { grid-column: 1 / -1 !important; }
  .nx .nx-team .nx-teamimg, .nx .nx-team .nx-team-foto { contain: none !important; min-height: 280px !important; height: 100% !important; }
}
@media (max-width: 680px) {
  .nx .nx-team { grid-template-columns: minmax(0, 1fr) !important; }
  .nx .nx-team .nx-teamimg, .nx .nx-team .nx-team-foto { min-height: 0 !important; height: auto !important; aspect-ratio: 4 / 3; }
}

/* ── Formulario ── */
@media (max-width: 680px) {
  .nx-formcard { padding: var(--space-8) var(--card-pad) !important; }
  .nx-lada { width: 6.5rem !important; padding: 0 var(--space-3) !important; }
  .nx-lada + div input { padding-right: var(--space-10) !important; }
  .nx-lada + div input.nx-field { padding-right: var(--space-4) !important; }
}
input, select, textarea { font-size: max(16px, 1em); }

/* ── Footer con CTA sticky: deja libre el último contenido ── */
@media (max-width: 680px) { .nx-footpad { padding-bottom: calc(var(--space-24) + var(--space-6)) !important; } }

/* ── Bloque de certeza ("¿Es un buen momento?") en la sección de cifras de las páginas de servicio ── */
@media (max-width: 1024px) { .nx-calma-grid { grid-template-columns: minmax(0, 1fr) !important; gap: var(--space-6) !important; } }

/* ── Comparativo "Un acompañamiento que no termina en el trámite" ── */
@media (max-width: 680px) { .nx-vs { grid-template-columns: minmax(0, 1fr) !important; gap: var(--space-6) !important; } }

/* ── Hero: alturas fijadas a mano en escritorio no aplican en tablet/mobile ── */
@media (max-width: 1024px) { .nx-hero .nx-wrap { min-height: 0 !important; } }

/* ══ QA responsive 2026-10 ══ */
/* Anchos fijados a mano en el canvas: nunca más anchos que su contenedor */
.nx-wrap { max-width: 100%; box-sizing: border-box; }
@media (max-width: 1024px) {
  .nx-wrap, .nx-herotext, .nx-h1, .nx-h2, .nx-lead { width: auto !important; }
}
/* Áreas táctiles de 44 px: términos con definición, enlaces de texto, migas y botones de texto */
.nx-term-btn, .nx-clink, .nx-b--texto, .nx-crumb a { position: relative; }
.nx-term-btn::after, .nx-clink::after, .nx-b--texto::after, .nx-crumb a::after { content: ""; position: absolute; left: -4px; right: -4px; top: 50%; height: var(--target-min); transform: translateY(-50%); }
/* Índice de las páginas legales */
.nx-toc { display: flex !important; align-items: center; min-height: var(--target-min); box-sizing: border-box; }
/* Saltos de línea manuales del hero: solo en escritorio */
@media (max-width: 1024px) { .nx-hero p br, .nx-herotext p br, .nx-hero .nx-lead br { display: none; } }
/* Equipo (Inicio) en tablet: mosaico de 2 columnas sin huecos; "…y mucho más" a lo ancho */
@media (min-width: 681px) and (max-width: 1024px) {
  .nx .nx-team > .nx-team-fiscal { grid-column: auto !important; }
  .nx .nx-team > .nx-team-mas { grid-column: 1 / -1 !important; }
}
/* Accesibilidad: enlace para saltar al contenido (visible al recibir foco) y texto solo para lectores de pantalla */
.nx-skip{position:absolute;left:-9999px;top:8px;z-index:100;padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);background:var(--action-primary);color:var(--text-on-action);font-family:var(--font-sans);font-weight:600;text-decoration:none}
.nx-skip:focus{left:var(--space-4)}
.nx-sr{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* ══ fin QA responsive ══ */

/* ── Plantillas genéricas (entradas del blog, páginas sin diseño propio, 404) ── */
.nx-generic .nx-wrap{max-width:var(--container-max,1240px);margin:0 auto;padding-top:var(--space-16);padding-bottom:var(--space-16);font-family:var(--font-sans);color:var(--text-primary,#0b1f33)}
.nx-generic .wp-block-post-title{font-family:var(--font-sans);font-weight:500;font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:-.025em;margin:0 0 var(--space-8)}
.nx-generic .wp-block-post-content{font-size:var(--fs-body);line-height:var(--lh-body);max-width:72ch}
.nx-generic .wp-block-post-content :is(h2,h3){font-weight:600;margin:var(--space-10) 0 var(--space-4)}
.nx-generic .wp-block-post-content img{max-width:100%;height:auto;border-radius:var(--radius-sm)}
.nx-generic a{color:var(--color-support,#3f7aac)}
.nx-generic .wp-block-post-excerpt{margin:0 0 var(--space-10)}
.nx-part{display:block}
.nx-part:has(.nx-topbar){position:sticky;top:0;z-index:60}

[hidden]{display:none !important}
html{scroll-behavior:smooth}


/* NextOP fix: orden de capas foto + degradado */
/* La foto con transform podía pintarse encima del degradado (Safari y Chrome al cargar la imagen). */
/* El contenedor del fondo crea su propio contexto de capas: foto abajo, degradado arriba; el texto de la sección queda encima de ambos. */
section > div:has(> .nx-ovl) { z-index: 0; isolation: isolate; }
section > div:has(> .nx-ovl) > img { position: relative; z-index: 0; }
section > div:has(> .nx-ovl) > .nx-ovl { z-index: 1; }

/* NextOP: redes sociales en el footer */
.nx-social{display:flex;gap:var(--space-2);margin:var(--space-5) 0 0 !important}
.nx-social a{display:inline-flex;align-items:center;justify-content:center;width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-circle);border:2px solid var(--divider-on-dark);color:var(--text-on-dark) !important;text-decoration:none !important;transition:background var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard)}
.nx-social a:hover{background:var(--action-primary);border-color:var(--action-primary);color:var(--text-on-action) !important}
.nx-social a:focus-visible{outline:2px solid var(--focus-on-dark);outline-offset:3px}
.nx-social svg{display:block;width:20px;height:20px}

/* ── Plantilla de artículo (templates/single.html): mismo estilo que los artículos de Contenido ── */
.nx-articulo{background:var(--surface-base);color:var(--text);font-family:var(--font-sans)}
.nx-articulo .nx-sec{margin:0;position:relative;color:var(--text)}
.nx-art-hero .nx-pad{padding-top:var(--space-16);padding-bottom:var(--space-10)}
.nx-art-head{max-width:860px;margin:0 auto}
.nx-art-crumb{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .4em;font-size:var(--fs-body);line-height:var(--lh-body);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}
.nx-art-crumb a{color:var(--text)}
.nx-art-sep{opacity:.5}
.nx-art-cat{margin:0}
.nx-art-cat a{color:var(--text);text-decoration:none}
.nx-art-cat a:hover{text-decoration:underline;text-underline-offset:4px}
.nx-art-title{margin:var(--space-6) 0 0 !important;font-family:var(--font-sans);font-weight:500;font-size:40px;line-height:1.15;letter-spacing:-0.8px;color:var(--text);text-wrap:balance}
.nx-art-meta{margin-top:var(--space-6);display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--space-3);row-gap:var(--space-1)}
.nx-art-meta > *{margin:0 !important}
.nx-art-author{font-size:var(--fs-body);line-height:var(--lh-body);font-weight:600;color:var(--text)}
.nx-art-dot{opacity:.6}
.nx-art-cover{position:relative;max-width:1080px;width:100%;margin:var(--space-12) auto 0 !important;aspect-ratio:1080 / 490;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}
.nx-art-cover img{position:absolute;inset:0;display:block;width:100% !important;height:100% !important;object-fit:cover}
.nx-art-bodywrap{padding-top:var(--space-6);padding-bottom:var(--space-20)}
.nx-art-body{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6)}
.nx-art-body > *{margin-top:0 !important;margin-bottom:0 !important}
.nx-post h3{margin:var(--space-4) 0 0;font-weight:600;font-size:var(--fs-lead);line-height:1.35;color:var(--text)}
.nx-post ol{margin:0;padding-left:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--text)}
.nx-post ol li{padding-left:var(--space-2)}
.nx-post ol li::before{content:none}
.nx-post ol li::marker{color:var(--accent);font-weight:700}
.nx-post a:not(.wp-block-button__link){color:var(--text);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:4px}
.nx-post strong{font-weight:700}
.nx-post blockquote,.nx-post .wp-block-pullquote{margin:var(--space-6) 0 !important;padding:0 0 0 var(--space-8);border:0;border-left:3px solid var(--accent);text-align:left}
.nx-post blockquote p,.nx-post .wp-block-pullquote p{font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:var(--fs-h3);line-height:var(--lh-h3,1.3);letter-spacing:-0.01em;color:var(--accent);text-wrap:balance}
.nx-post blockquote cite,.nx-post .wp-block-pullquote cite{display:block;margin-top:var(--space-3);font-family:var(--font-sans);font-style:normal;font-size:var(--fs-body);color:var(--text)}
.nx-post figure{margin:0}
.nx-post figure img{display:block;max-width:100%;height:auto;border-radius:var(--radius-lg)}
.nx-post figcaption{margin-top:var(--space-2);font-size:var(--fs-caption);color:var(--text);opacity:.75}
.nx-post .wp-block-buttons{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.nx-post .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;height:var(--control-lg);padding:0 var(--space-8);border-radius:var(--radius-lg);background:var(--action-primary);color:var(--text-on-action);font-family:var(--font-sans);font-weight:600;font-size:var(--fs-body);text-decoration:none;white-space:nowrap}
.nx-post .wp-block-separator{border:0;height:2px;background:var(--divider);width:100%}
@media (max-width:680px){.nx-art-title{font-size:32px;letter-spacing:-0.6px}.nx-art-hero .nx-pad{padding-top:var(--space-12)}.nx-art-cover{margin-top:var(--space-8) !important;aspect-ratio:4 / 3}}


/* ── Estilos de bloque del blog (v1.0.6): los mismos de los artículos ya publicados ── */
p.is-style-nx-frase{margin:var(--space-6) 0 !important;padding-left:var(--space-8);border-left:3px solid var(--accent);font-family:var(--font-serif);font-style:italic;font-weight:700;font-size:var(--fs-h3);line-height:var(--lh-h3,1.3);letter-spacing:-0.01em;color:var(--accent);text-wrap:balance}
p.is-style-nx-firma{margin-top:var(--space-4) !important}
.wp-block-group.is-style-nx-caja{--text:var(--text-primary,#0b1f33);--accent:var(--accent-on-light,#4a9b2d);margin-top:var(--space-8) !important;padding:var(--space-10);border-radius:var(--radius-lg);background-color:var(--surface-alt,#f2f2f2);display:flex;flex-direction:column;gap:var(--space-5)}
.wp-block-group.is-style-nx-caja > *{margin-top:0 !important;margin-bottom:0 !important}
.wp-block-image.is-style-nx-imagen img{display:block;width:100%;height:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}
.wp-block-image.is-style-nx-imagen figcaption{margin:var(--space-3) 0 0;font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--text);opacity:.75;text-align:left}
.wp-block-button.is-style-nx-primario .wp-block-button__link{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;gap:var(--space-3);height:var(--control-lg);padding:0 var(--space-8);border:0;border-radius:var(--radius-lg);background:var(--action-primary);color:var(--text-on-action);font-family:var(--font-sans);font-weight:600;font-size:var(--fs-body);line-height:var(--lh-body);text-decoration:none;white-space:nowrap;transition:background var(--duration-fast),color var(--duration-fast)}
.wp-block-button.is-style-nx-primario .wp-block-button__link:hover{background:var(--action-hover-bg);color:var(--action-hover-fg)}
@media (max-width:680px){p.is-style-nx-frase{padding-left:var(--space-6);font-size:var(--fs-h3-mobile,28px);line-height:var(--lh-h3-mobile,1.2)}.wp-block-group.is-style-nx-caja{padding:var(--space-8) var(--space-6)}}


/* ── Contenido: desde 5 artículos, 2 columnas con cards verticales (v1.0.6) ── */
.nx-hlist.nx-hlist--grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:var(--space-8) !important}
.nx-hlist--grid .nx-hcard{flex-direction:column !important}
.nx-hlist--grid .nx-cover{flex:0 0 auto !important;min-height:0 !important;aspect-ratio:16 / 10;background-size:cover !important;background-position:50% 35% !important}
.nx-hlist--grid .nx-hcard > div:last-child{width:auto !important}
@media (max-width:680px){.nx-hlist.nx-hlist--grid{grid-template-columns:1fr !important}}

/* Número impar: el último artículo ocupa las dos columnas en horizontal */
@media (min-width:681px){
.nx-hlist--grid > li:last-child:nth-child(odd){grid-column:1 / -1}
.nx-hlist--grid > li:last-child:nth-child(odd) .nx-hcard{flex-direction:row !important}
.nx-hlist--grid > li:last-child:nth-child(odd) .nx-cover{flex:0 0 40% !important;min-height:280px !important;aspect-ratio:auto}
}
