/*
Theme Name: Novaciber
Theme URI: https://novaciber.com
Author: Novaciber
Description: Tema a medida de Novaciber — diseño Dersig (hero indigo, narrativa oscuridad a claridad). Home como front-page; cabecera, pie y tipografia compartidos con el resto del sitio.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
Text Domain: novaciber
*/

/* ===== Fuentes Montserrat (autoalojadas) ===== */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-ext-200.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-200.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-ext-300.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-300.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-ext-400.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-ext-500.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-500.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-ext-600.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/montserrat-latin-600.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===== Estilos del tema ===== */
html { scroll-behavior: smooth; scroll-snap-type: y proximity; }
  body { margin: 0; background: #0D1025; font-family: 'Montserrat', ui-sans-serif, system-ui, sans-serif; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
  ::selection { background: #FF6B6B; color: #fff; }
  a { color: inherit; text-decoration: none; }
  .nv-track::-webkit-scrollbar { height: 0; width: 0; }
  .nv-track { scrollbar-width: none; }

  /* Capacidades — 5 cajas iguales sin scroll en desktop */
  #capacidades .nv-track {
    overflow-x: visible !important;
    scroll-snap-type: none !important;
    flex-wrap: nowrap !important;
  }
  #capacidades article {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
  }
  /* Ocultar "Desliza →" en desktop */
  #capacidades [style*="white-space"] { display: none !important; }

  /* ===== RESPONSIVE MOBILE (≤768px) ===== */
  @media (max-width: 768px) {
    html, body { overflow-x: hidden; }

    /* Nav */
    [data-nav-tag], [data-nav-rule] { display: none !important; }
    [data-nav-border], [data-nav-links] { display: none !important; }
    [data-nav-burger] { display: flex !important; }
    [data-nav-drawer][data-open="1"] { display: flex !important; }
    [data-nav-drawer] a { color: #fff !important; }
  }
  [data-nav-links] a { white-space: nowrap; }
  @media (max-width: 1024px) {
    [data-nav-links] { display: none !important; }
    [data-nav-burger] { display: flex !important; }
    [data-nav-tag], [data-nav-rule] { display: none !important; }
    [data-nav-border] { display: none !important; }
  }
  @media (max-width: 768px) {

    /* Hero */
    #panel-hero > div {
      padding: 96px 24px 56px !important;
      width: 100% !important;
      height: auto !important;
    }
    #panel-hero h1 { font-size: clamp(2.8rem, 12vw, 4.5rem) !important; }
    /* Hero logos row mobile */
    #panel-hero span[style*="width:1px;height:12px"] { display: none !important; }
    #panel-hero a[href*="card-"] { padding: 0 6px !important; font-size: 11px !important; }
    #panel-hero div[style*="justify-content:space-between"] > div { gap: 4px 0 !important; }

    /* Criterio — reflow absolute children */
    #panel-criterio {
      display: flex !important;
      flex-direction: column !important;
      justify-content: flex-start !important;
      align-items: flex-start !important;
      padding: 80px 24px 56px !important;
      min-height: auto !important;
    }
    [data-hide-mobile] { display: none !important; }
    #panel-criterio > span {
      position: static !important;
      order: 1 !important;
      left: auto !important; top: auto !important;
    }
    #panel-criterio > h2 {
      position: static !important;
      order: 2 !important;
      width: 100% !important;
      height: auto !important;
      font-size: clamp(2.2rem, 9vw, 3.2rem) !important;
      text-align: left !important;
      margin: 16px 0 0 !important;
      transform: none !important;
      left: auto !important;
      top: auto !important;
    }
    #panel-criterio > div {
      position: static !important;
      order: 3 !important;
      width: 100% !important;
      height: auto !important;
      left: auto !important;
      top: auto !important;
      padding: 20px 0 0 !important;
    }
    #panel-criterio > div > p {
      position: static !important;
      left: auto !important;
      top: auto !important;
      color: rgba(255,255,255,0.65) !important;
      font-size: 1rem !important;
      text-align: left !important;
      max-width: 100% !important;
    }

    /* Claridad */
    #panel-claridad { min-height: auto !important; }
    #panel-claridad > div {
      padding: 80px 24px 56px !important;
    }
    #panel-claridad h2 { font-size: clamp(2.2rem, 9vw, 3.2rem) !important; }
    #panel-claridad p[style*="position"] {
      position: static !important;
      left: auto !important;
      top: auto !important;
      margin-top: 24px !important;
      max-width: 100% !important;
      font-size: 1rem !important;
    }

    /* Transformacion */
    #panel-transformacion { min-height: auto !important; }
    #panel-transformacion > div {
      text-align: left !important;
      height: auto !important;
      padding: 80px 24px 56px !important;
    }
    #panel-transformacion h2 {
      font-size: clamp(2.2rem, 9vw, 3.2rem) !important;
      width: 100% !important;
      height: auto !important;
      transform: none !important;
      margin-left: 0 !important;
    }
    #panel-transformacion > div > p { margin-left: 0 !important; max-width: 100% !important; }

    /* Capacidades — en móvil volver a scroll horizontal */
    #capacidades .nv-track { overflow-x: auto !important; scroll-snap-type: x mandatory !important; }
    #capacidades article { flex: 0 0 auto !important; width: min(82vw, 300px) !important; }
    #capacidades [style*="white-space"] { display: flex !important; }

    /* Metodología */
    #metodologia > div { padding: 56px 24px 48px !important; }
    #metodologia h2 { font-size: clamp(2rem, 8vw, 3rem) !important; }
    [data-track-h] { grid-template-columns: 1fr !important; }
    [data-track-h] li { border-right: none !important; border-bottom: 1px solid rgba(13,16,37,0.08) !important; padding-bottom: 24px !important; }
    [data-track-h] li:last-child { border-bottom: none !important; }

    /* Oportunidades */
    #panel-oportunidades > div { padding: 48px 24px !important; }
    #panel-oportunidades h2 { font-size: clamp(2rem, 8vw, 3rem) !important; }
    #panel-oportunidades p { font-size: clamp(1.1rem, 4vw, 1.5rem) !important; }

    /* Diagnóstico */
    #panel-diagnostico > div { padding: 80px 24px 56px !important; }
    #panel-diagnostico h2 { font-size: clamp(2rem, 8vw, 3.2rem) !important; }
    #panel-diagnostico div[style*="flex-wrap"] { flex-direction: column !important; align-items: flex-start !important; }

    /* Footer */
    [data-ft-grid] { padding: 48px 24px !important; }
    [data-ft-grid] > div:last-child { grid-template-columns: 1fr !important; }
    [data-ft-grid] p { max-width: 100% !important; }
  }

  /* ===== TABLET (769–1100px) ===== */
  @media (min-width: 769px) and (max-width: 1100px) {
    #panel-criterio > h2 { left: 560px !important; width: 500px !important; font-size: clamp(3rem, 6vw, 5rem) !important; }
    #panel-transformacion h2 { width: auto !important; height: auto !important; font-size: clamp(3rem, 7vw, 5.5rem) !important; transform: none !important; }
    [data-track-h] { grid-template-columns: repeat(3, 1fr) !important; }
    [data-track-h] li:nth-child(3) { border-right: none !important; }
    [data-track-h] li:nth-child(4) { padding-top: 28px !important; }
  }

