/* ==========================================================================
   NAZCATEX — Hoja de estilos principal (compartida por la maqueta y el tema)
   Soluciones textiles para un mañana mejor
   --------------------------------------------------------------------------
   ÍNDICE
   01. Variables y paleta de marca
   02. Reset y base
   03. Tipografía
   04. Utilidades y contenedores
   05. Botones
   06. Barra superior (topbar)
   07. Cabecera y navegación
   08. Mega menú
   09. Menú móvil
   10. Hero
   11. Tira de ventajas
   12. Tarjetas de solución
   13. Banda de sostenibilidad
   14. Rejilla de industrias
   15. Bloque de innovación textil
   16. Cabecera de página interior
   17. Listado de productos (filtros + rejilla)
   18. Ficha de producto
   19. Portal de empresas
   20. Formularios y CTA final
   21. Pie de página
   22. Responsive
   23. Contenido editorial de WordPress
   24. Utilidades añadidas por las plantillas
   25. Formulario de cotización
   26. Portal Empresas (ajustes finos)
   27. WooCommerce
   ========================================================================== */

/* ==========================================================================
   01. VARIABLES Y PALETA DE MARCA
   Tomada de la propuesta de identidad (Propuesta Paleta Principal).
   ========================================================================== */
:root {
  /* Paleta principal */
  --nt-azul: #0b2948;        /* Azul Nazca — Pantone 289 C   */
  --nt-verde: #477a68;       /* Verde Andino — Pantone 5555 C */
  --nt-verde-hondo: #154734; /* Verde profundo — Pantone 3435 C */
  --nt-gris: #d9d9d6;        /* Gris Mineral — Cool Gray 2 C  */
  --nt-blanco: #ffffff;
  --nt-naranja: #e85b25;     /* Naranja Seguridad — Pantone 1585 C */

  /* Derivados de apoyo */
  --nt-azul-900: #061a2e;
  --nt-azul-700: #123a63;
  --nt-azul-050: #eaeff4;
  --nt-verde-050: #edf3f0;
  --nt-gris-050: #f4f5f4;
  --nt-gris-100: #ecedeb;
  --nt-gris-300: #c2c4c0;
  --nt-texto: #16202b;
  --nt-texto-suave: #5b6670;
  --nt-borde: #e2e4e1;
  --nt-naranja-oscuro: #c9491a;

  /* Tipografía */
  --nt-fuente-titulo: "Poppins", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --nt-fuente-texto: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;

  /* Métrica */
  --nt-ancho: 1320px;
  --nt-radio: 6px;
  --nt-radio-lg: 10px;
  --nt-sombra: 0 1px 2px rgba(11, 41, 72, .06), 0 8px 24px rgba(11, 41, 72, .08);
  --nt-sombra-alta: 0 18px 50px rgba(11, 41, 72, .16);
  --nt-transicion: .22s ease;

  /* Alturas de las barras fijas (las usa el scroll-margin) */
  --nt-alto-topbar: 40px;
  --nt-alto-header: 76px;
}

/* ==========================================================================
   02. RESET Y BASE
   ========================================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--nt-fuente-texto);
  font-size: 16px;
  line-height: 1.6;
  color: var(--nt-texto);
  background: var(--nt-blanco);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img,
svg,
video { max-width: 100%; height: auto; display: block; }

a {
  color: var(--nt-azul);
  text-decoration: none;
  transition: color var(--nt-transicion);
}
a:hover { color: var(--nt-verde); }

ul, ol { margin: 0; padding: 0; list-style: none; }

button,
input,
select,
textarea { font: inherit; color: inherit; }

button { cursor: pointer; }

table { border-collapse: collapse; width: 100%; }

:focus-visible {
  outline: 2px solid var(--nt-naranja);
  outline-offset: 2px;
}

/* Salto al contenido (accesibilidad) */
.nt-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999;
  background: var(--nt-azul);
  color: #fff;
  padding: 12px 20px;
}
.nt-skip-link:focus { left: 0; color: #fff; }

/* ==========================================================================
   03. TIPOGRAFÍA
   ========================================================================== */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--nt-fuente-titulo);
  color: var(--nt-azul);
  margin: 0 0 .5em;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -.01em;
}

h1 { font-size: clamp(2.1rem, 4.4vw, 3.5rem); }
h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
h3 { font-size: clamp(1.15rem, 1.6vw, 1.5rem); }
h4 { font-size: 1.1rem; }

p { margin: 0 0 1rem; }
p:last-child { margin-bottom: 0; }

/* Antetítulo en versalitas, muy usado en toda la propuesta */
.nt-eyebrow {
  display: block;
  font-family: var(--nt-fuente-texto);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--nt-texto-suave);
  margin-bottom: .9rem;
}
.nt-eyebrow--claro { color: rgba(255, 255, 255, .75); }
.nt-eyebrow--verde { color: var(--nt-verde); }

/* Palabra resaltada en verde dentro de un titular */
.nt-verde { color: var(--nt-verde); }
.nt-naranja { color: var(--nt-naranja); }

.nt-lead {
  font-size: 1.05rem;
  color: var(--nt-texto-suave);
  max-width: 62ch;
}

/* Frase manuscrita del hero */
.nt-script {
  font-family: Georgia, "Times New Roman", serif;
  font-style: italic;
  font-size: 1.05rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .92);
}

/* ==========================================================================
   04. UTILIDADES Y CONTENEDORES
   ========================================================================== */
.nt-container {
  width: 100%;
  max-width: var(--nt-ancho);
  margin: 0 auto;
  padding: 0 24px;
}
.nt-container--ancho { max-width: 1560px; }

