/* ==========================================
   NÓMADA — ESTILOS
   Todas las clases empiezan por "nmd-".
   Los colores, tamaños y espacios se cambian
   en css/variables.css, no aquí.
   Índice: 1 Base · 2 Componentes · 3 Cabecera ·
   4 Hero · 5 Secciones · 6 Formulario · 7 Pie ·
   8 Animaciones · 9 Movimiento reducido
========================================== */
/* ---------- 1. BASE ---------- */
html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nmd-alto-cabecera);
  -webkit-text-size-adjust: 100%;
}

.nmd-sitio {
  margin: 0;
  background: var(--nmd-fondo);
  color: var(--nmd-grafito);
  font-family: var(--nmd-fuente-texto);
  font-size: var(--nmd-t-texto);
  line-height: 1.6;
  letter-spacing: -0.005em;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  width: 100%;
}

.nmd-sitio *, .nmd-sitio *::before, .nmd-sitio *::after {
  box-sizing: border-box;
}

.nmd-sitio h1, .nmd-sitio h2, .nmd-sitio h3, .nmd-sitio h4, .nmd-sitio p, .nmd-sitio ul, .nmd-sitio figure {
  margin: 0;
  padding: 0;
}

.nmd-sitio ul {
  list-style: none;
}

.nmd-sitio a {
  color: inherit;
  text-decoration: none;
}

.nmd-sitio img {
  display: block;
  max-width: 100%;
}

.nmd-sitio ::selection {
  background: var(--nmd-azul-noche);
  color: var(--nmd-blanco);
}

.nmd-sitio :focus-visible {
  outline: 2px solid var(--nmd-azul-acero);
  outline-offset: 3px;
}

.nmd-contenido-oscuro :focus-visible, .nmd-seccion--oscura :focus-visible, .nmd-pie :focus-visible {
  outline-color: var(--nmd-blanco);
}

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

.nmd-saltar {
  position: fixed;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 100;
  background: var(--nmd-azul-noche);
  color: var(--nmd-blanco);
  padding: 0.75rem 1rem;
  border-radius: var(--nmd-radio);
  transform: translateY(-200%);
}

.nmd-sitio .nmd-saltar:focus {
  transform: none;
}

.nmd-icono {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
  flex-shrink: 0;
  display: inline-block;
}

.nmd-icono--16 {
  width: 1rem;
  height: 1rem;
}

.nmd-icono--18 {
  width: 1.125rem;
  height: 1.125rem;
}

.nmd-icono--24 {
  width: 1.5rem;
  height: 1.5rem;
}

.nmd-contenedor {
  max-width: var(--nmd-ancho-max);
  margin: 0 auto;
  padding: 0 var(--nmd-margen-lateral);
}

.nmd-contenedor--estrecho {
  max-width: 1000px;
}

.nmd-rejilla {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-hueco);
}

/* ---------- 2. COMPONENTES REUTILIZABLES ---------- */
/* Etiqueta superior de sección (eyebrow) */
.nmd-etiqueta {
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--nmd-azul-acero);
}

.nmd-etiqueta--oscura {
  color: var(--nmd-linea);
  letter-spacing: 0.2em;
}

.nmd-etiqueta-chica {
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--nmd-gris-mineral);
}

/* Títulos */
.nmd-h1 {
  font-family: var(--nmd-fuente-titulos);
  font-weight: 500;
  color: var(--nmd-azul-profundo);
  font-size: var(--nmd-t-h1);
  line-height: var(--nmd-t-h1-linea);
  letter-spacing: -0.025em;
  margin: 0.5rem 0 var(--nmd-esp-md);
  max-width: 36rem;
}

.nmd-h2 {
  font-family: var(--nmd-fuente-titulos);
  font-weight: 500;
  color: var(--nmd-azul-profundo);
  font-size: var(--nmd-t-h2);
  line-height: var(--nmd-t-h2-linea);
  letter-spacing: -0.025em;
  margin-top: 0.25rem;
}

.nmd-h2--menor {
  font-size: var(--nmd-t-h2-menor);
  line-height: 2.5rem;
  margin-top: 0.5rem;
}

.nmd-h3 {
  font-family: var(--nmd-fuente-titulos);
  font-weight: 500;
  color: var(--nmd-azul-profundo);
  font-size: var(--nmd-t-h3);
  line-height: 1.75rem;
  letter-spacing: -0.015em;
}

