/*
 * NoMasCaosWebPanel 1.41.06
 * Capa visual mobile-first final. Se carga la ultima para unificar la web publica
 * sin modificar los datos, plantillas antiguas ni estilos de escritorio existentes.
 */

:root {
  --nmc-mf-red: #e30613;
  --nmc-mf-red-dark: #b00611;
  --nmc-mf-ink: #111318;
  --nmc-mf-muted: #5f6672;
  --nmc-mf-surface: #ffffff;
  --nmc-mf-bg: #f5f6f8;
  --nmc-mf-line: rgba(17, 19, 24, .09);
  --nmc-mf-radius: 24px;
  --nmc-mf-radius-sm: 17px;
  --nmc-mf-touch: 50px;
  --nmc-mf-shadow: 0 18px 48px rgba(17, 19, 24, .09);
  --nmc-mf-shadow-soft: 0 10px 28px rgba(17, 19, 24, .065);
  --nmc-mf-safe-bottom: max(12px, env(safe-area-inset-bottom));
}

body.nmc-public,
body.public-body {
  background: var(--nmc-mf-bg);
  color: var(--nmc-mf-ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.nmc-public *,
body.public-body * {
  box-sizing: border-box;
}

body.nmc-public :where(a, button, input, select, textarea, summary):focus-visible,
body.public-body :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid rgba(227, 6, 19, .28) !important;
  outline-offset: 3px !important;
}

body.nmc-public img,
body.public-body img {
  max-width: 100%;
  height: auto;
}

body.nmc-public main,
body.public-body main {
  overflow: clip;
}

/* Evita que las paginas largas pinten todo de golpe en dispositivos modestos. */
@supports (content-visibility: auto) {
  body.nmc-public main > section:nth-child(n+3),
  body.public-body main > section:nth-child(n+3) {
    content-visibility: auto;
    contain-intrinsic-size: auto 620px;
  }
}

/* Tarjetas y bloques compartidos: menos ruido, una misma jerarquia. */
body.nmc-public :where(
  .card,.centro-card,.center-card,.blog-card,.faq-item,.lead-form-card,
  .nmc-corporate-card,.nmc-corporate-form,.nmc-job-card,.tp-unit-card,
  .tp-need-grid article,.tp-editable-card-grid article,.tp-faq-card,
  .nmc-m3-center-card,.nmc-pro-process article,.nmc-home-problem-v1317,
  .nmc-home-step-v1317,.nmc-home-city-card-v1317,.nmc-full-map-center-card
),
body.public-body :where(
  .card,.centro-card,.center-card,.blog-card,.faq-item,.lead-form-card,
  .nmc-corporate-card,.nmc-corporate-form,.nmc-job-card,.tp-unit-card,
  .tp-need-grid article,.tp-editable-card-grid article,.tp-faq-card,
  .nmc-m3-center-card,.nmc-pro-process article,.nmc-home-problem-v1317,
  .nmc-home-step-v1317,.nmc-home-city-card-v1317,.nmc-full-map-center-card
) {
  border-color: var(--nmc-mf-line) !important;
  box-shadow: var(--nmc-mf-shadow-soft) !important;
}

body.nmc-public :where(.hero-btn,.tp-btn,.nmc-pro-button,.btn-card,.conversion-primary,.form-submit),
body.public-body :where(.hero-btn,.tp-btn,.nmc-pro-button,.btn-card,.conversion-primary,.form-submit) {
  min-height: 48px;
  border-radius: 15px;
  font-weight: 850;
  text-decoration: none;
}

body.nmc-public :where(input,select,textarea),
body.public-body :where(input,select,textarea) {
  font-size: 16px !important;
}

/* Barra de salto movil inyectada por JS. */
.nmc-mobile-routebar,
.nmc-mobile-dock,
.nmc-snap-meter,
.nmc-mobile-footer-toggle {
  display: none;
}

/* Pulido de escritorio/tablet sin alterar el layout principal. */
@media (min-width: 768px) {
  body.nmc-public .nmc-pro-hero,
  body.public-body .nmc-pro-hero,
  body.nmc-public .nmc-corporate-hero,
  body.public-body .nmc-corporate-hero,
  body.nmc-public .tp-hero,
  body.public-body .tp-hero {
    border: 1px solid rgba(17, 19, 24, .06);
  }

  body.nmc-public .nmc-pro-section,
  body.public-body .nmc-pro-section,
  body.nmc-public .nmc-corporate-section,
  body.public-body .nmc-corporate-section {
    padding-block: clamp(64px, 7vw, 92px);
  }

  body.nmc-public .nmc-m3-center-card,
  body.public-body .nmc-m3-center-card {
    transition: transform .22s ease, box-shadow .22s ease;
  }

  body.nmc-public .nmc-m3-center-card:hover,
  body.public-body .nmc-m3-center-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 58px rgba(17, 19, 24, .12) !important;
  }
}