.nt-section { padding: clamp(48px, 6vw, 88px) 0; }
.nt-section--compacta { padding: clamp(32px, 4vw, 56px) 0; }
.nt-section--gris { background: var(--nt-gris-050); }
.nt-section--azul { background: var(--nt-azul); color: rgba(255, 255, 255, .85); }
.nt-section--azul h2,
.nt-section--azul h3 { color: #fff; }

.nt-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.nt-section-head h2 { margin-bottom: 0; }

.nt-link-mas {
  font-size: .9rem;
  font-weight: 600;
  white-space: nowrap;
}
.nt-link-mas::after { content: " →"; }

.nt-grid { display: grid; gap: 20px; }
.nt-grid--2 { grid-template-columns: repeat(2, 1fr); }
.nt-grid--3 { grid-template-columns: repeat(3, 1fr); }
.nt-grid--4 { grid-template-columns: repeat(4, 1fr); }
.nt-grid--5 { grid-template-columns: repeat(5, 1fr); }
.nt-grid--6 { grid-template-columns: repeat(6, 1fr); }

.nt-oculto { display: none !important; }

.nt-solo-lectores {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Icono de línea genérico */
.nt-ico {
  width: 28px;
  height: 28px;
  stroke: currentColor;
  stroke-width: 1.5;
  fill: none;
  flex: none;
}
.nt-ico--sm { width: 20px; height: 20px; }
.nt-ico--lg { width: 36px; height: 36px; }

/* Migas de pan */
.nt-migas {
  font-size: .8rem;
  color: var(--nt-texto-suave);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 10px;
}
.nt-migas a { color: inherit; }
.nt-migas span + span::before { content: "› "; margin-right: 6px; }
.nt-migas--claro,
.nt-migas--claro a { color: rgba(255, 255, 255, .8); }

/* ==========================================================================
   05. BOTONES
   ========================================================================== */
.nt-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 26px;
  border: 1px solid transparent;
  border-radius: var(--nt-radio);
  font-family: var(--nt-fuente-texto);
  font-size: .95rem;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  transition: background var(--nt-transicion), color var(--nt-transicion),
              border-color var(--nt-transicion), transform var(--nt-transicion);
}
.nt-btn:hover { transform: translateY(-1px); }
.nt-btn:active { transform: translateY(0); }

.nt-btn--naranja { background: var(--nt-naranja); color: #fff; }
.nt-btn--naranja:hover { background: var(--nt-naranja-oscuro); color: #fff; }

.nt-btn--verde { background: var(--nt-verde-hondo); color: #fff; }
.nt-btn--verde:hover { background: #0f3626; color: #fff; }

.nt-btn--azul { background: var(--nt-azul); color: #fff; }
.nt-btn--azul:hover { background: var(--nt-azul-700); color: #fff; }

.nt-btn--linea {
  background: transparent;
  border-color: var(--nt-azul);
  color: var(--nt-azul);
}
.nt-btn--linea:hover { background: var(--nt-azul); color: #fff; }

.nt-btn--linea-claro {
  background: transparent;
  border-color: rgba(255, 255, 255, .55);
  color: #fff;
}
.nt-btn--linea-claro:hover { background: #fff; color: var(--nt-azul); }

.nt-btn--bloque { width: 100%; }
.nt-btn--sm { padding: 9px 16px; font-size: .85rem; }
.nt-btn--lg { padding: 16px 32px; font-size: 1rem; }

.nt-btn-grupo { display: flex; flex-wrap: wrap; gap: 14px; }

/* ==========================================================================
   06. BARRA SUPERIOR (TOPBAR)
   ========================================================================== */
.nt-topbar {
  background: var(--nt-azul);
  color: rgba(255, 255, 255, .8);
  font-size: .8rem;
}
.nt-topbar .nt-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--nt-alto-topbar);
  gap: 20px;
}
.nt-topbar a { color: rgba(255, 255, 255, .8); }
.nt-topbar a:hover { color: #fff; }
.nt-topbar-lista {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.nt-topbar-lista li:first-child { position: relative; padding-right: 18px; }
.nt-topbar-lista li:first-child::after {
  content: "";
  position: absolute;
  right: 0; top: 50%;
  width: 1px; height: 12px;
  margin-top: -6px;
  background: rgba(255, 255, 255, .3);
}

/* ==========================================================================
   07. CABECERA Y NAVEGACIÓN
   ========================================================================== */
.nt-header {
  position: sticky;
  top: 0;
  z-index: 200;
  background: #fff;
  border-bottom: 1px solid var(--nt-borde);
}
.nt-header.is-fijo { box-shadow: 0 4px 18px rgba(11, 41, 72, .08); }

.nt-header-inner {
  display: flex;
  align-items: center;
  gap: 28px;
  min-height: var(--nt-alto-header);
}

/* --- Logotipo ------------------------------------------------------------ */
.nt-logo {
  display: inline-flex;
  flex-direction: column;
  gap: 3px;
  flex: none;
  line-height: 1;
}
.nt-logo:hover { color: inherit; }
.nt-logo-texto {
  font-family: var(--nt-fuente-titulo);
  font-size: 1.55rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--nt-azul);
}
.nt-logo-texto em { font-style: normal; font-weight: 400; color: var(--nt-verde-hondo); }
.nt-logo-tagline {
  font-size: .43rem;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--nt-texto-suave);
  white-space: nowrap;
}
.nt-logo img { max-height: 46px; width: auto; }

/* --- Navegación principal ------------------------------------------------ */
.nt-nav { margin-right: auto; }
.nt-nav > ul {
  display: flex;
  align-items: center;
  gap: 4px;
}
.nt-nav > ul > li { position: static; }
.nt-nav > ul > li > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 28px 12px;
  font-size: .93rem;
  font-weight: 500;
  color: var(--nt-texto);
  border-bottom: 2px solid transparent;
}
.nt-nav > ul > li.is-abierto > a,
.nt-nav > ul > li:hover > a,
.nt-nav > ul > li.current-menu-item > a {
  color: var(--nt-azul);
  border-bottom-color: var(--nt-verde);
}
/* Flechita del desplegable */
.nt-nav > ul > li.menu-item-has-children > a::after,
.nt-nav > ul > li.nt-tiene-mega > a::after {
  content: "";
  width: 7px; height: 7px;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform var(--nt-transicion);
}
.nt-nav > ul > li.is-abierto > a::after { transform: rotate(-135deg) translateY(-2px); }

/* --- Herramientas de la derecha ----------------------------------------- */
.nt-header-tools {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: none;
}

.nt-buscador {
  position: relative;
  width: clamp(180px, 20vw, 300px);
}
.nt-buscador input {
  width: 100%;
  padding: 10px 40px 10px 16px;
  border: 1px solid var(--nt-borde);
  border-radius: 40px;
  background: var(--nt-gris-050);
  font-size: .85rem;
}
.nt-buscador input::placeholder { color: #8a9299; }
.nt-buscador input:focus {
  background: #fff;
  border-color: var(--nt-verde);
  outline: none;
}
.nt-buscador button {
  position: absolute;
  right: 6px; top: 50%;
  transform: translateY(-50%);
  background: none;
  border: 0;
  padding: 6px;
  color: var(--nt-azul);
  display: flex;
}

.nt-icono-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  background: none;
  border: 0;
  color: var(--nt-azul);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.nt-icono-btn:hover { color: var(--nt-verde); }

.nt-carrito-cuenta {
  position: absolute;
  top: 0; right: 0;
  min-width: 18px; height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--nt-naranja);
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
}

.nt-idioma { position: relative; }
.nt-idioma-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: 0;
  font-size: .82rem;
  font-weight: 600;
  color: var(--nt-azul);
}
.nt-idioma-lista {
  position: absolute;
  right: 0; top: 130%;
  min-width: 120px;
  background: #fff;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  box-shadow: var(--nt-sombra);
  padding: 6px;
  display: none;
}
.nt-idioma.is-abierto .nt-idioma-lista { display: block; }
.nt-idioma-lista a {
  display: block;
  padding: 7px 12px;
  font-size: .85rem;
  border-radius: 4px;
}
.nt-idioma-lista a:hover { background: var(--nt-gris-050); }

/* Botón hamburguesa */
.nt-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 42px; height: 42px;
  padding: 0;
  background: none;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
}
.nt-burger span {
  display: block;
  width: 18px; height: 2px;
  margin: 0 auto;
  background: var(--nt-azul);
  transition: transform var(--nt-transicion), opacity var(--nt-transicion);
}
.nt-burger.is-activo span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nt-burger.is-activo span:nth-child(2) { opacity: 0; }
.nt-burger.is-activo span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   08. MEGA MENÚ
   ========================================================================== */
.nt-mega {
  position: absolute;
  left: 0; right: 0;
  top: 100%;
  background: #fff;
  border-top: 1px solid var(--nt-borde);
  box-shadow: var(--nt-sombra-alta);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity var(--nt-transicion), transform var(--nt-transicion), visibility var(--nt-transicion);
  z-index: 190;
}
.nt-nav > ul > li.is-abierto > .nt-mega {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.nt-mega-inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(280px, 380px);
  gap: 36px;
  padding: 36px 24px 30px;
  max-width: var(--nt-ancho);
  margin: 0 auto;
}
.nt-mega-inner--intro {
  grid-template-columns: minmax(230px, 280px) repeat(3, minmax(0, 1fr)) minmax(280px, 340px);
}

.nt-mega-col > .nt-ico { color: var(--nt-azul); margin-bottom: 12px; }
.nt-mega-titulo {
  font-family: var(--nt-fuente-titulo);
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--nt-azul);
  margin: 0 0 4px;
}
.nt-mega-desc {
  font-size: .82rem;
  color: var(--nt-texto-suave);
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--nt-borde);
}
.nt-mega-lista li + li { margin-top: 7px; }
.nt-mega-lista a {
  font-size: .87rem;
  color: var(--nt-texto);
}
.nt-mega-lista a:hover { color: var(--nt-verde); padding-left: 3px; }

.nt-mega-intro p {
  font-size: .87rem;
  color: var(--nt-texto-suave);
}
.nt-mega-pilares { margin: 18px 0; }
.nt-mega-pilares li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .87rem;
  font-weight: 500;
  padding: 6px 0;
  color: var(--nt-azul);
}
.nt-mega-pilares .nt-ico { width: 22px; height: 22px; color: var(--nt-verde); }

/* Tarjetas promocionales de la derecha */
.nt-mega-promos { display: grid; gap: 12px; align-content: start; }
.nt-mega-promo {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 92px;
  padding: 16px 18px;
  border-radius: var(--nt-radio);
  overflow: hidden;
  background: var(--nt-azul);
  color: #fff;
}
.nt-mega-promo img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .55;
}
.nt-mega-promo > * { position: relative; }
.nt-mega-promo small {
  display: block;
  font-size: .66rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .8);
}
.nt-mega-promo strong {
  font-family: var(--nt-fuente-titulo);
  font-size: 1rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.nt-mega-promo:hover { color: #fff; }
.nt-mega-promo:hover img { opacity: .7; }

.nt-mega-promo--claro {
  background: var(--nt-verde-050);
  color: var(--nt-azul);
  min-height: 0;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}
.nt-mega-promo--claro:hover { color: var(--nt-azul); }
.nt-mega-promo--claro .nt-ico { color: var(--nt-verde); }
.nt-mega-promo--claro strong { text-transform: none; letter-spacing: 0; }
.nt-mega-promo--claro small { color: var(--nt-texto-suave); letter-spacing: 0; font-size: .8rem; text-transform: none; }

/* Franja de servicios al pie del mega menú */
.nt-mega-pie { border-top: 1px solid var(--nt-borde); background: var(--nt-gris-050); }
.nt-mega-pie ul {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  max-width: var(--nt-ancho);
  margin: 0 auto;
  padding: 18px 24px;
  flex-wrap: wrap;
}
.nt-mega-pie li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: .82rem;
  color: var(--nt-texto-suave);
}
.nt-mega-pie .nt-ico { color: var(--nt-azul); }
.nt-mega-pie strong {
  display: block;
  color: var(--nt-azul);
  font-size: .87rem;
  font-weight: 600;
}

/* Capa oscura tras el mega menú */
.nt-overlay {
  position: fixed;
  inset: 0;
  background: rgba(11, 41, 72, .32);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--nt-transicion), visibility var(--nt-transicion);
  z-index: 150;
}
.nt-overlay.is-visible { opacity: 1; visibility: visible; }