.nmd-texto-xl {
  font-size: var(--nmd-t-texto-xl);
  line-height: 1.75;
  letter-spacing: -0.01em;
  color: var(--nmd-grafito-suave);
}

.nmd-texto {
  font-size: var(--nmd-t-texto);
  line-height: 1.7;
  color: var(--nmd-grafito-suave);
}

/* Botones: .nmd-boton + .nmd-boton--primario | --secundario */
.nmd-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--nmd-boton-gap);
  min-height: var(--nmd-boton-alto);
  padding: var(--nmd-boton-relleno);
  border-radius: var(--nmd-radio);
  border: 1px solid transparent;
  cursor: pointer;
  font-family: var(--nmd-fuente-texto);
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-align: center;
  transition: background-color var(--nmd-dur-hover), border-color var(--nmd-dur-hover), color var(--nmd-dur-hover);
}

.nmd-sitio .nmd-boton--primario {
  background: var(--nmd-azul-noche);
  color: #ffffff;
  box-shadow: var(--nmd-sombra-suave);
}

.nmd-boton--primario:hover {
  background: var(--nmd-azul-acero);
}

.nmd-boton--secundario {
  background: transparent;
  color: var(--nmd-azul-noche);
  border-color: rgb(21 43 66 / 0.4);
  padding: 0 1.75rem;
}

.nmd-boton--secundario:hover {
  border-color: var(--nmd-azul-noche);
  background: var(--nmd-fondo-alterno);
}

.nmd-boton--compacto {
  min-height: 2.75rem;
  padding: 0 1.5rem;
  gap: 0.5rem;
  box-shadow: none;
}

.nmd-boton[disabled] {
  opacity: 0.65;
  cursor: not-allowed;
}

.nmd-boton .nmd-flecha {
  transition: transform var(--nmd-dur-hover);
}

.nmd-boton:hover .nmd-flecha--diagonal, .nmd-enlace:hover .nmd-flecha--diagonal {
  transform: translate(4px, -2px);
}

.nmd-boton:hover .nmd-flecha--derecha, .nmd-enlace:hover .nmd-flecha--derecha, .nmd-tarjeta:hover .nmd-flecha--derecha {
  transform: translateX(4px);
}

/* Enlace editorial (texto con flecha) */
.nmd-enlace {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.75rem;
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--nmd-azul-noche);
  transition: color var(--nmd-dur-hover);
}

.nmd-enlace:hover {
  color: var(--nmd-azul-acero);
}

.nmd-enlace .nmd-flecha {
  transition: transform var(--nmd-dur-rapida);
}

/* Tarjeta base */
.nmd-tarjeta {
  background: var(--nmd-blanco);
  border-radius: var(--nmd-radio);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform var(--nmd-dur-hover), box-shadow var(--nmd-dur-hover), border-color var(--nmd-dur-hover);
}

.nmd-tarjeta--borde {
  border: 1px solid var(--nmd-linea-30);
}

@media (hover: hover) {
  .nmd-tarjeta:hover {
    transform: translateY(var(--nmd-elevacion-hover));
    box-shadow: var(--nmd-sombra-hover);
  }
  .nmd-tarjeta--borde:hover {
    border-color: var(--nmd-azul-noche);
  }
}

.nmd-tarjeta__pie {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--nmd-linea-30);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  color: var(--nmd-azul-acero);
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Cabecera de sección con etiqueta + título + texto */
.nmd-seccion {
  padding: var(--nmd-esp-3xl) 0;
}

.nmd-seccion--clara {
  background: var(--nmd-fondo);
}

.nmd-seccion--alterna {
  background: var(--nmd-fondo-alterno);
}

.nmd-seccion--oscura {
  background: var(--nmd-azul-noche);
  color: var(--nmd-blanco);
}

.nmd-seccion__cabecera {
  display: flex;
  flex-direction: column;
  margin-bottom: var(--nmd-esp-2xl);
}

.nmd-seccion__cabecera--linea {
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--nmd-linea-30);
}

.nmd-seccion__cabecera p.nmd-texto {
  margin-top: 1rem;
  max-width: 28rem;
  line-height: 1.625;
}

