/* =====================================================================
   NAVESEN · Estilos del sitio
   Antes estaban en Apariencia → Personalizar → CSS adicional.
   Los carga el plugin «Navesen · Presupuestador» en todas las páginas.
   Contact Form 7 ya no se usa: sus estilos se han eliminado.
   ===================================================================== */
/* ── 0. Variables compartidas ─────────────────────────────────────────
   Estaban repetidas en dos bloques. Aquí una sola vez.                */
:root{
  --navesen-azul:          #10263f;
  --navesen-azul-oscuro:   #071827;
  --navesen-amarillo:      #EFC337;
  --navesen-amarillo-hover:#d4a92e;
  --navesen-amarillo-suave:#fff7da;
  --navesen-borde:         #d8dee8;
  --navesen-borde-claro:   #e6eaf0;
  --navesen-fondo:         #f6f8fb;
  --navesen-texto:         #1f2933;
  --navesen-muted:         #667085;
  --navesen-error:         #c0392b;
  --navesen-ok:            #2e7d32;
}


/* ── 1. Base ──────────────────────────────────────────────────────── */
h1{
  font-family:"Archivo", system-ui, sans-serif !important;
  font-weight:700 !important;
  letter-spacing:-.035em !important;
}

.swiper-button-prev,
.swiper-button-next{
  position:absolute !important;
  top:50% !important;
  transform:translateY(-50%) !important;
}


/* ── 2. Reparación móvil ──────────────────────────────────────────── */

/* 2.1 Tamaño por componente, sin regla global */
.nv-lead p{
  font-size:clamp(1.08rem, 1.5vw, 1.3rem);
  line-height:1.5;
}
.c-stats p, .c-trust li, .nv-note p, .nv-verdict,
.nv-table caption, .k-terms li, .k-part p,
table.k-roles th, table.k-roles td{
  font-size:.9375rem;
  line-height:1.5;
}

/* 2.2 En móvil el H1 va corrido: se anula el salto manual */
@media (max-width:600px){
  h1 br{display:none;}
}

/* 2.3 La cabecera del precio se salía por la izquierda */
.c-price .r.head{
  margin-inline:0;
  padding-inline:14px;
}

/* 2.4 Tabla comparativa oscura en pantalla estrecha */
@media (max-width:640px){
  .nv-table{min-width:520px; font-size:.8125rem;}
  .nv-table th,
  .nv-table td{padding:10px 11px;}
  .nv-table th[scope=row]{min-width:132px; font-size:.8125rem;}
  .nv-table caption{padding:14px; font-size:.8125rem;}
  .nv-tablewrap{position:relative;}
  /* sombra que avisa de que hay más a la derecha */
  .nv-tablewrap::after{
    content:""; position:absolute; top:0; right:0; bottom:0; width:28px;
    background:linear-gradient(to right, transparent, rgba(0,0,0,.85));
    pointer-events:none;
  }
}

/* 2.5 Colaboradores: ficha y tabla de roles */
@media (max-width:900px){
  .k-part .body{grid-template-columns:1fr; gap:20px;}
  .k-terms li{flex-wrap:wrap; gap:4px 12px;}
  .k-terms b{text-align:left;}
}
@media (max-width:640px){
  table.k-roles{min-width:460px; font-size:.8125rem;}
  table.k-roles th,
  table.k-roles td{padding:10px 12px;}
  table.k-roles th[scope=row]{min-width:130px;}
}

/* 2.6 Tablas claras de las páginas nuevas: mismo aviso de scroll */
@media (max-width:640px){
  .nv-tabla-wrap{position:relative;}
  .nv-tabla-wrap::after{
    content:""; position:absolute; top:0; right:0; bottom:0; width:24px;
    background:linear-gradient(to right, transparent, rgba(16,38,63,.16));
    pointer-events:none;
  }
  .nv-precio i{font-size:19px;}
  .nv-pasos li{padding:18px 18px 18px 52px;}
  .nv-pasos li:before{left:18px; top:18px;}
}