/* ==========================================================================
   09. MENÚ MÓVIL
   ========================================================================== */
.nt-movil {
  position: fixed;
  top: 0; right: 0;
  width: min(380px, 88vw);
  height: 100dvh;
  background: #fff;
  z-index: 300;
  transform: translateX(100%);
  transition: transform .3s ease;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  box-shadow: var(--nt-sombra-alta);
}
.nt-movil.is-abierto { transform: translateX(0); }

.nt-movil-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  border-bottom: 1px solid var(--nt-borde);
}
.nt-movil-cerrar {
  background: none;
  border: 0;
  font-size: 1.6rem;
  line-height: 1;
  color: var(--nt-azul);
  padding: 4px 8px;
}
.nt-movil-cuerpo { padding: 12px 20px 28px; }

.nt-movil-nav > li { border-bottom: 1px solid var(--nt-borde); }
.nt-movil-nav > li > a,
.nt-movil-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 15px 2px;
  background: none;
  border: 0;
  text-align: left;
  font-size: .98rem;
  font-weight: 600;
  color: var(--nt-azul);
}
.nt-movil-toggle::after {
  content: "";
  width: 8px; height: 8px;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: rotate(-45deg);
  transition: transform var(--nt-transicion);
  flex: none;
}
.nt-movil-toggle.is-abierto::after { transform: rotate(45deg); }
.nt-movil-sub { display: none; padding: 0 0 14px 4px; }
.nt-movil-sub.is-abierto { display: block; }
.nt-movil-sub li + li { margin-top: 2px; }
.nt-movil-sub a {
  display: block;
  padding: 8px 0;
  font-size: .89rem;
  color: var(--nt-texto-suave);
}
.nt-movil-acciones { display: grid; gap: 10px; margin-top: 22px; }

/* ==========================================================================
   10. HERO
   ========================================================================== */
.nt-hero {
  position: relative;
  background: var(--nt-azul-900);
  color: #fff;
  overflow: hidden;
}
.nt-hero-media {
  position: absolute;
  inset: 0;
}
.nt-hero-media img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.nt-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg,
              rgba(6, 26, 46, .94) 0%,
              rgba(6, 26, 46, .82) 38%,
              rgba(6, 26, 46, .35) 68%,
              rgba(6, 26, 46, .55) 100%);
}
.nt-hero .nt-container { position: relative; }

.nt-hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 40px;
  align-items: center;
  min-height: clamp(460px, 62vh, 620px);
  padding: 60px 0;
}
.nt-hero-texto { max-width: 640px; }
.nt-hero h1 { color: #fff; margin-bottom: 18px; }
.nt-hero p.nt-lead { color: rgba(255, 255, 255, .88); margin-bottom: 28px; }

.nt-hero-aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 28px;
  text-align: right;
  padding-left: 20px;
}
.nt-hero-keywords {
  font-size: .72rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .78);
  line-height: 2;
}
.nt-hero-keywords::before {
  content: "";
  display: block;
  width: 34px; height: 1px;
  background: rgba(255, 255, 255, .5);
  margin: 0 0 14px auto;
}
.nt-hero-sello {
  border-left: 3px solid var(--nt-naranja);
  padding-left: 14px;
  text-align: left;
  font-size: .72rem;
  letter-spacing: .18em;
  line-height: 1.9;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .85);
  align-self: flex-start;
}

/* Botón «reproducir» del CTA secundario */
.nt-btn-play {
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 1.5px solid currentColor;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.nt-btn-play::before {
  content: "";
  border-left: 6px solid currentColor;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  margin-left: 2px;
}

/* Hero interior, más bajo */
.nt-hero--interior .nt-hero-inner { min-height: clamp(300px, 38vh, 400px); }

/* ==========================================================================
   11. TIRA DE VENTAJAS
   ========================================================================== */
.nt-ventajas {
  border-bottom: 1px solid var(--nt-borde);
  background: #fff;
}
.nt-ventajas ul {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
}
.nt-ventajas li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 26px 24px;
  border-left: 1px solid var(--nt-borde);
}
.nt-ventajas li:first-child { border-left: 0; padding-left: 0; }
.nt-ventajas .nt-ico { color: var(--nt-azul); margin-top: 2px; }
.nt-ventajas strong {
  display: block;
  font-family: var(--nt-fuente-titulo);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--nt-azul);
  line-height: 1.35;
  margin-bottom: 5px;
}
.nt-ventajas span { font-size: .82rem; color: var(--nt-texto-suave); line-height: 1.5; }

/* Variante de 3 columnas centradas (pie de sección de industrias) */
.nt-ventajas--centrado ul { grid-template-columns: repeat(3, 1fr); }
.nt-ventajas--centrado li { justify-content: center; }

/* ==========================================================================
   12. TARJETAS DE SOLUCIÓN (bloques con foto y superposición)
   ========================================================================== */
.nt-card-foto {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 300px;
  padding: 24px;
  border-radius: var(--nt-radio);
  overflow: hidden;
  background: var(--nt-azul);
  color: #fff;
  isolation: isolate;
}
.nt-card-foto img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: -2;
  transition: transform .5s ease;
}
.nt-card-foto::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(to top,
              rgba(6, 26, 46, .92) 0%,
              rgba(6, 26, 46, .55) 42%,
              rgba(6, 26, 46, .12) 100%);
}
.nt-card-foto:hover { color: #fff; }
.nt-card-foto:hover img { transform: scale(1.05); }

.nt-card-foto h3 { color: #fff; margin-bottom: 4px; }
.nt-card-foto p {
  font-size: .85rem;
  color: rgba(255, 255, 255, .82);
  margin: 0;
  padding-right: 30px;
}
.nt-card-foto .nt-flecha {
  position: absolute;
  right: 22px; bottom: 24px;
  font-size: 1.15rem;
  transition: transform var(--nt-transicion);
}
.nt-card-foto:hover .nt-flecha { transform: translateX(4px); }

.nt-card-foto--alta { min-height: 340px; }
.nt-card-foto--baja { min-height: 220px; }

/* Icono de industria sobre la tarjeta */
.nt-card-foto .nt-ico--marca {
  width: 30px; height: 30px;
  margin-bottom: 12px;
  color: #fff;
  stroke-width: 1.4;
}

/* ==========================================================================
   13. BANDA DE SOSTENIBILIDAD
   ========================================================================== */
.nt-sostenibilidad {
  position: relative;
  background: var(--nt-gris-050);
  overflow: hidden;
}
.nt-sostenibilidad-media {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 58%;
}
.nt-sostenibilidad-media img { width: 100%; height: 100%; object-fit: cover; }
.nt-sostenibilidad-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--nt-gris-050) 0%, rgba(244, 245, 244, .5) 26%, rgba(244, 245, 244, 0) 55%);
}
.nt-sostenibilidad .nt-container { position: relative; }
.nt-sostenibilidad-inner {
  display: grid;
  grid-template-columns: minmax(0, 420px) minmax(0, 330px) minmax(0, 230px);
  gap: 48px;
  align-items: center;
  padding: clamp(40px, 5vw, 72px) 0;
}
.nt-sostenibilidad h2 { margin-bottom: 14px; }

