/* ==========================================================
   NOBLE CHILD · noble.css · v0.5.1 · 2026-09-21
   Prefijo: nbl-  ·  Paleta: RKT/03-Diseno/Sistemas/Sistema visual Noble
   ========================================================== */

/* ── v0.5.0 · El reset de Hello Elementor, dentro de una capa ───────────
   Su reset.css pinta TODO <button> de rosa (#c36) al pasar el ratón o al
   enfocarlo: "button:hover,button:focus{background-color:#c36;color:#fff}".
   Ese selector pesa (0,1,1) y le ganaba a nuestras clases (0,1,0): el
   comparador de /servicios/, los chips de /membresias/, la venta cruzada
   de /reservar/ y las pestañas de The Noble Code salían rosas.
   functions.php ya no deja que Hello lo cargue; aquí se importa dentro de
   @layer. Todo lo que no está en una capa (nuestro CSS, el de Elementor)
   le gana a una capa SIEMPRE, sin importar la especificidad. El reset
   sigue haciendo su trabajo de normalizar; solo pierde las peleas.
   Tiene que ser la primera regla del archivo. */
@import url("../../../hello-elementor/assets/css/reset.css") layer(hello-reset);

:root {
	/* Oro: muestreado del logo */
	--nbl-oro: #D8A848;
	--nbl-oro-luz: #F0CC6C;
	--nbl-oro-sombra: #CC9C3C;

	/* Base oscura: propuesta */
	--nbl-carbon: #0E0D0B;
	--nbl-carbon-2: #1A1814;
	--nbl-linea: rgba(216, 168, 72, .28);

	/* Texto: propuesta */
	--nbl-crema: #EFE8DC;
	--nbl-piedra: #A39D92;

	/* Materiales: uso mínimo */
	--nbl-cuero: #4A2F22;
	--nbl-nogal: #6B4A31;

	/* Tipografía: candidatas hasta tener manual */
	--nbl-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--nbl-sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

	/* Espaciado y forma */
	--nbl-gutter: clamp(16px, 4vw, 48px);
	--nbl-seccion: clamp(72px, 10vw, 160px);
	--nbl-radio: 2px;
	--nbl-ease: cubic-bezier(.22, 1, .36, 1);
}

/* ── Base ───────────────────────────────────── */
body {
	background: var(--nbl-carbon);
	color: var(--nbl-crema);
	font-family: var(--nbl-sans);
	-webkit-font-smoothing: antialiased;
}

::selection {
	background: var(--nbl-oro);
	color: var(--nbl-carbon);
}

:focus-visible {
	outline: 2px solid var(--nbl-oro);
	outline-offset: 3px;
}

/* ── Utilidades ─────────────────────────────── */
.nbl-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font: 600 12px/1 var(--nbl-sans);
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--nbl-oro);
}

.nbl-eyebrow::before,
.nbl-eyebrow::after {
	content: "";
	width: 32px;
	height: 1px;
	background: currentColor;
}

/* ── Honeypot: fuera de pantalla, no display:none ── */
.elementor-field-group-nbl_hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ── Movimiento reducido ────────────────────── */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}


/* ==========================================================
   LANDINGS Y PÁGINAS INTERNAS · prefijo .nbl-lp
   v0.3.0 · CSS compartido por /servicios/ y sus landings.
   Cambios de la v0.3.0:
     · .nbl-lp__pasos ya no pinta el contenedor. Con 7 pasos en una rejilla de
       5 columnas, las celdas vacías de la última fila enseñaban el fondo
       dorado y salía un bloque de color. Ahora cada paso lleva su borde.
     · .nbl-lp a → :where(a): ganaba en especificidad al color de los botones
       y el sólido salía con texto crema sobre dorado.
     · Nuevas: .nbl-lp__incluye (lista centrada por texto, que el flex se lo
       comían los estilos del tema) y .nbl-lp__firma.
     · Defensa para que los <a> dentro de párrafos no se conviertan en cajas.
   Los widgets HTML de esas páginas solo llevan el marcado.
   ========================================================== */