/* ========================================================================== */
/* MOBILE FIRST                                                               */
/* ========================================================================== */
@media (max-width: 767.98px) {
  html {
    scroll-padding-top: 76px;
    -webkit-text-size-adjust: 100%;
  }

  body.nmc-public,
  body.public-body,
  body.nmc-public.nmc-mobile-premium,
  body.public-body.nmc-mobile-premium {
    --nmc-mobile-gutter: 14px;
    width: 100%;
    min-width: 0;
    overflow-x: hidden !important;
    padding-bottom: var(--nmc-mf-safe-bottom) !important;
    background: var(--nmc-mf-bg) !important;
  }

  body.nmc-public.nmc-has-center-dock,
  body.public-body.nmc-has-center-dock {
    padding-bottom: calc(92px + var(--nmc-mf-safe-bottom)) !important;
  }

  body.nmc-public .wrap,
  body.public-body .wrap,
  body.nmc-public .footer-container,
  body.public-body .footer-container {
    width: calc(100% - (var(--nmc-mobile-gutter) * 2)) !important;
    max-width: none !important;
    margin-inline: auto !important;
  }

  body.nmc-public main > section,
  body.public-body main > section {
    scroll-margin-top: 78px;
  }

  /* Cabecera: limpia, de una sola fila y facil de pulsar. */
  body.nmc-public .site-header,
  body.public-body .site-header,
  body.nmc-public.nmc-mobile-premium .site-header,
  body.public-body.nmc-mobile-premium .site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 820 !important;
    min-height: 58px !important;
    border-bottom: 1px solid rgba(17, 19, 24, .07) !important;
    background: rgba(255,255,255,.94) !important;
    box-shadow: 0 8px 24px rgba(17,19,24,.055) !important;
    backdrop-filter: blur(18px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
  }

  body.nmc-public.nmc-scrolled .site-header,
  body.public-body.nmc-scrolled .site-header {
    box-shadow: 0 12px 32px rgba(17,19,24,.10) !important;
  }

  body.nmc-public .header-shell-v18,
  body.public-body .header-shell-v18 {
    width: calc(100% - 22px) !important;
    min-height: 58px !important;
    padding: 7px 0 !important;
    gap: 10px !important;
  }

  body.nmc-public .brand-v18 .logo-text,
  body.public-body .brand-v18 .logo-text,
  body.nmc-public .logo-text,
  body.public-body .logo-text {
    font-size: 1.3rem !important;
    line-height: 1 !important;
    letter-spacing: -.055em !important;
  }

  body.nmc-public .brand-v18 .logo-text::after,
  body.public-body .brand-v18 .logo-text::after {
    bottom: -7px !important;
    height: 2px !important;
  }

  body.nmc-public .mobile-nav-toggle-v18,
  body.public-body .mobile-nav-toggle-v18,
  body.nmc-public .mobile-nav-toggle,
  body.public-body .mobile-nav-toggle {
    min-width: 78px !important;
    min-height: 43px !important;
    padding: 0 12px !important;
    border: 1px solid rgba(17,19,24,.10) !important;
    border-radius: 999px !important;
    color: var(--nmc-mf-ink) !important;
    background: #fff !important;
    box-shadow: 0 7px 18px rgba(17,19,24,.075) !important;
    font-size: .82rem !important;
  }

  /* Menu como hoja inferior, mejor para el pulgar que un desplegable superior. */
  body.nmc-public .nmc-menu-v18,
  body.public-body .nmc-menu-v18,
  body.nmc-public .main-nav.nmc-menu-v18,
  body.public-body .main-nav.nmc-menu-v18 {
    position: fixed !important;
    z-index: 900 !important;
    left: 8px !important;
    right: 8px !important;
    top: auto !important;
    bottom: calc(8px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-height: min(82dvh, 720px) !important;
    margin: 0 !important;
    padding: 14px !important;
    gap: 7px !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    border: 1px solid rgba(17,19,24,.10) !important;
    border-radius: 28px !important;
    background: rgba(255,255,255,.985) !important;
    box-shadow: 0 28px 90px rgba(17,19,24,.30) !important;
    transform: translateY(18px) !important;
  }

  body.nmc-public.nmc-menu-open .nmc-menu-v18,
  body.public-body.nmc-menu-open .nmc-menu-v18 {
    transform: translateY(0) !important;
  }

  body.nmc-public .nmc-menu-v18::before,
  body.public-body .nmc-menu-v18::before {
    content: "";
    width: 42px;
    height: 4px;
    flex: 0 0 auto;
    align-self: center;
    margin: -3px auto 5px;
    border-radius: 999px;
    background: #d8dadd;
  }

  body.nmc-public .nmc-menu-v18 > a,
  body.public-body .nmc-menu-v18 > a,
  body.nmc-public .nmc-menu-v18 summary,
  body.public-body .nmc-menu-v18 summary {
    min-height: 52px !important;
    width: 100% !important;
    padding: 0 15px !important;
    border: 1px solid rgba(17,19,24,.065) !important;
    border-radius: 17px !important;
    background: #f7f8fa !important;
    color: var(--nmc-mf-ink) !important;
    font-size: .94rem !important;
    font-weight: 850 !important;
  }

  body.nmc-public .nmc-menu-v18 .nav-menu,
  body.public-body .nmc-menu-v18 .nav-menu,
  body.nmc-public .nmc-menu-v18 .nav-menu-wide,
  body.public-body .nmc-menu-v18 .nav-menu-wide {
    padding: 6px 0 4px 8px !important;
    gap: 6px !important;
  }

  body.nmc-public .nmc-menu-v18 .nav-menu a,
  body.public-body .nmc-menu-v18 .nav-menu a {
    min-height: 48px !important;
    padding: 10px 13px !important;
    border: 1px solid rgba(17,19,24,.07) !important;
    border-radius: 15px !important;
    background: #fff !important;
    font-size: .89rem !important;
  }

  body.nmc-public.nmc-menu-open .mobile-menu-backdrop,
  body.public-body.nmc-menu-open .mobile-menu-backdrop {
    z-index: 880 !important;
    background: rgba(10,12,16,.52) !important;
    backdrop-filter: blur(5px) !important;
  }

  body.nmc-menu-open {
    overflow: hidden !important;
    touch-action: none;
  }

  /* Aviso superior: una sola linea y una accion. */
  body.nmc-public .nmc-smart-ribbon,
  body.public-body .nmc-smart-ribbon {
    background: #15171c !important;
    box-shadow: none !important;
  }

  body.nmc-public .nmc-smart-ribbon__inner,
  body.public-body .nmc-smart-ribbon__inner {
    min-height: 35px !important;
    width: calc(100% - 20px) !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto auto !important;
    gap: 6px !important;
    padding: 4px 0 !important;
  }

  body.nmc-public .nmc-smart-ribbon__copy,
  body.public-body .nmc-smart-ribbon__copy {
    display: block !important;
  }

  body.nmc-public .nmc-smart-ribbon__copy strong,
  body.public-body .nmc-smart-ribbon__copy strong {
    display: block !important;
    overflow: hidden !important;
    color: #fff !important;
    font-size: .76rem !important;
    line-height: 1.1 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.nmc-public .nmc-smart-ribbon__primary,
  body.public-body .nmc-smart-ribbon__primary {
    min-height: 28px !important;
    padding: 0 9px !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: var(--nmc-mf-red-dark) !important;
    font-size: .72rem !important;
  }

  body.nmc-public .nmc-smart-ribbon-close,
  body.public-body .nmc-smart-ribbon-close {
    width: 28px !important;
    height: 28px !important;
  }

  /* Acciones rapidas superiores como carrusel de chips, no cuatro tarjetas altas. */
  body.nmc-public .nmc-quick-actions,
  body.public-body .nmc-quick-actions {
    border-bottom: 1px solid rgba(17,19,24,.06) !important;
    background: rgba(255,255,255,.92) !important;
  }

  body.nmc-public .nmc-quick-actions__inner,
  body.public-body .nmc-quick-actions__inner {
    width: 100% !important;
    display: flex !important;
    gap: 8px !important;
    padding: 9px 12px !important;
    overflow-x: auto !important;
    scroll-snap-type: x proximity !important;
    scrollbar-width: none !important;
  }

  body.nmc-public .nmc-quick-actions__inner::-webkit-scrollbar,
  body.public-body .nmc-quick-actions__inner::-webkit-scrollbar {
    display: none !important;
  }

  body.nmc-public .nmc-quick-actions a,
  body.public-body .nmc-quick-actions a {
    flex: 0 0 auto !important;
    min-width: auto !important;
    min-height: 42px !important;
    padding: 0 12px !important;
    gap: 7px !important;
    border: 1px solid rgba(17,19,24,.08) !important;
    border-radius: 999px !important;
    background: #fff !important;
    box-shadow: none !important;
    scroll-snap-align: start;
  }

  body.nmc-public .nmc-quick-actions .nmc-qa-ic,
  body.public-body .nmc-quick-actions .nmc-qa-ic {
    width: 18px !important;
    height: 18px !important;
  }

  body.nmc-public .nmc-quick-actions strong,
  body.public-body .nmc-quick-actions strong {
    font-size: .79rem !important;
  }

  body.nmc-public .nmc-quick-actions small,
  body.public-body .nmc-quick-actions small {
    display: none !important;
  }

  /* Navegacion contextual situada tras el hero. */
  .nmc-mobile-routebar {
    display: flex;
    width: calc(100% - 24px);
    margin: 10px auto 2px;
    padding: 5px;
    gap: 5px;
    overflow-x: auto;
    border: 1px solid rgba(17,19,24,.075);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(17,19,24,.055);
    scrollbar-width: none;
  }

  .nmc-mobile-routebar::-webkit-scrollbar { display: none; }

  .nmc-mobile-routebar a {
    flex: 1 0 auto;
    min-height: 41px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border-radius: 13px;
    color: #353a43;
    background: #f5f6f8;
    font-size: .78rem;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
  }

  .nmc-mobile-routebar a:first-child {
    color: #fff;
    background: var(--nmc-mf-red);
  }

  /* Tipografia y ritmo: titulos grandes, no gigantes. */
  body.nmc-public :where(h1,.page-main h1),
  body.public-body :where(h1,.page-main h1) {
    overflow-wrap: anywhere;
    text-wrap: balance;
  }

  body.nmc-public :where(h2,h3),
  body.public-body :where(h2,h3) {
    text-wrap: balance;
  }

  body.nmc-public :where(.section,.nmc-pro-section,.nmc-corporate-section,.tp-city-section,.tp-available,.tp-sizes,.tp-why-now),
  body.public-body :where(.section,.nmc-pro-section,.nmc-corporate-section,.tp-city-section,.tp-available,.tp-sizes,.tp-why-now) {
    padding-top: 38px !important;
    padding-bottom: 38px !important;
  }

  body.nmc-public :where(.section-head,.tp-section-title,.nmc-pro-section-head,.nmc-corporate-head,.nmc-home-head-v1317),
  body.public-body :where(.section-head,.tp-section-title,.nmc-pro-section-head,.nmc-corporate-head,.nmc-home-head-v1317) {
    margin-bottom: 19px !important;
    gap: 9px !important;
  }

  body.nmc-public :where(.section-head h2,.tp-section-title h2,.nmc-pro-section-head h2,.nmc-pro-split h2,.nmc-pro-faq h2,.nmc-corporate-head h2,.nmc-home-head-v1317 h2),
  body.public-body :where(.section-head h2,.tp-section-title h2,.nmc-pro-section-head h2,.nmc-pro-split h2,.nmc-pro-faq h2,.nmc-corporate-head h2,.nmc-home-head-v1317 h2) {
    font-size: clamp(1.85rem, 8.8vw, 2.55rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.052em !important;
  }

  body.nmc-public :where(.section-head p,.tp-section-title p,.nmc-corporate-head p,.nmc-home-head-v1317 p),
  body.public-body :where(.section-head p,.tp-section-title p,.nmc-corporate-head p,.nmc-home-head-v1317 p) {
    font-size: .96rem !important;
    line-height: 1.52 !important;
  }

  /* HOME actual: primera pantalla vende y permite buscar sin scroll excesivo. */
  body.page-home .nmc-pro-hero,
  body.nmc-public.page-home .nmc-pro-hero,
  body.public-body.page-home .nmc-pro-hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    width: calc(100% - 20px) !important;
    margin: 10px auto 0 !important;
    padding: 24px 16px 16px !important;
    border: 1px solid rgba(17,19,24,.07) !important;
    border-radius: 26px !important;
    background: linear-gradient(155deg,#fff 0%,#fff 68%,#fff1f2 100%) !important;
    box-shadow: 0 16px 42px rgba(17,19,24,.075) !important;
  }

  body.page-home .nmc-pro-eyebrow,
  body.nmc-public.page-home .nmc-pro-eyebrow {
    margin-bottom: 10px !important;
    font-size: .68rem !important;
  }

  body.page-home .nmc-pro-hero h1,
  body.nmc-public.page-home .nmc-pro-hero h1,
  body.public-body.page-home .nmc-pro-hero h1 {
    max-width: none !important;
    margin: 0 0 13px !important;
    font-size: clamp(2.5rem, 12vw, 3.35rem) !important;
    line-height: .94 !important;
    letter-spacing: -.068em !important;
  }

  body.page-home .nmc-pro-hero__copy > p,
  body.nmc-public.page-home .nmc-pro-hero__copy > p {
    font-size: .99rem !important;
    line-height: 1.48 !important;
  }

  body.page-home .nmc-pro-actions,
  body.nmc-public.page-home .nmc-pro-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    margin-top: 20px !important;
  }

  body.page-home .nmc-pro-actions .nmc-pro-button,
  body.nmc-public.page-home .nmc-pro-actions .nmc-pro-button {
    width: 100% !important;
    min-height: 49px !important;
    padding: 0 10px !important;
    border-radius: 15px !important;
    font-size: .82rem !important;
  }

  body.page-home .nmc-pro-finder,
  body.nmc-public.page-home .nmc-pro-finder {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin-top: 17px !important;
    padding: 8px !important;
    border: 1px solid rgba(17,19,24,.08) !important;
    border-radius: 19px !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 10px 28px rgba(17,19,24,.065) !important;
  }

  body.page-home .nmc-pro-finder label,
  body.nmc-public.page-home .nmc-pro-finder label {
    min-height: 58px !important;
    padding: 9px 12px !important;
    border: 1px solid rgba(17,19,24,.07) !important;
    border-radius: 14px !important;
    background: #f7f8fa !important;
  }

  body.page-home .nmc-pro-finder input,
  body.page-home .nmc-pro-finder select,
  body.nmc-public.page-home .nmc-pro-finder input,
  body.nmc-public.page-home .nmc-pro-finder select {
    min-height: 26px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    font-size: 16px !important;
  }

  body.page-home .nmc-pro-finder button,
  body.nmc-public.page-home .nmc-pro-finder button {
    min-height: 50px !important;
    width: 100% !important;
    margin: 0 !important;
    border-radius: 14px !important;
    font-size: .9rem !important;
  }

  body.page-home .nmc-pro-proof,
  body.nmc-public.page-home .nmc-pro-proof {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    margin-top: 14px !important;
    padding-bottom: 2px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }

  body.page-home .nmc-pro-proof::-webkit-scrollbar { display: none; }

  body.page-home .nmc-pro-proof span,
  body.nmc-public.page-home .nmc-pro-proof span {
    flex: 0 0 auto !important;
    min-height: 34px !important;
    padding: 0 10px !important;
    border: 1px solid rgba(17,19,24,.065) !important;
    border-radius: 999px !important;
    background: #fff !important;
    font-size: .73rem !important;
    white-space: nowrap !important;
  }

  body.page-home .nmc-pro-hero__media,
  body.nmc-public.page-home .nmc-pro-hero__media {
    width: 100% !important;
    border-radius: 21px !important;
  }

  body.page-home .nmc-pro-hero__media > img,
  body.nmc-public.page-home .nmc-pro-hero__media > img {
    height: 230px !important;
    object-fit: cover !important;
  }

  body.page-home .nmc-pro-hero__caption,
  body.nmc-public.page-home .nmc-pro-hero__caption {
    left: 9px !important;
    right: 9px !important;
    bottom: 9px !important;
    min-height: 52px !important;
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    border-radius: 14px !important;
  }

  body.page-home .nmc-pro-hero__caption strong,
  body.nmc-public.page-home .nmc-pro-hero__caption strong {
    font-size: .82rem !important;
  }

  body.page-home .nmc-pro-section,
  body.nmc-public.page-home .nmc-pro-section {
    padding-block: 43px !important;
  }

  /* Carrusel de centros: una tarjeta protagonista y parte de la siguiente. */
  body.page-home .nmc-home-center-carousel,
  body.nmc-public.page-home .nmc-home-center-carousel {
    margin-inline: -14px !important;
    padding-inline: 14px !important;
    overflow: hidden !important;
  }

  body.page-home .nmc-m3-center-grid,
  body.nmc-public.page-home .nmc-m3-center-grid {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 12px !important;
    padding: 3px 1px 12px !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    scroll-padding-inline: 1px !important;
    scrollbar-width: none !important;
  }

  body.page-home .nmc-m3-center-grid::-webkit-scrollbar { display: none; }

  body.page-home .nmc-m3-center-card,
  body.nmc-public.page-home .nmc-m3-center-card {
    flex: 0 0 min(86vw, 340px) !important;
    min-width: 0 !important;
    border-radius: 22px !important;
    scroll-snap-align: start !important;
    scroll-snap-stop: always !important;
  }

  body.page-home .nmc-m3-center-card__image,
  body.nmc-public.page-home .nmc-m3-center-card__image {
    height: 185px !important;
  }

  body.page-home .nmc-m3-center-card__body,
  body.nmc-public.page-home .nmc-m3-center-card__body {
    padding: 15px !important;
  }

  body.page-home .nmc-home-center-actions,
  body.nmc-public.page-home .nmc-home-center-actions {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
  }

  body.page-home .nmc-home-center-nav,
  body.nmc-public.page-home .nmc-home-center-nav {
    min-width: 128px !important;
  }

  body.page-home .nmc-home-center-nav button,
  body.nmc-public.page-home .nmc-home-center-nav button {
    width: 43px !important;
    height: 43px !important;
  }

  /* Beneficios y pasos se recorren con el pulgar, reduciendo longitud vertical. */
  body.page-home .nmc-pro-benefits,
  body.page-home .nmc-pro-process,
  body.nmc-public.page-home .nmc-pro-benefits,
  body.nmc-public.page-home .nmc-pro-process,
  body.page-home .nmc-home-problems-v1317,
  body.page-home .nmc-home-steps-v1317 {
    width: calc(100% + 14px) !important;
    display: flex !important;
    grid-template-columns: none !important;
    gap: 11px !important;
    padding: 2px 14px 12px 0 !important;
    overflow-x: auto !important;
    border: 0 !important;
    background: transparent !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
  }

  body.page-home .nmc-pro-benefits::-webkit-scrollbar,
  body.page-home .nmc-pro-process::-webkit-scrollbar { display: none; }

  body.page-home .nmc-pro-benefits article,
  body.page-home .nmc-pro-process article,
  body.page-home .nmc-home-problem-v1317,
  body.page-home .nmc-home-step-v1317 {
    flex: 0 0 min(82vw, 320px) !important;
    min-height: 138px !important;
    padding: 18px !important;
    border: 1px solid rgba(17,19,24,.075) !important;
    border-radius: 21px !important;
    background: #fff !important;
    scroll-snap-align: start !important;
  }

  body.page-home .nmc-pro-process b,
  body.nmc-public.page-home .nmc-pro-process b {
    margin-bottom: 24px !important;
  }

  body.page-home .nmc-pro-split,
  body.nmc-public.page-home .nmc-pro-split {
    gap: 25px !important;
  }

  body.page-home .nmc-pro-size-list > a,
  body.nmc-public.page-home .nmc-pro-size-list > a {
    min-height: 72px !important;
    padding: 10px 2px !important;
  }

  body.page-home .nmc-pro-dark,
  body.nmc-public.page-home .nmc-pro-dark {
    padding-block: 46px !important;
    border-radius: 28px 28px 0 0;
  }

  body.page-home .nmc-pro-dark__grid,
  body.nmc-public.page-home .nmc-pro-dark__grid {
    gap: 25px !important;
  }

  body.page-home .nmc-pro-solution-links > a,
  body.nmc-public.page-home .nmc-pro-solution-links > a {
    min-height: 76px !important;
    padding: 14px 0 !important;
  }

  body.page-home .nmc-pro-faq,
  body.nmc-public.page-home .nmc-pro-faq {
    gap: 24px !important;
    padding-block: 45px !important;
  }

  body.page-home .nmc-pro-faq summary,
  body.nmc-public.page-home .nmc-pro-faq summary {
    min-height: 58px !important;
    padding: 16px 0 !important;
    font-size: .96rem !important;
  }

  body.page-home .nmc-pro-final,
  body.nmc-public.page-home .nmc-pro-final {
    margin-bottom: 20px !important;
    padding: 25px 19px !important;
    border-radius: 23px !important;
  }

  body.page-home .nmc-pro-final h2,
  body.nmc-public.page-home .nmc-pro-final h2 {
    font-size: 2.15rem !important;
  }

  /* Home legacy: misma calidad si la base de datos conserva una portada anterior. */
  body.page-home .nmc-home-hero-v1317 {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    margin-top: 10px !important;
    padding: 23px 16px 16px !important;
    border-radius: 25px !important;
  }

  body.page-home .nmc-home-hero-copy-v1317 h1 {
    font-size: clamp(2.35rem,11vw,3.15rem) !important;
    line-height: .96 !important;
  }

  body.page-home .nmc-actions-v1311 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  body.page-home .nmc-home-pill-row-v1317 {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }

  body.page-home .nmc-home-pill-row-v1317 span {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }

  body.page-home .nmc-home-block-v1317 {
    padding-block: 38px !important;
  }

  body.page-home .nmc-home-city-grid-v1317 {
    display: flex !important;
    gap: 11px !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
  }

  body.page-home .nmc-home-city-card-v1317 {
    flex: 0 0 min(82vw, 320px) !important;
    scroll-snap-align: start !important;
  }

  /* Fichas de centro: la informacion importante antes y los bloques secundarios compactos. */
  body.nmc-public :where(.trasterospub-center-page,.nmc-portal-center-page),
  body.public-body :where(.trasterospub-center-page,.nmc-portal-center-page) {
    padding-bottom: 88px !important;
  }

  body.nmc-public :where(.trasterospub-center-page,.nmc-portal-center-page) .tp-hero,
  body.public-body :where(.trasterospub-center-page,.nmc-portal-center-page) .tp-hero {
    width: calc(100% - 20px) !important;
    margin: 10px auto 0 !important;
    padding: 21px 15px !important;
    gap: 18px !important;
    border-radius: 25px !important;
  }

  body.nmc-public :where(.trasterospub-center-page,.nmc-portal-center-page) .tp-hero h1,
  body.public-body :where(.trasterospub-center-page,.nmc-portal-center-page) .tp-hero h1 {
    font-size: clamp(2.18rem, 10vw, 2.9rem) !important;
    line-height: .97 !important;
    letter-spacing: -.058em !important;
  }

  body.nmc-public :where(.trasterospub-center-page,.nmc-portal-center-page) .tp-actions,
  body.public-body :where(.trasterospub-center-page,.nmc-portal-center-page) .tp-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  body.nmc-public :where(.trasterospub-center-page,.nmc-portal-center-page) :where(.nmc-center-premium-facts,.tp-mini-stats,.nmc-center-proof-row),
  body.public-body :where(.trasterospub-center-page,.nmc-portal-center-page) :where(.nmc-center-premium-facts,.tp-mini-stats,.nmc-center-proof-row) {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }

  body.nmc-public :where(.trasterospub-center-page,.nmc-portal-center-page) :where(.nmc-center-premium-facts,.tp-mini-stats,.nmc-center-proof-row) > *,
  body.public-body :where(.trasterospub-center-page,.nmc-portal-center-page) :where(.nmc-center-premium-facts,.tp-mini-stats,.nmc-center-proof-row) > * {
    flex: 0 0 auto !important;
    min-width: 126px !important;
  }

  body.nmc-public :where(.trasterospub-center-page,.nmc-portal-center-page) :where(
    .nmc-center-size-grid,.nmc-center-use-grid,.nmc-center-usecase-grid,
    .nmc-center-blueprint-grid,.tp-size-grid,.tp-unit-grid,.tp-need-grid,
    .nmc-premium-essentials-grid,.nmc-center-video-grid
  ),
  body.public-body :where(.trasterospub-center-page,.nmc-portal-center-page) :where(
    .nmc-center-size-grid,.nmc-center-use-grid,.nmc-center-usecase-grid,
    .nmc-center-blueprint-grid,.tp-size-grid,.tp-unit-grid,.tp-need-grid,
    .nmc-premium-essentials-grid,.nmc-center-video-grid
  ) {
    width: calc(100% + 14px) !important;
    display: flex !important;
    grid-template-columns: none !important;
    gap: 11px !important;
    padding: 3px 14px 12px 0 !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
  }

  body.nmc-public :where(.trasterospub-center-page,.nmc-portal-center-page) :where(
    .nmc-center-size-grid,.nmc-center-use-grid,.nmc-center-usecase-grid,
    .nmc-center-blueprint-grid,.tp-size-grid,.tp-unit-grid,.tp-need-grid,
    .nmc-premium-essentials-grid,.nmc-center-video-grid
  ) > *,
  body.public-body :where(.trasterospub-center-page,.nmc-portal-center-page) :where(
    .nmc-center-size-grid,.nmc-center-use-grid,.nmc-center-usecase-grid,
    .nmc-center-blueprint-grid,.tp-size-grid,.tp-unit-grid,.tp-need-grid,
    .nmc-premium-essentials-grid,.nmc-center-video-grid
  ) > * {
    flex: 0 0 min(84vw, 325px) !important;
    min-width: 0 !important;
    scroll-snap-align: start !important;
  }

  body.nmc-public :where(.trasterospub-center-page,.nmc-portal-center-page) :where(
    .nmc-center-clear-flow,.nmc-center-sizes-v1333,.nmc-center-usecases-v1333,
    .nmc-center-blueprint,.nmc-center-premium-essentials,.nmc-center-profile-v1333,
    .tp-center-intro,.tp-center-editable-section,.tp-location
  ),
  body.public-body :where(.trasterospub-center-page,.nmc-portal-center-page) :where(
    .nmc-center-clear-flow,.nmc-center-sizes-v1333,.nmc-center-usecases-v1333,
    .nmc-center-blueprint,.nmc-center-premium-essentials,.nmc-center-profile-v1333,
    .tp-center-intro,.tp-center-editable-section,.tp-location
  ) {
    padding-top: 34px !important;
    padding-bottom: 34px !important;
  }

  body.nmc-public .nmc-center-mobile-premium-cta,
  body.public-body .nmc-center-mobile-premium-cta {
    left: 8px !important;
    right: 8px !important;
    bottom: calc(8px + env(safe-area-inset-bottom)) !important;
    grid-template-columns: minmax(0,.76fr) minmax(128px,1fr) 48px !important;
    gap: 7px !important;
    padding: 7px !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.97) !important;
    box-shadow: 0 18px 55px rgba(17,19,24,.25) !important;
  }

  body.nmc-public .nmc-center-mobile-premium-cta a,
  body.public-body .nmc-center-mobile-premium-cta a {
    min-height: 48px !important;
    border-radius: 15px !important;
  }

  body.nmc-public iframe,
  body.public-body iframe,
  body.nmc-public .nmc-booking-frame,
  body.public-body .nmc-booking-frame {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 620px;
    border-radius: 20px !important;
  }

  /* Listados y mapa. */
  body.nmc-public .nmc-full-map-panel,
  body.public-body .nmc-full-map-panel {
    padding: 12px !important;
  }

  body.nmc-public .nmc-full-map-intro,
  body.public-body .nmc-full-map-intro {
    padding: 17px !important;
    border-radius: 22px !important;
  }

  body.nmc-public .nmc-full-map-intro h1,
  body.public-body .nmc-full-map-intro h1 {
    font-size: 2.1rem !important;
    line-height: .98 !important;
  }

  body.nmc-public .nmc-full-map-center-card,
  body.public-body .nmc-full-map-center-card {
    grid-template-columns: 88px minmax(0,1fr) !important;
    gap: 11px !important;
    padding: 11px !important;
    border-radius: 20px !important;
  }

  body.nmc-public .nmc-full-map-card-photo,
  body.public-body .nmc-full-map-card-photo {
    width: 88px !important;
    height: 112px !important;
    border-radius: 16px !important;
  }

  /* Corporativas: franquicias, proveedores, inmobiliarias, empleo. */
  body.nmc-public .nmc-corporate-hero,
  body.public-body .nmc-corporate-hero {
    grid-template-columns: 1fr !important;
    gap: 15px !important;
    width: calc(100% - 20px) !important;
    margin-top: 10px !important;
    padding: 22px 16px !important;
    border-radius: 25px !important;
  }

  body.nmc-public .nmc-corporate-copy h1,
  body.public-body .nmc-corporate-copy h1 {
    font-size: clamp(2.18rem, 10vw, 2.9rem) !important;
    line-height: .97 !important;
    letter-spacing: -.058em !important;
  }

  body.nmc-public .nmc-corporate-panel,
  body.public-body .nmc-corporate-panel {
    padding: 18px !important;
    border-radius: 21px !important;
  }

  body.nmc-public :where(.nmc-corporate-grid,.nmc-job-grid),
  body.public-body :where(.nmc-corporate-grid,.nmc-job-grid) {
    width: calc(100% + 14px) !important;
    display: flex !important;
    grid-template-columns: none !important;
    gap: 11px !important;
    padding: 3px 14px 12px 0 !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
  }

  body.nmc-public :where(.nmc-corporate-grid,.nmc-job-grid) > *,
  body.public-body :where(.nmc-corporate-grid,.nmc-job-grid) > * {
    flex: 0 0 min(84vw, 325px) !important;
    min-width: 0 !important;
    padding: 18px !important;
    border-radius: 21px !important;
    scroll-snap-align: start !important;
  }

  body.nmc-public .nmc-corporate-form,
  body.public-body .nmc-corporate-form {
    padding: 17px !important;
    border-radius: 22px !important;
  }

  /* Formularios: controles tactiles y jerarquia clara. */
  body.nmc-public :where(.quick-lead-form,.lead-form,.nmc-corporate-form-grid,.nmc-revenue-form-grid,.calculator-form),
  body.public-body :where(.quick-lead-form,.lead-form,.nmc-corporate-form-grid,.nmc-revenue-form-grid,.calculator-form) {
    grid-template-columns: 1fr !important;
    gap: 11px !important;
  }

  body.nmc-public :where(input,select,textarea),
  body.public-body :where(input,select,textarea) {
    width: 100% !important;
    min-height: 51px !important;
    padding: 12px 13px !important;
    border: 1px solid rgba(17,19,24,.12) !important;
    border-radius: 15px !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  body.nmc-public textarea,
  body.public-body textarea {
    min-height: 120px !important;
    resize: vertical;
  }

  body.nmc-public button[type="submit"],
  body.public-body button[type="submit"],
  body.nmc-public input[type="submit"],
  body.public-body input[type="submit"] {
    width: 100% !important;
    min-height: 52px !important;
    border-radius: 16px !important;
    font-size: .96rem !important;
  }

  body.nmc-public label,
  body.public-body label {
    line-height: 1.35;
  }

  /* Tablas sin romper el ancho. */
  body.nmc-public :where(.table-responsive,.table-wrap,.nmc-table-wrap),
  body.public-body :where(.table-responsive,.table-wrap,.nmc-table-wrap) {
    max-width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  /* Carruseles tactiles genericos marcados por JS. */
  .nmc-mobile-snap {
    scroll-snap-type: x mandatory !important;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .nmc-mobile-snap > * {
    scroll-snap-align: start;
  }

  .nmc-snap-meter {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 18px;
    margin-top: 2px;
  }

  .nmc-snap-meter button {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #c7cbd1;
    transition: width .18s ease, background .18s ease;
  }

  .nmc-snap-meter button.is-active {
    width: 22px;
    background: var(--nmc-mf-red);
  }

  /* FAQ y details. */
  body.nmc-public details,
  body.public-body details {
    border-color: rgba(17,19,24,.09) !important;
  }

  body.nmc-public details > summary,
  body.public-body details > summary {
    min-height: 54px;
    -webkit-tap-highlight-color: transparent;
  }

  /* Footer corto y plegable. */
  body.nmc-public .footer,
  body.public-body .footer {
    padding: 40px 0 calc(26px + env(safe-area-inset-bottom)) !important;
  }

  body.nmc-public .footer-grid,
  body.public-body .footer-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 11px !important;
  }

  body.nmc-public .footer-grid > div:first-child,
  body.public-body .footer-grid > div:first-child {
    padding: 2px 0 18px;
  }

  body.nmc-public .footer-grid > div:not(:first-child),
  body.public-body .footer-grid > div:not(:first-child) {
    padding: 0 !important;
    border-top: 1px solid rgba(255,255,255,.12);
  }

  body.nmc-public .footer-grid > div:not(:first-child) h4,
  body.public-body .footer-grid > div:not(:first-child) h4 {
    margin: 0 !important;
  }

  .nmc-mobile-footer-toggle {
    width: 100%;
    min-height: 53px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0;
    border: 0;
    color: #fff;
    background: transparent;
    font: inherit;
    font-weight: 850;
    text-align: left;
  }

  .nmc-mobile-footer-toggle::after {
    content: "+";
    font-size: 1.35rem;
    font-weight: 400;
  }

  .nmc-footer-group.is-open .nmc-mobile-footer-toggle::after { content: "−"; }

  .nmc-footer-collapsible {
    display: none;
    padding-bottom: 12px;
  }

  .nmc-footer-group.is-open .nmc-footer-collapsible {
    display: block;
  }

  body.nmc-public .footer-grid p,
  body.public-body .footer-grid p {
    margin: 0 !important;
  }

  body.nmc-public .footer-grid p a,
  body.public-body .footer-grid p a {
    min-height: 42px;
    display: flex;
    align-items: center;
    padding: 5px 0;
  }

  body.nmc-public .footer-social-links,
  body.public-body .footer-social-links {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 9px !important;
  }

  body.nmc-public .footer-social-link,
  body.public-body .footer-social-link {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    justify-content: center !important;
  }

  /* Cookies como hoja inferior compacta. */
  body.nmc-public .nmc-cookie-consent,
  body.public-body .nmc-cookie-consent {
    left: 8px !important;
    right: 8px !important;
    bottom: calc(8px + env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-width: none !important;
    padding: 16px !important;
    border-radius: 23px !important;
    box-shadow: 0 24px 80px rgba(17,19,24,.28) !important;
  }

  body.nmc-public .nmc-cookie-copy p,
  body.public-body .nmc-cookie-copy p {
    font-size: .82rem !important;
    line-height: 1.42 !important;
  }

  body.nmc-public .nmc-cookie-actions,
  body.public-body .nmc-cookie-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  body.nmc-public .nmc-cookie-btn,
  body.public-body .nmc-cookie-btn {
    min-height: 44px !important;
    border-radius: 13px !important;
    font-size: .78rem !important;
  }

  body.nmc-public .nmc-cookie-link,
  body.public-body .nmc-cookie-link {
    grid-column: 1 / -1;
    min-height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* Quita el bosque de botones flotantes y usa un unico dock coherente. */
  body.nmc-public :where(.sticky-wa,.nmc-floating-cta,.nmc-callback-fab,.mobile-cta-bar),
  body.public-body :where(.sticky-wa,.nmc-floating-cta,.nmc-callback-fab,.mobile-cta-bar) {
    display: none !important;
  }

  .nmc-mobile-dock {
    position: fixed;
    z-index: 700;
    left: 8px;
    right: 8px;
    bottom: calc(8px + env(safe-area-inset-bottom));
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    padding: 7px;
    border: 1px solid rgba(17,19,24,.10);
    border-radius: 20px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 18px 52px rgba(17,19,24,.24);
    backdrop-filter: blur(18px) saturate(1.1);
    -webkit-backdrop-filter: blur(18px) saturate(1.1);
    opacity: 0;
    transform: translateY(calc(100% + 28px));
    pointer-events: none;
    transition: opacity .2s ease, transform .24s ease;
  }

  .nmc-mobile-dock.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  body.nmc-menu-open .nmc-mobile-dock,
  body:has(.nmc-cookie-consent:not(.is-hidden)) .nmc-mobile-dock {
    opacity: 0;
    pointer-events: none;
  }

  .nmc-mobile-dock a {
    min-height: 49px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 12px;
    border-radius: 15px;
    color: var(--nmc-mf-ink);
    background: #f3f4f6;
    font-size: .86rem;
    font-weight: 900;
    text-decoration: none;
  }

  .nmc-mobile-dock a:first-child {
    color: #fff;
    background: var(--nmc-mf-red);
    box-shadow: 0 10px 22px rgba(227,6,19,.22);
  }

  .nmc-mobile-dock svg {
    width: 19px;
    height: 19px;
  }
}

/* Telefonos muy estrechos. */
@media (max-width: 390px) {
  body.nmc-public,
  body.public-body {
    --nmc-mobile-gutter: 11px;
  }

  body.page-home .nmc-pro-hero h1,
  body.nmc-public.page-home .nmc-pro-hero h1 {
    font-size: 2.38rem !important;
  }

  body.page-home .nmc-pro-actions,
  body.nmc-public.page-home .nmc-pro-actions {
    grid-template-columns: 1fr !important;
  }

  body.nmc-public .nmc-center-mobile-premium-cta,
  body.public-body .nmc-center-mobile-premium-cta {
    grid-template-columns: minmax(0,.72fr) minmax(118px,1fr) 46px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nmc-mobile-dock,
  .nmc-snap-meter button,
  body.nmc-public *,
  body.public-body * {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Ajustes de integracion del dock y acordeones móviles. */
@media (max-width: 767.98px) {
  body.nmc-has-mobile-dock {
    padding-bottom: calc(88px + env(safe-area-inset-bottom)) !important;
  }

  .nmc-mobile-dock a.nmc-mobile-dock__secondary {
    color: var(--nmc-mf-ink) !important;
    background: #f3f4f6 !important;
    box-shadow: none !important;
  }

  .nmc-mobile-dock a.nmc-mobile-dock__primary {
    color: #fff !important;
    background: var(--nmc-mf-red) !important;
    box-shadow: 0 10px 22px rgba(227,6,19,.22) !important;
  }

  .nmc-mobile-footer-content[hidden] {
    display: none !important;
  }
}