.nt-pilares {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  text-align: center;
}
.nt-pilares li { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--nt-texto-suave); line-height: 1.5; }
.nt-pilares .nt-ico { margin: 0 auto 10px; color: var(--nt-verde-hondo); }

.nt-sello-origen {
  border-left: 3px solid var(--nt-naranja);
  padding-left: 16px;
  font-size: .78rem;
  letter-spacing: .16em;
  line-height: 2;
  text-transform: uppercase;
  color: var(--nt-azul);
  font-weight: 500;
}
.nt-sello-origen--claro { color: #fff; }

/* ==========================================================================
   14. REJILLA DE INDUSTRIAS
   ========================================================================== */
.nt-industrias-split {
  display: grid;
  grid-template-columns: minmax(0, 270px) minmax(0, 1fr);
  gap: 36px;
  align-items: start;
}
.nt-industrias-split .nt-grid { gap: 14px; }

/* ==========================================================================
   15. BLOQUE DE INNOVACIÓN TEXTIL
   ========================================================================== */
.nt-innovacion {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr) minmax(0, 1fr);
  align-items: stretch;
  background: var(--nt-gris-050);
  border-radius: var(--nt-radio);
  overflow: hidden;
}
.nt-innovacion-media { position: relative; min-height: 340px; }
.nt-innovacion-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nt-innovacion-texto { padding: clamp(28px, 3vw, 46px); }
.nt-innovacion-texto h2 { text-transform: uppercase; font-size: clamp(1.4rem, 2vw, 1.9rem); }
.nt-innovacion .nt-pilares { margin-top: 30px; text-align: left; }
.nt-innovacion .nt-pilares .nt-ico { margin-left: 0; }

.nt-innovacion-cita {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 22px;
  padding: clamp(28px, 3vw, 46px);
  color: #fff;
}
.nt-innovacion-cita img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nt-innovacion-cita::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(6, 26, 46, .55);
}
.nt-innovacion-cita > * { position: relative; z-index: 1; }
.nt-innovacion-cita p {
  font-family: var(--nt-fuente-titulo);
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1.6;
  text-transform: uppercase;
  margin: 0;
}

/* Bandera peruana minimal */
.nt-bandera {
  display: inline-flex;
  width: 30px; height: 20px;
  border-radius: 2px;
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .25);
}
.nt-bandera i { display: block; flex: 1; height: 100%; background: #d91023; }
.nt-bandera i:nth-child(2) { background: #fff; }

/* ==========================================================================
   16. CABECERA DE PÁGINA INTERIOR (banda con foto)
   ========================================================================== */
.nt-page-hero {
  position: relative;
  background: var(--nt-azul-900);
  color: #fff;
  overflow: hidden;
}
.nt-page-hero img.nt-page-hero-bg {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .65;
}
.nt-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6, 26, 46, .95) 8%, rgba(6, 26, 46, .55) 55%, rgba(6, 26, 46, .8) 100%);
}
.nt-page-hero .nt-container { position: relative; z-index: 1; }
.nt-page-hero-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: clamp(30px, 4vw, 56px) 0;
  flex-wrap: wrap;
}
.nt-page-hero h1 { color: #fff; margin-bottom: 8px; }
.nt-page-hero p { color: rgba(255, 255, 255, .85); margin: 0; max-width: 58ch; }
.nt-page-hero-claim {
  font-size: .78rem;
  letter-spacing: .18em;
  line-height: 2;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .9);
  border-left: 2px solid var(--nt-verde);
  padding-left: 16px;
}

/* Fila de subcategorías con icono */
.nt-chips-ico {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  overflow-x: auto;
  background: #fff;
}
.nt-chips-ico a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 10px;
  min-width: 118px;
  border-right: 1px solid var(--nt-borde);
  font-size: .72rem;
  color: var(--nt-texto-suave);
  text-align: center;
}
.nt-chips-ico a:last-child { border-right: 0; }
.nt-chips-ico a:hover,
.nt-chips-ico a.is-activo { background: var(--nt-verde-050); color: var(--nt-azul); }
.nt-chips-ico .nt-ico { color: var(--nt-azul); }

/* ==========================================================================
   17. LISTADO DE PRODUCTOS (FILTROS + REJILLA)
   ========================================================================== */
.nt-tienda {
  display: grid;
  grid-template-columns: 244px minmax(0, 1fr);
  gap: 36px;
  align-items: start;
}

/* --- Barra lateral de filtros ------------------------------------------- */
.nt-filtros { position: sticky; top: calc(var(--nt-alto-header) + 16px); }
.nt-filtro-grupo { border-bottom: 1px solid var(--nt-borde); padding: 14px 0; }
.nt-filtro-grupo:first-child { padding-top: 0; }
.nt-filtro-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: 0;
  padding: 0;
  font-family: var(--nt-fuente-titulo);
  font-size: .92rem;
  font-weight: 600;
  color: var(--nt-azul);
  text-align: left;
}
.nt-filtro-head::after {
  content: "";
  width: 8px; height: 8px;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: rotate(-135deg);
  transition: transform var(--nt-transicion);
  flex: none;
  margin-top: 3px;
}
.nt-filtro-head.is-cerrado::after { transform: rotate(45deg); margin-top: -3px; }
.nt-filtro-cuerpo { padding-top: 12px; }
.nt-filtro-head.is-cerrado + .nt-filtro-cuerpo { display: none; }

.nt-filtro-cuerpo label {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 5px 0;
  font-size: .86rem;
  color: var(--nt-texto-suave);
  cursor: pointer;
}
.nt-filtro-cuerpo label:hover { color: var(--nt-azul); }
.nt-filtro-cuerpo input[type="checkbox"] {
  width: 15px; height: 15px;
  accent-color: var(--nt-verde-hondo);
  flex: none;
}
.nt-filtro-cuerpo .nt-cuenta { margin-left: auto; font-size: .78rem; color: var(--nt-gris-300); }

.nt-filtro-cats li a {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 0 6px 10px;
  border-left: 2px solid transparent;
  font-size: .87rem;
  color: var(--nt-texto-suave);
}
.nt-filtro-cats li a:hover { color: var(--nt-azul); }
.nt-filtro-cats li a.is-activo {
  color: var(--nt-azul);
  font-weight: 600;
  border-left-color: var(--nt-verde-hondo);
}

.nt-filtro-buscar {
  width: 100%;
  padding: 8px 12px;
  margin-bottom: 8px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  font-size: .82rem;
}

.nt-filtros-movil-btn { display: none; }