body{position:relative;overflow-x:hidden}
  #nova-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:hidden}
  .nf{position:absolute;display:block;line-height:0}
  .nf>img[data-nova]{display:block;width:100%;height:auto}

  /* tamaños reducidos para no invadir texto; left fiel a Dersig (proporciones lienzo 1200) */
  .nf-criterio{ left:6%;  width:46%; }
  .nf-criterio>img{mix-blend-mode:screen}
  .nf-claridad{ left:auto; right:-2%; width:40%; }
  .nf-transformacion{ left:-3%; width:52%; }

  @media (prefers-reduced-motion:no-preference) and (min-width:861px){
    .nf-criterio>img{animation:nf 12s ease-in-out infinite}
    .nf-claridad>img{animation:nf 15s ease-in-out infinite}
    .nf-transformacion>img{animation:nf 17s ease-in-out infinite;animation-delay:-4s}
  }
  @keyframes nf{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

  @media (max-width:860px){#nova-overlay{display:none!important}}

nav[data-nav]{ transition: background .35s ease, backdrop-filter .35s ease, border-color .35s ease !important; border-bottom:1px solid transparent; }
  nav[data-nav].nav-scrolled{
    background: rgba(13,16,37,0.72) !important;
    backdrop-filter: blur(14px) saturate(1.1);
    -webkit-backdrop-filter: blur(14px) saturate(1.1);
    border-bottom-color: rgba(255,255,255,0.10);
  }
  /* Páginas internas (no home): barra oscura desde arriba para que el menú
     blanco se lea sobre fondos claros (p. ej. el Blog). */
  nav[data-nav].nav-solid{
    background: rgba(13,16,37,0.92) !important;
    backdrop-filter: blur(14px) saturate(1.1);
    -webkit-backdrop-filter: blur(14px) saturate(1.1);
    border-bottom-color: rgba(255,255,255,0.10);
  }

/* Hilo de trayectoria: visible en escritorio, oculto en movil */
@media (max-width: 1023px) {
  [data-thread] { display: none !important; }
}

/* ===== Blindaje de tipografía frente a la CSS global de Elementor =====
   Elementor fuerza h1/h2 a font-weight:800 y color morado con !important,
   pisando el diseño. Reafirmamos los valores del diseño con mayor
   especificidad (id #nv-root) para que ganen sin depender de snippets. */
#nv-root [data-panel] h1,
#nv-root [data-panel] h2,
#nv-root [data-panel] h3 {
  font-family: 'Montserrat', ui-sans-serif, sans-serif !important;
  font-weight: 200 !important;
  color: inherit !important;
}

/* ===== Cuerpo de texto: Montserrat en TODO el tema =====
   El diseño original es todo Montserrat. Elementor define DM Sans como
   fuente global y se la cuela a los parrafos (que heredan la fuente),
   pisando el body del tema. Reafirmamos Montserrat en todo el contenido
   de #nv-root con alta especificidad. Solo toca la FAMILIA: cada elemento
   conserva su peso (200/300/400/600) del diseño. Excluimos iconos
   (i, svg, clases fa/icon/eicon) para no romperlos en paginas Elementor. */
#nv-root :not(i):not(svg):not(use):not([class*="icon"]):not([class*="fa-"]):not([class*="eicon"]):not([class*="dashicons"]) {
  font-family: 'Montserrat', ui-sans-serif, system-ui, sans-serif !important;
}