/* NOTA: aquí había un `body{padding-bottom:0}` para «una barra que no
   existe». La barra flotante #nvbar ya existe y reserva 70px por su
   cuenta, así que la regla sobraba y se ha quitado.                   */


/* ── 3. Banda de audiencia ────────────────────────────────────────────
   Anula el router de 3 columnas del sistema de diseño. Solo alcanza a
   los .nv-router que llevan un <p> dentro; el router real de la home
   tiene <a> como hijos directos y no se toca.                         */
.nv-router:has(> p){
  display:block !important;
  grid-template-columns:none !important;
  border:0 !important;
  padding:16px 22px;
  background:#F1F4F8;
  border-radius:12px;
  font-size:15px;
  line-height:1.6;
}
.nv-router > p{margin:0 !important;}
.nv-router > p a{
  display:inline !important;
  position:static !important;
  padding:0 !important;
  border:0 !important;
  color:var(--navesen-azul);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:.2em;
}
.nv-router > p a::before{content:none !important;}
.nv-router > p a + a{border-left:0 !important; padding-left:0 !important;}
.nv-router > p a:hover{
  background:var(--navesen-amarillo);
  color:#000;
  text-decoration:none;
}


/* =====================================================================
   6. BLOQUE ZONAS / LOCALIDADES  ·  Loop Grid de Elementor

   ⚠ FRÁGIL: todo este bloque cuelga de IDs de elemento de Elementor
   (64818d3, b99fd67, 4eee802, 6ae0091, 9b78b9c, 59fa468, .elementor-756).
   Si rehaces esa sección o la plantilla de bucle, los IDs cambian y el
   diseño desaparece sin aviso. Cuando puedas, ponle clases CSS propias
   a esos widgets (nv-zonas-wrap, nv-zonas-grid, nv-zona-card, etc.) en
   Avanzado → Clases CSS y sustituye los selectores.
   ===================================================================== */

.elementor-element-64818d3{
  padding:72px 20px !important;
  background:
    radial-gradient(circle at top left, rgba(239,195,55,.18), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, var(--navesen-fondo) 100%);
}

.elementor-element-64818d3 > .e-con-inner{
  max-width:1180px !important;
  width:100%;
  margin:0 auto !important;
  padding:46px !important;
  background:#ffffff;
  border:1px solid rgba(16,38,63,.08);
  border-radius:28px;
  box-shadow:0 24px 60px rgba(7,24,39,.10);
}

.elementor-element-64818d3 .elementor-element-e21add5{
  margin-bottom:34px !important;
  text-align:center;
}
.elementor-element-64818d3 .elementor-element-e21add5 .elementor-heading-title{
  max-width:820px;
  margin:0 auto;
  color:var(--navesen-azul-oscuro) !important;
  font-family:"Poppins", Arial, sans-serif;
  font-size:clamp(25px, 3vw, 38px) !important;
  font-weight:800 !important;
  line-height:1.15 !important;
  letter-spacing:-.03em;
}
.elementor-element-64818d3 .elementor-element-e21add5 .elementor-heading-title::after{
  content:"";
  display:block;
  width:86px;
  height:4px;
  margin:18px auto 0;
  border-radius:999px;
  background:var(--navesen-amarillo);
}

/* Etiquetas antes de cada grid */
.elementor-element-b99fd67 .elementor-widget-container::before,
.elementor-element-4eee802 .elementor-widget-container::before{
  display:inline-flex;
  align-items:center;
  margin:0 0 18px;
  padding:8px 14px;
  border-radius:999px;
  background:var(--navesen-amarillo-suave);
  color:var(--navesen-azul);
  font-size:13px;
  font-weight:800;
  letter-spacing:.01em;
}
.elementor-element-b99fd67 .elementor-widget-container::before{content:"Provincias disponibles";}
.elementor-element-4eee802 .elementor-widget-container::before{
  content:"Municipios destacados"; margin-top:34px;
}