/* --- Barra de orden ------------------------------------------------------ */
.nt-tienda-barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--nt-borde);
  flex-wrap: wrap;
}
.nt-tienda-cuenta { font-size: .87rem; color: var(--nt-texto-suave); }
.nt-tienda-cuenta strong { color: var(--nt-azul); }
.nt-tienda-orden { display: flex; align-items: center; gap: 12px; }
.nt-tienda-orden select {
  padding: 8px 12px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: #fff;
  font-size: .85rem;
}
.nt-vista { display: flex; gap: 4px; }
.nt-vista button {
  width: 34px; height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: #fff;
  color: var(--nt-texto-suave);
}
.nt-vista button.is-activo { background: var(--nt-azul); border-color: var(--nt-azul); color: #fff; }

/* --- Tarjeta de producto ------------------------------------------------- */
.nt-productos { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.nt-productos--4 { grid-template-columns: repeat(4, 1fr); }

.nt-producto {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: #fff;
  overflow: hidden;
  transition: box-shadow var(--nt-transicion), border-color var(--nt-transicion);
}
.nt-producto:hover { box-shadow: var(--nt-sombra); border-color: var(--nt-gris-300); }

.nt-producto-media {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--nt-gris-050);
  overflow: hidden;
}
.nt-producto-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
}
.nt-producto:hover .nt-producto-media img { transform: scale(1.04); }

.nt-badge {
  position: absolute;
  left: 10px; bottom: 10px;
  padding: 4px 9px;
  border-radius: 3px;
  background: var(--nt-azul);
  color: #fff;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.nt-badge--nuevo { background: var(--nt-azul); }
.nt-badge--oferta { background: var(--nt-naranja); }
.nt-badge--agotado { background: var(--nt-texto-suave); }
.nt-badge--verde { background: var(--nt-verde-hondo); }

.nt-favorito {
  position: absolute;
  top: 10px; right: 10px;
  width: 30px; height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  color: var(--nt-texto-suave);
}
.nt-favorito:hover,
.nt-favorito.is-activo { color: var(--nt-naranja); }
.nt-favorito.is-activo .nt-ico { fill: currentColor; }

.nt-producto-cuerpo {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px;
  flex: 1;
}
.nt-producto-marca {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--nt-texto-suave);
}
.nt-producto-titulo {
  font-family: var(--nt-fuente-texto);
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.35;
  margin: 0;
}
.nt-producto-titulo a { color: var(--nt-azul); }
.nt-producto-sku { font-size: .76rem; color: var(--nt-texto-suave); }

.nt-colores { display: flex; gap: 6px; }
.nt-color {
  width: 13px; height: 13px;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, .15);
  display: inline-block;
}

.nt-producto-props {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  font-size: .68rem;
  color: var(--nt-texto-suave);
}
.nt-producto-props span { display: inline-flex; align-items: center; gap: 4px; }
.nt-producto-props .nt-ico { width: 13px; height: 13px; }

.nt-precio {
  margin-top: auto;
  padding-top: 8px;
  font-family: var(--nt-fuente-titulo);
  font-size: 1rem;
  font-weight: 700;
  color: var(--nt-azul);
}
.nt-precio del { font-weight: 400; font-size: .85rem; color: var(--nt-gris-300); margin-right: 6px; }

/* Paginación */
.nt-paginacion {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 28px;
}
.nt-paginacion a,
.nt-paginacion span {
  min-width: 32px; height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  font-size: .85rem;
  color: var(--nt-texto-suave);
  background: #fff;
}
.nt-paginacion .current,
.nt-paginacion a:hover {
  background: var(--nt-azul);
  border-color: var(--nt-azul);
  color: #fff;
}
.nt-paginacion .dots { border: 0; background: none; }

.nt-tienda-pie {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.nt-tienda-pie .nt-paginacion { margin-top: 0; }

/* ==========================================================================
   18. FICHA DE PRODUCTO
   ========================================================================== */
.nt-ficha {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}

.nt-galeria { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 14px; }
.nt-galeria-thumbs { display: flex; flex-direction: column; gap: 10px; }
.nt-galeria-thumbs button {
  padding: 0;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: var(--nt-gris-050);
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.nt-galeria-thumbs button.is-activo { border-color: var(--nt-azul); }
.nt-galeria-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.nt-galeria-principal {
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: var(--nt-gris-050);
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.nt-galeria-principal img { width: 100%; height: 100%; object-fit: cover; }

.nt-ficha-info h1 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin-bottom: 4px; }
.nt-ficha-sku {
  font-family: var(--nt-fuente-titulo);
  font-size: 1rem;
  color: var(--nt-texto-suave);
  margin-bottom: 16px;
}
.nt-ficha-precio {
  font-family: var(--nt-fuente-titulo);
  font-size: 1.9rem;
  font-weight: 700;
  color: var(--nt-azul);
  margin: 4px 0 18px;
}
.nt-ficha-precio small { font-size: .8rem; font-weight: 400; color: var(--nt-texto-suave); }

.nt-ficha-props { margin: 18px 0; display: grid; gap: 9px; }
.nt-ficha-props li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .88rem;
  color: var(--nt-texto);
}
.nt-ficha-props .nt-ico { color: var(--nt-verde-hondo); width: 19px; height: 19px; }

.nt-ficha-opciones {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  padding: 18px 0;
  border-top: 1px solid var(--nt-borde);
  border-bottom: 1px solid var(--nt-borde);
  margin: 20px 0;
}
.nt-campo label {
  display: block;
  font-size: .8rem;
  font-weight: 600;
  color: var(--nt-texto-suave);
  margin-bottom: 7px;
}
.nt-campo select {
  min-width: 110px;
  padding: 10px 12px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: #fff;
  font-size: .9rem;
}

.nt-cantidad {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  overflow: hidden;
}
.nt-cantidad button {
  width: 38px; height: 40px;
  background: #fff;
  border: 0;
  font-size: 1.1rem;
  color: var(--nt-azul);
}
.nt-cantidad button:hover { background: var(--nt-gris-050); }
.nt-cantidad input {
  width: 64px; height: 40px;
  border: 0;
  border-left: 1px solid var(--nt-borde);
  border-right: 1px solid var(--nt-borde);
  text-align: center;
  font-weight: 600;
  -moz-appearance: textfield;
}
.nt-cantidad input::-webkit-outer-spin-button,
.nt-cantidad input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.nt-tallas { display: flex; flex-wrap: wrap; gap: 7px; }
.nt-talla {
  min-width: 44px;
  padding: 9px 12px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: #fff;
  font-size: .85rem;
  font-weight: 600;
  color: var(--nt-azul);
}
.nt-talla.is-activa { background: var(--nt-azul); border-color: var(--nt-azul); color: #fff; }
.nt-talla:disabled { opacity: .35; cursor: not-allowed; text-decoration: line-through; }

.nt-ficha-servicios {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--nt-borde);
  font-size: .8rem;
  color: var(--nt-texto-suave);
}
.nt-ficha-servicios li { display: flex; align-items: center; gap: 8px; }
.nt-ficha-servicios .nt-ico { width: 18px; height: 18px; color: var(--nt-verde-hondo); }

/* Pestañas */
.nt-tabs-nav {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--nt-borde);
  overflow-x: auto;
}
.nt-tabs-nav button {
  padding: 14px 20px;
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  font-size: .9rem;
  font-weight: 600;
  color: var(--nt-texto-suave);
  white-space: nowrap;
}
.nt-tabs-nav button.is-activo { color: var(--nt-azul); border-bottom-color: var(--nt-verde); }
.nt-tab-panel { display: none; padding: 26px 0 0; }
.nt-tab-panel.is-activo { display: block; }

.nt-tabla-tecnica td,
.nt-tabla-tecnica th {
  padding: 11px 14px;
  border-bottom: 1px solid var(--nt-borde);
  font-size: .88rem;
  text-align: left;
  vertical-align: top;
}
.nt-tabla-tecnica th { width: 240px; color: var(--nt-texto-suave); font-weight: 600; }

.nt-normas { display: flex; flex-wrap: wrap; gap: 10px; }
.nt-norma {
  padding: 8px 14px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: var(--nt-gris-050);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--nt-azul);
}

/* ==========================================================================
   19. PORTAL DE EMPRESAS
   ========================================================================== */
.nt-portal { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 28px; align-items: start; }

