
:root{
  --nks-bg:#020304;
  --nks-bg2:#050607;
  --nks-grid:rgba(255,255,255,.035);
  --nks-green:#00F08A;
  --nks-green2:#00C974;
  --nks-title:#B8C1CD;
  --nks-white:#F7FAFC;
  --nks-text:#D2D9E3;
  --nks-muted:#A6B0BE;
  --nks-line:rgba(255,255,255,.10);
  --nks-reading:900px;
  --nks-content:1180px;
  --nks-radius:18px;
}

html,body{
  min-height:100%;
}

body{
  font-family:"Montserrat",Arial,sans-serif !important;
  background-color:var(--nks-bg) !important;
  background-image:
    linear-gradient(var(--nks-grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--nks-grid) 1px,transparent 1px),
    radial-gradient(circle at 9% 23%,rgba(0,240,138,.10),transparent 19%),
    linear-gradient(180deg,#020304 0%,#050607 62%,#06080A 100%) !important;
  background-size:40px 40px,40px 40px,auto,auto !important;
  color:var(--nks-text) !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body :is(.site,#page,#content,.site-content,.site-main,main,article,.content-area){
  background:transparent !important;
}

/* Header */
body :is(header,.site-header,#masthead){
  background:rgba(3,6,14,.90) !important;
  border-bottom:1px solid rgba(255,255,255,.07) !important;
  backdrop-filter:blur(9px);
}
body :is(header,.site-header,#masthead) a{
  color:#C7D0DC !important;
}
body :is(header,.site-header,#masthead) a:hover{
  color:#00F08A !important;
}

/* Layout editorial */
body :is(.entry-header,.page-header,.post-header){
  width:min(var(--nks-content),calc(100% - 48px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-top:42px;
}
body :is(.entry-content,.post-content,.page-content){
  width:min(var(--nks-content),calc(100% - 48px)) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-bottom:70px;
}

/* Títulos */
body :is(.entry-title,.page-title,.post-title,main h1){
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:clamp(36px,4.8vw,62px) !important;
  line-height:1.06 !important;
  letter-spacing:-.04em !important;
  font-weight:800 !important;
  color:var(--nks-title) !important;
  -webkit-text-fill-color:var(--nks-title) !important;
  margin:0 0 24px !important;
}
body main h2{
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:clamp(28px,3.2vw,42px) !important;
  line-height:1.15 !important;
  letter-spacing:-.03em !important;
  font-weight:800 !important;
  color:var(--nks-white) !important;
  -webkit-text-fill-color:var(--nks-white) !important;
  margin:46px 0 18px !important;
}
body main h3{
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:clamp(21px,2.2vw,30px) !important;
  line-height:1.24 !important;
  font-weight:700 !important;
  color:#E9EEF5 !important;
  -webkit-text-fill-color:#E9EEF5 !important;
}

/* Texto */
body :is(.entry-content,.post-content,.page-content,.elementor-widget-text-editor,.elementor-widget-theme-post-content)
:is(p,ul,ol,blockquote){
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:17px !important;
  line-height:1.75 !important;
  color:var(--nks-text) !important;
}

body :is(.entry-content,.post-content,.page-content) > :is(p,ul,ol,blockquote,h2,h3,h4,h5,h6){
  max-width:var(--nks-reading);
  margin-left:auto !important;
  margin-right:auto !important;
}

body main a:not(.button):not(.btn):not(.elementor-button){
  color:var(--nks-green) !important;
  text-decoration-color:rgba(0,240,138,.35) !important;
  text-underline-offset:3px;
}

/* Imágenes */
body main :is(figure,.wp-block-image){
  margin-top:28px;
  margin-bottom:34px;
}
body main :is(figure,.wp-block-image) img{
  border-radius:var(--nks-radius);
  box-shadow:0 12px 32px rgba(0,0,0,.28);
}

/* Cards comunes */
body main :is(
  .wp-block-group.has-background,
  .elementor-widget-icon-box .elementor-widget-container,
  .elementor-widget-image-box .elementor-widget-container
){
  background:rgba(11,18,34,.82) !important;
  border:1px solid var(--nks-line) !important;
  color:var(--nks-text) !important;
  border-radius:var(--nks-radius) !important;
}

/* Botones */
body :is(.button,.btn,.wp-element-button,.elementor-button,input[type="submit"],button):not(.menu-toggle){
  background:var(--nks-green) !important;
  color:#04100B !important;
  border:1px solid var(--nks-green2) !important;
  border-radius:11px !important;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-weight:800 !important;
}

/* Tablas */
body main table{
  width:100%;
  background:rgba(11,18,34,.78) !important;
  border:1px solid var(--nks-line) !important;
  border-radius:14px;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
}
body main th{
  background:#0B0D10 !important;
  color:#fff !important;
}
body main :is(th,td){
  padding:13px 15px;
  color:var(--nks-text) !important;
  border-bottom:1px solid var(--nks-line) !important;
}

/* Formularios */
body main :is(input[type="text"],input[type="email"],input[type="tel"],input[type="url"],select,textarea){
  background:rgba(255,255,255,.06) !important;
  color:#F7FAFC !important;
  border:1px solid rgba(255,255,255,.17) !important;
  border-radius:11px !important;
  padding:12px 14px !important;
}

/* Footer */
body :is(footer,.site-footer,#colophon){
  background:#020304 !important;
  color:#BFC9D5 !important;
  border-top:1px solid var(--nks-line) !important;
}
body :is(footer,.site-footer,#colophon) a{
  color:#E4EAF1 !important;
}

.nks-visual-duplicate{display:none !important;}

@media(max-width:900px){
  body :is(.entry-header,.page-header,.post-header,.entry-content,.post-content,.page-content){
    width:min(100% - 30px,var(--nks-content)) !important;
  }
  body :is(.entry-content,.post-content,.page-content,.elementor-widget-text-editor,.elementor-widget-theme-post-content)
  :is(p,ul,ol,blockquote){
    font-size:16.5px !important;
  }
}


/* ==========================================================
   NKS DESIGN SYSTEM v2.2 · HOME COMO REFERENCIA
   ========================================================== */

:root{
  --nks-v22-title:#C2CAD4;
  --nks-v22-text:#D7DEE7;
  --nks-v22-muted:#AAB4C2;
  --nks-v22-green:#00F08A;
  --nks-v22-reading:840px;
  --nks-v22-hero:980px;
}

/* Header más próximo al Home */
html body :is(header,.site-header,#masthead){
  min-height:50px !important;
  background:rgba(2,3,4,.96) !important;
  border-bottom:1px solid rgba(255,255,255,.07) !important;
  box-shadow:none !important;
}

html body :is(header,.site-header,#masthead) :is(nav,.main-navigation){
  font-family:"Montserrat",Arial,sans-serif !important;
}

html body :is(header,.site-header,#masthead) a{
  color:#C9D1DC !important;
  font-size:12px !important;
  letter-spacing:.035em !important;
  font-weight:500 !important;
}

html body :is(header,.site-header,#masthead) a:hover,
html body :is(header,.site-header,#masthead) .current-menu-item > a{
  color:var(--nks-v22-green) !important;
}

/* Home: sólo mejoramos lectura, no cambiamos el layout */
html body.nks-home main h1,
html body.nks-home main h2{
  color:#C8D0DA !important;
  -webkit-text-fill-color:#C8D0DA !important;
}

html body.nks-home main p{
  color:#AEB8C6 !important;
}

/* ----------------------------------------------------------
   TEMPLATE EDITORIAL
   Se aplica a posts y a páginas legacy detectadas por JS.
   ---------------------------------------------------------- */
html body:is(.nks-editorial,.nks-editorial-auto) :is(.entry-header,.post-header,.page-header){
  width:min(var(--nks-v22-hero),calc(100% - 48px)) !important;
  max-width:var(--nks-v22-hero) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:70px 0 18px !important;
  position:relative !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) :is(.entry-header,.post-header,.page-header)::before{
  content:"NKS · GESTIÓN Y OPERACIONES";
  display:block;
  margin:0 0 18px !important;
  color:var(--nks-v22-green) !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) :is(.entry-title,.post-title,.page-title,main h1){
  max-width:var(--nks-v22-hero) !important;
  color:var(--nks-v22-title) !important;
  -webkit-text-fill-color:var(--nks-v22-title) !important;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:clamp(38px,5vw,56px) !important;
  line-height:1.06 !important;
  letter-spacing:-.04em !important;
  font-weight:800 !important;
  margin:0 0 24px !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) :is(.entry-content,.post-content,.page-content){
  width:min(1180px,calc(100% - 48px)) !important;
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:6px 0 78px !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) :is(.entry-content,.post-content,.page-content) > :is(
  p,ul,ol,blockquote,h2,h3,h4,h5,h6,table,.wp-block-table
){
  width:min(100%,var(--nks-v22-reading)) !important;
  max-width:var(--nks-v22-reading) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) :is(
  .entry-content,.post-content,.page-content,.elementor-widget-theme-post-content
) :is(p,ul,ol,blockquote){
  color:var(--nks-v22-text) !important;
  font-family:"Montserrat",Arial,sans-serif !important;
  font-size:17.5px !important;
  line-height:1.78 !important;
  letter-spacing:-.005em !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) main h2{
  color:#F8FAFC !important;
  -webkit-text-fill-color:#F8FAFC !important;
  font-size:clamp(28px,3.2vw,40px) !important;
  line-height:1.16 !important;
  font-weight:800 !important;
  letter-spacing:-.028em !important;
  margin-top:52px !important;
  margin-bottom:18px !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) main h3{
  color:#EDF2F7 !important;
  -webkit-text-fill-color:#EDF2F7 !important;
  font-size:clamp(21px,2.2vw,28px) !important;
  line-height:1.24 !important;
  font-weight:700 !important;
  margin-top:36px !important;
}

/* Primera imagen editorial: protagonista, como pieza visual */
html body:is(.nks-editorial,.nks-editorial-auto) .nks-editorial-hero-image{
  display:block !important;
  width:min(100%,var(--nks-v22-hero)) !important;
  max-width:var(--nks-v22-hero) !important;
  margin:24px auto 44px !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) .nks-editorial-hero-image img,
html body:is(.nks-editorial,.nks-editorial-auto) img.nks-editorial-hero-image{
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  border-radius:18px !important;
  box-shadow:0 16px 38px rgba(0,0,0,.28) !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) main blockquote{
  background:rgba(255,255,255,.05) !important;
  border-left:4px solid var(--nks-v22-green) !important;
  color:#F4F7FA !important;
  border-radius:0 16px 16px 0 !important;
  padding:24px 26px !important;
}

/* Evita que elementos legacy vuelvan a ocupar demasiado ancho */
html body:is(.nks-editorial,.nks-editorial-auto) main :is(p,li){
  color:var(--nks-v22-text) !important;
}

/* Observatorio: aclarar H1 de acuerdo al Home */
html body .nks-obs-hero h1{
  color:var(--nks-v22-title) !important;
  -webkit-text-fill-color:var(--nks-v22-title) !important;
}

/* Elementos que el JS identifica como copias legacy */
.nks-visual-duplicate{
  display:none !important;
}

@media(max-width:900px){
  html body:is(.nks-editorial,.nks-editorial-auto) :is(
    .entry-header,.post-header,.page-header,.entry-content,.post-content,.page-content
  ){
    width:min(100% - 30px,1180px) !important;
  }

  html body:is(.nks-editorial,.nks-editorial-auto) :is(
    .entry-content,.post-content,.page-content
  ) :is(p,ul,ol,blockquote){
    font-size:16.5px !important;
    line-height:1.72 !important;
  }
}

@media(max-width:600px){
  html body:is(.nks-editorial,.nks-editorial-auto) :is(.entry-header,.post-header,.page-header){
    padding-top:44px !important;
  }

  html body:is(.nks-editorial,.nks-editorial-auto) :is(.entry-title,.post-title,.page-title,main h1){
    font-size:clamp(32px,9vw,42px) !important;
  }
}


/* ==========================================================
   NKS DESIGN SYSTEM v2.3 · BLACK BACKGROUND MODE
   Reemplaza navy por negro tipo Home
   ========================================================== */

html body{
  background-color:#020304 !important;
  background-image:
    linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px),
    radial-gradient(circle at 10% 20%,rgba(0,240,138,.08),transparent 18%),
    linear-gradient(180deg,#020304 0%,#050607 62%,#06080A 100%) !important;
}

html body:is(.nks-editorial,.nks-editorial-auto) :is(.entry-header,.post-header,.page-header,.entry-content,.post-content,.page-content),
html body .nks-obs,
html body .nks-obs-hero,
html body :is(footer,.site-footer,#colophon){
  background-color:transparent !important;
}

html body .nks-obs-note,
html body .nks-obs-summary article,
html body .nks-obs-card,
html body .nks-obs-reading,
html body .nks-obs-reading-grid article,
html body .nks-obs-license-inline,
html body .nks-obs-license-cite{
  background:rgba(8,9,11,.9) !important;
}

html body main table{
  background:rgba(8,9,11,.88) !important;
}

html body main blockquote{
  background:rgba(255,255,255,.05) !important;
}


/* NKS v2.4 LEGIBILITY FIX */
html body.nks-dark-system :is(main h1,.entry-title,.page-title,.post-title,h1.elementor-heading-title,.elementor-widget-heading h1){
  color:#C9D1DB !important;
  -webkit-text-fill-color:#C9D1DB !important;
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  text-shadow:none !important;
}
html body.nks-dark-system :is(.entry-header,.page-header,.post-header,.elementor-widget-heading,.elementor-widget-heading>.elementor-widget-container){
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
}
html body.nks-dark-system :is(header,.site-header,#masthead){
  background:#020304 !important;
  border-bottom:1px solid rgba(255,255,255,.075) !important;
}
html body.nks-dark-system :is(header,.site-header,#masthead) a{
  color:#CDD5DF !important;
  opacity:1 !important;
}
html body.nks-dark-system :is(header,.site-header,#masthead) a:hover{color:#00F08A !important;}
html body.nks-dark-system .nks-editorial-hero-image{
  width:min(100%,980px) !important; max-width:980px !important; margin:28px auto 46px !important;
}
html body.nks-dark-system .nks-editorial-hero-image img,html body.nks-dark-system img.nks-editorial-hero-image{
  width:100% !important; height:auto !important; border-radius:18px !important; box-shadow:0 16px 38px rgba(0,0,0,.32) !important;
}
html body.nks-dark-system,html body.nks-dark-system :is(.site,#page,#content,.site-content,.site-main,main,article,.content-area){background-color:#020304 !important;}


/* ==========================================================
   NKS DESIGN SYSTEM v2.5 · NO BLUE TYPOGRAPHY
   Regla definitiva: ningún texto editorial queda azul/navy.
   ========================================================== */

html body.nks-dark-system :is(
  main h1,main h1 *,
  .entry-title,.entry-title *,
  .page-title,.page-title *,
  .post-title,.post-title *,
  h1.elementor-heading-title,h1.elementor-heading-title *,
  .elementor-widget-heading h1,.elementor-widget-heading h1 *
){
  color:#C9D1DB !important;
  -webkit-text-fill-color:#C9D1DB !important;
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
  mix-blend-mode:normal !important;
}

html body.nks-dark-system :is(
  main h2,main h2 *,
  .elementor-widget-heading h2,.elementor-widget-heading h2 *
){
  color:#F7FAFC !important;
  -webkit-text-fill-color:#F7FAFC !important;
}

html body.nks-dark-system :is(
  main h3,main h3 *,main h4,main h4 *,main h5,main h5 *,main h6,main h6 *
){
  color:#E9EEF5 !important;
  -webkit-text-fill-color:#E9EEF5 !important;
}

html body.nks-dark-system main :is(p,li,td,label,figcaption){
  color:#D7DEE7 !important;
  -webkit-text-fill-color:#D7DEE7 !important;
}

html body.nks-dark-system main strong{
  color:#F7FAFC !important;
  -webkit-text-fill-color:#F7FAFC !important;
}

html body.nks-dark-system main a:not(.elementor-button):not(.button):not(.btn){
  color:#00F08A !important;
  -webkit-text-fill-color:#00F08A !important;
}

/* Si un plugin puso el color en spans internos del título, hereda el color NKS. */
html body.nks-dark-system :is(h1,h2,h3,h4,h5,h6) :is(span,b,strong,em,i){
  color:inherit !important;
  -webkit-text-fill-color:inherit !important;
}
