/* ==========================================================================
   NeuroEs · marco de las páginas interiores (25-oct-2026)
   --------------------------------------------------------------------------
   Una sola cabecera (logo, Servicios, Equipo, «Agendar cita» y menú en el
   celular) y un solo pie CLARO para las ~50 interiores, con el mismo diseño
   que la portada (ne-portada.css). Reemplaza a /ne-logo.css en esas páginas
   (trae su regla del logo), así que no suma hojas.
   También: la píldora de WhatsApp igual en todas (aparece al pasar los botones
   del héroe), el interruptor del formulario «Solicitar cita»
   (<body data-formulario="no|si">) y la caja donde va el formulario.
   Tokens propios (--nm-*): /agendar y /mi-cita no cargan ne-2026.css.
   Scripts: /ne-marco.js (menú, píldora y carga de solicitud.js o llamar.js).
   ========================================================================== */
:root {
  --nm-tinta: #0E2A30; --nm-tinta-2: #4E5F66; --nm-linea: #DCE8EA;
  --nm-marca: #0A7A7E; --nm-marca-alta: #08656A; --nm-marca-suave: #E6F4F4;
  --nm-wa: #157F41; --nm-pie: #EEF4F4;
  --nm-titulos: 'Montserrat', 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nm-cuerpo: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nm-gutter: clamp(16px, 4vw, 40px);
  --nm-cab: 68px;
}
@media (max-width: 920px) { :root { --nm-cab: 60px; } }
html { scroll-padding-top: calc(var(--nm-cab) + 12px); }

/* Logo: un solo tamaño en todo el sitio (40 px; 34 px en celular). Antes en /ne-logo.css. */
img.ne-logo { display: inline-block; vertical-align: middle; width: auto; height: 40px; max-width: 100%; }
@media (max-width: 600px) { img.ne-logo { height: 34px; } }

/* ---------- cabecera ---------- */
.ne-cab {
  position: sticky; top: 0; z-index: 60; margin: 0;
  background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--nm-linea); font-family: var(--nm-cuerpo);
}
.ne-cab-in {
  position: relative; box-sizing: border-box; display: flex; align-items: center; gap: 18px;
  min-height: var(--nm-cab); max-width: 1160px; margin: 0 auto; padding: 0 var(--nm-gutter);
}
.ne-cab a { text-decoration: none !important; }
.ne-cab-logo { flex: none; display: inline-flex; line-height: 0; }
.ne-cab-nav { display: flex; align-items: center; gap: 4px; margin: 0 0 0 auto; padding: 0; }
.ne-cab-nav a { padding: 8px 12px; border-radius: 10px; font: 600 15px/1.3 var(--nm-cuerpo); color: var(--nm-tinta) !important; background: none; }
.ne-cab-nav a:hover { color: var(--nm-marca-alta) !important; background: var(--nm-marca-suave); }
.ne-cab-nav .ne-cab-movil { display: none; }
.ne-cab-cta {
  flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box;
  min-height: 44px; padding: 10px 18px; border-radius: 999px; background: var(--nm-marca); color: #fff !important;
  font: 700 15px/1.2 var(--nm-cuerpo); white-space: nowrap; box-shadow: 0 12px 24px -14px rgba(10, 122, 126, .8);
}
.ne-cab-cta:hover { background: var(--nm-marca-alta); color: #fff !important; }
.ne-cab-cta svg { width: 18px; height: 18px; flex: none; stroke: #fff; fill: none; }
.ne-cab-menu {
  display: none; flex: none; width: 44px; height: 44px; margin: 0 -6px 0 0; padding: 0; border: 0; border-radius: 12px;
  background: none; color: var(--nm-tinta); cursor: pointer; align-items: center; justify-content: center;
}
.ne-cab-menu svg { width: 26px; height: 26px; }
.ne-cab-menu .ne-x { display: none; }
.ne-cab.ne-abierto .ne-cab-menu .ne-x { display: block; }
.ne-cab.ne-abierto .ne-cab-menu .ne-tres { display: none; }
.ne-cab-menu:focus-visible, .ne-cab a:focus-visible { outline: 2px solid var(--nm-marca); outline-offset: 2px; }
@media (max-width: 920px) {
  .ne-cab-in { gap: 10px; }
  .ne-cab-menu { display: inline-flex; }
  .ne-cab-cta { margin-left: auto; min-height: 40px; padding: 8px 14px; font-size: 14px; }
  .ne-cab-cta svg { width: 17px; height: 17px; }
  .ne-cab-nav {
    position: absolute; top: 100%; left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; gap: 0;
    margin: 0; padding: 6px 0 12px; background: #fff; border-bottom: 1px solid var(--nm-linea);
    box-shadow: 0 18px 30px -18px rgba(11, 42, 49, .35); max-height: calc(100vh - var(--nm-cab)); overflow: auto;
  }
  .ne-cab.ne-abierto .ne-cab-nav { display: flex; }
  .ne-cab-nav a { padding: 13px var(--nm-gutter); border-radius: 0; font-size: 16px; }
  .ne-cab-nav a + a { border-top: 1px solid #EEF3F4; }
  .ne-cab-nav .ne-cab-movil { display: block; }
  .ne-cab-nav .ne-cab-wa { color: var(--nm-wa) !important; }
}
@media (max-width: 360px) { .ne-cab-cta svg { display: none; } }

/* ---------- pie claro (el mismo de la portada) ---------- */
footer.ne-pie {
  display: block; margin: 0 !important; box-sizing: border-box;
  background: var(--nm-pie) !important; background-image: none !important; border-top: 1px solid var(--nm-linea);
  padding: clamp(30px, 5vw, 56px) 0 26px !important; font: 400 14.5px/1.6 var(--nm-cuerpo); color: var(--nm-tinta-2) !important; text-align: left !important;
}
footer.ne-pie .ne-pie-in { box-sizing: border-box; max-width: 1160px; margin: 0 auto; padding: 0 var(--nm-gutter); }
footer.ne-pie p, footer.ne-pie li, footer.ne-pie span { color: var(--nm-tinta-2) !important; font-size: 14.5px; line-height: 1.6; margin: 0; max-width: none !important; }
footer.ne-pie a[href] {
  color: var(--nm-marca-alta) !important; text-decoration: none !important; font-weight: 600 !important;
  background: none !important; padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; display: inline !important; margin: 0 !important;
}
footer.ne-pie a[href]:hover { text-decoration: underline !important; }
footer.ne-pie a[href^="tel:"], footer.ne-pie a[href*="wa.me"] { white-space: nowrap; }
footer.ne-pie .ne-pie-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); gap: 26px 40px; }
footer.ne-pie .ne-pie-marca a.ne-pie-logo { display: inline-flex !important; line-height: 0; }
footer.ne-pie .ne-pie-marca p { margin-top: 10px; }
footer.ne-pie .ne-pie-tit { font: 700 12px/1.3 var(--nm-titulos) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--nm-tinta) !important; margin: 4px 0 12px !important; }
footer.ne-pie ul { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 7px; }
footer.ne-pie li { margin: 0 !important; padding: 0 !important; }
footer.ne-pie li::before { content: none; }
footer.ne-pie .ne-pie-rel { margin-top: 24px !important; padding-top: 16px; border-top: 1px solid var(--nm-linea); }
footer.ne-pie .ne-pie-legal { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--nm-linea); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 20px; }
footer.ne-pie .ne-pie-legal span { font-size: 13px !important; }
@media (max-width: 860px) { footer.ne-pie .ne-pie-grid { grid-template-columns: 1fr 1fr; } footer.ne-pie .ne-pie-marca { grid-column: 1 / -1; } }
@media (max-width: 600px) {
  footer.ne-pie { padding-bottom: 84px !important; }
  footer.ne-pie .ne-pie-grid { grid-template-columns: 1fr; gap: 20px; }
  footer.ne-pie ul { display: block; line-height: 1.9; }
  footer.ne-pie li { display: inline; }
  footer.ne-pie li + li::before { content: "·"; margin: 0 7px; color: var(--nm-tinta-2); }
  footer.ne-pie .ne-pie-legal { flex-direction: column; }
}