/* Rejilla */
.elementor-element-b99fd67 .elementor-loop-container,
.elementor-element-4eee802 .elementor-loop-container{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:stretch !important;
}
.elementor-element-b99fd67 .e-loop-item,
.elementor-element-4eee802 .e-loop-item{margin:0 !important;}

/* Tarjeta */
.elementor-element-b99fd67 .elementor-756 .elementor-element-6ae0091,
.elementor-element-4eee802 .elementor-756 .elementor-element-6ae0091{
  position:relative;
  min-height:68px;
  padding:0 !important;
  border:1px solid var(--navesen-borde-claro);
  border-radius:16px;
  background:#ffffff;
  box-shadow:0 6px 18px rgba(7,24,39,.04);
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease,
             border-color .18s ease, background-color .18s ease;
}

.elementor-element-b99fd67 .elementor-756 .elementor-element-6ae0091 > .e-con-inner,
.elementor-element-4eee802 .elementor-756 .elementor-element-6ae0091 > .e-con-inner{
  width:100% !important;
  max-width:none !important;
  padding:15px 42px 15px 15px !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px !important;
  flex-wrap:nowrap !important;
}

/* Icono */
.elementor-element-b99fd67 .elementor-756 .elementor-element-9b78b9c,
.elementor-element-4eee802 .elementor-756 .elementor-element-9b78b9c{
  flex:0 0 auto !important; margin:0 !important;
}
.elementor-element-b99fd67 .elementor-756 .elementor-element-9b78b9c .elementor-icon,
.elementor-element-4eee802 .elementor-756 .elementor-element-9b78b9c .elementor-icon{
  width:34px; height:34px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px;
  background:var(--navesen-amarillo-suave);
  color:var(--navesen-amarillo-hover) !important;
  font-size:14px !important;
}

/* Texto */
.elementor-element-b99fd67 .elementor-756 .elementor-element-59fa468,
.elementor-element-4eee802 .elementor-756 .elementor-element-59fa468{
  margin:0 !important; min-width:0;
}
.elementor-element-b99fd67 .elementor-756 .elementor-element-59fa468 .elementor-heading-title,
.elementor-element-4eee802 .elementor-756 .elementor-element-59fa468 .elementor-heading-title{
  margin:0 !important; line-height:1.25 !important;
}
.elementor-element-b99fd67 .elementor-756 .elementor-element-59fa468 a,
.elementor-element-4eee802 .elementor-756 .elementor-element-59fa468 a{
  color:var(--navesen-texto) !important;
  font-family:"Poppins", Arial, sans-serif;
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.25 !important;
  text-decoration:none !important;
}

/* Toda la tarjeta clicable */
.elementor-element-b99fd67 .elementor-756 .elementor-element-59fa468 a::after,
.elementor-element-4eee802 .elementor-756 .elementor-element-59fa468 a::after{
  content:""; position:absolute; inset:0; z-index:2;
}

/* Flecha */
.elementor-element-b99fd67 .elementor-756 .elementor-element-6ae0091::after,
.elementor-element-4eee802 .elementor-756 .elementor-element-6ae0091::after{
  content:"→";
  position:absolute; right:16px; top:50%;
  transform:translateY(-50%);
  color:var(--navesen-amarillo);
  font-size:18px; font-weight:900;
  opacity:0;
  transition:opacity .18s ease, transform .18s ease;
}

/* Hover solo con puntero real: en táctil dejaba el estado pegado */
@media (hover:hover) and (pointer:fine){
  .elementor-element-b99fd67 .elementor-756 .elementor-element-6ae0091:hover,
  .elementor-element-4eee802 .elementor-756 .elementor-element-6ae0091:hover{
    transform:translateY(-3px);
    border-color:rgba(239,195,55,.65);
    background:#fffdf6;
    box-shadow:0 14px 32px rgba(7,24,39,.10);
  }
  .elementor-element-b99fd67 .elementor-756 .elementor-element-6ae0091:hover::after,
  .elementor-element-4eee802 .elementor-756 .elementor-element-6ae0091:hover::after{
    opacity:1; transform:translate(3px,-50%);
  }
}