@media (min-width: 768px) {
  .nmd-seccion__cabecera--lateral {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
  .nmd-seccion__cabecera--lateral p.nmd-texto {
    margin-top: 0;
  }
}

.nmd-seccion__cabecera--corta {
  max-width: 42rem;
}

.nmd-seccion__cabecera--corta p.nmd-texto {
  max-width: none;
  margin-top: 0.75rem;
}

.nmd-ancla {
  scroll-margin-top: 5rem;
}

/* ---------- 3. CABECERA ---------- */
.nmd-cabecera {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  padding: 1.25rem 0;
  background: rgb(247 249 255 / 0.85);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid transparent;
  transition: padding var(--nmd-dur-hover), box-shadow var(--nmd-dur-hover), border-color var(--nmd-dur-hover);
}

.nmd-cabecera--compacta {
  padding: 0.75rem 0;
  box-shadow: var(--nmd-sombra-cabecera);
  border-bottom-color: var(--nmd-linea-30);
}

.nmd-cabecera__barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nmd-logo {
  font-family: var(--nmd-fuente-titulos);
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--nmd-azul-profundo);
  transition: opacity var(--nmd-dur-hover);
}

.nmd-logo:hover {
  opacity: 0.8;
}

.nmd-menu {
  display: none;
  align-items: center;
  gap: 2rem;
}

.nmd-menu__enlace {
  position: relative;
  padding: 0.25rem 0;
  color: var(--nmd-grafito-suave);
  transition: color var(--nmd-dur-hover);
}

.nmd-menu__enlace::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 1.5px;
  width: 0;
  background: var(--nmd-azul-profundo);
  transition: width var(--nmd-dur-hover);
}

.nmd-menu__enlace:hover {
  color: var(--nmd-azul-profundo);
}

.nmd-menu__enlace:hover::after, .nmd-menu__enlace[aria-current="page"]::after {
  width: 100%;
}

.nmd-menu__enlace[aria-current="page"] {
  color: var(--nmd-azul-profundo);
  font-weight: 500;
}

.nmd-cabecera__acciones {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.nmd-cabecera__cta {
  display: none;
}

.nmd-menu-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  background: transparent;
  border: 0;
  border-radius: var(--nmd-radio-sm);
  color: var(--nmd-azul-profundo);
  cursor: pointer;
  transition: background-color var(--nmd-dur-hover);
}

.nmd-menu-boton:hover {
  background: var(--nmd-fondo-hover);
}

.nmd-menu-boton .nmd-icono {
  width: 1.625rem;
  height: 1.625rem;
}

.nmd-menu-boton__cerrar {
  display: none;
}

.nmd-menu-boton[aria-expanded="true"] .nmd-menu-boton__abrir {
  display: none;
}

.nmd-menu-boton[aria-expanded="true"] .nmd-menu-boton__cerrar {
  display: inline-block;
}

/* Menú desplegable móvil */
.nmd-cajon {
  background: var(--nmd-blanco);
  border-top: 1px solid var(--nmd-linea-30);
  box-shadow: var(--nmd-sombra-menu);
  padding: 1.5rem var(--nmd-margen-lateral);
  max-height: calc(100vh - 4.5rem);
  max-height: calc(100dvh - 4.5rem);
  overflow-y: auto;
}

.nmd-cajon[hidden] {
  display: none;
}

.nmd-cajon__nav {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.nmd-cajon__enlace {
  font-size: 1.125rem;
  padding: 0.5rem 0 0.5rem 0.75rem;
  color: var(--nmd-grafito-suave);
  border-left: 2px solid transparent;
  min-height: 2.75rem;
  display: flex;
  align-items: center;
}

.nmd-cajon__enlace:hover {
  color: var(--nmd-azul-profundo);
}

.nmd-cajon__enlace[aria-current="page"] {
  color: var(--nmd-azul-profundo);
  font-weight: 600;
  border-left-color: var(--nmd-azul-profundo);
}

.nmd-cajon__cta {
  margin-top: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--nmd-linea-20);
}

.nmd-cajon__cta .nmd-boton {
  width: 100%;
}

@media (min-width: 640px) {
  .nmd-cabecera__cta {
    display: inline-flex;
  }
}

@media (min-width: 1024px) {
  .nmd-menu {
    display: flex;
  }
  .nmd-menu-boton, .nmd-cajon {
    display: none !important;
  }
}

.nmd-principal {
  padding-top: var(--nmd-alto-cabecera);
  background: var(--nmd-fondo);
  min-height: 100vh;
  overflow-x: clip;
}

/* ---------- 4. HERO ---------- */
.nmd-hero {
  background: var(--nmd-fondo);
  padding: clamp(3rem, 6vw, 6rem) 0 var(--nmd-esp-3xl);
  overflow: hidden;
}