/* ── Base compartida con las landings (.nbl-lp) ────────────────────────── */
.nbl-lp{
  --lp-oro:var(--nbl-oro,#D8A848);
  --lp-carbon:var(--nbl-carbon,#0E0D0B);
  --lp-carbon-2:var(--nbl-carbon-2,#1A1814);
  --lp-crema:var(--nbl-crema,#EFE8DC);
  --lp-piedra:var(--nbl-piedra,#A39D92);
  --lp-serif:var(--nbl-serif,"Cormorant Garamond",Georgia,serif);
  --lp-sans:var(--nbl-sans,"Manrope",system-ui,sans-serif);
  --lp-ease:cubic-bezier(.22,1,.36,1);
  --lp-gutter:clamp(20px,5vw,72px);
  display:block;
  background:var(--lp-carbon); color:var(--lp-crema);
  isolation:isolate;
}
.nbl-lp *,.nbl-lp *::before,.nbl-lp *::after{box-sizing:border-box}
.nbl-lp p,.nbl-lp h1,.nbl-lp h2,.nbl-lp h3,.nbl-lp dl,.nbl-lp dt,.nbl-lp dd,.nbl-lp figure{margin:0}
.nbl-lp :where(a){color:inherit; text-decoration:none}
.nbl-lp ul,.nbl-lp ol{list-style:none; margin:0; padding:0}
.nbl-lp :focus-visible{outline:2px solid var(--lp-oro); outline-offset:4px}

.nbl-lp__hero{padding:clamp(110px,13vw,170px) var(--lp-gutter) clamp(64px,8vw,110px)}
.nbl-lp__crumbs{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px; max-width:1320px; margin:0 auto 40px;
  font:500 11px/1 var(--lp-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--lp-piedra);
}
.nbl-lp__crumbs a:hover{color:var(--lp-oro)}
.nbl-lp__crumbs span[aria-hidden]{color:rgba(216,168,72,.5)}
.nbl-lp__crumbs [aria-current]{color:var(--lp-crema)}

.nbl-lp__hero-grid{
  max-width:1320px; margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(32px,5vw,80px);
  align-items:center;
}
.nbl-lp__eyebrow{
  display:inline-flex; align-items:center; gap:14px; margin-bottom:22px !important;
  font:600 11px/1 var(--lp-sans); letter-spacing:.3em; text-transform:uppercase; color:var(--lp-oro);
}
.nbl-lp__eyebrow::before{content:""; width:32px; height:1px; background:currentColor}
.nbl-lp__eyebrow--center::after{content:""; width:32px; height:1px; background:currentColor}
.nbl-lp__h1{font:500 clamp(36px,5vw,76px)/1 var(--lp-serif); letter-spacing:-.01em}
.nbl-lp__h1 em,.nbl-lp__h2 em,.nbl-lp__h3 em,.nbl-lp__cierre-title em{font-style:italic; color:var(--lp-oro)}
.nbl-lp__lead{
  margin-top:22px !important; max-width:520px;
  font:400 clamp(16px,1.3vw,18px)/1.7 var(--lp-sans); color:rgba(239,232,220,.8);
}
.nbl-lp__ctas{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px}
.nbl-lp__btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:52px; padding:0 30px;
  font:600 11px/1 var(--lp-sans); letter-spacing:.2em; text-transform:uppercase;
  border:1px solid var(--lp-oro); border-radius:2px;
  transition:background-color .3s ease, color .3s ease;
}
.nbl-lp__btn--solid{background:var(--lp-oro); color:var(--lp-carbon)}
.nbl-lp__btn--solid:hover{background:transparent; color:var(--lp-oro)}
.nbl-lp__btn--ghost:hover{background:var(--lp-oro); color:var(--lp-carbon)}

.nbl-lp__ficha{
  display:flex; flex-wrap:wrap; gap:28px 48px; margin-top:40px !important;
  padding-top:28px; border-top:1px solid rgba(216,168,72,.18);
}
.nbl-lp__ficha dt{font:600 10px/1 var(--lp-sans); letter-spacing:.24em; text-transform:uppercase; color:var(--lp-oro)}
.nbl-lp__ficha dd{margin-top:10px !important; font:500 16px/1.4 var(--lp-sans)}

.nbl-lp__hero-media{position:relative; overflow:hidden}
.nbl-lp__hero-media img{
  display:block; width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover;
  filter:saturate(.88) brightness(.92);
}
.nbl-lp__hero-media figcaption{position:absolute; left:12px; bottom:12px}

.nbl-lp__bloque{padding:clamp(72px,9vw,140px) var(--lp-gutter)}
.nbl-lp__bloque--alt{background:var(--lp-carbon-2)}
.nbl-lp__intro{max-width:760px; margin:0 auto clamp(48px,6vw,80px); text-align:center}
.nbl-lp__intro:last-child{margin-bottom:0}
.nbl-lp__intro .nbl-lp__btn{margin-top:32px}
.nbl-lp__h2{font:500 clamp(32px,4.4vw,64px)/1.05 var(--lp-serif); letter-spacing:-.01em}
.nbl-lp__h3{font:500 clamp(26px,2.6vw,40px)/1.05 var(--lp-serif); letter-spacing:-.01em}
.nbl-lp__texto{margin-top:18px !important; font:400 clamp(15px,1.2vw,17px)/1.7 var(--lp-sans); color:rgba(239,232,220,.78)}
.nbl-lp__nota{max-width:900px; margin:20px auto 0 !important; text-align:center}

/* ── Lista de servicios ───────────────────────────────────────────────── */
.nbl-lp__servicios{max-width:1320px; margin:0 auto; border-top:1px solid rgba(216,168,72,.2)}
.nbl-lp__servicios li{border-bottom:1px solid rgba(216,168,72,.12)}
.nbl-lp__sv{
  display:grid; align-items:center;
  grid-template-columns:clamp(44px,5vw,80px) minmax(0,1fr) auto 40px; gap:clamp(12px,2vw,32px);
  padding:clamp(22px,2.8vw,38px) clamp(8px,1.5vw,20px);
  transition:background-color .45s var(--lp-ease), padding-left .45s var(--lp-ease);
}
.nbl-lp__sv:hover{background:var(--lp-carbon-2)}
@media (hover:hover){ .nbl-lp__sv:hover{padding-left:clamp(14px,2.2vw,32px)} }
.nbl-lp__sv-num{font:600 11px/1 var(--lp-sans); letter-spacing:.2em; color:var(--lp-oro)}
.nbl-lp__sv-txt{display:flex; flex-direction:column; gap:8px}
.nbl-lp__sv-name{font:500 clamp(24px,2.6vw,38px)/1.05 var(--lp-serif)}
.nbl-lp__sv-desc{font:400 14px/1.6 var(--lp-sans); color:rgba(239,232,220,.72)}
.nbl-lp__sv-meta{display:flex; flex-direction:column; align-items:flex-end; gap:6px; text-align:right}
.nbl-lp__sv-meta b{font:500 18px/1 var(--lp-serif); color:var(--lp-crema)}
.nbl-lp__sv-go{
  position:relative; justify-self:end; width:32px; height:1px;
  background:rgba(216,168,72,.5); transition:width .5s var(--lp-ease), background-color .3s ease;
}
.nbl-lp__sv-go::after{content:""; position:absolute; right:0; top:-4px; width:9px; height:9px; border-top:1px solid var(--lp-oro); border-right:1px solid var(--lp-oro); transform:rotate(45deg)}
.nbl-lp__sv:hover .nbl-lp__sv-go{width:50px; background-color:var(--lp-oro)}

/* Qué incluye · centrado por texto: el justify-content del flex se lo comían
   los estilos del tema y la última fila quedaba descolgada a la izquierda. */
.nbl-lp__incluye{
  max-width:1000px; margin:0 auto;
  text-align:center; font-size:0;
}
.nbl-lp__incluye li{
  display:inline-block; margin:5px;
  padding:12px 22px; border:1px solid rgba(216,168,72,.28);
  font:500 14px/1.4 var(--lp-sans); color:rgba(239,232,220,.88);
}

/* Firma al pie de una tarjeta: "Especialidad de Fulano · 12 años" */
.nbl-lp__firma{
  margin-top:18px !important; padding-top:14px;
  border-top:1px solid rgba(216,168,72,.18);
  font:600 11px/1.6 var(--lp-sans); letter-spacing:.06em; color:var(--lp-piedra);
}

/* Defensa: Elementor y algunos temas dan caja a los <a> dentro de listas.
   Los enlaces en línea se quedan en línea. */
.nbl-lp p a{
  display:inline !important; width:auto !important; padding:0 !important;
  background:none !important; border-radius:0 !important;
  border:0 !important; border-bottom:1px solid rgba(216,168,72,.45) !important;
  color:var(--lp-oro); text-align:inherit !important;
}
.nbl-lp p a:hover{border-bottom-color:var(--lp-oro) !important}

/* Pasos del servicio */
.nbl-lp__pasos{
  max-width:1320px; margin:0 auto;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:clamp(12px,1.4vw,18px);
}
.nbl-lp__pasos li{
  padding:clamp(24px,2.6vw,36px);
  background:var(--lp-carbon-2); border:1px solid rgba(216,168,72,.18);
}
.nbl-lp__bloque--alt .nbl-lp__pasos li{background:var(--lp-carbon)}
.nbl-lp__pasos span{font:600 11px/1 var(--lp-sans); letter-spacing:.2em; color:var(--lp-oro)}
.nbl-lp__pasos h3{margin-top:22px !important; font:500 clamp(22px,1.9vw,28px)/1.1 var(--lp-serif)}
.nbl-lp__pasos p{margin-top:10px !important; font:400 14px/1.6 var(--lp-sans); color:rgba(239,232,220,.72)}

/* Tipos de corte */
.nbl-lp__tipos{
  max-width:1320px; margin:0 auto;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(14px,1.6vw,22px);
}
.nbl-lp__tipos a{
  display:flex; flex-direction:column; height:100%; padding:clamp(24px,2.4vw,32px);
  background:var(--lp-carbon); border:1px solid rgba(216,168,72,.18);
  transition:border-color .4s ease, transform .5s var(--lp-ease);
}
.nbl-lp__tipos a:hover{border-color:var(--lp-oro); transform:translateY(-4px)}
.nbl-lp__tipos h3{font:500 clamp(22px,1.9vw,28px)/1.1 var(--lp-serif)}
.nbl-lp__tipos p{margin-top:12px !important; font:400 14px/1.6 var(--lp-sans); color:rgba(239,232,220,.72)}
.nbl-lp__mas{
  position:relative; width:32px; height:1px; margin-top:auto; margin-top:28px;
  background:rgba(216,168,72,.5); transition:width .5s var(--lp-ease), background-color .3s ease;
}
.nbl-lp__mas::after{content:""; position:absolute; right:0; top:-4px; width:9px; height:9px; border-top:1px solid var(--lp-oro); border-right:1px solid var(--lp-oro); transform:rotate(45deg)}
.nbl-lp__tipos a:hover .nbl-lp__mas{width:50px; background-color:var(--lp-oro)}

/* ── Bloque doble ──────────────────────────────────────────────── */
.nbl-lp__duo{
  max-width:1320px; margin:0 auto;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px;
  background:rgba(216,168,72,.16); border:1px solid rgba(216,168,72,.16);
}
.nbl-lp__duo-item{padding:clamp(28px,3.4vw,56px); background:var(--lp-carbon-2); scroll-margin-top:110px}
.nbl-lp__bullets{margin-top:26px}
.nbl-lp__bullets li{
  display:flex; gap:12px; padding:11px 0; border-bottom:1px solid rgba(216,168,72,.1);
  font:400 15px/1.5 var(--lp-sans); color:rgba(239,232,220,.82);
}
.nbl-lp__bullets li::before{content:""; flex:0 0 auto; width:5px; height:5px; margin-top:8px; background:var(--lp-oro); transform:rotate(45deg)}
.nbl-lp__duo-item .nbl-lp__btn{margin-top:30px}

/* ── Tabla de precios ─────────────────────────────────────────────────── */
.nbl-lp__tabla{max-width:900px; margin:0 auto; border:1px solid rgba(216,168,72,.18)}
.nbl-lp__tr{
  display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr); gap:16px;
  padding:16px clamp(16px,2vw,28px); border-bottom:1px solid rgba(216,168,72,.1);
  font:400 15px/1.5 var(--lp-sans); color:rgba(239,232,220,.86);
}
.nbl-lp__tr:last-child{border-bottom:0}
.nbl-lp__tr--head{
  background:rgba(216,168,72,.06);
  font:600 10px/1 var(--lp-sans); letter-spacing:.22em; text-transform:uppercase; color:var(--lp-oro);
}
.nbl-lp__tr span:not(:first-child){text-align:right}

/* ── FAQ ──────────────────────────────────────────────────────────────── */
.nbl-lp__faq{max-width:900px; margin:0 auto; border-top:1px solid rgba(216,168,72,.18)}
.nbl-lp__faq details{border-bottom:1px solid rgba(216,168,72,.12)}
.nbl-lp__faq summary{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:22px 0; cursor:pointer; list-style:none;
}
.nbl-lp__faq summary::-webkit-details-marker{display:none}
.nbl-lp__faq summary h3{font:500 clamp(19px,1.6vw,24px)/1.3 var(--lp-serif); color:var(--lp-crema); transition:color .3s ease}
.nbl-lp__faq summary:hover h3{color:var(--lp-oro)}
.nbl-lp__faq summary::after{
  content:""; flex:0 0 auto; width:14px; height:14px;
  border-right:1px solid var(--lp-oro); border-bottom:1px solid var(--lp-oro);
  transform:rotate(45deg) translateY(-3px); transition:transform .4s var(--lp-ease);
}
.nbl-lp__faq details[open] summary::after{transform:rotate(225deg) translateY(-3px)}
.nbl-lp__faq details p{padding:0 0 26px; max-width:680px; font:400 15px/1.75 var(--lp-sans); color:rgba(239,232,220,.8)}
.nbl-lp__faq details p a{border-bottom:1px solid rgba(216,168,72,.45)}
.nbl-lp__faq details p a:hover{color:var(--lp-oro); border-color:var(--lp-oro)}

/* ── Cierre ───────────────────────────────────────────────────────────── */
.nbl-lp__cierre{
  display:grid; justify-items:center; gap:20px; text-align:center;
  padding:clamp(80px,10vw,150px) var(--lp-gutter);
  background:var(--lp-carbon); border-top:1px solid rgba(216,168,72,.18);
}
.nbl-lp__cierre-eyebrow{
  display:inline-flex; align-items:center; gap:14px;
  font:600 11px/1 var(--lp-sans); letter-spacing:.3em; text-transform:uppercase; color:var(--lp-oro);
}
.nbl-lp__cierre-eyebrow::before,.nbl-lp__cierre-eyebrow::after{content:""; width:32px; height:1px; background:currentColor}
.nbl-lp__cierre-title{font:500 clamp(34px,5vw,72px)/1 var(--lp-serif)}
.nbl-lp__relacionado{display:flex; flex-wrap:wrap; justify-content:center; gap:14px 28px; margin-top:24px}
.nbl-lp__relacionado a{
  padding-bottom:5px; font:600 11px/1 var(--lp-sans); letter-spacing:.18em; text-transform:uppercase;
  border-bottom:1px solid rgba(216,168,72,.4); transition:color .3s ease, border-color .3s ease;
}
.nbl-lp__relacionado a:hover{color:var(--lp-oro); border-bottom-color:var(--lp-oro)}

@media (max-width:900px){
  .nbl-lp__hero-grid{grid-template-columns:1fr}
  .nbl-lp__hero-media{order:-1; max-width:480px}
  .nbl-lp__duo{grid-template-columns:1fr}
}
@media (max-width:700px){
  .nbl-lp__sv{grid-template-columns:clamp(36px,5vw,50px) 1fr auto; gap:10px 16px}
  .nbl-lp__sv-meta{grid-column:2 / -1; align-items:flex-start; text-align:left}
  .nbl-lp__sv-go{grid-row:1; grid-column:3}
}
@media (max-width:560px){
  .nbl-lp__ctas{flex-direction:column; align-items:stretch}
  .nbl-lp__ficha{gap:20px 32px}
  .nbl-lp__tr{grid-template-columns:1fr auto; gap:8px 16px}
  .nbl-lp__tr span:nth-child(2){grid-column:1; color:var(--lp-piedra); font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  .nbl-lp__sv,.nbl-lp__sv-go,.nbl-lp__faq summary::after{transition:none}
}

/* Datos pendientes: solo en el editor de Elementor y en la demo */
.nbl-lp__pend{display:none}
.elementor-editor-active .nbl-lp__pend,
.nbl-demo .nbl-lp__pend{
  display:inline-flex; padding:3px 9px; vertical-align:middle;
  font:500 10px/1.3 var(--lp-sans); letter-spacing:.04em; text-transform:none; color:var(--lp-oro);
  border:1px dashed rgba(216,168,72,.55); border-radius:2px;
}


/* =========================================================================
   .nbl-hub · Hub de servicios (/servicios/)
   v0.4.0 · Movido aqui desde el widget para no duplicar hojas.
   ========================================================================= */
/* ══════════════════════════════════════════════════════════════════════════
   NOBLE · Hub de servicios · .nbl-hub · v3
   Papel claro con dos bloques oscuros de puntuación. Esquinas rectas.
   ══════════════════════════════════════════════════════════════════════════ */
.nbl-hub{
  /* Altura que debe respetar el índice pegajoso.
     Va en 0 porque el header de Noble SE ESCONDE al bajar: si aquí pones su
     altura, queda un hueco por el que pasa el contenido por encima de la barra.
     Solo súbelo si algún día el header deja de esconderse. */
  --hub-header:0px;

  --hub-papel:#F4EFE6;
  --hub-papel-2:#EAE3D5;
  --hub-tinta:#0E0D0B;
  --hub-tinta-2:#4A453D;          /* secundario, ~9:1 sobre papel */
  --hub-oro:#D8A848;              /* relleno y decoración */
  --hub-oro-txt:#8A6412;          /* oro legible sobre claro, ~5:1 */
  --hub-linea:rgba(14,13,11,.16);
  --hub-linea-suave:rgba(14,13,11,.08);
  --hub-carbon:#0E0D0B;
  --hub-crema:#EFE8DC;

  --hub-serif:var(--nbl-serif,"Cormorant Garamond",Georgia,serif);
  --hub-sans:var(--nbl-sans,"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif);

  /* Curvas: las del sistema, no aproximaciones */
  --hub-ease-out:cubic-bezier(0.23, 1, 0.32, 1);
  --hub-ease-in-out:cubic-bezier(0.77, 0, 0.175, 1);

  --hub-gutter:clamp(20px,5vw,72px);
  --hub-max:1380px;

  display:block; position:relative;
  background:var(--hub-papel); color:var(--hub-tinta);
  font-family:var(--hub-sans);
  isolation:isolate;
}
.nbl-hub *,.nbl-hub *::before,.nbl-hub *::after{box-sizing:border-box}
.nbl-hub p,.nbl-hub h1,.nbl-hub h2,.nbl-hub h3,.nbl-hub dl,.nbl-hub dt,.nbl-hub dd{margin:0}
.nbl-hub ul,.nbl-hub ol{list-style:none; margin:0; padding:0}
.nbl-hub :where(a){color:inherit; text-decoration:none}
.nbl-hub button{font:inherit; color:inherit; background:none; border:0; cursor:pointer}
.nbl-hub :focus-visible{outline:2px solid var(--hub-tinta); outline-offset:3px}

.nbl-hub__sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}

/* ── Entrada por scroll ───────────────────────────────────────────────────
   Solo se aplica cuando el JS añade .js-reveal. Sin JS todo se ve. */
.nbl-hub.js-reveal [data-reveal]{
  opacity:0; transform:translateY(14px);
  transition:opacity 500ms var(--hub-ease-out), transform 500ms var(--hub-ease-out);
  transition-delay:var(--d,0ms);
}
.nbl-hub.js-reveal [data-reveal].is-in{opacity:1; transform:none}

/* ── Tipografía ───────────────────────────────────────────────────────── */
.nbl-hub__eyebrow{
  display:inline-flex; align-items:center; gap:12px; margin-bottom:20px !important;
  font:600 11px/1 var(--hub-sans); letter-spacing:.28em; text-transform:uppercase;
  color:var(--hub-oro-txt);
}
.nbl-hub__eyebrow::before{content:""; width:28px; height:1px; background:currentColor}
.nbl-hub__h1{font:500 clamp(38px,6.4vw,104px)/.95 var(--hub-serif); letter-spacing:-.02em; text-wrap:balance}
.nbl-hub__h2{font:500 clamp(30px,4.2vw,62px)/1 var(--hub-serif); letter-spacing:-.02em; text-wrap:balance}
.nbl-hub__h3{font:500 clamp(24px,2.4vw,36px)/1.05 var(--hub-serif); letter-spacing:-.01em}
.nbl-hub__lead{
  margin-top:24px !important; max-width:56ch;
  font:400 clamp(16px,1.25vw,19px)/1.65 var(--hub-sans); color:var(--hub-tinta-2);
}
.nbl-hub__texto{
  margin-top:16px !important; max-width:62ch;
  font:400 clamp(15px,1.1vw,17px)/1.7 var(--hub-sans); color:var(--hub-tinta-2);
}
.nbl-hub__texto b{color:var(--hub-tinta); font-weight:600}

/* ── Botones ──────────────────────────────────────────────────────────── */
.nbl-hub__btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:52px; padding:0 30px; border-radius:0; border:1px solid var(--hub-tinta);
  font:600 11px/1 var(--hub-sans); letter-spacing:.2em; text-transform:uppercase;
  transition:background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.nbl-hub__btn--solid{background:var(--hub-tinta); color:var(--hub-papel)}
.nbl-hub__btn--solid:hover{background:transparent; color:var(--hub-tinta)}
.nbl-hub__btn--line:hover{background:var(--hub-tinta); color:var(--hub-papel)}
.nbl-hub__btn--oro{background:var(--hub-oro); color:var(--hub-carbon); border-color:var(--hub-oro)}
.nbl-hub__btn--oro:hover{background:transparent; color:var(--hub-oro)}
.nbl-hub__btn--line-oro{border-color:rgba(216,168,72,.5); color:var(--hub-crema)}
.nbl-hub__btn--line-oro:hover{border-color:var(--hub-oro); color:var(--hub-oro)}
.nbl-hub__btn--grande{min-height:62px; padding:0 44px}

/* ── Hero ─────────────────────────────────────────────────────────────── */
.nbl-hub__hero{
  padding:clamp(100px,12vw,160px) var(--hub-gutter) clamp(52px,6vw,84px);
  background-image:repeating-linear-gradient(to right,var(--hub-linea-suave) 0 1px,transparent 1px 25%);
}
.nbl-hub__crumbs{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  max-width:var(--hub-max); margin:0 auto 44px;
  font:500 11px/1 var(--hub-sans); letter-spacing:.14em; text-transform:uppercase;
  color:var(--hub-tinta-2);
}
.nbl-hub__crumbs a{transition:color 180ms ease}
.nbl-hub__crumbs a:hover{color:var(--hub-oro-txt)}
.nbl-hub__crumbs span[aria-hidden]{color:var(--hub-linea)}
.nbl-hub__crumbs [aria-current]{color:var(--hub-tinta)}

.nbl-hub__hero-grid{
  max-width:var(--hub-max); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,.85fr);
  gap:clamp(36px,5vw,72px); align-items:end;
}
.nbl-hub__ctas{display:flex; flex-wrap:wrap; gap:12px; margin-top:34px}

.nbl-hub__marcador{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--hub-tinta); border-left:1px solid var(--hub-linea);
}
.nbl-hub__marcador > div{
  padding:18px 20px 20px;
  border-right:1px solid var(--hub-linea); border-bottom:1px solid var(--hub-linea);
}
.nbl-hub__marcador dt{
  font:600 10px/1 var(--hub-sans); letter-spacing:.22em; text-transform:uppercase; color:var(--hub-oro-txt);
}
.nbl-hub__marcador dd{margin-top:10px !important; font:500 clamp(20px,2vw,28px)/1.1 var(--hub-serif)}

/* ── Índice pegajoso ──────────────────────────────────────────────────── */
.nbl-hub__spy{
  position:sticky; top:var(--hub-header); z-index:20;
  display:flex; align-items:stretch;
  border-top:1px solid var(--hub-tinta); border-bottom:1px solid var(--hub-tinta);
  background:var(--hub-papel);
  box-shadow:0 12px 26px -20px rgba(14,13,11,.6);
}
.nbl-hub__spy ol{
  flex:1 1 auto; display:flex; overflow-x:auto; scrollbar-width:none;
  scroll-snap-type:x proximity; scroll-padding-left:var(--hub-gutter);
}
.nbl-hub__spy ol::-webkit-scrollbar{display:none}
.nbl-hub__spy li{flex:0 0 auto; scroll-snap-align:start}
.nbl-hub__spy li:first-child a{padding-left:var(--hub-gutter)}
.nbl-hub__spy a{
  display:inline-flex; align-items:center; gap:10px; min-height:56px; padding:0 22px;
  font:600 11px/1 var(--hub-sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--hub-tinta-2); white-space:nowrap;
  border-right:1px solid var(--hub-linea-suave);
  transition:background-color 180ms ease, color 180ms ease;
}
.nbl-hub__spy a span{font-size:10px; color:var(--hub-oro-txt); transition:color 180ms ease}
.nbl-hub__spy a.is-on{background:var(--hub-tinta); color:var(--hub-papel)}
.nbl-hub__spy a.is-on span{color:var(--hub-oro)}
.nbl-hub__spy-cta{
  flex:0 0 auto; display:inline-flex; align-items:center; min-height:56px;
  padding:0 clamp(20px,3vw,32px); background:var(--hub-oro); color:var(--hub-carbon);
  font:700 11px/1 var(--hub-sans); letter-spacing:.2em; text-transform:uppercase;
  transition:background-color 180ms ease, color 180ms ease;
}
@media (hover:hover) and (pointer:fine){
  .nbl-hub__spy a:hover{background:var(--hub-papel-2); color:var(--hub-tinta)}
  .nbl-hub__spy-cta:hover{background:var(--hub-tinta); color:var(--hub-papel)}
}

/* ── Configurador ─────────────────────────────────────────────────────── */
.nbl-hub__conf{padding:clamp(64px,8vw,120px) var(--hub-gutter); scroll-margin-top:140px}
.nbl-hub__conf-grid{
  max-width:var(--hub-max); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.82fr); gap:clamp(28px,4vw,64px);
  align-items:start;
}
.nbl-hub__chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:34px}
.nbl-hub__chip{
  display:inline-flex; align-items:center; gap:10px; min-height:52px; padding:0 22px;
  border:1px solid var(--hub-linea); background:transparent;
  font:600 12px/1 var(--hub-sans); letter-spacing:.06em;
  transition:background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.nbl-hub__chip svg{
  width:20px; height:20px; flex:0 0 auto;
  fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round;
}
.nbl-hub__chip[aria-pressed="true"]{background:var(--hub-tinta); color:var(--hub-papel); border-color:var(--hub-tinta)}
.nbl-hub__chip[aria-pressed="true"] svg{stroke:var(--hub-oro)}
@media (hover:hover) and (pointer:fine){
  .nbl-hub__chip:hover{border-color:var(--hub-tinta)}
}
.nbl-hub__reset{
  margin-top:20px; padding:6px 0;
  font:600 11px/1 var(--hub-sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--hub-tinta-2); border-bottom:1px solid var(--hub-linea);
  transition:color 180ms ease, border-color 180ms ease;
}
.nbl-hub__reset:hover{color:var(--hub-tinta); border-bottom-color:var(--hub-tinta)}

.nbl-hub__conf-out{
  padding:clamp(26px,3vw,44px);
  background:var(--hub-carbon); color:var(--hub-crema); border:1px solid var(--hub-carbon);
}
.nbl-hub__conf-k{
  font:600 10px/1 var(--hub-sans); letter-spacing:.28em; text-transform:uppercase; color:var(--hub-oro);
}
.nbl-hub__conf-title{margin-top:16px !important; font:500 clamp(28px,3.2vw,46px)/1.05 var(--hub-serif)}
.nbl-hub__conf-desc{margin-top:14px !important; font:400 15px/1.65 var(--hub-sans); color:rgba(239,232,220,.78)}
.nbl-hub__conf-list{margin-top:24px; border-top:1px solid rgba(216,168,72,.22)}
.nbl-hub__conf-list li{
  display:flex; gap:12px; padding:11px 0; border-bottom:1px solid rgba(216,168,72,.14);
  font:400 14px/1.5 var(--hub-sans); color:rgba(239,232,220,.86);
}
.nbl-hub__conf-list li::before{
  content:""; flex:0 0 auto; width:5px; height:5px; margin-top:7px;
  background:var(--hub-oro); transform:rotate(45deg);
}
.nbl-hub__conf-list li.is-extra{color:var(--hub-oro)}
.nbl-hub__conf-ficha{display:flex; flex-wrap:wrap; gap:16px 40px; margin-top:24px !important}
.nbl-hub__conf-ficha dt{font:600 10px/1 var(--hub-sans); letter-spacing:.22em; text-transform:uppercase; color:var(--hub-oro)}
.nbl-hub__conf-ficha dd{margin-top:8px !important; font:500 22px/1.2 var(--hub-serif); font-variant-numeric:tabular-nums}
.nbl-hub__conf-ctas{display:flex; flex-wrap:wrap; gap:10px; margin-top:30px}

/* ── Bento de servicios ───────────────────────────────────────────────── */
.nbl-hub__fichas{padding:clamp(64px,8vw,120px) var(--hub-gutter); background:var(--hub-papel-2)}
.nbl-hub__seccion-head{max-width:var(--hub-max); margin:0 auto clamp(36px,4vw,60px)}
.nbl-hub__bento{
  max-width:var(--hub-max); margin:0 auto;
  display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(12px,1.4vw,20px);
}
.nbl-hub__ficha{
  position:relative; overflow:hidden;
  display:flex; align-items:flex-end;
  padding:clamp(24px,2.6vw,40px);
  background:var(--hub-papel); border:1px solid var(--hub-linea);
  scroll-margin-top:140px;
  transition:background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}
.nbl-hub__ficha:nth-child(1){grid-column:span 7}
.nbl-hub__ficha:nth-child(2){grid-column:span 5}
.nbl-hub__ficha:nth-child(3){grid-column:span 7}
.nbl-hub__ficha:nth-child(4){grid-column:span 5}
.nbl-hub__ficha-num{
  position:absolute; top:clamp(14px,1.6vw,24px); right:clamp(16px,2vw,30px);
  font:700 clamp(64px,8vw,132px)/.8 var(--hub-sans); letter-spacing:-.04em;
  color:transparent; -webkit-text-stroke:1px var(--hub-linea);
  pointer-events:none; transition:-webkit-text-stroke-color 180ms ease;
}
.nbl-hub__ficha-body{position:relative; z-index:1; width:100%}
.nbl-hub__ficha-tag{
  margin-bottom:12px !important;
  font:600 10px/1 var(--hub-sans); letter-spacing:.24em; text-transform:uppercase; color:var(--hub-oro-txt);
}
.nbl-hub__ficha-desc{margin-top:14px !important; max-width:52ch; font:400 15px/1.6 var(--hub-sans); color:var(--hub-tinta-2)}
.nbl-hub__inc{display:flex; flex-wrap:wrap; gap:8px; margin-top:20px}
.nbl-hub__inc li{
  padding:6px 12px; border:1px solid var(--hub-linea);
  font:500 12px/1.4 var(--hub-sans); color:var(--hub-tinta-2);
  transition:border-color 180ms ease, color 180ms ease;
}
.nbl-hub__ficha-precio{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 16px;
  margin-top:22px !important; padding-top:16px; border-top:1px solid var(--hub-linea);
  transition:border-color 180ms ease;
}
.nbl-hub__ficha-precio b{font:500 clamp(30px,3vw,44px)/1 var(--hub-serif); color:var(--hub-tinta); font-variant-numeric:tabular-nums; transition:color 180ms ease}
.nbl-hub__ficha-precio span{font:600 11px/1.4 var(--hub-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--hub-tinta-2); transition:color 180ms ease}
.nbl-hub__ficha-go{
  display:inline-flex; align-items:center; gap:10px; margin-top:20px; padding-bottom:6px;
  font:600 11px/1 var(--hub-sans); letter-spacing:.18em; text-transform:uppercase;
  border-bottom:1px solid var(--hub-tinta);
  transition:color 180ms ease, border-color 180ms ease;
}
.nbl-hub__ficha-go::after{content:""; width:22px; height:1px; background:currentColor; transition:width 180ms var(--hub-ease-out)}

/* Inversión: hover con puntero fino, foco dentro, o servicio activo del índice */
.nbl-hub__ficha:focus-within,
.nbl-hub__ficha.is-on,
.nbl-hub__ficha--destacada{background:var(--hub-carbon); color:var(--hub-crema); border-color:var(--hub-carbon)}
.nbl-hub__ficha:focus-within .nbl-hub__ficha-desc,
.nbl-hub__ficha.is-on .nbl-hub__ficha-desc,
.nbl-hub__ficha--destacada .nbl-hub__ficha-desc{color:rgba(239,232,220,.78)}
.nbl-hub__ficha:focus-within .nbl-hub__inc li,
.nbl-hub__ficha.is-on .nbl-hub__inc li,
.nbl-hub__ficha--destacada .nbl-hub__inc li{border-color:rgba(216,168,72,.3); color:rgba(239,232,220,.84)}
.nbl-hub__ficha:focus-within .nbl-hub__ficha-precio,
.nbl-hub__ficha.is-on .nbl-hub__ficha-precio,
.nbl-hub__ficha--destacada .nbl-hub__ficha-precio{border-top-color:rgba(216,168,72,.24)}
.nbl-hub__ficha:focus-within .nbl-hub__ficha-precio b,
.nbl-hub__ficha.is-on .nbl-hub__ficha-precio b,
.nbl-hub__ficha--destacada .nbl-hub__ficha-precio b{color:var(--hub-crema)}
.nbl-hub__ficha:focus-within .nbl-hub__ficha-precio span,
.nbl-hub__ficha.is-on .nbl-hub__ficha-precio span,
.nbl-hub__ficha--destacada .nbl-hub__ficha-precio span,
.nbl-hub__ficha--destacada .nbl-hub__ficha-tag{color:var(--hub-oro)}
.nbl-hub__ficha:focus-within .nbl-hub__ficha-go,
.nbl-hub__ficha.is-on .nbl-hub__ficha-go,
.nbl-hub__ficha--destacada .nbl-hub__ficha-go{color:var(--hub-oro); border-bottom-color:var(--hub-oro)}
.nbl-hub__ficha:focus-within .nbl-hub__ficha-num,
.nbl-hub__ficha.is-on .nbl-hub__ficha-num,
.nbl-hub__ficha--destacada .nbl-hub__ficha-num{-webkit-text-stroke-color:rgba(216,168,72,.45)}
.nbl-hub__ficha :focus-visible{outline-color:var(--hub-oro)}

@media (hover:hover) and (pointer:fine){
  .nbl-hub__ficha:hover{background:var(--hub-carbon); color:var(--hub-crema); border-color:var(--hub-carbon)}
  .nbl-hub__ficha:hover .nbl-hub__ficha-desc{color:rgba(239,232,220,.78)}
  .nbl-hub__ficha:hover .nbl-hub__inc li{border-color:rgba(216,168,72,.3); color:rgba(239,232,220,.84)}
  .nbl-hub__ficha:hover .nbl-hub__ficha-precio{border-top-color:rgba(216,168,72,.24)}
  .nbl-hub__ficha:hover .nbl-hub__ficha-precio b{color:var(--hub-crema)}
  .nbl-hub__ficha:hover .nbl-hub__ficha-precio span,
  .nbl-hub__ficha:hover .nbl-hub__ficha-tag{color:var(--hub-oro)}
  .nbl-hub__ficha:hover .nbl-hub__ficha-go{color:var(--hub-oro); border-bottom-color:var(--hub-oro)}
  .nbl-hub__ficha:hover .nbl-hub__ficha-num{-webkit-text-stroke-color:rgba(216,168,72,.45)}
  .nbl-hub__ficha:hover .nbl-hub__ficha-go::after{width:36px}
  .nbl-hub__ficha:hover .nbl-hub__pend{color:var(--hub-oro); border-color:rgba(216,168,72,.55)}
}

/* ── Banda de imágenes ────────────────────────────────────────────────
   A sangre completa, sin gutter: es la bisagra entre el papel y el carbón.
   En móvil se convierte en una tira que se arrastra, no en tres apilados. */
.nbl-hub__tira{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px;
  background:var(--hub-carbon);
}
.nbl-hub__tira figure{position:relative; margin:0; overflow:hidden; background:var(--hub-carbon)}
.nbl-hub__tira img{
  display:block; width:100%; height:100%; aspect-ratio:4/5; object-fit:cover;
  filter:saturate(.85) brightness(.9);
  transition:transform 700ms var(--hub-ease-out), filter 400ms ease;
}
.nbl-hub__tira figcaption{
  position:absolute; left:clamp(14px,1.6vw,22px); bottom:clamp(12px,1.4vw,20px);
  font:600 10px/1 var(--hub-sans); letter-spacing:.24em; text-transform:uppercase;
  color:var(--hub-crema); text-shadow:0 1px 12px rgba(14,13,11,.9);
}
.nbl-hub__tira figure::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg, rgba(14,13,11,.75) 0%, rgba(14,13,11,0) 45%);
}
@media (hover:hover) and (pointer:fine){
  .nbl-hub__tira figure:hover img{transform:scale(1.04); filter:saturate(1) brightness(1)}
}