/* ===== Banner de cookies (Complianz) con la identidad Novaciber =====
   Solo estilo, acotado al banner. No altera su funcion legal (RGPD). */
#cmplz-cookiebanner-container .cmplz-cookiebanner,
.cmplz-cookiebanner {
  font-family: 'Montserrat', ui-sans-serif, sans-serif !important;
  background: #0D1025 !important;
  color: rgba(255,255,255,0.82) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 0 !important;
  box-shadow: 0 -12px 48px rgba(0,0,0,0.4) !important;
}
.cmplz-cookiebanner .cmplz-title { color:#fff !important; font-weight:600 !important; letter-spacing:-0.01em !important; }
.cmplz-cookiebanner .cmplz-body,
.cmplz-cookiebanner .cmplz-message,
.cmplz-cookiebanner p { color: rgba(255,255,255,0.72) !important; font-weight:300 !important; }

/* Botones: base */
.cmplz-cookiebanner .cmplz-btn {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  border-radius: 0 !important;
  transition: background .25s ease, border-color .25s ease, color .25s ease !important;
}
/* Aceptar todas -> coral */
.cmplz-cookiebanner .cmplz-btn.cmplz-accept {
  background:#FF6B6B !important; color:#fff !important; border:1px solid #FF6B6B !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover { background:#ff5252 !important; border-color:#ff5252 !important; }
/* Rechazar / Configurar / Guardar -> contorno claro */
.cmplz-cookiebanner .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences {
  background: transparent !important; color:#fff !important; border:1px solid rgba(255,255,255,0.4) !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences:hover { border-color:#FF6B6B !important; color:#FF6B6B !important; }

/* Enlaces legales del banner */
.cmplz-cookiebanner .cmplz-links a,
.cmplz-cookiebanner a.cmplz-link {
  color: rgba(255,255,255,0.6) !important; text-decoration:none !important; transition:color .25s ease !important;
}
.cmplz-cookiebanner .cmplz-links a:hover,
.cmplz-cookiebanner a.cmplz-link:hover { color:#FF6B6B !important; }

/* Interruptores de categorias (vista Configurar) */
.cmplz-cookiebanner .cmplz-category { color: rgba(255,255,255,0.82) !important; }
.cmplz-cookiebanner input:checked + .cmplz-slider,
.cmplz-cookiebanner .cmplz-slider input:checked + label { background:#FF6B6B !important; }

/* Boton persistente "Gestionar consentimiento" (Complianz) — discreto y de marca.
   Es un control RGPD para reabrir preferencias; lo dejamos sutil, no eliminado. */
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0.05em !important;
  background: #0D1025 !important;
  color: rgba(255,255,255,0.7) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: 0 !important;
  padding: 8px 14px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.25) !important;
  opacity: 0.85 !important;
  transition: opacity .25s ease, color .25s ease, border-color .25s ease !important;
}
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent:hover {
  opacity: 1 !important;
  color: #FF6B6B !important;
  border-color: #FF6B6B !important;
}

/* Anclar el boton "Gestionar consentimiento" a la esquina con margen,
   para que no quede cortado por el borde inferior. */
#cmplz-manage-consent {
  position: fixed !important;
  bottom: 18px !important;
  right: 18px !important;
  left: auto !important;
  top: auto !important;
  width: auto !important;
  max-width: none !important;
  z-index: 99999 !important;
}
#cmplz-manage-consent .cmplz-btn.cmplz-manage-consent {
  position: static !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

/* ===== Ocultar la fachada vieja incrustada en paginas (Canarias, etc.) =====
   La nav y el pie antiguos (.nc-nav / .nc-footer) estan cosidos en el
   contenido Elementor de algunas paginas y se solapan con los del tema.
   Los ocultamos sin tocar el contenido real. Nuestra cabecera usa
   [data-nav] y nuestro pie no lleva clase nc-, asi que solo cae lo viejo. */
.nc-nav,
#nc-snap-nav,
.nc-snap-nav,
.nc-footer,
footer.nc-footer {
  display: none !important;
}

/* ===== Listado del blog y entrada individual (index.php) ===== */
#nv-contenido {
  background:#fff; color:#0D1025;
  min-height:60vh;
  padding: clamp(120px,16vh,180px) clamp(24px,5vw,56px) clamp(72px,9vh,110px);
}
/* Páginas con hero propio (Test .nct, Canarias .nvc): quitar padding-top del contenedor */
#nv-contenido:has(.nct),
#nv-contenido:has(.nvc) {
  padding: 0 !important;            /* sin padding lateral -> sin franja a los lados */
  background: #0D1025 !important;   /* fondo índigo -> huecos entre secciones no son blancos */
  overflow-x: hidden;
}
/* El inner, el article Y el .nv-entry deben ir a ancho completo sin fondo blanco.
   CLAVE: .nv-entry tiene max-width:720px que comprimía todo el bloque. */