.nmd-hero__rejilla {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-hueco);
  align-items: center;
}

.nmd-hero__etiqueta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: var(--nmd-esp-sm);
}

.nmd-hero__punto {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  background: var(--nmd-azul-noche);
}

.nmd-hero__etiqueta span:last-child {
  letter-spacing: 0.18em;
}

.nmd-hero__texto {
  max-width: 35rem;
  margin-bottom: 2rem;
}

.nmd-hero__botones {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: stretch;
  margin-top: 0.75rem;
}

.nmd-hero__marco {
  background: var(--nmd-fondo-alterno);
  padding: 0.5rem;
  border-radius: var(--nmd-radio);
}

@media (min-width: 640px) {
  .nmd-hero__botones {
    flex-direction: row;
    align-items: center;
  }
}

@media (min-width: 768px) {
  .nmd-hero__marco {
    padding: 0.75rem;
  }
}

@media (min-width: 1024px) {
  .nmd-hero__rejilla {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: clamp(2.5rem, 5vw, 5rem);
  }
  .nmd-hero__col-texto {
    grid-column: span 6;
  }
  .nmd-hero__col-imagen {
    grid-column: span 6;
  }
}

/* Contenedor de imagen con proporción fija y zoom suave */
.nmd-foto {
  position: relative;
  overflow: hidden;
  border-radius: var(--nmd-radio-sm);
  aspect-ratio: 4 / 3;
  background: var(--nmd-fondo-imagen);
}

.nmd-foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--nmd-dur-imagen) ease-out;
}

@media (hover: hover) {
  .nmd-foto:hover img, .nmd-tarjeta:hover .nmd-foto img {
    transform: scale(var(--nmd-zoom-imagen));
  }
}

.nmd-foto--hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgb(0 22 44 / 0.35), transparent 60%);
  pointer-events: none;
}

.nmd-foto__pie {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  color: var(--nmd-blanco);
}

.nmd-foto__chip {
  background: rgb(21 43 66 / 0.85);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  padding: 0.375rem 0.75rem;
  border-radius: var(--nmd-radio-xs);
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.nmd-foto__lugares {
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: rgb(255 255 255 / 0.9);
}

/* ---------- 5. SECCIONES ---------- */
/* Introducción */
.nmd-intro__cabecera {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-hueco);
  align-items: start;
  margin-bottom: var(--nmd-esp-2xl);
}

.nmd-pilares {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-hueco);
}

.nmd-pilar {
  padding: 1.75rem;
}

.nmd-pilar__etiqueta {
  display: block;
  margin-bottom: 1rem;
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--nmd-azul-acero);
}

.nmd-pilar .nmd-h3 {
  margin-bottom: 0.75rem;
}

@media (min-width: 768px) {
  .nmd-pilares {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1024px) {
  .nmd-intro__cabecera {
    grid-template-columns: repeat(12, 1fr);
  }
  .nmd-intro__col-titulo {
    grid-column: span 5;
  }
  .nmd-intro__col-texto {
    grid-column: span 7;
  }
  .nmd-pilar {
    padding: 2.25rem;
  }
}

/* Servicios */
.nmd-servicios {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-hueco);
}

.nmd-servicio {
  padding: 1.75rem;
}

.nmd-servicio__cabecera {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  color: var(--nmd-azul-acero);
}

.nmd-servicio__cabecera .nmd-etiqueta-chica {
  letter-spacing: 0.1em;
}

.nmd-servicio .nmd-h3 {
  margin-bottom: 0.75rem;
}

.nmd-servicio .nmd-texto {
  margin-bottom: 1.5rem;
}

.nmd-servicio .nmd-enlace {
  padding-top: 1rem;
  border-top: 1px solid var(--nmd-linea-20);
  width: 100%;
}

@media (min-width: 768px) {
  .nmd-servicios {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .nmd-servicio {
    padding: 2.5rem;
  }
}

/* Manifiesto */
.nmd-manifiesto {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-esp-xl);
  align-items: center;
}

.nmd-manifiesto__cita {
  font-family: var(--nmd-fuente-titulos);
  font-weight: 500;
  color: var(--nmd-blanco);
  font-size: var(--nmd-t-manifiesto);
  line-height: 1.25;
  letter-spacing: -0.025em;
  margin: 1rem 0;
}