/* ── Comparador · oscuro ──────────────────────────────────────────────── */
.nbl-hub__comp{padding:clamp(64px,8vw,120px) 0; background:var(--hub-carbon); color:var(--hub-crema)}
.nbl-hub__comp .nbl-hub__seccion-head{padding:0 var(--hub-gutter)}
.nbl-hub__comp .nbl-hub__eyebrow{color:var(--hub-oro)}
.nbl-hub__comp .nbl-hub__texto{color:rgba(239,232,220,.78)}
.nbl-hub__comp .nbl-hub__texto b{color:var(--hub-crema)}
.nbl-hub__comp :focus-visible{outline-color:var(--hub-oro)}

.nbl-hub__matriz-wrap{
  max-width:var(--hub-max); margin:0 auto; padding:0 var(--hub-gutter);
  overflow-x:auto; scrollbar-width:thin;
}
.nbl-hub__matriz{width:100%; min-width:720px; border-collapse:collapse; text-align:left}
.nbl-hub__matriz th,.nbl-hub__matriz td{
  padding:15px 18px; border-bottom:1px solid rgba(216,168,72,.14); vertical-align:middle;
  transition:opacity 200ms ease;
}
.nbl-hub__matriz thead th{border-bottom:1px solid rgba(216,168,72,.34); padding:0 0 14px; vertical-align:bottom}
.nbl-hub__matriz tbody th{width:28%; font:500 14px/1.4 var(--hub-sans); color:var(--hub-crema)}
.nbl-hub__matriz td{font:400 14px/1.4 var(--hub-sans); color:rgba(239,232,220,.8)}
.nbl-hub__col-btn{
  width:100%; padding:12px 14px; text-align:left;
  font:600 11px/1.5 var(--hub-sans); letter-spacing:.14em; text-transform:uppercase;
  color:var(--hub-crema); border:1px solid rgba(216,168,72,.28);
  transition:background-color 180ms ease, color 180ms ease, border-color 180ms ease, opacity 200ms ease;
}
.nbl-hub__col-btn b{font:500 20px/1.2 var(--hub-serif); letter-spacing:0; color:var(--hub-oro); font-variant-numeric:tabular-nums; transition:color 180ms ease}
.nbl-hub__col-btn[aria-pressed="true"]{background:var(--hub-oro); color:var(--hub-carbon); border-color:var(--hub-oro)}
.nbl-hub__col-btn[aria-pressed="true"] b{color:var(--hub-carbon)}
@media (hover:hover) and (pointer:fine){
  .nbl-hub__col-btn:hover{border-color:var(--hub-oro)}
}
.nbl-hub__si,.nbl-hub__no{display:inline-flex; align-items:center; gap:9px}
.nbl-hub__si{color:var(--hub-oro)}
.nbl-hub__si::before{
  content:""; flex:0 0 auto; width:10px; height:5px; margin-top:-3px;
  border-left:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-45deg);
}
.nbl-hub__no{color:rgba(239,232,220,.42)}
.nbl-hub__no::before{content:""; flex:0 0 auto; width:10px; height:1.5px; background:currentColor}
.nbl-hub__fila-dato th,.nbl-hub__fila-dato td{background:rgba(216,168,72,.05)}
.nbl-hub__fila-dato td{font:500 16px/1.3 var(--hub-serif); color:var(--hub-crema); font-variant-numeric:tabular-nums}
.nbl-hub__matriz[data-focus] td:not(.is-focus){opacity:.28}
.nbl-hub__matriz[data-focus] .nbl-hub__col-btn:not([aria-pressed="true"]){opacity:.45}