/* ---------- píldora flotante de WhatsApp: la misma en todas ----------
   Antes medía 162×60 a 76 px del borde en las páginas viejas y 138×50 a 16 px en
   las nuevas, y tapaba texto. Solo aparece cuando los botones del héroe ya
   salieron de la pantalla (ne-marco.js pone body.ne-flotantes); los widgets la
   esconden mientras el formulario o la barra de pago están a la vista. */
a.wa-float {
  position: fixed !important; right: 20px !important; bottom: 20px !important; left: auto !important; top: auto !important; z-index: 55 !important;
  display: inline-flex !important; align-items: center; justify-content: center; gap: 9px !important; box-sizing: border-box;
  height: 52px !important; width: auto !important; padding: 0 18px 0 20px !important; border-radius: 999px !important;
  background: var(--nm-wa) !important; color: #fff !important; font: 700 15px/1 var(--nm-cuerpo) !important; text-decoration: none !important;
  box-shadow: 0 16px 32px -14px rgba(21, 127, 65, .75) !important; transform: none !important;
}
a.wa-float:hover { background: #106B36 !important; }
a.wa-float span { color: #fff !important; }
a.wa-float svg { width: 24px !important; height: 24px !important; fill: #fff !important; flex: none; }
@media (max-width: 600px) {
  a.wa-float { right: 14px !important; bottom: 14px !important; height: 48px !important; padding: 0 14px 0 16px !important; font-size: 14px !important; }
  a.wa-float svg { width: 22px !important; height: 22px !important; }
}
body:not(.ne-flotantes) a.wa-float { display: none !important; }

/* ---------- interruptor del formulario «Solicitar cita» ---------- */
body[data-formulario="no"] .ne-sol, body[data-formulario="no"] .ne-si-form { display: none !important; }
body:not([data-formulario="no"]) .ne-no-form { display: none !important; }

/* caja del formulario (el widget pone su propia hoja /solicitud/solicitud.css) */
.ne-sol {
  box-sizing: border-box; margin: 0; padding: clamp(26px, 4vw, 44px) var(--nm-gutter);
  background: #fff; border-top: 1px solid var(--nm-linea); border-bottom: 1px solid var(--nm-linea); scroll-margin-top: calc(var(--nm-cab) + 8px);
}
.ne-sol-in { max-width: 600px; margin: 0 auto; }
.ne-sol-in > .rv { margin: 0 0 14px; }
#solicitar, #agendar, #cita, #ninos, #adultos { scroll-margin-top: calc(var(--nm-cab) + 10px); }

/* enlace «Prefiero que me escriban» junto a los botones */
a.ne-si-form, .ne-si-form a { font-weight: 700; color: var(--nm-marca-alta) !important; text-decoration: underline; text-underline-offset: 3px; }

/* insignia 5,0 de Google junto al primer botón */
.ne-insignia { margin: 12px 0 0 !important; max-width: none !important; }
.ne-insignia:empty { display: none; }
@media (max-width: 600px) { .ne-insignia .rv-insignia { font-size: .8rem; gap: 3px 6px; padding: 6px 11px; } }
@media (max-width: 420px) { .ne-insignia .rv-insignia { font-size: .74rem; gap: 2px 5px; padding: 6px 10px; } .ne-insignia .rv-insignia .rv-nota { font-size: .9rem; } }
body > header .ne-insignia { text-align: center; }