#nv-contenido:has(.nct) .nv-contenido-inner,
#nv-contenido:has(.nvc) .nv-contenido-inner,
#nv-contenido:has(.nct) .nv-single,
#nv-contenido:has(.nvc) .nv-single,
#nv-contenido:has(.nct) .nv-entry,
#nv-contenido:has(.nvc) .nv-entry {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
.nv-contenido-inner { max-width:1120px; margin:0 auto; }


/* Cabecera de seccion */
.nv-blog-head, .nv-single-head { margin-bottom: clamp(32px,5vw,56px); }
#nv-contenido .nv-blog-title,
#nv-contenido .nv-single-title {
  font-family:'Montserrat',sans-serif !important;
  font-weight:200 !important;
  color:#0D1025 !important;
  letter-spacing:-0.02em; line-height:1.05;
  margin:0 0 16px;
}
.nv-blog-title { font-size:clamp(2.4rem,6vw,4rem); }
.nv-single-title { font-size:clamp(2rem,5vw,3.2rem); max-width:20ch; }
.nv-rule { display:block; width:44px; height:2px; background:#FF6B6B; }

/* Lista editorial del blog (sin imagenes) */
.nv-list { display:flex; flex-direction:column; }
.nv-row {
  display:block; text-decoration:none; color:inherit;
  padding: clamp(28px,4vw,40px) 0;
  border-top:1px solid rgba(13,16,37,0.12);
  transition: padding-left .3s ease;
}
.nv-row:first-child { border-top:none; padding-top:0; }
.nv-row:hover { padding-left:10px; }
/* Categoria: jerarquia sobria, NO coral (coral = solo decision) */
.nv-row-cat {
  display:inline-block;
  font-weight:600; font-size:11px; letter-spacing:0.18em; text-transform:uppercase;
  color: rgba(13,16,37,0.45);
  margin-bottom:14px;
}
#nv-contenido .nv-row-title {
  font-family:'Montserrat',sans-serif !important;
  font-weight:200 !important;
  color:#0D1025 !important;
  letter-spacing:-0.02em; line-height:1.1; margin:0 0 12px;
  font-size:clamp(1.6rem,3.4vw,2.4rem);
  transition: color .25s ease;
}
.nv-row:hover .nv-row-title { color:#0D1025 !important; }
.nv-row-ex {
  font-weight:300; font-size:1.02rem; line-height:1.6;
  color:rgba(13,16,37,0.66); margin:0 0 14px; max-width:64ch;
}
/* "Leer mas": la unica decision de la fila -> coral */
.nv-row-more { font-weight:600; font-size:0.8rem; letter-spacing:0.04em; color:#FF6B6B; }

/* Entrada individual: cuerpo legible */
.nv-entry { font-weight:300; font-size:1.06rem; line-height:1.75; color:rgba(13,16,37,0.86); max-width:720px; }
#nv-contenido .nv-entry h2, #nv-contenido .nv-entry h3 {
  font-family:'Montserrat',sans-serif !important; font-weight:400 !important; color:#0D1025 !important;
  letter-spacing:-0.01em; margin:1.6em 0 0.5em;
}
.nv-entry a { color:#FF6B6B; }

/* Paginacion */
.nv-contenido-inner .pagination, #nv-contenido .nav-links {
  display:flex; gap:10px; margin-top: clamp(40px,5vw,64px); flex-wrap:wrap;
}
#nv-contenido .page-numbers {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:42px; height:42px; padding:0 12px;
  border:1px solid rgba(13,16,37,0.15); text-decoration:none;
  font-weight:500; font-size:0.9rem; color:#0D1025; transition:all .25s ease;
}
#nv-contenido .page-numbers.current { background:#0D1025; color:#fff; border-color:#0D1025; }
#nv-contenido .page-numbers:hover { border-color:#FF6B6B; color:#FF6B6B; }
.nv-empty { font-weight:300; font-size:1.1rem; }

/* ===== Formulario WPForms con la identidad Novaciber =====
   Pensado para el formulario de contacto (ID 375) cuando va al final de una
   pagina de contenido (.nv-entry). Banda indigo a sangre + campos de marca.
   Solo estilo; no altera campos ni envios del formulario. */