/* ── Membresías ───────────────────────────────────────────────────────── */
.nbl-hub__memb{padding:clamp(64px,8vw,120px) var(--hub-gutter)}
.nbl-hub__memb-grid{
  max-width:var(--hub-max); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(32px,4vw,72px);
  align-items:center;
}
.nbl-hub__memb .nbl-hub__btn{margin-top:30px}
.nbl-hub__memb-lista{border-top:1px solid var(--hub-tinta)}
.nbl-hub__memb-lista > div{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  padding:16px 0; border-bottom:1px solid var(--hub-linea);
}
.nbl-hub__memb-lista dt{font:500 15px/1.3 var(--hub-sans)}
.nbl-hub__memb-lista dd{font:500 24px/1 var(--hub-serif); color:var(--hub-oro-txt); font-variant-numeric:tabular-nums}

/* ── Ritual ───────────────────────────────────────────────────────────── */
.nbl-hub__ritual{padding:clamp(64px,8vw,120px) var(--hub-gutter); background:var(--hub-papel-2)}
.nbl-hub__ritual-grid{
  max-width:var(--hub-max); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,4vw,72px);
  align-items:center;
}
.nbl-hub__ritual .nbl-hub__btn{margin-top:30px}
.nbl-hub__pasos{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid var(--hub-tinta); border-left:1px solid var(--hub-linea);
}
.nbl-hub__pasos li{
  display:flex; align-items:baseline; gap:12px; padding:16px 18px;
  border-right:1px solid var(--hub-linea); border-bottom:1px solid var(--hub-linea);
  font:500 15px/1.2 var(--hub-sans);
}
.nbl-hub__pasos li:last-child{grid-column:span 2}
.nbl-hub__pasos span{font:600 10px/1 var(--hub-sans); letter-spacing:.18em; color:var(--hub-oro-txt)}