.nt-portal-nav {
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: #fff;
  padding: 8px;
  position: sticky;
  top: calc(var(--nt-alto-header) + 16px);
}
.nt-portal-nav a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--nt-radio);
  font-size: .87rem;
  color: var(--nt-texto-suave);
}
.nt-portal-nav a:hover { background: var(--nt-gris-050); color: var(--nt-azul); }
.nt-portal-nav a.is-activo { background: var(--nt-azul); color: #fff; }
.nt-portal-nav .nt-ico { width: 18px; height: 18px; }

.nt-portal-saludo { margin-bottom: 22px; }
.nt-portal-saludo small { font-size: .82rem; color: var(--nt-texto-suave); }
.nt-portal-saludo h2 { margin: 2px 0 0; font-size: 1.5rem; }

.nt-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 26px; }
.nt-kpi {
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  padding: 18px;
  background: #fff;
  text-align: center;
}
.nt-kpi strong {
  display: block;
  font-family: var(--nt-fuente-titulo);
  font-size: 1.9rem;
  font-weight: 700;
  color: var(--nt-azul);
  line-height: 1;
}
.nt-kpi span { font-size: .78rem; color: var(--nt-texto-suave); }

.nt-tabla-pedidos { border: 1px solid var(--nt-borde); border-radius: var(--nt-radio); overflow: hidden; background: #fff; }
.nt-tabla-pedidos th,
.nt-tabla-pedidos td {
  padding: 12px 16px;
  font-size: .85rem;
  text-align: left;
  border-bottom: 1px solid var(--nt-borde);
}
.nt-tabla-pedidos th {
  background: var(--nt-gris-050);
  font-size: .74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--nt-texto-suave);
}
.nt-tabla-pedidos tr:last-child td { border-bottom: 0; }

.nt-estado {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 30px;
  font-size: .72rem;
  font-weight: 600;
}
.nt-estado--entregado { background: var(--nt-verde-050); color: var(--nt-verde-hondo); }
.nt-estado--transito { background: #fdefe7; color: var(--nt-naranja-oscuro); }
.nt-estado--proceso { background: var(--nt-azul-050); color: var(--nt-azul); }

.nt-portal-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 24px;
  padding: 24px 28px;
  border-radius: var(--nt-radio);
  background: var(--nt-verde-hondo);
  color: #fff;
  flex-wrap: wrap;
}
.nt-portal-cta h3 { color: #fff; margin: 0 0 4px; }
.nt-portal-cta p { margin: 0; font-size: .87rem; color: rgba(255, 255, 255, .82); }

/* ==========================================================================
   20. FORMULARIOS Y CTA FINAL
   ========================================================================== */
.nt-cta-final {
  position: relative;
  overflow: hidden;
  background: var(--nt-azul-900);
  color: #fff;
}
.nt-cta-final > img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: .5;
}
.nt-cta-final::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6, 26, 46, .93) 20%, rgba(6, 26, 46, .5) 100%);
}
.nt-cta-final .nt-container { position: relative; z-index: 1; }
.nt-cta-final-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 480px);
  gap: 48px;
  align-items: center;
  padding: clamp(40px, 5vw, 72px) 0;
}
.nt-cta-final h2 { color: #fff; text-transform: uppercase; }
.nt-cta-final p { color: rgba(255, 255, 255, .85); }

.nt-form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.nt-form .nt-form-full { grid-column: 1 / -1; }
.nt-form input,
.nt-form select,
.nt-form textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: var(--nt-radio);
  background: rgba(255, 255, 255, .08);
  color: #fff;
  font-size: .9rem;
}
.nt-form input::placeholder,
.nt-form textarea::placeholder { color: rgba(255, 255, 255, .6); }
.nt-form select option { color: var(--nt-texto); }
.nt-form input:focus,
.nt-form select:focus,
.nt-form textarea:focus { outline: none; border-color: var(--nt-verde); background: rgba(255, 255, 255, .14); }

/* Caja de formulario sobre fondo claro */
.nt-form--claro input,
.nt-form--claro select,
.nt-form--claro textarea {
  background: #fff;
  border-color: var(--nt-borde);
  color: var(--nt-texto);
}
.nt-form--claro input::placeholder,
.nt-form--claro textarea::placeholder { color: #8a9299; }

/* Barra de pasos del configurador */
.nt-pasos {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.nt-paso {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 170px;
  padding: 14px 16px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  background: #fff;
}
.nt-paso b {
  width: 26px; height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--nt-azul);
  color: #fff;
  font-size: .78rem;
  flex: none;
}
.nt-paso strong { display: block; font-size: .87rem; color: var(--nt-azul); }
.nt-paso span { font-size: .76rem; color: var(--nt-texto-suave); }

/* Línea de proceso 01..06 */
.nt-proceso {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 18px;
  position: relative;
}
.nt-proceso::before {
  content: "";
  position: absolute;
  top: 22px; left: 8%; right: 8%;
  height: 1px;
  background: var(--nt-borde);
}
.nt-proceso li { position: relative; text-align: left; }
.nt-proceso .nt-ico { color: var(--nt-azul); background: var(--nt-gris-050); padding: 8px; box-sizing: content-box; border-radius: 50%; }
.nt-proceso b {
  display: block;
  font-family: var(--nt-fuente-titulo);
  font-size: 1rem;
  color: var(--nt-azul);
  margin: 14px 0 2px;
}
.nt-proceso strong { display: block; font-size: .88rem; color: var(--nt-azul); margin-bottom: 4px; }
.nt-proceso span { font-size: .78rem; color: var(--nt-texto-suave); line-height: 1.5; }

/* Cifras de impacto */
.nt-cifras {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  padding: 26px;
  border-radius: var(--nt-radio);
  background: var(--nt-verde-hondo);
  color: #fff;
  text-align: center;
}
.nt-cifras strong {
  display: block;
  font-family: var(--nt-fuente-titulo);
  font-size: clamp(1.6rem, 3vw, 2.3rem);
  line-height: 1;
}
.nt-cifras span { font-size: .78rem; color: rgba(255, 255, 255, .8); }

/* Aviso / nota */
.nt-nota {
  padding: 14px 18px;
  border-left: 3px solid var(--nt-naranja);
  background: var(--nt-gris-050);
  font-size: .87rem;
  color: var(--nt-texto-suave);
  border-radius: 0 var(--nt-radio) var(--nt-radio) 0;
}

/* ==========================================================================
   21. PIE DE PÁGINA
   ========================================================================== */
.nt-footer {
  background: #fff;
  border-top: 1px solid var(--nt-borde);
  padding-top: clamp(40px, 5vw, 64px);
}
.nt-footer--azul {
  background: var(--nt-azul-900);
  border-top: 0;
  color: rgba(255, 255, 255, .72);
}
.nt-footer--azul .nt-logo-texto { color: #fff; }
.nt-footer--azul .nt-logo-texto em { color: var(--nt-verde); }
.nt-footer--azul .nt-footer-col h4 { color: #fff; }
.nt-footer--azul a { color: rgba(255, 255, 255, .72); }
.nt-footer--azul a:hover { color: #fff; }
.nt-footer--azul .nt-footer-bajo { border-top-color: rgba(255, 255, 255, .15); }
.nt-footer--azul .nt-social a { border-color: rgba(255, 255, 255, .25); }

.nt-footer-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(5, minmax(0, 1fr)) minmax(0, 1.1fr);
  gap: 32px;
  padding-bottom: 36px;
}
.nt-footer-marca p {
  font-size: .87rem;
  color: var(--nt-texto-suave);
  margin: 16px 0 18px;
  max-width: 32ch;
}
.nt-footer--azul .nt-footer-marca p { color: rgba(255, 255, 255, .72); }

.nt-footer-col h4 {
  font-family: var(--nt-fuente-texto);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nt-azul);
  margin: 0 0 8px;
  padding-bottom: 10px;
  position: relative;
}
.nt-footer-col h4::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 22px; height: 2px;
  background: var(--nt-verde);
}
.nt-footer-col li + li { margin-top: 7px; }
.nt-footer-col a { font-size: .87rem; color: var(--nt-texto-suave); }
.nt-footer-col a:hover { color: var(--nt-verde); }

.nt-social { display: flex; gap: 10px; }
.nt-social a {
  width: 36px; height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--nt-borde);
  border-radius: 50%;
  color: inherit;
}
.nt-social a:hover { border-color: var(--nt-verde); color: var(--nt-verde); }
.nt-social .nt-ico { width: 17px; height: 17px; }