.nv-entry .wpforms-container {
  width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  background: #0D1025;
  padding: clamp(8px,2vh,24px) clamp(24px,5vw,56px) clamp(60px,8vh,100px);
}
.nv-entry .wpforms-container .wpforms-form {
  max-width: 720px; margin: 0 auto;
  font-family: 'Montserrat', ui-sans-serif, system-ui, sans-serif !important;
}
.nv-entry .wpforms-field-label {
  color: rgba(255,255,255,0.6) !important;
  font-weight: 600 !important; font-size: 11px !important;
  letter-spacing: 0.06em !important; text-transform: uppercase !important;
  margin-bottom: 7px !important;
}
.nv-entry .wpforms-field-description,
.nv-entry .wpforms-field-sublabel { color: rgba(255,255,255,0.45) !important; font-weight:300 !important; }
.nv-entry .wpforms-field input.wpforms-field-medium,
.nv-entry .wpforms-field input[type="text"],
.nv-entry .wpforms-field input[type="email"],
.nv-entry .wpforms-field textarea,
.nv-entry .wpforms-field-name input {
  width: 100% !important; max-width: 100% !important;
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
  border-radius: 0 !important;
  color: #fff !important; font-family: inherit !important; font-weight: 300 !important;
  font-size: 1rem !important; padding: 13px 15px !important;
}
.nv-entry .wpforms-field textarea { min-height: 120px !important; }
.nv-entry .wpforms-field input::placeholder,
.nv-entry .wpforms-field textarea::placeholder { color: rgba(255,255,255,0.35) !important; }
.nv-entry .wpforms-field input:focus,
.nv-entry .wpforms-field textarea:focus { outline: none !important; border-color: #FF6B6B !important; }
/* Casilla de consentimiento */
.nv-entry .wpforms-field-checkbox label,
.nv-entry .wpforms-field-checkbox .wpforms-field-label-inline { color: rgba(255,255,255,0.6) !important; font-weight:300 !important; font-size:.86rem !important; }
.nv-entry .wpforms-field-checkbox input { accent-color: #FF6B6B !important; }
/* Boton Enviar -> coral (la decision) */
.nv-entry .wpforms-submit-container { text-align: left !important; }
.nv-entry button.wpforms-submit,
.nv-entry .wpforms-submit {
  background: #FF6B6B !important; color: #fff !important; border: none !important;
  border-radius: 0 !important; font-family: 'Montserrat', sans-serif !important;
  font-weight: 600 !important; letter-spacing: 0.04em !important;
  font-size: 0.92rem !important; padding: 15px 38px !important; cursor: pointer !important;
  transition: background .25s ease !important;
}
.nv-entry button.wpforms-submit:hover,
.nv-entry .wpforms-submit:hover { background: #ff5252 !important; }
/* Mensaje de confirmacion */
.nv-entry .wpforms-confirmation-container-full {
  background: rgba(255,107,107,0.08) !important; border: 1px solid #FF6B6B !important;
  color: #fff !important; border-radius: 0 !important; font-weight: 300 !important;
}
/* Avisos de validacion */
.nv-entry .wpforms-error { color: #ffb3b3 !important; }

/* ===== FIX Canarias/Test: títulos correctos en secciones oscuras y claras ===== */
#nv-root .nvc .dark h1, #nv-root .nvc .dark h2, #nv-root .nvc .dark h3,
#nv-root .nct .dark h1, #nv-root .nct .dark h2, #nv-root .nct .dark h3 { color: #fff !important; }
#nv-root .nvc .sec:not(.dark) h2, #nv-root .nvc .sec:not(.dark) h3,
#nv-root .nct .sec:not(.dark) h2, #nv-root .nct .sec:not(.dark) h3 { color: #0D1025 !important; }
#nv-root .nvc .nvc-serv h3 { color: #fff !important; }
/* Textos de cuerpo en secciones claras: índigo legible */
#nv-root .nvc .sec:not(.dark) p, #nv-root .nct .sec:not(.dark) p { color: rgba(13,16,37,.72) !important; }
#nv-root .nvc .dark p, #nv-root .nct .dark p { color: rgba(255,255,255,.66) !important; }

/* ===== FIX DEFINITIVO: formulario WPForms en páginas Canarias/Test =====
   El form va fuera del bloque .nvc/.nct, sobre fondo blanco, y sus etiquetas
   son blancas (pensadas para fondo índigo) -> invisibles. Solución: dar a la
   zona del formulario fondo índigo a sangre completa, para que las etiquetas
   blancas del tema sean legibles y el form se integre con la sección "Hablemos". */
#nv-contenido:has(.nvc) .wpforms-container,
#nv-contenido:has(.nct) .wpforms-container {
  background: #0D1025 !important;
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  padding: clamp(8px,2vh,24px) clamp(24px,5vw,56px) clamp(72px,9vh,110px) !important;
  max-width: 100vw !important;
  box-sizing: border-box !important;
}
#nv-contenido:has(.nvc) .wpforms-container .wpforms-form,
#nv-contenido:has(.nct) .wpforms-container .wpforms-form {
  max-width: 680px !important;
  margin: 0 auto !important;
}
/* Etiquetas legibles sobre el índigo */
#nv-contenido:has(.nvc) .wpforms-field-label,
#nv-contenido:has(.nct) .wpforms-field-label {
  color: rgba(255,255,255,0.75) !important; font-weight:500 !important;
  font-size:.8rem !important; letter-spacing:.06em !important; text-transform:uppercase !important;
  font-family:'Montserrat',sans-serif !important;
}
/* Campos */
#nv-contenido:has(.nvc) .wpforms-field input,
#nv-contenido:has(.nvc) .wpforms-field textarea,
#nv-contenido:has(.nct) .wpforms-field input,
#nv-contenido:has(.nct) .wpforms-field textarea {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  border-radius: 0 !important; color: #fff !important;
  padding: 13px 16px !important; font-family:'Montserrat',sans-serif !important; font-weight:300 !important;
}
#nv-contenido:has(.nvc) .wpforms-field input:focus,
#nv-contenido:has(.nvc) .wpforms-field textarea:focus,
#nv-contenido:has(.nct) .wpforms-field input:focus,
#nv-contenido:has(.nct) .wpforms-field textarea:focus { border-color:#FF6B6B !important; outline:none !important; }
#nv-contenido:has(.nvc) .wpforms-field input::placeholder,
#nv-contenido:has(.nct) .wpforms-field input::placeholder { color: rgba(255,255,255,0.35) !important; }
/* Checkbox consentimiento + textos legales */
#nv-contenido:has(.nvc) .wpforms-field-checkbox label,
#nv-contenido:has(.nct) .wpforms-field-checkbox label,
#nv-contenido:has(.nvc) .wpforms-field-description,
#nv-contenido:has(.nct) .wpforms-field-description { color: rgba(255,255,255,0.6) !important; font-weight:300 !important; }
#nv-contenido:has(.nvc) .wpforms-field-checkbox input,
#nv-contenido:has(.nct) .wpforms-field-checkbox input { accent-color:#FF6B6B !important; }
/* Botón Enviar coral */
#nv-contenido:has(.nvc) button.wpforms-submit,
#nv-contenido:has(.nct) button.wpforms-submit {
  background:#FF6B6B !important; color:#fff !important; border:none !important; border-radius:0 !important;
  font-family:'Montserrat',sans-serif !important; font-weight:600 !important; padding:15px 40px !important;
  letter-spacing:.03em !important; cursor:pointer !important;
}
#nv-contenido:has(.nvc) button.wpforms-submit:hover,
#nv-contenido:has(.nct) button.wpforms-submit:hover { background:#ff5252 !important; }