/* ── FAQ ──────────────────────────────────────────────────────────────── */
.nbl-hub__faq-sec{padding:clamp(64px,8vw,120px) var(--hub-gutter)}
.nbl-hub__faq-grid{
  max-width:var(--hub-max); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(28px,4vw,72px);
  align-items:start;
}
.nbl-hub__faq-head{position:sticky; top:96px}
.nbl-hub__faq{border-top:1px solid var(--hub-tinta)}
.nbl-hub__faq details{border-bottom:1px solid var(--hub-linea)}
.nbl-hub__faq summary{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:20px 0; cursor:pointer; list-style:none;
}
.nbl-hub__faq summary::-webkit-details-marker{display:none}
.nbl-hub__faq summary h3{
  margin:0; font:500 clamp(18px,1.5vw,23px)/1.3 var(--hub-serif); transition:color 180ms ease;
}
.nbl-hub__faq summary::after{
  content:""; flex:0 0 auto; width:14px; height:14px;
  background:
    linear-gradient(var(--hub-tinta),var(--hub-tinta)) center/14px 1px no-repeat,
    linear-gradient(var(--hub-tinta),var(--hub-tinta)) center/1px 14px no-repeat;
  transition:transform 220ms var(--hub-ease-out);
}
@media (hover:hover) and (pointer:fine){
  .nbl-hub__faq summary:hover h3{color:var(--hub-oro-txt)}
}
.nbl-hub__faq details[open] summary::after{transform:rotate(135deg)}
/* Apertura: grid 0fr→1fr, la única forma limpia de animar alto desconocido */
.nbl-hub__faq details > div{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows 220ms var(--hub-ease-out);
}
.nbl-hub__faq details[open] > div{grid-template-rows:1fr}
.nbl-hub__faq details > div > p{
  overflow:hidden; max-width:70ch;
  font:400 15px/1.75 var(--hub-sans); color:var(--hub-tinta-2);
}
.nbl-hub__faq details[open] > div > p{padding-bottom:24px}
.nbl-hub__faq p a{color:var(--hub-oro-txt); border-bottom:1px solid currentColor}