.nt-footer-sello { text-align: left; }
.nt-footer-sello .nt-ico { width: 46px; height: 46px; color: var(--nt-verde); margin-bottom: 12px; stroke-width: 1.2; }
.nt-footer-sello p {
  font-size: .95rem;
  line-height: 1.5;
  color: var(--nt-azul);
  margin: 0;
}
.nt-footer--azul .nt-footer-sello p { color: #fff; }

.nt-footer-bajo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 0;
  border-top: 1px solid var(--nt-borde);
  font-size: .8rem;
  color: var(--nt-texto-suave);
  flex-wrap: wrap;
}
.nt-footer-legal { display: flex; gap: 18px; flex-wrap: wrap; }
.nt-footer-legal a { font-size: .8rem; }

/* Libro de reclamaciones (obligatorio en Perú) */
.nt-reclamaciones {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 12px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  font-size: .78rem;
}

/* ==========================================================================
   22. RESPONSIVE
   ========================================================================== */
@media (max-width: 1200px) {
  .nt-productos { grid-template-columns: repeat(4, 1fr); }
  .nt-grid--6 { grid-template-columns: repeat(3, 1fr); }
  .nt-grid--5 { grid-template-columns: repeat(3, 1fr); }
  .nt-ventajas ul { grid-template-columns: repeat(3, 1fr); }
  .nt-ventajas li:nth-child(4) { border-left: 0; padding-left: 0; }
  .nt-footer-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nt-footer-marca,
  .nt-footer-sello { grid-column: span 2; }
  .nt-mega-inner,
  .nt-mega-inner--intro { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nt-mega-promos { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1024px) {
  .nt-nav,
  .nt-buscador,
  .nt-idioma { display: none; }
  .nt-burger { display: flex; }
  .nt-header-tools { margin-left: auto; }
  .nt-icono-btn span:not(.nt-carrito-cuenta) { display: none; }

  .nt-hero-inner { grid-template-columns: 1fr; }
  .nt-hero-aside { display: none; }

  .nt-sostenibilidad-media { width: 100%; opacity: .25; }
  .nt-sostenibilidad-media::after { background: linear-gradient(180deg, rgba(244,245,244,.92), rgba(244,245,244,.75)); }
  .nt-sostenibilidad-inner { grid-template-columns: 1fr; gap: 28px; }

  .nt-innovacion { grid-template-columns: 1fr; }
  .nt-innovacion-media { min-height: 220px; }

  .nt-industrias-split { grid-template-columns: 1fr; }

  .nt-tienda { grid-template-columns: 1fr; }
  .nt-filtros {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(320px, 86vw);
    max-height: 100dvh;
    overflow-y: auto;
    background: #fff;
    z-index: 260;
    padding: 20px;
    transform: translateX(-100%);
    transition: transform .3s ease;
    box-shadow: var(--nt-sombra-alta);
  }
  .nt-filtros.is-abierto { transform: translateX(0); }
  .nt-filtros-movil-btn { display: inline-flex; }

  .nt-ficha { grid-template-columns: 1fr; gap: 30px; }
  .nt-portal { grid-template-columns: 1fr; }
  .nt-portal > * { min-width: 0; }
  .nt-portal-nav { position: static; display: flex; overflow-x: auto; }
  .nt-portal-nav a { white-space: nowrap; }
  /* Las tablas anchas se desplazan dentro de su caja, no de la página. */
  .nt-tabla-pedidos { overflow-x: auto; }
  .nt-tabla-pedidos table { min-width: 620px; }

  .nt-cta-final-inner { grid-template-columns: 1fr; }
  .nt-proceso { grid-template-columns: repeat(3, 1fr); }
  .nt-proceso::before { display: none; }
}

@media (max-width: 880px) {
  .nt-topbar-lista li:not(:last-child) { display: none; }
  .nt-productos,
  .nt-productos--4 { grid-template-columns: repeat(3, 1fr); }
  .nt-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .nt-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .nt-ventajas ul { grid-template-columns: repeat(2, 1fr); }
  .nt-ventajas li:nth-child(odd) { border-left: 0; padding-left: 0; }
  .nt-ventajas--centrado ul { grid-template-columns: 1fr; }
  .nt-kpis { grid-template-columns: repeat(2, 1fr); }
  .nt-footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .nt-container { padding: 0 16px; }
  /* El botón de cotizar ya está dentro del menú móvil: aquí no cabe. */
  .nt-header-tools > .nt-btn { display: none; }
  /* El descriptivo bajo el logo es ilegible a este tamaño y deja sin sitio al
     botón de menú: se oculta y solo queda la marca. */
  .nt-logo-tagline { display: none; }
  .nt-logo-texto { font-size: 1.3rem; }
  .nt-productos,
  .nt-productos--4,
  .nt-grid--2,
  .nt-grid--3,
  .nt-grid--4,
  .nt-grid--5,
  .nt-grid--6 { grid-template-columns: 1fr; }
  .nt-ventajas ul { grid-template-columns: 1fr; }
  .nt-ventajas li { border-left: 0; padding: 18px 0; border-top: 1px solid var(--nt-borde); }
  .nt-ventajas li:first-child { border-top: 0; }
  .nt-cifras { grid-template-columns: 1fr; }
  .nt-proceso { grid-template-columns: 1fr; }
  .nt-galeria { grid-template-columns: 1fr; }
  .nt-galeria-thumbs { flex-direction: row; order: 2; }
  .nt-galeria-thumbs button { width: 64px; flex: none; }
  .nt-form { grid-template-columns: 1fr; }
  .nt-btn-grupo .nt-btn { width: 100%; }
  .nt-footer-inner { grid-template-columns: 1fr; }
  .nt-footer-marca,
  .nt-footer-sello { grid-column: auto; }
  .nt-tienda-barra { flex-direction: column; align-items: flex-start; }
}

/* Impresión */
@media print {
  .nt-topbar, .nt-header, .nt-movil, .nt-overlay, .nt-cta-final, .nt-footer { display: none !important; }
  body { color: #000; }
}

/* ==========================================================================
   23. CONTENIDO EDITORIAL DE WORDPRESS
   Estilos para lo que el cliente escribe con el editor de bloques, más
   utilidades que en la maqueta iban como estilos en línea.
   ========================================================================== */
.nt-paso--columna {
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-height: 160px;
}
.nt-paso--columna .nt-ico { color: var(--nt-azul); }

/* Tipografía del contenido editable */
.nt-entrada { max-width: 78ch; }
.nt-entrada > * + * { margin-top: 1.1em; }
.nt-entrada h2 { margin-top: 1.8em; }
.nt-entrada h3 { margin-top: 1.5em; }
.nt-entrada p { color: var(--nt-texto); }
.nt-entrada ul,
.nt-entrada ol { padding-left: 1.2em; }
.nt-entrada ul { list-style: disc; }
.nt-entrada ol { list-style: decimal; }
.nt-entrada li + li { margin-top: .4em; }
.nt-entrada img { height: auto; border-radius: var(--nt-radio); }
.nt-entrada a { text-decoration: underline; }
.nt-entrada blockquote {
  margin: 0;
  padding: 4px 0 4px 20px;
  border-left: 3px solid var(--nt-verde);
  font-size: 1.05rem;
  color: var(--nt-texto-suave);
}
.nt-entrada table { margin-top: 1.1em; }
.nt-entrada th,
.nt-entrada td { padding: 10px 14px; border-bottom: 1px solid var(--nt-borde); text-align: left; font-size: .9rem; }
.nt-entrada figure { margin: 0; }
.nt-entrada .alignwide { width: 100%; }
.nt-entrada .alignfull { width: 100%; }

/* Barra lateral del blog */
.nt-sidebar { display: grid; gap: 24px; }
.nt-widget {
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  padding: 20px;
  background: #fff;
}
.nt-widget-titulo { font-size: 1rem; margin: 0 0 12px; }
.nt-widget ul { display: grid; gap: 8px; font-size: .9rem; }
.nt-widget a:hover { color: var(--nt-verde); }

/* Comentarios */
.comment-list { display: grid; gap: 20px; }
.comment-list .comment-body {
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  padding: 18px;
  background: #fff;
}
.comment-list .children { margin-top: 20px; padding-left: 28px; display: grid; gap: 20px; }

/* Utilidades de alineación de bloques */
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin: 0 20px 16px 0; }
.alignright { float: right; margin: 0 0 16px 20px; }
.wp-caption-text,
.wp-element-caption { font-size: .8rem; color: var(--nt-texto-suave); margin-top: 8px; }
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
}

/* Utilidades usadas por las plantillas del tema
   (en la maqueta iban como estilos en línea). */
.nt-grid--centrado { align-items: center; gap: clamp(26px, 3vw, 48px); }
.nt-img-radio { border-radius: var(--nt-radio); }
.nt-pilares--5 { grid-template-columns: repeat(5, 1fr); }

.nt-lista-capas { display: grid; gap: 16px; }
.nt-lista-capas strong {
  display: block;
  color: var(--nt-azul);
  font-size: .92rem;
}
.nt-lista-capas span { font-size: .84rem; color: var(--nt-texto-suave); }

@media (max-width: 880px) {
  .nt-pilares--5 { grid-template-columns: repeat(2, 1fr); }
}

/* Caja del formulario de cotización */
.nt-form-caja {
  background: var(--nt-verde-hondo);
  color: #fff;
  padding: clamp(28px, 3vw, 44px);
}
.nt-form-caja h3 { color: #fff; margin: 6px 0 0; }
.nt-form-caja .nt-form { margin-top: 22px; }

.nt-aviso-form {
  margin: 18px 0 0;
  padding: 12px 16px;
  border-radius: var(--nt-radio);
  background: rgba(255, 255, 255, .14);
  font-size: .88rem;
}

.nt-form-acepto {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: .8rem;
  color: rgba(255, 255, 255, .8);
}
.nt-form-acepto input { width: 16px; height: 16px; flex: none; margin-top: 2px; }
.nt-form-acepto label { margin: 0; }

/* Trampa antispam: invisible para personas, visible para bots */
.nt-trampa { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Bloque de dos columnas foto + formulario */
.nt-cotiza {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  border-radius: var(--nt-radio);
  overflow: hidden;
}
.nt-cotiza .nt-card-foto { min-height: 440px; border-radius: 0; }

@media (max-width: 880px) {
  .nt-cotiza { grid-template-columns: 1fr; }
  .nt-cotiza .nt-card-foto { min-height: 300px; }
}

/* ============================================================
   26. PORTAL EMPRESAS (ajustes finos)
   ============================================================ */

/* Título de bloque interno dentro del tablero. */
.nt-titulo-bloque { font-size: 1.35rem; }

/* Separación entre bloques consecutivos del portal. */
.nt-section-head--sep,
.nt-grid--sep { margin-top: 44px; }

/* Listas de documentos, cotizaciones y beneficios. */
.nt-lista-docs {
  display: grid;
  gap: 10px;
  font-size: .87rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.nt-lista-docs a { color: var(--nt-azul); text-decoration: none; }
.nt-lista-docs a:hover { text-decoration: underline; }

/* Formulario de acceso de WordPress dentro de .nt-form-caja. */
.nt-form-caja #loginform p { margin: 0 0 14px; }
.nt-form-caja #loginform label {
  display: block;
  font-size: .82rem;
  font-weight: 600;
  margin-bottom: 6px;
}
.nt-form-caja #loginform input[type="text"],
.nt-form-caja #loginform input[type="password"] { width: 100%; }
.nt-form-caja #loginform .login-remember label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 400;
}
.nt-form-caja #loginform .login-remember input { width: auto; }
.nt-form-caja #loginform .login-submit input {
  width: 100%;
  border: 0;
  cursor: pointer;
  border-radius: var(--nt-radio);
  background: var(--nt-naranja);
  color: #fff;
  font-family: var(--nt-fuente-titulo);
  font-weight: 600;
  font-size: 1rem;
  padding: 15px 20px;
}
.nt-form-caja #loginform .login-submit input:hover { background: var(--nt-naranja-oscuro); }

.nt-form-ayuda { margin: 4px 0 0; font-size: .85rem; }
.nt-form-ayuda a { color: #fff; text-decoration: underline; }

/* ============================================================
   27. WOOCOMMERCE
   El tema no sustituye plantillas del plugin; solo ajusta el
   marcado que este genera para que herede el diseño.
   ============================================================ */

/* La rejilla de productos pasa a ser <ul> en la tienda. */
ul.nt-productos { list-style: none; margin: 0; padding: 0; }
ul.nt-productos > li { list-style: none; }

/* Imagen del producto dentro del enlace de la tarjeta. */
.nt-producto-media a { display: block; width: 100%; height: 100%; }

/* Precio: WooCommerce envuelve el importe en <span class="woocommerce-Price-amount">. */
.nt-precio .woocommerce-Price-amount { font: inherit; color: inherit; }
.nt-precio ins { text-decoration: none; }

/* Avisos (carrito, cupones, errores). */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  list-style: none;
  margin: 0 0 24px;
  padding: 16px 20px;
  border-left: 4px solid var(--nt-verde);
  border-radius: var(--nt-radio);
  background: var(--nt-verde-050);
  font-size: .92rem;
}
.woocommerce-error { border-left-color: var(--nt-naranja); background: #fdeee7; }
.woocommerce-message .button,
.woocommerce-info .button { float: right; }

/* Paginación del catálogo. */
.woocommerce-pagination ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
}
.woocommerce-pagination a,
.woocommerce-pagination span {
  min-width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  font-size: .85rem;
  color: var(--nt-texto-suave);
  background: #fff;
  text-decoration: none;
}
.woocommerce-pagination .current,
.woocommerce-pagination a:hover {
  background: var(--nt-azul);
  border-color: var(--nt-azul);
  color: #fff;
}

/* Botones propios de WooCommerce (carrito, finalizar compra, cuenta). */
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  cursor: pointer;
  padding: 13px 26px;
  border-radius: var(--nt-radio);
  background: var(--nt-naranja);
  color: #fff;
  font-family: var(--nt-fuente-titulo);
  font-weight: 600;
  font-size: .92rem;
  line-height: 1.2;
  text-decoration: none;
  transition: background var(--nt-transicion);
}
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover { background: var(--nt-naranja-oscuro); color: #fff; }

.woocommerce form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 20px 0 0; }
.woocommerce form.cart .nt-cantidad { margin: 0; }
.woocommerce form.cart p { flex: 1 1 100%; margin: 0; }