/* ===== FIX FRANJAS · .bleed ya no necesita escapar =====
   El contenedor de página ya es full-width índigo, así que el truco 100vw del
   .bleed sobra y es lo que causaba el scroll horizontal (franja derecha).
   Lo normalizamos a ancho completo del contenedor, sin 100vw ni márgenes. */
.nvc .bleed, .nct .bleed {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ===== FIX ESPACIOS SECCIONES (Canarias/Test) =====
   .sec tenía padding vertical clamp(60px,8vh,100px): el 8vh infla demasiado
   y duplica el hueco entre secciones. Lo dejamos en un rango compacto. */
.nvc .sec, .nct .sec {
  padding-top: clamp(48px,5vw,72px) !important;
  padding-bottom: clamp(48px,5vw,72px) !important;
}

/* ============================================================
   HABLEMOS · maquetación a dos columnas (invitación + WPForms)
   El grupo lleva la clase .nvc-hablemos. display:contents aplana
   el inner-container de Gutenberg si existiera (compat. versiones).
   ============================================================ */
#nv-contenido:has(.nvc) .nvc-hablemos {
  background: #0D1025 !important;
  width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  box-sizing: border-box;
  padding: clamp(56px,6vw,88px) clamp(24px,5vw,56px) !important;
  display: flex; flex-wrap: wrap;
  gap: clamp(36px,5vw,72px);
  align-items: center; justify-content: center;
}
#nv-contenido:has(.nvc) .nvc-hablemos > .wp-block-group__inner-container { display: contents; }
#nv-contenido:has(.nvc) .nvc-hablemos > * { margin: 0; }

#nv-contenido:has(.nvc) .nvc-hablemos .hablemos-text {
  flex: 1 1 360px; max-width: 460px; text-align: left;
}
#nv-contenido:has(.nvc) .nvc-hablemos .hablemos-text .eyebrow { color: rgba(255,255,255,.55); }
#nv-contenido:has(.nvc) .nvc-hablemos .hablemos-text h2 {
  color: #fff !important; text-align: left; margin: 14px 0 18px;
}
#nv-contenido:has(.nvc) .nvc-hablemos .hablemos-text p {
  color: rgba(255,255,255,.72) !important; text-align: left; margin: 0 0 22px;
}
#nv-contenido:has(.nvc) .nvc-hablemos .hablemos-text .meta {
  color: rgba(255,255,255,.6); line-height: 1.9; font-size: .95rem;
}
#nv-contenido:has(.nvc) .nvc-hablemos .hablemos-text .meta b { color: #fff; }

#nv-contenido:has(.nvc) .nvc-hablemos .wpforms-container {
  flex: 1 1 420px; max-width: 560px;
  background: transparent !important;
  width: auto !important; max-width: 560px !important;
  margin: 0 !important; padding: 0 !important;
}

@media (max-width: 820px) {
  #nv-contenido:has(.nvc) .nvc-hablemos { flex-direction: column; align-items: stretch; gap: 28px; }
  #nv-contenido:has(.nvc) .nvc-hablemos .hablemos-text,
  #nv-contenido:has(.nvc) .nvc-hablemos .wpforms-container { max-width: 100% !important; flex-basis: auto; }
}

/* ============================================================
   Secciones claras de .nvc / .nct sobre el contenedor índigo.
   Sin fondo propio, el texto oscuro quedaba invisible sobre el
   índigo. Fondo blanco explícito = legibles (Canarias y Test).
   ============================================================ */
#nv-contenido:has(.nvc) .nvc .sec:not(.dark):not(.soft),
#nv-contenido:has(.nct) .nct .sec:not(.dark):not(.soft) { background: #fff !important; }

/* Bloque de FAQs del Test: va suelto en .nct (sin <section>) */
#nv-contenido:has(.nct) .nct:has(.nct-faq) {
  background: #fff !important;
  padding: clamp(40px,5vw,64px) clamp(24px,5vw,56px) !important;
}
#nv-contenido:has(.nct) .nct:has(.nct-faq) .nct-faq {
  max-width: 860px; margin-left: auto; margin-right: auto;
}