/* ── Cierre · oscuro ──────────────────────────────────────────────────── */
.nbl-hub__cierre{
  display:grid; justify-items:center; gap:18px; text-align:center;
  padding:clamp(72px,9vw,140px) var(--hub-gutter);
  background:var(--hub-carbon); color:var(--hub-crema);
}
.nbl-hub__cierre-eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font:600 11px/1 var(--hub-sans); letter-spacing:.28em; text-transform:uppercase; color:var(--hub-oro);
}
.nbl-hub__cierre-eyebrow::before,.nbl-hub__cierre-eyebrow::after{content:""; width:28px; height:1px; background:currentColor}
.nbl-hub__cierre-title{font:500 clamp(32px,5.4vw,84px)/1 var(--hub-serif); letter-spacing:-.02em}
.nbl-hub__cierre .nbl-hub__btn{margin-top:10px}
.nbl-hub__relacionado{display:flex; flex-wrap:wrap; justify-content:center; gap:14px 28px; margin-top:22px}
.nbl-hub__relacionado a{
  padding-bottom:5px; font:600 11px/1 var(--hub-sans); letter-spacing:.18em; text-transform:uppercase;
  color:rgba(239,232,220,.8); border-bottom:1px solid rgba(216,168,72,.4);
  transition:color 180ms ease, border-color 180ms ease;
}
.nbl-hub__relacionado a:hover{color:var(--hub-oro); border-bottom-color:var(--hub-oro)}
.nbl-hub__cierre :focus-visible{outline-color:var(--hub-oro)}

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width:1100px){
  .nbl-hub__hero-grid{grid-template-columns:1fr; align-items:start}
  .nbl-hub__conf-grid,.nbl-hub__ritual-grid,.nbl-hub__faq-grid,.nbl-hub__memb-grid{grid-template-columns:1fr}
  .nbl-hub__faq-head{position:static}
  .nbl-hub__ficha:nth-child(n){grid-column:span 6}
}
@media (max-width:760px){
  .nbl-hub__ficha:nth-child(n){grid-column:span 12}
  .nbl-hub__tira{
    display:flex; overflow-x:auto; scrollbar-width:none;
    scroll-snap-type:x mandatory; scroll-padding-left:var(--hub-gutter);
  }
  .nbl-hub__tira::-webkit-scrollbar{display:none}
  .nbl-hub__tira figure{flex:0 0 74%; scroll-snap-align:start}
  .nbl-hub__spy-cta{padding:0 18px}
  .nbl-hub__chip{flex:1 1 calc(50% - 5px); justify-content:center}
}
@media (max-width:560px){
  .nbl-hub__ctas,.nbl-hub__conf-ctas{flex-direction:column; align-items:stretch}
  .nbl-hub__chip{flex:1 1 100%}
  .nbl-hub__pasos{grid-template-columns:1fr}
  .nbl-hub__pasos li:last-child{grid-column:span 1}
}