.nmd-manifiesto__texto {
  font-size: var(--nmd-t-texto-xl);
  line-height: 1.75;
  letter-spacing: -0.01em;
  color: rgb(224 226 233 / 0.9);
  max-width: 42rem;
  margin-bottom: 2rem;
}

.nmd-manifiesto__destacados {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--nmd-gris-30);
}

.nmd-manifiesto__destacados .nmd-h3 {
  color: var(--nmd-blanco);
  font-weight: 600;
}

.nmd-manifiesto__destacados p {
  margin-top: 0.25rem;
  line-height: 1.625;
  color: var(--nmd-linea);
}

.nmd-manifiesto__panel {
  background: rgb(0 22 44 / 0.6);
  border: 1px solid var(--nmd-gris-30);
  border-radius: var(--nmd-radio);
  padding: 1.75rem;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

.nmd-manifiesto__panel h3 {
  margin-bottom: 1rem;
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--nmd-linea);
}

.nmd-manifiesto__lista {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  color: var(--nmd-texto-sobre-oscuro);
}

.nmd-manifiesto__lista li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.nmd-manifiesto__lista .nmd-icono {
  color: var(--nmd-blanco);
  margin-top: 0.125rem;
}

@media (min-width: 640px) {
  .nmd-manifiesto__destacados {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .nmd-manifiesto {
    grid-template-columns: repeat(12, 1fr);
    gap: var(--nmd-hueco);
  }
  .nmd-manifiesto__col-texto {
    grid-column: span 7;
  }
  .nmd-manifiesto__col-panel {
    grid-column: span 5;
  }
  .nmd-manifiesto__panel {
    padding: 2rem;
  }
}

/* Metodología */
.nmd-pasos {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-hueco);
}

.nmd-paso {
  padding: 1.75rem;
}

.nmd-paso__cabecera {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}

.nmd-paso__numero {
  font-family: var(--nmd-fuente-titulos);
  font-size: 2rem;
  line-height: 2.5rem;
  font-weight: 300;
  letter-spacing: -0.02em;
  color: var(--nmd-azul-acero);
}

.nmd-paso__cabecera .nmd-icono {
  color: var(--nmd-gris-mineral);
}

.nmd-paso .nmd-h3 {
  margin-bottom: 0.75rem;
}

.nmd-paso__pie {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--nmd-linea-20);
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--nmd-gris-mineral);
}

@media (min-width: 768px) {
  .nmd-pasos {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .nmd-pasos {
    grid-template-columns: repeat(4, 1fr);
  }
  .nmd-paso {
    padding: 2rem;
  }
}

/* Tipologías */
.nmd-tipologias {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-hueco);
}

.nmd-tipologia {
  padding: 1.5rem;
}

.nmd-tipologia .nmd-foto {
  border-radius: var(--nmd-radio-xs);
  margin-bottom: 1rem;
}

.nmd-tipologia .nmd-h3 {
  margin-bottom: 0.5rem;
}

.nmd-tipologia .nmd-texto {
  line-height: 1.65;
}

.nmd-tipologia__zonas {
  margin-top: 1.25rem;
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--nmd-azul-acero);
}

.nmd-aviso-imagenes {
  margin-top: 1.5rem;
  font-size: var(--nmd-t-texto-sm);
  line-height: 1.4;
  color: var(--nmd-gris-mineral);
}

@media (min-width: 768px) {
  .nmd-tipologias {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .nmd-tipologias {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Contexto insular y zonas */
.nmd-contexto {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-esp-xl);
  align-items: center;
}

.nmd-contexto .nmd-texto-xl {
  margin: 1rem 0 1.5rem;
}

.nmd-puntos {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.nmd-punto {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem;
  background: var(--nmd-blanco);
  border: 1px solid var(--nmd-linea-20);
  border-radius: var(--nmd-radio-sm);
  transition: border-color var(--nmd-dur-hover);
}

.nmd-punto:hover {
  border-color: var(--nmd-azul-noche);
}

.nmd-punto .nmd-icono {
  color: var(--nmd-azul-acero);
}

.nmd-punto h3 {
  font-family: var(--nmd-fuente-titulos);
  font-size: 1rem;
  line-height: 1.375rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--nmd-azul-profundo);
}

.nmd-punto p {
  margin-top: 0.25rem;
  line-height: 1.625;
  color: var(--nmd-grafito-suave);
}

.nmd-zonas-panel {
  background: var(--nmd-blanco);
  border: 1px solid var(--nmd-linea-30);
  border-radius: var(--nmd-radio);
  padding: 1.75rem;
  box-shadow: var(--nmd-sombra-suave);
}

.nmd-zonas-panel__cabecera {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--nmd-linea-20);
}

.nmd-zonas-panel__titulo {
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--nmd-azul-profundo);
}