/* ============================================================
   Quiz del Test (.ncq-*): recolor de la paleta morada/lavanda
   heredada al sistema del tema Dersig (índigo + coral + Montserrat).
   Scoping con #nv-contenido para ganar al <style> incrustado del bloque.
   No toca la lógica del test ni los colores semánticos sí/proceso/no.
   ============================================================ */
#nv-contenido .ncq-intro{ background:linear-gradient(135deg,#141833 0%,#0D1025 100%) !important; }
#nv-contenido .ncq-progress-bar{ background:linear-gradient(90deg,#FF6B6B,#0D1025) !important; }
#nv-contenido .ncq-progress-bar-bg,
#nv-contenido .ncq-block-bar{ background:#EEF0F5 !important; }
#nv-contenido .ncq-result-header{ background:#F7F8FA !important; }
#nv-contenido .ncq-cta-simple{ border-color:#EEF0F5 !important; }
/* botón secundario y estado "seleccionado" neutro -> índigo */
#nv-contenido .ncq-btn-secondary{ color:#0D1025 !important; border-color:#0D1025 !important; }
#nv-contenido .ncq-btn-secondary:hover{ background:#0D1025 !important; color:#fff !important; }
#nv-contenido .ncq-opt:hover{ color:#0D1025 !important; }
#nv-contenido .ncq-opt.selected{ border-color:#0D1025 !important; background:rgba(13,16,37,.06) !important; color:#0D1025 !important; }
#nv-contenido .ncq-opt.selected .ncq-opt-dot{ background:#0D1025 !important; border-color:#0D1025 !important; }
/* re-afirmar semánticos sí/proceso/no por encima del scope con ID */
#nv-contenido .ncq-opt.si.selected{ border-color:#22C55E !important; background:#F0FDF4 !important; color:#0D1025 !important; }
#nv-contenido .ncq-opt.proceso.selected{ border-color:#FF6B6B !important; background:#FFFBEB !important; color:#0D1025 !important; }
#nv-contenido .ncq-opt.no.selected{ border-color:#EF4444 !important; background:#FFF0F0 !important; color:#0D1025 !important; }
#nv-contenido .ncq-opt.si.selected .ncq-opt-dot{ background:#22C55E !important; border-color:#22C55E !important; }
#nv-contenido .ncq-opt.proceso.selected .ncq-opt-dot{ background:#FF6B6B !important; border-color:#FF6B6B !important; }
#nv-contenido .ncq-opt.no.selected .ncq-opt-dot{ background:#EF4444 !important; border-color:#EF4444 !important; }
/* tipografía del quiz al sistema del tema */
#nv-contenido [class^="ncq-"], #nv-contenido [class*=" ncq-"]{ font-family:'Montserrat',ui-sans-serif,system-ui,sans-serif !important; }
/* el título de la tarjeta debe ir en blanco sobre el índigo (la regla
   de encabezados de página del tema lo forzaba a oscuro) */
#nv-contenido .ncq-intro h1,
#nv-contenido .ncq-intro h2,
#nv-contenido .ncq-intro h3{ color:#fff !important; }

/* Pantalla de intro del quiz integrada en la franja índigo
   (sin tarjeta de azul distinto, sin esquinas redondeadas) */
#nv-contenido .ncq-intro-screen{ background:#0D1025 !important; }
#nv-contenido .ncq-intro{
  background:#0D1025 !important;
  border-radius:0 !important;
  margin-bottom:0 !important;
  box-shadow:none !important;
}

/* Texto de RESULTADOS del quiz: pasar del morado lavado (rgba(45,27,105,…))
   a índigo legible. Paleta: índigo para texto, coral solo en datos/CTA. */
#nv-contenido .ncq-result-desc{ color:rgba(13,16,37,.82) !important; }
#nv-contenido .ncq-weak-rec,
#nv-contenido .ncq-normativa p,
#nv-contenido .ncq-cta-simple p{ color:rgba(13,16,37,.8) !important; }
#nv-contenido .ncq-weak-q,
#nv-contenido .ncq-block-name{ color:#0D1025 !important; }
#nv-contenido .ncq-block-label,
#nv-contenido .ncq-progress-count{ color:rgba(13,16,37,.62) !important; }
#nv-contenido .ncq-cta-contact{ color:rgba(13,16,37,.72) !important; }
#nv-contenido .ncq-radar-title{ color:#0D1025 !important; }

/* Coral solo en CTAs: la rayita decorativa del resultado pasa a índigo tenue */
#nv-contenido .ncq-score-sep{ background:rgba(13,16,37,.18) !important; }

/* ===== Banda de contacto del FOOTER (CTA Novaciber + WPForms 375) =====
   Aparece en todas las páginas salvo Canarias (que ya tiene su formulario).
   Fondo índigo; formulario estilizado para fondo oscuro (igual que Canarias). */