/* Movimiento reducido: se queda el fundido, se va el desplazamiento */
@media (prefers-reduced-motion:reduce){
  .nbl-hub.js-reveal [data-reveal]{transform:none; transition:opacity 200ms ease}
  .nbl-hub.js-reveal [data-reveal].is-in{transform:none}
  .nbl-hub__faq details > div,
  .nbl-hub__faq summary::after,
  .nbl-hub__ficha-go::after,
  .nbl-hub__tira img{transition:none}
}

/* Datos pendientes: solo en el editor de Elementor y en la demo */
.nbl-hub__pend{display:none}
.elementor-editor-active .nbl-hub__pend,
.nbl-demo .nbl-hub__pend{
  display:inline-flex; padding:3px 9px; vertical-align:middle;
  font:500 10px/1.3 var(--hub-sans); letter-spacing:.03em; text-transform:none;
  color:var(--hub-oro-txt); border:1px dashed rgba(138,100,18,.5);
}
.nbl-hub__comp .nbl-hub__pend{color:var(--hub-oro); border-color:rgba(216,168,72,.5)}


/* =========================================================================
   v0.5.0 · 2026-09-21 · Arreglos que valen para todos los widgets
   ========================================================================= */

/* Centrado de listas. Los resets ".nbl-lp ul{margin:0}" y ".nbl-rs ul{margin:0}"
   pesan (0,1,1) y anulaban el "margin:0 auto" (0,1,0) de estas listas: la caja
   se quedaba pegada a la izquierda y solo se centraba el texto de dentro.
   Con la clase doble pesan (0,2,0) y ganan, aunque el widget traiga su propio reset. */
.nbl-lp .nbl-lp__incluye,
.nbl-lp .nbl-lp__pasos,
.nbl-lp .nbl-lp__tipos,
.nbl-lp .nbl-lp__formas,
.nbl-rs .nbl-rs__pasos{margin-left:auto; margin-right:auto}

/* [hidden] siempre oculta. El reset de Hello ya no puede imponerlo (va en una capa)
   y cualquier "display" de un widget le ganaba: por eso el botón "Empezar de
   nuevo" del hub se veía aunque llevara hidden. */
[hidden]{display:none !important}

/* Botones del hub: el widget sin CSS depende de esto. Sin el radio a 0 salían
   con las esquinas redondeadas del reset de Hello. */
.nbl-hub button{font:inherit; color:inherit; background:none; border:0; border-radius:0; padding:0; cursor:pointer}
