/* NSF Buscador de Hilos — estilos públicos */

.nsf-buscador{
  --nsf-navy:#1F2A44;
  --nsf-navy-deep:#141c30;
  --nsf-red:#E7302A;
  --nsf-red-deep:#c22620;
  --nsf-mustard:#C99A2E;
  --nsf-cream:#F5EDE4;
  --nsf-cream-2:#FFFBF6;
  --nsf-ink:#241d18;
  --nsf-ink-soft:#4a423c;
  color:var(--nsf-ink);
  position:relative;
}

.nsf-ficha{
  --nsf-navy:#1F2A44;
  --nsf-navy-deep:#141c30;
  --nsf-red:#E7302A;
  --nsf-red-deep:#c22620;
  --nsf-mustard:#C99A2E;
  --nsf-cream:#F5EDE4;
  --nsf-cream-2:#FFFBF6;
  --nsf-ink:#241d18;
  --nsf-ink-soft:#4a423c;
  color:var(--nsf-ink);
  position:relative;
}
.nsf-buscador *{box-sizing:border-box;}
.nsf-ficha *{box-sizing:border-box;}

.nsf-buscador .screen-reader-text{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap;
}

.nsf-ficha .screen-reader-text{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap;
}

/* ---------- HERO ---------- */
/* Cabecera editorial y minimalista: el rojo queda reservado para la marca y las acciones. */
.nsf-hero{
  background:#fff;
  color:var(--nsf-ink);
  padding:42px 24px 68px;
  text-align:center;
  border:1px solid #eee6dd;
  border-radius:18px;
  box-shadow:none;
}
.nsf-buscador .nsf-hero .nsf-hero-title,
.nsf-buscador .nsf-hero h1.nsf-hero-title,
.nsf-buscador .nsf-hero h2.nsf-hero-title,
.nsf-buscador .nsf-hero h3.nsf-hero-title{
  font-size:clamp(1.6rem, 3.6vw, 2.3rem);
  font-weight:700;
  margin:0;
  color:var(--nsf-red) !important;
  line-height:1.15;
  text-align:center;
}
.nsf-ficha .nsf-hero .nsf-hero-title,
.nsf-ficha .nsf-hero h1.nsf-hero-title,
.nsf-ficha .nsf-hero h2.nsf-hero-title,
.nsf-ficha .nsf-hero h3.nsf-hero-title{
  font-size:clamp(1.6rem, 3.6vw, 2.3rem);
  font-weight:700;
  margin:0;
  color:var(--nsf-red) !important;
  line-height:1.15;
  text-align:center;
}
.nsf-buscador .nsf-hero .nsf-hero-title a{color:var(--nsf-red) !important;}
.nsf-ficha .nsf-hero .nsf-hero-title a{color:var(--nsf-red) !important;}
.nsf-buscador .nsf-hero .nsf-hero-lede{
  max-width:460px;
  margin:14px auto 0;
  color:var(--nsf-ink-soft) !important;
  font-size:1rem;
  line-height:1.55;
}
.nsf-ficha .nsf-hero .nsf-hero-lede{
  max-width:460px;
  margin:14px auto 0;
  color:var(--nsf-ink-soft) !important;
  font-size:1rem;
  line-height:1.55;
}
.nsf-examples{display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:18px;}
.nsf-example-chip{
  background:#fff;
  border:1px solid #e9dfd2;
  color:var(--nsf-ink); font-size:0.8rem; padding:7px 14px;
  border-radius:100px; cursor:pointer; font-family:inherit;
}
.nsf-example-chip:hover{background:#fff8f3; border-color:#dfcdbb;}

/* 5.57.60 — El filtro general ya no se muestra en el índice: Explorar por tipo
   dispone de su propio menú desplegable. Se mantiene el contenedor en el DOM
   para que los filtros internos del buscador sigan funcionando cuando proceda. */
.nsf-buscador .nsf-filtros{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
}
.nsf-ficha .nsf-filtros{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* ---------- BUSCADOR ---------- */
.nsf-search-shell{max-width:620px; margin:-34px auto 0; padding:0 20px; position:relative; z-index:5;}
.nsf-search-box{
  background:#fff; border-radius:16px;
  box-shadow:0 18px 44px -18px rgba(20,28,48,0.35);
  padding:6px; position:relative;
  transition:box-shadow .14s ease;
}
.nsf-search-box:focus-within{
  box-shadow:0 0 0 3px rgba(201,154,46,0.45), 0 18px 44px -18px rgba(20,28,48,0.35);
}
.nsf-search-row{display:flex; align-items:center; gap:10px; padding:8px 12px;}
.nsf-search-row svg{flex:none;}
#nsf-search-input{
  flex:1; border:none; outline:none; background:transparent;
  font-size:1rem; color:var(--nsf-ink); padding:8px 0; font-family:inherit;
  box-shadow:none;
}
#nsf-search-input:focus{box-shadow:none; outline:none;}

.nsf-suggestions{
  position:absolute; top:calc(100% + 8px); left:0; right:0;
  background:#fff; border-radius:14px;
  box-shadow:0 16px 40px -16px rgba(20,28,48,0.3);
  overflow:hidden auto; display:none; max-height:300px; z-index:10;
}
.nsf-suggestions.nsf-open{display:block;}
.nsf-sugg-item{
  display:flex; align-items:center; gap:12px;
  padding:11px 16px; cursor:pointer; border-bottom:1px solid #f0e9de;
}
.nsf-sugg-item:last-child{border-bottom:none;}
.nsf-sugg-item:hover, .nsf-sugg-item.nsf-active{background:var(--nsf-cream);}
.nsf-sugg-title{font-size:0.92rem;}
.nsf-sugg-meta{font-size:0.76rem; color:var(--nsf-ink-soft);}

/* ---------- ETIQUETAS DEL DESPLEGABLE DEL BUSCADOR ---------- */
.nsf-suggestions .nsf-sugg-item{align-items:center;}
.nsf-suggestions .nsf-tag{
  min-width:78px;
  text-align:center;
  padding:5px 9px;
  border:1px solid rgba(20,28,48,0.08);
  font-size:0.62rem;
  font-weight:700;
  letter-spacing:.075em;
  line-height:1;
  box-shadow:none;
}
.nsf-suggestions .nsf-type-libro{background:#f2e6e1;color:#74402f;}
.nsf-suggestions .nsf-type-juego{background:#f5ecd3;color:#6f5700;}
.nsf-suggestions .nsf-type-pelicula,
.nsf-suggestions .nsf-type-serie{background:#e7edf6;color:#294a75;}
.nsf-suggestions .nsf-type-musica{background:#e8ebf1;color:#24304a;}
.nsf-suggestions .nsf-sugg-title{font-size:.93rem;font-weight:600;color:var(--nsf-navy);}
.nsf-suggestions .nsf-sugg-meta{margin-top:2px;display:inline-block;}

/* ---------- ETIQUETAS DE TIPO ---------- */
.nsf-tag{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.6rem; text-transform:uppercase; letter-spacing:0.06em;
  padding:3px 8px; border-radius:100px; color:#fff; flex:none; display:inline-block;
}
.nsf-type-libro{background:#8a4b3a;}
.nsf-type-juego{background:var(--nsf-mustard);}
.nsf-type-pelicula{background:#3a5a8a;}
.nsf-type-serie{background:#3a5a8a;}
.nsf-type-musica{background:var(--nsf-navy);}

/* ---------- RESULTADOS ---------- */
.nsf-results{max-width:880px; margin:0 auto; padding:44px 20px 0;}
.nsf-empty{max-width:500px; margin:0 auto; text-align:center; padding:40px 20px 0;}
/* Sin ninguna búsqueda hecha, estos contenedores están vacíos pero
   seguían reservando su relleno de todos modos, dejando un hueco en
   blanco grande antes de llegar a "¿Echas algo en falta?". */
.nsf-results:empty,
.nsf-empty:empty,
.nsf-form-slot:empty,
.nsf-confirm:empty{padding:0; margin:0;}
.nsf-thread-block{margin-bottom:42px;}
.nsf-eyebrow{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase; letter-spacing:0.12em;
  font-size:0.66rem; font-weight:700; margin:0;
}

.nsf-conn-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:16px;}
.nsf-conn-card{
  background:var(--nsf-cream-2); border:1px solid #e9dfd2;
  border-radius:14px; padding:18px 18px 20px;
}
.nsf-conn-card h5{
  font-size:1rem; font-weight:700; color:var(--nsf-navy);
  margin:10px 0 0; line-height:1.3;
}
.nsf-conn-card .nsf-meta{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.7rem; color:var(--nsf-ink-soft); margin:4px 0 0;
}

/* ---------- ESTADO VACÍO ---------- */
.nsf-empty h3{font-size:1.15rem; color:var(--nsf-navy); font-weight:700; margin:0;}
.nsf-empty p{margin:10px 0 0; color:var(--nsf-ink-soft); line-height:1.6;}

/* ---------- BOTONES ---------- */
.nsf-btn{
  border:none; border-radius:100px; padding:11px 22px;
  font-weight:600; font-size:0.88rem; cursor:pointer;
  font-family:inherit; transition:transform .12s ease, background .12s ease, box-shadow .12s ease;
}
.nsf-btn:hover{transform:translateY(-1px);}
.nsf-btn-red{background:var(--nsf-red); color:#fff;}
.nsf-btn-red:hover{
  background:var(--nsf-navy);
  box-shadow:0 6px 16px -4px rgba(31,42,68,0.55);
}
.nsf-btn-red:focus-visible{
  outline:3px solid var(--nsf-mustard);
  outline-offset:2px;
}
.nsf-btn-outline{background:transparent; border:1.5px solid var(--nsf-navy); color:var(--nsf-navy);}
.nsf-btn-outline:hover{background:var(--nsf-navy); color:#fff;}
.nsf-btn[disabled]{opacity:0.6; cursor:default; transform:none;}

/* ---------- FORMULARIO PÚBLICO ---------- */
.nsf-form-slot{max-width:620px; margin:0 auto; padding:0 20px;}
.nsf-form-card{
  background:#fff; border:1px solid #e9dfd2; border-radius:18px;
  padding:26px 24px 24px; margin-top:28px;
}
.nsf-form-card h3{font-size:1.12rem; font-weight:700; color:var(--nsf-navy); margin:0;}
.nsf-form-note{font-size:0.85rem; color:var(--nsf-ink-soft); margin:8px 0 18px; line-height:1.5;}
.nsf-field{margin-bottom:15px;}
.nsf-field label{
  display:block;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.66rem; text-transform:uppercase; letter-spacing:0.06em;
  color:var(--nsf-ink-soft); margin-bottom:6px;
}
.nsf-field input[type="text"], .nsf-field textarea{
  width:100%; border:1.5px solid #e2d8c8; border-radius:10px;
  padding:10px 12px; font-size:0.93rem; color:var(--nsf-ink);
  background:var(--nsf-cream-2); outline:none; font-family:inherit;
}
.nsf-field textarea{min-height:70px; resize:vertical;}
.nsf-field input:focus, .nsf-field textarea:focus{border-color:var(--nsf-mustard);}

.nsf-item-row{display:grid; grid-template-columns:112px 1fr 1fr 78px 34px; gap:8px; margin-bottom:8px; align-items:center;}
.nsf-item-row .nsf-it-anio{text-align:center;}
/* Ocultamos las flechas del campo numérico: distraen y no aportan aquí. */
.nsf-item-row .nsf-it-anio::-webkit-outer-spin-button,
.nsf-item-row .nsf-it-anio::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
.nsf-item-row .nsf-it-anio{-moz-appearance:textfield;}
.nsf-item-row select, .nsf-item-row input{
  border:1.5px solid #e2d8c8; border-radius:10px; padding:9px 10px;
  font-size:0.85rem; background:var(--nsf-cream-2); color:var(--nsf-ink);
  font-family:inherit; width:100%;
}
.nsf-rm-item{
  background:none; border:none; color:var(--nsf-red); font-size:1.1rem;
  cursor:pointer; width:34px; height:34px; border-radius:8px; font-family:inherit;
}
.nsf-rm-item:hover{background:#fbe3e2;}
.nsf-add-item{
  background:none; border:1.5px dashed #c9b89c; color:var(--nsf-ink-soft);
  padding:9px 14px; border-radius:10px; font-size:0.85rem;
  cursor:pointer; margin-top:4px; font-family:inherit;
}
.nsf-add-item:hover{border-color:var(--nsf-mustard); color:var(--nsf-ink);}

/* Campo trampa anti-bots: oculto para personas, visible para robots. */
.nsf-hp{position:absolute !important; left:-9999px !important; top:-9999px !important;}

.nsf-form-actions{display:flex; gap:10px; margin-top:18px; flex-wrap:wrap;}
.nsf-form-msg{font-size:0.83rem; margin-top:10px; min-height:18px;}
.nsf-form-msg.nsf-err{color:var(--nsf-red);}

.nsf-confirm{max-width:520px; margin:0 auto; padding:0 20px;}
.nsf-confirm-inner{
  background:#eaf4ec; border:1px solid #bfe0c6; color:#2c5c37;
  padding:16px 20px; border-radius:14px; font-size:0.9rem;
  text-align:center; margin-top:26px;
}

@media (max-width:640px){
  .nsf-item-row{
    grid-template-columns:1fr 34px;
    grid-template-areas:"tipo rm" "titulo titulo" "meta anio";
  }
  .nsf-item-row select{grid-area:tipo;}
  .nsf-item-row .nsf-it-titulo{grid-area:titulo;}
  .nsf-item-row .nsf-it-meta{grid-area:meta;}
  .nsf-item-row .nsf-it-anio{grid-area:anio;}
  .nsf-rm-item{grid-area:rm;}
}

/* ---------- BARRA DE FILTROS ---------- */
.nsf-filtros{max-width:880px; margin:0 auto; padding:30px 20px 0;}
.nsf-filtros:empty{padding:0;}
.nsf-filtros-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:20px;
  background:var(--nsf-cream-2);
  border:1px solid #e9dfd2;
  border-radius:16px;
  padding:18px 20px;
}
.nsf-filtro-grupo{display:flex; flex-direction:column; gap:7px;}
.nsf-filtro-label{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:0.64rem;
  font-weight:700;
  color:var(--nsf-ink-soft);
}
.nsf-chips{display:flex; flex-wrap:wrap; gap:6px;}
.nsf-chip{
  background:#fff;
  border:1.5px solid #e2d8c8;
  color:var(--nsf-ink-soft);
  font-size:0.8rem;
  padding:6px 14px;
  border-radius:100px;
  cursor:pointer;
  font-family:inherit;
  transition:background .12s ease, border-color .12s ease, color .12s ease;
}
.nsf-chip:hover{border-color:var(--nsf-mustard);}
.nsf-chip-on{
  background:var(--nsf-red);
  border-color:var(--nsf-red);
  color:#fff;
}
.nsf-select{
  border:1.5px solid #e2d8c8;
  border-radius:10px;
  padding:8px 12px;
  font-size:0.86rem;
  background:#fff;
  color:var(--nsf-ink);
  font-family:inherit;
  min-width:180px;
  max-width:240px;
}
.nsf-select:focus{border-color:var(--nsf-mustard); outline:none;}
.nsf-limpiar{
  background:none;
  border:none;
  color:var(--nsf-red);
  font-size:0.82rem;
  font-weight:600;
  cursor:pointer;
  padding:8px 4px;
  font-family:inherit;
  text-decoration:underline;
}
.nsf-limpiar[hidden]{display:none;}

/* ---------- MODO EXPLORAR ---------- */
.nsf-explorando{margin-bottom:22px;}
.nsf-explorando .nsf-eyebrow{color:var(--nsf-red);}
.nsf-explorando h3{
  font-size:1.3rem;
  font-weight:700;
  color:var(--nsf-navy);
  margin:6px 0 0;
}
.nsf-sin-coincidencias{
  text-align:center;
  color:var(--nsf-ink-soft);
  padding:30px 20px;
  font-size:0.95rem;
}
.nsf-card-explorar{
  cursor:pointer;
  transition:border-color .12s ease, transform .12s ease;
}
.nsf-card-explorar:hover,
.nsf-card-explorar:focus-visible{
  border-color:var(--nsf-mustard);
  transform:translateY(-2px);
}
.nsf-card-hilo{
  font-size:0.8rem;
  color:var(--nsf-ink-soft);
  margin:12px 0 0;
  font-style:italic;
  line-height:1.4;
}
.nsf-card-ver{
  display:inline-block;
  margin-top:10px;
  font-size:0.78rem;
  font-weight:600;
  color:var(--nsf-red);
}

@media (max-width:640px){
  .nsf-filtros-inner{flex-direction:column; align-items:stretch; gap:16px;}
  .nsf-select{max-width:none; min-width:0; width:100%;}
}

/* ---------- ACCESO RÁPIDO A EDICIÓN (solo para quien puede editar) ---------- */
.nsf-editar-hilo{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.68rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--nsf-ink-soft);
  text-decoration:none;
  border:1px solid #ddd0bd;
  border-radius:100px;
  padding:5px 12px;
  white-space:nowrap;
  transition:border-color .12s ease, color .12s ease, background .12s ease;
}
.nsf-editar-hilo:hover,
.nsf-editar-hilo:focus{
  border-color:var(--nsf-red);
  color:var(--nsf-red);
  background:#fff;
  text-decoration:none;
}
.nsf-editar-hilo svg{flex:none;}

@media (max-width:640px){
  .nsf-editar-hilo{margin-left:0;}
}

/* ---------- MINIATURA JUNTO AL NOMBRE ---------- */
.nsf-card-fila{display:flex; gap:14px; align-items:flex-start;}
.nsf-card-texto{min-width:0; flex:1;}
.nsf-card-texto h5{margin-top:8px; word-break:break-word;}

.nsf-zoom{
  padding:0;
  border:none;
  background:none;
  cursor:zoom-in;
  line-height:0;
  border-radius:6px;
  flex:none;
}
.nsf-card-mini{
  width:52px;
  height:70px;
  border-radius:6px;
  overflow:hidden;
  background:var(--nsf-cream);
  box-shadow:0 2px 8px -3px rgba(20,28,48,0.4);
  transition:transform .12s ease, box-shadow .12s ease;
}
.nsf-card-mini img{width:100%; height:100%; object-fit:cover; display:block;}
.nsf-card-mini:hover{transform:scale(1.05); box-shadow:0 6px 14px -4px rgba(20,28,48,0.5);}

/* ---------- VISOR DE PORTADAS ---------- */
.nsf-visor{
  position:fixed;
  inset:0;
  z-index:99999;
  background:rgba(20,28,48,0.92);
  display:none;
  align-items:center;
  justify-content:center;
  padding:40px 24px;
}
.nsf-visor.nsf-visor-abierto{display:flex;}
.nsf-visor-figura{
  margin:0;
  max-width:min(560px, 90vw);
  max-height:86vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
}
.nsf-visor-figura img{
  max-width:100%;
  max-height:76vh;
  width:auto;
  height:auto;
  border-radius:8px;
  box-shadow:0 24px 60px -20px rgba(0,0,0,0.7);
  display:block;
}
.nsf-visor-figura figcaption{
  color:#fff;
  font-size:0.92rem;
  text-align:center;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
}
.nsf-visor-cerrar{
  position:absolute;
  top:16px;
  right:20px;
  width:42px;
  height:42px;
  border-radius:50%;
  border:1.5px solid rgba(255,255,255,0.4);
  background:transparent;
  color:#fff;
  font-size:26px;
  line-height:1;
  cursor:pointer;
  font-family:inherit;
  padding:0;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.nsf-visor-cerrar:hover{background:rgba(255,255,255,0.14); border-color:#fff;}
body.nsf-sin-scroll{overflow:hidden;}

/* ---------- AUTOR, AÑO Y TIPO PULSABLES PARA FILTRAR ---------- */
.nsf-meta-link{
  background:none;
  border:none;
  padding:0;
  font:inherit;
  color:inherit;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:2px;
  transition:color .12s ease;
}
.nsf-meta-link:hover{
  color:var(--nsf-red);
  text-decoration-style:solid;
}

.nsf-tag-link{
  border:none;
  cursor:pointer;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  transition:opacity .12s ease, transform .12s ease;
}


/* ---------- SUGERENCIA EN TEXTO LIBRE ---------- */
.nsf-libre-texto{
  min-height:150px;
  line-height:1.55;
  font-size:0.95rem;
}
.nsf-libre-manual{
  display:block;
  margin-top:12px;
  background:none;
  border:none;
  padding:0;
  color:var(--nsf-ink-soft);
  font-size:0.82rem;
  font-family:inherit;
  cursor:pointer;
  text-decoration:underline;
}
.nsf-libre-manual:hover{color:var(--nsf-red); text-decoration:underline;}
.nsf-libre-manual-destacado{
  color:var(--nsf-red);
  font-weight:600;
  font-size:0.9rem;
}

/* ---------- QUÉ HEMOS ENTENDIDO ---------- */
.nsf-interpretacion{border-color:#bfe0c6; background:#f7fdf8;}
.nsf-interp-ok{
  color:#2c5c37;
  font-size:0.92rem;
  line-height:1.5;
  margin:0 0 14px;
}
.nsf-interp-lista{list-style:none; margin:0; padding:0;}
.nsf-interp-lista li{
  padding:9px 0;
  border-top:1px dashed #cfe3d4;
  font-size:0.92rem;
  line-height:1.45;
}
.nsf-interp-lista li:first-child{border-top:none;}
.nsf-interp-meta{
  color:var(--nsf-ink-soft);
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.76rem;
}

/* ================================================================
   FICHA DESTACADA Y OBRAS CONECTADAS (rediseño)
   ================================================================ */

/* ---------- Barra superior de tipo ---------- */
.nsf-barra-tipo{
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--nsf-navy);
  border-radius:14px;
  padding:14px 18px;
  margin-bottom:14px;
}
.nsf-barra-icono{
  width:34px; height:34px;
  border-radius:8px;
  background:rgba(255,255,255,0.14);
  display:flex; align-items:center; justify-content:center;
  flex:none;
}
.nsf-barra-texto{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.7rem;
  font-weight:700;
  color:var(--nsf-mustard);
}
.nsf-barra-sub{
  color:rgba(255,255,255,0.75);
  font-weight:500;
}
.nsf-barra-sub::before{content:' · ';}
.nsf-barra-tipo .nsf-editar-hilo{
  margin-left:auto;
  border-color:rgba(255,255,255,0.3);
  color:rgba(255,255,255,0.85);
}
.nsf-barra-tipo .nsf-editar-hilo:hover{
  border-color:#fff; color:#fff; background:rgba(255,255,255,0.1);
}

/* ---------- Ficha destacada ---------- */
.nsf-destacado{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,0.92fr);
  background:var(--nsf-red);
  border-radius:18px;
  overflow:hidden;
  margin-bottom:34px;
  min-height:300px;
}
.nsf-destacado-sin-img{grid-template-columns:1fr;}
.nsf-destacado-texto{
  padding:34px 34px 34px 36px;
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  z-index:2;
}
.nsf-destacado-etiqueta{
  display:inline-block;
  align-self:flex-start;
  background:rgba(255,255,255,0.18);
  border-radius:100px;
  padding:5px 14px;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-size:0.64rem;
  font-weight:700;
}
.nsf-destacado h3{
  font-size:clamp(1.6rem, 3vw, 2.15rem);
  font-weight:700;
  color:#fff;
  margin:16px 0 0;
  line-height:1.1;
}
.nsf-destacado-autor{
  color:#ffd9a8;
  font-size:1rem;
  margin:8px 0 0;
}
.nsf-destacado-desc{
  color:#ffe6e5;
  font-size:0.92rem;
  line-height:1.55;
  margin:16px 0 0;
  max-width:44ch;
}

/* Datos de la ficha */
.nsf-datos{
  display:flex;
  flex-wrap:wrap;
  gap:26px;
  margin:24px 0 0;
}
.nsf-dato{margin:0;}
.nsf-dato dt{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:0.6rem;
  font-weight:700;
  color:rgba(255,255,255,0.7);
  margin:0;
}
.nsf-dato dd{
  margin:4px 0 0;
  font-size:0.92rem;
  color:#fff;
}

/* Imagen con corte diagonal */
.nsf-destacado-img{
  position:relative;
  padding:0;
  border:none;
  background:var(--nsf-navy-deep);
  cursor:zoom-in;
  overflow:hidden;
  margin-left:-70px;
  clip-path:polygon(70px 0, 100% 0, 100% 100%, 0 100%);
}
.nsf-destacado-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .3s ease;
}
.nsf-destacado-img:hover img{transform:scale(1.03);}

/* ---------- Pestañas de tipo ---------- */
.nsf-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 26px;
}
.nsf-tab{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#fff;
  border:1.5px solid #e9dfd2;
  color:var(--nsf-ink);
  font-size:0.9rem;
  font-weight:600;
  padding:11px 20px;
  border-radius:100px;
  cursor:pointer;
  font-family:inherit;
  transition:all .14s ease;
}
.nsf-tab:hover{border-color:var(--nsf-mustard);}
.nsf-tab svg{opacity:0.7;}
.nsf-tab-on{
  background:var(--nsf-red);
  border-color:var(--nsf-red);
  color:#fff;
}
.nsf-tab-on svg{opacity:1;}
.nsf-tab-num{opacity:0.75; font-weight:500;}

/* ---------- Secciones y tarjetas de obra ---------- */
.nsf-seccion{margin-bottom:30px;}
.nsf-seccion[hidden]{display:none;}
.nsf-seccion-titulo{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.13em;
  font-size:0.72rem;
  font-weight:700;
  color:var(--nsf-red);
  margin:0 0 14px;
}
.nsf-seccion-titulo span{color:var(--nsf-ink-soft); font-weight:500;}
.nsf-seccion-plegable{
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  user-select:none;
}
.nsf-seccion-plegable::before{
  content:'';
  width:8px;
  height:8px;
  flex-shrink:0;
  border-right:1.6px solid currentColor;
  border-bottom:1.6px solid currentColor;
  transform:rotate(45deg);
  transition:transform .18s ease;
}
.nsf-seccion-colapsada .nsf-seccion-plegable::before{transform:rotate(-45deg);}
.nsf-seccion-colapsada .nsf-lista-obras{display:none;}
.nsf-seccion-colapsada .nsf-seccion-intro{display:none;}

/* "De dónde viene": mismo patrón que el resto de secciones, pero tratada
   como algo secundario (origen, no recomendación) con un tono más apagado
   y separada del resto con una línea. */
.nsf-seccion-genealogia{
  margin-top:8px;
  padding-top:26px;
  border-top:1px dashed #ddd0bd;
}
.nsf-seccion-genealogia .nsf-seccion-titulo{color:var(--nsf-ink-soft);}
.nsf-seccion-icono{flex-shrink:0;}
.nsf-seccion-intro{
  margin:-6px 0 16px;
  font-size:0.86rem;
  color:var(--nsf-ink-soft);
  max-width:60ch;
}

/* Filas compactas para "De dónde viene": deliberadamente distintas de
   las tarjetas de arriba (más grandes, con foto grande) porque aquí no
   se está recomendando nada, solo se documenta un origen. Lista, no
   grid; miniatura pequeña o ninguna; la frase de relación es lo que
   más peso visual tiene, en vez del título. */
.nsf-lista-genealogica{
  display:flex;
  flex-direction:column;
  border-top:1px solid #e9dfd2;
}
.nsf-fila-gen{
  border-bottom:1px solid #e9dfd2;
}
.nsf-fila-gen-enlace{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 4px;
  text-decoration:none;
  color:inherit;
  transition:background .12s ease;
}
.nsf-fila-gen:hover .nsf-fila-gen-enlace{background:var(--nsf-cream);}
.nsf-fila-gen-img{
  width:34px;
  height:34px;
  flex:none;
  border-radius:50%;
  overflow:hidden;
  background:var(--nsf-cream);
}
.nsf-fila-gen-img img{width:100%; height:100%; object-fit:cover; display:block;}
.nsf-fila-gen-img-vacia{background:#e9dfd2;}
.nsf-fila-gen-texto{min-width:0; flex:1; display:flex; flex-direction:column; gap:1px;}
.nsf-fila-gen-titulo{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.86rem;
  font-weight:600;
  color:var(--nsf-ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.nsf-fila-gen-meta{
  font-size:0.74rem;
  color:var(--nsf-ink-soft);
}
.nsf-fila-gen-nota{
  font-size:0.78rem;
  font-style:italic;
  color:var(--nsf-ink-soft);
  white-space:normal;
}
.nsf-fila-gen-fuentes{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:-4px 0 8px 46px;
}
.nsf-fila-gen-fuentes .nsf-fuente{font-size:0.72rem;}
.nsf-fila-gen-con-nota .nsf-fila-gen-enlace{align-items:flex-start; padding:12px 4px 6px;}
.nsf-fila-gen-con-nota .nsf-fila-gen-img{margin-top:2px;}
.nsf-fila-gen-rel{
  flex:none;
  font-size:0.72rem;
  font-weight:600;
  color:#fff;
  background:var(--nsf-red);
  opacity:.72;
  padding:4px 10px;
  border-radius:999px;
  white-space:nowrap;
}
@media (max-width:520px){
  .nsf-fila-gen-rel{
    order:3;
    margin-left:46px;
  }
  .nsf-fila-gen-enlace{flex-wrap:wrap;}
}

.nsf-lista-obras{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));
  gap:14px;
}
.nsf-obra{
  display:flex;
  align-items:center;
  gap:16px;
  background:var(--nsf-cream-2);
  border:1px solid #e9dfd2;
  border-radius:14px;
  padding:14px 18px 14px 14px;
  transition:border-color .14s ease, transform .14s ease;
}
.nsf-obra:hover{border-color:var(--nsf-mustard); transform:translateY(-1px);}
.nsf-obra-img{
  width:74px;
  height:74px;
  flex:none;
  border-radius:10px;
  overflow:hidden;
  background:var(--nsf-cream);
  padding:0;
  border:none;
  cursor:zoom-in;
  display:flex;
  align-items:center;
  justify-content:center;
}
.nsf-obra-img img{width:100%; height:100%; object-fit:cover; display:block;}
.nsf-obra-img-vacia{cursor:default; color:var(--nsf-ink-soft); opacity:0.5;}
.nsf-obra-texto{min-width:0; flex:1;}
.nsf-obra-texto h6{
  font-family:'Fraunces', Georgia, serif;
  font-size:1.02rem;
  font-weight:700;
  color:var(--nsf-navy);
  margin:8px 0 0;
  line-height:1.25;
}
.nsf-obra-meta{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.74rem;
  color:var(--nsf-ink-soft);
  margin:5px 0 0;
}

@media (max-width:860px){
  .nsf-destacado{grid-template-columns:1fr;}
  .nsf-destacado-img{
    margin-left:0;
    clip-path:none;
    height:240px;
    order:-1;
  }
  .nsf-destacado-texto{padding:26px 24px;}
  .nsf-lista-obras{grid-template-columns:1fr;}
  .nsf-barra-tipo{flex-wrap:wrap;}
  .nsf-barra-tipo .nsf-editar-hilo{margin-left:0;}
}

/* ================================================================
   MODO COMPACTO: con un hilo abierto, solo la barra de búsqueda
   ================================================================ */

/* La cabecera y los filtros se retiran para dejar sitio al hilo. */
.nsf-buscador.nsf-compacto .nsf-hero,
.nsf-buscador.nsf-compacto .nsf-filtros{
  display:none;
}
.nsf-ficha.nsf-compacto .nsf-hero,
.nsf-ficha.nsf-compacto .nsf-filtros{
  display:none;
}

/* Sin cabecera, la caja deja de solaparse y se pega arriba. */
.nsf-buscador.nsf-compacto .nsf-search-shell{
  margin-top:0;
  padding-top:18px;
  padding-bottom:26px;
  position:sticky;
  top:0;
  z-index:30;
  background:var(--nsf-cream);
  max-width:none;
}
.nsf-ficha.nsf-compacto .nsf-search-shell{
  margin-top:0;
  padding-top:18px;
  padding-bottom:26px;
  position:sticky;
  top:0;
  z-index:30;
  background:var(--nsf-cream);
  max-width:none;
}
.nsf-buscador.nsf-compacto .nsf-search-box{
  max-width:620px;
  margin:0 auto;
  box-shadow:0 6px 20px -12px rgba(20,28,48,0.35);
  border:1px solid #e9dfd2;
}
.nsf-ficha.nsf-compacto .nsf-search-box{
  max-width:620px;
  margin:0 auto;
  box-shadow:0 6px 20px -12px rgba(20,28,48,0.35);
  border:1px solid #e9dfd2;
}
.nsf-buscador.nsf-compacto .nsf-results{
  padding-top:0;
}
.nsf-ficha.nsf-compacto .nsf-results{
  padding-top:0;
}

/* Botón de limpiar: solo tiene sentido cuando hay algo escrito. */
.nsf-reset{
  display:none;
  flex:none;
  width:32px;
  height:32px;
  border-radius:50%;
  border:none;
  background:var(--nsf-red);
  color:#fff;
  cursor:pointer;
  padding:0;
  /* Con SVG el aspa queda centrada de verdad, no como carácter. */
  display:none;
  align-items:center;
  justify-content:center;
  transition:background .12s ease, transform .12s ease;
}
.nsf-reset svg{display:block;}
.nsf-reset:hover{background:var(--nsf-red-deep); transform:scale(1.06);}
.nsf-buscador.nsf-compacto .nsf-reset{display:flex;}
.nsf-ficha.nsf-compacto .nsf-reset{display:flex;}


/* ================================================================
   AJUSTES v2.2 — ficha más contenida, iconos y barra despegada
   ================================================================ */

/* ---------- Ficha destacada: más rectangular y menos alta ---------- */
.nsf-buscador .nsf-destacado{
  grid-template-columns:minmax(0,1.35fr) minmax(0,0.65fr);
  min-height:0;
  margin-bottom:30px;
}
.nsf-ficha .nsf-destacado{
  grid-template-columns:minmax(0,1.35fr) minmax(0,0.65fr);
  min-height:0;
  margin-bottom:30px;
}
.nsf-buscador .nsf-destacado-texto{padding:28px 30px;}
.nsf-ficha .nsf-destacado-texto{padding:28px 30px;}
.nsf-buscador .nsf-destacado h3{font-size:clamp(1.45rem, 2.4vw, 1.85rem);}
.nsf-ficha .nsf-destacado h3{font-size:clamp(1.45rem, 2.4vw, 1.85rem);}
.nsf-buscador .nsf-destacado-desc{
  font-size:0.88rem;
  margin-top:12px;
  max-width:46ch;
}
.nsf-ficha .nsf-destacado-desc{
  font-size:0.88rem;
  margin-top:12px;
  max-width:46ch;
}
/* ---------- Datos con icono ---------- */
.nsf-buscador .nsf-datos{gap:22px; margin-top:20px;}
.nsf-ficha .nsf-datos{gap:22px; margin-top:20px;}
.nsf-dato{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.nsf-dato-icono{
  color:rgba(255,255,255,0.9);
  line-height:0;
  margin-bottom:4px;
}
.nsf-dato dt{font-size:0.58rem;}
.nsf-dato dd{font-size:0.86rem; margin-top:2px;}

/* ---------- Barra compacta despegada del borde ---------- */
.nsf-buscador.nsf-compacto .nsf-search-shell{
  top:16px;
  padding-top:16px;
  padding-bottom:20px;
  background:transparent;
}
.nsf-ficha.nsf-compacto .nsf-search-shell{
  top:16px;
  padding-top:16px;
  padding-bottom:20px;
  background:transparent;
}
.nsf-buscador.nsf-compacto .nsf-search-box{
  background:#fff;
  box-shadow:0 10px 28px -14px rgba(20,28,48,0.42);
}
.nsf-ficha.nsf-compacto .nsf-search-box{
  background:#fff;
  box-shadow:0 10px 28px -14px rgba(20,28,48,0.42);
}
/* Si hay barra de administración de WordPress, dejamos su espacio. */
body.admin-bar .nsf-buscador.nsf-compacto .nsf-search-shell{top:48px;}
body.admin-bar .nsf-ficha.nsf-compacto .nsf-search-shell{top:48px;}

@media (max-width:782px){
  body.admin-bar .nsf-buscador.nsf-compacto .nsf-search-shell{top:62px;}
  body.admin-bar .nsf-ficha.nsf-compacto .nsf-search-shell{top:62px;}
}
@media (max-width:860px){
  .nsf-buscador .nsf-destacado{grid-template-columns:1fr;}
  .nsf-ficha .nsf-destacado{grid-template-columns:1fr;}
}

/* ---------- ENLACE AL PRODUCTO ---------- */
.nsf-obra-enlace{
  flex:none;
  width:38px;
  height:38px;
  border-radius:50%;
  border:1.5px solid #e2d8c8;
  background:#fff;
  color:var(--nsf-red);
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  transition:all .14s ease;
}
.nsf-obra-enlace:hover{
  background:var(--nsf-red);
  border-color:var(--nsf-red);
  color:#fff;
  text-decoration:none;
  transform:translateY(-1px);
}
.nsf-obra-enlace:focus{text-decoration:none;}

.nsf-destacado-cta{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  justify-content:flex-start;
  gap:10px;
  width:auto;
  max-width:360px;
  box-sizing:border-box;
  min-height:36px;
  margin-top:12px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:8px;
  background:rgba(255,255,255,.08);
  color:#fff !important;
  padding:8px 14px;
  cursor:pointer;
  font:inherit;
  font-size:.7rem;
  font-weight:700;
  line-height:1.25;
  text-align:left;
  text-decoration:none !important;
  transition:background .14s ease, border-color .14s ease, color .14s ease, transform .14s ease;
}
.nsf-destacado-cta:hover,
.nsf-destacado-cta:focus-visible,
.nsf-destacado-cta:visited{
  background:rgba(255,255,255,.24);
  border-color:#fff;
  color:#fff !important;
  text-decoration:none !important;
}
.nsf-destacado-cta:hover,
.nsf-destacado-cta:focus-visible{
  transform:translateY(-1px);
}
.nsf-destacado-cta-icono{
  width:16px;
  height:16px;
  flex:0 0 16px;
  display:block;
  color:#fff !important;
  stroke:#fff;
}
.nsf-destacado-cta-texto{
  flex:0 1 auto;
  min-width:0;
}
.nsf-destacado-cta-externo{
  width:14px;
  height:14px;
  flex:0 0 14px;
  display:block;
  color:currentColor;
}
@media (max-width:600px){
  .nsf-destacado-cta{
    width:100%;
    min-height:44px;
    padding:11px 12px;
  }
}

/* ---------- Tarjeta de obra pulsable ---------- */
.nsf-obra-pulsable{cursor:pointer;}
.nsf-obra-pulsable:hover{
  border-color:var(--nsf-mustard);
  box-shadow:0 6px 16px -10px rgba(20,28,48,0.4);
}
.nsf-obra-pulsable:focus-visible{
  outline:3px solid var(--nsf-mustard);
  outline-offset:2px;
}

/* ---------- CAMINO RECORRIDO ---------- */
.nsf-camino{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  min-width:0;
  flex:1;
}
.nsf-camino-paso{
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:220px;
  background:none;
  border:none;
  padding:4px 8px;
  border-radius:8px;
  font-family:inherit;
  font-size:0.82rem;
  color:rgba(255,255,255,0.65);
  cursor:pointer;
  text-align:left;
}
.nsf-camino-paso span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.nsf-camino-paso svg{flex:none; opacity:0.7;}
.nsf-camino-paso:hover{
  background:rgba(255,255,255,0.22);
  color:#fff;
}
.nsf-camino-paso:hover svg{opacity:1;}
.nsf-camino-actual{
  color:var(--nsf-mustard);
  font-weight:600;
  cursor:default;
  max-width:280px;
}
.nsf-camino-actual svg{opacity:1;}
.nsf-camino-actual:hover{background:none; color:var(--nsf-mustard);}
.nsf-camino-sep{
  color:rgba(255,255,255,0.35);
  font-size:1rem;
  line-height:1;
}

/* ================================================================
   AJUSTE — la portada rellena por completo el bloque rojo
   ================================================================ */
.nsf-buscador .nsf-destacado{
  align-items:stretch;
}
.nsf-ficha .nsf-destacado{
  align-items:stretch;
}
.nsf-buscador .nsf-destacado-img{
  /* Sin tope de altura: la columna se estira hasta donde llegue el texto. */
  max-height:none;
  height:100%;
  align-self:stretch;
  display:block;
  line-height:0;
}
.nsf-ficha .nsf-destacado-img{
  /* Sin tope de altura: la columna se estira hasta donde llegue el texto. */
  max-height:none;
  height:100%;
  align-self:stretch;
  display:block;
  line-height:0;
}
.nsf-buscador .nsf-destacado-img img{
  width:100%;
  height:100%;
  min-height:100%;
  object-fit:cover;
  object-position:center;
}
.nsf-ficha .nsf-destacado-img img{
  width:100%;
  height:100%;
  min-height:100%;
  object-fit:cover;
  object-position:center;
}
/* Con poco texto, la ficha mantiene una proporción decente. */
.nsf-buscador .nsf-destacado{min-height:250px;}
.nsf-ficha .nsf-destacado{min-height:250px;}

@media (max-width:860px){
  .nsf-buscador .nsf-destacado{min-height:0;}
  .nsf-ficha .nsf-destacado{min-height:0;}
  .nsf-buscador .nsf-destacado-img{height:auto; aspect-ratio:1/1;}
  .nsf-ficha .nsf-destacado-img{height:auto; aspect-ratio:1/1;}
  .nsf-buscador .nsf-destacado-img img{aspect-ratio:1/1;}
  .nsf-ficha .nsf-destacado-img img{aspect-ratio:1/1;}
}

/* ---------- TEXTOS RECORTABLES CON "LEER MÁS" ---------- */
.nsf-recortable{
  transition:max-height .25s ease;
}
.nsf-recortable.nsf-recortado{
  display:-webkit-box;
  /* Antes se cortaba a 3 líneas, muy poco: con esto entra casi todo
     el resumen sin tener que pulsar "Leer más", que se queda como
     red de seguridad solo para los textos realmente largos. */
  -webkit-line-clamp:10;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.nsf-recortable p{margin:0;}

.nsf-leer-mas{
  background:none;
  border:none;
  padding:6px 0 0;
  font-family:inherit;
  font-size:0.82rem;
  font-weight:600;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:2px;
  color:var(--nsf-red);
}
.nsf-leer-mas:hover{text-decoration-thickness:2px;}

/* Dentro de la ficha roja, el recuadro se distingue del fondo con un
   tinte claro y un borde punteado. "Leer más" queda pegado justo
   debajo, compartiendo borde y fondo, para que se vea como una sola
   pieza continua (no se mete dentro del mismo recuadro de texto
   porque eso rompería el recorte de líneas cuando está plegado). */
.nsf-destacado-texto .nsf-recortable{
  background:rgba(255,255,255,.08);
  border:1.5px dashed rgba(255,255,255,.5);
  border-radius:12px;
  padding:14px 16px;
  margin-right:14%;
}
/* Solo se abre por abajo cuando de verdad hay un "Leer más" pegado
   justo debajo (textos cortos no lo necesitan). */
.nsf-destacado-texto .nsf-recortable:has(+ .nsf-leer-mas){
  border-bottom:none;
  border-radius:12px 12px 0 0;
  padding-bottom:6px;
}
.nsf-destacado-texto .nsf-leer-mas{
  display:block;
  box-sizing:border-box;
  margin-top:0;
  margin-right:14%;
  padding:6px 16px 12px;
  background:rgba(255,255,255,.08);
  border:1.5px dashed rgba(255,255,255,.5);
  border-top:none;
  border-radius:0 0 12px 12px;
  text-align:center;
  color:#fff;
  opacity:0.92;
}
.nsf-destacado-texto .nsf-leer-mas:hover{opacity:1;}

/* Aquí la imagen va debajo del texto, no al lado: no hace falta
   dejarle hueco a la derecha. Va DESPUÉS de las reglas base de arriba
   para que de verdad las pise (una regla igual de específica que
   aparece antes en el archivo, aunque esté en un @media, no gana). */
@media (max-width:860px){
  .nsf-destacado-texto .nsf-recortable,
  .nsf-destacado-texto .nsf-leer-mas{margin-right:0;}
}

/* ---------- GÉNERO EN LAS TARJETAS ---------- */
.nsf-obra-genero{
  display:flex;
  align-items:center;
  gap:5px;
  margin:6px 0 0;
  font-size:0.78rem;
  color:var(--nsf-ink-soft);
}
.nsf-obra-genero svg{flex:none; color:var(--nsf-mustard);}
.nsf-obra-genero span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.nsf-genero-link{
  background:none;
  border:none;
  padding:0;
  font:inherit;
  color:var(--nsf-ink-soft);
  cursor:pointer;
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}


/* ================================================================
   ENLACES PULSABLES — legibilidad y coherencia de marca
   ================================================================ */

/* ---------- Sobre el rojo de la ficha destacada ---------- */
/* Nada de mostaza sobre rojo: no se lee. Blanco con fondo translúcido. */
.nsf-destacado-autor .nsf-autor-link,
.nsf-dato dd .nsf-dato-link{
  background:none;
  border:none;
  padding:2px 6px;
  margin:-2px -6px;
  border-radius:6px;
  font:inherit;
  color:inherit;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:3px;
  transition:background .14s ease, color .14s ease;
}
.nsf-destacado-autor .nsf-autor-link{color:#ffd9a8;}
.nsf-dato dd .nsf-dato-link{color:#fff;}

.nsf-destacado-autor .nsf-autor-link:hover,
.nsf-destacado-autor .nsf-autor-link:focus-visible,
.nsf-dato dd .nsf-dato-link:hover,
.nsf-dato dd .nsf-dato-link:focus-visible{
  background:rgba(255,255,255,0.22);
  color:#fff;
  text-decoration-style:solid;
}

/* ---------- Sobre fondos claros ---------- */
.nsf-meta-link,
.nsf-genero-link{
  padding:1px 5px;
  margin:-1px -5px;
  border-radius:5px;
  transition:background .14s ease, color .14s ease;
}
.nsf-meta-link:hover,
.nsf-meta-link:focus-visible,
.nsf-genero-link:hover,
.nsf-genero-link:focus-visible{
  /* Crema de marca de fondo, texto en azul noche: buen contraste. */
  background:var(--nsf-cream);
  color:var(--nsf-navy);
  text-decoration-style:solid;
}

/* Etiquetas de tipo: oscurecer en lugar de aclarar, que perdía legibilidad. */
.nsf-tag-link:hover,
.nsf-tag-link:focus-visible{
  opacity:1;
  filter:brightness(0.88);
  transform:translateY(-1px);
}

/* ---------- Camino recorrido ---------- */
.nsf-camino-paso:hover,
.nsf-camino-paso:focus-visible{
  background:rgba(255,255,255,0.18);
  color:#fff;
}

/* ---------- Foco visible en todo el buscador ---------- */
.nsf-buscador button:focus-visible,
.nsf-buscador a:focus-visible,
.nsf-buscador select:focus-visible{
  outline:3px solid var(--nsf-mustard);
  outline-offset:2px;
}
.nsf-ficha button:focus-visible,
.nsf-ficha a:focus-visible,
.nsf-ficha select:focus-visible{
  outline:3px solid var(--nsf-mustard);
  outline-offset:2px;
}

/* ---------- Encabezado de productos relacionados ---------- */
.nsf-relacionados-cabecera{
  margin:0 0 20px;
  padding-bottom:14px;
  border-bottom:2px dashed #ddd0bd;
}
.nsf-relacionados-titulo{
  font-family:'Fraunces', Georgia, serif;
  font-size:1.2rem;
  font-weight:700;
  color:var(--nsf-navy);
  margin:0;
  padding:0;
  border:none;
}
.nsf-relacionados-acciones{
  display:flex;
  justify-content:flex-end;
  margin:-6px 0 20px;
}
.nsf-relacionados-intro{
  margin:6px 0 0;
  font-size:0.86rem;
  color:var(--nsf-ink-soft);
}
/* Varias notas seguidas necesitan aire entre ellas. */

.nsf-sin-relacionados{
  color:var(--nsf-ink-soft);
  font-size:0.95rem;
  padding:8px 0 4px;
  margin:0;
}

/* ---------- BOTÓN COMPARTIR ---------- */
.nsf-compartir{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.68rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:rgba(255,255,255,0.85);
  background:none;
  border:1px solid rgba(255,255,255,0.3);
  border-radius:100px;
  padding:5px 14px;
  cursor:pointer;
  white-space:nowrap;
  transition:all .14s ease;
}
.nsf-compartir:hover,
.nsf-compartir:focus-visible{
  background:rgba(255,255,255,0.14);
  border-color:#fff;
  color:#fff;
}
.nsf-compartir.nsf-compartir-ok{
  background:var(--nsf-mustard);
  border-color:var(--nsf-mustard);
  color:var(--nsf-navy-deep);
}
.nsf-compartir svg{flex:none;}

/* Con el botón de compartir presente, el de editar ya no necesita empujar. */
.nsf-barra-tipo .nsf-compartir + .nsf-editar-hilo{margin-left:0;}

@media (max-width:640px){
  .nsf-compartir{margin-left:0;}
}

/* ---------- REVISIÓN DE LO INTERPRETADO ---------- */
.nsf-interp-aviso{
  background:#fff8e5;
  border-left:3px solid var(--nsf-mustard);
  padding:10px 14px;
  margin:0 0 14px;
  font-size:0.85rem;
  color:var(--nsf-ink-soft);
}
.nsf-interp-lista li{
  display:flex;
  align-items:center;
  gap:10px;
}
.nsf-interp-nombre{flex:1; min-width:0;}
.nsf-interp-quitar{
  flex:none;
  width:26px;
  height:26px;
  border-radius:50%;
  border:1px solid #e2d8c8;
  background:#fff;
  color:var(--nsf-red);
  font-size:16px;
  line-height:1;
  cursor:pointer;
  font-family:inherit;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .14s ease;
}
.nsf-interp-quitar:hover{
  background:var(--nsf-red);
  border-color:var(--nsf-red);
  color:#fff;
}
.nsf-btn[disabled]{opacity:0.5; cursor:default;}

/* ---------- ORIGEN: MAINSTREAM O INDEPENDIENTE ---------- */
.nsf-origen{
  display:inline-block;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.58rem;
  text-transform:uppercase;
  letter-spacing:0.07em;
  padding:3px 9px;
  border-radius:100px;
  border:1px solid transparent;
  vertical-align:middle;
}
/* Indie en mostaza: es lo que queremos que destaque. */
.nsf-origen-indie{
  background:#f7ecd0;
  color:#7a5c14;
  border-color:#e6d3a3;
}
.nsf-origen-mainstream{
  background:#eceff5;
  color:#4a5570;
  border-color:#dde2ec;
}
.nsf-origen-link{cursor:pointer; font-family:inherit; transition:all .14s ease;}
.nsf-origen-link:hover,
.nsf-origen-link:focus-visible{filter:brightness(0.94); transform:translateY(-1px);}

/* Dentro de la ficha roja, sobre fondo oscuro. */
.nsf-destacado .nsf-origen{
  background:rgba(255,255,255,0.2);
  color:#fff;
  border-color:rgba(255,255,255,0.3);
}

/* ---------- ÚLTIMAS REFERENCIAS EN LA PORTADA ---------- */
.nsf-ultimas-titulo{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.13em;
  font-size:0.66rem;
  font-weight:700;
  color:var(--nsf-mustard);
  margin:0 0 12px;
}
.nsf-ultimas-chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:center;
}
.nsf-examples{display:block; margin-top:26px;}
.nsf-example-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.nsf-example-chip svg{opacity:0.7; flex:none;}
.nsf-chip-num{
  background:rgba(255,255,255,0.22);
  border-radius:100px;
  padding:1px 7px;
  font-size:0.7rem;
}

/* ---------- VOLVER A BUSCAR ---------- */
.nsf-volver-fila{
  display:none;
  max-width:900px;
  margin:0 auto;
  padding:0 24px 18px;
}
.nsf-buscador.nsf-compacto .nsf-volver-fila{display:block;}
.nsf-ficha.nsf-compacto .nsf-volver-fila{display:block;}
.nsf-volver{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:none;
  border:1.5px solid #e2d8c8;
  border-radius:100px;
  padding:9px 20px;
  font-family:inherit;
  font-size:0.86rem;
  font-weight:600;
  color:var(--nsf-ink-soft);
  cursor:pointer;
  transition:all .14s ease;
}
.nsf-volver:hover,
.nsf-volver:focus-visible{
  background:var(--nsf-cream);
  border-color:var(--nsf-red);
  color:var(--nsf-red);
}
.nsf-volver svg{flex:none;}

/* ---------- ÚLTIMAS REFERENCIAS (fuera de la cabecera) ---------- */
.nsf-ultimas{
  max-width:900px;
  margin:0 auto;
  padding:0 24px;
  text-align:center;
}
.nsf-ultimas:empty{padding:0;}
.nsf-buscador.nsf-compacto .nsf-ultimas{display:none;}
.nsf-ficha.nsf-compacto .nsf-ultimas{display:none;}

/* Sobre fondo claro los distintivos cambian respecto a la cabecera. */
.nsf-ultimas .nsf-ultimas-titulo{color:var(--nsf-red);}
.nsf-ultimas .nsf-example-chip{
  background:var(--nsf-cream-2);
  border:1px solid #e9dfd2;
  color:var(--nsf-ink);
  padding:9px 16px;
  font-size:0.85rem;
}
.nsf-ultimas .nsf-example-chip:hover{
  border-color:var(--nsf-mustard);
  background:#fff;
}
.nsf-ultimas .nsf-example-chip svg{color:var(--nsf-navy); opacity:0.6;}
.nsf-ultimas .nsf-chip-num{
  background:var(--nsf-navy);
  color:#fff;
  font-size:0.66rem;
}

/* ---------- Aire entre el buscador y las últimas referencias ---------- */
.nsf-buscador .nsf-ultimas{
  padding-top:26px;
  margin-top:6px;
}
.nsf-ficha .nsf-ultimas{
  padding-top:26px;
  margin-top:6px;
}
.nsf-buscador .nsf-ultimas .nsf-ultimas-titulo{
  margin-bottom:16px;
}
.nsf-ficha .nsf-ultimas .nsf-ultimas-titulo{
  margin-bottom:16px;
}

/* ---------- QUÉ UNE A DOS PRODUCTOS ---------- */
.nsf-obra-nota{
  margin:8px 0 0;
  font-family:'Fraunces', Georgia, serif;
  font-style:italic;
  font-size:0.86rem;
  line-height:1.45;
  color:var(--nsf-ink-soft);
  padding-left:10px;
  border-left:2px solid var(--nsf-mustard);
}
/* Con explicación la tarjeta crece, así que alineamos arriba. */
.nsf-obra:has(.nsf-obra-nota){align-items:flex-start;}
.nsf-obra:has(.nsf-obra-nota) .nsf-obra-img{margin-top:2px;}

/* ---------- Estado de carga ---------- */
.nsf-cargando{
  text-align:center;
  padding:40px 20px;
  color:var(--nsf-ink-soft);
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.8rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  animation:nsf-latido 1.2s ease-in-out infinite;
}
@keyframes nsf-latido{
  0%, 100%{opacity:0.45;}
  50%{opacity:1;}
}
@media (prefers-reduced-motion: reduce){
  .nsf-cargando{animation:none; opacity:0.7;}
}

/* ---------- Esqueleto de carga (mientras llega la respuesta) ---------- */
.nsf-skeleton-linea,
.nsf-skeleton-img,
.nsf-skeleton-thumb{
  background:linear-gradient(100deg, #ece1cd 30%, #f7f0e4 45%, #ece1cd 60%);
  background-size:200% 100%;
  animation:nsf-shimmer 1.5s ease-in-out infinite;
  border-radius:6px;
}
@keyframes nsf-shimmer{
  0%{background-position:150% 0;}
  100%{background-position:-50% 0;}
}
@media (prefers-reduced-motion: reduce){
  .nsf-skeleton-linea,
  .nsf-skeleton-img,
  .nsf-skeleton-thumb{animation:none; background:#ece1cd;}
}

/* Placeholder de la ficha destacada de una obra */
.nsf-skeleton-destacado{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:26px;
  border-radius:18px;
  background:#fff;
  border:1px solid #e9dfd2;
  padding:30px;
}
.nsf-skeleton-destacado .nsf-skeleton-texto{display:flex; flex-direction:column; gap:13px;}
.nsf-skeleton-tag{width:90px; height:22px; border-radius:100px;}
.nsf-skeleton-titulo{width:70%; height:28px; margin-top:6px;}
.nsf-skeleton-media{width:42%; height:15px;}
.nsf-skeleton-larga{width:100%; height:13px; margin-top:6px;}
.nsf-skeleton-corta{width:55%; height:13px;}
.nsf-skeleton-destacado .nsf-skeleton-img{border-radius:14px; min-height:260px;}
@media (max-width:860px){
  .nsf-skeleton-destacado{grid-template-columns:1fr; padding:24px 20px;}
  .nsf-skeleton-destacado .nsf-skeleton-img{order:-1; min-height:220px;}
}

/* Placeholder de resultados en rejilla (filtros, búsqueda por intención) */
.nsf-skeleton-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:16px;
  margin-top:6px;
}
.nsf-skeleton-card{
  display:flex;
  gap:14px;
  padding:16px;
  background:#fff;
  border:1px solid #e9dfd2;
  border-radius:14px;
}
.nsf-skeleton-thumb{width:64px; height:64px; flex-shrink:0; border-radius:10px;}
.nsf-skeleton-card .nsf-skeleton-texto{flex:1; display:flex; flex-direction:column; justify-content:center; gap:9px;}
.nsf-skeleton-card .nsf-skeleton-tag{width:56px; height:12px; border-radius:4px;}
.nsf-skeleton-card .nsf-skeleton-media{width:82%; height:16px;}
.nsf-skeleton-card .nsf-skeleton-corta{width:40%; height:11px;}

/* ---------- POR QUÉ APARECE CADA PRODUCTO ---------- */
.nsf-obra-nota{
  margin:10px 0 0;
  padding-left:12px;
  border-left:2px solid var(--nsf-mustard);
}
.nsf-nota-etiqueta{
  display:block;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:0.58rem;
  font-weight:700;
  color:var(--nsf-mustard);
  margin-bottom:4px;
}
.nsf-obra-nota p{
  margin:0;
  font-family:'Fraunces', Georgia, serif;
  font-style:italic;
  font-size:0.86rem;
  line-height:1.45;
  color:var(--nsf-ink-soft);
}

/* ================================================================
   FICHA PÚBLICA (página propia del producto)
   ================================================================ */
/* La ficha utiliza el mismo fondo blanco que el resto del contenido público. */
body.single-nsf_producto{
  background:#fff;
}
.nsf-ficha-envoltorio{
  max-width:960px;
  margin:0 auto;
  padding:40px 24px 60px;
  background:#fff;
}
.nsf-ficha-publica .nsf-destacado{margin-bottom:36px;}
.nsf-ficha-publica .nsf-destacado h1{
  font-size:clamp(1.6rem, 3vw, 2.2rem);
  font-weight:700;
  color:#fff;
  margin:16px 0 0;
  line-height:1.1;
}
.nsf-ficha-publica .nsf-destacado-img{
  cursor:default;
  margin-left:-52px;
  clip-path:polygon(52px 0, 100% 0, 100% 100%, 0 100%);
  overflow:hidden;
}
.nsf-ficha-publica .nsf-destacado-img img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.nsf-ficha-publica .nsf-obra{cursor:default;}
.nsf-ficha-publica .nsf-obra:hover{transform:none;}
.nsf-ficha-publica .nsf-obra-texto h4{
  font-family:'Fraunces', Georgia, serif;
  font-size:1.02rem;
  font-weight:700;
  margin:8px 0 0;
  line-height:1.25;
}
.nsf-ficha-publica .nsf-obra-texto h4 a{
  color:var(--nsf-navy);
  text-decoration:none;
}
.nsf-ficha-publica .nsf-obra-texto h4 a:hover{
  color:var(--nsf-red);
  text-decoration:underline;
}
.nsf-ficha-publica .nsf-obra-img{
  width:74px; height:74px; border-radius:10px; overflow:hidden;
  flex:none; background:var(--nsf-cream); display:block;
}
.nsf-ficha-publica .nsf-obra-img img{width:100%; height:100%; object-fit:cover; display:block;}
.nsf-volver-buscador{margin-top:36px;}
.nsf-volver-buscador a{
  color:var(--nsf-red);
  font-weight:600;
  text-decoration:none;
}
.nsf-volver-buscador a:hover{text-decoration:underline;}

/* El título de cada obra en el buscador es un enlace real. */
.nsf-obra-enlace-ficha{color:inherit; text-decoration:none;}
.nsf-obra-enlace-ficha:hover{color:var(--nsf-red); text-decoration:underline;}

@media (max-width:860px){
  .nsf-ficha-publica .nsf-destacado-img{
    margin-left:0; clip-path:none; height:auto; aspect-ratio:1/1;
  }
  .nsf-ficha-publica .nsf-destacado-img img{aspect-ratio:1/1;}
}

/* ================================================================
   PACKS QUE INCLUYEN ESTE PRODUCTO
   ================================================================ */
.nsf-packs{margin:0 0 30px;}
.nsf-pack{
  display:flex;
  align-items:center;
  gap:18px;
  background:var(--nsf-navy);
  color:#fff;
  border-radius:16px;
  padding:18px 22px;
  margin-bottom:12px;
  text-decoration:none;
  transition:transform .14s ease, box-shadow .14s ease;
}
.nsf-pack-enlace:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px -18px rgba(20,28,48,0.7);
  color:#fff;
  text-decoration:none;
}
.nsf-pack-img{
  width:64px; height:64px; flex:none;
  border-radius:10px; overflow:hidden;
  background:rgba(255,255,255,0.1);
}
.nsf-pack-img img{width:100%; height:100%; object-fit:cover; display:block;}
.nsf-pack-texto{flex:1; min-width:0; display:flex; flex-direction:column; gap:3px;}
.nsf-pack-etiqueta{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.12em;
  font-size:0.6rem;
  font-weight:700;
  color:var(--nsf-mustard);
}
.nsf-pack-texto strong{
  font-family:'Fraunces', Georgia, serif;
  font-size:1.12rem;
  line-height:1.2;
}
.nsf-pack-resumen{
  font-size:0.86rem;
  color:#c7cee0;
  line-height:1.45;
}
.nsf-pack-datos{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  margin-top:5px;
  font-size:0.78rem;
}
.nsf-pack-estado{
  padding:3px 10px;
  border-radius:100px;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.62rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
}
.nsf-pack-venta{background:var(--nsf-red); color:#fff;}
.nsf-pack-proximamente{background:var(--nsf-mustard); color:var(--nsf-navy-deep);}
.nsf-pack-agotado{background:rgba(255,255,255,0.18); color:#c7cee0;}
.nsf-pack-precio{font-weight:600;}
.nsf-pack-total{color:#a8b1c6;}
.nsf-pack-cta{
  flex:none;
  font-weight:600;
  font-size:0.86rem;
  color:var(--nsf-mustard);
  white-space:nowrap;
}

@media (max-width:640px){
  .nsf-pack{flex-direction:column; align-items:flex-start; text-align:left;}
}

/* ---------- Packs que no se pueden comprar ahora ---------- */
.nsf-pack-inactivo{
  background:#2a3552;
  cursor:default;
}
.nsf-pack-inactivo .nsf-pack-img{opacity:0.65;}
.nsf-pack-aviso{
  display:block;
  margin-top:8px;
  padding:7px 12px;
  background:rgba(255,255,255,0.1);
  border-left:3px solid var(--nsf-mustard);
  border-radius:0 6px 6px 0;
  font-size:0.82rem;
  line-height:1.45;
  color:#e4e8f2;
}

/* ---------- Avísame cuando vuelva ---------- */
.nsf-pack-avisame{
  background:var(--nsf-mustard);
  border:none;
  border-radius:100px;
  padding:4px 14px;
  font-family:inherit;
  font-size:0.78rem;
  font-weight:600;
  color:var(--nsf-navy-deep);
  cursor:pointer;
  white-space:nowrap;
  transition:filter .14s ease, transform .14s ease;
}
.nsf-pack-avisame:hover{filter:brightness(1.08); transform:translateY(-1px);}

.nsf-interes-form{display:block; margin-top:10px;}
.nsf-interes-fila{display:flex; gap:8px; flex-wrap:wrap;}
.nsf-interes-email{
  flex:1 1 200px;
  min-width:0;
  border:1px solid rgba(255,255,255,0.3);
  background:rgba(255,255,255,0.12);
  color:#fff;
  border-radius:8px;
  padding:8px 12px;
  font-family:inherit;
  font-size:0.86rem;
}
.nsf-interes-email::placeholder{color:#b7c0d4;}
.nsf-interes-email:focus{outline:2px solid var(--nsf-mustard); outline-offset:1px;}
.nsf-interes-enviar{
  flex:none;
  background:var(--nsf-mustard);
  border:none;
  border-radius:8px;
  padding:8px 18px;
  font-family:inherit;
  font-size:0.86rem;
  font-weight:600;
  color:var(--nsf-navy-deep);
  cursor:pointer;
}
.nsf-interes-enviar:hover{filter:brightness(1.08);}
.nsf-interes-enviar[disabled]{opacity:0.6; cursor:default;}
.nsf-interes-consent{
  display:flex;
  align-items:flex-start;
  gap:7px;
  margin-top:9px;
  font-size:0.76rem;
  line-height:1.4;
  color:#c7cee0;
  cursor:pointer;
}
.nsf-interes-consent input{margin-top:2px; flex:none;}
.nsf-interes-msg{display:block; margin-top:7px; font-size:0.78rem;}
.nsf-interes-msg.nsf-err{color:#ffb3b0;}
.nsf-interes-ok{
  display:block;
  font-size:0.86rem;
  font-weight:600;
  color:var(--nsf-mustard);
}

/* ---------- SORPRÉNDEME ---------- */
.nsf-sorpresa-fila{
  text-align:center;
  padding:20px 24px 0;
}
.nsf-buscador.nsf-compacto .nsf-sorpresa-fila{display:none;}
.nsf-ficha.nsf-compacto .nsf-sorpresa-fila{display:none;}
.nsf-sorpresa{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--nsf-navy);
  color:#fff;
  border:none;
  border-radius:100px;
  padding:11px 24px;
  font-family:inherit;
  font-size:0.92rem;
  font-weight:600;
  cursor:pointer;
  transition:background .14s ease, transform .14s ease;
}
.nsf-sorpresa:hover,
.nsf-sorpresa:focus-visible{
  background:var(--nsf-red);
  transform:translateY(-2px);
}
.nsf-sorpresa svg{color:var(--nsf-mustard); flex:none;}
.nsf-sorpresa:hover svg{color:#fff;}
.nsf-sorpresa[disabled]{opacity:0.7; cursor:default; transform:none;}
.nsf-sorpresa-pista{
  display:block;
  margin-top:8px;
  font-size:0.78rem;
  color:var(--nsf-ink-soft);
}

/* El camino de un paseo al azar se resalta un poco. */
.nsf-camino-sorpresa .nsf-camino-paso{color:rgba(255,255,255,0.8);}
.nsf-camino-sorpresa .nsf-camino-sep{color:var(--nsf-mustard);}

/* ---------- Sugerencias por criterio ---------- */
.nsf-sugg-grupo{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:0.6rem;
  font-weight:700;
  color:var(--nsf-ink-soft);
  padding:10px 16px 6px;
  background:var(--nsf-cream);
  border-bottom:1px solid #ece3d6;
}
.nsf-sugg-criterio{gap:10px;}
.nsf-sugg-criterio-etiqueta{
  flex:none;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.6rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  padding:3px 9px;
  border-radius:100px;
  background:var(--nsf-mustard);
  color:var(--nsf-navy-deep);
}
.nsf-sugg-criterio .nsf-sugg-title{font-weight:600;}

/* ---------- BÚSQUEDA POR FRASE ---------- */
.nsf-intencion{
  margin:0 0 24px;
  padding-bottom:16px;
  border-bottom:2px dashed #ddd0bd;
}
.nsf-intencion .nsf-eyebrow{color:var(--nsf-red);}
.nsf-intencion h3{
  font-family:'Fraunces', Georgia, serif;
  font-size:1.3rem;
  font-weight:700;
  color:var(--nsf-navy);
  margin:6px 0 0;
  text-transform:none;
}
.nsf-intencion-conteo{
  margin:6px 0 0;
  font-size:0.86rem;
  color:var(--nsf-ink-soft);
}
.nsf-card-desc{
  margin:12px 0 0;
  font-size:0.83rem;
  line-height:1.5;
  color:var(--nsf-ink-soft);
}

/* ---------- Cuenta atrás de la pausa entre envíos ---------- */
.nsf-espera{
  color:var(--nsf-ink-soft);
  font-size:0.82rem;
  line-height:1.45;
}
.nsf-espera-ok{
  color:#2c5c37;
  font-weight:600;
  font-size:0.84rem;
}
.nsf-destacado-texto .nsf-espera,
.nsf-pack .nsf-espera{color:#e4e8f2;}

/* ---------- Qué los une, en la revisión ---------- */
.nsf-campo-relacion{margin-top:18px;}
.nsf-campo-relacion label{
  display:block;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.66rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--nsf-ink-soft);
  margin-bottom:6px;
}
.nsf-campo-relacion textarea{min-height:64px;}
.nsf-relacion-nota{
  display:block;
  margin-top:6px;
  font-size:0.76rem;
  color:var(--nsf-ink-soft);
  font-style:italic;
}

/* ================================================================
   QUÉ LOS UNE — pie de la tarjeta
   ================================================================ */
.nsf-obra-con-nota{
  flex-direction:column;
  align-items:stretch;
  gap:0;
  padding:0;
  overflow:hidden;
}
.nsf-obra-cuerpo{
  display:flex;
  align-items:center;
  gap:16px;
  padding:14px 18px 14px 14px;
}

.nsf-obra-pie{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:12px 18px;
  margin:0;
  background:#fdf6e8;
  border-top:1px dashed #e2d3ae;
}
.nsf-obra-pie p{
  margin:0;
  font-family:'Fraunces', Georgia, serif;
  font-style:italic;
  font-size:0.87rem;
  line-height:1.45;
  color:var(--nsf-ink);
}
.nsf-nudo{
  flex:none;
  margin-top:2px;
  color:var(--nsf-mustard);
}

/* Cuando la conexión es deducida y no escrita, se muestra más tenue. */
.nsf-obra-pie-via{background:#fbfaf7; border-top-color:#e9dfd2;}
.nsf-obra-pie-via p{
  font-family:inherit;
  font-style:normal;
  font-size:0.79rem;
  color:var(--nsf-ink-soft);
}
.nsf-obra-pie-via .nsf-nudo{opacity:0.5;}

.nsf-obra-con-nota:hover .nsf-obra-pie-nota{background:#fbefd6;}

/* ---------- FUENTES DE UNA RELACIÓN ---------- */
.nsf-pie-texto{flex:1; min-width:0;}
.nsf-fuentes{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.nsf-fuentes-etiqueta{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.6rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--nsf-ink-soft);
  opacity:0.8;
}
.nsf-fuente{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.68rem;
  color:var(--nsf-navy);
  background:#fff;
  border:1px solid #e2d3ae;
  border-radius:100px;
  padding:2px 10px;
  text-decoration:none;
  transition:all .14s ease;
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.nsf-fuente:hover{
  background:var(--nsf-navy);
  border-color:var(--nsf-navy);
  color:#fff;
  text-decoration:none;
}

/* ---------- TIPO DE RELACIÓN ---------- */
.nsf-reltipo{
  display:inline-block;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.62rem;
  text-transform:uppercase;
  letter-spacing:0.07em;
  font-weight:700;
  padding:3px 10px;
  border-radius:100px;
  margin-bottom:7px;
  background:var(--nsf-navy);
  color:#fff;
}
/* Las declaradas (influencia, adaptación…) en rojo: son afirmaciones
   fuertes. Las de parentesco o atmósfera, en tonos más suaves. */
.nsf-reltipo-influencia,
.nsf-reltipo-adaptacion,
.nsf-reltipo-continuacion{background:var(--nsf-red);}
.nsf-reltipo-homenaje,
.nsf-reltipo-bso{background:var(--nsf-mustard); color:var(--nsf-navy-deep);}
.nsf-reltipo-atmosfera,
.nsf-reltipo-tema,
.nsf-reltipo-equipo,
.nsf-reltipo-universo{background:#e6e9f0; color:var(--nsf-navy);}

/* ---------- Varios géneros por producto ---------- */
.nsf-obra-genero{flex-wrap:wrap; gap:6px;}
.nsf-obra-genero .nsf-genero-link,
.nsf-obra-genero span{
  background:var(--nsf-cream);
  border-radius:100px;
  padding:2px 9px;
  font-size:0.73rem;
  text-decoration:none;
  border:1px solid #eadfce;
}
.nsf-obra-genero .nsf-genero-link:hover{
  background:var(--nsf-mustard);
  color:var(--nsf-navy-deep);
  border-color:var(--nsf-mustard);
}
.nsf-dato-generos dd{display:flex; flex-wrap:wrap; align-items:center; gap:6px;}

/* ================================================================
   CATÁLOGO COMPLETO
   ================================================================ */
.nsf-catalogo-cabecera{margin-bottom:26px;}
.nsf-catalogo-cabecera h1{
  font-family:'Fraunces', Georgia, serif;
  font-size:clamp(1.7rem, 3.4vw, 2.3rem);
  font-weight:700;
  color:var(--nsf-navy);
  margin:0;
}
.nsf-catalogo-cabecera p{
  margin:8px 0 0;
  color:var(--nsf-ink-soft);
  font-size:1rem;
}
.nsf-catalogo-buscador{
  display:inline-block;
  margin-top:14px;
  color:var(--nsf-red);
  font-weight:600;
  text-decoration:none;
}
.nsf-catalogo-buscador:hover{text-decoration:underline;}

.nsf-catalogo-lista{grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));}
.nsf-catalogo-titulo{
  font-family:'Fraunces', Georgia, serif;
  font-size:1.05rem;
  font-weight:700;
  margin:8px 0 0;
  line-height:1.25;
}
.nsf-catalogo-titulo a{color:var(--nsf-navy); text-decoration:none;}
.nsf-catalogo-titulo a:hover{color:var(--nsf-red); text-decoration:underline;}
.nsf-catalogo-refs{
  margin:0;
  padding:10px 18px;
  border-top:1px dashed #e9dfd2;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.7rem;
  color:var(--nsf-ink-soft);
}
.nsf-catalogo .nsf-obra{flex-direction:column; align-items:stretch; gap:0; padding:0;}

.nsf-catalogo-paginas{
  margin-top:34px;
  display:flex;
  justify-content:center;
  gap:6px;
  flex-wrap:wrap;
}
.nsf-catalogo-paginas .page-numbers{
  display:inline-block;
  padding:8px 15px;
  border-radius:100px;
  border:1px solid #e9dfd2;
  color:var(--nsf-ink);
  text-decoration:none;
  font-size:0.88rem;
}
.nsf-catalogo-paginas .page-numbers:hover{border-color:var(--nsf-mustard);}
.nsf-catalogo-paginas .page-numbers.current{
  background:var(--nsf-red);
  border-color:var(--nsf-red);
  color:#fff;
  font-weight:600;
}

/* ---------- Aire entre las etiquetas de género ---------- */
.nsf-buscador .nsf-obra-genero{
  gap:7px;
  row-gap:6px;
  margin-top:9px;
  align-items:center;
}
.nsf-ficha .nsf-obra-genero{
  gap:7px;
  row-gap:6px;
  margin-top:9px;
  align-items:center;
}
.nsf-buscador .nsf-obra-genero .nsf-genero-link,
.nsf-buscador .nsf-obra-genero > span{
  padding:3px 11px;
  line-height:1.5;
}
.nsf-ficha .nsf-obra-genero .nsf-genero-link,
.nsf-ficha .nsf-obra-genero > span{
  padding:3px 11px;
  line-height:1.5;
}
/* El icono no debe pegarse a la primera etiqueta. */
.nsf-buscador .nsf-obra-genero .nsf-nudo,
.nsf-buscador .nsf-obra-genero > svg{margin-right:2px;}
.nsf-ficha .nsf-obra-genero .nsf-nudo,
.nsf-ficha .nsf-obra-genero > svg{margin-right:2px;}

/* ================================================================
   CONEXIONES INCRUSTADAS EN ARTÍCULOS
   ================================================================ */
.nsf-embed{
  margin:40px 0;
  padding:26px 24px;
  background:var(--nsf-cream);
  border-radius:18px;
  border:1px solid #e9dfd2;
}
.nsf-embed-titulo{
  font-family:'Fraunces', Georgia, serif;
  font-size:1.15rem;
  font-weight:700;
  color:var(--nsf-navy);
  margin:0 0 18px;
  padding-bottom:12px;
  border-bottom:2px dashed #ddd0bd;
}
.nsf-embed-lista{grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));}
.nsf-embed .nsf-obra{background:#fff;}
.nsf-embed .nsf-obra-texto h4{
  font-family:'Fraunces', Georgia, serif;
  font-size:1rem;
  font-weight:700;
  margin:8px 0 0;
  line-height:1.25;
}
.nsf-embed .nsf-obra-texto h4 a{color:var(--nsf-navy); text-decoration:none;}
.nsf-embed .nsf-obra-texto h4 a:hover{color:var(--nsf-red); text-decoration:underline;}
.nsf-embed .nsf-obra-img{
  width:64px; height:64px; border-radius:10px; overflow:hidden;
  flex:none; background:var(--nsf-cream); display:block;
}
.nsf-embed .nsf-obra-img img{width:100%; height:100%; object-fit:cover; display:block;}
.nsf-embed-pie{margin:18px 0 0; text-align:right;}
.nsf-embed-pie a{
  color:var(--nsf-red);
  font-weight:600;
  font-size:0.9rem;
  text-decoration:none;
}
.nsf-embed-pie a:hover{text-decoration:underline;}

/* Tarjeta suelta de un producto */
.nsf-embed-suelta{padding:0; background:none; border:none;}
.nsf-embed-ficha{
  display:block;
  text-decoration:none;
  background:var(--nsf-cream-2);
  transition:border-color .14s ease, transform .14s ease;
}
.nsf-embed-ficha:hover{
  border-color:var(--nsf-mustard);
  transform:translateY(-1px);
  text-decoration:none;
}
.nsf-embed-conexiones{
  margin:6px 0 0;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.72rem;
  color:var(--nsf-red);
}

/* ================================================================
   MAPA DE CONEXIONES
   ================================================================ */
.nsf-grafo-envoltorio{margin:30px 0;}
/* El mapa es la pieza protagonista: el panel de la obra queda debajo,
   en lugar de robar anchura lateral al grafo. */
.nsf-pagina-mapa .nsf-grafo-fila{
  display:block;
}
.nsf-pagina-mapa .nsf-grafo-fila .nsf-grafo-panel{
  margin-top:16px;
}
.nsf-grafo{
  position:relative;
  background:var(--nsf-cream-2);
  border:1px solid #e9dfd2;
  border-radius:18px;
  overflow:hidden;
}
.nsf-grafo-lienzo{width:100%;}
.nsf-grafo-svg{width:100%; display:block; cursor:default;}
.nsf-grafo-error{padding:50px 20px; text-align:center; color:var(--nsf-ink-soft);}


/* ---------- Conexiones ---------- */
.nsf-arista{
  stroke:#d8cdbb;
  stroke-width:1.2;
  transition:stroke .2s ease, stroke-opacity .2s ease;
}
/* Mismo criterio que en la ficha: laterales primero (más visibles),
   contexto en medio, genealógicas atenuadas al fondo. Así un nodo como
   D&D no ahoga el mapa solo por ser origen de medio catálogo: sus
   conexiones "de dónde viene" se ven, pero no compiten con las que
   sirven para descubrir qué mirar después. */
.nsf-arista-atmosfera,
.nsf-arista-tema{stroke:var(--nsf-navy); stroke-opacity:0.75; stroke-width:1.6;}
.nsf-arista-equipo,
.nsf-arista-universo,
.nsf-arista-bso{stroke:var(--nsf-mustard); stroke-opacity:0.5; stroke-width:1.3;}
.nsf-arista-influencia,
.nsf-arista-homenaje,
.nsf-arista-adaptacion,
.nsf-arista-continuacion{stroke:var(--nsf-red); stroke-opacity:0.25; stroke-width:1;}
.nsf-arista-activa{stroke:var(--nsf-navy); stroke-opacity:1; stroke-width:2;}
.nsf-arista-apagada{stroke-opacity:0.12;}
.nsf-arista-fuera{stroke-opacity:0.06;}

/* Genealógicas ocultas por defecto: no en el sentido de invisibles del
   todo (eso dejaba nodos "flotando" sin explicación), sino reducidas a
   una línea gris muy fina, igual que las que no tienen tipo asignado.
   Así se nota que hay algo sin que compita con las laterales/contexto.
   !important porque tiene que ganar aunque la línea esté también
   marcada como activa (nodo seleccionado) o apagada. */
.nsf-ocultar-genealogia .nsf-arista-influencia,
.nsf-ocultar-genealogia .nsf-arista-homenaje,
.nsf-ocultar-genealogia .nsf-arista-adaptacion,
.nsf-ocultar-genealogia .nsf-arista-continuacion{
  stroke:#d8cdbb !important;
  stroke-opacity:0.5 !important;
  stroke-width:1px !important;
}

/* ---------- Obras ---------- */
.nsf-nodo{cursor:pointer;}
.nsf-nodo circle{
  fill:var(--nsf-navy);
  stroke:#fff;
  stroke-width:2;
  transition:fill .2s ease, opacity .2s ease;
}
.nsf-nodo text{
  fill:var(--nsf-ink-soft);
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:8px;
  text-anchor:middle;
  pointer-events:none;
  transition:opacity .2s ease;
}
.nsf-nodo-libro circle{fill:#8a4b3a;}
.nsf-nodo-juego circle{fill:var(--nsf-mustard);}
.nsf-nodo-pelicula circle,
.nsf-nodo-serie circle{fill:#3a5a8a;}
.nsf-nodo-musica circle{fill:var(--nsf-navy);}

.nsf-nodo:hover circle{stroke:var(--nsf-navy); stroke-width:3;}
.nsf-nodo:focus-visible circle{stroke:var(--nsf-mustard); stroke-width:3;}
.nsf-nodo-activo circle{stroke:var(--nsf-navy); stroke-width:3.5;}
.nsf-nodo-activo text{fill:var(--nsf-navy); font-weight:700;}
.nsf-nodo-apagado{opacity:0.18;}
.nsf-nodo-fuera{opacity:0.1; pointer-events:none;}

/* Con muchas obras las etiquetas se amontonan: solo las conectadas. */
.nsf-grafo-con-seleccion .nsf-nodo:not(.nsf-nodo-activo):not(.nsf-nodo-vecino) text{opacity:0;}

/* ---------- Panel de la obra elegida ---------- */
.nsf-grafo-panel{
  background:#fff;
  border:1px solid #e9dfd2;
  border-radius:14px;
  padding:18px 20px;
  margin-top:14px;
}
/* En la página dedicada, al ir en columna junto al mapa no necesita
   ese margen superior (ya lo separa el "gap" de la rejilla). */
@media (min-width:861px){
  .nsf-pagina-mapa .nsf-grafo-fila .nsf-grafo-panel{margin-top:0;}
}
.nsf-grafo-panel h4{
  font-family:'Fraunces', Georgia, serif;
  font-size:1.1rem;
  font-weight:700;
  color:var(--nsf-navy);
  margin:8px 0 0;
}
.nsf-grafo-panel p{
  margin:4px 0 14px;
  font-size:0.85rem;
  color:var(--nsf-ink-soft);
}
.nsf-grafo-panel p.nsf-grafo-panel-meta{
  margin:3px 0 0;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.76rem;
  color:var(--nsf-ink-soft);
}
.nsf-grafo-panel-relacion-destacada{
  margin:12px 0 14px;
  padding:11px 12px;
  border-left:3px solid var(--nsf-red);
  background:#fbf7f2;
  border-radius:0 10px 10px 0;
}
.nsf-grafo-panel-relacion-titulo{
  display:block;
  margin:0 0 5px;
  color:var(--nsf-navy);
  font-size:0.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.nsf-grafo-panel-relacion-destacada p{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  align-items:baseline;
  font-size:0.84rem;
}
.nsf-grafo-panel-relacion-obra{
  color:var(--nsf-navy);
  font-weight:700;
}
.nsf-grafo-panel-relacion-obra::after{
  content:' ·';
  color:var(--nsf-ink-soft);
}
.nsf-grafo-panel-relacion-texto{
  color:var(--nsf-ink-soft);
}
.nsf-grafo-panel-razones{
  margin:12px 0 16px;
  padding-top:12px;
  border-top:1px dotted #e9dfd2;
}
.nsf-grafo-panel-razones-titulo{
  display:block;
  margin-bottom:8px;
  color:var(--nsf-navy);
  font-size:0.82rem;
}
.nsf-grafo-panel-razones ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.nsf-grafo-panel-razones li{
  display:grid;
  gap:2px;
  margin:0;
  padding:0;
  font-size:0.8rem;
  line-height:1.4;
}
.nsf-grafo-panel-razones li strong{
  color:var(--nsf-navy);
}
.nsf-grafo-panel-razones li span{
  color:var(--nsf-ink-soft);
}
.nsf-grafo-panel-acciones{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:14px;
  margin-bottom:10px;
}
.nsf-grafo-alternar{
  background:var(--nsf-navy);
  border:none;
  color:#fff;
  font-family:inherit;
  font-weight:600;
  font-size:0.84rem;
  padding:9px 16px;
  border-radius:100px;
  cursor:pointer;
  transition:background .14s ease;
}
.nsf-grafo-alternar:hover{background:var(--nsf-red);}
.nsf-grafo-ver{
  color:var(--nsf-red);
  font-weight:600;
  font-size:0.88rem;
  text-decoration:none;
}
.nsf-grafo-ver:hover{text-decoration:underline;}
.nsf-grafo-cerrar{
  background:none;
  border:none;
  color:var(--nsf-ink-soft);
  font-family:inherit;
  font-size:0.82rem;
  cursor:pointer;
  text-decoration:underline;
}

/* ---------- Filtro por tipo ---------- */
.nsf-grafo-tipos{margin-bottom:14px;}
.nsf-punto{
  display:inline-block;
  width:9px; height:9px;
  border-radius:50%;
  margin-right:2px;
}
.nsf-punto-libro{background:#8a4b3a;}
.nsf-punto-juego{background:var(--nsf-mustard);}
.nsf-punto-pelicula,
.nsf-punto-serie{background:#3a5a8a;}
.nsf-punto-musica{background:var(--nsf-navy);}

.nsf-grafo-pista{
  margin:12px 0 0;
  font-size:0.82rem;
  color:var(--nsf-ink-soft);
  text-align:center;
}

/* ---------- Separación real entre etiquetas de género ---------- */
/* Con márgenes además del gap: así no depende de que otra regla
   del tema o del propio plugin lo sobrescriba. */
.nsf-buscador .nsf-obra-genero,
.nsf-buscador .nsf-dato-generos dd{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0;
}
.nsf-ficha .nsf-obra-genero,
.nsf-ficha .nsf-dato-generos dd{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0;
}
.nsf-buscador .nsf-obra-genero > *,
.nsf-buscador .nsf-dato-generos dd > *{
  margin:3px 8px 3px 0;
}
.nsf-ficha .nsf-obra-genero > *,
.nsf-ficha .nsf-dato-generos dd > *{
  margin:3px 8px 3px 0;
}
.nsf-buscador .nsf-obra-genero > *:last-child,
.nsf-buscador .nsf-dato-generos dd > *:last-child{
  margin-right:0;
}
.nsf-ficha .nsf-obra-genero > *:last-child,
.nsf-ficha .nsf-dato-generos dd > *:last-child{
  margin-right:0;
}
.nsf-buscador .nsf-obra-genero .nsf-genero-link,
.nsf-buscador .nsf-obra-genero > span{
  padding:4px 12px;
  line-height:1.4;
  border-radius:100px;
}
.nsf-ficha .nsf-obra-genero .nsf-genero-link,
.nsf-ficha .nsf-obra-genero > span{
  padding:4px 12px;
  line-height:1.4;
  border-radius:100px;
}

/* ================================================================
   DATOS DE LA FICHA — rejilla alineada
   ================================================================ */
.nsf-buscador .nsf-datos,
.nsf-ficha-publica .nsf-datos{
  display:grid;
  /* Columnas iguales: así todo queda a la misma altura aunque un dato
     ocupe dos líneas. */
  grid-template-columns:repeat(auto-fit, minmax(148px, 1fr));
  gap:22px 24px;
  align-items:start;
  margin:26px 0 0;
}
.nsf-ficha .nsf-datos,
.nsf-ficha-publica .nsf-datos{
  display:grid;
  /* Columnas iguales: así todo queda a la misma altura aunque un dato
     ocupe dos líneas. */
  grid-template-columns:repeat(auto-fit, minmax(148px, 1fr));
  gap:22px 24px;
  align-items:start;
  margin:26px 0 0;
}
.nsf-buscador .nsf-dato,
.nsf-ficha-publica .nsf-dato{
  display:grid;
  /* Icono, etiqueta y valor: siempre en las mismas tres alturas. */
  grid-template-rows:22px auto 1fr;
  gap:0;
  margin:0;
  min-width:0;
}
.nsf-ficha .nsf-dato,
.nsf-ficha-publica .nsf-dato{
  display:grid;
  /* Icono, etiqueta y valor: siempre en las mismas tres alturas. */
  grid-template-rows:22px auto 1fr;
  gap:0;
  margin:0;
  min-width:0;
}
.nsf-buscador .nsf-dato-icono,
.nsf-ficha-publica .nsf-dato-icono{
  display:flex;
  align-items:center;
  margin:0;
  line-height:0;
  color:rgba(255,255,255,0.85);
}
.nsf-ficha .nsf-dato-icono,
.nsf-ficha-publica .nsf-dato-icono{
  display:flex;
  align-items:center;
  margin:0;
  line-height:0;
  color:rgba(255,255,255,0.85);
}
.nsf-buscador .nsf-dato dt,
.nsf-ficha-publica .nsf-dato dt{
  margin:8px 0 0;
  font-size:0.58rem;
  letter-spacing:0.11em;
  line-height:1.2;
}
.nsf-ficha .nsf-dato dt,
.nsf-ficha-publica .nsf-dato dt{
  margin:8px 0 0;
  font-size:0.58rem;
  letter-spacing:0.11em;
  line-height:1.2;
}
.nsf-buscador .nsf-dato dd,
.nsf-ficha-publica .nsf-dato dd{
  margin:6px 0 0;
  font-size:0.9rem;
  line-height:1.35;
  align-self:start;
}
.nsf-ficha .nsf-dato dd,
.nsf-ficha-publica .nsf-dato dd{
  margin:6px 0 0;
  font-size:0.9rem;
  line-height:1.35;
  align-self:start;
}

/* v5.54.8 — El género de la ficha AJAX usa la misma estructura y tipografía
   que Tipo/Origen/Publicación. Evita que el tema aplique estilos de encabezado
   a los spans antiguos y mantiene el valor visible sobre la tarjeta roja. */
.nsf-buscador .nsf-dato-generos dt,
.nsf-ficha-publica .nsf-dato-generos dt{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:.58rem;
  font-weight:700;
  line-height:1.2;
  color:rgba(255,255,255,.7);
  margin:8px 0 0;
}
.nsf-ficha .nsf-dato-generos dt,
.nsf-ficha-publica .nsf-dato-generos dt{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:.58rem;
  font-weight:700;
  line-height:1.2;
  color:rgba(255,255,255,.7);
  margin:8px 0 0;
}
.nsf-buscador .nsf-dato-generos dd,
.nsf-ficha-publica .nsf-dato-generos dd{
  margin:6px 0 0;
  font-size:.9rem;
  font-weight:400;
  line-height:1.35;
  color:#fff;
}
.nsf-ficha .nsf-dato-generos dd,
.nsf-ficha-publica .nsf-dato-generos dd{
  margin:6px 0 0;
  font-size:.9rem;
  font-weight:400;
  line-height:1.35;
  color:#fff;
}
.nsf-buscador .nsf-dato-generos dd .nsf-dato-link,
.nsf-ficha-publica .nsf-dato-generos dd .nsf-dato-link{
  color:#fff;
  font:inherit;
  text-decoration:underline dotted;
  text-underline-offset:3px;
}
.nsf-ficha .nsf-dato-generos dd .nsf-dato-link,
.nsf-ficha-publica .nsf-dato-generos dd .nsf-dato-link{
  color:#fff;
  font:inherit;
  text-decoration:underline dotted;
  text-underline-offset:3px;
}

/* ---------- Los géneros, como etiquetas dentro de su celda ---------- */
.nsf-buscador .nsf-dato-generos{grid-column:span 2;}
.nsf-ficha .nsf-dato-generos{grid-column:span 2;}
.nsf-buscador .nsf-dato-generos dd,
.nsf-ficha-publica .nsf-dato-generos dd{
  display:flex;
  flex-wrap:wrap;
  gap:0;
}
.nsf-ficha .nsf-dato-generos dd,
.nsf-ficha-publica .nsf-dato-generos dd{
  display:flex;
  flex-wrap:wrap;
  gap:0;
}
.nsf-buscador .nsf-dato-generos dd > *{
  margin:0 7px 6px 0;
}
.nsf-ficha .nsf-dato-generos dd > *{
  margin:0 7px 6px 0;
}
.nsf-buscador .nsf-dato-generos dd .nsf-dato-link{
  background:rgba(255,255,255,0.18);
  border:1px solid rgba(255,255,255,0.28);
  border-radius:100px;
  padding:3px 12px;
  font-size:0.82rem;
  text-decoration:none;
  color:#fff;
  transition:background .14s ease, border-color .14s ease;
}
.nsf-ficha .nsf-dato-generos dd .nsf-dato-link{
  background:rgba(255,255,255,0.18);
  border:1px solid rgba(255,255,255,0.28);
  border-radius:100px;
  padding:3px 12px;
  font-size:0.82rem;
  text-decoration:none;
  color:#fff;
  transition:background .14s ease, border-color .14s ease;
}
.nsf-buscador .nsf-dato-generos dd .nsf-dato-link:hover,
.nsf-buscador .nsf-dato-generos dd .nsf-dato-link:focus-visible{
  background:#fff;
  border-color:#fff;
  color:var(--nsf-red-deep);
}
.nsf-ficha .nsf-dato-generos dd .nsf-dato-link:hover,
.nsf-ficha .nsf-dato-generos dd .nsf-dato-link:focus-visible{
  background:#fff;
  border-color:#fff;
  color:var(--nsf-red-deep);
}

/* El resto de valores mantiene el subrayado punteado. */
.nsf-buscador .nsf-dato dd .nsf-dato-link{
  padding:0;
  margin:0;
}
.nsf-ficha .nsf-dato dd .nsf-dato-link{
  padding:0;
  margin:0;
}

@media (max-width:640px){
  .nsf-buscador .nsf-datos,
  .nsf-ficha-publica .nsf-datos{
    grid-template-columns:1fr 1fr;
    gap:18px 16px;
  }
  .nsf-ficha .nsf-datos,
  .nsf-ficha-publica .nsf-datos{
    grid-template-columns:1fr 1fr;
    gap:18px 16px;
  }
  /* En vez de forzar el género a ocupar toda la fila (dejando un
     hueco vacío junto a Tipo cuando el género es corto), se coloca
     en la rejilla igual que los demás; si hay varios géneros, ya
     hacen wrap dentro de su propia celda. */
  .nsf-buscador .nsf-dato-generos{grid-column:auto;}
  .nsf-ficha .nsf-dato-generos{grid-column:auto;}
}

/* ---------- Géneros sin fondo, solo el texto ---------- */
.nsf-buscador .nsf-dato-generos dd .nsf-dato-link,
.nsf-buscador .nsf-dato-generos dd .nsf-dato-link:hover,
.nsf-buscador .nsf-dato-generos dd .nsf-dato-link:focus-visible{
  background:none;
  border:none;
  border-radius:0;
  padding:0;
  font-size:0.9rem;
  color:#fff;
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:3px;
}
.nsf-ficha .nsf-dato-generos dd .nsf-dato-link,
.nsf-ficha .nsf-dato-generos dd .nsf-dato-link:hover,
.nsf-ficha .nsf-dato-generos dd .nsf-dato-link:focus-visible{
  background:none;
  border:none;
  border-radius:0;
  padding:0;
  font-size:0.9rem;
  color:#fff;
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:3px;
}
.nsf-buscador .nsf-dato-generos dd .nsf-dato-link:hover,
.nsf-buscador .nsf-dato-generos dd .nsf-dato-link:focus-visible{
  text-decoration-style:solid;
  color:#ffe6e5;
}
.nsf-ficha .nsf-dato-generos dd .nsf-dato-link:hover,
.nsf-ficha .nsf-dato-generos dd .nsf-dato-link:focus-visible{
  text-decoration-style:solid;
  color:#ffe6e5;
}
.nsf-buscador .nsf-dato-generos dd{
  display:block;
  line-height:1.7;
}
.nsf-ficha .nsf-dato-generos dd{
  display:block;
  line-height:1.7;
}
.nsf-buscador .nsf-dato-generos dd > *{margin:0;}
.nsf-ficha .nsf-dato-generos dd > *{margin:0;}

/* ---------- Aviso de incidencia ---------- */
.nsf-incidencia{
  background:none;
  border:none;
  color:rgba(255,255,255,0.65);
  cursor:pointer;
  padding:4px;
  display:inline-flex;
  align-items:center;
  border-radius:6px;
  transition:color .14s ease, background .14s ease;
}
.nsf-incidencia:hover,
.nsf-incidencia:focus-visible{
  color:#fff;
  background:rgba(255,255,255,0.28);
  outline:1px solid rgba(255,255,255,0.5);
}
.nsf-incidencia-form h3{margin-top:0;}

/* ---------- Aviso de incidencia, en cada obra ---------- */
.nsf-destacado{position:relative;}

/* ---------- Aviso de incidencia, dentro del recuadro rojo ---------- */
.nsf-incidencia-dentro{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:14px 0 0;
  padding:6px 4px;
  color:rgba(255,255,255,0.75);
  font-size:0.82rem;
  border-bottom:1px solid transparent;
  transition:color .14s ease, background .14s ease, border-color .14s ease;
}
.nsf-incidencia-dentro:hover,
.nsf-incidencia-dentro:focus-visible{
  color:#fff;
  background:rgba(255,255,255,0.24);
  border-bottom-color:#fff;
}
.nsf-incidencia-texto{font-weight:600;}


/* Separación del botón "Ver más" de las obras relacionadas. */
.nsf-relacionados-ver-mas{
  margin-top: 28px;
  padding-top: 6px;
}
.nsf-relacionados-aviso{
  margin: 0 0 10px;
  font-size: .92rem;
  line-height: 1.45;
  opacity: .82;
}
.nsf-relacionados-ver-mas .nsf-grafo-btn-texto{
  display: inline-block;
}

/* En las tarjetas de obras relacionadas. */
.nsf-obra{position:relative;}
.nsf-incidencia-obra{
  position:absolute;
  top:8px;
  right:8px;
  z-index:2;
  color:#c9bda9;
  opacity:0;
  transition:opacity .14s ease, color .14s ease, background .14s ease;
}
.nsf-obra:hover .nsf-incidencia-obra,
.nsf-incidencia-obra:focus-visible{opacity:1;}
.nsf-incidencia-obra:hover,
.nsf-incidencia-obra:focus-visible{
  color:var(--nsf-red);
  background:var(--nsf-cream);
}
/* En pantallas táctiles no hay "pasar por encima": siempre visible. */
@media (hover:none){
  .nsf-incidencia-obra{opacity:0.55;}
}

/* ---------- Juego de mesa ---------- */
/* Verde apagado: se distingue del mostaza del videojuego sin salirse
   de la paleta cálida de la marca. */
.nsf-type-mesa{background:#5c7a52;}
.nsf-nodo-mesa circle{fill:#5c7a52;}
.nsf-punto-mesa{background:#5c7a52;}



/* ---------- Controles del mapa ---------- */
.nsf-grafo-lienzo{position:relative;}
.nsf-grafo-controles{
  position:absolute;
  top:12px;
  right:12px;
  display:flex;
  flex-direction:column;
  gap:6px;
  z-index:2;
}
.nsf-grafo-btn{
  width:44px;
  height:44px;
  border-radius:11px;
  border:1px solid #e0d5c4;
  background:#fff;
  color:var(--nsf-navy);
  font-family:inherit;
  font-size:21px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 2px 6px -2px rgba(31,42,68,0.25);
  transition:all .14s ease;
}
.nsf-grafo-btn:hover,
.nsf-grafo-btn:focus-visible{
  background:var(--nsf-navy);
  border-color:var(--nsf-navy);
  color:#fff;
}
.nsf-grafo-btn-reset{font-size:16px;}

.nsf-grafo-svg{cursor:grab; touch-action:none;}
.nsf-grafo-svg.nsf-grafo-arrastrando{cursor:grabbing;}

/* ---------- Enlace al mapa, al pie del buscador ---------- */
.nsf-pie-mapa{
  margin:34px 0 0;
  padding-top:22px;
  border-top:1px dashed #ddd0bd;
  text-align:center;
}
.nsf-pie-mapa a{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--nsf-navy);
  font-weight:600;
  font-size:0.92rem;
  text-decoration:none;
  padding:10px 22px;
  border-radius:100px;
  border:1.5px solid #e2d8c8;
  transition:all .14s ease;
}
.nsf-pie-mapa a:hover,
.nsf-pie-mapa a:focus-visible{
  background:var(--nsf-navy);
  border-color:var(--nsf-navy);
  color:#fff;
}
.nsf-pie-mapa svg{color:var(--nsf-mustard); flex:none;}
.nsf-pie-mapa a:hover svg{color:var(--nsf-mustard);}

/* El contador de obras enlaza directamente con la página completa de Obras. */
.nsf-resumen-catalogo-obras{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  min-width:100px;
  padding:8px 16px;
  border-radius:14px;
  color:#d98282 !important;
  text-decoration:none !important;
  transition:background .14s ease,color .14s ease,transform .14s ease;
}
.nsf-resumen-catalogo-obras strong{
  color:inherit;
}
.nsf-resumen-catalogo-obras span{
  color:inherit;
}
.nsf-resumen-catalogo-obras:hover,
.nsf-resumen-catalogo-obras:focus-visible{
  background:#fff1f1;
  color:#c96f6f !important;
  transform:translateY(-1px);
}
/* Arriba del todo, sin la raya de separación de cuando iba al final. */
.nsf-pie-buscador-arriba{
  margin:0 0 22px;
  padding-top:0;
  border-top:none;
  text-align:left;
}

/* ---------- Leyenda del mapa ---------- */
.nsf-grafo-leyenda{
  margin-top:18px;
  padding:20px 24px;
  background:var(--nsf-cream);
  border:1px solid #e9dfd2;
  border-radius:14px;
}
.nsf-grafo-leyenda h4{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.11em;
  font-size:0.62rem;
  font-weight:700;
  color:var(--nsf-red);
  margin:0 0 16px;
}
.nsf-leyenda-grupo + .nsf-leyenda-grupo{
  margin-top:18px;
  padding-top:16px;
  border-top:1px dashed #ddd0bd;
}
.nsf-leyenda-titulo{
  display:block;
  font-weight:700;
  font-size:0.84rem;
  color:var(--nsf-navy);
  margin-bottom:9px;
}
.nsf-grafo-leyenda ul{margin:0; padding:0; list-style:none;}
.nsf-grafo-leyenda li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:5px 0;
  font-size:0.85rem;
  line-height:1.5;
  color:var(--nsf-ink-soft);
}
.nsf-grafo-leyenda li strong{color:var(--nsf-ink); margin-right:3px;}

.nsf-leyenda-linea{
  flex:none;
  width:34px;
  height:3px;
  border-radius:2px;
  margin-top:9px;
}
.nsf-leyenda-roja{background:var(--nsf-red);}
.nsf-leyenda-mostaza{background:var(--nsf-mustard);}
.nsf-leyenda-navy{background:var(--nsf-navy);}
.nsf-leyenda-gris{background:#d8cdbb;}

.nsf-leyenda-puntos{
  flex:none;
  display:flex;
  align-items:center;
  gap:5px;
  width:34px;
  margin-top:5px;
}
.nsf-leyenda-punto{
  display:inline-block;
  width:10px; height:10px;
  border-radius:50%;
  background:var(--nsf-navy);
}
.nsf-leyenda-punto-chico{width:7px; height:7px;}
.nsf-leyenda-punto-grande{width:15px; height:15px;}

/* Colores de los orbes: corresponden a las categorías del catálogo. */
.nsf-leyenda-colores .nsf-leyenda-puntos{width:34px;}
.nsf-leyenda-color-libro{background:#8a4b3a;}
.nsf-leyenda-color-juego{background:var(--nsf-mustard);}
.nsf-leyenda-color-mesa{background:#5c7a52;}
.nsf-leyenda-color-pantalla{background:#3a5a8a;}
.nsf-leyenda-color-musica{background:var(--nsf-navy);}
.nsf-leyenda-color-otras{background:#a8562f;}
.nsf-leyenda-colores li strong{color:var(--nsf-ink);}

@media (max-width:520px){
  .nsf-leyenda-puntos{flex-wrap:wrap; width:auto;}
}

/* El enlace de vuelta al buscador va antes de la pista, sin línea doble. */
.nsf-pie-buscador{border-top:none; padding-top:0; margin-top:20px;}

/* ---------- Invitación a aportar ---------- */
.nsf-aporta{
  margin-top:32px;
  padding:26px 24px;
  background:var(--nsf-cream);
  border:1px dashed #ddd0bd;
  border-radius:16px;
  text-align:center;
}
.nsf-aporta-texto{
  margin:0 0 14px;
  font-family:'Fraunces', Georgia, serif;
  font-size:1.1rem;
  font-weight:700;
  color:var(--nsf-navy);
}
.nsf-aporta-botones{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap:wrap;
}
.nsf-aporta-nota{
  margin:14px 0 0;
  font-size:0.8rem;
  color:var(--nsf-ink-soft);
  max-width:46ch;
  margin-left:auto;
  margin-right:auto;
  line-height:1.5;
}

/* ---------- Cuando no hay resultados ---------- */
.nsf-empty-buscado{
  font-size:1rem;
  color:var(--nsf-ink);
  margin:8px 0 0;
}
.nsf-empty-parecidos{
  margin:20px 0 0;
  padding:16px 18px;
  background:var(--nsf-cream);
  border-radius:12px;
}
.nsf-empty-parecidos p{
  margin:0 0 10px;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.62rem;
  text-transform:uppercase;
  letter-spacing:0.09em;
  color:var(--nsf-ink-soft);
}
.nsf-parecido{
  display:inline-block;
  background:#fff;
  border:1px solid #e9dfd2;
  border-radius:100px;
  padding:7px 16px;
  margin:0 7px 7px 0;
  font-family:inherit;
  font-size:0.88rem;
  color:var(--nsf-navy);
  cursor:pointer;
  transition:all .14s ease;
}
.nsf-parecido:hover,
.nsf-parecido:focus-visible{
  background:var(--nsf-navy);
  border-color:var(--nsf-navy);
  color:#fff;
}
.nsf-empty-anadir{
  margin:24px 0 0;
  padding-top:20px;
  border-top:1px dashed #ddd0bd;
}
.nsf-empty-invita{
  margin:0 0 14px;
  color:var(--nsf-ink-soft);
  font-size:0.9rem;
}
.nsf-empty-anadir .nsf-btn{margin:0 8px 8px 0;}

/* ---------- Añadir una obra desde el desplegable ---------- */
.nsf-sugg-alta{
  width:100%;
  text-align:left;
  font-family:inherit;
  border:none;
  border-top:1px dashed #e2d8c8;
  background:#fdf6e8;
  cursor:pointer;
  gap:11px;
}
.nsf-sugg-alta:hover,
.nsf-sugg-alta.nsf-active{background:#fbefd6;}
.nsf-sugg-alta-icono{
  flex:none;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--nsf-mustard);
  color:var(--nsf-navy-deep);
  font-size:16px;
  font-weight:700;
  line-height:24px;
  text-align:center;
}
.nsf-sugg-alta .nsf-sugg-title{color:var(--nsf-navy);}

/* ---------- Otras obras ---------- */
/* Terracota: el color más "manual" de la paleta, para lo plástico. */
.nsf-type-otras{background:#a8562f;}
.nsf-nodo-otras circle{fill:#a8562f;}
.nsf-punto-otras{background:#a8562f;}

/* ---------- Cabecera del buscador ---------- */
.nsf-hero-apoyo{
  margin:10px auto 0;
  max-width:52ch;
  font-size:0.92rem;
  color:var(--nsf-ink-soft);
}
.nsf-hero-pasos{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin:26px 0 0;
  padding:0;
  list-style:none;
}
.nsf-hero-pasos li{
  display:flex;
  align-items:center;
  gap:9px;
  background:#fff;
  border:1px solid #e9dfd2;
  border-radius:100px;
  padding:8px 18px 8px 8px;
  font-size:0.84rem;
  color:var(--nsf-ink);
  text-align:left;
}
.nsf-paso-num{
  flex:none;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--nsf-red);
  color:#fff;
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:0.76rem;
  font-weight:700;
  line-height:24px;
  text-align:center;
}
@media (max-width:640px){
  .nsf-hero-pasos{flex-direction:column; align-items:stretch; gap:8px;}
  .nsf-hero-pasos li{justify-content:flex-start;}
}

/* ================================================================
   CAMINO RECORRIDO — que no se descuadre al crecer
   ================================================================ */
/* En vez de partirse en varias líneas, el camino se desplaza a lo
   ancho y deja siempre a la vista el paso actual. */
.nsf-buscador .nsf-camino{
  flex-wrap:nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:2px;
  scroll-behavior:smooth;
  /* Difuminado a la izquierda: avisa de que hay más camino detrás. */
  mask-image:linear-gradient(to right, transparent 0, #000 18px);
  -webkit-mask-image:linear-gradient(to right, transparent 0, #000 18px);
}
.nsf-ficha .nsf-camino{
  flex-wrap:nowrap;
  overflow-x:auto;
  overflow-y:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:2px;
  scroll-behavior:smooth;
  /* Difuminado a la izquierda: avisa de que hay más camino detrás. */
  mask-image:linear-gradient(to right, transparent 0, #000 18px);
  -webkit-mask-image:linear-gradient(to right, transparent 0, #000 18px);
}
.nsf-buscador .nsf-camino::-webkit-scrollbar{display:none;}
.nsf-ficha .nsf-camino::-webkit-scrollbar{display:none;}
.nsf-buscador .nsf-camino-paso{flex:none;}
.nsf-ficha .nsf-camino-paso{flex:none;}
.nsf-buscador .nsf-camino-sep{flex:none;}
.nsf-ficha .nsf-camino-sep{flex:none;}

/* Sin camino largo no hace falta el difuminado. */
.nsf-buscador .nsf-camino-corto{
  mask-image:none;
  -webkit-mask-image:none;
}
.nsf-ficha .nsf-camino-corto{
  mask-image:none;
  -webkit-mask-image:none;
}

@media (max-width:720px){
  .nsf-barra-tipo{
    flex-wrap:wrap;
    align-items:flex-start;
    gap:10px;
    padding:12px 14px;
  }
  /* Fila 1: icono y camino. Fila 2: los botones, a lo ancho. */
  .nsf-barra-icono{order:1; margin-top:1px;}
  .nsf-camino,
  .nsf-barra-texto{order:2; flex:1 1 0; min-width:0;}
  /* El subtítulo pasa a su propia línea en vez de partirse a media
     frase, para que no quede una palabra suelta colgando abajo. */
  .nsf-barra-sub{
    display:block;
    margin-top:2px;
    font-size:0.68rem;
    letter-spacing:0.04em;
    text-transform:none;
  }
  .nsf-barra-sub::before{content:'';}
  .nsf-barra-tipo .nsf-compartir,
  .nsf-barra-tipo .nsf-editar-hilo{order:3;}
  .nsf-barra-tipo .nsf-compartir{
    flex:1 1 100%;
    justify-content:center;
    margin-left:0;
    border:1px solid rgba(255,255,255,0.28);
    border-radius:100px;
    padding:9px 14px;
  }
  .nsf-barra-tipo .nsf-editar-hilo{
    flex:1 1 100%;
    text-align:center;
    margin-left:0;
  }
  .nsf-camino-paso{max-width:150px; font-size:0.78rem;}
  .nsf-camino-actual{max-width:190px;}
}

/* ---------- El titular como vuelta al inicio ---------- */
.nsf-hero-inicio{
  background:none;
  border:none;
  border-radius:8px;
  padding:2px 8px;
  margin:0 -8px;
  font:inherit;
  color:inherit;
  text-align:inherit;
  text-decoration:none;
  display:inline-block;
  cursor:pointer;
  border-bottom:3px solid transparent;
  transition:border-color .14s ease, color .14s ease, background .14s ease;
}
.nsf-hero-inicio:hover{
  color:var(--nsf-red);
  background:var(--nsf-cream);
  border-bottom-color:var(--nsf-red);
}
.nsf-hero-inicio:focus-visible{
  color:var(--nsf-red);
  background:var(--nsf-cream);
  border-bottom-color:var(--nsf-red);
  outline:3px solid var(--nsf-mustard);
  outline-offset:3px;
}

/* Al ver una obra, la cabecera se oculta pero el titular se queda:
   así siempre hay una forma visible de volver al principio. Con flex
   centrado, no depende de cuadrar paddings a mano. */
.nsf-buscador.nsf-compacto .nsf-hero{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  padding-top:24px;
  padding-bottom:24px;
  margin-bottom:4px;
  background:#fff;
  border-color:#eee6dd;
}
.nsf-ficha.nsf-compacto .nsf-hero{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  padding-top:24px;
  padding-bottom:24px;
  margin-bottom:4px;
  background:#fff;
  border-color:#eee6dd;
}
.nsf-buscador.nsf-compacto .nsf-hero-lede,
.nsf-buscador.nsf-compacto .nsf-hero-apoyo,
.nsf-buscador.nsf-compacto .nsf-hero-pasos{
  display:none;
}
.nsf-ficha.nsf-compacto .nsf-hero-lede,
.nsf-ficha.nsf-compacto .nsf-hero-apoyo,
.nsf-ficha.nsf-compacto .nsf-hero-pasos{
  display:none;
}
.nsf-buscador.nsf-compacto .nsf-hero-title{
  font-size:1.15rem;
  margin:0;
  text-align:center;
}
.nsf-ficha.nsf-compacto .nsf-hero-title{
  font-size:1.15rem;
  margin:0;
  text-align:center;
}
@media (max-width:640px){
  .nsf-buscador.nsf-compacto .nsf-hero-title{font-size:1rem;}
  .nsf-ficha.nsf-compacto .nsf-hero-title{font-size:1rem;}
}

/* ---------- Campo de fuentes en los formularios ---------- */
.nsf-campo-fuentes textarea{
  min-height:56px;
  font-size:0.9rem;
}
.nsf-campo-fuentes .nsf-relacion-nota{
  display:block;
  margin-top:6px;
  font-size:0.76rem;
  color:var(--nsf-ink-soft);
  font-style:italic;
}

/* ---------- Llevarse el hilo ---------- */
.nsf-llevar{
  margin-top:30px;
  padding-top:20px;
  border-top:1px dashed #ddd0bd;
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.nsf-llevar-titulo{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-size:0.62rem;
  font-weight:700;
  color:var(--nsf-ink-soft);
}
.nsf-llevar-botones{display:flex; gap:8px; flex-wrap:wrap;}
.nsf-llevar-btn{
  background:#fff;
  border:1px solid #e2d8c8;
  border-radius:100px;
  padding:7px 16px;
  font-family:inherit;
  font-size:0.82rem;
  color:var(--nsf-navy);
  cursor:pointer;
  transition:all .14s ease;
}
.nsf-llevar-btn:hover,
.nsf-llevar-btn:focus-visible{
  background:var(--nsf-navy);
  border-color:var(--nsf-navy);
  color:#fff;
}
.nsf-llevar-aviso{
  font-size:0.8rem;
  color:#2c5c37;
  font-weight:600;
}
@media (max-width:520px){
  .nsf-llevar{flex-direction:column; align-items:flex-start; gap:9px;}
  .nsf-llevar-botones{width:100%;}
  .nsf-llevar-btn{flex:1 1 auto; text-align:center;}
}

/* ---------- Formularios en móvil: campos identificables ---------- */
/* En pantalla estrecha la fila de campos se apila y, sin etiqueta,
   no se sabe cuál es cuál. */
@media (max-width:640px){
  .nsf-item-row{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    padding:14px;
    background:var(--nsf-cream);
    border-radius:12px;
  }
  .nsf-item-row > select,
  .nsf-item-row > input{width:100%;}

  .nsf-item-row .nsf-it-titulo,
  .nsf-item-row #nsf-os-titulo{
    font-size:1rem;
    font-weight:600;
    border-width:2px;
    border-color:var(--nsf-red);
  }
  /* Etiqueta flotante sobre el campo del título. */
  .nsf-item-row .nsf-it-titulo::placeholder,
  .nsf-item-row #nsf-os-titulo::placeholder{
    color:var(--nsf-ink-soft);
    opacity:1;
    font-weight:600;
  }
  .nsf-item-row .nsf-rm-item{align-self:flex-end;}
}

/* En cualquier tamaño, el título es el campo principal. */
.nsf-it-titulo,
#nsf-os-titulo{flex:2 1 200px;}

.nsf-interp-solo{
  margin:12px 0 0;
  padding:10px 14px;
  background:var(--nsf-cream);
  border-left:3px solid var(--nsf-mustard);
  font-size:0.85rem;
  color:var(--nsf-ink-soft);
}


/* ---------- Buscador de ficha: mismo componente que el buscador público ---------- */
.nsf-ficha-buscador-igual{
  width:100%;
  margin:0 auto 30px;
}
.nsf-ficha-buscador-igual .nsf-buscador{
  width:100%;
}
.nsf-ficha-buscador-igual .nsf-ficha{
  width:100%;
}
.nsf-ficha-buscador-igual .nsf-search-shell{
  margin:0 auto;
  padding:0;
  max-width:620px;
  position:relative;
  z-index:5;
}
.nsf-ficha-buscador-igual .nsf-sorpresa-fila,
.nsf-ficha-buscador-igual .nsf-ultimas,
.nsf-ficha-buscador-igual .nsf-filtros,
.nsf-ficha-buscador-igual .nsf-volver-fila,
.nsf-ficha-buscador-igual .nsf-results,
.nsf-ficha-buscador-igual .nsf-empty,
.nsf-ficha-buscador-igual .nsf-form-slot,
.nsf-ficha-buscador-igual .nsf-confirm,
.nsf-ficha-buscador-igual .nsf-aporta,
.nsf-ficha-buscador-igual #nsf-mapa-hilo-toggle,
.nsf-ficha-buscador-igual #nsf-mapa-hilo{
  display:none !important;
}
.nsf-ficha-buscador-igual .nsf-search-box{
  box-shadow:0 18px 44px -18px rgba(20,28,48,0.35);
}
@media (max-width:520px){
  .nsf-ficha-buscador-igual .nsf-search-shell{padding:0 12px;}
}

/* ---------- Mapa progresivo ---------- */
.nsf-grafo-modo{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin:0 0 14px;
  padding:12px 18px;
  background:var(--nsf-cream);
  border:1px dashed #ddd0bd;
  border-radius:12px;
  font-size:0.86rem;
  color:var(--nsf-ink-soft);
}
.nsf-grafo-herramientas{
  display:flex;
  justify-content:flex-end;
  margin:0 0 10px;
}
.nsf-grafo-modo-txt{flex:1; min-width:200px;}
.nsf-grafo-modo-txt strong{color:var(--nsf-navy);}
.nsf-grafo-btn-texto{
  flex:none;
  background:none;
  border:1.5px solid #e2d8c8;
  border-radius:100px;
  padding:7px 16px;
  font-family:inherit;
  font-size:0.82rem;
  font-weight:600;
  color:var(--nsf-navy);
  cursor:pointer;
  transition:all .14s ease;
}
.nsf-grafo-btn-texto:hover{
  background:var(--nsf-navy);
  border-color:var(--nsf-navy);
  color:#fff;
}

/* Las obras sin abrir se ven como puertas: contorno punteado. */
.nsf-nodo-cerrado circle{
  /* Los orbes mantienen siempre el color de su tipo, incluso sin abrir. */
  fill:var(--nsf-navy);
  stroke-dasharray:3 2.5;
  stroke-width:2.2;
}
.nsf-nodo-libro.nsf-nodo-cerrado circle{fill:#8a4b3a; stroke:#8a4b3a;}
.nsf-nodo-juego.nsf-nodo-cerrado circle{fill:var(--nsf-mustard); stroke:var(--nsf-mustard);}
.nsf-nodo-mesa.nsf-nodo-cerrado circle{fill:#5c7a52; stroke:#5c7a52;}
.nsf-nodo-pelicula.nsf-nodo-cerrado circle,
.nsf-nodo-serie.nsf-nodo-cerrado circle{fill:#3a5a8a; stroke:#3a5a8a;}
.nsf-nodo-musica.nsf-nodo-cerrado circle{fill:var(--nsf-navy); stroke:var(--nsf-navy);}
.nsf-nodo-otras.nsf-nodo-cerrado circle{fill:#a8562f; stroke:#a8562f;}
.nsf-nodo-cerrado text{fill:var(--nsf-ink-soft); font-style:italic;}
.nsf-nodo-cerrado:hover circle{stroke-dasharray:none;}

/* ---------- Acceso a conexiones ---------- */
.nsf-mapa-plegable{margin:26px 0 10px;}
.nsf-mapa-toggle{
  display:inline-flex !important;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  width:auto;
  max-width:100%;
  box-sizing:border-box;
  background:rgba(231,48,42,.055) !important;
  border:1px solid rgba(231,48,42,.30) !important;
  border-radius:8px;
  padding:9px 14px;
  font-family:inherit;
  font-size:.78rem;
  line-height:1.15;
  font-weight:700;
  color:#E7302A !important;
  text-decoration:none;
  cursor:pointer;
  transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease;
}
.nsf-mapa-toggle:hover,.nsf-mapa-toggle:focus-visible{
  background:#E7302A !important;
  border-color:#E7302A !important;
  color:#ffffff !important;
  box-shadow:none;
  text-decoration:none;
}
.nsf-mapa-toggle:focus-visible{outline:2px solid rgba(231,48,42,.28);outline-offset:2px;}
.nsf-mapa-toggle-icono{flex:0 0 auto;opacity:.9;color:currentColor !important;}
.nsf-mapa-toggle-texto{white-space:nowrap;color:currentColor !important;}
.nsf-mapa-toggle-flecha{
  flex:0 0 auto;
  margin-left:2px;
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1rem;
  line-height:1;
  color:currentColor !important;
  opacity:.9;
}
.nsf-mapa-toggle:hover .nsf-mapa-toggle-flecha{transform:none;}
.nsf-mapa-toggle-abierto .nsf-mapa-toggle-flecha{transform:rotate(45deg);}

/* ---------- Mapa dentro de la ficha ---------- */
.nsf-ficha-mapa{margin-top:40px;}
.nsf-ficha-mapa .nsf-grafo-envoltorio{margin:0;}
/* Más bajo que el mapa general: aquí es una pieza más de la página. */
.nsf-ficha-mapa .nsf-grafo{background:var(--nsf-cream);}
.nsf-ficha-mapa .nsf-grafo-svg{max-height:420px;}
.nsf-ficha-mapa .nsf-grafo-leyenda{
  background:#fff;
  font-size:0.92em;
}
/* La pista de abajo sobra: ya lo explica el encabezado. */
.nsf-ficha-mapa .nsf-grafo-pista{display:none;}
a.nsf-grafo-btn-texto{text-decoration:none; display:inline-block;}

/* ---------- Botón que despliega el mapa del hilo ---------- */
#nsf-mapa-hilo-toggle{margin-top:34px;}

/* ---------- Mapa del hilo, dentro del buscador ---------- */
.nsf-mapa-hilo{
  margin-top:18px;
  padding-top:24px;
  border-top:1px dashed #ddd0bd;
  text-align:center;
}
.nsf-mapa-hilo[hidden]{display:none;}
.nsf-mapa-hilo-titulo{
  font-family:'Fraunces', Georgia, serif;
  font-size:1.1rem;
  font-weight:700;
  color:var(--nsf-navy);
  margin:0;
}
.nsf-mapa-hilo-pista{
  margin:6px 0 10px;
  font-size:0.82rem;
  color:var(--nsf-ink-soft);
}
.nsf-mapa-hilo-svg{
  width:100%;
  max-width:520px;
  height:auto;
  display:block;
  margin:0 auto;
  background:var(--nsf-cream);
  border-radius:16px;
  border:1px solid #e9dfd2;
  padding:10px;
  box-sizing:border-box;
  cursor:grab;
  touch-action:none;
}
.nsf-mapa-hilo-svg.nsf-grafo-arrastrando{cursor:grabbing;}
.nsf-mapa-hilo .nsf-grafo-lienzo{position:relative; max-width:520px; margin:0 auto;}
.nsf-mapa-hilo .nsf-grafo-controles{top:20px; right:20px;}
.nsf-mapa-hilo-svg text{
  font-family:ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size:9px;
  fill:var(--nsf-ink-soft);
  pointer-events:none;
}
.nsf-mini-centro circle{stroke:#fff; stroke-width:2.5;}
.nsf-mini-centro text{fill:var(--nsf-navy); font-weight:700; font-size:10px;}
.nsf-mini-nodo{cursor:pointer;}
.nsf-mini-nodo circle{stroke:#fff; stroke-width:2; transition:r .14s ease;}
.nsf-mini-nodo:hover circle,
.nsf-mini-nodo:focus-visible circle{r:11; stroke:var(--nsf-red);}
.nsf-mini-nodo:hover text{fill:var(--nsf-red); font-weight:700;}

/* Con una obra abierta ya está su propio mapa: el enlace al mapa
   completo solo tiene sentido en la pantalla inicial. */
.nsf-buscador.nsf-compacto .nsf-solo-inicio{display:none;}
.nsf-ficha.nsf-compacto .nsf-solo-inicio{display:none;}

/* ---------- Página dedicada al mapa de relaciones ---------- */
.nsf-pagina-mapa{background:#fff; padding:48px 20px 64px; min-height:60vh;}
.nsf-pagina-mapa > .nsf-contenedor{max-width:1180px; margin:0 auto;}
.nsf-pagina-mapa .nsf-relacionados-cabecera{margin-bottom:28px;}
.nsf-pagina-mapa .nsf-grafo-envoltorio{margin-top:0;}
.nsf-pagina-mapa .nsf-volver-buscador{margin-top:28px;}
.nsf-pagina-mapa .nsf-mapa-navegacion{display:flex;align-items:center;gap:22px;margin-top:28px;margin-bottom:24px;}
.nsf-pagina-mapa .nsf-mapa-navegacion p{margin:0;}
.nsf-pagina-mapa .nsf-mapa-nav-link,.nsf-pagina-mapa .nsf-mapa-volver-buscador a{display:inline-flex;align-items:center;gap:7px;background:none;color:var(--nsf-ink-soft);font-family:inherit;font-weight:600;font-size:0.92rem;text-decoration:none;padding:10px 22px;border-radius:100px;border:1.5px solid #e2d8c8;cursor:pointer;transition:all .14s ease;}
.nsf-pagina-mapa .nsf-mapa-nav-link:hover,.nsf-pagina-mapa .nsf-mapa-volver-buscador a:hover{background:var(--nsf-cream);border-color:var(--nsf-red);color:var(--nsf-ink);text-decoration:none;}
.nsf-pagina-mapa .nsf-mapa-nav-link svg,.nsf-pagina-mapa .nsf-mapa-volver-buscador a svg{color:var(--nsf-mustard);flex:none;}
@media(max-width:600px){.nsf-pagina-mapa .nsf-mapa-navegacion{gap:14px;flex-wrap:wrap;}}
.nsf-pagina-mapa .nsf-mapa-toggle{display:flex; text-decoration:none;}

/* 5.51.28: mapa siempre debajo de «¿Te lo llevas?» / «¿Echas algo en falta?» */
.nsf-mapa-despues-llevar{margin-top:24px;}
.nsf-llevar-ficha{margin-top:22px;}

/* ================================================================
   REPASO GENERAL PARA MÓVIL
   Zonas de toque más grandes, menos aire desperdiciado arriba,
   texto más legible en las etiquetas y pestañas más cómodas de
   pulsar con el dedo.
   ================================================================ */
@media (max-width:640px){
  /* La cabecera roja ya no necesita tanto aire por dentro cuando el
     ancho es reducido: se sentía como espacio perdido antes de
     llegar al buscador. */
  .nsf-hero{padding:40px 20px 58px;}

  /* Menos hueco vacío arriba de los resultados: en pantallas
     estrechas cuesta más llegar a lo importante haciendo scroll. */
  .nsf-results{padding-top:28px;}

  /* Las pestañas de tipo ganan algo de alto para que el dedo no
     falle al pulsarlas (antes se quedaban un poco justas). */
  .nsf-tab{padding:12px 18px; font-size:0.86rem;}

  /* Las etiquetas de tipo (LIBRO, VIDEOJUEGO...) eran difíciles de
     leer a este tamaño en pantallas pequeñas. */
  .nsf-tag{font-size:0.66rem; padding:4px 9px;}

  /* Tarjetas de obra: algo menos de aire lateral para aprovechar el
     ancho, manteniendo una zona de toque cómoda. */
  .nsf-obra{padding:12px 14px 12px 12px; gap:12px;}
  .nsf-obra-img{width:64px; height:64px;}
  .nsf-obra-texto h6{font-size:0.98rem;}

  /* Los botones de acción a ancho completo respiran mejor separados
     un poco más entre sí cuando se apilan. */
  .nsf-mapa-toggle{padding:11px 14px; min-height:42px;}
  .nsf-grafo-alternar{width:100%; text-align:center;}
  .nsf-grafo-panel-acciones{flex-direction:column; align-items:stretch;}
  .nsf-grafo-ver{text-align:center;}

  /* El panel de la obra elegida en el mapa, algo más compacto. */
  .nsf-grafo-panel{padding:16px 16px;}

  /* La leyenda "Cómo leer el mapa" ocupaba mucho: menos relleno. */
  .nsf-grafo-leyenda{padding:16px;}

  /* El botón "Ver el mapa completo" del final de la pantalla inicial
     queda centrado, en vez de pegado al borde izquierdo. */
  .nsf-mapa-plegable.nsf-solo-inicio{text-align:center;}

  /* Lo mismo para "Ver mapa de relaciones" (el que va debajo de
     "¿Te lo llevas?" o de "¿Echas algo en falta?"): el envoltorio
     ocupa todo el ancho sin relleno propio, así que sin esto el
     botón queda pegado al borde izquierdo. */
  .nsf-buscador .nsf-mapa-despues-llevar{text-align:center; padding:0 20px;}
  .nsf-ficha .nsf-mapa-despues-llevar{text-align:center; padding:0 20px;}

  /* Todo el contenido de la ficha destacada (roja) centrado en móvil:
     insignia, título, resumen, e iconos con Tipo/Género/Origen/
     Publicación. */
  .nsf-destacado-texto{text-align:center;}
  .nsf-buscador .nsf-destacado-desc{margin-left:auto; margin-right:auto;}
  .nsf-ficha .nsf-destacado-desc{margin-left:auto; margin-right:auto;}
  .nsf-buscador .nsf-dato,
  .nsf-ficha-publica .nsf-dato{text-align:center;}
  .nsf-ficha .nsf-dato,
  .nsf-ficha-publica .nsf-dato{text-align:center;}
  .nsf-buscador .nsf-dato-icono,
  .nsf-ficha-publica .nsf-dato-icono{
    display:inline-flex;
    justify-content:center;
    width:100%;
  }
  .nsf-ficha .nsf-dato-icono,
  .nsf-ficha-publica .nsf-dato-icono{
    display:inline-flex;
    justify-content:center;
    width:100%;
  }
}

/* ---------- Botón flotante "Volver arriba" ---------- */
.nsf-volver-arriba{
  position:fixed;
  right:16px;
  bottom:16px;
  width:48px;
  height:48px;
  border-radius:50%;
  background:var(--nsf-navy);
  color:#fff;
  border:none;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 8px 22px -6px rgba(20,28,48,0.45);
  z-index:40;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, background .14s ease;
}
.nsf-volver-arriba.nsf-visible{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.nsf-volver-arriba:hover,
.nsf-volver-arriba:focus-visible{background:var(--nsf-red);}
.nsf-volver-arriba[hidden]{display:none;}
@media (min-width:861px){
  /* En escritorio sobra: hay más contexto visible y el scroll pesa menos. */
  .nsf-volver-arriba{display:none;}
}

/* ================================================================
   REPASO PARA MÓVIL — página del mapa de relaciones
   ================================================================ */
@media (max-width:640px){
  /* Menos aire arriba y a los lados: en pantallas pequeñas ese
     espacio se nota mucho más. */
  .nsf-pagina-mapa{padding:26px 14px 44px;}

  /* El botón "Volver al buscador" de arriba: alineado con el contenido del mapa.
     Se aplica al contenedor para evitar que reglas externas del tema alteren su posición. */
  .nsf-pagina-mapa .nsf-mapa-navegacion{padding-left:28px;}
  .nsf-pagina-mapa .nsf-pie-buscador-arriba{margin:28px 0 16px 0;}
  .nsf-pagina-mapa .nsf-pie-buscador-arriba a{padding:9px 16px; font-size:0.86rem;}

  /* Título y texto de introducción, algo más ajustados. */
  .nsf-pagina-mapa .nsf-relacionados-titulo{font-size:1.35rem;}
  .nsf-pagina-mapa .nsf-relacionados-cabecera{margin-bottom:20px;}
  .nsf-pagina-mapa .nsf-relacionados-intro{font-size:0.9rem;}

  /* Los controles de zoom no tapan tanto el propio mapa. */
  .nsf-grafo-controles{top:8px; right:8px; gap:8px;}

  /* La leyenda "Cómo leer el mapa", con menos relleno lateral. */
  .nsf-grafo-leyenda{padding:16px 14px;}
  .nsf-grafo-leyenda h4{margin-bottom:12px;}
}

/* ================================================================
   FICHAS DE OBRA — MEJORA MÓVIL 5.52.6
   Ajustes específicos para las obras fijas, incluyendo fichas como
   /obras/el-combate/. No altera el comportamiento de escritorio.
   ================================================================ */
@media (max-width:640px){
  .nsf-ficha-envoltorio{
    width:100%;max-width:100%;box-sizing:border-box;
    padding:20px 12px 40px;margin:0;overflow-x:hidden;
  }
  .nsf-ficha-publica{width:100%;max-width:100%;box-sizing:border-box;}

  .nsf-ficha-buscador-igual,
  .nsf-ficha-buscador-igual .nsf-buscador,
  .nsf-ficha-buscador-igual .nsf-search-shell{
    width:100%;max-width:100%;box-sizing:border-box;
  }

  .nsf-ficha-buscador-igual,
  .nsf-ficha-buscador-igual .nsf-ficha,
  .nsf-ficha-buscador-igual .nsf-search-shell{
    width:100%;max-width:100%;box-sizing:border-box;
  }
  .nsf-ficha-buscador-igual .nsf-search-shell{padding:0;}

  .nsf-ficha-publica .nsf-destacado{
    width:100%;max-width:100%;box-sizing:border-box;
    margin-left:0;margin-right:0;overflow:hidden;border-radius:14px;
  }
  .nsf-ficha-publica .nsf-destacado-texto{
    width:100%;box-sizing:border-box;padding:22px 18px;
  }
  .nsf-ficha-publica .nsf-destacado h1{
    font-size:1.55rem;line-height:1.15;
    overflow-wrap:anywhere;word-break:normal;
  }
  .nsf-ficha-publica .nsf-destacado-desc{
    font-size:.95rem;line-height:1.55;overflow-wrap:anywhere;
  }

  .nsf-ficha-publica .nsf-datos{
    width:100%;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 14px;box-sizing:border-box;
  }
  .nsf-ficha-publica .nsf-dato{min-width:0;width:100%;}
  .nsf-ficha-publica .nsf-dato dd,
  .nsf-ficha-publica .nsf-dato dt{overflow-wrap:anywhere;}
  .nsf-ficha-publica .nsf-dato-generos{grid-column:1/-1;}

  .nsf-relacionados-cabecera{width:100%;max-width:100%;box-sizing:border-box;}
  .nsf-relacionados-titulo{font-size:1.35rem;line-height:1.2;overflow-wrap:anywhere;}
  .nsf-relacionados-intro{font-size:.9rem;line-height:1.45;}

  .nsf-tabs{
    width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;box-sizing:border-box;
  }
  .nsf-tabs::-webkit-scrollbar{display:none;}
  .nsf-tab{flex:0 0 auto;white-space:nowrap;padding:10px 14px;font-size:.8rem;}

  .nsf-lista-obras{width:100%;max-width:100%;box-sizing:border-box;}
  .nsf-obra{width:100%;max-width:100%;box-sizing:border-box;min-width:0;}
  .nsf-obra-texto{min-width:0;overflow:hidden;}
  .nsf-obra-texto h4,
  .nsf-obra-texto h6,
  .nsf-obra-meta{overflow-wrap:anywhere;}
  .nsf-obra-nota,.nsf-fuentes{max-width:100%;overflow-wrap:anywhere;}

  .nsf-llevar{width:100%;max-width:100%;box-sizing:border-box;padding:16px;}
  .nsf-llevar-botones{width:100%;box-sizing:border-box;}
  .nsf-llevar-btn{max-width:100%;box-sizing:border-box;white-space:normal;}

  .nsf-mapa-despues-llevar{width:100%;max-width:100%;box-sizing:border-box;}
  .nsf-mapa-toggle{width:auto;max-width:100%;box-sizing:border-box;white-space:normal;}

  .nsf-ficha-envoltorio img,
  .nsf-ficha-publica img,
  .nsf-ficha-envoltorio svg{max-width:100%;height:auto;}
}


/* ================================================================
   FICHAS FIJAS — DESBORDAR EL CONTENEDOR ESTRECHO DEL TEMA EN MÓVIL
   5.52.7
   Algunas plantillas de WordPress mantienen un max-width estrecho en
   el contenedor de contenido. La ficha debe ocupar prácticamente todo
   el ancho de la pantalla, igual que Tira del Hilo.
   ================================================================ */
@media (max-width:640px){
  body.single-nsf_producto .nsf-ficha-envoltorio{
    width:100vw;
    max-width:none;
    box-sizing:border-box;
    margin-left:calc(50% - 50vw);
    margin-right:0;
    padding:18px 14px 42px;
  }

  body.single-nsf_producto .nsf-ficha-publica{
    width:100%;
    max-width:none;
    margin:0;
    box-sizing:border-box;
  }

  body.single-nsf_producto .nsf-ficha-buscador-igual,
  body.single-nsf_producto .nsf-ficha-buscador-igual .nsf-buscador,
  body.single-nsf_producto .nsf-ficha-buscador-igual .nsf-search-shell{
    width:100%;
    max-width:none;
    box-sizing:border-box;
  }

  body.single-nsf_producto .nsf-ficha-buscador-igual,
  body.single-nsf_producto .nsf-ficha-buscador-igual .nsf-ficha,
  body.single-nsf_producto .nsf-ficha-buscador-igual .nsf-search-shell{
    width:100%;
    max-width:none;
    box-sizing:border-box;
  }

  body.single-nsf_producto .nsf-ficha-publica .nsf-destacado,
  body.single-nsf_producto .nsf-ficha-publica .nsf-datos,
  body.single-nsf_producto .nsf-relacionados-cabecera,
  body.single-nsf_producto .nsf-lista-obras,
  body.single-nsf_producto .nsf-llevar,
  body.single-nsf_producto .nsf-mapa-despues-llevar{
    width:100%;
    max-width:none;
    box-sizing:border-box;
  }
}


/* ---------- Foco de obra en el mapa ---------- */
/* Al seleccionar una obra, se separa visualmente del resto. El JS mueve
   suavemente el nodo al centro y abre una corona para sus referencias. */
.nsf-grafo-con-seleccion .nsf-nodo-foco circle{
  r: 18px;
  stroke:var(--nsf-navy);
  stroke-width:4px;
  filter:drop-shadow(0 4px 7px rgba(31,42,68,.24));
}
.nsf-grafo-con-seleccion .nsf-nodo-foco text{
  font-size:10px;
  fill:var(--nsf-navy);
  font-weight:700;
}
.nsf-grafo-con-seleccion .nsf-nodo-vecino circle{
  stroke:var(--nsf-mustard);
  stroke-width:2.5px;
}
.nsf-grafo-con-seleccion .nsf-nodo-vecino{
  opacity:1;
}
.nsf-grafo-con-seleccion .nsf-nodo-apagado{
  opacity:.12;
}
.nsf-grafo-con-seleccion .nsf-arista-activa{
  stroke-width:2.4;
  stroke-opacity:1;
}

/* Taxonomía de géneros: el primer distintivo es el género principal. */
.nsf-obra-genero .nsf-genero-principal{font-weight:700;}
.nsf-obra-genero .nsf-genero-subgenero{opacity:.78;}

/* Jerarquía visual de la taxonomía en la ficha: el género principal manda. */
.nsf-taxonomia-publica .nsf-taxonomia-subgeneros{margin-top:7px;}

/* ADN público de las fichas */
.nsf-adn-publico{margin:18px 0 0;padding-top:16px;border-top:1px solid #ececec;}
.nsf-adn-publico h3{margin:0 0 12px;font-size:15px;}
.nsf-adn-publico-fila{margin:0 0 11px;}
.nsf-adn-publico-fila>strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#777;margin-bottom:5px;}
.nsf-adn-chips{display:flex;flex-wrap:wrap;gap:5px;}
.nsf-adn-chips span{display:inline-block;padding:4px 8px;border-radius:999px;background:#f1f1f1;font-size:12px;}
.nsf-adn-chips .nsf-adn-chip-link{display:inline-block;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:12px;text-decoration:none;border:1px dashed rgba(255,255,255,.48);}
.nsf-adn-chips .nsf-adn-chip-link:hover{text-decoration:underline;}

/* ADN bajo demanda: la información avanzada no ocupa espacio hasta que el
   lector la solicita. En móvil se comporta como un acordeón dentro de la ficha. */
.nsf-adn-publico{margin:16px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.16);}
.nsf-adn-inline{border-top:0;padding-top:10px;margin-top:12px;}
.nsf-adn-toggle{
  display:inline-flex;align-items:center;align-self:flex-start;gap:8px;justify-content:flex-start;
  min-height:36px;box-sizing:border-box;
  border:1px solid rgba(255,255,255,.24);border-radius:8px;background:rgba(255,255,255,.08);
  color:inherit;padding:8px 14px;cursor:pointer;font:inherit;text-align:left;
}
.nsf-adn-toggle:hover{background:rgba(255,255,255,.24); border-color:#fff;}
.nsf-adn-toggle-icon{font-size:13px;line-height:1;}
.nsf-adn-toggle-texto{font-size:.7rem;font-weight:700;}
.nsf-adn-toggle-flecha{margin-left:4px;font-size:.9rem;line-height:1;opacity:.8;}
.nsf-adn-toggle-abierto .nsf-adn-toggle-flecha{transform:rotate(45deg);}
.nsf-adn-panel{margin-top:10px;padding:12px;border-radius:10px;background:rgba(255,255,255,.06);}
.nsf-adn-publico-fila{margin:0 0 12px;}

/* ---------- Tráiler incrustado bajo demanda ---------- */
.nsf-trailer-publico{margin:18px 0 0;}
.nsf-trailer-toggle{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid rgba(255,255,255,.24);border-radius:8px;background:rgba(255,255,255,.08);
  color:inherit;padding:6px 9px;cursor:pointer;font:inherit;text-align:left;
  font-size:.7rem;font-weight:700;
}
.nsf-trailer-toggle:hover{background:rgba(255,255,255,.24); border-color:#fff;}
.nsf-trailer-toggle-icon{font-size:11px;line-height:1;}
/* Vídeo con proporción 16:9 que se ajusta al ancho disponible. */
.nsf-trailer-envoltorio{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  margin-top:10px;
  border-radius:10px;
  overflow:hidden;
  background:#000;
}
.nsf-trailer-envoltorio iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.nsf-adn-publico-fila:last-child{margin-bottom:0;}
.nsf-adn-subgeneros{margin-top:9px;}
.nsf-adn-publico-fila>strong{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:rgba(255,255,255,.62);margin-bottom:6px;}
.nsf-adn-chips span{display:inline-block;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.12);font-size:12px;color:#fff;}
.nsf-adn-cargando,.nsf-adn-error,.nsf-adn-vacio{margin:2px 0;font-size:.82rem;color:rgba(255,255,255,.72);}


/* Los valores navegables del ADN deben parecer claramente interactivos. */
.nsf-adn-chips a.nsf-adn-chip-link{cursor:pointer;pointer-events:auto;}
.nsf-adn-chips a.nsf-adn-chip-link:hover,
.nsf-adn-chips a.nsf-adn-chip-link:focus-visible{cursor:pointer;}

/* Los valores navegables del ADN son enlaces reales y siempre deben ser pulsables. */
.nsf-adn-chips a.nsf-adn-chip-link{cursor:pointer;pointer-events:auto;}

/* En tarjetas claras del catálogo/buscador, el componente adopta el fondo
   de la tarjeta en vez del de la ficha destacada. */
.nsf-obra .nsf-adn-publico{border-top:1px solid #ececec;color:inherit;}
.nsf-obra .nsf-adn-toggle{border-color:#ddd;background:#fafafa;color:inherit;}
.nsf-obra .nsf-adn-toggle:hover{background:#f3f3f3;}
.nsf-obra .nsf-adn-panel{background:#fafafa;}
.nsf-obra .nsf-adn-publico-fila>strong{color:#777;}
.nsf-obra .nsf-adn-chips span{background:#eee;color:#333;}
.nsf-obra .nsf-adn-chips .nsf-adn-chip-link{background:#f1f1f1;color:inherit;border:1px dashed #cfcfcf;}
.nsf-obra .nsf-adn-cargando,.nsf-obra .nsf-adn-error,.nsf-obra .nsf-adn-vacio{color:#666;}

@media (max-width:700px){
  .nsf-adn-toggle{width:100%;padding:11px 12px;min-height:44px;}
  .nsf-adn-panel{padding:11px;}
}

/* Taxonomía pública: género dominante + subgéneros, con jerarquía visual y navegación. */
.nsf-taxonomia-publica{margin-top:10px;}
.nsf-taxonomia-link{text-decoration:none;transition:background .14s ease,color .14s ease,transform .14s ease;}
.nsf-taxonomia-publica .nsf-genero-principal:hover,
.nsf-taxonomia-publica .nsf-genero-principal:focus-visible{
  opacity:.78;
}
.nsf-taxonomia-subgeneros{margin-top:7px;display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;}
.nsf-taxonomia-etiqueta{
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  opacity:.58;
}
.nsf-taxonomia-chips{display:flex;flex-wrap:wrap;gap:5px;}
.nsf-taxonomia-chips .nsf-genero-subgenero{
  display:inline-block;
  padding:3px 8px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:999px;
  font-size:.76rem;
  line-height:1.25;
  color:inherit;
  background:rgba(0,0,0,.025);
}
.nsf-taxonomia-chips .nsf-genero-subgenero:hover,
.nsf-taxonomia-chips .nsf-genero-subgenero:focus-visible{
  background:var(--nsf-cream);
  color:var(--nsf-navy);
  border-color:rgba(0,0,0,.18);
  transform:translateY(-1px);
}
.nsf-destacado-texto .nsf-taxonomia-chips .nsf-genero-subgenero{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.08);}
.nsf-destacado-texto .nsf-taxonomia-chips .nsf-genero-subgenero:hover,
.nsf-destacado-texto .nsf-taxonomia-chips .nsf-genero-subgenero:focus-visible{background:rgba(255,255,255,.18);color:inherit;}
.nsf-destacado-texto .nsf-adn-chips .nsf-adn-chip-link{background:rgba(255,255,255,.12);color:#fff;border:1px dashed rgba(255,255,255,.48);}
.nsf-destacado-texto .nsf-adn-chips .nsf-adn-chip-link:hover,.nsf-destacado-texto .nsf-adn-chips .nsf-adn-chip-link:focus-visible{background:rgba(255,255,255,.20);color:#fff;border-color:rgba(255,255,255,.75);text-decoration:none;}

@media (max-width:700px){
  .nsf-taxonomia-subgeneros{align-items:flex-start;flex-direction:column;gap:5px;}
}


/* v5.53.9 — Jerarquía clara del género principal en la ficha. */
.nsf-taxonomia-publica .nsf-genero-principal-bloque{
  margin-top:12px;
  padding:9px 0 10px 12px;
  border-left:3px solid var(--nsf-mustard);
}
.nsf-taxonomia-publica .nsf-genero-principal-etiqueta{
  display:block;
  margin:0 0 3px;
  font-size:.64rem;
  line-height:1.2;
  letter-spacing:.10em;
  opacity:.68;
}
.nsf-taxonomia-publica .nsf-genero-principal{
  display:inline-block;
  margin:0;
  font-size:1.28rem;
  line-height:1.2;
  font-weight:900;
  letter-spacing:-.01em;
  border-bottom:2px solid currentColor;
  text-underline-offset:4px;
}
.nsf-destacado-texto .nsf-taxonomia-publica .nsf-genero-principal-bloque{
  border-left-color:rgba(255,255,255,.78);
}
.nsf-destacado-texto .nsf-taxonomia-publica .nsf-genero-principal-etiqueta{
  color:#fff;
  opacity:.78;
}
@media (max-width:700px){
  .nsf-taxonomia-publica .nsf-genero-principal-bloque{padding:8px 0 9px 10px;}
  .nsf-taxonomia-publica .nsf-genero-principal{font-size:1.15rem;}
}


/* v5.54.0 — Género principal claramente prioritario en la ficha. */
.nsf-destacado-texto .nsf-taxonomia-destacada{
  margin:16px 0 4px;
  padding:12px 14px 13px;
  border:1px solid rgba(255,255,255,.24);
  border-left:5px solid var(--nsf-mustard);
  border-radius:10px;
  background:rgba(255,255,255,.075);
}
.nsf-destacado-texto .nsf-taxonomia-destacada .nsf-genero-principal-bloque{
  margin:0; padding:0; border:0;
}
.nsf-destacado-texto .nsf-taxonomia-destacada .nsf-genero-principal-etiqueta{
  display:block; margin:0 0 2px;
  color:#fff; opacity:.72;
  font-size:.62rem; font-weight:800;
  letter-spacing:.11em; text-transform:uppercase;
}
.nsf-destacado-texto .nsf-taxonomia-destacada .nsf-genero-principal{
  display:inline-block; margin:0;
  color:#fff !important;
  font-size:1.5rem !important;
  line-height:1.15;
  font-weight:900 !important;
  letter-spacing:-.015em;
  border:0;
}
.nsf-destacado-texto .nsf-taxonomia-destacada .nsf-genero-principal:hover{opacity:.86;}
.nsf-destacado-texto .nsf-taxonomia-destacada .nsf-taxonomia-subgeneros{
  margin-top:9px; padding-top:8px;
  border-top:1px solid rgba(255,255,255,.14);
}
.nsf-destacado-texto .nsf-taxonomia-destacada .nsf-taxonomia-subgeneros > .nsf-taxonomia-etiqueta{
  color:#fff; opacity:.6;
}
@media (max-width:700px){
  .nsf-destacado-texto .nsf-taxonomia-destacada{padding:11px 12px 12px;}
  .nsf-destacado-texto .nsf-taxonomia-destacada .nsf-genero-principal{font-size:1.32rem !important;}
}


/* v5.54.9 — Los títulos de los datos de la ficha deben conservar el blanco sobre la tarjeta roja.
   Algunos estilos del tema aplican el color de marca a los <dt>; lo anulamos aquí. */
.nsf-buscador .nsf-dato dt,
.nsf-ficha-publica .nsf-dato dt{
  color:#fff !important;
}
.nsf-ficha .nsf-dato dt,
.nsf-ficha-publica .nsf-dato dt{
  color:#fff !important;
}
.nsf-buscador .nsf-dato dd,
.nsf-ficha-publica .nsf-dato dd,
.nsf-buscador .nsf-dato dd a,
.nsf-ficha-publica .nsf-dato dd a{
  color:#fff !important;
}
.nsf-ficha .nsf-dato dd,
.nsf-ficha-publica .nsf-dato dd,
.nsf-ficha .nsf-dato dd a,
.nsf-ficha-publica .nsf-dato dd a{
  color:#fff !important;
}
.nsf-buscador .nsf-dato-icono,
.nsf-ficha-publica .nsf-dato-icono{
  color:rgba(255,255,255,.9) !important;
}
.nsf-ficha .nsf-dato-icono,
.nsf-ficha-publica .nsf-dato-icono{
  color:rgba(255,255,255,.9) !important;
}



/* v5.54.10 — La ficha destacada se muestra sobre fondo rojo. Algunos estilos
   del tema pueden aplicar su color de marca a los dt/dd de la ficha. Estos
   selectores, con especificidad alta y !important, fuerzan el contraste. */
html body article.nsf-buscador.nsf-ficha-publica .nsf-datos .nsf-dato dt,
html body article.nsf-buscador.nsf-ficha-publica .nsf-datos .nsf-dato-generos dt{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
}
html body article.nsf-ficha.nsf-ficha-publica .nsf-datos .nsf-dato dt,
html body article.nsf-ficha.nsf-ficha-publica .nsf-datos .nsf-dato-generos dt{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
}
html body article.nsf-buscador.nsf-ficha-publica .nsf-datos .nsf-dato dd,
html body article.nsf-buscador.nsf-ficha-publica .nsf-datos .nsf-dato dd a,
html body article.nsf-buscador.nsf-ficha-publica .nsf-datos .nsf-dato-generos dd,
html body article.nsf-buscador.nsf-ficha-publica .nsf-datos .nsf-dato-generos dd a{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
}
html body article.nsf-ficha.nsf-ficha-publica .nsf-datos .nsf-dato dd,
html body article.nsf-ficha.nsf-ficha-publica .nsf-datos .nsf-dato dd a,
html body article.nsf-ficha.nsf-ficha-publica .nsf-datos .nsf-dato-generos dd,
html body article.nsf-ficha.nsf-ficha-publica .nsf-datos .nsf-dato-generos dd a{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
}
html body article.nsf-buscador.nsf-ficha-publica .nsf-datos .nsf-dato-icono,
html body article.nsf-buscador.nsf-ficha-publica .nsf-datos .nsf-dato-icono svg{
  color:#fff !important;
  stroke:#fff !important;
  opacity:1 !important;
}
html body article.nsf-ficha.nsf-ficha-publica .nsf-datos .nsf-dato-icono,
html body article.nsf-ficha.nsf-ficha-publica .nsf-datos .nsf-dato-icono svg{
  color:#fff !important;
  stroke:#fff !important;
  opacity:1 !important;
}

/* v5.54.11 — El título de la obra en la ficha destacada debe ser blanco.
   El tema estaba imponiendo su color de enlace/encabezado sobre el h3. */
html body article.nsf-buscador.nsf-ficha-publica .nsf-destacado .nsf-destacado-texto h3,
html body article.nsf-buscador.nsf-ficha-publica .nsf-destacado .nsf-destacado-texto h3 a,
html body .nsf-buscador .nsf-destacado .nsf-destacado-texto h3 {
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
}
html body article.nsf-ficha.nsf-ficha-publica .nsf-destacado .nsf-destacado-texto h3,
html body article.nsf-ficha.nsf-ficha-publica .nsf-destacado .nsf-destacado-texto h3 a,
html body .nsf-ficha .nsf-destacado .nsf-destacado-texto h3 {
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
}


/* ================================================================
   MÓVIL — CONTENIDO CASI A BORDE
   5.54.13
   En pantallas estrechas NSF aprovecha prácticamente todo el ancho
   disponible. Se conservan solo 6px de margen visual para que la
   interfaz respire sin volver a verse estrecha.
   ================================================================ */
@media (max-width:640px){
  .nsf-buscador{
    width:100vw;
    max-width:none;
    margin-left:calc(50% - 50vw);
    margin-right:0;
    box-sizing:border-box;
    overflow-x:hidden;
  }
  .nsf-ficha{
    width:100vw;
    max-width:none;
    margin-left:calc(50% - 50vw);
    margin-right:0;
    box-sizing:border-box;
    overflow-x:hidden;
  }

  .nsf-buscador .nsf-hero{
    margin-left:6px;
    margin-right:6px;
    padding-left:10px;
    padding-right:10px;
    border-radius:12px;
  }

  .nsf-ficha .nsf-hero{
    margin-left:6px;
    margin-right:6px;
    padding-left:10px;
    padding-right:10px;
    border-radius:12px;
  }

  .nsf-buscador .nsf-search-shell{
    max-width:none;
    width:100%;
    padding-left:6px;
    padding-right:6px;
  }

  .nsf-ficha .nsf-search-shell{
    max-width:none;
    width:100%;
    padding-left:6px;
    padding-right:6px;
  }

  .nsf-buscador .nsf-results{
    max-width:none;
    width:100%;
    padding-left:6px;
    padding-right:6px;
  }

  .nsf-ficha .nsf-results{
    max-width:none;
    width:100%;
    padding-left:6px;
    padding-right:6px;
  }

  .nsf-buscador .nsf-filtros,
  .nsf-buscador .nsf-tabs,
  .nsf-buscador .nsf-lista-obras,
  .nsf-buscador .nsf-relacionados-cabecera,
  .nsf-buscador .nsf-llevar,
  .nsf-buscador .nsf-mapa-despues-llevar{
    max-width:none;
    width:100%;
    box-sizing:border-box;
  }

  .nsf-ficha .nsf-filtros,
  .nsf-ficha .nsf-tabs,
  .nsf-ficha .nsf-lista-obras,
  .nsf-ficha .nsf-relacionados-cabecera,
  .nsf-ficha .nsf-llevar,
  .nsf-ficha .nsf-mapa-despues-llevar{
    max-width:none;
    width:100%;
    box-sizing:border-box;
  }

  .nsf-buscador .nsf-obra{
    border-radius:10px;
  }

  .nsf-ficha .nsf-obra{
    border-radius:10px;
  }
}

/* ---------- 5.54.14: buscador visible sobre cabecera blanca ---------- */
/* ---------- 5.54.15: buscadores visibles sobre fondo blanco ---------- */
.nsf-buscador .nsf-search-box,
.nsf-ficha-buscador-igual .nsf-search-box{
  border:2px dotted #c51f3a !important;
  box-shadow:none !important;
}
.nsf-ficha .nsf-search-box,
.nsf-ficha-buscador-igual .nsf-search-box{
  border:2px dotted #c51f3a !important;
  box-shadow:none !important;
}
.nsf-buscador .nsf-search-box:focus-within,
.nsf-ficha-buscador-igual .nsf-search-box:focus-within{
  border:2px solid #c51f3a !important;
  box-shadow:0 0 0 2px rgba(197,31,58,.08) !important;
}
.nsf-ficha .nsf-search-box:focus-within,
.nsf-ficha-buscador-igual .nsf-search-box:focus-within{
  border:2px solid #c51f3a !important;
  box-shadow:0 0 0 2px rgba(197,31,58,.08) !important;
}


/* El tráiler pertenece al bloque inmediatamente posterior al resumen. */
html body article.nsf-buscador.nsf-ficha-publica .nsf-trailer-despues-resumen {
  order:initial !important;
}
html body article.nsf-ficha.nsf-ficha-publica .nsf-trailer-despues-resumen {
  order:initial !important;
}

/* v5.56.8 — Ficha AJAX: catálogo con icono catálogo + tráiler justo tras el resumen. */
.nsf-ficha-publica .nsf-destacado-cta{
  display:inline-flex !important;
  align-items:center !important;
  align-self:flex-start !important;
  justify-content:flex-start !important;
  width:auto !important;
  max-width:360px !important;
  min-height:36px !important;
  box-sizing:border-box !important;
  gap:8px !important;
  margin:12px 0 0 !important;
  padding:8px 14px !important;
  border:1px solid rgba(255,255,255,.24) !important;
  border-radius:8px !important;
  background:rgba(255,255,255,.08) !important;
  color:#fff !important;
  text-decoration:none !important;
  font-size:.7rem !important;
  font-weight:700 !important;
  line-height:1.25 !important;
}
.nsf-ficha-publica .nsf-destacado-cta-texto{flex:0 1 auto !important; min-width:0 !important; color:#fff !important;}
.nsf-ficha-publica .nsf-destacado-cta-icono{width:16px !important; height:16px !important; flex:0 0 16px !important;}
.nsf-ficha-publica .nsf-destacado-cta-externo{width:14px !important; height:14px !important; flex:0 0 14px !important;}
.nsf-ficha-publica .nsf-trailer-despues-resumen{margin:18px 0 0 !important;}

/* v5.56.10 — El icono de catálogo se fuerza también en el SVG generado por AJAX. */
html body .nsf-ficha-publica .nsf-destacado-cta .nsf-destacado-cta-catalogo,
html body .nsf-buscador .nsf-destacado-cta .nsf-destacado-cta-catalogo {
  display:block !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  flex:0 0 24px !important;
  visibility:visible !important;
  opacity:1 !important;
  color:#fff !important;
  stroke:#fff !important;
  fill:none !important;
}
html body .nsf-ficha-publica .nsf-destacado-cta .nsf-destacado-cta-catalogo,
html body .nsf-ficha .nsf-destacado-cta .nsf-destacado-cta-catalogo {
  display:block !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  flex:0 0 24px !important;
  visibility:visible !important;
  opacity:1 !important;
  color:#fff !important;
  stroke:#fff !important;
  fill:none !important;
}
html body .nsf-ficha-publica .nsf-destacado-cta .nsf-destacado-cta-catalogo rect,
html body .nsf-ficha-publica .nsf-destacado-cta .nsf-destacado-cta-catalogo path,
html body .nsf-buscador .nsf-destacado-cta .nsf-destacado-cta-catalogo rect,
html body .nsf-buscador .nsf-destacado-cta .nsf-destacado-cta-catalogo path {
  stroke:#fff !important;
  fill:none !important;
}
html body .nsf-ficha-publica .nsf-destacado-cta .nsf-destacado-cta-catalogo rect,
html body .nsf-ficha-publica .nsf-destacado-cta .nsf-destacado-cta-catalogo path,
html body .nsf-ficha .nsf-destacado-cta .nsf-destacado-cta-catalogo rect,
html body .nsf-ficha .nsf-destacado-cta .nsf-destacado-cta-catalogo path {
  stroke:#fff !important;
  fill:none !important;
}


/* NSF 5.56.23 — accesibilidad y responsive */
.nsf-seccion-plegable:focus-visible{
  outline:2px solid var(--nsf-mustard);
  outline-offset:3px;
  border-radius:4px;
}
.nsf-card-explorar:focus-visible,
.nsf-card-hilo:focus-visible,
.nsf-card-ver:focus-visible,
.nsf-parecido:focus-visible,
.nsf-obra-pulsable:focus-visible{
  outline:2px solid var(--nsf-mustard);
  outline-offset:3px;
}
.nsf-destacado-cta:focus-visible,
.nsf-adn-toggle:focus-visible,
.nsf-trailer-toggle:focus-visible,
.nsf-zoom:focus-visible,
.nsf-compartir:focus-visible{
  outline:2px solid var(--nsf-mustard);
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
  .nsf-hilos, .nsf-hilos *{
    scroll-behavior:auto !important;
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}


/* NSF 5.56.23 — revisión final de interacción móvil */
@media (max-width:700px){
  /* Zonas táctiles mínimas para los controles principales de la ficha. */
  .nsf-ficha-publica .nsf-adn-toggle,
  .nsf-ficha-publica .nsf-trailer-toggle,
  .nsf-ficha-publica .nsf-destacado-cta,
  .nsf-ficha-publica .nsf-compartir,
  .nsf-ficha-publica .nsf-zoom{
    min-height:44px;
    box-sizing:border-box;
  }

  /* Evita que títulos, URLs o etiquetas largas creen desbordamientos. */
  .nsf-ficha-publica h1,
  .nsf-ficha-publica h2,
  .nsf-ficha-publica h3,
  .nsf-ficha-publica h4,
  .nsf-ficha-publica a,
  .nsf-ficha-publica button,
  .nsf-ficha-publica .nsf-dato dd{
    overflow-wrap:anywhere;
  }

  /* El buscador y la ficha siguen aprovechando el ancho móvil sin crear
     un segundo scroll horizontal por redondeos/subpíxeles del tema. */
  .nsf-buscador,
  body.single-nsf_producto .nsf-ficha-envoltorio{
    max-width:100vw;
  }
  .nsf-ficha,
  body.single-nsf_producto .nsf-ficha-envoltorio{
    max-width:100vw;
  }
}

@media (max-width:380px){
  /* En móviles muy estrechos, los controles compactos ocupan una fila
     completa para que no queden objetivos táctiles demasiado pequeños. */
  .nsf-ficha-publica .nsf-compartir{
    padding:9px 12px;
  }
}


/* NSF 5.56.34 — cuando no existe catálogo, el contenedor deja de usar la
   cuadrícula de dos columnas y el ADN ocupa toda la fila. Esto evita que
   reglas del tema o de versiones anteriores puedan dejarlo a media anchura. */
@media (max-width:700px){
  .nsf-ficha-publica .nsf-ficha-acciones-principales.nsf-solo-adn{
    display:block !important;
    width:100% !important;
    grid-template-columns:none !important;
  }
  .nsf-ficha-publica .nsf-ficha-acciones-principales.nsf-solo-adn > .nsf-adn-publico{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    grid-column:auto !important;
    grid-row:auto !important;
  }
  .nsf-ficha-publica .nsf-ficha-acciones-principales.nsf-solo-adn > .nsf-adn-publico .nsf-adn-toggle{
    display:flex !important;
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
  }
}

/* NSF 5.56.33 — ADN ocupa toda la fila cuando es el único elemento de acciones.
   El selector :only-child evita depender exclusivamente de la clase nsf-solo-adn. */
/* NSF 5.56.28 — Catálogo y ADN en una fila en móvil.
   El botón ADN ocupa media fila, pero su panel desplegado pertenece
   visualmente a toda la zona de acciones y vuelve a participar en el flujo
   mediante padding calculado por JS. */
.nsf-ficha-acciones-principales{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:12px;
  width:100%;
  margin-top:12px;
}
.nsf-ficha-acciones-principales > .nsf-destacado-cta,
.nsf-ficha-acciones-principales > .nsf-adn-publico{
  min-width:0;
  margin:0 !important;
  padding-top:0 !important;
  border-top:none !important;
}
/* Mismas medidas exactas para los dos botones: altura FIJA (no solo
   mínima), para que no dependan de que el contenido de cada uno
   ocupe exactamente lo mismo. */
.nsf-ficha-acciones-principales > .nsf-destacado-cta,
.nsf-ficha-acciones-principales > .nsf-adn-publico > .nsf-adn-toggle{
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  padding:0 14px !important;
  border-width:1px !important;
  box-sizing:border-box !important;
  line-height:1.25 !important;
}
/* El contenedor de ADN va del tamaño de su botón mientras está
   cerrado (para que quepa al lado del otro botón), y pasa a ocupar
   toda la fila en cuanto se despliega el panel, que necesita sitio. */
.nsf-ficha-acciones-principales > .nsf-adn-publico{width:auto;}
.nsf-ficha-acciones-principales > .nsf-adn-publico:has(.nsf-adn-toggle-abierto){
  width:100%;
  flex-basis:100%;
}

@media (max-width:700px){
  .nsf-ficha-acciones-principales{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
    align-items:start;
    position:relative;
    padding-bottom:0;
  }

  .nsf-ficha-publica .nsf-ficha-acciones-principales > .nsf-destacado-cta,
  .nsf-ficha-publica .nsf-ficha-acciones-principales .nsf-adn-toggle{
    width:100% !important;
    min-width:0 !important;
    min-height:58px !important;
    height:58px !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:10px 8px !important;
    justify-content:center !important;
    text-align:center !important;
  }

  /* El wrapper ya no intenta contener el panel a media anchura. */
  /* Si la obra no tiene enlace de catálogo, el ADN ocupa toda la fila. */
  .nsf-ficha-publica .nsf-ficha-acciones-principales.nsf-solo-adn > .nsf-adn-publico,
  .nsf-ficha-publica .nsf-ficha-acciones-principales > .nsf-adn-publico:only-child{
    grid-column:1 / -1 !important;
  }

  .nsf-ficha-publica .nsf-ficha-acciones-principales > .nsf-adn-publico{
    display:block !important;
    grid-column:2;
    grid-row:1;
    width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    position:static !important;
    overflow:visible !important;
  }

  .nsf-ficha-publica .nsf-ficha-acciones-principales.nsf-solo-adn > .nsf-adn-publico,
  .nsf-ficha-publica .nsf-ficha-acciones-principales > .nsf-adn-publico:only-child{
    grid-column:1 / -1 !important;
  }
  .nsf-ficha-publica .nsf-ficha-acciones-principales.nsf-solo-adn .nsf-adn-toggle,
  .nsf-ficha-publica .nsf-ficha-acciones-principales > .nsf-adn-publico:only-child .nsf-adn-toggle{
    width:100% !important;
  }

  .nsf-ficha-publica .nsf-ficha-acciones-principales .nsf-adn-toggle{
    display:flex !important;
    width:100% !important;
    flex:none !important;
  }

  .nsf-ficha-acciones-principales .nsf-destacado-cta-texto,
  .nsf-ficha-acciones-principales .nsf-adn-toggle-texto{
    min-width:0;
    overflow-wrap:anywhere;
    font-size:.78rem !important;
    line-height:1.25 !important;
  }
  .nsf-ficha-acciones-principales .nsf-adn-toggle-icon{
    font-size:16px !important;
    line-height:1 !important;
  }
  .nsf-ficha-acciones-principales .nsf-adn-toggle-flecha{
    font-size:1.05rem !important;
    margin-left:5px !important;
  }
  .nsf-ficha-acciones-principales .nsf-destacado-cta-icono{
    width:22px !important;
    height:22px !important;
    flex:0 0 22px !important;
  }
  .nsf-ficha-acciones-principales .nsf-destacado-cta-externo{
    width:21px !important;
    height:21px !important;
    flex:0 0 21px !important;
  }

  /* Al abrir ADN, el JS añade la altura real del panel al flujo del
     contenedor. El panel se posiciona respecto a toda la fila de acciones,
     no respecto a la media columna del botón. */
  .nsf-ficha-publica .nsf-ficha-acciones-principales .nsf-adn-panel{
    position:absolute !important;
    top:68px !important;
    left:0 !important;
    right:0 !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
    z-index:20 !important;
  }
  .nsf-ficha-publica .nsf-ficha-acciones-principales .nsf-adn-panel[hidden]{
    display:none !important;
  }
}


/* NSF 5.56.36 — ADN siempre se abre en un modal, también en escritorio. */
.nsf-adn-modal{
  display:block;
  position:fixed;
  inset:0;
  z-index:999999;
}
.nsf-adn-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.58);
  backdrop-filter:blur(2px);
}
.nsf-adn-modal-dialog{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(760px,calc(100vw - 32px));
  max-height:min(82vh,760px);
  overflow:auto;
  box-sizing:border-box;
  background:#fff;
  color:#222;
  border-radius:14px;
  box-shadow:0 18px 50px rgba(0,0,0,.28);
  padding:0 18px 18px;
  overscroll-behavior:contain;
}
.nsf-adn-modal-cabecera{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 -18px 14px;
  padding:14px 18px;
  background:#fff;
  border-bottom:1px solid #ececec;
}
.nsf-adn-modal-cabecera strong{font-size:17px;color:#222;}
.nsf-adn-modal-cerrar{
  width:40px;
  height:40px;
  flex:0 0 40px;
  padding:0;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #ddd;
  border-radius:50%;
  background:#fff;
  color:#555;
  font-size:24px;
  line-height:1;
  font-family:inherit;
  cursor:pointer;
}
.nsf-adn-modal-cerrar:hover,
.nsf-adn-modal-cerrar:focus-visible{
  background:#f5f5f5;
  border-color:#bbb;
  color:#222;
}
.nsf-adn-modal .nsf-adn-panel{
  position:static !important;
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 2px 4px !important;
  background:#fff !important;
  color:#222 !important;
}
.nsf-adn-modal .nsf-adn-publico-fila>strong{color:#666 !important;}
.nsf-adn-modal .nsf-adn-chips span{background:#f1f1f1 !important;color:#333 !important;}
.nsf-adn-modal .nsf-adn-chips .nsf-adn-chip-link{
  background:#f7f7f7 !important;
  color:#333 !important;
  border-color:#cfcfcf !important;
}
body.nsf-adn-modal-abierto{overflow:hidden;}
.nsf-adn-panel-placeholder{display:none !important;}

/* En escritorio el catálogo no necesita ocupar toda la ficha. */
@media (min-width:701px){
  .nsf-ficha-publica .nsf-ficha-acciones-principales > .nsf-destacado-cta{
    width:auto !important;
    max-width:360px !important;
    align-self:flex-start !important;
  }
}


@media (max-width:700px){
  .nsf-adn-modal-dialog{
    left:10px;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    width:auto;
    max-height:min(82vh,680px);
    padding:0 14px 14px;
  }
  .nsf-adn-modal-cabecera{
    margin:0 -14px 12px;
    padding:12px 14px;
  }
  .nsf-adn-modal-cabecera strong{font-size:15px;}
  .nsf-adn-modal-cerrar{width:38px;height:38px;flex-basis:38px;}
}

/* NSF 5.56.35 — si el bloque de acciones solo contiene ADN, no usamos
   la cuadrícula de dos columnas. Se detecta por la estructura real del DOM,
   no por una clase generada por PHP/JS. */
@media (max-width:700px){
  .nsf-ficha-publica .nsf-ficha-acciones-principales:not(:has(> .nsf-destacado-cta)){
    display:block !important;
    width:100% !important;
    grid-template-columns:none !important;
  }
  .nsf-ficha-publica .nsf-ficha-acciones-principales:not(:has(> .nsf-destacado-cta)) > .nsf-adn-publico{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    grid-column:auto !important;
    grid-row:auto !important;
    margin:0 !important;
  }
  .nsf-ficha-publica .nsf-ficha-acciones-principales:not(:has(> .nsf-destacado-cta)) > .nsf-adn-publico .nsf-adn-toggle{
    display:flex !important;
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
  }
}

/* Resumen fino y discreto, integrado con el resto del índice. */
.nsf-buscador .nsf-resumen-catalogo{
  margin:22px auto 10px;
  padding:0;
  max-width:100%;
  border:0 !important;
  background:transparent;
  text-align:center;
}
.nsf-ficha .nsf-resumen-catalogo{
  margin:22px auto 10px;
  padding:0;
  max-width:100%;
  border:0 !important;
  background:transparent;
  text-align:center;
}
.nsf-buscador .nsf-resumen-catalogo-linea{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:8px;
  flex-wrap:nowrap;
  white-space:nowrap;
  line-height:1.2;
}
.nsf-ficha .nsf-resumen-catalogo-linea{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:8px;
  flex-wrap:nowrap;
  white-space:nowrap;
  line-height:1.2;
}
.nsf-buscador .nsf-resumen-catalogo-titulo{
  margin:0;
  font-size:.88rem;
  font-weight:600;
  color:inherit;
}
.nsf-ficha .nsf-resumen-catalogo-titulo{
  margin:0;
  font-size:.88rem;
  font-weight:600;
  color:inherit;
}
.nsf-buscador .nsf-resumen-catalogo-separador{
  color:inherit;
  opacity:.45;
}
.nsf-ficha .nsf-resumen-catalogo-separador{
  color:inherit;
  opacity:.45;
}
.nsf-buscador .nsf-resumen-catalogo-datos{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:14px;
}
.nsf-ficha .nsf-resumen-catalogo-datos{
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:14px;
}
.nsf-buscador .nsf-resumen-catalogo-dato{
  display:flex;
  align-items:baseline;
  gap:5px;
  white-space:nowrap;
}
.nsf-ficha .nsf-resumen-catalogo-dato{
  display:flex;
  align-items:baseline;
  gap:5px;
  white-space:nowrap;
}
.nsf-buscador .nsf-resumen-catalogo-dato strong{
  font-size:.95rem;
  line-height:1;
  font-weight:600;
  color:inherit;
}
.nsf-ficha .nsf-resumen-catalogo-dato strong{
  font-size:.95rem;
  line-height:1;
  font-weight:600;
  color:inherit;
}
.nsf-buscador .nsf-resumen-catalogo-dato span{
  font-size:.82rem;
  color:inherit;
}
.nsf-ficha .nsf-resumen-catalogo-dato span{
  font-size:.82rem;
  color:inherit;
}
.nsf-buscador .nsf-resumen-catalogo-obras{
  display:inline-flex;
  flex-direction:row !important;
  align-items:baseline;
  justify-content:flex-start;
  gap:5px;
  min-width:0 !important;
  padding:0 !important;
  border:0 !important;
  border-bottom:0 !important;
  border-radius:0;
  background:transparent !important;
  color:inherit !important;
  text-decoration:none !important;
  transform:none !important;
  transition:color .14s ease;
}
.nsf-ficha .nsf-resumen-catalogo-obras{
  display:inline-flex;
  flex-direction:row !important;
  align-items:baseline;
  justify-content:flex-start;
  gap:5px;
  min-width:0 !important;
  padding:0 !important;
  border:0 !important;
  border-bottom:0 !important;
  border-radius:0;
  background:transparent !important;
  color:inherit !important;
  text-decoration:none !important;
  transform:none !important;
  transition:color .14s ease;
}
.nsf-buscador .nsf-resumen-catalogo-obras strong,
.nsf-buscador .nsf-resumen-catalogo-obras span{color:inherit;}
.nsf-ficha .nsf-resumen-catalogo-obras strong,
.nsf-ficha .nsf-resumen-catalogo-obras span{color:inherit;}
.nsf-buscador .nsf-resumen-catalogo-obras:hover,
.nsf-buscador .nsf-resumen-catalogo-obras:focus-visible{
  color:#c97a7a !important;
  border:0 !important;
  border-bottom:0 !important;
  background:transparent !important;
}
.nsf-ficha .nsf-resumen-catalogo-obras:hover,
.nsf-ficha .nsf-resumen-catalogo-obras:focus-visible{
  color:#c97a7a !important;
  border:0 !important;
  border-bottom:0 !important;
  background:transparent !important;
}
@media (max-width:600px){
  .nsf-buscador .nsf-resumen-catalogo{margin:20px auto 8px;}
  .nsf-ficha .nsf-resumen-catalogo{margin:20px auto 8px;}
  .nsf-buscador .nsf-resumen-catalogo-linea{gap:6px;}
  .nsf-ficha .nsf-resumen-catalogo-linea{gap:6px;}
  .nsf-buscador .nsf-resumen-catalogo-titulo{font-size:.82rem;}
  .nsf-ficha .nsf-resumen-catalogo-titulo{font-size:.82rem;}
  .nsf-buscador .nsf-resumen-catalogo-datos{gap:10px;}
  .nsf-ficha .nsf-resumen-catalogo-datos{gap:10px;}
  .nsf-buscador .nsf-resumen-catalogo-dato{gap:4px;}
  .nsf-ficha .nsf-resumen-catalogo-dato{gap:4px;}
  .nsf-buscador .nsf-resumen-catalogo-dato strong{font-size:.9rem;}
  .nsf-ficha .nsf-resumen-catalogo-dato strong{font-size:.9rem;}
  .nsf-buscador .nsf-resumen-catalogo-dato span{font-size:.76rem;}
  .nsf-ficha .nsf-resumen-catalogo-dato span{font-size:.76rem;}
}


/* Autocompletado propio para Buscar ruta: consistente en escritorio y móvil. */
.nsf-grafo-autocomplete{position:relative;width:100%;}
.nsf-grafo-autocomplete-menu{position:absolute;z-index:1000;left:0;right:0;top:calc(100% + 3px);max-height:240px;overflow:auto;background:#fff;border:1px solid #d9d0c4;border-radius:9px;box-shadow:0 8px 24px rgba(0,0,0,.10);padding:4px;}
.nsf-grafo-autocomplete-menu[hidden]{display:none;}
.nsf-grafo-autocomplete-opcion{display:block;width:100%;border:0;background:transparent;text-align:left;padding:10px 11px;border-radius:6px;color:var(--nsf-navy);font:inherit;cursor:pointer;}
.nsf-grafo-autocomplete-opcion:hover,.nsf-grafo-autocomplete-opcion:focus{background:#f6f1ea;outline:none;}
@media (max-width:640px){
 .nsf-grafo-autocomplete-menu{max-height:210px;padding:3px;border-radius:8px;}
 .nsf-grafo-autocomplete-opcion{padding:11px 10px;font-size:.9rem;}
}

/* Fallback del acceso al mapa en fichas servidas por el tema. */
.nsf-mapa-fallback{display:block;}

/* Herramientas de exploración: pequeñas y en una sola barra. */
.nsf-grafo-herramientas{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 12px;}
.nsf-grafo-herramientas .nsf-grafo-btn-texto{min-height:40px;padding:8px 15px;}
.nsf-grafo-btn-hilo{font-weight:700;}
.nsf-grafo-filtros{margin:0 0 12px;padding:10px 12px;border:1px dotted #ded3c3;border-radius:12px;background:#fcfaf6;}
.nsf-grafo-filtros .nsf-grafo-tipos{margin-bottom:9px;}
.nsf-grafo-btn-genealogia{font-size:.78rem;padding:6px 12px;}
.nsf-grafo-ruta{margin:0 0 12px;padding:12px 14px;border:1px solid #e8dfd3;border-radius:12px;background:#fcfaf6;}
.nsf-grafo-ruta[hidden],.nsf-grafo-filtros[hidden]{display:none;}
.nsf-grafo-ruta>strong{display:block;margin-bottom:9px;font-size:.92rem;color:var(--nsf-navy);}
.nsf-grafo-ruta-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap;}
.nsf-grafo-ruta-form label{display:flex;flex-direction:column;gap:4px;flex:1 1 220px;font-size:.74rem;color:var(--nsf-ink-soft);}
.nsf-grafo-ruta-form input{width:100%;box-sizing:border-box;border:1px solid #d9d0c4;border-radius:8px;padding:9px 10px;background:#fff;font:inherit;color:var(--nsf-navy);}
.nsf-grafo-ruta-flecha{padding-bottom:9px;opacity:.55;}
.nsf-grafo-ruta-resultado{margin:9px 0 0;font-size:.82rem;line-height:1.45;color:var(--nsf-ink-soft);}
.nsf-grafo-con-seleccion .nsf-nodo-ruta circle{stroke-width:3.2;stroke-dasharray:4 2;}
.nsf-grafo-con-seleccion .nsf-arista-ruta{stroke-width:4!important;opacity:1!important;}
@media (max-width:640px){
 .nsf-grafo-herramientas{gap:6px;margin-bottom:10px;}
 .nsf-grafo-herramientas .nsf-grafo-btn-texto{flex:1 1 auto;min-width:0;padding:8px 11px;font-size:.78rem;}
 .nsf-grafo-modo-compacto{padding:9px 12px;margin-bottom:10px;}
 .nsf-grafo-ruta{padding:11px;}
 .nsf-grafo-ruta-form{display:grid;grid-template-columns:1fr;gap:7px;}
 .nsf-grafo-ruta-flecha{display:none;}
 .nsf-grafo-ruta-form .nsf-grafo-btn-texto{width:100%;}
}


/* Genealogía de una obra: antecedentes y descendientes. */
.nsf-grafo-panel-genealogia{margin:14px 0 4px;padding-top:12px;border-top:1px dotted #ded3c3;}
.nsf-grafo-panel-genealogia>strong{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--nsf-ink-soft);margin-bottom:7px;}
.nsf-grafo-panel-genealogia-botones{display:flex;gap:7px;flex-wrap:wrap;}
.nsf-grafo-btn-genealogia-direccion{
  flex:none;
  background:none;
  border:1.5px solid #e2d8c8;
  border-radius:100px;
  padding:7px 16px;
  font-family:inherit;
  font-size:.82rem;
  font-weight:600;
  color:var(--nsf-navy) !important;
  cursor:pointer;
  transition:all .14s ease;
  text-decoration:none;
}
.nsf-grafo-btn-genealogia-direccion:hover,
.nsf-grafo-btn-genealogia-direccion:focus-visible{
  background:var(--nsf-navy) !important;
  border-color:var(--nsf-navy) !important;
  color:#fff !important;
  outline:none;
}
.nsf-grafo-btn-genealogia-direccion span{opacity:.65;}
.nsf-grafo-panel-genealogia-resultado{margin:9px 0 0!important;font-size:.78rem!important;line-height:1.4;color:var(--nsf-ink-soft);}
.nsf-grafo-genealogia-lista{display:flex;flex-direction:column;gap:7px;}
.nsf-grafo-genealogia-lista-titulo{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:var(--nsf-ink-soft);margin-bottom:1px;}
.nsf-grafo-genealogia-lista-titulo span{font-weight:600;opacity:.7;}
.nsf-grafo-genealogia-item{display:flex;align-items:center;gap:9px;padding:8px 9px;border:1px solid #e8dfd3;border-radius:10px;background:#fff;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;}
.nsf-grafo-genealogia-item:hover{transform:translateY(-1px);border-color:#d7c8b7;box-shadow:0 4px 12px rgba(25,35,55,.07);}
.nsf-grafo-genealogia-item-imagen{width:38px;height:52px;flex:0 0 38px;object-fit:cover;border-radius:5px;background:#eee7de;display:block;}
.nsf-grafo-genealogia-item-imagen-vacia{background:linear-gradient(135deg,#f1ece5,#e3d9ca);}
.nsf-grafo-genealogia-item-cuerpo{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px;}
.nsf-grafo-genealogia-item-cabecera{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.nsf-grafo-genealogia-item-tipo{font-size:.64rem;text-transform:uppercase;letter-spacing:.045em;font-weight:800;color:var(--nsf-ink-soft);}
.nsf-grafo-genealogia-item-flecha{font-size:.9rem;font-weight:800;color:var(--nsf-red);}
.nsf-grafo-genealogia-item-titulo{
  display:block;
  margin-top:1px;
  font-size:.78rem;
  font-weight:750;
  line-height:1.28;
  letter-spacing:-.01em;
  color:var(--nsf-navy);
  text-decoration:none;
  overflow-wrap:anywhere;
}
.nsf-grafo-genealogia-item-titulo:hover,.nsf-grafo-genealogia-item-titulo:focus-visible{
  color:var(--nsf-red);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}

.nsf-grafo-genealogia-item-meta{font-size:.68rem;color:var(--nsf-ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nsf-nodo-genealogia-antecedente circle{stroke:currentColor;stroke-width:3;stroke-dasharray:5 2;}
.nsf-nodo-genealogia-descendiente circle{stroke:currentColor;stroke-width:3;stroke-dasharray:2 2;}
.nsf-arista-genealogia-antecedente{stroke-width:4!important;opacity:1!important;stroke-dasharray:7 4!important;}
.nsf-arista-genealogia-descendiente{stroke-width:4!important;opacity:1!important;}
@media (max-width:640px){
 .nsf-grafo-panel-genealogia-botones{display:grid;grid-template-columns:1fr 1fr;}
 .nsf-grafo-btn-genealogia-direccion{width:100%;padding:9px 8px;font-size:.76rem;}
}

/* Conexiones ocultas: herramienta secundaria, visualmente discreta. */
.nsf-grafo-ocultas .nsf-grafo-ruta-ayuda{margin:0 0 10px;font-size:.78rem;line-height:1.45;color:var(--nsf-ink-soft);}
.nsf-grafo-ocultas .nsf-grafo-btn-texto{min-height:40px;}
@media (max-width:640px){
  .nsf-grafo-ocultas .nsf-grafo-ruta-form{display:grid;grid-template-columns:1fr;gap:7px;}
  .nsf-grafo-ocultas .nsf-grafo-ruta-flecha{display:none;}
  .nsf-grafo-ocultas .nsf-grafo-btn-texto{width:100%;}
}

/* Explorar: puerta de entrada al catálogo, integrada y ligera. */
.nsf-explorar{
  max-width:980px;
  margin:26px auto 24px;
  padding:18px 18px 16px;
  border:1px solid #eee6dd;
  border-radius:16px;
  background:#fcfaf7;
}
.nsf-explorar-cabecera{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  margin:0 2px 12px;
}
.nsf-explorar-cabecera h3{
  margin:0;
  font-family:Georgia,serif;
  font-size:1.08rem;
  font-weight:700;
  color:var(--nsf-ink);
}
.nsf-explorar-cabecera p{
  margin:0;
  font-size:.78rem;
  color:var(--nsf-ink-soft);
  text-align:right;
}
.nsf-explorar-opciones{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.nsf-explorar-opcion{
  appearance:none;
  min-width:0;
  border:1px solid #e6ddd3;
  background:#fff;
  border-radius:12px;
  padding:11px 12px;
  text-align:left;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  column-gap:9px;
  row-gap:2px;
  cursor:pointer;
  color:inherit;
  transition:border-color .16s,background .16s,transform .16s;
}
.nsf-explorar-opcion.nsf-explorar-enlace{text-decoration:none;color:inherit;}
.nsf-explorar-opcion.nsf-explorar-enlace:hover{text-decoration:none;}
.nsf-explorar-opcion:hover{
  border-color:#d9c9bb;
  background:#fffdfa;
  transform:translateY(-1px);
}
.nsf-explorar-opcion:focus-visible{outline:2px solid rgba(199,154,46,.45);outline-offset:2px}
.nsf-explorar-icono{
  grid-row:1 / span 2;
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#f5ede4;
  color:#8a4b3a;
  font-size:16px;
}
.nsf-explorar-opcion strong{
  align-self:end;
  font-size:.86rem;
  line-height:1.2;
  font-weight:700;
  color:var(--nsf-ink);
}
.nsf-explorar-opcion>span:last-child{
  font-size:.72rem;
  line-height:1.3;
  color:#756c64;
}
.nsf-explorar .nsf-explorar-opcion:disabled{opacity:.6;cursor:wait}
@media(max-width:700px){
  .nsf-explorar{margin:20px 6px 22px;padding:14px 10px 12px;border-radius:14px}
  .nsf-explorar-cabecera{display:block;margin:0 4px 9px}
  .nsf-explorar-cabecera h3{font-size:1rem}
  .nsf-explorar-cabecera p{margin:3px 0 0;text-align:left;font-size:.76rem}
  .nsf-explorar-opciones{grid-template-columns:1fr;gap:6px}
  .nsf-explorar-opcion{padding:9px 10px;grid-template-columns:30px minmax(0,1fr);min-height:58px}
  .nsf-explorar-icono{width:28px;height:28px;font-size:15px}
  .nsf-explorar-opcion strong{font-size:.84rem}
  .nsf-explorar-opcion>span:last-child{font-size:.71rem}
}

.nsf-search-shell + .nsf-explorar{margin-top:24px;}

/* Menú de filtros propio de Explorar: se despliega aquí, sin saltar a la barra de filtros. */
.nsf-explorar-filtros{margin-top:8px;border:1px solid #e6ddd3;border-radius:12px;background:#fff;padding:11px 12px;}
.nsf-explorar-filtros-inner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.nsf-explorar-filtros-titulo{font-size:.76rem;font-weight:700;color:var(--nsf-ink-soft);white-space:nowrap;}
.nsf-explorar-chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0;}
.nsf-explorar-chip{padding:6px 10px;border-radius:999px;border:1px solid #e1d6cc;background:#fff;color:var(--nsf-ink);font-size:.75rem;cursor:pointer;}
.nsf-explorar-chip:hover,.nsf-explorar-chip:focus-visible{border-color:#caa99a;background:#fffaf6;}
.nsf-explorar-filtros-todos{border:0;background:transparent;color:#8a4b3a;font-size:.75rem;font-weight:700;cursor:pointer;white-space:nowrap;}
@media(max-width:700px){
  .nsf-explorar-filtros{margin-top:6px;padding:9px 10px;}
  .nsf-explorar-filtros-inner{display:block;}
  .nsf-explorar-filtros-titulo{display:block;margin-bottom:7px;}
  .nsf-explorar-chips{display:flex;}
  .nsf-explorar-filtros-todos{display:block;margin-top:7px;padding:2px 0;}
}

/* La acción de sorpresa vive ahora dentro de Explorar en el índice. */
.nsf-buscador:not(.nsf-compacto) .nsf-sorpresa-fila{display:none}
.nsf-ficha:not(.nsf-compacto) .nsf-sorpresa-fila{display:none}

.nsf-explorar-conexion-resultado{display:flex;align-items:center;gap:9px;margin:10px 0 12px;padding:9px 11px;border:1px solid #e6ddd3;border-radius:10px;background:#fffaf6;font-size:.78rem;color:var(--nsf-ink-soft)}
.nsf-explorar-conexion-resultado strong{color:var(--nsf-ink);font-size:.78rem}.nsf-explorar-conexion-resultado span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:600px){.nsf-explorar-conexion-resultado{display:block}.nsf-explorar-conexion-resultado span{display:block;margin-top:2px;white-space:normal}}

/* Explorar · conectar dos obras */
.nsf-explorar-conexion{margin-top:8px;border:1px solid #e6ddd3;border-radius:12px;background:#fff;padding:12px 13px;}
.nsf-explorar-conexion-titulo{font-size:.82rem;font-weight:700;color:var(--nsf-ink);margin-bottom:10px;}
.nsf-explorar-conexion-form{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:9px;align-items:end;}
.nsf-explorar-conexion-campo{position:relative;min-width:0;}
.nsf-explorar-conexion-campo label{display:block;font-size:.7rem;font-weight:700;color:var(--nsf-ink-soft);margin-bottom:4px;}
.nsf-explorar-conexion-campo input{width:100%;box-sizing:border-box;border:1px solid #ddd2c8;border-radius:8px;background:#fff;padding:8px 9px;font-size:.8rem;color:var(--nsf-ink);}
.nsf-explorar-conexion-flecha{padding-bottom:8px;color:#8a4b3a;font-weight:700;}
.nsf-explorar-conexion-buscar{border:1px solid #cdb6a8;border-radius:8px;background:#fffaf6;color:#8a4b3a;padding:8px 11px;font-size:.75rem;font-weight:700;cursor:pointer;white-space:nowrap;}
.nsf-explorar-autocomplete{position:absolute;z-index:30;left:0;right:0;top:100%;margin-top:3px;background:#fff;border:1px solid #e2d8d0;border-radius:8px;box-shadow:0 8px 20px rgba(40,25,15,.10);overflow:hidden;}
.nsf-explorar-sugerencia{display:block;width:100%;border:0;background:#fff;text-align:left;padding:8px 10px;font-size:.76rem;color:var(--nsf-ink);cursor:pointer;}
.nsf-explorar-sugerencia:hover,.nsf-explorar-sugerencia:focus{background:#fff7f2;outline:0;}
.nsf-explorar-conexion-resultado{margin-top:10px;min-height:0;color:var(--nsf-ink-soft);font-size:.76rem;}
.nsf-explorar-conexion-resultado:empty{display:none;}
.nsf-explorar-conexion-resultado strong{display:block;color:var(--nsf-ink);font-size:.78rem;margin-bottom:6px;}
.nsf-explorar-camino{display:flex;flex-wrap:wrap;align-items:center;gap:5px;line-height:1.4;}
.nsf-explorar-camino span{background:#faf6f2;border:1px solid #e7ddd5;border-radius:999px;padding:4px 8px;color:var(--nsf-ink);}
.nsf-explorar-camino b{font-weight:400;color:#9a7a6b;}
.nsf-explorar-conexion-resultado small{display:block;margin-top:6px;font-size:.68rem;color:#9a8b82;}
@media(max-width:700px){
 .nsf-explorar-conexion-form{grid-template-columns:1fr;gap:7px;}
 .nsf-explorar-conexion-flecha{display:none;}
 .nsf-explorar-conexion-buscar{width:100%;padding:9px 11px;}
 .nsf-explorar-conexion{padding:11px 10px;}
}
/* Experiencias */
.nsf-experiencia-publica,.nsf-experiencias-archive{max-width:1040px;margin:0 auto;padding:42px 20px;color:var(--nsf-ink)}
.nsf-exp-public-header{display:grid;grid-template-columns:minmax(190px,300px) 1fr;gap:42px;align-items:center;margin-bottom:52px;padding-bottom:36px;border-bottom:1px solid #eadfd5}
.nsf-exp-public-cover{position:relative}.nsf-exp-public-cover:after{content:"";position:absolute;inset:10px -10px -10px 10px;border:1px solid rgba(231,48,42,.18);border-radius:14px;z-index:-1}
.nsf-exp-public-cover img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:12px}
.nsf-exp-public-heading{max-width:650px}.nsf-exp-public-type,.nsf-exp-step-route,.nsf-exp-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.11em;color:var(--nsf-red);font-weight:600}
.nsf-exp-public-heading h1{margin:.2em 0 .12em;font-size:clamp(2.15rem,5vw,3.55rem);line-height:1.02;letter-spacing:-.025em}.nsf-exp-public-subtitle{font-size:1.2rem;line-height:1.45;margin:.55em 0;color:var(--nsf-ink-soft)}.nsf-exp-public-summary{max-width:620px;opacity:.72;line-height:1.65}
.nsf-exp-public-section{margin:42px 0}.nsf-exp-public-section>div{line-height:1.7}.nsf-exp-public-section h2{font-size:1.55rem;line-height:1.2;margin:3px 0 0;color:var(--nsf-navy)}
.nsf-exp-route-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.nsf-exp-count{font-size:.78rem;color:var(--nsf-ink-soft);white-space:nowrap}
.nsf-exp-work-list{position:relative;padding:4px 0 8px}.nsf-exp-work-list:before{content:"";position:absolute;left:32px;top:24px;bottom:28px;width:1px;background:linear-gradient(to bottom,#e7b8b5,#eadfd5 85%,transparent)}
.nsf-exp-work-card{position:relative;display:grid;grid-template-columns:44px 112px 1fr 30px;gap:18px;align-items:center;padding:16px 18px 16px 10px;margin:0 0 2px;background:var(--nsf-cream-2);border:1px solid #eadfd5;border-radius:14px;box-shadow:none;transition:border-color .18s ease,background .18s ease,transform .18s ease}.nsf-exp-work-card:hover{transform:translateX(2px);border-color:#dfc4bd;background:#fff}
.nsf-exp-work-card.is-deep{background:#fff;border-style:dashed}.nsf-exp-work-number{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #e1c9c2;border-radius:50%;background:#fff;color:var(--nsf-red);font-size:.72rem;letter-spacing:.08em;font-weight:600}
.nsf-exp-work-image{display:block;width:112px;height:142px;overflow:hidden;border-radius:9px;background:#eee4dc}.nsf-exp-work-image img{display:block;width:100%;height:100%;object-fit:cover}.nsf-exp-work-image.is-empty{border:1px solid #eadfd5}
.nsf-exp-work-content{min-width:0}.nsf-exp-work-content h3{margin:5px 0 2px;font-size:1.3rem;line-height:1.12}.nsf-exp-work-content h3 a{text-decoration:none;color:var(--nsf-navy)}.nsf-exp-work-content h3 a:hover{color:var(--nsf-red)}.nsf-exp-work-content h4{margin:6px 0;font-size:.94rem;font-weight:500;color:var(--nsf-ink-soft)}.nsf-exp-work-content p{margin:8px 0 0;max-width:650px;opacity:.72;line-height:1.55}.nsf-exp-work-arrow{text-decoration:none;font-size:1.35rem;color:var(--nsf-red);opacity:.45;justify-self:end}.nsf-exp-work-arrow:hover{opacity:1}
.nsf-exp-link-row{position:relative;display:flex;align-items:center;gap:12px;min-height:58px;margin-left:55px;padding:5px 0}.nsf-exp-link-line{display:block;width:1px;height:34px;background:#dfc8c2;position:relative}.nsf-exp-link-line:before{content:"";position:absolute;left:-3px;bottom:-1px;width:7px;height:7px;border-right:1px solid #c7a8a2;border-bottom:1px solid #c7a8a2;transform:rotate(45deg)}.nsf-exp-link-copy{display:flex;flex-direction:column;gap:2px;max-width:680px;padding:7px 11px;border-left:2px solid rgba(231,48,42,.18);background:rgba(245,237,228,.45);border-radius:0 7px 7px 0}.nsf-exp-link-copy strong{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--nsf-red)}.nsf-exp-link-copy span{font-size:.77rem;color:var(--nsf-ink-soft);line-height:1.35}
.nsf-exp-conclusion{padding-top:10px;border-top:1px solid #eadfd5}.nsf-exp-archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.nsf-exp-card{border:1px solid #e1d8d0;border-radius:12px;overflow:hidden;background:#fff}.nsf-exp-card-link{text-decoration:none;color:inherit;display:block}.nsf-exp-card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.nsf-exp-card div{padding:14px}.nsf-exp-card h2{margin:0 0 6px}.nsf-exp-card p{margin:0 0 10px;opacity:.75}.nsf-exp-card span{font-size:.82rem;opacity:.65}
@media(max-width:700px){.nsf-experiencia-publica,.nsf-experiencias-archive{padding:26px 14px}.nsf-exp-public-header{grid-template-columns:1fr;gap:24px;margin-bottom:38px;padding-bottom:28px}.nsf-exp-public-cover{max-width:230px;margin:0 auto}.nsf-exp-public-cover:after{inset:8px -8px -8px 8px}.nsf-exp-public-heading{text-align:left}.nsf-exp-route-heading{align-items:center}.nsf-exp-work-list:before{left:25px;top:22px}.nsf-exp-work-card{grid-template-columns:34px 72px 1fr 18px;gap:10px;padding:11px 9px 11px 7px;border-radius:11px}.nsf-exp-work-number{width:34px;height:34px;font-size:.66rem}.nsf-exp-work-image{width:72px;height:98px;border-radius:7px}.nsf-exp-work-content h3{font-size:1.04rem}.nsf-exp-work-content h4{font-size:.84rem}.nsf-exp-work-content p{font-size:.83rem;line-height:1.42;margin-top:6px}.nsf-exp-work-arrow{font-size:1.1rem}.nsf-exp-link-row{margin-left:41px;min-height:48px;gap:9px}.nsf-exp-link-copy{padding:6px 9px}.nsf-exp-link-copy span{display:none}.nsf-exp-archive-grid{grid-template-columns:1fr}}


/* 5.57.67 — Experiencias con la misma personalidad visual que el índice.
   La experiencia debe sentirse como una extensión natural de NSF, no como
   una plantilla independiente. */
.nsf-experiencia-publica,
.nsf-experiencias-archive{
  --nsf-exp-line:#eadfd5;
  --nsf-exp-soft:#fffaf6;
  max-width:980px;
  margin:0 auto;
  padding:34px 20px 70px;
  color:var(--nsf-ink);
}
.nsf-experiencia-publica *{box-sizing:border-box}

/* Cabecera: misma lógica que el índice: blanco, borde fino, rojo reservado
   para títulos/accentos y sin aspecto de landing page genérica. */
.nsf-exp-public-header{
  display:block;
  margin:0 0 30px;
  padding:34px 24px 38px;
  text-align:center;
  background:#fff;
  border:1px solid #eee6dd;
  border-radius:18px;
}
.nsf-exp-public-cover{
  width:min(170px,42vw);
  margin:0 auto 24px;
  position:relative;
}
.nsf-exp-public-cover:after{
  inset:7px -7px -7px 7px;
  border:1px solid rgba(231,48,42,.16);
  border-radius:12px;
}
.nsf-exp-public-cover img{
  aspect-ratio:1/1;
  border-radius:10px;
}
.nsf-exp-public-heading{max-width:720px;margin:0 auto}
.nsf-exp-public-type,
.nsf-exp-step-route,
.nsf-exp-kicker{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.64rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#8a4b3a;
  font-weight:600;
}
.nsf-exp-public-heading h1{
  margin:7px 0 8px;
  color:var(--nsf-red);
  font-size:clamp(1.75rem,4vw,2.45rem);
  line-height:1.12;
  letter-spacing:-.015em;
}
.nsf-exp-public-subtitle{
  max-width:620px;
  margin:0 auto 8px;
  color:var(--nsf-ink-soft);
  font-size:1rem;
  line-height:1.5;
}
.nsf-exp-public-summary{
  max-width:620px;
  margin:0 auto;
  color:#756c64;
  font-size:.88rem;
  line-height:1.6;
}

/* Las secciones siguen el ritmo visual del índice: título pequeño, contenido
   contenido y separadores discretos. */
.nsf-exp-public-section{
  margin:24px 0;
  padding:22px 20px;
  background:#fff;
  border:1px solid #eee6dd;
  border-radius:16px;
}
.nsf-exp-public-section>div{line-height:1.65}
.nsf-exp-public-section h2{
  margin:0 0 12px;
  color:var(--nsf-navy);
  font-size:1.2rem;
  line-height:1.2;
}
.nsf-exp-intro,
.nsf-exp-hilo{
  background:var(--nsf-cream-2);
}
.nsf-exp-intro p:last-child,
.nsf-exp-hilo p:last-child{margin-bottom:0}

.nsf-exp-route{
  padding:22px 16px 18px;
}
.nsf-exp-route-heading{
  margin:0 4px 18px;
  padding-bottom:12px;
  border-bottom:1px dotted #ded3c3;
}
.nsf-exp-route-heading h2{margin-top:4px;margin-bottom:0}
.nsf-exp-count{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.68rem;
  letter-spacing:.03em;
  color:#756c64;
}

/* Las tarjetas se parecen a las tarjetas/listados del índice: fondo blanco,
   borde fino, sin sombras fuertes ni grandes bloques de color. */
.nsf-exp-work-list:before{
  background:linear-gradient(to bottom,#e8c7c2,#eadfd5 85%,transparent);
}
.nsf-exp-work-card{
  background:#fff;
  border:1px solid #e8dfd7;
  border-radius:12px;
  padding:13px 14px 13px 8px;
  box-shadow:none;
  transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
.nsf-exp-work-card:hover{
  border-color:#d8c3b7;
  background:#fffdfa;
  transform:translateY(-1px);
}
.nsf-exp-work-card.is-deep{
  background:#fff;
  border-style:dotted;
}
.nsf-exp-work-number{
  width:40px;height:40px;
  border-color:#e1d6cc;
  background:#fff;
  color:#8a4b3a;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.66rem;
}
.nsf-exp-work-image{
  width:104px;height:132px;
  border-radius:8px;
  background:#f5ede4;
}
.nsf-exp-work-content h3{
  margin:4px 0 2px;
  font-size:1.15rem;
}
.nsf-exp-work-content h3 a{color:var(--nsf-navy)}
.nsf-exp-work-content h4{
  margin:5px 0;
  font-size:.86rem;
  font-weight:500;
  color:var(--nsf-ink-soft);
}
.nsf-exp-work-content p{
  margin:6px 0 0;
  color:#756c64;
  font-size:.84rem;
  line-height:1.5;
  opacity:1;
}
.nsf-exp-work-arrow{color:#8a4b3a;font-size:1.2rem}
.nsf-exp-link-row{min-height:52px;margin-left:51px}
.nsf-exp-link-copy{
  padding:6px 10px;
  background:transparent;
  border-left:2px dotted #dfc8c2;
}
.nsf-exp-link-copy strong{color:#8a4b3a;font-size:.66rem}
.nsf-exp-link-copy span{font-size:.72rem;color:#756c64}

.nsf-exp-conclusion{
  background:var(--nsf-cream-2);
}

/* Archivo de experiencias: misma estética de tarjetas del índice. */
.nsf-experiencias-archive>header{
  margin:0 0 24px;
  padding:30px 20px;
  text-align:center;
  background:#fff;
  border:1px solid #eee6dd;
  border-radius:18px;
}
.nsf-experiencias-archive>header h1{
  margin:0 0 8px;
  color:var(--nsf-red);
  font-size:clamp(1.7rem,4vw,2.35rem);
}
.nsf-experiencias-archive>header p{
  max-width:620px;
  margin:0 auto;
  color:var(--nsf-ink-soft);
  line-height:1.55;
  font-size:.9rem;
}
.nsf-exp-card{
  border:1px solid #e8dfd7;
  border-radius:12px;
  background:#fff;
  box-shadow:none;
  transition:border-color .15s ease,transform .15s ease,background .15s ease;
}
.nsf-exp-card:hover{border-color:#d8c3b7;background:#fffdfa;transform:translateY(-1px)}
.nsf-exp-card img{aspect-ratio:16/10}
.nsf-exp-card div{padding:13px 14px}
.nsf-exp-card h2{font-size:1.05rem;color:var(--nsf-navy)}
.nsf-exp-card p{font-size:.82rem;color:#756c64}
.nsf-exp-card span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.66rem;color:#8a4b3a;opacity:1}

@media(max-width:700px){
  .nsf-experiencia-publica,.nsf-experiencias-archive{padding:20px 12px 50px}
  .nsf-exp-public-header{margin-bottom:20px;padding:26px 16px 28px;border-radius:15px}
  .nsf-exp-public-cover{width:132px;margin-bottom:19px}
  .nsf-exp-public-heading{text-align:center}
  .nsf-exp-public-heading h1{font-size:1.75rem}
  .nsf-exp-public-subtitle{font-size:.94rem}
  .nsf-exp-public-section{margin:16px 0;padding:17px 13px;border-radius:14px}
  .nsf-exp-route{padding:17px 9px 12px}
  .nsf-exp-route-heading{margin:0 3px 14px}
  .nsf-exp-work-card{grid-template-columns:34px 72px 1fr 16px;gap:9px;padding:10px 7px 10px 5px;border-radius:10px}
  .nsf-exp-work-number{width:34px;height:34px}
  .nsf-exp-work-image{width:72px;height:96px}
  .nsf-exp-work-content h3{font-size:1rem}
  .nsf-exp-work-content h4{font-size:.8rem}
  .nsf-exp-work-content p{font-size:.78rem;line-height:1.42}
  .nsf-exp-link-row{margin-left:39px;min-height:45px}
  .nsf-exp-link-copy{padding:5px 8px}
  .nsf-exp-link-copy span{display:none}
  .nsf-experiencias-archive>header{padding:24px 15px;border-radius:15px}
}

/* 5.57.68 — Experiencias: mismo lenguaje visual que el índice NSF. */
.nsf-experiencia-publica,
.nsf-experiencias-archive{max-width:880px;margin:0 auto;padding:38px 20px 64px;color:var(--nsf-ink);}
.nsf-experiencia-publica a,.nsf-experiencias-archive a{text-decoration:none;}
.nsf-exp-public-header{display:flex;align-items:center;gap:28px;margin:0 0 34px;padding:0 0 26px;border-bottom:1px solid #eadfd5;}
.nsf-exp-public-cover{flex:0 0 150px;position:relative;}
.nsf-exp-public-cover:after{display:none;}
.nsf-exp-public-cover img{display:block;width:150px;height:190px;object-fit:cover;border-radius:10px;}
.nsf-exp-public-heading{max-width:650px;}
.nsf-exp-public-type,.nsf-exp-step-route,.nsf-exp-kicker{font-size:.66rem;text-transform:uppercase;letter-spacing:.10em;color:var(--nsf-red);font-weight:700;}
.nsf-exp-public-heading h1{margin:6px 0 5px;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.08;letter-spacing:-.02em;color:var(--nsf-red);}
.nsf-exp-public-subtitle{font-size:1rem;line-height:1.45;margin:0;color:var(--nsf-ink-soft);}
.nsf-exp-public-summary{max-width:620px;margin:9px 0 0;color:var(--nsf-ink-soft);opacity:.82;line-height:1.5;font-size:.9rem;}
.nsf-exp-public-section{margin:30px 0;}
.nsf-exp-public-section h2{font-size:1.18rem;line-height:1.2;margin:4px 0 10px;color:var(--nsf-navy);font-weight:700;}
.nsf-exp-public-section>div{line-height:1.65;font-size:.93rem;}
.nsf-exp-route-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:12px;}
.nsf-exp-count{font-size:.72rem;color:var(--nsf-ink-soft);white-space:nowrap;}
.nsf-exp-work-list{position:relative;padding:2px 0 4px;}
.nsf-exp-work-list:before{left:21px;top:24px;bottom:22px;background:#eadfd5;}
.nsf-exp-work-card{grid-template-columns:34px 82px 1fr 22px;gap:14px;padding:11px 10px 11px 5px;margin:0;border:0;border-bottom:1px solid #eee5dc;border-radius:0;background:transparent;box-shadow:none;}
.nsf-exp-work-card:hover{transform:none;background:#fffaf6;border-color:#eadfd5;}
.nsf-exp-work-card.is-deep{background:transparent;border-style:solid;}
.nsf-exp-work-number{width:34px;height:34px;border-color:#eadfd5;font-size:.64rem;color:var(--nsf-red);}
.nsf-exp-work-image{width:82px;height:104px;border-radius:7px;background:#f1e9e1;}
.nsf-exp-work-content h3{margin:4px 0 2px;font-size:1.05rem;line-height:1.15;}
.nsf-exp-work-content h3 a{color:var(--nsf-navy);}
.nsf-exp-work-content h4{margin:4px 0;font-size:.82rem;font-weight:500;color:var(--nsf-ink-soft);}
.nsf-exp-work-content p{margin:6px 0 0;max-width:600px;font-size:.82rem;line-height:1.45;color:var(--nsf-ink-soft);opacity:.85;}
.nsf-exp-work-arrow{font-size:1.05rem;color:var(--nsf-red);opacity:.55;}
.nsf-exp-link-row{min-height:42px;margin-left:37px;padding:2px 0;gap:9px;}
.nsf-exp-link-line{height:25px;background:#e4d8d0;}
.nsf-exp-link-copy{padding:5px 9px;background:transparent;border-left:1px solid #e5c9c5;border-radius:0;}
.nsf-exp-link-copy strong{font-size:.62rem;}
.nsf-exp-link-copy span{font-size:.7rem;}
.nsf-exp-conclusion{padding-top:18px;border-top:1px solid #eadfd5;}
.nsf-exp-archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.nsf-experiencias-archive>header{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #eadfd5;}
.nsf-experiencias-archive>header h1{margin:0;color:var(--nsf-red);font-size:clamp(1.7rem,4vw,2.35rem);}
.nsf-experiencias-archive>header p{margin:7px 0 0;color:var(--nsf-ink-soft);font-size:.9rem;}
.nsf-exp-card{border:1px solid #eadfd5;border-radius:10px;background:#fff;box-shadow:none;}
.nsf-exp-card:hover{border-color:#dfc4bd;}
.nsf-exp-card img{aspect-ratio:16/10;}
.nsf-exp-card div{padding:12px 13px 14px;}
.nsf-exp-card h2{font-size:1rem;color:var(--nsf-navy);margin:0 0 5px;}
.nsf-exp-card p{font-size:.82rem;line-height:1.45;color:var(--nsf-ink-soft);margin:0 0 8px;}
.nsf-exp-card span{font-size:.7rem;color:var(--nsf-ink-soft);}
@media(max-width:700px){
 .nsf-experiencia-publica,.nsf-experiencias-archive{padding:24px 14px 46px;}
 .nsf-exp-public-header{gap:18px;margin-bottom:25px;padding-bottom:20px;align-items:flex-start;}
 .nsf-exp-public-cover{flex-basis:92px;}
 .nsf-exp-public-cover img{width:92px;height:118px;border-radius:8px;}
 .nsf-exp-public-heading h1{font-size:1.55rem;}
 .nsf-exp-public-subtitle{font-size:.88rem;}
 .nsf-exp-public-summary{font-size:.78rem;}
 .nsf-exp-public-section{margin:24px 0;}
 .nsf-exp-public-section h2{font-size:1.05rem;}
 .nsf-exp-route-heading{align-items:center;}
 .nsf-exp-work-list:before{left:17px;top:20px;}
 .nsf-exp-work-card{grid-template-columns:30px 62px 1fr 18px;gap:9px;padding:9px 3px 9px 2px;}
 .nsf-exp-work-number{width:30px;height:30px;font-size:.58rem;}
 .nsf-exp-work-image{width:62px;height:80px;border-radius:6px;}
 .nsf-exp-work-content h3{font-size:.92rem;}
 .nsf-exp-work-content h4{font-size:.75rem;}
 .nsf-exp-work-content p{font-size:.72rem;line-height:1.4;}
 .nsf-exp-work-arrow{font-size:.95rem;}
 .nsf-exp-link-row{margin-left:27px;min-height:35px;}
 .nsf-exp-link-copy{padding:4px 7px;}
 .nsf-exp-link-copy strong{font-size:.56rem;}
 .nsf-exp-link-copy span{font-size:.64rem;}
 .nsf-exp-archive-grid{grid-template-columns:1fr 1fr;gap:10px;}
}
@media(max-width:420px){.nsf-exp-public-header{gap:14px}.nsf-exp-public-cover{flex-basis:78px}.nsf-exp-public-cover img{width:78px;height:100px}.nsf-exp-public-heading h1{font-size:1.35rem}.nsf-exp-archive-grid{grid-template-columns:1fr;}}

/* 5.57.70 — Imagen de obra + capa de producto.
   La obra siempre conserva su imagen cuando existe; los productos aparecen
   con su propia imagen solo cuando han sido seleccionados para la experiencia. */
.nsf-exp-work-image{position:relative;overflow:hidden;background:#f3ece5}
.nsf-exp-work-image.is-product-fallback img{filter:saturate(.94)}
.nsf-exp-image-note{position:absolute;left:5px;bottom:5px;padding:3px 6px;border-radius:5px;background:rgba(255,255,255,.92);color:#8a4b3a;font:600 .54rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.06em}
.nsf-exp-productos-publicos{margin:0 0 8px 51px;padding:10px 0 13px;border-bottom:1px dotted #e5d9d0}
.nsf-exp-productos-title{margin:0 0 8px;color:#8a4b3a;font:600 .63rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.09em}
.nsf-exp-productos-grid{display:flex;flex-wrap:wrap;gap:9px}
.nsf-exp-producto-card{display:flex;align-items:center;gap:8px;min-width:190px;max-width:300px;padding:7px 9px;border:1px solid #e8dfd7;border-radius:8px;background:#fff;text-decoration:none;color:var(--nsf-navy);transition:border-color .15s ease,background .15s ease}
.nsf-exp-producto-card:hover{border-color:#d8c3b7;background:#fffaf6}
.nsf-exp-product-image{display:block;flex:0 0 44px;width:44px;height:52px;border-radius:5px;overflow:hidden;background:#f2ebe3}
.nsf-exp-product-image img{display:block;width:100%;height:100%;object-fit:cover}
.nsf-exp-product-image.is-empty{border:1px solid #e8dfd7}
.nsf-exp-producto-card>span:last-child{display:flex;min-width:0;flex-direction:column;gap:2px}
.nsf-exp-producto-card strong{font-size:.76rem;line-height:1.25;font-weight:600;color:var(--nsf-navy)}
.nsf-exp-producto-card em{font-style:normal;font-size:.72rem;color:#8a4b3a}
@media(max-width:700px){
 .nsf-exp-productos-publicos{margin-left:27px;padding-top:8px}
 .nsf-exp-productos-grid{display:grid;grid-template-columns:1fr;gap:7px}
 .nsf-exp-producto-card{min-width:0;max-width:none;padding:6px 8px}
 .nsf-exp-product-image{flex-basis:40px;width:40px;height:48px}
 .nsf-exp-producto-card strong{font-size:.7rem}
 .nsf-exp-producto-card em{font-size:.66rem}
}


/* 5.57.73 — Experiencias: aprovechar mejor el ancho disponible en móvil.
   Evita que la experiencia quede encajada dentro de un contenedor demasiado
   estrecho y da más aire horizontal a la lista de obras. */
@media(max-width:700px){
  .nsf-experiencia-publica{
    width:calc(100% + 28px);
    max-width:none;
    margin-left:-14px;
    padding-left:10px;
    padding-right:10px;
  }
  .nsf-exp-public-header,
  .nsf-exp-public-section{
    width:100%;
  }
  .nsf-exp-route{
    padding-left:7px;
    padding-right:7px;
  }
  .nsf-exp-work-card{
    grid-template-columns:34px 76px minmax(0,1fr) 18px;
    gap:10px;
    padding-left:3px;
    padding-right:5px;
  }
  .nsf-exp-work-number{
    width:34px;
    height:34px;
  }
  .nsf-exp-work-image{
    width:76px;
    height:98px;
  }
  .nsf-exp-work-content h3{font-size:1rem;}
  .nsf-exp-work-content h4{font-size:.78rem;}
  .nsf-exp-work-content p{font-size:.75rem;}
  .nsf-exp-productos-publicos{margin-left:37px;}
}
@media(max-width:420px){
  .nsf-experiencia-publica{
    width:calc(100% + 20px);
    margin-left:-10px;
    padding-left:8px;
    padding-right:8px;
  }
  .nsf-exp-route{padding-left:5px;padding-right:5px;}
  .nsf-exp-work-card{
    grid-template-columns:32px 72px minmax(0,1fr) 16px;
    gap:8px;
    padding-left:2px;
    padding-right:3px;
  }
  .nsf-exp-work-number{width:32px;height:32px;}
  .nsf-exp-work-image{width:72px;height:94px;}
  .nsf-exp-work-content h3{font-size:.98rem;}
}


/* 5.57.76 — Experiencias: centrar el contenido en móvil.
   El lienzo global puede ocupar todo el viewport, pero los bloques de la
   experiencia no deben tocar los bordes. Se mantiene una columna cómoda,
   centrada y con el mismo aire lateral a izquierda y derecha. */
@media (max-width:700px){
  .nsf-experiencia-publica{
    box-sizing:border-box !important;
    width:calc(100% - 20px) !important;
    max-width:760px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  .nsf-exp-public-header,
  .nsf-exp-public-section{
    width:100% !important;
    box-sizing:border-box !important;
  }
  .nsf-exp-route{
    padding-left:0 !important;
    padding-right:0 !important;
  }
}
@media (max-width:420px){
  .nsf-experiencia-publica{
    width:calc(100% - 16px) !important;
  }
}


/* 5.57.78 — Experiencias móvil: columna más ancha y composición equilibrada.
   Un poco más de ancho exterior y una columna interna equilibrada, inspirada
   en el lenguaje visual del índice: bloques amplios, aire lateral y obras
   con imagen protagonista sin comprimir el texto. */
@media (max-width:700px){
  .nsf-experiencia-publica{
    width:calc(100% - 28px) !important;
    max-width:860px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding:18px 0 46px !important;
  }
  .nsf-exp-public-header{
    display:block !important;
    margin:0 0 22px !important;
    padding:24px 18px 26px !important;
    text-align:center !important;
    border-radius:16px !important;
  }
  .nsf-exp-public-heading{
    max-width:none !important;
    text-align:center !important;
  }
  .nsf-exp-public-heading h1{font-size:1.85rem !important;margin:7px 0 6px !important;}
  .nsf-exp-public-subtitle{font-size:.98rem !important;}
  .nsf-exp-public-summary{font-size:.84rem !important;max-width:520px;margin:12px auto 0 !important;}
  .nsf-exp-public-section{
    margin:22px 0 !important;
    padding:20px 16px !important;
    border-radius:16px !important;
  }
  .nsf-exp-route{padding:20px 14px 14px !important;}
  .nsf-exp-route-heading{margin:0 2px 16px !important;}
  .nsf-exp-route-heading h2{font-size:1.35rem !important;}
  .nsf-exp-count{font-size:.78rem !important;}
  .nsf-exp-work-list{padding:0 !important;}
  .nsf-exp-work-list:before{left:20px !important;top:24px !important;bottom:28px !important;}
  .nsf-exp-work-card{
    grid-template-columns:40px 150px minmax(0,1fr) 22px !important;
    gap:14px !important;
    align-items:center !important;
    padding:14px 2px 14px 0 !important;
    min-height:132px !important;
    border-bottom:1px solid #eee5dc !important;
    border-radius:0 !important;
  }
  .nsf-exp-work-number{
    width:40px !important;
    height:40px !important;
    font-size:.68rem !important;
    background:#fff !important;
    z-index:2 !important;
  }
  .nsf-exp-work-image{
    width:150px !important;
    height:150px !important;
    border-radius:9px !important;
  }
  .nsf-exp-work-content{min-width:0 !important;align-self:center !important;}
  .nsf-exp-work-content h4{
    margin:0 0 7px !important;
    font-size:.68rem !important;
    line-height:1.25 !important;
    letter-spacing:.10em !important;
    color:#8a4b3a !important;
    font-weight:700 !important;
  }
  .nsf-exp-work-content h3{
    margin:0 !important;
    font-size:1.25rem !important;
    line-height:1.15 !important;
  }
  .nsf-exp-work-content p{font-size:.78rem !important;line-height:1.4 !important;}
  .nsf-exp-work-arrow{
    font-size:1.25rem !important;
    opacity:.72 !important;
    align-self:center !important;
  }
  .nsf-exp-link-row{
    margin-left:43px !important;
    min-height:48px !important;
    padding:4px 0 !important;
  }
  .nsf-exp-link-copy{padding:6px 9px !important;}
  .nsf-exp-link-copy strong{font-size:.60rem !important;}
  .nsf-exp-link-copy span{font-size:.68rem !important;}
  .nsf-exp-productos-publicos{margin-left:54px !important;}
}
@media (max-width:560px){
  .nsf-experiencia-publica{width:calc(100% + 8px) !important;margin-left:-4px !important;margin-right:-4px !important;}
  .nsf-exp-work-card{grid-template-columns:36px 136px minmax(0,1fr) 18px !important;gap:10px !important;}
  .nsf-exp-work-number{width:36px !important;height:36px !important;}
  .nsf-exp-work-image{width:136px !important;height:136px !important;}
  .nsf-exp-work-content h3{font-size:1.12rem !important;}
}
@media (max-width:420px){
  .nsf-experiencia-publica{width:calc(100% + 12px) !important;margin-left:-6px !important;margin-right:-6px !important;}
  .nsf-exp-public-header{padding:22px 14px 24px !important;}
  .nsf-exp-work-card{grid-template-columns:34px 116px minmax(0,1fr) 16px !important;gap:8px !important;padding-top:12px !important;padding-bottom:12px !important;}
  .nsf-exp-work-number{width:34px !important;height:34px !important;font-size:.60rem !important;}
  .nsf-exp-work-image{width:116px !important;height:116px !important;}
  .nsf-exp-work-content h4{font-size:.60rem !important;letter-spacing:.07em !important;}
  .nsf-exp-work-content h3{font-size:1rem !important;}
}


/* 5.57.79 — Experiencias: cabecera más compacta en móvil.
   Mantiene la identificación y el enlace de regreso, pero elimina el espacio
   vertical excesivo antes de la tarjeta de Recorrido. */
@media (max-width:700px){
  body.single-nsf_experiencia .nsf-experiencias-wrap{
    padding-top:10px !important;
    padding-bottom:36px !important;
  }
  body.single-nsf_experiencia .nsf-exp-local-bar{
    padding:0 0 10px !important;
    margin-bottom:14px !important;
    gap:4px !important;
  }
  body.single-nsf_experiencia .nsf-exp-local-bar a{
    font-size:.82rem !important;
    line-height:1.2 !important;
  }
  body.single-nsf_experiencia .nsf-exp-local-bar span{
    margin-bottom:0 !important;
    font-size:.68rem !important;
    line-height:1.2 !important;
  }
  body.single-nsf_experiencia .nsf-experiencia-publica{
    padding-top:8px !important;
  }
}

/* Navegación estructural de las fichas: independiente del catálogo. */
.nsf-ficha-nav,
.nsf-inicio-navegacion{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:0;
	width:max-content;
	max-width:100%;
	margin:0 auto 1rem;
	padding:3px;
	border:1px solid #ddd5cb;
	border-radius:12px;
	background:#faf8f5;
	box-shadow:none;
}
.nsf-ficha-nav a,
.nsf-inicio-navegacion a{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:32px;
	padding:.42rem .85rem;
	border:0;
	border-radius:9px;
	color:#6b625b;
	text-decoration:none;
	line-height:1;
	font-size:.76rem;
	font-weight:700;
	letter-spacing:.02em;
	white-space:nowrap;
	transition:background .15s ease,color .15s ease;
}
.nsf-ficha-nav a+a,
.nsf-inicio-navegacion a+a{border-left:0;}
.nsf-ficha-nav a.is-current,
.nsf-inicio-navegacion a.is-current{
	background:#fff;
	color:#c92220;
	box-shadow:0 1px 4px rgba(36,31,27,.08);
}
.nsf-ficha-nav a:hover,
.nsf-ficha-nav a:focus-visible,
.nsf-inicio-navegacion a:hover,
.nsf-inicio-navegacion a:focus-visible{
	background:#fff;
	color:#c92220;
}
@media (max-width:600px){
	.nsf-ficha-nav,
	.nsf-inicio-navegacion{width:100%;}
	.nsf-ficha-nav a,
	.nsf-inicio-navegacion a{flex:1;text-align:center;padding:.42rem .35rem;font-size:.72rem;}
}
/*   NSF 6.1.2: aislamiento visual de la ficha. Se mantienen las reglas existentes del catálogo y se replica únicamente su capa de presentación bajo .nsf-ficha para evitar que la ficha dependa del contenedor .nsf-buscador.   */

/* NSF 6.1.2 — aislamiento de la ficha de obra */
.nsf-ficha,
.nsf-ficha *{box-sizing:border-box;}
.nsf-ficha .nsf-ficha-publica{width:100%;}
.nsf-ficha .nsf-ficha-publica .nsf-buscador{display:contents;}

/* 6.3.2 — selector contextual integrado en la plantilla */
/* 9.5.96 — Ocultar navegaciones realmente vacías. :empty no detecta
   espacios/saltos de línea del HTML, por eso también comprobamos que no haya enlaces. */
.nsf-inicio-navegacion:empty,
.nsf-ficha-nav:empty,
.nsf-inicio-navegacion:not(:has(a)),
.nsf-ficha-nav:not(:has(a)){display:none !important;}

body .nsf-inicio-navegacion{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  width:max-content;
  max-width:100%;
  margin:0 auto 1rem;
  padding:3px;
  border:1px solid #ddd5cb;
  border-radius:12px;
  background:#faf8f5;
  box-shadow:none;
}
body .nsf-inicio-navegacion a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:.42rem .85rem;
  border:0;
  border-radius:9px;
  color:#6b625b;
  text-decoration:none;
  line-height:1;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.02em;
  white-space:nowrap;
  background:transparent;
}
body .nsf-inicio-navegacion a.is-current,
body .nsf-inicio-navegacion a:hover,
body .nsf-inicio-navegacion a:focus-visible{
  background:#fff;
  color:#c92220;
  box-shadow:0 1px 4px rgba(36,31,27,.08);
}
@media (max-width:600px){
  body .nsf-inicio-navegacion{width:100%;}
  body .nsf-inicio-navegacion a{flex:1;text-align:center;padding:.42rem .35rem;font-size:.72rem;}
}

/* 6.5.2 — La experiencia es un elemento protagonista de la obra. */
.nsf-ficha-nav .nsf-experiencia-link,
.nsf-inicio-navegacion .nsf-experiencia-link{
  display:flex !important;align-items:center !important;gap:12px !important;min-height:58px !important;
  padding:9px 16px !important;margin:0 4px !important;border-radius:11px !important;
  background:#fff1ee !important;border:1px solid #efb6ae !important;color:#c92220 !important;
  box-shadow:0 2px 8px rgba(201,34,32,.08) !important;text-align:left !important;white-space:normal !important;
}
.nsf-ficha-nav .nsf-experiencia-link:hover,.nsf-ficha-nav .nsf-experiencia-link:focus-visible,
.nsf-inicio-navegacion .nsf-experiencia-link:hover,.nsf-inicio-navegacion .nsf-experiencia-link:focus-visible{
  background:#ffe7e3 !important;border-color:#d83b31 !important;color:#b51f1d !important;transform:translateY(-1px);
}
.nsf-experiencia-link-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#c92220;color:#fff;font-size:18px;line-height:1;}
.nsf-experiencia-link-copy{display:flex;flex-direction:column;gap:3px;min-width:0;}
.nsf-experiencia-link-copy strong{display:block;color:#8f1e1c;font-size:.82rem;line-height:1.2;font-weight:800;}
.nsf-experiencia-link-copy small{display:block;color:#9b5c56;font-size:.7rem;line-height:1.2;font-weight:700;}
@media(max-width:600px){
 .nsf-ficha-nav .nsf-experiencia-link,.nsf-inicio-navegacion .nsf-experiencia-link{min-height:62px !important;margin:4px 0 !important;padding:10px 12px !important;flex:1.8 !important;text-align:left !important;}
 .nsf-experiencia-link-icon{flex-basis:34px;width:34px;height:34px;font-size:17px;}
 .nsf-experiencia-link-copy strong{font-size:.78rem;}.nsf-experiencia-link-copy small{font-size:.68rem;}
}


/* 6.5.3 — mapa: reinicio de filtros, imagen de la obra y referencias plegables */
.nsf-grafo-btn-reset-filtros{margin-top:8px;border:1px dotted #d9c8b7;background:#fff;color:#8b4b3e;}
.nsf-grafo-btn-reset-filtros:hover,.nsf-grafo-btn-reset-filtros:focus-visible{border-color:#c83b35;color:#c83b35;}
.nsf-grafo-panel-cabecera{display:flex;align-items:flex-start;gap:14px;margin:0 0 16px;}
.nsf-grafo-panel-imagen{flex:0 0 80px;width:80px;height:110px;margin:0;border-radius:8px;overflow:hidden;background:#f3eee7;}
.nsf-grafo-panel-imagen img{display:block;width:100%;height:100%;object-fit:cover;}
.nsf-grafo-panel-cabecera-texto{min-width:0;flex:1;}
.nsf-grafo-panel-cabecera-texto h4{margin-top:6px;}
.nsf-grafo-panel-titulo-link{color:inherit;text-decoration:none;}
.nsf-grafo-panel-titulo-link:hover,.nsf-grafo-panel-titulo-link:focus-visible{color:var(--nsf-red);text-decoration:underline;}

.nsf-grafo-panel-razones ul{margin-bottom:8px;}
.nsf-grafo-referencias-extra[hidden]{display:none!important;}
.nsf-grafo-ver-mas{display:inline-flex;align-items:center;justify-content:center;margin-top:5px;padding:8px 13px;border:1px dotted #d9c8b7;border-radius:999px;background:#fff;color:#8b4b3e;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;}
.nsf-grafo-ver-mas:hover,.nsf-grafo-ver-mas:focus-visible{border-color:#c83b35;color:#c83b35;}
@media (max-width:600px){.nsf-grafo-panel-cabecera{gap:12px;}.nsf-grafo-panel-imagen{flex-basis:64px;width:64px;height:88px;}.nsf-grafo-ver-mas{width:100%;}}





/* ---------- "+ info": investigación IA de una relación ---------- */
.nsf-info-ia-btn{
  display:inline-block;
  margin:10px 18px 12px;
  padding:3px 11px;
  border:1px solid #e2d8c8;
  border-radius:999px;
  background:transparent;
  color:var(--nsf-ink-soft, #4a423c);
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:.02em;
  cursor:pointer;
  transition:all .14s ease;
}
.nsf-info-ia-btn:hover,
.nsf-info-ia-btn:focus-visible{
  border-color:var(--nsf-navy, #1F2A44);
  color:var(--nsf-navy, #1F2A44);
  background:var(--nsf-cream, #F5EDE4);
}
/* Si ya hay un pie (nota/fuentes) justo encima, el botón se pega a él en
   vez de flotar con su propio margen superior. */
.nsf-obra-pie + .nsf-info-ia-btn{margin-top:0;}

.nsf-info-ia-modal{
  display:block;
  position:fixed;
  inset:0;
  z-index:999999;
}
.nsf-info-ia-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(2px);
}
.nsf-info-ia-dialog{
  /* El popup se añade fuera de .nsf-buscador/.nsf-ficha (directo al
     <body>, para poder ir por encima de todo), y las variables de color
     de marca solo están definidas dentro de esos contenedores. Por eso
     aquí SIEMPRE llevan un valor de reserva explícito: sin él, el
     fondo cae a transparente porque la variable no existe en este
     punto del árbol del documento. */
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(440px,calc(100vw - 32px));
  max-height:min(82vh,620px);
  overflow:auto;
  box-sizing:border-box;
  background:var(--nsf-cream-2, #FFFBF6);
  color:var(--nsf-ink, #241d18);
  border-radius:14px;
  box-shadow:0 18px 50px rgba(0,0,0,.28);
  padding:0 22px 20px;
  overscroll-behavior:contain;
}
.nsf-info-ia-cabecera{
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 -22px 14px;
  padding:16px 22px;
  background:var(--nsf-cream-2, #FFFBF6);
  border-bottom:1px solid #e9dfd2;
}
.nsf-info-ia-cabecera strong{font-size:1.02rem; color:var(--nsf-ink, #241d18);}
.nsf-info-ia-cerrar{
  width:36px;
  height:36px;
  flex:0 0 36px;
  padding:0;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #e2d8c8;
  border-radius:50%;
  background:var(--nsf-cream-2, #FFFBF6);
  color:var(--nsf-ink-soft, #4a423c);
  font-size:22px;
  line-height:1;
  font-family:inherit;
  cursor:pointer;
}
.nsf-info-ia-cerrar:hover,
.nsf-info-ia-cerrar:focus-visible{
  background:var(--nsf-cream, #F5EDE4);
  border-color:var(--nsf-navy, #1F2A44);
  color:var(--nsf-ink, #241d18);
}

.nsf-info-ia-bloque{margin:0 0 16px;}
.nsf-info-ia-bloque:last-child{margin-bottom:0;}
.nsf-info-ia-etiqueta{
  margin:0 0 3px;
  font-size:0.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--nsf-mustard, #C99A2E);
}
.nsf-info-ia-valor{margin:0; font-size:0.95rem; font-weight:600; color:var(--nsf-ink, #241d18);}
.nsf-info-ia-texto{margin:0; font-size:0.9rem; line-height:1.5; color:var(--nsf-ink-soft, #4a423c);}
.nsf-info-ia-fuentes{margin:0; padding-left:1.15rem; font-size:0.85rem;}
.nsf-info-ia-fuentes li{margin:.35rem 0; line-height:1.45;}
.nsf-info-ia-fuente{color:var(--nsf-navy, #1F2A44); text-decoration:underline; text-underline-offset:2px;}
.nsf-info-ia-fuente:hover{color:var(--nsf-red, #E7302A);}
.nsf-info-ia-fuente-dominio{opacity:.68; font-size:.78em;}

body.nsf-info-ia-modal-abierto{overflow:hidden;}

@media (max-width:600px){
  .nsf-info-ia-dialog{padding:0 16px 16px; border-radius:12px;}
  .nsf-info-ia-cabecera{margin:0 -16px 12px; padding:14px 16px;}
}

/* 7.0.0 — evidencia de la relación cargada bajo demanda */
.nsf-grafo-evidencia{margin-top:14px;padding:12px 14px;border:1px solid rgba(0,0,0,.12);border-radius:10px;background:rgba(255,255,255,.72);font-size:.9rem;line-height:1.5}
.nsf-grafo-evidencia-titulo{display:block;margin-bottom:6px}
.nsf-grafo-evidencia-texto{display:block;margin-top:7px}


/* Tira del hilo: recorrido de navegación dentro del mapa. */
.nsf-grafo-hilo-recorrido{margin:0 0 14px;padding:10px 12px;border:1px dotted currentColor;border-radius:10px;}
.nsf-grafo-hilo-cabecera{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;}
.nsf-grafo-hilo-acciones{display:flex;gap:10px;flex-wrap:wrap;}
.nsf-grafo-hilo-acciones button{background:none;border:0;padding:3px 0;cursor:pointer;font:inherit;}
.nsf-grafo-hilo-acciones button:disabled{opacity:.45;cursor:default;}
.nsf-grafo-hilo-pasos{display:flex;align-items:center;gap:6px;overflow-x:auto;padding-bottom:2px;}
.nsf-grafo-hilo-paso{background:none;border:0;padding:2px 0;cursor:pointer;font:inherit;white-space:nowrap;text-decoration:underline;text-underline-offset:2px;}
.nsf-grafo-hilo-paso:last-child{font-weight:600;text-decoration:none;}
.nsf-grafo-hilo-separador{opacity:.55;flex:0 0 auto;}
@media (max-width:600px){.nsf-grafo-hilo-cabecera{align-items:flex-start;flex-direction:column}.nsf-grafo-hilo-acciones{width:100%;justify-content:space-between}.nsf-grafo-hilo-pasos{font-size:.92em}}

/* ================================================================
   7.0.6 — Tira del hilo: recorrido visual renovado
   ================================================================ */
.nsf-ficha .nsf-grafo-hilo-recorrido,
.nsf-buscador .nsf-grafo-hilo-recorrido{
  margin:18px 0 20px;
  padding:0;
  border:1px solid #e7e1da;
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 28px rgba(36,29,24,.06);
  overflow:hidden;
  color:var(--nsf-ink);
}
.nsf-grafo-hilo-recorrido[hidden]{display:none;}
.nsf-grafo-hilo-cabecera{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 16px;
  margin:0;
  border-bottom:1px solid #eee8e2;
  background:#faf8f6;
}
.nsf-grafo-hilo-cabecera strong{
  color:var(--nsf-ink);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.nsf-grafo-hilo-acciones{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.nsf-grafo-hilo-acciones button{
  appearance:none;
  border:1px solid #ddd5cd;
  background:#fff;
  color:var(--nsf-ink-soft);
  border-radius:999px;
  padding:7px 12px;
  cursor:pointer;
  font:600 .78rem/1.2 inherit;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
.nsf-grafo-hilo-acciones button:hover:not(:disabled),
.nsf-grafo-hilo-acciones button:focus-visible:not(:disabled){
  border-color:var(--nsf-red);
  color:var(--nsf-red);
  background:#fffafa;
  transform:translateY(-1px);
}
.nsf-grafo-hilo-acciones button:disabled{opacity:.42;cursor:default;}
.nsf-grafo-hilo-pasos{
  display:flex;
  align-items:center;
  gap:7px;
  overflow-x:auto;
  padding:13px 16px 15px;
  scrollbar-width:thin;
}
.nsf-grafo-hilo-paso{
  appearance:none;
  flex:0 0 auto;
  max-width:230px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  border:1px solid #ded7d0;
  background:#fff;
  color:var(--nsf-ink-soft);
  border-radius:999px;
  padding:7px 12px;
  cursor:pointer;
  font:600 .8rem/1.2 inherit;
  text-decoration:none;
  transition:all .15s ease;
}
.nsf-grafo-hilo-paso:hover,
.nsf-grafo-hilo-paso:focus-visible{
  border-color:var(--nsf-red);
  color:var(--nsf-red);
  background:#fffafa;
}
.nsf-grafo-hilo-paso:last-child{
  border-color:var(--nsf-red);
  background:var(--nsf-red);
  color:#fff;
  font-weight:800;
  cursor:default;
}
.nsf-grafo-hilo-separador{
  flex:0 0 auto;
  color:#aaa19a;
  font-size:.9rem;
  line-height:1;
}
@media (max-width:600px){
  .nsf-grafo-hilo-cabecera{align-items:flex-start;flex-direction:column;gap:10px;padding:13px 14px;}
  .nsf-grafo-hilo-acciones{width:100%;}
  .nsf-grafo-hilo-acciones button{flex:1 1 auto;text-align:center;}
  .nsf-grafo-hilo-pasos{padding:11px 14px 13px;}
  .nsf-grafo-hilo-paso{max-width:180px;font-size:.76rem;}
}


/* ================================================================
   7.0.7 — Tira del hilo: acabado visual refinado
   ================================================================ */
.nsf-ficha .nsf-grafo-hilo-recorrido,
.nsf-buscador .nsf-grafo-hilo-recorrido{
  margin:20px 0 22px;
  border:1px solid #e5e0db;
  border-radius:18px;
  background:#ffffff;
  box-shadow:0 10px 32px rgba(25,20,16,.07);
  color:#24211f;
}
.nsf-grafo-hilo-cabecera{
  padding:15px 18px;
  border-bottom:1px solid #eee9e4;
  background:#fcfbfa;
}
.nsf-grafo-hilo-cabecera strong{
  display:flex;
  align-items:center;
  gap:8px;
  color:#24211f;
  font-size:.72rem;
  letter-spacing:.12em;
}
.nsf-grafo-hilo-cabecera strong::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--nsf-red,#d22f2f);
  box-shadow:0 0 0 4px rgba(210,47,47,.09);
}
.nsf-grafo-hilo-acciones{gap:7px;}
.nsf-grafo-hilo-acciones button{
  border:1px solid #ddd7d1;
  background:#fff;
  color:#5d5752;
  border-radius:10px;
  padding:7px 11px;
  font-size:.76rem;
  font-weight:650;
  letter-spacing:.01em;
}
.nsf-grafo-hilo-acciones button:hover:not(:disabled),
.nsf-grafo-hilo-acciones button:focus-visible:not(:disabled){
  border-color:var(--nsf-red,#d22f2f);
  background:#fff8f8;
  color:var(--nsf-red,#d22f2f);
  transform:none;
}
.nsf-grafo-hilo-pasos{
  gap:5px;
  padding:15px 18px 17px;
  scrollbar-width:thin;
  scrollbar-color:#c9c2bc transparent;
}
.nsf-grafo-hilo-paso{
  max-width:220px;
  border:0;
  border-radius:9px;
  background:#f5f3f1;
  color:#403b37;
  padding:8px 11px;
  font-size:.79rem;
  font-weight:650;
  box-shadow:inset 0 0 0 1px #e8e3df;
}
.nsf-grafo-hilo-paso:hover,
.nsf-grafo-hilo-paso:focus-visible{
  background:#fff;
  color:var(--nsf-red,#d22f2f);
  box-shadow:inset 0 0 0 1px rgba(210,47,47,.35);
}
.nsf-grafo-hilo-paso:last-child{
  background:var(--nsf-red,#d22f2f);
  color:#fff;
  box-shadow:none;
}
.nsf-grafo-hilo-separador{
  color:#b2aaa3;
  font-size:.78rem;
  padding:0 1px;
}
@media (max-width:600px){
  .nsf-ficha .nsf-grafo-hilo-recorrido,
  .nsf-buscador .nsf-grafo-hilo-recorrido{
    border-radius:14px;
    margin:16px 0 18px;
  }
  .nsf-grafo-hilo-cabecera{padding:13px 14px;}
  .nsf-grafo-hilo-acciones button{padding:7px 9px;font-size:.72rem;}
  .nsf-grafo-hilo-pasos{padding:12px 14px 14px;}
  .nsf-grafo-hilo-paso{max-width:165px;padding:7px 10px;font-size:.74rem;}
}

/* 7.0.8 — Siguiente hilo */
.nsf-grafo-siguiente-hilo{margin:14px 0 16px;padding:14px;border:1px solid #e9dfd2;border-radius:12px;background:#fffdfa;}
.nsf-grafo-siguiente-hilo-cabecera{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;}
.nsf-grafo-siguiente-hilo-cabecera strong{font-family:'Fraunces',Georgia,serif;font-size:.98rem;color:var(--nsf-navy);}
.nsf-grafo-siguiente-hilo-cabecera span{font-size:.76rem;color:var(--nsf-ink-soft);}
.nsf-grafo-siguiente-hilo-lista{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.nsf-grafo-siguiente-hilo-item{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;padding:10px 30px 10px 11px;border:1px solid #e9dfd2;border-radius:10px;background:#fff;color:var(--nsf-ink);text-align:left;cursor:pointer;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease;}
.nsf-grafo-siguiente-hilo-item:hover,.nsf-grafo-siguiente-hilo-item:focus-visible{border-color:var(--nsf-red);box-shadow:0 3px 10px rgba(20,30,40,.06);transform:translateY(-1px);outline:none;}
.nsf-grafo-siguiente-hilo-titulo{font-weight:700;font-size:.82rem;line-height:1.25;color:var(--nsf-navy);}
.nsf-grafo-siguiente-hilo-meta{font-size:.69rem;line-height:1.25;color:var(--nsf-ink-soft);}
.nsf-grafo-siguiente-hilo-flecha{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--nsf-red);}
@media(max-width:600px){.nsf-grafo-siguiente-hilo-cabecera{display:block}.nsf-grafo-siguiente-hilo-cabecera span{display:block;margin-top:3px}.nsf-grafo-siguiente-hilo-lista{grid-template-columns:1fr}.nsf-grafo-siguiente-hilo-item{min-height:52px;justify-content:center;}}

/* 7.1.1 — El detalle de la relación nunca queda visualmente vacío. */
.nsf-grafo-evidencia{margin:14px 0;padding:14px 16px;border:1px solid #e6e8eb;border-radius:12px;background:#fff;color:var(--nsf-ink,#1f2933);}
.nsf-grafo-evidencia-titulo{display:block;margin-bottom:7px;color:var(--nsf-navy,#26384a);}
.nsf-grafo-evidencia a{color:var(--nsf-navy,#26384a);}


/* Caminos temáticos de Tira del hilo */
.nsf-grafo-caminos-tematicos{margin:14px 0 16px;padding:14px;border:1px solid #e8e8e8;border-radius:14px;background:#fff;}
.nsf-grafo-caminos-tematicos-cabecera{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px;}
.nsf-grafo-caminos-tematicos-cabecera strong{font-family:'Fraunces',Georgia,serif;font-size:.98rem;color:var(--nsf-navy);}
.nsf-grafo-caminos-tematicos-cabecera span{font-size:.76rem;color:var(--nsf-ink-soft);}
.nsf-grafo-caminos-tematicos-lista{display:grid;gap:8px;}
.nsf-grafo-camino-tematico{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:11px 12px;border:1px solid #e8e8e8;border-radius:10px;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;}
.nsf-grafo-camino-tematico:hover,.nsf-grafo-camino-tematico:focus-visible{border-color:var(--nsf-red);box-shadow:0 3px 12px rgba(20,30,40,.06);transform:translateY(-1px);outline:none;}
.nsf-grafo-camino-tematico-cuerpo{display:flex;flex-direction:column;min-width:0;gap:3px;}
.nsf-grafo-camino-tematico-cuerpo strong{font-size:.84rem;color:var(--nsf-navy);line-height:1.25;}
.nsf-grafo-camino-tematico-cuerpo span{font-size:.7rem;color:var(--nsf-ink-soft);line-height:1.3;}
.nsf-grafo-camino-tematico-accion{flex:0 0 auto;font-size:.7rem;font-weight:700;color:var(--nsf-red);white-space:nowrap;}
@media(max-width:600px){.nsf-grafo-caminos-tematicos-cabecera{display:block}.nsf-grafo-caminos-tematicos-cabecera span{display:block;margin-top:3px}.nsf-grafo-camino-tematico{align-items:flex-start;flex-direction:column}.nsf-grafo-camino-tematico-accion{align-self:flex-end;}}


/* 9.5.319 — Hilos: enfoque de investigación.
   Solo afecta a la herramienta pública de conexiones. */
.nsf-tira-del-hilo-buscador .nsf-hero-title em{font-style:normal;}
.nsf-tira-del-hilo-buscador .nsf-hero-pasos{max-width:760px;}
.nsf-grafo-hilos-investigacion .nsf-grafo-experiencia-card{border-style:solid;}

/* Experiencias recomendadas dentro del mapa */
.nsf-grafo-experiencias-recomendadas{margin:16px 0;padding:16px;border:1px solid #e8dfd5;border-radius:14px;background:#fffdfa;}
.nsf-grafo-experiencias-cabecera{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px;}
.nsf-grafo-experiencias-cabecera strong{font-family:'Fraunces',Georgia,serif;font-size:1rem;color:var(--nsf-navy);}
.nsf-grafo-experiencias-cabecera span{font-size:.76rem;color:var(--nsf-ink-soft);}
.nsf-grafo-experiencias-lista{display:grid;gap:10px;}
.nsf-grafo-experiencia-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px;border:1px solid #e9dfd2;border-radius:12px;background:#fff;}
.nsf-grafo-experiencia-card-cuerpo{min-width:0;}
.nsf-grafo-experiencia-card-cuerpo strong{display:block;color:var(--nsf-navy);font-size:.9rem;margin-bottom:4px;}
.nsf-grafo-experiencia-card-cuerpo p{margin:0 0 7px;color:var(--nsf-ink-soft);font-size:.75rem;line-height:1.4;}
.nsf-grafo-experiencia-recorrido{font-size:.74rem;color:var(--nsf-ink);line-height:1.45;}
.nsf-grafo-experiencia-iniciar{flex:0 0 auto;border:1px solid var(--nsf-red);border-radius:999px;background:#fff;color:var(--nsf-red);padding:8px 12px;font-weight:700;font-size:.74rem;cursor:pointer;white-space:nowrap;}
.nsf-grafo-experiencia-iniciar:hover,.nsf-grafo-experiencia-iniciar:focus-visible{background:var(--nsf-red);color:#fff;outline:none;}
@media(max-width:600px){.nsf-grafo-experiencias-cabecera{display:block}.nsf-grafo-experiencias-cabecera span{display:block;margin-top:4px}.nsf-grafo-experiencia-card{align-items:flex-start;flex-direction:column}.nsf-grafo-experiencia-iniciar{align-self:flex-end;}}

/* 7.2.7 — modo experiencia dentro del mapa */
.nsf-experiencia-modo-panel{padding:2px 0 4px;}
.nsf-experiencia-modo-cabecera{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.nsf-experiencia-kicker{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--nsf-red,#b3261e);}
.nsf-experiencia-salir{background:none;border:0;padding:4px 0;color:var(--nsf-ink-soft,#6d665d);cursor:pointer;font:inherit;font-size:.78rem;text-decoration:underline;text-underline-offset:3px;}
.nsf-experiencia-modo-panel h3{margin:0 0 6px;font-size:1.25rem;line-height:1.15;color:var(--nsf-ink,#211f1c);}
.nsf-experiencia-modo-intro{margin:0 0 14px!important;color:var(--nsf-ink-soft,#6d665d);font-size:.9rem!important;line-height:1.45;}
.nsf-experiencia-recorrido-visual{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:10px 0 12px;margin-bottom:14px;border-top:1px dotted #ddd5ca;border-bottom:1px dotted #ddd5ca;white-space:nowrap;}
.nsf-experiencia-recorrido-paso{font-size:.78rem;color:var(--nsf-ink-soft,#6d665d);}
.nsf-experiencia-recorrido-paso.is-active{font-weight:700;color:var(--nsf-red,#b3261e);}
.nsf-experiencia-recorrido-paso.is-done{color:var(--nsf-ink,#211f1c);}
.nsf-experiencia-recorrido-separador{opacity:.45;flex:0 0 auto;}
.nsf-experiencia-paso{display:flex;gap:14px;align-items:flex-start;margin:4px 0 14px;padding:14px;border:1px solid #e7e0d7;border-radius:12px;background:#fff;}
.nsf-experiencia-paso-numero{font-size:.68rem;font-weight:700;color:var(--nsf-red,#b3261e);letter-spacing:.06em;flex:0 0 auto;}
.nsf-experiencia-paso-imagen{width:64px;height:88px;border-radius:7px;overflow:hidden;background:#f3eee7;flex:0 0 auto;}
.nsf-experiencia-paso-imagen img{width:100%;height:100%;object-fit:cover;display:block;}
.nsf-experiencia-paso-cuerpo{min-width:0;flex:1;}
.nsf-experiencia-paso-tipo{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--nsf-ink-soft,#6d665d);}
.nsf-experiencia-paso-cuerpo h4{margin:4px 0 5px;font-size:1.05rem;color:var(--nsf-ink,#211f1c);}
.nsf-experiencia-paso-cuerpo p{margin:0!important;font-size:.82rem!important;color:var(--nsf-ink-soft,#6d665d);}
.nsf-experiencia-paso-relacion,.nsf-experiencia-final{padding:12px 14px;margin:0 0 14px;border-left:3px solid var(--nsf-red,#b3261e);background:#faf7f3;border-radius:0 9px 9px 0;}
.nsf-experiencia-paso-relacion span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--nsf-ink-soft,#6d665d);margin-bottom:3px;}
.nsf-experiencia-paso-relacion strong,.nsf-experiencia-final strong{display:block;color:var(--nsf-ink,#211f1c);margin-bottom:4px;}
.nsf-experiencia-paso-relacion p,.nsf-experiencia-final p{margin:0!important;font-size:.8rem!important;line-height:1.45;}
.nsf-experiencia-controles{display:flex;gap:8px;justify-content:space-between;}
.nsf-experiencia-controles button{border:1px solid #d9d0c5;background:#fff;border-radius:8px;padding:9px 12px;cursor:pointer;font:inherit;font-size:.82rem;color:var(--nsf-ink,#211f1c);}
.nsf-experiencia-controles .nsf-experiencia-siguiente,.nsf-experiencia-controles .nsf-experiencia-mapa{border-color:var(--nsf-red,#b3261e);background:var(--nsf-red,#b3261e);color:#fff;}
.nsf-experiencia-controles button:disabled{opacity:.4;cursor:default;}
@media(max-width:600px){.nsf-experiencia-modo-cabecera{align-items:flex-start}.nsf-experiencia-paso{gap:10px;padding:12px}.nsf-experiencia-paso-imagen{width:52px;height:72px}.nsf-experiencia-controles{display:grid;grid-template-columns:1fr 1.4fr}.nsf-experiencia-controles button{width:100%;}}

/* 7.3.3 — Mantener estable el contenedor del panel al cambiar su contenido en móvil. */
.nsf-grafo-panel {
    overflow-anchor: none;
}
.nsf-grafo-panel-contenido {
    width: 100%;
    min-width: 0;
}

/* 7.3.4 — En móvil la experiencia se convierte en una capa fija sobre el mapa.
   El panel deja de participar en el flujo del documento mientras dura la experiencia,
   evitando que el cambio de contenido/altura provoque que Android desplace el viewport. */
@media (max-width: 860px){
  .nsf-grafo-panel.nsf-grafo-panel-experiencia{
    position:fixed !important;
    top:max(12px, env(safe-area-inset-top)) !important;
    right:12px !important;
    bottom:max(12px, env(safe-area-inset-bottom)) !important;
    left:12px !important;
    z-index:99990 !important;
    width:auto !important;
    max-width:none !important;
    max-height:none !important;
    height:auto !important;
    margin:0 !important;
    box-sizing:border-box !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain !important;
    overflow-anchor:none !important;
    touch-action:pan-y !important;
  }
  .nsf-grafo-panel.nsf-grafo-panel-experiencia .nsf-experiencia-modo-panel{
    min-height:100%;
    box-sizing:border-box;
  }
  .nsf-grafo-panel.nsf-grafo-panel-experiencia button{
    touch-action:manipulation;
  }
}

/* 7.3.5 — controles da experiência: evitar foco/scroll nativo no toque móvel. */
.nsf-grafo-experiencia-iniciar,.nsf-experiencia-modo-panel button{touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
@media (max-width:700px){.nsf-grafo-experiencia-iniciar,.nsf-experiencia-modo-panel button{outline:none;}}


/* 7.3.6 — Experiencia como overlay real en BODY.
   No se inserta dentro del mapa ni de Elementor: así ningún contenedor padre,
   transform o cambio de altura puede convertir el popup en un desplazamiento
   de la página móvil. */
.nsf-experiencia-overlay{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483000 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  padding:16px !important;
  margin:0 !important;
  background:rgba(20,20,20,.42) !important;
  overflow:hidden !important;
  overscroll-behavior:contain !important;
}
.nsf-experiencia-overlay > .nsf-experiencia-modo-panel{
  position:relative !important;
  width:min(680px,100%) !important;
  max-height:calc(100dvh - 32px) !important;
  overflow-y:auto !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:18px !important;
  border:1px solid #e9dfd2 !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:0 24px 70px rgba(0,0,0,.25) !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
}
@media(max-width:700px){
  .nsf-experiencia-overlay{
    align-items:flex-start !important;
    padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom)) !important;
  }
  .nsf-experiencia-overlay > .nsf-experiencia-modo-panel{
    width:100% !important;
    max-width:none !important;
    max-height:calc(100dvh - max(20px,env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
    border-radius:14px !important;
    padding:14px !important;
  }
}


/* 7.4.0 — Experiencias explicadas */
.nsf-experiencia-final-acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.nsf-experiencia-final-acciones button{border:1px solid #d9d0c5;background:#fff;border-radius:8px;padding:9px 12px;cursor:pointer;font:inherit;font-size:.82rem;color:var(--nsf-ink,#211f1c);}
.nsf-experiencia-final-acciones .nsf-experiencia-mapa{border-color:var(--nsf-red,#b3261e);background:var(--nsf-red,#b3261e);color:#fff;}
@media(max-width:600px){.nsf-experiencia-final-acciones{display:grid;grid-template-columns:1fr;}.nsf-experiencia-final-acciones button{width:100%;}}

/* 7.8.3 — "¿Por dónde quieres seguir?": la cabecera ya tenía estilo,
   pero las tarjetas de opciones (Tirar de las influencias / Sorpréndeme)
   no tenían ninguno — se pintaban sin borde, sin tarjeta, con el
   espaciado por defecto del navegador. */
.nsf-experiencia-continuar-cabecera{
  margin:16px 0 12px;
  padding-top:14px;
  border-top:1px dotted #ddd5ca;
}
.nsf-experiencia-continuar-cabecera strong{
  display:block;
  font-size:.95rem;
  color:var(--nsf-ink,#211f1c);
  margin-bottom:3px;
}
.nsf-experiencia-continuar-cabecera span{
  display:block;
  font-size:.82rem;
  color:var(--nsf-ink-soft,#6d665d);
}

.nsf-experiencia-siguientes{
  display:flex;
  flex-direction:column;
}
.nsf-experiencia-siguiente-card{
  display:block;
  padding:16px 0;
  border-bottom:1px dotted #ddd5ca;
}
.nsf-experiencia-siguiente-card:last-child{
  border-bottom:none;
  padding-bottom:4px;
}
.nsf-experiencia-siguiente-card > div{
  margin-bottom:12px;
}
.nsf-experiencia-siguiente-card strong{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.98rem;
  color:var(--nsf-ink,#211f1c);
  margin-bottom:5px;
}
.nsf-experiencia-siguiente-icono{
  font-size:1.15rem;
  line-height:1;
  flex:0 0 auto;
}
.nsf-experiencia-siguiente-card p{
  margin:0 0 8px !important;
  font-size:.85rem !important;
  line-height:1.5;
  color:var(--nsf-ink-soft,#6d665d);
}
.nsf-experiencia-siguiente-card > div > span{
  display:block;
  font-size:.82rem;
  color:var(--nsf-ink,#211f1c);
}
.nsf-experiencia-siguiente-hilo{
  padding:8px 16px !important;
  font-size:.82rem !important;
}
@media(max-width:600px){
  .nsf-experiencia-siguiente-hilo{width:100%;}
}

/* 7.4.1 — Experiencias: jerarquía editorial visible dentro del overlay. */
.nsf-experiencia-hilo-resumen{
  margin:0 0 14px;
  padding:14px 15px;
  border:1px solid #e6ddd3;
  border-radius:12px;
  background:linear-gradient(135deg,#fffaf6,#fff);
}
.nsf-experiencia-hilo-resumen > div:first-child > span,
.nsf-experiencia-final-kicker{
  display:block;
  margin-bottom:4px;
  color:var(--nsf-red,#b3261e);
  font-size:.62rem;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.nsf-experiencia-hilo-resumen strong{
  display:block;
  color:var(--nsf-ink,#211f1c);
  font-size:1.18rem;
  line-height:1.2;
}
.nsf-experiencia-hilo-resumen p{
  margin:7px 0 10px !important;
  color:var(--nsf-ink-soft,#6d665d);
  font-size:.82rem !important;
  line-height:1.45;
}
.nsf-experiencia-hilo-meta{display:flex;gap:8px;flex-wrap:wrap}
.nsf-experiencia-hilo-meta span{
  display:inline-flex;
  padding:4px 8px;
  border:1px dotted #d8ccc0;
  border-radius:999px;
  color:#6d665d;
  font-size:.65rem;
}
.nsf-experiencia-salto{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:10px;
  padding-top:9px;
  border-top:1px dotted #ddd5ca;
  color:#4e4842;
  font-size:.72rem;
}
.nsf-experiencia-salto span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nsf-experiencia-salto b{color:var(--nsf-red,#b3261e);font-size:.9rem;flex:0 0 auto}
.nsf-experiencia-final-kicker{margin-bottom:6px}
.nsf-experiencia-final-acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.nsf-experiencia-final-acciones button{border:1px solid #d9d0c5;background:#fff;border-radius:8px;padding:9px 12px;cursor:pointer;font:inherit;font-size:.8rem;color:var(--nsf-ink,#211f1c)}
.nsf-experiencia-final-acciones .nsf-experiencia-mapa{border-color:var(--nsf-red,#b3261e);background:var(--nsf-red,#b3261e);color:#fff}
@media(max-width:600px){
  .nsf-experiencia-hilo-resumen{padding:13px 12px}
  .nsf-experiencia-hilo-resumen strong{font-size:1.08rem}
  .nsf-experiencia-hilo-resumen p{font-size:.78rem !important}
  .nsf-experiencia-salto{align-items:flex-start;flex-wrap:wrap}
  .nsf-experiencia-salto span{max-width:42%}
  .nsf-experiencia-final-acciones{display:grid;grid-template-columns:1fr}
  .nsf-experiencia-final-acciones button{width:100%}
}

/* 7.4.2 — Experiencias: título y explicación del hilo más claros. */
.nsf-experiencia-hilo-resumen > div:first-child > span{display:block;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#b3261e;margin-bottom:4px;}
.nsf-experiencia-hilo-resumen > div:first-child > strong{display:block;font-size:1.45rem;line-height:1.15;color:#241d18;}
.nsf-experiencia-paso-relacion > span{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#8a4b3a;margin-bottom:5px;}
.nsf-experiencia-paso-relacion > strong{display:block;font-size:1rem;color:#241d18;margin-bottom:5px;}

/* 7.5.0 — jerarquía y nivel de coherencia de experiencias recomendadas */
.nsf-grafo-experiencia-card-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:4px}
.nsf-grafo-experiencia-card-top>strong{margin-bottom:0!important}
.nsf-grafo-experiencia-nivel{display:inline-flex;align-items:center;padding:3px 7px;border:1px dotted #d8cfc5;border-radius:999px;font-size:.65rem;line-height:1;color:var(--nsf-ink-soft);white-space:nowrap}
.nsf-grafo-experiencia-nivel--fuerte{font-weight:700;color:var(--nsf-red);border-color:var(--nsf-red)}
.nsf-grafo-experiencia-nivel--interesante{font-weight:600;color:var(--nsf-ink)}
.nsf-grafo-experiencia-nivel--experimental{opacity:.8}
@media(max-width:600px){.nsf-grafo-experiencia-card-top{align-items:flex-start;flex-direction:column;gap:5px}.nsf-grafo-experiencia-nivel{font-size:.62rem}}


/* 7.6.1 — Memoria de sesión: botón integrado con la plantilla NSF. */
.nsf-grafo-sesion{
  margin:14px 0 18px;
  padding:12px 14px;
  border:1px solid #e5e0db;
  border-radius:14px;
  background:#fff;
  color:var(--nsf-ink,#24211f);
}
.nsf-grafo-sesion-cabecera{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}
.nsf-grafo-sesion-cabecera strong{
  color:#24211f;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.nsf-grafo-sesion-cabecera span{
  color:#8a817a;
  font-size:.7rem;
  line-height:1.3;
  text-align:right;
}
.nsf-grafo-sesion-obras{
  display:flex;
  align-items:center;
  gap:6px;
  overflow-x:auto;
  padding:2px 0 8px;
  scrollbar-width:thin;
}
.nsf-grafo-sesion-obra{
  flex:0 0 auto;
  max-width:180px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding:5px 9px;
  border:1px solid #ded7d0;
  border-radius:999px;
  background:#fff;
  color:#6b625b;
  font-size:.74rem;
  font-weight:700;
}
.nsf-grafo-sesion-separador{
  flex:0 0 auto;
  color:#aaa19a;
  font-size:.78rem;
}
.nsf-grafo-sesion-ver{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:34px;
  margin-top:2px;
  padding:7px 12px;
  border:1px dotted #c92220;
  border-radius:999px;
  background:#fff;
  color:#c92220;
  font:700 .76rem/1.2 inherit;
  letter-spacing:.01em;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}
.nsf-grafo-sesion-ver::before{content:"🧵";font-size:.82rem;line-height:1;}
.nsf-grafo-sesion-ver:hover,.nsf-grafo-sesion-ver:focus-visible{
  background:#fff1ee;
  border-color:#b51f1d;
  color:#b51f1d;
  transform:translateY(-1px);
  outline:none;
}
.nsf-grafo-sesion-ver:active{transform:translateY(0);}
.nsf-grafo-sesion-detalle{
  margin-top:10px;
  padding-top:10px;
  border-top:1px dotted #ddd5cd;
  color:#6b625b;
  font-size:.78rem;
}
.nsf-grafo-sesion-detalle strong{display:block;margin-bottom:5px;color:#24211f;font-size:.74rem;}
.nsf-grafo-sesion-detalle ul{margin:0;padding-left:18px;}
.nsf-grafo-sesion-detalle p{margin:0;}
@media(max-width:600px){
  .nsf-grafo-sesion{padding:11px 12px;border-radius:13px;}
  .nsf-grafo-sesion-cabecera{align-items:flex-start;flex-direction:column;gap:3px;}
  .nsf-grafo-sesion-cabecera span{text-align:left;font-size:.68rem;}
  .nsf-grafo-sesion-ver{width:100%;min-height:36px;}
}

/* 8.0.0 — Personalización de sesión: el recorrido influye en las siguientes recomendaciones. */
.nsf-grafo-sesion-acciones{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px;}
.nsf-grafo-sesion-reset{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:34px;padding:7px 12px;border:1px dotted #bdb3aa;border-radius:999px;
  background:#fff;color:#766d66;font:600 .72rem/1.2 inherit;cursor:pointer;
}
.nsf-grafo-sesion-reset:hover,.nsf-grafo-sesion-reset:focus-visible{border-color:#c92220;color:#c92220;background:#fff8f5;outline:none;}
.nsf-experiencia-siguiente-personalizada{
  display:inline-flex;align-items:center;margin-left:8px;padding:3px 7px;
  border:1px dotted #c92220;border-radius:999px;color:#c92220;
  font:600 .64rem/1.1 inherit;letter-spacing:.01em;font-style:normal;vertical-align:middle;
}
.nsf-experiencia-siguiente-card--personalizada{background:linear-gradient(90deg,rgba(201,34,32,.025),transparent);}
@media(max-width:600px){
  .nsf-grafo-sesion-acciones{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
  .nsf-grafo-sesion-ver,.nsf-grafo-sesion-reset{width:100%;min-height:35px;}
  .nsf-experiencia-siguiente-personalizada{margin-left:6px;font-size:.58rem;}
}


/* ---------- 8.0.4 — foco claro de la obra seleccionada ---------- */
/* En un mapa abierto desde una obra, esa obra es el centro de lectura.
   Los vecinos quedan en primera corona y el resto se atenúa sin cambiar
   de color. Al seleccionar otra, el JS restaura las posiciones base. */
.nsf-grafo-con-seleccion .nsf-nodo-foco {
  opacity:1;
  z-index:5;
}
.nsf-grafo-con-seleccion .nsf-nodo-foco circle{
  r:20px;
  stroke:var(--nsf-navy);
  stroke-width:4px;
  filter:drop-shadow(0 5px 9px rgba(31,42,68,.22));
}
.nsf-grafo-con-seleccion .nsf-nodo-foco text{
  font-size:11px;
  font-weight:700;
  fill:var(--nsf-navy);
}
.nsf-grafo-con-seleccion .nsf-nodo-vecino text{
  opacity:1;
}
.nsf-grafo-con-seleccion .nsf-nodo-apagado{
  opacity:.10;
}

/* ---------- 8.0.6 — foco interactivo del mapa ---------- */
/* La selección se entiende por escala, posición y opacidad. Los colores
   originales de cada obra permanecen intactos. */
.nsf-grafo-con-seleccion .nsf-nodo-foco {
  opacity:1 !important;
  pointer-events:auto;
}
.nsf-grafo-con-seleccion .nsf-nodo-foco circle {
  stroke:var(--nsf-red);
  stroke-width:2.8px;
  filter:drop-shadow(0 5px 8px rgba(31,42,68,.18));
}
.nsf-grafo-con-seleccion .nsf-nodo-foco text {
  fill:var(--nsf-navy);
  font-weight:700;
}
.nsf-grafo-con-seleccion .nsf-nodo-vecino {
  opacity:.92 !important;
}
.nsf-grafo-con-seleccion .nsf-nodo-apagado {
  opacity:.08 !important;
}
.nsf-grafo-con-seleccion .nsf-arista-activa {
  stroke-opacity:1 !important;
  stroke-width:2.4px !important;
}
.nsf-grafo-con-seleccion .nsf-arista-apagada {
  stroke-opacity:.07 !important;
}
@media(max-width:600px){
  .nsf-grafo-con-seleccion .nsf-nodo-foco text{font-size:12px;}
  .nsf-grafo-con-seleccion .nsf-arista-activa{stroke-width:2px !important;}
}

/* ---------- 8.0.5 — botones de "Tu recorrido" alineados con la plantilla NSF ----------
   Los botones de memoria no deben heredar los tamaños tipográficos del tema.
   Se mantienen compactos, ligeros y con el mismo lenguaje visual punteado de NSF. */
.nsf-grafo-sesion .nsf-grafo-sesion-acciones{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  flex-wrap:wrap !important;
  margin:6px 0 0 !important;
}
.nsf-grafo-sesion .nsf-grafo-sesion-acciones > button.nsf-grafo-sesion-ver,
.nsf-grafo-sesion .nsf-grafo-sesion-acciones > button.nsf-grafo-sesion-reset{
  box-sizing:border-box !important;
  display:inline-flex !important;
  width:auto !important;
  min-width:0 !important;
  min-height:34px !important;
  height:auto !important;
  margin:0 !important;
  padding:7px 14px !important;
  border-radius:999px !important;
  background:#fff !important;
  background-image:none !important;
  box-shadow:none !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  font-family:inherit !important;
  font-size:.78rem !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  cursor:pointer !important;
}
.nsf-grafo-sesion .nsf-grafo-sesion-acciones > button.nsf-grafo-sesion-ver{
  border:1px dotted #c92220 !important;
  color:#c92220 !important;
}
.nsf-grafo-sesion .nsf-grafo-sesion-acciones > button.nsf-grafo-sesion-reset{
  border:1px dotted #bdb3aa !important;
  color:#766d66 !important;
}
.nsf-grafo-sesion .nsf-grafo-sesion-ver::before{content:none !important;display:none !important;}
.nsf-grafo-sesion .nsf-grafo-sesion-ver:hover,
.nsf-grafo-sesion .nsf-grafo-sesion-ver:focus-visible{
  background:#fff8f5 !important;
  border-color:#b51f1d !important;
  color:#b51f1d !important;
  transform:none !important;
  outline:none !important;
}
.nsf-grafo-sesion .nsf-grafo-sesion-reset:hover,
.nsf-grafo-sesion .nsf-grafo-sesion-reset:focus-visible{
  background:#fff !important;
  border-color:#c92220 !important;
  color:#c92220 !important;
  outline:none !important;
}
@media(max-width:600px){
  .nsf-grafo-sesion .nsf-grafo-sesion-acciones{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:7px !important;
  }
  .nsf-grafo-sesion .nsf-grafo-sesion-acciones > button.nsf-grafo-sesion-ver,
  .nsf-grafo-sesion .nsf-grafo-sesion-acciones > button.nsf-grafo-sesion-reset{
    width:auto !important;
    flex:0 1 auto !important;
    min-height:34px !important;
    padding:7px 12px !important;
    font-size:.76rem !important;
  }
}


/* 8.0.8 — Panel contextual de obra: escritorio lateral / móvil hoja inferior. */
@media (min-width: 861px){
  .nsf-pagina-mapa .nsf-grafo-fila{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(320px,390px);
    gap:22px;
    align-items:start;
  }
  .nsf-pagina-mapa .nsf-grafo-fila .nsf-grafo-panel{
    position:sticky;
    top:24px;
    margin:0 !important;
    max-height:calc(100vh - 48px);
    overflow:auto;
    box-shadow:0 10px 30px rgba(33,31,28,.06);
  }
}

.nsf-grafo-panel-conexion{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid #e9dfd2;
  background:#fff;
  border-radius:12px;
  padding:10px 12px;
  text-align:left;
  cursor:pointer;
  font:inherit;
  color:var(--nsf-ink);
  transition:border-color .15s ease, transform .15s ease;
}
.nsf-grafo-panel-conexion:hover,
.nsf-grafo-panel-conexion:focus-visible{
  border-color:var(--nsf-red);
  transform:translateY(-1px);
}
.nsf-grafo-panel-conexion-cuerpo{display:grid;gap:2px;min-width:0;}
.nsf-grafo-panel-conexion-cuerpo strong{color:var(--nsf-navy);font-size:.84rem;}
.nsf-grafo-panel-conexion-cuerpo span{color:var(--nsf-ink-soft);font-size:.74rem;line-height:1.35;}
.nsf-grafo-panel-conexion-flecha{color:var(--nsf-red);font-size:1.15rem;flex:0 0 auto;}
.nsf-grafo-panel-acciones{align-items:center;}
.nsf-grafo-panel-tirar-hilo{
  border:0;
  background:var(--nsf-red);
  color:#fff;
  border-radius:999px;
  padding:10px 15px;
  font:inherit;
  font-size:.82rem;
  font-weight:600;
  cursor:pointer;
}
.nsf-grafo-panel-tirar-hilo:hover{filter:brightness(.96);}
.nsf-grafo-ver{font-size:.82rem;}

@media (max-width:860px){
  .nsf-grafo-panel{
    position:fixed !important;
    left:12px !important;
    right:12px !important;
    bottom:12px !important;
    top:auto !important;
    z-index:9998 !important;
    max-height:min(62vh,560px) !important;
    margin:0 !important;
    overflow:auto !important;
    box-shadow:0 18px 45px rgba(20,20,20,.18);
    border-radius:18px !important;
  }
  .nsf-grafo-panel[hidden]{display:none !important;}
  .nsf-grafo-panel::before{
    content:'';
    display:block;
    width:42px;
    height:4px;
    border-radius:99px;
    background:#d8d0c6;
    margin:0 auto 12px;
  }
  .nsf-grafo-panel-cabecera{margin-bottom:12px;}
  .nsf-grafo-panel-acciones{gap:8px;}
  .nsf-grafo-panel-tirar-hilo{flex:1;}
}


/* ================================================================
   8.0.9 — Mapa exploratorio: la ficha seleccionada forma parte del mapa.
   No es un popup ni una columna lateral. Solo aparece tras pulsar una obra.
   ================================================================ */
.nsf-pagina-mapa .nsf-grafo-fila{
  display:block !important;
  margin:0;
}
.nsf-pagina-mapa .nsf-grafo-composicion{
  width:100%;
  min-width:0;
  border:1px solid #e9dfd2;
  border-radius:18px;
  overflow:hidden;
  background:var(--nsf-cream-2);
}
.nsf-pagina-mapa .nsf-grafo-composicion > .nsf-grafo{
  border:0;
  border-radius:0;
}
.nsf-pagina-mapa .nsf-grafo-composicion > .nsf-grafo-panel{
  margin:0 !important;
  border:0;
  border-top:1px dotted #d8cdbb;
  border-radius:0;
  background:#fff;
  box-shadow:none !important;
  padding:16px 20px 17px;
}
.nsf-pagina-mapa .nsf-grafo-panel[hidden]{display:none !important;}

/* La ficha es deliberadamente corta: el mapa sigue siendo el protagonista. */
.nsf-pagina-mapa .nsf-grafo-panel-relacion-destacada,
.nsf-pagina-mapa .nsf-grafo-siguiente-hilo,
.nsf-pagina-mapa .nsf-grafo-caminos-tematicos,
.nsf-pagina-mapa .nsf-grafo-sesion,
.nsf-pagina-mapa .nsf-grafo-experiencias,
.nsf-pagina-mapa .nsf-grafo-panel-genealogia,
.nsf-pagina-mapa .nsf-grafo-evidencia{
  display:none !important;
}
.nsf-pagina-mapa .nsf-grafo-panel-cabecera{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 12px;
}
.nsf-pagina-mapa .nsf-grafo-panel-imagen{
  flex:0 0 52px;
  width:52px;
  height:72px;
  border-radius:7px;
}
.nsf-pagina-mapa .nsf-grafo-panel-cabecera-texto h4{
  margin:3px 0 2px;
  font-family:inherit;
  font-size:1.08rem;
  line-height:1.2;
  font-weight:700;
}
.nsf-pagina-mapa .nsf-grafo-panel-cabecera-texto > p:last-child{
  margin:3px 0 0;
  font-size:.76rem;
  color:var(--nsf-ink-soft);
}
.nsf-pagina-mapa .nsf-grafo-panel-razones{
  margin:0;
  padding-top:11px;
  border-top:1px dotted #ddd5ca;
}
.nsf-pagina-mapa .nsf-grafo-panel-razones-titulo{
  display:block;
  margin:0 0 7px;
  color:var(--nsf-ink-soft);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.nsf-pagina-mapa .nsf-grafo-panel-razones ul{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:0;
  padding:0;
  list-style:none;
}
.nsf-pagina-mapa .nsf-grafo-panel-razones li{
  flex:1 1 220px;
  min-width:0;
}
.nsf-pagina-mapa .nsf-grafo-panel-conexion{
  min-height:0;
  padding:8px 10px;
  border:1px solid #e5ddd2;
  border-radius:9px;
  background:#fff;
  gap:8px;
}
.nsf-pagina-mapa .nsf-grafo-panel-conexion-cuerpo strong{font-size:.78rem;}
.nsf-pagina-mapa .nsf-grafo-panel-conexion-cuerpo span{font-size:.68rem;line-height:1.3;}
.nsf-pagina-mapa .nsf-grafo-panel-conexion-flecha{font-size:1rem;}
.nsf-pagina-mapa .nsf-grafo-panel-acciones{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  margin-top:11px;
}
.nsf-pagina-mapa .nsf-grafo-panel-tirar-hilo{
  border:1px dotted var(--nsf-red);
  background:#fff;
  color:var(--nsf-red);
  border-radius:999px;
  padding:7px 13px;
  font-size:.76rem;
  font-weight:600;
}
.nsf-pagina-mapa .nsf-grafo-panel-tirar-hilo:hover{background:#fff8f6;filter:none;}
.nsf-pagina-mapa .nsf-grafo-ver{
  font-size:.72rem;
  color:var(--nsf-ink-soft);
  text-decoration:underline;
  text-underline-offset:3px;
}
.nsf-pagina-mapa .nsf-grafo-cerrar{
  margin:8px 0 0;
  padding:0;
  border:0;
  background:none;
  color:var(--nsf-ink-soft);
  font:inherit;
  font-size:.7rem;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}
@media(max-width:600px){
  .nsf-pagina-mapa .nsf-grafo-composicion{border-radius:14px;}
  .nsf-pagina-mapa .nsf-grafo-composicion > .nsf-grafo-panel{
    padding:13px 14px 14px;
  }
  .nsf-pagina-mapa .nsf-grafo-panel-cabecera{gap:10px;margin-bottom:9px;}
  .nsf-pagina-mapa .nsf-grafo-panel-imagen{flex-basis:44px;width:44px;height:60px;}
  .nsf-pagina-mapa .nsf-grafo-panel-cabecera-texto h4{font-size:.98rem;}
  .nsf-pagina-mapa .nsf-grafo-panel-cabecera-texto > p:last-child{font-size:.68rem;}
  .nsf-pagina-mapa .nsf-grafo-panel-razones ul{display:grid;grid-template-columns:1fr;gap:6px;}
  .nsf-pagina-mapa .nsf-grafo-panel-conexion{padding:7px 9px;}
  .nsf-pagina-mapa .nsf-grafo-panel-acciones{margin-top:9px;gap:8px;}
  .nsf-pagina-mapa .nsf-grafo-panel-tirar-hilo{padding:6px 11px;font-size:.7rem;}
  .nsf-pagina-mapa .nsf-grafo-ver{font-size:.68rem;}
}

/* 8.1.0 — Panel inferior del mapa.
   El mapa permanece limpio y el panel se despliega debajo del lienzo,
   nunca como popup ni como elemento fijo sobre la pantalla. */
.nsf-pagina-mapa .nsf-grafo-fila{
  display:block !important;
}
.nsf-pagina-mapa .nsf-grafo-composicion > .nsf-grafo-panel{
  position:relative !important;
  inset:auto !important;
  width:100% !important;
  max-width:none !important;
  max-height:none !important;
  height:auto !important;
  margin:0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  border:0 !important;
  border-top:1px dotted #d8cdbb !important;
  border-radius:0 !important;
  background:#fff !important;
  box-shadow:none !important;
  padding:0 20px !important;
}
.nsf-pagina-mapa .nsf-grafo-composicion > .nsf-grafo-panel[hidden]{
  display:none !important;
}
.nsf-pagina-mapa .nsf-grafo-composicion > .nsf-grafo-panel:not([hidden]){
  padding-top:16px !important;
  padding-bottom:17px !important;
  animation:nsf-grafo-panel-desplegar .22s ease-out both;
}
@keyframes nsf-grafo-panel-desplegar{
  from{opacity:0;transform:translateY(-8px);}
  to{opacity:1;transform:translateY(0);}
}

/* El panel inferior es deliberadamente corto y funcional. */
.nsf-pagina-mapa .nsf-grafo-panel-relacion-destacada,
.nsf-pagina-mapa .nsf-grafo-siguiente-hilo,
.nsf-pagina-mapa .nsf-grafo-caminos-tematicos,
.nsf-pagina-mapa .nsf-grafo-sesion,
.nsf-pagina-mapa .nsf-grafo-panel-genealogia,
.nsf-pagina-mapa .nsf-grafo-evidencia{
  display:none !important;
}
.nsf-pagina-mapa .nsf-grafo-panel-cabecera{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 11px;
}
.nsf-pagina-mapa .nsf-grafo-panel-imagen{
  flex:0 0 50px;
  width:50px;
  height:68px;
  border-radius:7px;
}
.nsf-pagina-mapa .nsf-grafo-panel-cabecera-texto{min-width:0;}
.nsf-pagina-mapa .nsf-grafo-panel-cabecera-texto h4{
  margin:3px 0 2px;
  font-family:inherit;
  font-size:1.02rem;
  line-height:1.2;
  font-weight:600;
}
.nsf-pagina-mapa .nsf-grafo-panel-cabecera-texto > p:last-child{
  margin:3px 0 0;
  font-size:.72rem;
}
.nsf-pagina-mapa .nsf-grafo-panel-razones{
  margin:0;
  padding-top:10px;
  border-top:1px dotted #ddd5ca;
}
.nsf-pagina-mapa .nsf-grafo-panel-razones-titulo{
  display:block;
  margin:0 0 6px;
  color:var(--nsf-ink-soft);
  font-size:.66rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.nsf-pagina-mapa .nsf-grafo-panel-razones ul{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0;
  padding:0;
  list-style:none;
}
.nsf-pagina-mapa .nsf-grafo-panel-conexion{
  min-height:0;
  padding:7px 9px;
  border:1px dotted #d8cdbb;
  border-radius:8px;
  background:#fff;
  gap:8px;
}
.nsf-pagina-mapa .nsf-grafo-panel-conexion-cuerpo strong{font-size:.76rem;font-weight:600;}
.nsf-pagina-mapa .nsf-grafo-panel-conexion-cuerpo span{font-size:.67rem;line-height:1.3;}
.nsf-pagina-mapa .nsf-grafo-panel-conexion-flecha{font-size:.95rem;}
.nsf-pagina-mapa .nsf-grafo-panel-acciones{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:9px;
  margin-top:10px;
}
.nsf-pagina-mapa .nsf-grafo-panel-tirar-hilo{
  border:1px dotted var(--nsf-red);
  background:#fff;
  color:var(--nsf-red);
  border-radius:999px;
  padding:6px 12px;
  font-size:.72rem;
  font-weight:500;
}
.nsf-pagina-mapa .nsf-grafo-ver{
  font-size:.69rem;
  color:var(--nsf-ink-soft);
  text-decoration:underline;
  text-underline-offset:3px;
}
.nsf-pagina-mapa .nsf-grafo-cerrar{
  margin:7px 0 0;
  padding:0;
  border:0;
  background:none;
  color:var(--nsf-ink-soft);
  font:inherit;
  font-size:.67rem;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
}

@media(max-width:600px){
  .nsf-pagina-mapa .nsf-grafo-composicion{border-radius:14px;}
  .nsf-pagina-mapa .nsf-grafo-composicion > .nsf-grafo-panel{
    padding-left:13px !important;
    padding-right:13px !important;
  }
  .nsf-pagina-mapa .nsf-grafo-composicion > .nsf-grafo-panel:not([hidden]){
    padding-top:12px !important;
    padding-bottom:13px !important;
  }
  .nsf-pagina-mapa .nsf-grafo-panel-cabecera{gap:9px;margin-bottom:8px;}
  .nsf-pagina-mapa .nsf-grafo-panel-imagen{flex-basis:42px;width:42px;height:57px;}
  .nsf-pagina-mapa .nsf-grafo-panel-cabecera-texto h4{font-size:.95rem;}
  .nsf-pagina-mapa .nsf-grafo-panel-cabecera-texto > p:last-child{font-size:.66rem;}
  .nsf-pagina-mapa .nsf-grafo-panel-razones ul{display:grid;grid-template-columns:1fr;gap:5px;}
  .nsf-pagina-mapa .nsf-grafo-panel-conexion{padding:6px 8px;}
  .nsf-pagina-mapa .nsf-grafo-panel-acciones{margin-top:8px;gap:7px;}
  .nsf-pagina-mapa .nsf-grafo-panel-tirar-hilo{padding:6px 10px;font-size:.69rem;}
  .nsf-pagina-mapa .nsf-grafo-ver{font-size:.66rem;}
}


/* =========================================================
   Mi recorrido — componente limpio
   ========================================================= */
.nsf-mi-recorrido{
    margin:0 0 18px;
    padding:15px 17px;
    border:1px dotted #c92220;
    border-radius:10px;
    background:#fff;
}
.nsf-mi-recorrido[hidden]{display:none!important}
.nsf-mi-recorrido-cabecera{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    flex-wrap:wrap;
}
.nsf-mi-recorrido-cabecera strong{
    display:block;
    color:#c92220;
    font-weight:600;
}
.nsf-mi-recorrido-cabecera > div:first-child{display:flex;align-items:center;gap:10px;}

.nsf-mi-recorrido-cabecera span{
    display:block;
    margin-top:3px;
    font-size:.82rem;
    opacity:.68;
}
.nsf-mi-recorrido-cabecera > div:first-child span{margin-top:0;}
@media(max-width:600px){.nsf-mi-recorrido-cabecera > div:first-child{gap:7px;flex-wrap:wrap;}}

.nsf-mi-recorrido-toggle{
    margin-left:auto;
    min-height:34px;
    padding:7px 13px;
    border:1px solid #c92220;
    border-radius:7px;
    background:#c92220;
    color:#fff;
    font:inherit;
    font-size:.84rem;
    font-weight:600;
    cursor:pointer;
    text-decoration:none;
    transition:background-color .15s ease,border-color .15s ease;
}
.nsf-mi-recorrido-toggle:hover{
    background:#a91d1b;
    border-color:#a91d1b;
    color:#fff;
    text-decoration:none;
}
.nsf-mi-recorrido-toggle:focus-visible{
    outline:2px solid currentColor;
    outline-offset:2px;
}
.nsf-mi-recorrido-detalle{margin-top:13px}
.nsf-mi-recorrido-detalle ol{margin:0 0 11px;padding-left:25px}
.nsf-mi-recorrido-obra{
    padding:5px 0;
    background:none;
    border:0;
    color:inherit;
    font:inherit;
    text-align:left;
    cursor:pointer;
}
.nsf-mi-recorrido-obra:hover{color:#c92220;text-decoration:underline}
.nsf-mi-recorrido-reset{
    padding:0;
    background:none;
    border:0;
    color:inherit;
    font:inherit;
    font-size:.82rem;
    opacity:.65;
    text-decoration:underline;
    cursor:pointer;
}
@media (max-width:600px){
    .nsf-mi-recorrido-cabecera{align-items:flex-start}
    .nsf-mi-recorrido-toggle{
        margin-left:0;
        margin-top:5px;
        width:auto;
    }
}
/* El recorrido de navegación también conserva todos los pasos y permite
   desplazarse horizontalmente cuando ya no caben en una línea. */
.nsf-grafo-hilo-pasos{
	max-width:100%;
	overflow-x:auto !important;
	overflow-y:hidden;
	scrollbar-width:thin;
}
.nsf-grafo-hilo-pasos::-webkit-scrollbar{
	height:6px;
}
.nsf-grafo-hilo-pasos::-webkit-scrollbar-thumb{
	background:rgba(201,34,32,.35);
	border-radius:10px;
}

/* 8.3.0 — Orbe enfocado */
.nsf-grafo-mi-recorrido{position:relative;}
.nsf-grafo-svg .nsf-nodo-foco{
	/* La jerarquía se consigue por posición, no por cambio de color. */
}
.nsf-grafo-svg .nsf-nodo-vecino{opacity:.95;}
.nsf-grafo-svg .nsf-nodo-apagado{opacity:.48;}

/* Títulos de obra: español como título principal y original/idioma en segundo plano. */
.nsf-titulo-es{display:block;}
.nsf-titulo-original{display:block;margin-top:3px;font-size:.68em;line-height:1.25;font-weight:500;color:var(--nsf-ink-soft,#687582);}
.nsf-ficha-publica .nsf-destacado h1 .nsf-titulo-original{font-size:.42em;font-weight:500;letter-spacing:.01em;}
.nsf-ficha-publica .nsf-obra-texto h4 .nsf-titulo-original{font-size:.72em;}

/* v9.5.97 — CTA «Ver en…»: el hover no puede volver a poner el fondo claro.
 * front.css se carga después de algunos estilos de rediseño, por lo que
 * esta regla final fija de forma inequívoca fondo y texto en ambos estados.
 */
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:visited {
  background:#fff !important;
  border:1px solid #c3262c !important;
  color:#c3262c !important;
  -webkit-text-fill-color:#c3262c !important;
  text-decoration:none !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta .nsf-destacado-cta-texto,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta .nsf-destacado-cta-externo {
  color:#c3262c !important;
  -webkit-text-fill-color:#c3262c !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:hover,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:focus-visible {
  background:#c3262c !important;
  border-color:#c3262c !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 5px 12px rgba(195,38,44,.18) !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:hover .nsf-destacado-cta-texto,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:hover .nsf-destacado-cta-externo,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:focus-visible .nsf-destacado-cta-texto,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:focus-visible .nsf-destacado-cta-externo {
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:hover .nsf-destacado-cta-icono,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:hover .nsf-destacado-cta-icono rect,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:hover .nsf-destacado-cta-icono path,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:focus-visible .nsf-destacado-cta-icono,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:focus-visible .nsf-destacado-cta-icono rect,
html body .nsf-obra-page .nsf-ficha-publica .nsf-destacado-cta:focus-visible .nsf-destacado-cta-icono path {
  color:#fff !important;
  stroke:#fff !important;
}


/* v9.5.98 — hover accesible y consistente para «Copiar como texto» y «Descargar .txt».
 * Estos botones forman parte de la misma familia visual que «¿Te lo llevas?».
 * Se fijan aquí al final para evitar que las reglas históricas de la ficha
 * vuelvan a imponer el hover azul o texto de bajo contraste.
 */
html body .nsf-obra-page .nsf-ficha-publica .nsf-llevar-btn,
html body .nsf-obra-page .nsf-ficha-publica .nsf-llevar-btn:visited {
  background:#a3262a !important;
  border:1px solid #a3262a !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  text-decoration:none !important;
  transition:background-color .14s ease, border-color .14s ease, transform .14s ease, box-shadow .14s ease !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-llevar-btn:hover {
  background:#861f23 !important;
  border-color:#861f23 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 5px 12px rgba(134,31,35,.18) !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-llevar-btn:focus-visible {
  background:#861f23 !important;
  border-color:#861f23 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 0 0 3px rgba(195,38,44,.22), 0 5px 12px rgba(134,31,35,.18) !important;
  outline:2px solid #17223d !important;
  outline-offset:2px !important;
}


/* NSF 9.5.110 — relaciones visibles en las tarjetas del escaparate principal */
.nsf-rel-card .nsf-obra-pie{margin:0 16px 14px;padding:10px 12px;border-top:1px solid #eadfce;background:#fffaf1;box-sizing:border-box;}
.nsf-rel-card .nsf-obra-pie .nsf-pie-texto{display:block;min-width:0;}
.nsf-rel-card .nsf-obra-pie .nsf-reltipo{display:inline-block;margin-bottom:4px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
.nsf-rel-card .nsf-obra-pie p{margin:3px 0 0;font-size:13px;line-height:1.45;}
.nsf-rel-card .nsf-obra-pie .nsf-nudo{color:#c9252d;vertical-align:middle;margin-right:6px;}
.nsf-rel-card-acciones{display:flex;align-items:center;gap:8px;padding:0 16px 16px;flex-wrap:wrap;}
.nsf-rel-card-acciones .nsf-adn-publico{margin:0;}
.nsf-rel-card-acciones .nsf-adn-toggle{min-height:38px;}
.nsf-rel-card-acciones .nsf-info-ia-btn{min-height:34px;}

/* 9.5.111 — relaciones visibles y ADN en tarjetas de la ficha principal */
.nsf-ficha-publica .nsf-relacion-card-completa-relacion{display:flex;align-items:flex-start;gap:9px;margin:0;padding:12px 15px 13px;border-top:1px solid #e8ebef;background:#fffaf0;color:#26324a !important;}
.nsf-ficha-publica .nsf-relacion-card-completa-rel-icono{flex:0 0 auto;color:#c9252d !important;font-size:1rem;line-height:1.1;}
.nsf-ficha-publica .nsf-relacion-card-completa-rel{display:block;margin:0 0 4px;color:#172033 !important;font-size:.66rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase;}
.nsf-ficha-publica .nsf-relacion-card-completa-relacion p{margin:0;color:#3e4755 !important;font-size:.86rem;line-height:1.45;}
.nsf-ficha-publica .nsf-rel-card-adn{display:block;margin:0;padding:0 15px 15px;width:auto;}
.nsf-ficha-publica .nsf-rel-card-adn .nsf-adn-toggle{width:100%;min-height:38px;}

/* 9.5.116 — enriquecimiento real de relaciones en la ficha principal. */
.nsf-ficha-publica .nsf-rel-card-relacion-wrap:empty,
.nsf-ficha-publica .nsf-rel-card-acciones[hidden] {
  display: none !important;
}
.nsf-ficha-publica .nsf-rel-card-relacion-wrap {
  display: block;
}
.nsf-ficha-publica .nsf-rel-card-acciones:not([hidden]) {
  display: flex;
}

/* 9.5.118 — La relación y el acceso al ADN deben ser visibles desde el primer render. */
.nsf-ficha-publica .nsf-rel-card-relacion-wrap{display:block!important;visibility:visible!important;}
.nsf-ficha-publica .nsf-rel-card-relacion{display:flex;align-items:flex-start;gap:9px;margin:0;padding:12px 15px 13px;border-top:1px solid #e8ebef;background:#fffaf0;color:#26324a;box-sizing:border-box;}
.nsf-ficha-publica .nsf-rel-card-relacion-icono{flex:0 0 auto;color:#c9252d;font-size:19px;line-height:1.1;}
.nsf-ficha-publica .nsf-rel-card-relacion-texto{display:flex;flex-direction:column;gap:3px;min-width:0;}
.nsf-ficha-publica .nsf-rel-card-relacion-texto strong{display:block;color:#172033;font-size:10px;font-weight:850;letter-spacing:.06em;text-transform:uppercase;}
.nsf-ficha-publica .nsf-rel-card-relacion-texto span{display:block;color:#3e4755;font-size:13px;line-height:1.45;}
.nsf-ficha-publica .nsf-rel-card-acciones{display:flex!important;align-items:center;gap:8px;padding:0 15px 15px;flex-wrap:wrap;visibility:visible!important;}
.nsf-ficha-publica .nsf-rel-card-acciones .nsf-adn-publico{display:block!important;margin:0;visibility:visible!important;}
.nsf-ficha-publica .nsf-rel-card-acciones .nsf-adn-toggle{display:flex!important;visibility:visible!important;}

/* NSF 9.5.121 — acabado visual de las relaciones de la ficha principal */
.nsf-ficha-publica .nsf-rel-card-relacion-wrap{
  background:transparent !important;
  border:0 !important;
}
.nsf-ficha-publica .nsf-rel-card-relacion{
  background:transparent !important;
  border-top:1px solid #e8ebef !important;
  padding:14px 15px 10px !important;
}
.nsf-ficha-publica .nsf-rel-card-acciones{
  justify-content:center !important;
  padding:4px 15px 16px !important;
  background:transparent !important;
}
.nsf-ficha-publica .nsf-rel-card-acciones .nsf-adn-publico{
  width:auto !important;
}
.nsf-ficha-publica .nsf-rel-card-acciones .nsf-adn-toggle{
  width:auto !important;
  min-width:190px;
}
@media (max-width: 700px){
  .nsf-ficha-publica .nsf-rel-card-acciones .nsf-adn-toggle{
    width:100% !important;
    min-width:0;
  }
}


/* NSF 9.5.128 — vista completa de relaciones: misma familia visual que las tarjetas principales. */
.nsf-ficha-publica.nsf-relaciones-completas .nsf-lista-obras{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
  align-items:stretch !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:0 !important;
  padding:0 !important;
  background:#fff !important;
  border:1px solid #e1e4e8 !important;
  border-radius:12px !important;
  overflow:hidden !important;
  min-width:0 !important;
  box-shadow:0 4px 14px rgba(23,32,51,.06) !important;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa:hover{
  transform:translateY(-2px) !important;
  border-color:#c9252d !important;
  box-shadow:0 10px 24px rgba(23,32,51,.10) !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-enlace{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  flex:0 0 auto !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  text-decoration:none !important;
  background:#fff !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-media{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:210px !important;
  flex:0 0 210px !important;
  background:#f5f6f8 !important;
  overflow:hidden !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-media img{
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  height:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-cuerpo{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:5px !important;
  width:100% !important;
  padding:14px 15px 16px !important;
  box-sizing:border-box !important;
  background:#fff !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-tipo{
  display:inline-flex !important;
  align-items:center !important;
  padding:4px 9px !important;
  border-radius:999px !important;
  background:#fff0f1 !important;
  color:#a51f25 !important;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-titulo{
  display:block !important;
  color:#172033 !important;
  font-size:1rem !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  margin:0 !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-titulo small{
  display:block !important;
  margin-top:3px !important;
  color:#7a8190 !important;
  font-size:.76rem !important;
  font-weight:500 !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-meta{
  display:block !important;
  color:#6d7480 !important;
  font-size:.74rem !important;
  line-height:1.35 !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-relacion{
  display:flex !important;
  align-items:flex-start !important;
  gap:9px !important;
  margin:0 !important;
  padding:12px 15px 10px !important;
  border-top:1px solid #e7eaee !important;
  background:#fff !important;
  color:#3e4755 !important;
  box-sizing:border-box !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-rel-icono{
  flex:0 0 auto !important;
  color:#c9252d !important;
  font-size:18px !important;
  line-height:1.1 !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-rel{
  display:block !important;
  margin:0 0 3px !important;
  color:#172033 !important;
  font-size:10px !important;
  font-weight:800 !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-relacion p{
  margin:0 !important;
  color:#4b5563 !important;
  font-family:inherit !important;
  font-size:.82rem !important;
  font-style:italic !important;
  line-height:1.45 !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-rel-card-adn{
  display:flex !important;
  justify-content:center !important;
  width:100% !important;
  margin:0 !important;
  padding:8px 15px 15px !important;
  box-sizing:border-box !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-rel-card-adn .nsf-adn-toggle{
  width:auto !important;
  min-width:190px !important;
}
.nsf-ficha-publica.nsf-relaciones-completas .nsf-relacionados-acciones{
  justify-content:flex-end !important;
}
@media (max-width:1100px){
  .nsf-ficha-publica.nsf-relaciones-completas .nsf-lista-obras{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
}
@media (max-width:820px){
  .nsf-ficha-publica.nsf-relaciones-completas .nsf-lista-obras{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media (max-width:560px){
  .nsf-ficha-publica.nsf-relaciones-completas .nsf-lista-obras{grid-template-columns:1fr !important;}
  .nsf-ficha-publica.nsf-relaciones-completas .nsf-relacion-card-completa-media{height:240px !important;flex-basis:240px !important;}
}


/* NSF 9.5.143 — ADN relacionado con el mismo estilo visual que «Verificación de datos».
 * El botón debe ser blanco, fino y redondeado, nunca el CTA rojo del ADN de la ficha principal.
 */
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:visited {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  min-width:180px !important;
  min-height:38px !important;
  margin:0 !important;
  padding:3px 11px !important;
  border:1px solid #e2d8c8 !important;
  border-radius:999px !important;
  background:transparent !important;
  color:#4a423c !important;
  -webkit-text-fill-color:#4a423c !important;
  box-shadow:none !important;
  font-size:.72rem !important;
  font-weight:600 !important;
  letter-spacing:.02em !important;
  line-height:1 !important;
  text-decoration:none !important;
  cursor:pointer !important;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease,transform .14s ease,box-shadow .14s ease !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn .nsf-adn-toggle-icon,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn .nsf-adn-toggle-texto,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn .nsf-adn-toggle-flecha {
  color:#4a423c !important;
  -webkit-text-fill-color:#4a423c !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn .nsf-adn-icon-svg path {
  stroke:#4a423c !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:hover,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:focus-visible {
  background:#f5ede4 !important;
  border-color:#c9252d !important;
  color:#c9252d !important;
  -webkit-text-fill-color:#c9252d !important;
  transform:translateY(-1px) !important;
  box-shadow:0 3px 8px rgba(31,42,68,.08) !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:hover .nsf-adn-toggle-icon,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:hover .nsf-adn-toggle-texto,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:hover .nsf-adn-toggle-flecha,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:focus-visible .nsf-adn-toggle-icon,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:focus-visible .nsf-adn-toggle-texto,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:focus-visible .nsf-adn-toggle-flecha {
  color:#c9252d !important;
  -webkit-text-fill-color:#c9252d !important;
}
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:hover .nsf-adn-icon-svg path,
html body .nsf-obra-page .nsf-ficha-publica .nsf-rel-card-datos-acciones button.nsf-adn-datos-btn:focus-visible .nsf-adn-icon-svg path {
  stroke:#c9252d !important;
}

/* 9.5.162 — Exportar datos de la ficha: solo dos acciones. */
body.single-nsf_producto .nsf-ficha-publica .nsf-ficha-exportar{
  margin-top:22px;
  padding-top:14px;
  border-top:1px solid #e7e1d7;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
body.single-nsf_producto .nsf-ficha-publica .nsf-ficha-exportar .nsf-llevar-botones{
  display:flex; gap:8px; flex-wrap:wrap;
}
body.single-nsf_producto .nsf-ficha-publica .nsf-ficha-exportar .nsf-llevar-btn{
  background:#fff;
  color:var(--nsf-navy);
  border:1px solid #e2d8c8;
  border-radius:999px;
  padding:8px 14px;
  min-height:36px;
  font:inherit;
  font-size:.78rem;
  font-weight:650;
  cursor:pointer;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease,transform .14s ease,box-shadow .14s ease;
}
body.single-nsf_producto .nsf-ficha-publica .nsf-ficha-exportar .nsf-llevar-btn:hover,
body.single-nsf_producto .nsf-ficha-publica .nsf-ficha-exportar .nsf-llevar-btn:focus-visible{
  background:#f8f3eb;
  border-color:#c9bba4;
  color:var(--nsf-navy);
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(36,47,74,.08);
}
@media (max-width:640px){
  body.single-nsf_producto .nsf-ficha-publica .nsf-ficha-exportar{justify-content:center;}
  body.single-nsf_producto .nsf-ficha-publica .nsf-ficha-exportar .nsf-llevar-botones{width:100%; justify-content:center;}
  body.single-nsf_producto .nsf-ficha-publica .nsf-ficha-exportar .nsf-llevar-btn{flex:0 1 auto;}
}


/* NSF 9.5.182 — aviso visible para ampliar imágenes en móvil.
 * Los botones .nsf-zoom ya abren el visor; aquí solo hacemos visible la acción.
 */
@media (max-width:680px){
  .nsf-obra-page .nsf-zoom{
    position:relative !important;
  }
  .nsf-obra-page .nsf-zoom::after{
    content:"Pulsa para ver pantalla completa";
    position:absolute;
    left:10px;
    right:10px;
    bottom:10px;
    z-index:8;
    min-height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    padding:9px 12px;
    border:1px solid rgba(255,255,255,.78);
    border-radius:999px;
    background:rgba(25,35,57,.88);
    color:#fff;
    font:600 13px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    text-align:center;
    box-shadow:0 3px 12px rgba(0,0,0,.24);
    pointer-events:none;
  }
}


/* ================================================================
   NSF 9.5.308 — Rediseño editorial de Tira del Hilo
   Solo afecta a la página que carga el buscador desde la plantilla
   /tira-del-hilo/. No modifica el comportamiento del buscador.
   ================================================================ */
#nsf-tira-del-hilo {
  --nsf-page-red:#e21f2f;
  --nsf-page-ink:#151515;
  --nsf-page-muted:#5d5d5d;
  --nsf-page-line:#d9d9d9;
  max-width:1120px;
  margin:0 auto;
  padding:48px 28px 80px;
  color:var(--nsf-page-ink);
}

#nsf-tira-del-hilo .nsf-buscador{
  color:var(--nsf-page-ink);
}

/* Cabecera: editorial, blanca y sin aspecto de tarjeta. */
#nsf-tira-del-hilo .nsf-hero{
  border:0;
  border-radius:0;
  box-shadow:none;
  background:#fff;
  padding:0 0 28px;
  text-align:left;
  position:relative;
}
#nsf-tira-del-hilo .nsf-hero::after{
  content:"";
  display:block;
  width:64px;
  height:4px;
  background:var(--nsf-page-red);
  margin-top:20px;
}
#nsf-tira-del-hilo .nsf-hero .nsf-hero-title,
#nsf-tira-del-hilo .nsf-hero h1.nsf-hero-title,
#nsf-tira-del-hilo .nsf-hero h2.nsf-hero-title,
#nsf-tira-del-hilo .nsf-hero h3.nsf-hero-title{
  text-align:left;
  margin:0;
  color:var(--nsf-page-red) !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,4vw,3rem);
  font-weight:400;
  line-height:1.08;
}
#nsf-tira-del-hilo .nsf-hero .nsf-hero-inicio{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  color:inherit;
  font:inherit;
  cursor:pointer;
}
#nsf-tira-del-hilo .nsf-hero .nsf-hero-lede{
  max-width:760px;
  margin:18px 0 0;
  color:var(--nsf-page-muted) !important;
  font-size:1rem;
  line-height:1.7;
}
#nsf-tira-del-hilo .nsf-hero .nsf-hero-apoyo{
  max-width:760px;
  margin:8px 0 0;
  color:var(--nsf-page-muted);
  font-size:.9rem;
}

/* Los tres pasos dejan de parecer chips y pasan a funcionar como una
   pequeña guía editorial. */
#nsf-tira-del-hilo .nsf-hero-pasos{
  justify-content:flex-start;
  gap:0;
  margin:26px 0 0;
  border-top:1px dotted var(--nsf-page-line);
  border-bottom:1px dotted var(--nsf-page-line);
  padding:0;
}
#nsf-tira-del-hilo .nsf-hero-pasos li{
  flex:1 1 0;
  min-width:0;
  background:#fff;
  border:0;
  border-radius:0;
  border-right:1px dotted var(--nsf-page-line);
  padding:16px 20px 16px 0;
  margin-right:20px;
  color:var(--nsf-page-ink);
  font-size:.86rem;
  line-height:1.45;
}
#nsf-tira-del-hilo .nsf-hero-pasos li:last-child{
  border-right:0;
  margin-right:0;
}
#nsf-tira-del-hilo .nsf-paso-num{
  width:auto;
  height:auto;
  line-height:1;
  border-radius:0;
  background:none;
  color:var(--nsf-page-red);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.68rem;
  margin-right:5px;
}

/* Buscador protagonista. */
#nsf-tira-del-hilo .nsf-search-shell{
  max-width:820px;
  margin:34px auto 0;
  padding:0;
}
#nsf-tira-del-hilo .nsf-search-box{
  border:1.5px solid var(--nsf-page-ink);
  border-radius:0;
  box-shadow:none;
  padding:0;
  background:#fff;
}
#nsf-tira-del-hilo .nsf-search-box:focus-within{
  box-shadow:0 0 0 3px rgba(226,31,47,.16);
  border-color:var(--nsf-page-red);
}
#nsf-tira-del-hilo .nsf-search-row{
  min-height:58px;
  padding:9px 16px;
}
#nsf-tira-del-hilo .nsf-search-row svg circle,
#nsf-tira-del-hilo .nsf-search-row svg path{
  stroke:var(--nsf-page-red);
}
#nsf-tira-del-hilo #nsf-search-input{
  font-size:1rem;
}
#nsf-tira-del-hilo .nsf-suggestions{
  top:calc(100% + 4px);
  border:1px solid var(--nsf-page-line);
  border-radius:0;
  box-shadow:0 10px 24px rgba(0,0,0,.10);
}
#nsf-tira-del-hilo .nsf-sugg-item:hover,
#nsf-tira-del-hilo .nsf-sugg-item.nsf-active{
  background:#fff4f4;
}

/* Explorar y contenido: misma retícula editorial del resto de NSF. */
#nsf-tira-del-hilo .nsf-explorar{
  max-width:none;
  margin:42px 0 0;
  padding:22px 0 24px;
  border:0;
  border-top:1px dotted var(--nsf-page-line);
  border-bottom:1px dotted var(--nsf-page-line);
  border-radius:0;
  background:#fff;
}
#nsf-tira-del-hilo .nsf-explorar-cabecera h3{
  color:var(--nsf-page-red);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.45rem;
  font-weight:400;
}
#nsf-tira-del-hilo .nsf-explorar-cabecera p{
  color:var(--nsf-page-muted);
}
#nsf-tira-del-hilo .nsf-explorar-opcion{
  border:1px solid var(--nsf-page-line);
  border-radius:0;
  background:#fff;
}
#nsf-tira-del-hilo .nsf-explorar-opcion:hover{
  border-color:var(--nsf-page-red);
  background:#fff8f8;
  transform:none;
}
#nsf-tira-del-hilo .nsf-explorar-icono{
  border-radius:0;
  background:#fff1f1;
  color:var(--nsf-page-red);
}

#nsf-tira-del-hilo .nsf-ultimas,
#nsf-tira-del-hilo .nsf-results,
#nsf-tira-del-hilo .nsf-empty,
#nsf-tira-del-hilo .nsf-form-slot{
  max-width:none;
}
#nsf-tira-del-hilo .nsf-ultimas{
  text-align:left;
  padding-left:0;
  padding-right:0;
}
#nsf-tira-del-hilo .nsf-ultimas .nsf-ultimas-titulo{
  color:var(--nsf-page-red);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.35rem;
  font-weight:400;
}

#nsf-tira-del-hilo .nsf-thread-block{
  margin-bottom:42px;
  border-top:1px dotted var(--nsf-page-line);
  padding-top:18px;
}
#nsf-tira-del-hilo .nsf-eyebrow{
  color:var(--nsf-page-red);
}
#nsf-tira-del-hilo .nsf-conn-card{
  border-radius:0;
  border:1px solid var(--nsf-page-line);
  background:#fff;
}
#nsf-tira-del-hilo .nsf-conn-card h5{
  color:var(--nsf-page-ink);
}

#nsf-tira-del-hilo .nsf-aporta{
  margin-top:44px;
  border-radius:0;
  background:#fff8f8;
  border:1px dashed #e8aeb3;
}
#nsf-tira-del-hilo .nsf-aporta-texto{
  color:var(--nsf-page-red);
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:1.25rem;
}

@media (max-width:760px){
  #nsf-tira-del-hilo{padding:32px 18px 56px;}
  #nsf-tira-del-hilo .nsf-hero-pasos{display:block;}
  #nsf-tira-del-hilo .nsf-hero-pasos li{
    display:block;
    border-right:0;
    border-bottom:1px dotted var(--nsf-page-line);
    padding:13px 0;
    margin:0;
  }
  #nsf-tira-del-hilo .nsf-hero-pasos li:last-child{border-bottom:0;}
  #nsf-tira-del-hilo .nsf-explorar-cabecera{display:block;}
  #nsf-tira-del-hilo .nsf-explorar-cabecera p{text-align:left;margin-top:4px;}
}


/* ================================================================
   TIRA DEL HILO — APARIENCIA NSF 9.5.309
   Esta capa se limita al shortcode de Tira del hilo para no afectar
   las fichas, mapas ni otros usos del buscador.
   ================================================================ */
#nsf-tira-del-hilo{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  padding:0 28px 70px;
  box-sizing:border-box;
}
#nsf-tira-del-hilo .nsf-buscador{
  width:100%;
  max-width:none;
  background:#fff;
  --nsf-red:#d92f2f;
  --nsf-ink:#211b18;
  --nsf-ink-soft:#665d57;
}
#nsf-tira-del-hilo .nsf-hero{
  border:0;
  border-radius:0;
  box-shadow:none;
  background:#fff;
  padding:72px 20px 48px;
  position:relative;
}
#nsf-tira-del-hilo .nsf-hero::after{
  content:"";
  display:block;
  width:72px;
  height:3px;
  background:var(--nsf-red);
  margin:24px auto 0;
}
#nsf-tira-del-hilo .nsf-hero-title{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.25rem,5vw,3.7rem) !important;
  font-weight:500 !important;
  letter-spacing:-.035em;
  line-height:1.04 !important;
}
#nsf-tira-del-hilo .nsf-hero-title .nsf-hero-inicio{
  font:inherit;
  color:var(--nsf-red) !important;
  border:0;
  background:transparent;
  padding:0;
}
#nsf-tira-del-hilo .nsf-hero-lede{
  max-width:700px;
  margin:18px auto 0;
  font-size:1.08rem;
  line-height:1.65;
  color:var(--nsf-ink-soft) !important;
}
#nsf-tira-del-hilo .nsf-hero-apoyo{
  margin-top:12px;
  font-size:.82rem;
  font-style:italic;
  color:#877b73;
}
#nsf-tira-del-hilo .nsf-hero-pasos{
  max-width:900px;
  margin:34px auto 0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px dashed #d8cdc4;
  border-bottom:1px dashed #d8cdc4;
}
#nsf-tira-del-hilo .nsf-hero-pasos li{
  border:0;
  border-radius:0;
  background:transparent;
  padding:17px 18px;
  justify-content:center;
  font-size:.78rem;
  line-height:1.35;
  text-align:center;
  color:#554c46;
}
#nsf-tira-del-hilo .nsf-hero-pasos li + li{border-left:1px dashed #d8cdc4;}
#nsf-tira-del-hilo .nsf-paso-num{
  width:25px;
  height:25px;
  line-height:25px;
  background:var(--nsf-red);
  font-size:.68rem;
}
#nsf-tira-del-hilo .nsf-search-shell{
  max-width:760px;
  margin:-1px auto 0;
  padding:0 20px;
}
#nsf-tira-del-hilo .nsf-search-box{
  border:1px solid #d8cdc4;
  border-radius:3px;
  box-shadow:0 10px 30px rgba(35,24,18,.09);
  padding:7px;
}
#nsf-tira-del-hilo .nsf-search-box:focus-within{
  box-shadow:0 0 0 3px rgba(217,47,47,.13),0 12px 34px rgba(35,24,18,.11);
  border-color:var(--nsf-red);
}
#nsf-tira-del-hilo .nsf-search-row{padding:11px 15px;gap:12px;}
#nsf-tira-del-hilo #nsf-search-input{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.05rem;
}
#nsf-tira-del-hilo .nsf-explorar{
  max-width:900px;
  margin:58px auto 36px;
  padding:0 0 34px;
  border:0;
  border-radius:0;
  border-bottom:1px dashed #d8cdc4;
  background:transparent;
}
#nsf-tira-del-hilo .nsf-explorar-cabecera{
  display:block;
  text-align:center;
  margin:0 0 24px;
}
#nsf-tira-del-hilo .nsf-explorar-cabecera h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.55rem;
  font-weight:500;
  color:var(--nsf-ink);
}
#nsf-tira-del-hilo .nsf-explorar-cabecera p{
  margin:7px auto 0;
  max-width:580px;
  text-align:center;
  font-size:.86rem;
  color:var(--nsf-ink-soft);
}
#nsf-tira-del-hilo .nsf-explorar-opciones{gap:14px;}
#nsf-tira-del-hilo .nsf-explorar-opcion{
  border:1px solid #ddd2ca;
  border-radius:2px;
  background:#fff;
  padding:19px 17px;
  grid-template-columns:34px minmax(0,1fr);
  min-height:94px;
}
#nsf-tira-del-hilo .nsf-explorar-opcion:hover{
  border-color:var(--nsf-red);
  background:#fff;
  transform:translateY(-2px);
}
#nsf-tira-del-hilo .nsf-explorar-opcion:focus-visible{
  outline:3px solid rgba(217,47,47,.25);
  outline-offset:3px;
}
#nsf-tira-del-hilo .nsf-explorar-icono{
  width:32px;height:32px;border-radius:50%;
  background:#f6efea;color:var(--nsf-red);
}
#nsf-tira-del-hilo .nsf-explorar-opcion strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:.98rem;
  font-weight:600;
}
#nsf-tira-del-hilo .nsf-explorar-opcion>span:last-child{font-size:.75rem;}
#nsf-tira-del-hilo .nsf-results{
  max-width:900px;
  padding:30px 20px 0;
}
#nsf-tira-del-hilo .nsf-seccion-titulo,
#nsf-tira-del-hilo .nsf-eyebrow{
  color:var(--nsf-red);
}
#nsf-tira-del-hilo .nsf-seccion-titulo{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.16em;
}
@media(max-width:700px){
  #nsf-tira-del-hilo{padding:0 12px 45px;}
  #nsf-tira-del-hilo .nsf-hero{padding:46px 10px 34px;}
  #nsf-tira-del-hilo .nsf-hero-pasos{grid-template-columns:1fr;}
  #nsf-tira-del-hilo .nsf-hero-pasos li + li{border-left:0;border-top:1px dashed #d8cdc4;}
  #nsf-tira-del-hilo .nsf-explorar-opciones{grid-template-columns:1fr;}
  #nsf-tira-del-hilo .nsf-search-shell{padding:0 6px;}
  #nsf-tira-del-hilo .nsf-results{padding-left:6px;padding-right:6px;}
}

/* NSF TIRA DEL HILO — rediseño 9.5.310 */
.nsf-tira-del-hilo-buscador{width:100%;max-width:none;margin:0 auto;}
.nsf-tira-del-hilo-buscador{width:100%;max-width:1180px;margin:0 auto;padding:0 24px 72px;}
.nsf-tira-del-hilo-buscador .nsf-hero{border:0;border-radius:0;box-shadow:none;background:transparent;padding:58px 24px 30px;}
.nsf-tira-del-hilo-buscador .nsf-hero .nsf-hero-title,.nsf-tira-del-hilo-buscador .nsf-hero h2.nsf-hero-title{font-family:Georgia,'Times New Roman',serif!important;font-size:clamp(2.25rem,5vw,4.2rem)!important;font-weight:400!important;letter-spacing:-.025em;line-height:1.02!important;color:#c22620!important;}
.nsf-tira-del-hilo-buscador .nsf-hero-title .nsf-hero-inicio{appearance:none!important;border:0!important;background:transparent!important;color:#c22620!important;font:inherit!important;padding:0!important;box-shadow:none!important;text-decoration:none!important;cursor:pointer;}
.nsf-tira-del-hilo-buscador .nsf-hero-lede{max-width:700px!important;margin:18px auto 0!important;font-size:1.12rem!important;line-height:1.65!important;}
.nsf-tira-del-hilo-buscador .nsf-hero-apoyo{max-width:700px;margin:8px auto 0;font-size:.94rem;color:#6f625a;font-style:italic;}
.nsf-tira-del-hilo-buscador .nsf-hero-pasos{max-width:980px;margin:34px auto 0!important;padding:0!important;display:grid!important;grid-template-columns:repeat(3,1fr);gap:0!important;border-top:1px dashed #d9c9bc;}
.nsf-tira-del-hilo-buscador .nsf-hero-pasos li{min-height:86px;padding:20px 24px!important;display:flex;align-items:center;justify-content:center;gap:12px;text-align:left;border-right:1px dashed #d9c9bc;background:transparent!important;}
.nsf-tira-del-hilo-buscador .nsf-hero-pasos li:last-child{border-right:0;}
.nsf-tira-del-hilo-buscador .nsf-paso-num{flex:0 0 32px;width:32px;height:32px;border:1px solid #c22620;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#c22620;background:#fff;font-weight:600;}
.nsf-tira-del-hilo-buscador .nsf-search-shell{max-width:820px!important;margin:34px auto 0!important;padding:0!important;}
.nsf-tira-del-hilo-buscador .nsf-search-box{border:1px solid #cdbdb0;border-radius:0!important;box-shadow:none!important;padding:7px!important;background:#fff;}
.nsf-tira-del-hilo-buscador .nsf-search-box:focus-within{box-shadow:0 0 0 2px rgba(194,38,32,.18)!important;border-color:#c22620;}
.nsf-tira-del-hilo-buscador .nsf-explorar{max-width:980px;margin:56px auto 24px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;}
.nsf-tira-del-hilo-buscador .nsf-explorar-cabecera{padding:0 0 16px;border-bottom:2px solid #241d18;}
.nsf-tira-del-hilo-buscador .nsf-explorar-cabecera h3{font-family:Georgia,'Times New Roman',serif;font-size:2rem;font-weight:400;margin:0;color:#241d18;}
.nsf-tira-del-hilo-buscador .nsf-explorar-cabecera p{margin:6px 0 0;color:#6f625a;}
.nsf-tira-del-hilo-buscador .nsf-explorar-opciones{display:grid!important;grid-template-columns:repeat(3,1fr);gap:0!important;}
.nsf-tira-del-hilo-buscador .nsf-explorar-opcion{min-height:145px;padding:24px!important;border:0!important;border-right:1px dashed #d9c9bc!important;border-radius:0!important;background:#fff!important;color:#241d18!important;text-align:left;display:flex!important;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;box-shadow:none!important;cursor:pointer;}
.nsf-tira-del-hilo-buscador .nsf-explorar-opcion:last-child{border-right:0!important;}
.nsf-tira-del-hilo-buscador .nsf-explorar-opcion:hover{background:#fff8f3!important;}
.nsf-tira-del-hilo-buscador .nsf-explorar-opcion:focus-visible{outline:3px solid #c22620!important;outline-offset:-3px;}
.nsf-tira-del-hilo-buscador .nsf-explorar-icono{color:#c22620;font-size:1.5rem;line-height:1;}
.nsf-tira-del-hilo-buscador .nsf-explorar-opcion strong{font-size:1.08rem;}
@media(max-width:760px){.nsf-tira-del-hilo-buscador{padding:0 14px 48px;}.nsf-tira-del-hilo-buscador .nsf-hero{padding:38px 8px 24px;}.nsf-tira-del-hilo-buscador .nsf-hero-pasos,.nsf-tira-del-hilo-buscador .nsf-explorar-opciones{grid-template-columns:1fr!important;}.nsf-tira-del-hilo-buscador .nsf-hero-pasos li,.nsf-tira-del-hilo-buscador .nsf-explorar-opcion{border-right:0!important;border-bottom:1px dashed #d9c9bc!important;}.nsf-tira-del-hilo-buscador .nsf-hero-pasos li:last-child,.nsf-tira-del-hilo-buscador .nsf-explorar-opcion:last-child{border-bottom:0!important;}}


/* ================================================================
   NSF TIRA DEL HILO — 9.5.312 / SELECTOR REAL DE PAGINA
   Esta capa se aplica únicamente al shortcode en la página Tira del hilo.
   ================================================================ */
.nsf-tira-del-hilo-buscador > .nsf-hero{
  max-width:1100px !important;
  margin:0 auto !important;
  padding:74px 34px 42px !important;
  text-align:center !important;
  background:#fff !important;
}
.nsf-tira-del-hilo-buscador .nsf-hero-title{
  margin:0 !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:clamp(3rem,6vw,5rem) !important;
  font-weight:400 !important;
  line-height:1 !important;
  letter-spacing:-.045em !important;
}
.nsf-tira-del-hilo-buscador .nsf-hero-title .nsf-hero-inicio{
  color:#c52620 !important;
  text-decoration:none !important;
}
.nsf-tira-del-hilo-buscador .nsf-hero-lede{
  max-width:760px !important;
  margin:24px auto 0 !important;
  color:#443a34 !important;
  font-size:1.18rem !important;
  line-height:1.7 !important;
}
.nsf-tira-del-hilo-buscador .nsf-hero-apoyo{
  margin:12px auto 0 !important;
  color:#786b63 !important;
}
.nsf-tira-del-hilo-buscador .nsf-hero-pasos{
  max-width:980px !important;
  margin:42px auto 0 !important;
  border-top:1px solid #241d18 !important;
  border-bottom:1px dashed #cfc1b6 !important;
}
.nsf-tira-del-hilo-buscador .nsf-hero-pasos li{
  min-height:92px !important;
  padding:20px 24px !important;
  color:#241d18 !important;
  background:#fff !important;
}
.nsf-tira-del-hilo-buscador .nsf-paso-num{
  background:#c52620 !important;
  color:#fff !important;
  border:0 !important;
}
.nsf-tira-del-hilo-buscador .nsf-search-shell{
  max-width:900px !important;
  margin:38px auto 0 !important;
  padding:0 20px !important;
}
.nsf-tira-del-hilo-buscador .nsf-search-box{
  border:2px solid #241d18 !important;
  border-radius:0 !important;
  box-shadow:8px 8px 0 #c52620 !important;
  padding:8px !important;
}
.nsf-tira-del-hilo-buscador .nsf-search-row{padding:15px 18px !important;}
.nsf-tira-del-hilo-buscador #nsf-search-input{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:1.15rem !important;
}
.nsf-tira-del-hilo-buscador .nsf-explorar{
  max-width:980px !important;
  margin:78px auto 0 !important;
  padding:0 !important;
  border:0 !important;
}
.nsf-tira-del-hilo-buscador .nsf-explorar-cabecera{
  text-align:left !important;
  padding:0 0 16px !important;
  border-bottom:2px solid #241d18 !important;
}
.nsf-tira-del-hilo-buscador .nsf-explorar-cabecera h3{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:2.2rem !important;
  font-weight:400 !important;
  color:#241d18 !important;
}
.nsf-tira-del-hilo-buscador .nsf-explorar-opciones{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:0 !important;
  border-bottom:0 !important;
}
.nsf-tira-del-hilo-buscador .nsf-explorar-opcion{
  min-height:160px !important;
  padding:28px 24px !important;
  border:0 !important;
  border-right:1px dashed #cfc1b6 !important;
  border-radius:0 !important;
  background:#fff !important;
  text-align:left !important;
  box-shadow:none !important;
}
.nsf-tira-del-hilo-buscador .nsf-explorar-opcion:hover{background:#faf3ee !important;}
.nsf-tira-del-hilo-buscador .nsf-explorar-icono{color:#c52620 !important;background:transparent !important;}
.nsf-tira-del-hilo-buscador .nsf-explorar-opcion strong{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:1.15rem !important;
  color:#241d18 !important;
}
.nsf-tira-del-hilo-buscador .nsf-aporta{
  max-width:980px !important;
  margin:70px auto 0 !important;
  padding:30px 0 !important;
  border-top:1px dashed #cfc1b6 !important;
  border-bottom:1px dashed #cfc1b6 !important;
  text-align:center !important;
}
.nsf-tira-del-hilo-buscador .nsf-aporta-texto{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:1.8rem !important;
  color:#241d18 !important;
}
@media(max-width:760px){
 .nsf-tira-del-hilo-buscador > .nsf-hero{padding:48px 12px 30px !important;}
 .nsf-tira-del-hilo-buscador .nsf-hero-pasos,.nsf-tira-del-hilo-buscador .nsf-explorar-opciones{grid-template-columns:1fr !important;}
 .nsf-tira-del-hilo-buscador .nsf-hero-pasos li,.nsf-tira-del-hilo-buscador .nsf-explorar-opcion{border-right:0 !important;border-bottom:1px dashed #cfc1b6 !important;}
 .nsf-tira-del-hilo-buscador .nsf-explorar-opcion:last-child{border-bottom:0 !important;}
 .nsf-tira-del-hilo-buscador .nsf-explorar-opcion{min-height:auto !important;}
}


/* ================================================================
   PORTADA EDITORIAL — TIRA DEL HILO
   Diseño basado en la referencia visual aprobada. Solo se aplica a
   la página pública /tira-del-hilo/.
   ================================================================ */
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador{
  --tira-red:#e5222a;
  --tira-ink:#151a20;
  --tira-soft:#5f6268;
  width:min(calc(100vw - 80px), 1380px);
  max-width:none;
  margin-left:50%;
  transform:translateX(-50%);
  padding:0 0 70px;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-hero{
  border:0;
  border-radius:0;
  background:transparent;
  padding:36px 20px 0;
  box-shadow:none;
  position:relative;
  overflow:visible;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-hero:before,
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-hero:after{
  content:"";
  position:absolute;
  top:70px;
  width:330px;
  height:190px;
  border-top:1.5px dashed var(--tira-red);
  opacity:.9;
  pointer-events:none;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-hero:before{
  left:-90px;
  border-radius:55% 45% 65% 35%;
  transform:rotate(14deg);
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-hero:after{
  right:-90px;
  border-radius:45% 55% 35% 65%;
  transform:rotate(-14deg);
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-eyebrow{
  margin:0 0 5px;
  color:var(--tira-red);
  font:700 .78rem/1.2 Arial,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-titulo{
  font-family:Georgia,'Times New Roman',serif!important;
  font-size:clamp(2.6rem,4.3vw,3.55rem)!important;
  line-height:1.05!important;
  letter-spacing:-.035em;
  color:var(--tira-ink)!important;
  margin:0!important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-titulo em{
  color:var(--tira-red);
  font-style:normal;
  font-weight:400;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hero-lede{
  max-width:650px!important;
  margin:14px auto 0!important;
  color:#45484e!important;
  font-size:1rem!important;
  line-height:1.55!important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hero-apoyo,
body:has(.nsf-tira-del-hilo-buscador) .nsf-hero-pasos{display:none!important;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-shell{
  max-width:690px;
  margin:26px auto 0;
  padding:0;
  z-index:6;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-box{
  background:transparent;
  border:0;
  box-shadow:none;
  padding:0;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row{
  padding:0;
  gap:10px;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row svg{
  width:26px;height:26px;
  margin-left:18px;
  position:absolute;
  z-index:2;
}
body:has(.nsf-tira-del-hilo-buscador) #nsf-search-input{
  height:62px;
  border:1.5px dashed var(--tira-red);
  border-radius:9px;
  background:#fff;
  padding:0 205px 0 62px;
  font-size:1rem;
  color:var(--tira-ink);
  box-shadow:none;
}
body:has(.nsf-tira-del-hilo-buscador) #nsf-search-input::placeholder{color:#777b82;opacity:1;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-buscar-btn{
  position:absolute;
  right:0;
  top:0;
  height:62px;
  width:183px;
  border:1px solid var(--tira-red);
  border-radius:8px;
  background:var(--tira-red);
  color:#fff;
  font:700 .86rem/1 Arial,sans-serif;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .16s,border-color .16s,transform .16s;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-buscar-btn:hover,
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-buscar-btn:focus-visible{
  background:#151a20;border-color:#151a20;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-box:focus-within{box-shadow:none;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-shell:after{
  content:'Ejemplos: Dark Souls, Akira, 1984, Metal Gear, Blade Runner...';
  display:block;
  margin:11px 0 0 68px;
  color:#666a70;
  font-size:.78rem;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-reset{display:none!important;}


body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-portada-destacados{
  margin-top:48px;
  border-bottom:1px solid #e5e0db;
  padding-bottom:28px;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-seccion-cabecera{
  display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-seccion-cabecera h2,
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-como-funciona h2{
  margin:0;font:400 1.65rem/1.15 Georgia,'Times New Roman',serif;color:var(--tira-red);
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-seccion-cabecera p{
  margin:5px 0 0;color:#5e6268;font-size:.88rem;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-seccion-cabecera a,
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-destacado-ver{
  color:var(--tira-red);font-size:.72rem;font-weight:700;text-transform:uppercase;text-decoration:none;white-space:nowrap;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-destacados-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-destacado-card{
  border:1px solid #dedbd7;border-radius:7px;background:#fff;padding:20px 16px 0;overflow:hidden;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-destacado-origen{
  color:var(--tira-red);font-size:.65rem;font-weight:700;letter-spacing:.08em;margin-bottom:5px;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-destacado-card h3{
  margin:0;font:700 1.08rem/1.2 Georgia,'Times New Roman',serif;color:#181b20;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-destacado-meta{margin:4px 0;color:#575b61;font-size:.76rem;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-mini-grafo{height:142px;position:relative;margin:3px -2px 0;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-line{position:absolute;height:1px;background:#d8d5d1;transform-origin:left center;left:50%;top:58%;width:42%;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-line-a{transform:rotate(28deg);}.nsf-line-b{transform:rotate(-28deg)!important;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-node{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:#fff;border:1px solid #ddd;width:54px;height:54px;box-shadow:0 0 0 3px #fff;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-node img{width:100%;height:100%;object-fit:cover;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-node-main{left:calc(50% - 30px);top:calc(58% - 30px);width:62px;height:62px;border:1.5px solid var(--tira-red);font-size:1.6rem;color:var(--tira-red);}
body:has(.nsf-tira-del-hilo-buscador) .nsf-node-main img{width:44px;height:44px;border-radius:50%;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-node-ref-1{left:3%;top:64%;}.nsf-node-ref-2{right:3%;top:26%;}.nsf-node-ref-3{right:3%;bottom:1%;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-destacado-stats{display:flex;justify-content:space-between;gap:8px;background:#fff4f2;color:#3f4248;font-size:.72rem;padding:9px 8px;margin:0 -16px;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilo-destacado-ver{display:block;padding:13px 0 14px;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-como-funciona{
  display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:42px;padding-top:34px;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-pasos-grandes{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:28px;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-pasos-grandes>div{display:flex;gap:14px;align-items:flex-start;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-pasos-grandes>div>span{width:58px;height:58px;flex:none;border:1px dashed #f0a4a0;border-radius:50%;display:grid;place-items:center;color:var(--tira-red);font:400 1.25rem Georgia,serif;background:#fff9f8;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-pasos-grandes strong{display:block;margin:4px 0 4px;font-size:.9rem;color:#171a20;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-pasos-grandes p{margin:0;color:#565b62;font-size:.78rem;line-height:1.45;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-favoritos{border:1px dashed var(--tira-red);padding:20px 22px;text-align:left;align-self:start;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-favoritos-icon{display:grid;place-items:center;width:58px;height:58px;border:1px dashed #f0a4a0;border-radius:50%;color:var(--tira-red);font-size:2rem;margin-bottom:12px;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-favoritos strong{display:block;font:700 1rem Arial,sans-serif;color:#171a20;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-favoritos p{font-size:.78rem;line-height:1.5;color:#565b62;margin:7px 0 14px;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-favoritos a{display:inline-block;border:1px solid var(--tira-red);padding:9px 17px;color:var(--tira-red);font-size:.7rem;font-weight:700;text-transform:uppercase;text-decoration:none;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-favoritos a:hover,body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-favoritos a:focus-visible{background:var(--tira-red);color:#fff;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-ultimas{margin-top:34px;padding-top:0;}
body:has(.nsf-tira-del-hilo-buscador) .nsf-resumen-catalogo{display:none;}
@media(max-width:1000px){
 body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-destacados-grid{grid-template-columns:repeat(2,1fr);}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-como-funciona{grid-template-columns:1fr;}
}
@media(max-width:700px){
 body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador{width:calc(100vw - 28px);padding-bottom:40px;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-hero{padding-top:24px!important;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-hero:before,body:has(.nsf-tira-del-hilo-buscador) .nsf-hero:after{display:none;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-titulo{font-size:2.35rem!important;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-search-shell{margin-top:22px;}
 body:has(.nsf-tira-del-hilo-buscador) #nsf-search-input{height:56px;padding-left:52px;padding-right:15px;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-buscar-btn{position:absolute;width:160px;height:46px;margin-top:8px;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row{display:block;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row svg{margin-left:15px;top:15px;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-search-shell:after{margin:9px 0 0;font-size:.72rem;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-destacados-grid{grid-template-columns:1fr;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-pasos-grandes{grid-template-columns:1fr;gap:20px;}
 body:has(.nsf-tira-del-hilo-buscador) .nsf-hilos-seccion-cabecera{align-items:flex-start;}
}


/* ========================================================================
   NSF 9.5.314 — TIRA DEL HILO / RESTAURACIÓN DE HILOS DESTACADOS
   Esta capa NO depende de :has(). El contenedor de la portada ya lleva
   .nsf-tira-del-hilo-buscador, así que los estilos se aplican directamente
   y también funcionan cuando el tema modifica la estructura del <body>.
   ======================================================================== */
.nsf-tira-del-hilo-buscador{
  --tira-red:#e5222a;
  --tira-ink:#151a20;
  --tira-soft:#5f6268;
  width:min(calc(100vw - 80px),1380px) !important;
  max-width:none !important;
  margin-left:50% !important;
  transform:translateX(-50%) !important;
  padding:0 0 70px !important;
  box-sizing:border-box !important;
}
.nsf-tira-del-hilo-buscador *{box-sizing:border-box;}
.nsf-tira-del-hilo-buscador .nsf-hilos-portada-destacados{
  display:block !important;
  width:100% !important;
  margin-top:48px !important;
  padding-bottom:28px !important;
  border-bottom:1px solid #e5e0db !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-seccion-cabecera{
  display:flex !important;
  justify-content:space-between !important;
  align-items:flex-end !important;
  gap:20px !important;
  margin:0 0 18px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-seccion-cabecera h2,
.nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona h2{
  margin:0 !important;
  font:400 1.65rem/1.15 Georgia,'Times New Roman',serif !important;
  color:var(--tira-red) !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-seccion-cabecera p{
  margin:5px 0 0 !important;
  color:#5e6268 !important;
  font-size:.88rem !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-seccion-cabecera a,
.nsf-tira-del-hilo-buscador .nsf-hilo-destacado-ver{
  color:var(--tira-red) !important;
  font-size:.72rem !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-destacados-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:22px !important;
  width:100% !important;
  align-items:stretch !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilo-destacado-card{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  min-height:285px !important;
  border:1px solid #dedbd7 !important;
  border-radius:7px !important;
  background:#fff !important;
  padding:20px 16px 0 !important;
  overflow:hidden !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilo-destacado-origen{
  color:var(--tira-red) !important;
  font-size:.65rem !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  margin:0 0 5px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilo-destacado-card h3{
  margin:0 !important;
  font:700 1.08rem/1.2 Georgia,'Times New Roman',serif !important;
  color:#181b20 !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilo-destacado-meta{
  margin:4px 0 !important;
  color:#575b61 !important;
  font-size:.76rem !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilo-mini-grafo{
  position:relative !important;
  display:block !important;
  width:100% !important;
  height:142px !important;
  margin:3px -2px 0 !important;
  flex:0 0 142px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilo-line{
  position:absolute !important;
  display:block !important;
  height:1px !important;
  width:42% !important;
  left:50% !important;
  top:58% !important;
  background:#d8d5d1 !important;
  transform-origin:left center !important;
  pointer-events:none !important;
}
.nsf-tira-del-hilo-buscador .nsf-line-a{transform:rotate(28deg) !important;}
.nsf-tira-del-hilo-buscador .nsf-line-b{transform:rotate(-28deg) !important;}
.nsf-tira-del-hilo-buscador .nsf-hilo-node{
  position:absolute !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:50% !important;
  overflow:hidden !important;
  background:#fff !important;
  border:1px solid #ddd !important;
  width:54px !important;
  height:54px !important;
  box-shadow:0 0 0 3px #fff !important;
  z-index:2 !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilo-node img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
}
.nsf-tira-del-hilo-buscador .nsf-node-main{
  left:calc(50% - 30px) !important;
  top:calc(58% - 30px) !important;
  width:62px !important;
  height:62px !important;
  border:1.5px solid var(--tira-red) !important;
  font-size:1.6rem !important;
  color:var(--tira-red) !important;
}
.nsf-tira-del-hilo-buscador .nsf-node-main img{
  width:44px !important;
  height:44px !important;
  border-radius:50% !important;
}
.nsf-tira-del-hilo-buscador .nsf-node-ref-1{left:3% !important;top:64% !important;}
.nsf-tira-del-hilo-buscador .nsf-node-ref-2{right:3% !important;top:26% !important;}
.nsf-tira-del-hilo-buscador .nsf-node-ref-3{right:3% !important;bottom:1% !important;}
.nsf-tira-del-hilo-buscador .nsf-hilo-destacado-stats{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:8px !important;
  width:calc(100% + 32px) !important;
  background:#fff4f2 !important;
  color:#3f4248 !important;
  font-size:.72rem !important;
  padding:9px 8px !important;
  margin:0 -16px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilo-destacado-ver{
  display:block !important;
  margin-top:auto !important;
  padding:13px 0 14px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 350px !important;
  gap:42px !important;
  padding-top:34px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:28px !important;
  margin-top:28px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes>div{
  display:flex !important;
  gap:14px !important;
  align-items:flex-start !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes>div>span{
  width:58px !important;height:58px !important;flex:none !important;
  border:1px dashed #f0a4a0 !important;border-radius:50% !important;
  display:grid !important;place-items:center !important;
  color:var(--tira-red) !important;font:400 1.25rem Georgia,serif !important;
  background:#fff9f8 !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes strong{display:block !important;margin:4px 0 4px !important;font-size:.9rem !important;color:#171a20 !important;}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes p{margin:0 !important;color:#565b62 !important;font-size:.78rem !important;line-height:1.45 !important;}
.nsf-tira-del-hilo-buscador .nsf-hilos-favoritos{border:1px dashed var(--tira-red) !important;padding:20px 22px !important;text-align:left !important;align-self:start !important;}
.nsf-tira-del-hilo-buscador .nsf-hilos-favoritos-icon{display:grid !important;place-items:center !important;width:58px !important;height:58px !important;border:1px dashed #f0a4a0 !important;border-radius:50% !important;color:var(--tira-red) !important;font-size:2rem !important;margin-bottom:12px !important;}
.nsf-tira-del-hilo-buscador .nsf-hilos-favoritos strong{display:block !important;font:700 1rem Arial,sans-serif !important;color:#171a20 !important;}
.nsf-tira-del-hilo-buscador .nsf-hilos-favoritos p{font-size:.78rem !important;line-height:1.5 !important;color:#565b62 !important;margin:7px 0 14px !important;}
.nsf-tira-del-hilo-buscador .nsf-hilos-favoritos a{display:inline-block !important;border:1px solid var(--tira-red) !important;padding:9px 17px !important;color:var(--tira-red) !important;font-size:.7rem !important;font-weight:700 !important;text-transform:uppercase !important;text-decoration:none !important;}
.nsf-tira-del-hilo-buscador .nsf-hilos-favoritos a:hover,.nsf-tira-del-hilo-buscador .nsf-hilos-favoritos a:focus-visible{background:var(--tira-red) !important;color:#fff !important;}
@media(max-width:1000px){
  .nsf-tira-del-hilo-buscador{width:min(calc(100vw - 40px),960px) !important;}
  .nsf-tira-del-hilo-buscador .nsf-hilos-destacados-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona{grid-template-columns:1fr !important;}
}
@media(max-width:700px){
  .nsf-tira-del-hilo-buscador{width:calc(100vw - 28px) !important;padding-bottom:40px !important;}
  .nsf-tira-del-hilo-buscador .nsf-hilos-destacados-grid{grid-template-columns:1fr !important;}
  .nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes{grid-template-columns:1fr !important;gap:20px !important;}
  .nsf-tira-del-hilo-buscador .nsf-hilos-seccion-cabecera{align-items:flex-start !important;}
  .nsf-tira-del-hilo-buscador .nsf-hilos-seccion-cabecera{flex-direction:column !important;}
}

.nsf-rel-card-investigador{display:block;margin-top:6px;font-size:.82em;opacity:.82}.nsf-rel-card-investigador strong{font-weight:600}


/* ========================================================================
   NSF 9.5.351 — TIRA DEL HILO / TRES FORMAS DE ENTRAR
   Curiosea · Amplía una experiencia · Investiga a fondo
   ======================================================================== */
.nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona{
  display:block !important;
  padding-top:38px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-como-copy{
  width:100% !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona h2{
  text-align:center !important;
  margin:0 !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:34px !important;
  margin:34px auto 0 !important;
  width:100% !important;
  max-width:1080px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes>div{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  text-align:center !important;
  gap:12px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes>div>span{
  width:58px !important;
  height:58px !important;
  margin:0 auto !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes>div>div{
  width:100% !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes strong{
  margin:0 0 8px !important;
  font-size:.92rem !important;
  letter-spacing:.01em !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes p{
  max-width:300px !important;
  margin:0 auto !important;
  font-size:.8rem !important;
  line-height:1.55 !important;
}
@media(max-width:700px){
  .nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona{padding-top:30px !important;}
  .nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes{
    grid-template-columns:1fr !important;
    gap:28px !important;
    margin-top:28px !important;
  }
  .nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes p{max-width:360px !important;}
}


/* ========================================================================
   NSF 9.5.358 — TIRA DEL HILO / BLOQUE DE TRES CAMINOS + BARRA NSF
   ======================================================================== */
.nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona{
  display:block !important;
  padding-top:42px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-como-copy{
  width:100% !important;
  max-width:none !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona h2{
  text-align:center !important;
  margin:0 !important;
  font-size:1.72rem !important;
  line-height:1.2 !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona h2::after{
  content:'';
  display:block;
  width:86px;
  margin:16px auto 0;
  border-top:2px dotted var(--tira-red);
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:48px !important;
  margin:38px auto 0 !important;
  width:100% !important;
  max-width:1080px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes>div{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  text-align:center !important;
  gap:16px !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes>div>span{
  width:58px !important;
  height:58px !important;
  margin:0 auto !important;
  border:1px dashed #f0a4a0 !important;
  border-radius:50% !important;
  display:grid !important;
  place-items:center !important;
  color:var(--tira-red) !important;
  background:#fff !important;
  font:700 1rem Georgia,serif !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes strong{
  display:block !important;
  margin:0 0 9px !important;
  font-size:.94rem !important;
  color:#171a20 !important;
}
.nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes p{
  max-width:310px !important;
  margin:0 auto !important;
  color:#565b62 !important;
  font-size:.8rem !important;
  line-height:1.55 !important;
}

/* Barra de recorrido: lenguaje visual NSF, sobre fondo claro. */
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-barra-tipo{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  background:#fff !important;
  color:#171a20 !important;
  border:1px solid #151a20 !important;
  border-radius:14px !important;
  padding:14px 18px !important;
  margin:0 0 22px !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  box-shadow:none !important;
}
/* La franja roja inferior sustituye a la sombra para que nunca
   provoque desbordamiento horizontal del bloque. */
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-barra-tipo::after{
  content:'';
  position:absolute;
  left:8px;
  right:0;
  bottom:-8px;
  height:8px;
  background:var(--tira-red);
  border-radius:0 0 2px 2px;
  pointer-events:none;
  z-index:0;
}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-barra-tipo::before{
  content:'';
  position:absolute;
  inset:7px;
  border:1px dotted var(--tira-red);
  border-radius:9px;
  pointer-events:none;
}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-barra-tipo > *{position:relative;z-index:1;}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-barra-icono{
  width:40px !important;
  height:40px !important;
  border-radius:9px !important;
  background:var(--tira-red) !important;
  color:#fff !important;
}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-camino-paso{
  color:#151a20 !important;
  background:none !important;
}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-camino-paso:hover,
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-camino-paso:focus-visible{
  color:#151a20 !important;
  background:#f2f2f2 !important;
}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-camino-paso svg{color:#687078 !important;opacity:.85 !important;}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-camino-actual{
  color:var(--tira-red) !important;
  font-weight:700 !important;
}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-camino-actual:hover{background:none !important;color:var(--tira-red) !important;}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-camino-sep{color:#c8c8c8 !important;}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-compartir{
  margin-left:auto !important;
  color:var(--tira-red) !important;
  background:#fff !important;
  border:1px solid var(--tira-red) !important;
  border-radius:100px !important;
}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-compartir:hover,
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-compartir:focus-visible{
  background:#151a20 !important;
  border-color:#151a20 !important;
  color:#fff !important;
}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-editar-hilo{
  margin-left:0 !important;
  border:1px solid var(--tira-red) !important;
  background:var(--tira-red) !important;
  color:#fff !important;
  border-radius:100px !important;
  padding:5px 14px !important;
}
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-editar-hilo:hover,
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-editar-hilo:focus-visible{
  background:#151a20 !important;
  border-color:#151a20 !important;
  color:#fff !important;
}
@media(max-width:700px){
  .nsf-tira-del-hilo-buscador .nsf-hilos-como-funciona{padding-top:30px !important;}
  .nsf-tira-del-hilo-buscador .nsf-hilos-pasos-grandes{grid-template-columns:1fr !important;gap:28px !important;margin-top:30px !important;}
  .nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-barra-tipo{flex-wrap:wrap !important;}
  .nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-compartir{margin-left:auto !important;}
}
/* ========================================================================
   NSF 9.5.554 — BARRA DE RECORRIDO SIN DESBORDAMIENTO HORIZONTAL
   ======================================================================== */
/* La corrección se aplica arriba en la regla específica de la barra. */

/* ========================================================================
   NSF 9.5.359 — TIRA DEL HILO / SEPARACIÓN ENTRE LOS TRES CAMINOS Y EL HILO
   ======================================================================== */
.nsf-tira-del-hilo-buscador .nsf-results .nsf-thread-block{
  margin-top:48px !important;
}
@media(max-width:700px){
  .nsf-tira-del-hilo-buscador .nsf-results .nsf-thread-block{
    margin-top:36px !important;
  }
}

/* NSF 9.5.383 — ajuste final del botón INVESTIGAR */
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row {
    position: relative !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-buscar-btn {
    position: absolute !important;
    right: 8px !important;
    top: 8px !important;
    width: 160px !important;
    height: 46px !important;
    margin: 0 !important;
}

/* NSF 9.5.384 — Barra de obra: separación vertical respecto a las columnas */
.nsf-tira-del-hilo-buscador .nsf-tira-obra-bar,
.nsf-tira-del-hilo-buscador .nsf-obra-bar,
.nsf-tira-del-hilo-buscador .nsf-current-work-bar,
.nsf-tira-del-hilo-buscador .nsf-hilo-current {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    clear: both !important;
    float: none !important;
    width: 100% !important;
    margin-top: 34px !important;
    margin-bottom: 0 !important;
    z-index: 2 !important;
}

.nsf-tira-del-hilo-buscador .nsf-tira-obra-bar + *,
.nsf-tira-del-hilo-buscador .nsf-obra-bar + *,
.nsf-tira-del-hilo-buscador .nsf-current-work-bar + *,
.nsf-tira-del-hilo-buscador .nsf-hilo-current + * {
    clear: both;
}

@media (max-width:700px) {
    .nsf-tira-del-hilo-buscador .nsf-tira-obra-bar,
    .nsf-tira-del-hilo-buscador .nsf-obra-bar,
    .nsf-tira-del-hilo-buscador .nsf-current-work-bar,
    .nsf-tira-del-hilo-buscador .nsf-hilo-current {
        margin-top: 24px !important;
    }
}


/* Fallback scoped to the current-work strip: it must occupy normal document flow. */
.nsf-tira-del-hilo-buscador [class*="current"][class*="bar"],
.nsf-tira-del-hilo-buscador [class*="obra"][class*="bar"],
.nsf-tira-del-hilo-buscador [class*="hilo"][class*="bar"] {
    position: relative !important;
    top: auto !important;
    transform: none !important;
    clear: both !important;
}

/* NSF 9.5.386 — INVESTIGAR: tamaño y separación definitivos */
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row {
    position: relative !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-buscar-btn {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 160px !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    box-sizing: border-box !important;
}

/* NSF 9.5.387 — Buscador: diseño aprobado */
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row {
    position: relative !important;
    padding-right: 0 !important;
}

body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row .nsf-tira-buscar-btn {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 160px !important;
    height: 46px !important;
    min-width: 160px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    box-sizing: border-box !important;
    border-radius: 8px !important;
    z-index: 3 !important;
}

body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row > input,
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row > .nsf-search-input {
    padding-right: 190px !important;
}

/* El campo interior conserva aire respecto al marco exterior. */
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row {
    margin-left: 8px !important;
    margin-right: 8px !important;
}

/* NSF 9.5.388 — Entrada desde una obra: conservar el diseño actual de Tira del hilo. */
.nsf-buscador.nsf-experiencia-inicial .nsf-search-shell {
  position:relative;
  top:auto;
  z-index:1;
}
.nsf-buscador.nsf-experiencia-inicial .nsf-ultimas,
.nsf-buscador.nsf-experiencia-inicial .nsf-filtros,
.nsf-buscador.nsf-experiencia-inicial .nsf-sorpresa-fila,
.nsf-buscador.nsf-experiencia-inicial .nsf-form-slot,
.nsf-buscador.nsf-experiencia-inicial .nsf-confirm {
  display:none;
}
.nsf-buscador.nsf-experiencia-inicial .nsf-results {
  padding-top:34px;
}
@media (max-width:700px) {
  .nsf-buscador.nsf-experiencia-inicial .nsf-results {
    padding-top:24px;
  }
}

/* ========================================================================
   NSF 9.5.397 — TIRA DEL HILO / AJUSTE FINAL DEL BUSCADOR
   Menos aire superior y botón con acabado visual NSF.
   ======================================================================== */
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-shell{
  margin-top:10px !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-tira-buscar-btn{
  appearance:none !important;
  -webkit-appearance:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#e5222a !important;
  background-color:#e5222a !important;
  color:#fff !important;
  border:1px solid #e5222a !important;
  border-radius:8px !important;
  font-family:Arial,sans-serif !important;
  font-size:.82rem !important;
  font-weight:700 !important;
  letter-spacing:.03em !important;
  text-transform:uppercase !important;
  text-shadow:none !important;
  box-shadow:4px 4px 0 #c82620 !important;
  
  outline-offset:-6px !important;
  cursor:pointer !important;
  opacity:1 !important;
}

@media(max-width:700px){
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-shell{
    margin-top:14px !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-tira-buscar-btn{
    box-shadow:3px 3px 0 #c82620 !important;
  }
}


/* ========================================================================
   NSF 9.5.398 — BUSCADOR EN FICHAS DE OBRA
   La ficha fija debe usar el mismo lenguaje visual del buscador NSF:
   menos aire superior y botón rojo NSF, separado del borde.
   ======================================================================== */
.nsf-buscador.nsf-ficha-buscador .nsf-search-shell{
  margin-top:-62px !important;
  padding-top:0 !important;
  padding-bottom:18px !important;
  max-width:620px !important;
}
.nsf-buscador.nsf-ficha-buscador .nsf-search-box{
  background:#fff !important;
  border:0 !important;
  border-radius:12px !important;
  box-shadow:none !important;
  padding:6px !important;
}
.nsf-buscador.nsf-ficha-buscador .nsf-search-row{
  position:relative !important;
  padding:0 !important;
  gap:10px !important;
}
.nsf-buscador.nsf-ficha-buscador #nsf-search-input{
  height:62px !important;
  border:1.5px dashed #e5222a !important;
  border-radius:9px !important;
  background:#fff !important;
  padding:0 185px 0 62px !important;
  font-size:1rem !important;
  color:#151a20 !important;
  box-shadow:none !important;
}
.nsf-buscador.nsf-ficha-buscador .nsf-search-row svg{
  width:22px !important;
  height:22px !important;
  margin-left:18px !important;
  position:absolute !important;
  z-index:2 !important;
}
.nsf-buscador.nsf-ficha-buscador .nsf-ficha-buscar-btn{
  appearance:none !important;
  -webkit-appearance:none !important;
  position:absolute !important;
  right:14px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:126px !important;
  min-width:126px !important;
  height:42px !important;
  min-height:42px !important;
  margin:0 !important;
  padding:0 14px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  border:1px solid #e5222a !important;
  border-radius:8px !important;
  background:#e5222a !important;
  color:#fff !important;
  font:700 .72rem/1 Arial,sans-serif !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  box-shadow:3px 3px 0 #c82620 !important;
  outline:none !important;
  z-index:3 !important;
  cursor:pointer !important;
}

.nsf-buscador.nsf-ficha-buscador .nsf-ficha-buscar-btn:hover,
.nsf-buscador.nsf-ficha-buscador .nsf-ficha-buscar-btn:focus-visible{
  background:#ed1c24 !important;
  border-color:#e5222a !important;
  color:#fff !important;
  transform:translateY(-50%) !important;
  box-shadow:3px 3px 0 #c82620 !important;
}
@media(max-width:700px){
  .nsf-buscador.nsf-ficha-buscador .nsf-search-shell{
    margin-top:-24px !important;
    padding-bottom:14px !important;
  }
  .nsf-buscador.nsf-ficha-buscador #nsf-search-input{
    height:56px !important;
    padding-left:52px !important;
    padding-right:15px !important;
  }
  .nsf-buscador.nsf-ficha-buscador .nsf-ficha-buscar-btn{
    width:116px !important;
    min-width:116px !important;
    height:40px !important;
    min-height:40px !important;
    right:8px !important;
    box-shadow:3px 3px 0 #c82620 !important;
  }
}


/* ========================================================================
   NSF 9.5.404 — BUSCADOR DE FICHA / COMPOSICIÓN DEFINITIVA
   El botón queda dentro del campo, separado del borde.
   El cierre queda fuera del botón para evitar solapamientos.
   ======================================================================== */
.nsf-buscador.nsf-ficha-buscador .nsf-search-row{
  position:relative !important;
}
.nsf-buscador.nsf-ficha-buscador .nsf-ficha-buscar-btn{
  right:16px !important;
  top:50% !important;
  width:126px !important;
  min-width:126px !important;
  height:42px !important;
  min-height:42px !important;
  transform:translateY(-50%) !important;
  box-shadow:3px 3px 0 #c82620 !important;
}
.nsf-buscador.nsf-ficha-buscador .nsf-reset{
  position:absolute !important;
  right:-48px !important;
  top:50% !important;
  width:32px !important;
  height:32px !important;
  margin:0 !important;
  transform:translateY(-50%) !important;
  z-index:5 !important;
}
.nsf-buscador.nsf-ficha-buscador .nsf-reset:hover{
  transform:translateY(-50%) scale(1.06) !important;
}
@media(max-width:700px){
  .nsf-buscador.nsf-ficha-buscador .nsf-ficha-buscar-btn{
    right:12px !important;
    width:116px !important;
    min-width:116px !important;
    height:40px !important;
    min-height:40px !important;
  }
  .nsf-buscador.nsf-ficha-buscador .nsf-reset{
    right:-42px !important;
  }
}


/* 9.5.404 — Buscador NSF: sin botón X y con BUSCAR integrado. */
.nsf-search-row{position:relative;display:flex;align-items:center;gap:14px;padding:10px 14px 10px 18px;}
.nsf-search-row #nsf-search-input{min-width:0;flex:1 1 auto;}
.nsf-search-row .nsf-tira-buscar-btn,.nsf-search-row .nsf-ficha-buscar-btn{flex:0 0 126px;width:126px;min-width:126px;height:42px;margin:0 0 0 6px;padding:0 18px;border:0;border-radius:8px;background:#ed1c24;color:#fff;font-size:12px;font-weight:700;letter-spacing:.02em;line-height:42px;text-align:center;box-shadow:4px 4px 0 #c92127;position:relative;overflow:hidden;cursor:pointer;}

.nsf-search-row .nsf-tira-buscar-btn:hover,.nsf-search-row .nsf-ficha-buscar-btn:hover{background:#ed1c24 !important;color:#fff !important;transform:none !important;box-shadow:4px 4px 0 #c92127 !important;}
.nsf-search-row .nsf-tira-buscar-btn:focus-visible,.nsf-search-row .nsf-ficha-buscar-btn:focus-visible{outline:2px solid #ed1c24;outline-offset:3px;}
#nsf-reset{display:none !important;}
@media(max-width:600px){.nsf-search-row{gap:9px;padding:8px 10px 8px 13px;}.nsf-search-row .nsf-tira-buscar-btn,.nsf-search-row .nsf-ficha-buscar-btn{flex-basis:108px;width:108px;min-width:108px;height:40px;line-height:40px;padding:0 12px;}}


/* =========================================================================
   NSF 9.5.404 — HOVER CORRECTO DE LOS BUSCADORES
   Tira del hilo: sin desplazamiento al pasar el ratón; solo oscurece.
   Ficha de obra: conserva el botón fijo y solo oscurece al pasar el ratón.
   ========================================================================= */
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row .nsf-tira-buscar-btn:hover,
body:has(.nsf-tira-del-hilo-buscador) .nsf-search-row .nsf-tira-buscar-btn:focus-visible{
  background:#c82620 !important;
  background-color:#c82620 !important;
  border-color:#c82620 !important;
  color:#fff !important;
  transform:none !important;
  box-shadow:4px 4px 0 #9f1f1d !important;
}

.nsf-buscador.nsf-ficha-buscador .nsf-search-row .nsf-ficha-buscar-btn:hover,
.nsf-buscador.nsf-ficha-buscador .nsf-search-row .nsf-ficha-buscar-btn:focus-visible{
  background:#c82620 !important;
  background-color:#c82620 !important;
  border-color:#c82620 !important;
  color:#fff !important;
  transform:translateY(-50%) !important;
  box-shadow:4px 4px 0 #9f1f1d !important;
}


/* NSF 9.5.404 — TIRA DEL HILO: hover fijo. Solo oscurecer, sin movimiento ni cambio de sombra. */
html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn,
html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn:hover,
html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn:focus-visible {
  transform: none !important;
  translate: none !important;
  top: auto !important;
  bottom: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  box-shadow: 4px 4px 0 #c92127 !important;
}
html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn {
  transition: background-color .16s ease, color .16s ease, border-color .16s ease !important;
}
html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn:hover,
html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn:focus-visible {
  background: #c82620 !important;
  background-color: #c82620 !important;
  border-color: #c82620 !important;
  color: #fff !important;
}

 

/* NSF 9.5.427 — Corrección: selector real de Explorar en Tira del Hilo. */
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar{
  max-width:936px !important;
  margin:28px auto 24px !important;
  padding:16px 20px 17px !important;
  box-sizing:border-box !important;
  border:1px solid #e7ddd3 !important;
  border-radius:17px !important;
  background:#fcfaf7 !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-cabecera{
  margin:0 0 10px !important;
  padding:0 !important;
  border:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-cabecera h3{
  margin:0 !important;
  font-family:Georgia,serif !important;
  font-size:1.05rem !important;
  line-height:1.15 !important;
  font-weight:700 !important;
  color:var(--nsf-ink) !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-cabecera p{
  margin:0 !important;
  font-size:.72rem !important;
  line-height:1.3 !important;
  color:var(--nsf-ink-soft) !important;
  text-align:right !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-opciones{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-opcion{
  min-height:72px !important;
  box-sizing:border-box !important;
  padding:11px 12px !important;
  border:1px solid #e4d9ce !important;
  border-radius:13px !important;
  background:#fff !important;
  display:grid !important;
  grid-template-columns:31px minmax(0,1fr) !important;
  grid-template-rows:auto auto !important;
  column-gap:9px !important;
  row-gap:2px !important;
  align-content:center !important;
  text-align:left !important;
  transform:none !important;
  box-shadow:none !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-opcion:hover{
  background:#fbf8f4 !important;
  border-color:#ddcec0 !important;
  transform:none !important;
  box-shadow:none !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-icono{
  grid-column:1 !important;
  grid-row:1 / span 2 !important;
  width:31px !important;
  height:31px !important;
  margin:0 !important;
  border-radius:50% !important;
  background:#f4ede5 !important;
  color:var(--nsf-red) !important;
  font-size:14px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-opcion strong{
  grid-column:2 !important;
  grid-row:1 !important;
  align-self:end !important;
  font-family:inherit !important;
  font-size:.78rem !important;
  line-height:1.15 !important;
  font-weight:700 !important;
  color:var(--nsf-ink) !important;
}
body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-opcion>span:last-child{
  grid-column:2 !important;
  grid-row:2 !important;
  font-size:.64rem !important;
  line-height:1.25 !important;
  color:var(--nsf-ink-soft) !important;
}
@media(max-width:700px){
  body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar{
    margin:24px 8px 20px !important;
    padding:14px !important;
    border-radius:15px !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-cabecera{
    align-items:flex-start !important;
    flex-direction:column !important;
    gap:4px !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-cabecera p{
    text-align:left !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-explorar .nsf-explorar-opciones{
    grid-template-columns:1fr !important;
  }
}


/* ========================================================================
   NSF 9.5.494 — TIRA DEL HILO / CORRECCIÓN FINAL DE COMPOSICIÓN MÓVIL
   El botón BUSCAR debe permanecer dentro de la fila. El ajuste de ancho
   anterior no debe alterar la geometría del header ni sacar el botón fuera
   de su contenedor.
   ======================================================================== */
@media (max-width:700px){
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    min-height:74px !important;
    height:74px !important;
    padding:8px 10px 8px 13px !important;
    margin-left:0 !important;
    margin-right:0 !important;
    gap:9px !important;
    box-sizing:border-box !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row > svg{
    position:absolute !important;
    left:28px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    width:24px !important;
    height:24px !important;
    margin:0 !important;
    z-index:2 !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row > input,
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row > .nsf-search-input{
    position:relative !important;
    flex:1 1 auto !important;
    width:100% !important;
    min-width:0 !important;
    height:56px !important;
    padding:0 125px 0 52px !important;
    box-sizing:border-box !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn{
    position:absolute !important;
    right:10px !important;
    top:50% !important;
    bottom:auto !important;
    left:auto !important;
    transform:translateY(-50%) !important;
    width:92px !important;
    min-width:92px !important;
    max-width:92px !important;
    height:40px !important;
    min-height:40px !important;
    margin:0 !important;
    padding:0 12px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    box-sizing:border-box !important;
    z-index:3 !important;
  }
}

/* ========================================================================
   NSF 9.5.494 — HEADER MÓVIL / LOGO SIN RECORTE
   Solo estabiliza el header real de NSF; no cambia su ancho visual.
   ======================================================================== */
@media (max-width:700px){
  header.nsf-store-topbar{
    width:100% !important;
    max-width:100vw !important;
    min-height:64px !important;
    height:64px !important;
    overflow:hidden !important;
    display:flex !important;
    align-items:center !important;
  }
  header.nsf-store-topbar a.nsf-store-logo,
  header.nsf-store-topbar .nsf-store-logo{
    display:flex !important;
    align-items:center !important;
    height:100% !important;
    overflow:visible !important;
  }
  header.nsf-store-topbar a.nsf-store-logo img,
  header.nsf-store-topbar .nsf-store-logo img{
    display:block !important;
    width:180px !important;
    max-width:55vw !important;
    height:auto !important;
    max-height:40px !important;
    object-fit:contain !important;
    margin:0 !important;
  }
}


/* ========================================================================
   NSF 9.5.495 — TIRA DEL HILO / BUSCADOR MÓVIL LIMPIO
   El buscador no debe heredar un marco exterior del tema/maquetador.
   El único marco visible es el borde discontinuo del campo.
   ======================================================================== */
html body .nsf-tira-del-hilo-buscador .nsf-search-shell{
  width:100% !important;
  max-width:690px !important;
  margin:22px auto 0 !important;
  padding:0 !important;
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
html body .nsf-tira-del-hilo-buscador .nsf-search-box{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
html body .nsf-tira-del-hilo-buscador .nsf-search-row{
  position:relative !important;
  width:100% !important;
  min-height:62px !important;
  height:62px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
html body .nsf-tira-del-hilo-buscador .nsf-search-row > input,
html body .nsf-tira-del-hilo-buscador .nsf-search-row > .nsf-search-input{
  display:block !important;
  width:100% !important;
  height:62px !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 205px 0 62px !important;
  box-sizing:border-box !important;
  border:1.5px dashed #e5222a !important;
  border-radius:9px !important;
  background:#fff !important;
  box-shadow:none !important;
}
html body .nsf-tira-del-hilo-buscador .nsf-search-row > svg{
  position:absolute !important;
  left:18px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:26px !important;
  height:26px !important;
  margin:0 !important;
  z-index:4 !important;
}
html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn{
  position:absolute !important;
  right:8px !important;
  top:50% !important;
  left:auto !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
  width:160px !important;
  min-width:160px !important;
  max-width:160px !important;
  height:46px !important;
  min-height:46px !important;
  margin:0 !important;
  padding:0 18px !important;
  box-sizing:border-box !important;
  border:1px solid #e5222a !important;
  border-radius:8px !important;
  background:#e5222a !important;
  color:#fff !important;
  line-height:46px !important;
  box-shadow:4px 4px 0 #c92127 !important;
  z-index:5 !important;
}
html body .nsf-tira-del-hilo-buscador .nsf-search-shell:after{
  display:block !important;
  margin:11px 0 0 68px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
@media(max-width:700px){
  html body .nsf-tira-del-hilo-buscador .nsf-search-shell{
    width:100% !important;
    max-width:none !important;
    margin:22px auto 0 !important;
    padding:0 !important;
  }
  html body .nsf-tira-del-hilo-buscador .nsf-search-row{
    height:62px !important;
    min-height:62px !important;
  }
  html body .nsf-tira-del-hilo-buscador .nsf-search-row > input,
  html body .nsf-tira-del-hilo-buscador .nsf-search-row > .nsf-search-input{
    height:62px !important;
    padding:0 112px 0 52px !important;
  }
  html body .nsf-tira-del-hilo-buscador .nsf-search-row > svg{
    left:15px !important;
    width:24px !important;
    height:24px !important;
  }
  html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn{
    right:8px !important;
    width:108px !important;
    min-width:108px !important;
    max-width:108px !important;
    height:40px !important;
    min-height:40px !important;
    line-height:40px !important;
    padding:0 8px !important;
  }
}

/* ========================================================================
   NSF 9.5.496 — TIRA DEL HILO / BOTÓN BUSCAR MÓVIL
   Botón más compacto y separado del texto para evitar que invada el campo.
   ======================================================================== */
@media(max-width:700px){
  html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn{
    width:92px !important;
    min-width:92px !important;
    max-width:92px !important;
    right:8px !important;
    padding:0 8px !important;
  }
  html body .nsf-tira-del-hilo-buscador .nsf-search-row > input,
  html body .nsf-tira-del-hilo-buscador .nsf-search-row > .nsf-search-input{
    padding-right:112px !important;
  }
}


/* NSF 9.5.496 — override final móvil del buscador */
@media (max-width:700px){
  html body .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn{
    width:92px !important;
    min-width:92px !important;
    max-width:92px !important;
    right:8px !important;
    height:40px !important;
    min-height:40px !important;
    padding:0 8px !important;
  }
  html body .nsf-tira-del-hilo-buscador .nsf-search-row > input,
  html body .nsf-tira-del-hilo-buscador .nsf-search-row > .nsf-search-input{
    padding-right:112px !important;
  }
}

/* ========================================================================
   NSF 9.5.497 — TIRA DEL HILO / COMPOSICIÓN MÓVIL DEFINITIVA
   La versión anterior acumulaba varias capas de overrides que alteraban
   la geometría. Esta capa final fija una única composición en móvil:
   header intacto, menos aire, buscador ancho y botón integrado.
   ======================================================================== */
@media (max-width:700px){
  /* No tocar la estructura del header desde el buscador. */
  body:has(.nsf-tira-del-hilo-buscador) header.nsf-store-topbar{
    min-height:64px !important;
    height:64px !important;
    overflow:visible !important;
  }

  /* Contenedor de Tira: ocupa todo el ancho útil. */
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 16px 48px !important;
  }

  /* Acercamos el contenido al header sin tocar el header. */
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador > .nsf-hero{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:24px 4px 10px !important;
  }

  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-tira-eyebrow{
    margin:0 0 10px !important;
  }

  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-hero-title{
    font-size:clamp(2.15rem,9vw,3rem) !important;
    line-height:1.02 !important;
    margin:0 !important;
  }

  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-hero-lede{
    margin:16px auto 0 !important;
    max-width:100% !important;
    font-size:1rem !important;
    line-height:1.55 !important;
  }

  /* Buscador: sin marco exterior, ancho completo y una sola línea. */
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-shell{
    width:100% !important;
    max-width:none !important;
    margin:10px auto 0 !important;
    padding:0 !important;
    position:relative !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
  }

  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-box{
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row{
    width:100% !important;
    height:60px !important;
    min-height:60px !important;
    margin:0 !important;
    padding:0 !important;
    position:relative !important;
    display:block !important;
  }

  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row > input,
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row > .nsf-search-input{
    width:100% !important;
    height:60px !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 116px 0 50px !important;
    border:1.5px dashed #e5222a !important;
    border-radius:10px !important;
    background:#fff !important;
    box-shadow:none !important;
    box-sizing:border-box !important;
    font-size:1rem !important;
  }

  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row > svg{
    position:absolute !important;
    left:16px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    width:24px !important;
    height:24px !important;
    margin:0 !important;
    z-index:4 !important;
  }

  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-row .nsf-tira-buscar-btn{
    position:absolute !important;
    right:8px !important;
    top:50% !important;
    left:auto !important;
    bottom:auto !important;
    transform:translateY(-50%) !important;
    width:100px !important;
    min-width:100px !important;
    max-width:100px !important;
    height:42px !important;
    min-height:42px !important;
    margin:0 !important;
    padding:0 8px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border:1px solid #e5222a !important;
    border-radius:8px !important;
    background:#e5222a !important;
    color:#fff !important;
    font-size:.8rem !important;
    font-weight:700 !important;
    line-height:42px !important;
    box-shadow:3px 3px 0 #c92127 !important;
    z-index:5 !important;
    box-sizing:border-box !important;
  }

  /* Los ejemplos quedan inmediatamente debajo, sin crear otra caja. */
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-search-shell:after{
    margin:10px 0 0 0 !important;
    padding:0 8px !important;
    display:block !important;
    text-align:center !important;
  }

  /* Acercamos la siguiente sección al buscador. */
  body:has(.nsf-tira-del-hilo-buscador) .nsf-tira-del-hilo-buscador .nsf-explorar{
    margin:28px 0 20px !important;
  }
}


/* ========================================================================
   NSF 9.5.498 — TIRA DEL HILO / REPARACIÓN REAL DEL OVERFLOW MÓVIL
   Corrige el desplazamiento horizontal introducido por la capa 9.5.314:
   el componente tenía margin-left:50% y una segunda declaración transform
   que anulaba translateX(-50%). En móvil el componente vuelve a ocupar
   exactamente el ancho útil del viewport y no modifica el header.
   ======================================================================== */
@media (max-width:700px){
  html body .nsf-tira-del-hilo-buscador{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    transform:none !important;
    translate:none !important;
    box-sizing:border-box !important;
  }

  html body .nsf-tira-del-hilo-buscador > .nsf-hero,
  html body .nsf-tira-del-hilo-buscador .nsf-search-shell,
  html body .nsf-tira-del-hilo-buscador .nsf-explorar,
  html body .nsf-tira-del-hilo-buscador .nsf-results{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  html body .nsf-tira-del-hilo-buscador .nsf-search-row{
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  html body .nsf-tira-del-hilo-buscador .nsf-search-row > input,
  html body .nsf-tira-del-hilo-buscador .nsf-search-row > .nsf-search-input{
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
}


/* ========================================================================
   NSF 9.5.499 — TIRA DEL HILO / AIRE VISUAL EN MÓVIL
   Ajuste sutil de respiración entre bloques y dentro de las tarjetas,
   siguiendo la composición aprobada: más espacio sin aumentar el ancho
   ni alterar la geometría del header o del buscador.
   ======================================================================== */
@media (max-width:700px){
  body:has(.nsf-tira-del-hilo-buscador) .nsf-mi-recorrido{
    margin-bottom:22px !important;
    padding:20px 20px !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-mi-recorrido-cabecera{
    gap:14px !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-mi-recorrido-cabecera strong{
    margin-bottom:4px !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-mi-recorrido-cabecera span{
    margin-top:0 !important;
    line-height:1.45 !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-aporta{
    margin-top:78px !important;
    padding:34px 20px 32px !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-aporta-texto{
    margin-bottom:20px !important;
    line-height:1.12 !important;
  }
  body:has(.nsf-tira-del-hilo-buscador) .nsf-aporta-nota{
    margin-top:20px !important;
    line-height:1.55 !important;
  }
}

/* ========================================================================
   NSF 9.5.505 — ORBES SIN PUNTEADO INTERIOR
   Las obras cerradas/progresivas conservan su color y borde, pero el borde
   del orbe debe ser continuo. La zona táctil invisible sigue independiente.
   ======================================================================== */
.nsf-nodo-cerrado circle{
  stroke-dasharray:none !important;
}
/* ========================================================================
   NSF 9.5.506 — HITBOX INVISIBLE DE LOS ORBES
   El área táctil .nsf-nodo-hit es un círculo SVG independiente. El selector
   genérico .nsf-nodo circle le estaba aplicando relleno y borde, haciendo
   aparecer un segundo círculo dentro de cada orbe. Debe seguir siendo
   completamente invisible y conservar únicamente su función táctil.
   ======================================================================== */
.nsf-nodo > circle.nsf-nodo-hit{
  fill:transparent !important;
  stroke:none !important;
  stroke-width:0 !important;
  stroke-dasharray:none !important;
  pointer-events:all !important;
}


/* 9.5.524 — Perspectiva de exploración: investigar es opcional. */
.nsf-grafo-panel-tirar-hilo-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:14px 0 12px;
  padding:14px 16px;
  border:1px solid #eee2dc;
  border-radius:12px;
  background:#fff8f6;
}
.nsf-grafo-panel-tirar-hilo-texto{
  display:grid;
  gap:3px;
  min-width:0;
}
.nsf-grafo-panel-tirar-hilo-texto strong{
  color:var(--nsf-navy);
  font-size:.92rem;
}
.nsf-grafo-panel-tirar-hilo-texto span{
  color:var(--nsf-ink-soft);
  font-size:.78rem;
  line-height:1.4;
}
.nsf-grafo-panel-tirar-hilo-box .nsf-grafo-panel-tirar-hilo{
  flex:0 0 auto;
  border:1px solid var(--nsf-red);
  background:#fff;
  color:var(--nsf-red);
  border-radius:999px;
  padding:8px 13px;
  font:inherit;
  font-size:.78rem;
  font-weight:600;
  cursor:pointer;
  white-space:nowrap;
}
.nsf-grafo-panel-tirar-hilo-box .nsf-grafo-panel-tirar-hilo:hover{
  background:var(--nsf-red);
  color:#fff;
  filter:none;
}
@media(max-width:640px){
  .nsf-grafo-panel-tirar-hilo-box{
    align-items:flex-start;
    gap:10px;
    padding:12px;
  }
  .nsf-grafo-panel-tirar-hilo-box .nsf-grafo-panel-tirar-hilo{
    padding:7px 10px;
    font-size:.74rem;
  }
}

/* Mi memoria — estado de la IA */
.nsf-memoria-estado-ia{display:inline-flex;align-items:center;justify-content:center;gap:9px;margin-top:18px;padding:11px 18px;border:1px solid currentColor;border-radius:999px;font-size:13px;line-height:1.2;background:#fff;cursor:default;box-shadow:none;}
.nsf-memoria-estado-ia:disabled{opacity:1;}
.nsf-memoria-estado-ia .nsf-memoria-estado-dot{width:9px;height:9px;min-width:9px;border-radius:50%;background:currentColor;}
.nsf-memoria-estado-ia.is-activa{color:#16833a;border-color:#16833a;}
.nsf-memoria-estado-ia.is-inactiva{color:#c62828;border-color:#c62828;}
.nsf-memoria-estado-ia strong{font-weight:700;}
.nsf-memoria-estado-ayuda{margin:8px 0 0;font-size:13px;opacity:.75;}
.nsf-memoria-acciones button:disabled{opacity:.55;cursor:not-allowed;}

/* NSF 9.5.553 — la barra superior reserva el espacio de su sombra roja para
   no desbordar horizontalmente el contenedor ni generar scroll lateral. */
.nsf-tira-del-hilo-buscador .nsf-thread-block .nsf-barra-tipo{
  box-sizing:border-box !important;
  width:calc(100% - 24px) !important;
  max-width:calc(100% - 24px) !important;
  margin-right:24px !important;
}


/* Fuente de la portada al ampliar la imagen */
.nsf-visor-fuente{color:#fff;text-decoration:underline;font-size:.82rem;opacity:.9;}
.nsf-visor-fuente:hover{opacity:1;}
.nsf-imagen-fuente-campo{display:block;margin-top:8px;}
.nsf-imagen-fuente-campo span{display:block;font-size:11px;color:#666;margin-bottom:3px;}
.nsf-imagen-fuente-campo input{width:100%;box-sizing:border-box;}
.nsf-rel-card-imagen[data-nsf-fuente-imagen]{cursor:zoom-in;}


/* ========================================================================
   NSF 9.5.651 — MI RECORRIDO / REDISEÑO FINAL
   Una sola numeración, tarjetas compactas y portadas reales del grafo.
   ======================================================================== */
#nsf-grafo-mi-recorrido{
  position:relative;
  margin:24px 0 28px !important;
  padding:24px 22px 22px !important;
  border:1px dotted #c92220 !important;
  border-radius:22px !important;
  background:#fff !important;
  box-sizing:border-box !important;
  color:#182231 !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-cabecera{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
  margin:0 0 18px !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-titulo{
  display:flex !important;
  align-items:baseline !important;
  gap:12px !important;
  min-width:0 !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-titulo strong{
  color:#c92220 !important;
  font-size:1.65rem !important;
  line-height:1.1 !important;
  font-weight:750 !important;
  white-space:nowrap !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-titulo span{
  color:#777 !important;
  font-size:1rem !important;
  line-height:1.2 !important;
  white-space:nowrap !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-toggle{
  flex:0 0 auto !important;
  min-height:48px !important;
  padding:0 24px !important;
  border:0 !important;
  border-radius:14px !important;
  background:#b51d1b !important;
  color:#fff !important;
  font:inherit !important;
  font-weight:700 !important;
  cursor:pointer !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-detalle{margin:0 !important;}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-detalle ol{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  list-style:none !important;
  margin:0 !important;
  padding:0 0 0 52px !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-detalle li{
  position:relative !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  min-height:72px !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-detalle li::marker{content:none !important;}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-numero{
  position:absolute !important;
  left:-46px !important;
  top:50% !important;
  width:38px !important;
  height:38px !important;
  transform:translateY(-50%) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:1px dotted #c92220 !important;
  border-radius:50% !important;
  background:#fff !important;
  color:#c92220 !important;
  font-size:1rem !important;
  font-weight:700 !important;
  box-sizing:border-box !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-obra{
  position:relative !important;
  display:grid !important;
  grid-template-columns:72px minmax(0,1fr) 24px !important;
  align-items:center !important;
  gap:14px !important;
  width:100% !important;
  min-height:72px !important;
  padding:8px 14px 8px 8px !important;
  border:0 !important;
  border-radius:16px !important;
  background:#f7f7f7 !important;
  color:#182231 !important;
  text-align:left !important;
  box-shadow:none !important;
  cursor:pointer !important;
  box-sizing:border-box !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-obra:hover{background:#f1f1f1 !important;}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-portada{
  display:block !important;
  width:64px !important;
  height:64px !important;
  border-radius:12px !important;
  overflow:hidden !important;
  background:#e9e9e9 !important;
  box-shadow:0 2px 7px rgba(0,0,0,.08) !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-portada img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-portada-vacia::after{
  content:'NSF' !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
  color:#aaa !important;
  font-size:.7rem !important;
  font-weight:700 !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-cuerpo{
  min-width:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:4px !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-nombre{
  display:block !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  color:#182231 !important;
  font-size:1.05rem !important;
  line-height:1.2 !important;
  font-weight:700 !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-tipo{
  color:#73777e !important;
  font-size:.9rem !important;
  line-height:1.2 !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-flecha{
  justify-self:end !important;
  color:#182231 !important;
  font-size:2rem !important;
  line-height:1 !important;
  font-weight:400 !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-aqui{
  position:absolute !important;
  right:42px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  padding:5px 10px !important;
  border-radius:999px !important;
  background:#e62d38 !important;
  color:#fff !important;
  font-size:.72rem !important;
  font-weight:700 !important;
  white-space:nowrap !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-reset{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:48px !important;
  margin:18px 0 0 !important;
  padding:10px 18px !important;
  border:1px solid #c92220 !important;
  border-radius:14px !important;
  background:#fff !important;
  color:#c92220 !important;
  font:inherit !important;
  font-weight:700 !important;
  cursor:pointer !important;
  box-sizing:border-box !important;
}
#nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-reset:hover{background:#fff5f5 !important;}
@media(max-width:700px){
  #nsf-grafo-mi-recorrido{
    margin:20px 0 24px !important;
    padding:20px 18px 18px !important;
    border-radius:20px !important;
  }
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-cabecera{
    display:block !important;
    margin-bottom:16px !important;
  }
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-titulo{
    gap:8px !important;
    margin-bottom:14px !important;
  }
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-titulo strong{font-size:1.45rem !important;}
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-titulo span{font-size:.92rem !important;}
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-toggle{width:100% !important;}
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-detalle li{padding-left:0 !important;min-height:76px !important;}
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-numero{width:36px !important;height:36px !important;font-size:.92rem !important;left:-44px !important;}
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-obra{
    grid-template-columns:64px minmax(0,1fr) 20px !important;
    gap:12px !important;
    min-height:76px !important;
    padding:6px 9px 6px 6px !important;
    border-radius:15px !important;
  }
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-portada{width:62px !important;height:62px !important;border-radius:11px !important;}
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-nombre{font-size:1rem !important;}
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-tipo{font-size:.86rem !important;}
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-flecha{font-size:1.8rem !important;}
  #nsf-grafo-mi-recorrido .nsf-grafo-mi-recorrido-aqui{right:34px !important;top:auto !important;bottom:8px !important;transform:none !important;font-size:.64rem !important;padding:3px 7px !important;}
}