.nv-ftcta{}
.nv-ftcta-in{ max-width:1280px; margin:0 auto; padding:clamp(48px,6vw,84px) clamp(24px,5vw,56px); display:grid; grid-template-columns:1fr; gap:48px; }
@media (min-width:900px){ .nv-ftcta-in{ grid-template-columns:1.05fr 1fr; gap:72px; align-items:start; } }
.nv-ftcta-kicker{ font-size:10px; letter-spacing:0.28em; text-transform:uppercase; font-weight:600; color:#FF6B6B; }
#nv-root .nv-ftcta h2{ font-weight:200; letter-spacing:-0.035em; line-height:1.0; margin:16px 0 0; font-size:clamp(2.6rem,5.5vw,4.8rem); color:#fff !important; -webkit-text-fill-color:#fff !important; max-width:13ch; }
.nv-ftcta p{ margin:22px 0 0; color:rgba(255,255,255,0.6); font-weight:300; line-height:1.6; max-width:36ch; }
.nv-ftcta .nv-ftcta-mail a{ color:#fff; font-weight:500; }
.nv-ftcta .nv-ftcta-mail a:hover{ color:#FF6B6B; }
/* Formulario WPForms en el footer (fondo oscuro) */
.nv-ftcta .wpforms-container{ margin:0 !important; background:transparent !important; padding:0 !important; }
.nv-ftcta .wpforms-form{ font-family:'Montserrat',ui-sans-serif,system-ui,sans-serif !important; }
.nv-ftcta .wpforms-field-label{ color:rgba(255,255,255,0.6) !important; font-weight:600 !important; font-size:11px !important; letter-spacing:0.06em !important; text-transform:uppercase !important; margin-bottom:7px !important; }
.nv-ftcta .wpforms-field-description,
.nv-ftcta .wpforms-field-sublabel{ color:rgba(255,255,255,0.45) !important; font-weight:300 !important; }
.nv-ftcta .wpforms-field input[type="text"],
.nv-ftcta .wpforms-field input[type="email"],
.nv-ftcta .wpforms-field input.wpforms-field-medium,
.nv-ftcta .wpforms-field textarea,
.nv-ftcta .wpforms-field-name input{ width:100% !important; max-width:100% !important; background:rgba(255,255,255,0.04) !important; border:1px solid rgba(255,255,255,0.16) !important; border-radius:0 !important; color:#fff !important; font-family:inherit !important; font-weight:300 !important; font-size:1rem !important; padding:13px 15px !important; }
.nv-ftcta .wpforms-field textarea{ min-height:110px !important; }
.nv-ftcta .wpforms-field input::placeholder,
.nv-ftcta .wpforms-field textarea::placeholder{ color:rgba(255,255,255,0.35) !important; }
.nv-ftcta .wpforms-field input:focus,
.nv-ftcta .wpforms-field textarea:focus{ outline:none !important; border-color:#FF6B6B !important; }
.nv-ftcta .wpforms-field-checkbox label,
.nv-ftcta .wpforms-field-checkbox .wpforms-field-label-inline{ color:rgba(255,255,255,0.6) !important; font-weight:300 !important; font-size:.86rem !important; }
.nv-ftcta .wpforms-field-checkbox input{ accent-color:#FF6B6B !important; }
.nv-ftcta .wpforms-submit-container{ text-align:left !important; }
.nv-ftcta button.wpforms-submit,
.nv-ftcta .wpforms-submit{ background:#FF6B6B !important; color:#fff !important; border:none !important; border-radius:0 !important; font-family:'Montserrat',sans-serif !important; font-weight:600 !important; letter-spacing:0.04em !important; font-size:0.92rem !important; padding:15px 38px !important; cursor:pointer !important; transition:background .25s ease !important; }
.nv-ftcta button.wpforms-submit:hover,
.nv-ftcta .wpforms-submit:hover{ background:#ff5252 !important; }
.nv-ftcta .wpforms-confirmation-container-full{ background:rgba(255,107,107,0.08) !important; border:1px solid #FF6B6B !important; color:#fff !important; border-radius:0 !important; font-weight:300 !important; }
.nv-ftcta .wpforms-confirmation-container-full,
.nv-ftcta .wpforms-confirmation-container-full *{ color:#fff !important; }
.nv-ftcta .wpforms-error{ color:#ffb3b3 !important; }

/* ===== Botón CTA en artículos (contenedor .nv-entry) ===== */

.nv-entry .wp-block-button__link {

  display: inline-block;

  background: #FF6B6B;

  color: #fff;

  font-family: 'Montserrat', sans-serif;

  font-weight: 600;

  font-size: 1rem;

  letter-spacing: .2px;

  line-height: 1.2;

  padding: 15px 34px;

  border: 0;

  border-radius: 9999px;

  box-shadow: 0 6px 20px rgba(255,107,107,.28);

  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;

}

.nv-entry .wp-block-button__link:hover,

.nv-entry .wp-block-button__link:focus {

  background: #ff5252;

  color: #fff;

  transform: translateY(-2px);

  box-shadow: 0 10px 28px rgba(255,107,107,.38);

}

.nv-entry .wp-block-button {

  margin-top: 8px;

}

/* Tablas de artículos acordes al tema */

.nv-entry .wp-block-table table {

  border-collapse: collapse;

  width: 100%;

  font-size: .98rem;

}

.nv-entry .wp-block-table th {

  background: #0D1025;

  color: #fff;

  font-weight: 600;

  text-align: left;

  padding: 12px 14px;

}

.nv-entry .wp-block-table td {

  padding: 12px 14px;

  border-bottom: 1px solid rgba(13,16,37,.10);

}

.nv-entry .wp-block-table strong { font-weight: 600; }