/* Tablas del carrito y de la cuenta. */
.woocommerce table.shop_table,
.woocommerce table.shop_attributes {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--nt-borde);
  text-align: left;
  vertical-align: middle;
}
.woocommerce table.shop_attributes th { width: 240px; color: var(--nt-texto-suave); font-weight: 600; }

/* Filtros del catálogo cuando se usan widgets de WooCommerce. */
.nt-filtros .widget { margin-bottom: 26px; }
.nt-filtros .widget ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: .88rem; }

/* Comentarios. */
.nt-comentarios { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--nt-borde); }
.nt-comentarios .comment-respond { margin-top: 32px; }
.nt-comentarios .comment-reply-title { font-size: 1.2rem; margin-bottom: 14px; }
.nt-comentarios .comment-form p { margin: 0 0 14px; }
.nt-comentarios .comment-form label { display: block; font-size: .82rem; font-weight: 600; margin-bottom: 6px; }
.nt-comentarios .comment-form input[type="text"],
.nt-comentarios .comment-form input[type="email"],
.nt-comentarios .comment-form input[type="url"],
.nt-comentarios .comment-form textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--nt-borde);
  border-radius: var(--nt-radio);
  font: inherit;
  font-size: .92rem;
}
.nt-comentarios .comment-form .form-submit input { width: auto; }
.nt-nota { font-size: .85rem; color: var(--nt-texto-suave); margin-bottom: 16px; }