.nmd-zonas-panel__cabecera .nmd-etiqueta-chica {
  letter-spacing: 0.08em;
  text-transform: none;
}

.nmd-zonas-panel__rejilla {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  padding: 1.5rem 0;
}

.nmd-zona {
  padding: 1rem;
  background: var(--nmd-fondo-alterno);
  border-radius: var(--nmd-radio-sm);
}

.nmd-zona__nombre {
  margin-top: 0.25rem;
  color: var(--nmd-azul-profundo);
  font-weight: 500;
}

.nmd-zona__detalle {
  margin-top: 0.125rem;
  font-size: var(--nmd-t-texto-sm);
  line-height: 1.375rem;
  color: var(--nmd-grafito-suave);
}

.nmd-zonas-panel__pie {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--nmd-linea-20);
}

.nmd-zonas-panel__estado {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--nmd-grafito-suave);
}

.nmd-zonas-panel__estado::before {
  content: "";
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 9999px;
  background: var(--nmd-azul-acero);
  flex-shrink: 0;
}

.nmd-zonas-panel__pie .nmd-enlace {
  min-height: 2.75rem;
}

@media (min-width: 640px) {
  .nmd-zonas-panel__rejilla {
    grid-template-columns: repeat(2, 1fr);
  }
  .nmd-zonas-panel__pie {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (min-width: 768px) {
  .nmd-zonas-panel {
    padding: 2.5rem;
  }
}

@media (min-width: 1024px) {
  .nmd-contexto {
    grid-template-columns: repeat(12, 1fr);
    gap: var(--nmd-hueco);
  }
  .nmd-contexto__col {
    grid-column: span 6;
  }
}

/* Preguntas frecuentes */
.nmd-faq-cabecera {
  text-align: center;
  max-width: 36rem;
  margin: 0 auto var(--nmd-esp-2xl);
}

.nmd-faq-cabecera .nmd-texto {
  margin-top: 0.5rem;
  line-height: 1.625;
}

.nmd-faq {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.nmd-faq__item {
  background: var(--nmd-blanco);
  border: 1px solid var(--nmd-linea-30);
  border-radius: var(--nmd-radio);
  overflow: hidden;
}

.nmd-faq__pregunta {
  margin: 0;
}

.nmd-faq__boton {
  width: 100%;
  min-height: 3.25rem;
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
  color: var(--nmd-azul-profundo);
  font-family: var(--nmd-fuente-titulos);
  font-size: 1.0625rem;
  line-height: 1.5rem;
  font-weight: 500;
  letter-spacing: -0.015em;
}

.nmd-faq__boton:focus-visible {
  outline-offset: -3px;
}

.nmd-faq__icono {
  color: var(--nmd-azul-acero);
  transition: transform var(--nmd-dur-hover);
}

.nmd-faq__boton[aria-expanded="true"] .nmd-faq__icono {
  transform: rotate(45deg);
}

.nmd-faq__panel {
  display: grid;
  grid-template-rows: 1fr;
}

.nmd-faq__interior {
  overflow: hidden;
}

.nmd-faq__respuesta {
  padding: 1rem 1.5rem 1.5rem;
  border-top: 1px solid var(--nmd-linea-20);
}

/* Con JavaScript, las respuestas parten cerradas. Sin JavaScript se ven abiertas. */
.nmd-js .nmd-faq__panel {
  grid-template-rows: 0fr;
  opacity: 0;
  visibility: hidden;
  transition: grid-template-rows var(--nmd-dur-hover) var(--nmd-curva), opacity var(--nmd-dur-hover) ease, visibility 0s linear var(--nmd-dur-hover);
}

.nmd-js .nmd-faq__panel.nmd-abierto {
  grid-template-rows: 1fr;
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

/* Contacto */
.nmd-contacto {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-esp-xl);
}

.nmd-contacto__info {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.nmd-contacto .nmd-h2 {
  color: var(--nmd-blanco);
  margin: 0.75rem 0 var(--nmd-esp-md);
}

.nmd-contacto__texto {
  font-size: var(--nmd-t-texto-xl);
  line-height: 1.75;
  letter-spacing: -0.01em;
  color: rgb(224 226 233 / 0.9);
  margin-bottom: 2rem;
}

.nmd-contacto__datos {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--nmd-gris-30);
}

.nmd-dato {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.nmd-dato .nmd-icono {
  color: var(--nmd-linea);
  margin-top: 0.125rem;
  width: 1.375rem;
  height: 1.375rem;
}

.nmd-dato__etiqueta {
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--nmd-linea);
}

.nmd-dato__valor {
  margin-top: 0.125rem;
  color: var(--nmd-blanco);
  font-weight: 500;
}

.nmd-dato__valor a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.nmd-contacto__lema {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--nmd-gris-20);
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--nmd-linea);
}

@media (min-width: 1024px) {
  .nmd-contacto {
    grid-template-columns: repeat(12, 1fr);
    gap: var(--nmd-hueco);
  }
  .nmd-contacto__info {
    grid-column: span 5;
  }
  .nmd-contacto__formulario {
    grid-column: span 7;
  }
}

/* ---------- 6. FORMULARIO ---------- */
.nmd-formulario-caja {
  background: var(--nmd-blanco);
  color: var(--nmd-grafito);
  border-radius: var(--nmd-radio);
  padding: 1.75rem;
  box-shadow: var(--nmd-sombra-suave);
}

.nmd-formulario-caja .nmd-h3 {
  margin-bottom: 0.5rem;
}

.nmd-formulario-caja > .nmd-texto {
  margin-bottom: 1.5rem;
  line-height: 1.625;
}

.nmd-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.nmd-form__fila {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

.nmd-form__etiqueta {
  display: block;
  margin-bottom: 0.5rem;
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--nmd-azul-acero);
}

.nmd-form__campo {
  width: 100%;
  min-height: 2.875rem;
  padding: 0.875rem 1rem;
  background: var(--nmd-blanco);
  color: var(--nmd-grafito);
  border: 1px solid var(--nmd-linea-60);
  border-radius: var(--nmd-radio);
  font-family: var(--nmd-fuente-texto);
  font-size: var(--nmd-t-texto);
  line-height: 1.5;
  letter-spacing: -0.005em;
  transition: border-color var(--nmd-dur-hover), box-shadow var(--nmd-dur-hover);
}

.nmd-form__campo::placeholder {
  color: var(--nmd-gris-mineral);
}

.nmd-form__campo:focus {
  outline: none;
  border-color: var(--nmd-azul-noche);
  box-shadow: 0 0 0 1px var(--nmd-azul-noche);
}

textarea.nmd-form__campo {
  resize: none;
  min-height: 7rem;
}

select.nmd-form__campo {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 2.5rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23456178'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 1.5rem;
}

.nmd-form__campo[aria-invalid="true"] {
  border-color: var(--nmd-error);
}

.nmd-form__campo[aria-invalid="true"]:focus {
  box-shadow: 0 0 0 1px var(--nmd-error);
}

.nmd-form__error {
  margin-top: 0.375rem;
  font-size: var(--nmd-t-texto-sm);
  line-height: 1.25rem;
  color: var(--nmd-error);
}

.nmd-form__error:empty {
  display: none;
}

.nmd-form__privacidad {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding-top: 0.25rem;
}

.nmd-form__privacidad input {
  margin: 0.25rem 0 0;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  accent-color: var(--nmd-azul-noche);
  cursor: pointer;
}

.nmd-form__privacidad label {
  font-size: var(--nmd-t-texto-sm);
  line-height: 1.375rem;
  color: var(--nmd-grafito-suave);
  cursor: pointer;
}

.nmd-form__privacidad a {
  color: var(--nmd-azul-noche);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.nmd-form__trampa {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.nmd-form__estado {
  padding: 1rem;
  border-radius: var(--nmd-radio);
  font-size: var(--nmd-t-texto);
  line-height: 1.5;
}

.nmd-form__estado[hidden] {
  display: none;
}

.nmd-form__estado--ok {
  background: var(--nmd-exito-fondo);
  color: var(--nmd-azul-profundo);
}

.nmd-form__estado--error {
  background: var(--nmd-error-fondo);
  color: #93000a;
}

.nmd-form__estado--info {
  background: var(--nmd-fondo-alterno);
  color: var(--nmd-grafito-suave);
}

.nmd-form .nmd-boton {
  width: 100%;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

@media (min-width: 640px) {
  .nmd-form__fila {
    grid-template-columns: repeat(2, 1fr);
  }
  .nmd-formulario-caja {
    padding: 2.25rem;
  }
}

@media (min-width: 768px) {
  .nmd-formulario-caja {
    padding: 2.5rem;
  }
}

/* ---------- 7. PIE DE PÁGINA ---------- */
.nmd-pie {
  background: var(--nmd-azul-noche);
  color: var(--nmd-linea);
  padding: var(--nmd-esp-3xl) 0 var(--nmd-esp-lg);
}

.nmd-pie__rejilla {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--nmd-hueco);
  padding-bottom: var(--nmd-esp-2xl);
  border-bottom: 1px solid var(--nmd-gris-20);
}

.nmd-pie .nmd-logo {
  color: var(--nmd-blanco);
}

.nmd-pie__descripcion {
  margin-top: 0.5rem;
  max-width: 24rem;
  line-height: 1.625;
}

.nmd-pie__contacto {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  margin-top: 1rem;
}

.nmd-pie__contacto strong {
  color: var(--nmd-blanco);
  font-weight: 500;
}

.nmd-pie a:hover {
  color: var(--nmd-blanco);
}

.nmd-pie a {
  transition: color var(--nmd-dur-hover);
}

.nmd-pie__titulo {
  margin-bottom: 0.5rem;
  font-family: var(--nmd-fuente-texto);
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--nmd-blanco);
}

.nmd-pie__lista {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.nmd-pie__base {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: var(--nmd-esp-lg);
  font-size: var(--nmd-t-etiqueta);
  line-height: 1rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-align: center;
}

@media (min-width: 640px) {
  .nmd-pie__base {
    flex-direction: row;
    text-align: left;
  }
}

@media (min-width: 768px) {
  .nmd-pie__rejilla {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .nmd-pie__rejilla {
    grid-template-columns: repeat(12, 1fr);
    gap: var(--nmd-hueco);
  }
  .nmd-pie__col-marca {
    grid-column: span 4;
  }
  .nmd-pie__col {
    grid-column: span 3;
  }
  .nmd-pie__col--corta {
    grid-column: span 2;
  }
}

/* Páginas legales */
.nmd-legal {
  padding: 3rem 0 var(--nmd-esp-3xl);
}

.nmd-legal__aviso {
  margin: 1.5rem 0 2rem;
  padding: 1rem;
  background: var(--nmd-error-fondo);
  color: #93000a;
  border-radius: var(--nmd-radio);
}

.nmd-legal h2 {
  margin: 2rem 0 0.5rem;
  font-family: var(--nmd-fuente-titulos);
  font-size: var(--nmd-t-h3);
  font-weight: 600;
  color: var(--nmd-azul-profundo);
}

.nmd-legal .nmd-enlace {
  margin-top: 2rem;
}

/* ---------- 8. ANIMACIONES ---------- */
/* Solo se ocultan los elementos si JavaScript está activo; sin JavaScript todo es visible. */
.nmd-js .nmd-aparece {
  opacity: 0;
  transform: translateY(var(--nmd-desplazamiento));
  transition: opacity var(--nmd-dur-aparicion) var(--nmd-curva), transform var(--nmd-dur-aparicion) var(--nmd-curva);
  transition-delay: calc(var(--nmd-escalon, 0) * 100ms);
  will-change: opacity, transform;
}

.nmd-js .nmd-aparece.nmd-visible {
  opacity: 1;
  transform: none;
  will-change: auto;
}

/* Tras aparecer, las tarjetas vuelven a su transición de hover sin retraso */
.nmd-js .nmd-aparece.nmd-visible.nmd-tarjeta {
  transition-delay: 0s;
  transition: transform var(--nmd-dur-hover), box-shadow var(--nmd-dur-hover), border-color var(--nmd-dur-hover), opacity var(--nmd-dur-aparicion);
}

/* ---------- 9. MOVIMIENTO REDUCIDO ---------- */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .nmd-sitio *, .nmd-sitio *::before, .nmd-sitio *::after {
    transition-duration: 0.01ms !important;
    transition-delay: 0s !important;
    animation: none !important;
  }
  .nmd-js .nmd-aparece {
    opacity: 1;
    transform: none;
  }
  .nmd-foto:hover img, .nmd-tarjeta:hover {
    transform: none !important;
  }
}