/* Focus accesible */
.elementor-element-b99fd67 .elementor-756 .elementor-element-59fa468 a:focus-visible,
.elementor-element-4eee802 .elementor-756 .elementor-element-59fa468 a:focus-visible{
  outline:3px solid rgba(239,195,55,.55);
  outline-offset:4px;
  border-radius:8px;
}

@media (max-width:1024px){
  .elementor-element-64818d3 > .e-con-inner{padding:34px 24px !important;}
  .elementor-element-b99fd67 .elementor-loop-container,
  .elementor-element-4eee802 .elementor-loop-container{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
}

@media (max-width:640px){
  .elementor-element-64818d3{padding:42px 14px !important;}
  .elementor-element-64818d3 > .e-con-inner{padding:26px 16px !important; border-radius:20px;}
  .elementor-element-b99fd67 .elementor-loop-container,
  .elementor-element-4eee802 .elementor-loop-container{
    grid-template-columns:1fr !important; gap:10px !important;
  }
  .elementor-element-b99fd67 .elementor-756 .elementor-element-6ae0091 > .e-con-inner,
  .elementor-element-4eee802 .elementor-756 .elementor-element-6ae0091 > .e-con-inner{
    padding:14px 38px 14px 13px !important;
  }
  .elementor-element-b99fd67 .elementor-756 .elementor-element-59fa468 a,
  .elementor-element-4eee802 .elementor-756 .elementor-element-59fa468 a{font-size:15px !important;}
}


/* ── 7. Migas de pan sobre hero oscuro ────────────────────────────── */
.hero-naves-industriales .rank-math-breadcrumb,
.hero-naves-industriales .rank-math-breadcrumb a,
.hero-naves-industriales .rank-math-breadcrumb p{
  color:#f5c52f;
  font-size:15px;
  font-weight:600;
  text-decoration:none;
}
.hero-naves-industriales .rank-math-breadcrumb a:hover{color:#ffffff;}


/* ── 8. Accesibilidad transversal ─────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .elementor-element-b99fd67 .elementor-756 .elementor-element-6ae0091,
  .elementor-element-4eee802 .elementor-756 .elementor-element-6ae0091{
    transition:none !important;
    transform:none !important;
  }
}

/* La cabecera tiene el contenedor padre en amarillo y en móvil se ve,
   porque la barra superior está oculta y deja el fondo al descubierto. */
@media (max-width:767px){
  .elementor-9 .elementor-element.elementor-element-6a53b30:not(.elementor-motion-effects-element-type-background){
    background-color:#FFFFFF !important;
  }
  .elementor-9 .elementor-element.elementor-element-6a53b30{
    --gap:0px 0px; --row-gap:0px; --column-gap:0px;
  }
}

/* El menú fijo reserva 70px para una barra superior que en móvil
   está oculta. Se pega arriba del todo. */
@media (max-width:767px){
  .elementor-9 .elementor-element.elementor-element-5d73c48.elementor-sticky--active,
  .elementor-9 .elementor-element.elementor-element-5d73c48.elementor-sticky--effects{
    top:0 !important;
  }
}


/* =====================================================================
   9. FORMULARIOS DE ELEMENTOR PRO
   Mismo aspecto que los formularios nuevos del plugin ([navesen_contacto]
   y [navesen_presupuestador]): Inter, negro sobre blanco, foco negro con
   halo amarillo y botón amarillo con texto negro.
   ===================================================================== */
.elementor-form{
  --f-ink:#000; --f-line:#D9D5CA; --f-muted:#57544C; --f-mark:#EFC337; --f-mark-soft:#FBF1CF; --f-paper2:#F1EFE8; --f-bad:#B3261E;
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--f-ink);
  text-align:left;
  max-width:760px;
  margin:0 auto;
  padding:clamp(20px,3.5vw,36px) !important;
  background:#fff !important;
  border:1px solid var(--f-line) !important;
  border-radius:14px !important;
  box-shadow:0 30px 60px -40px rgba(0,0,0,.35) !important;
  box-sizing:border-box;
}
/* Dentro de una tarjeta de formulario de las plantillas no hace falta otra caja */
.nvp-hero-form .elementor-form{max-width:none; padding:0 !important; border:0 !important; box-shadow:none !important; background:transparent !important}
.elementor-form .elementor-form-fields-wrapper{row-gap:0}
.elementor-form .elementor-field-group{margin-bottom:14px !important}

/* Etiquetas */
.elementor-form .elementor-field-label{
  display:block !important;
  margin:0 0 6px !important;
  color:var(--f-ink) !important;
  font-family:inherit !important;
  font-size:.9375rem !important;
  font-weight:600 !important;
  line-height:1.35 !important;
}
.elementor-form .elementor-mark-required .elementor-field-label::after{color:var(--f-ink) !important}

/* Campos */
.elementor-form .elementor-field-textual{
  display:block;
  width:100% !important;
  min-height:48px !important;
  margin:0 !important;
  padding:11px 14px !important;
  border:1px solid var(--f-line) !important;
  border-radius:10px !important;
  background:#fff !important;
  color:var(--f-ink) !important;
  font-family:inherit !important;
  font-size:16px !important; /* 16px evita el zoom de iOS */
  line-height:1.4 !important;
  box-shadow:none !important;
  box-sizing:border-box !important;
  transition:border-color 160ms ease !important;
}
.elementor-form select.elementor-field-textual{cursor:pointer; appearance:auto}
.elementor-form .elementor-select-wrapper::before{color:var(--f-ink) !important}
.elementor-form textarea.elementor-field-textual{min-height:96px !important; resize:vertical !important}
.elementor-form .elementor-field-textual::placeholder{color:#8A867C !important; opacity:1 !important}
.elementor-form .elementor-field-textual:focus{
  border-color:var(--f-ink) !important;
  outline:none !important;
  box-shadow:0 0 0 3px var(--f-mark-soft) !important;
  background:#fff !important;
}

/* Casillas (especialidades, etc.): fichas como las del presupuestador */
.elementor-form .elementor-field-type-checkbox .elementor-field-subgroup{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin-top:4px !important;
}
.elementor-form .elementor-field-type-checkbox .elementor-field-option{
  position:relative;
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  width:auto !important;
  min-height:44px;
  box-sizing:border-box;
  margin:0 !important;
  padding:9px 16px !important;
  border:1px solid var(--f-line) !important;
  border-radius:999px !important;
  background:#fff !important;
  cursor:pointer !important;
  transition:background-color 160ms ease, border-color 160ms ease, color 160ms ease !important;
}
.elementor-form .elementor-field-type-checkbox .elementor-field-option label{
  margin:0 !important; padding:0 !important; border:0 !important; background:none !important;
  color:inherit !important; font-size:.9375rem !important; font-weight:500 !important; line-height:1.25 !important; cursor:pointer !important;
}
.elementor-form .elementor-field-type-checkbox input[type="checkbox"]{
  width:18px !important; height:18px !important; flex:0 0 18px !important; margin:0 !important;
  accent-color:var(--f-mark) !important; cursor:pointer !important;
}
.elementor-form .elementor-field-type-checkbox .elementor-field-option:has(input:checked){
  background:var(--f-ink) !important; border-color:var(--f-ink) !important; color:#FAF9F6 !important;
}
@media (hover:hover) and (pointer:fine){
  .elementor-form .elementor-field-type-checkbox .elementor-field-option:hover{border-color:var(--f-ink) !important}
}

/* Aceptación legal: casilla y texto, sin caja */
.elementor-form .elementor-field-type-acceptance{padding:0 !important; border:0 !important; background:none !important}
.elementor-form .elementor-field-type-acceptance .elementor-field-option{display:flex !important; gap:10px !important; align-items:flex-start !important}
.elementor-form .elementor-field-type-acceptance input[type="checkbox"]{width:20px !important; height:20px !important; flex:none !important; margin:1px 0 0 !important; accent-color:var(--f-ink) !important}
.elementor-form .elementor-field-type-acceptance label{
  margin:0 !important; color:var(--f-ink) !important; font-size:.9375rem !important; font-weight:400 !important; line-height:1.45 !important;
}
.elementor-form .elementor-field-type-acceptance a{color:var(--f-ink) !important; font-weight:600; text-decoration:underline; text-decoration-color:var(--f-mark); text-decoration-thickness:2px; text-underline-offset:3px}

/* Botón de envío */
.elementor-form .elementor-field-type-submit .elementor-button{
  display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:8px;
  width:100% !important;
  min-height:52px !important;
  margin-top:4px !important;
  padding:15px 26px !important;
  border:0 !important;
  border-radius:6px !important;
  background:var(--f-mark) !important;
  color:var(--f-ink) !important;
  font-family:inherit !important;
  font-size:1rem !important;
  font-weight:700 !important;
  letter-spacing:-.01em;
  text-transform:none !important;
  box-shadow:none !important;
  cursor:pointer !important;
  transition:transform 160ms cubic-bezier(.23,1,.32,1), background-color 180ms ease, color 180ms ease !important;
}
@media (hover:hover) and (pointer:fine){
  .elementor-form .elementor-field-type-submit .elementor-button:hover{background:var(--f-ink) !important; color:var(--f-mark) !important}
}
.elementor-form .elementor-field-type-submit .elementor-button:active{transform:scale(.98)}
.elementor-form .elementor-field-type-submit .elementor-button:focus-visible{outline:3px solid var(--f-ink) !important; outline-offset:3px}

/* Errores y mensajes */
.elementor-form .elementor-field.elementor-error,
.elementor-form .elementor-error .elementor-field-textual{border-color:var(--f-bad) !important}
.elementor-form .elementor-message{
  margin-top:14px !important; padding:14px 16px !important; border:0 !important; border-radius:10px !important;
  font-size:.9375rem !important; line-height:1.5 !important;
}
.elementor-form .elementor-message::before{display:none !important}
.elementor-form .elementor-message-success{background:var(--f-mark-soft) !important; color:var(--f-ink) !important}
.elementor-form .elementor-message-danger,
.elementor-form .elementor-message.elementor-help-inline{background:#FDECEA !important; color:var(--f-bad) !important}

@media (prefers-reduced-motion:reduce){
  .elementor-form .elementor-field-type-submit .elementor-button,
  .elementor-form .elementor-field-type-checkbox .elementor-field-option{transition:none !important; transform:none !important}
}


/* Landings · banda amarilla: texto a la izquierda, botón a la derecha */
.nvp .nvp-cta .nvp-cta-texto{
  --width:auto;
  flex:1 1 0% !important;
  width:auto !important;
  min-width:0;
}
.nvp .nvp-cta .nvp-cta-boton{
  --width:auto;
  flex:0 0 auto !important;
  width:auto !important;
}
@media (max-width:767px){
  .nvp .nvp-cta .nvp-cta-texto,
  .nvp .nvp-cta .nvp-cta-boton{
    width:100% !important;
    flex:0 0 auto !important;
  }
  .nvp .nvp-cta .elementor-button{width:100%;}
}
/* =====================================================================
   NAVESEN · Guías del blog (contenido del artículo)
   Pegar en Apariencia → Personalizar → CSS adicional.
   Todo cuelga de .nvp-post .nvp-art: no afecta a ninguna otra página.
   ===================================================================== */

/* ── Texto base ─────────────────────────────────────────────────────── */
body .nvp-post .nvp-art{max-width:70ch;counter-reset:apartado}
body .nvp-post .nvp-art p,
body .nvp-post .nvp-art li{font-family:"Inter",system-ui,sans-serif;font-size:1.125rem;line-height:1.75;color:#2B2A27}
body .nvp-post .nvp-art p{margin:0 0 1.15em}
body .nvp-post .nvp-art p:empty{display:none}
body .nvp-post .nvp-art strong{color:#000;font-weight:650}

/* ── Apartado principal: H2, o H3 cuando la guía no usa H2 ───────────── */
body .nvp-post .nvp-art h2,
body .nvp-post .nvp-art:not(:has(h2)) h3{
  position:relative;
  font-family:"Archivo",system-ui,sans-serif;font-weight:700;
  font-size:clamp(1.6rem,2.6vw,2.05rem);line-height:1.12;letter-spacing:-.03em;
  color:#000;text-wrap:balance;
  margin:2.4em 0 .7em;padding-top:1.1em;
  border-top:1px solid #D9D5CA;
  scroll-margin-top:110px;
}
/* marca amarilla sobre el filete: orienta la vista al saltar de apartado */
body .nvp-post .nvp-art h2::before,
body .nvp-post .nvp-art:not(:has(h2)) h3::before{
  content:"";position:absolute;top:-2px;left:0;width:48px;height:3px;background:#EFC337;
}
/* el primero no necesita filete ni tanto aire */
body .nvp-post .nvp-art > h2:first-of-type,
body .nvp-post .nvp-art:not(:has(h2)) > h3:first-of-type{margin-top:1.8em}

/* ── Subapartado: H3 dentro de una guía que sí usa H2 ────────────────── */
body .nvp-post .nvp-art:has(h2) h3{
  font-family:"Archivo",system-ui,sans-serif;font-weight:700;
  font-size:1.3rem;line-height:1.25;letter-spacing:-.02em;color:#000;
  margin:1.9em 0 .5em;padding:0;border:0;scroll-margin-top:110px;
}
body .nvp-post .nvp-art:has(h2) h3::before{content:none}

/* ── H4: título menor dentro de un apartado ──────────────────────────── */
body .nvp-post .nvp-art h4{
  font-family:"Archivo",system-ui,sans-serif;font-weight:700;
  font-size:1.0625rem;line-height:1.3;letter-spacing:-.01em;color:#000;
  margin:1.6em 0 .4em;scroll-margin-top:110px;
}
/* lo que sigue a un título arranca pegado a él */
body .nvp-post .nvp-art :is(h2,h3,h4) + :is(p,ul,ol,figure){margin-top:0}

/* ── Respuesta corta: el primer párrafo de la guía ───────────────────── */
body .nvp-post .nvp-art > p:first-child{
  font-size:1.1875rem;line-height:1.65;color:#000;
  background:#F1EFE8;border-left:4px solid #EFC337;border-radius:0 12px 12px 0;
  padding:20px 24px;margin-bottom:1.6em;
}

/* ── Enlaces ─────────────────────────────────────────────────────────── */
body .nvp-post .nvp-art a{
  color:#000;text-decoration:underline;text-decoration-color:#EFC337;
  text-decoration-thickness:2px;text-underline-offset:3px;
  transition:background-color 160ms ease;
}
@media (hover:hover) and (pointer:fine){
  body .nvp-post .nvp-art a:hover{background:#FBEFC4;text-decoration-color:#000}
}

/* ── Listas ──────────────────────────────────────────────────────────── */
body .nvp-post .nvp-art ul,
body .nvp-post .nvp-art ol{margin:0 0 1.4em;padding-left:1.4em}
body .nvp-post .nvp-art ul li,
body .nvp-post .nvp-art ol li{position:static;padding:0 0 0 .3em;border:0;margin:0 0 .6em}
body .nvp-post .nvp-art ul li::before,
body .nvp-post .nvp-art ol li::before{content:none;display:none}
body .nvp-post .nvp-art ul li{list-style:disc}
body .nvp-post .nvp-art ul li::marker{color:#000}
/* listas numeradas (trámites, pasos): número grande en círculo */
body .nvp-post .nvp-art ol{list-style:none;padding-left:0;counter-reset:paso}
body .nvp-post .nvp-art ol > li{list-style:none;counter-increment:paso;position:relative;padding-left:48px;margin-bottom:1em}
body .nvp-post .nvp-art ol > li::before{
  content:counter(paso);display:grid;place-items:center;
  position:absolute;left:0;top:.15em;width:30px;height:30px;border-radius:50%;
  background:#000;color:#FAF9F6;font:600 .875rem/1 "IBM Plex Mono",ui-monospace,monospace;
}

/* ── Tablas ──────────────────────────────────────────────────────────── */
body .nvp-post .nvp-art .wp-block-table,
body .nvp-post .nvp-art figure:has(table){
  margin:1.8em 0;overflow-x:auto;border:1px solid #D9D5CA;border-radius:12px;
}
body .nvp-post .nvp-art table{width:100%;min-width:560px;border-collapse:collapse;font-size:.9688rem;margin:0}
body .nvp-post .nvp-art thead th{
  background:#000;color:#FAF9F6;text-align:left;
  font-family:"Archivo",system-ui,sans-serif;font-weight:700;font-size:.875rem;letter-spacing:-.01em;
  padding:14px 16px;border:0;
}
body .nvp-post .nvp-art td{padding:14px 16px;border:0;border-top:1px solid #E8E4DA;vertical-align:top;line-height:1.55;color:#2B2A27}
body .nvp-post .nvp-art tbody tr:nth-child(even) td{background:#FAF9F6}
body .nvp-post .nvp-art tbody td:first-child{font-weight:600;color:#000}
body .nvp-post .nvp-art figcaption{font-size:.875rem;color:#57544C;padding:10px 16px 12px;margin:0}

/* ── Preguntas frecuentes escritas como «<strong>¿…?</strong><br>respuesta» ── */
body .nvp-post .nvp-art p:has(> strong:first-child + br){
  padding:18px 0 0;margin:0 0 .4em;border-top:1px solid #E8E4DA;
}
body .nvp-post .nvp-art p:has(> strong:first-child + br) > strong:first-child{
  display:block;margin-bottom:6px;
  font-family:"Archivo",system-ui,sans-serif;font-size:1.125rem;letter-spacing:-.015em;line-height:1.35;
}
body .nvp-post .nvp-art p:has(> strong:first-child + br) > br:first-of-type{display:none}

/* ── Citas, separadores e imágenes ───────────────────────────────────── */
body .nvp-post .nvp-art blockquote{
  margin:1.8em 0;padding:4px 0 4px 22px;border-left:4px solid #EFC337;
}
body .nvp-post .nvp-art blockquote p{font-size:1.1875rem;color:#000}
body .nvp-post .nvp-art hr{border:0;border-top:1px solid #D9D5CA;margin:2.4em 0}
body .nvp-post .nvp-art img{max-width:100%;height:auto;border-radius:12px}
body .nvp-post .nvp-art figure:not(:has(table)){margin:1.8em 0}

/* ── Móvil ───────────────────────────────────────────────────────────── */
@media (max-width:767px){
  body .nvp-post .nvp-art p,
  body .nvp-post .nvp-art li{font-size:1.0625rem;line-height:1.7}
  body .nvp-post .nvp-art h2,
  body .nvp-post .nvp-art:not(:has(h2)) h3{font-size:1.5rem;margin-top:2em}
  body .nvp-post .nvp-art > p:first-child{font-size:1.0938rem;padding:16px 18px}
  body .nvp-post .nvp-art ol > li{padding-left:42px}
}

/* 2.7.2 · Etiqueta «Para…» en el H1 de constructoras y colaboradores */
body .nvb h1 .b-kick{display:block;width:fit-content;max-width:100%;box-sizing:border-box;font-family:"Inter",system-ui,sans-serif;font-size:clamp(1rem,1.5vw,1.2rem);font-weight:700;letter-spacing:-.005em;line-height:1.3;color:#fff;background:#111;border-left:5px solid #f0c233;border-radius:8px;padding:10px 16px 10px 14px;margin:0 0 20px;text-wrap:balance}
@media (max-width:767px){body .nvb h1{font-size:clamp(2rem,9vw,2.4rem);line-height:1.05}}
