@keyframes solufade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* Capa móvil compartida — BlackPrint (Productos, Soluciones, Modelos, Empresa) */
@media (max-width: 860px){
  html,body{overflow-x:hidden}
  [data-mroot]{min-width:0 !important;overflow-x:clip}
  [data-mroot] *{overflow-wrap:break-word}
  [data-m="dsk"]{display:none !important}
  [data-m="mob"],[data-m="mcta"],[data-m="mplat"],[data-m="mband"],[data-m="msol"]{display:flex !important}
  [data-mroot] [data-m="mcolumn"]{flex-direction:column !important;align-items:stretch !important;gap:16px !important}
  [data-mroot] [data-m="mcolumn"] > *{max-width:100% !important}
  [data-mroot] [data-m="mcolumn"] a{justify-content:center}
  [data-mroot] [data-m="mshot"]{height:320px !important}
  /* --- Modelos: hero y catálogo --- */
  [data-mroot] [data-m="mattr"]{right:16px !important;bottom:12px !important;font-size:10px !important}
  [data-mroot] [style*="left: 64px"][style*="top: 104px"]{gap:15px !important}
  [data-mroot] [style*="border-radius: 26px"][style*="display: inline-flex"] > span{height:34px !important;padding:0 13px !important;font-size:12.5px !important}
  [data-mroot] [data-m="mpills"]{display:grid !important;grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;gap:8px;border-top:none !important;margin:0 !important;padding:0 !important;overflow:visible !important}
  [data-mroot] [data-m="mpills"] > span{border:1px solid rgba(35,31,32,0.14) !important;border-radius:12px !important;min-height:50px;padding:9px 11px !important;white-space:normal !important;gap:9px !important}
  [data-mroot] [data-screen-label="01 Hero · Gemelo"] > div:first-child{background-image:url('assets/shots/satelite-qro.webp') !important;background-size:cover;background-position:center;filter:brightness(0.4) saturate(0.75) !important}
  [data-mroot] [data-screen-label="01 Hero · Gemelo"] > canvas{display:none !important}
  [data-mroot] h3{font-size:20px !important;line-height:1.18 !important}
  /* --- Empresa: vacantes y cierre --- */
  [data-mroot] #vacantes a > span:nth-child(2),[data-mroot] #vacantes a > span:nth-child(3),[data-mroot] #vacantes a > span:nth-child(4){display:none !important}
  [data-mroot] #vacantes a > span:nth-child(5){justify-self:start !important;height:32px !important;padding:0 14px !important;font-size:12px !important}
  [data-mroot] [style*="gap: 28px"][style*="justify-content: space-between"]{flex-direction:column;align-items:flex-start !important;gap:12px !important}
  [data-mroot] [data-screen-label="07 CTA"] a[href*="#demo"]{width:100% !important;justify-content:center !important;box-sizing:border-box}
  [data-mroot] [data-m="mshot"] [style*="left: 36px"]{left:14px !important;right:14px !important;bottom:14px !important;padding:15px 16px !important}
  [data-mroot] [data-m="mshot"] [style*="41px"]{font-size:26px !important}
  [data-mroot] [data-m="mshot"] p{font-size:13px !important;line-height:1.5 !important}
  [data-mroot] [data-m="mtrack"]{flex-wrap:nowrap !important}
  [data-mroot] [style*="gap: 26px"]{gap:16px !important}
  [data-mroot] [style*="min-height: 520px"]{min-height:280px !important}
  [data-mroot] [style*=" height: 430px"]{height:230px !important}
  [data-mroot] [style*="linear-gradient(90deg, rgba(11, 10, 11, 0.95)"]{background:linear-gradient(180deg,rgba(11,10,11,0.97) 0%,rgba(11,10,11,0.93) 46%,rgba(11,10,11,0.6) 74%,rgba(11,10,11,0.96) 100%) !important}

  /* --- nav compartido --- */
  [data-bpnav="1"]{height:58px !important;padding:0 14px 0 20px !important}
  [data-bpnav="1"] img{height:16px !important}

  /* --- contenedores --- */
  [data-mroot] [style*="max-width: 1440px"],[data-mroot] [style*="max-width: 1280px"],[data-mroot] [style*="max-width: 1180px"],[data-mroot] [style*="max-width: 1000px"],[data-mroot] [style*="max-width: 980px"],[data-mroot] [style*="max-width: 820px"],[data-mroot] [style*="max-width: 780px"],[data-mroot] [style*="max-width: 760px"],[data-mroot] [style*="max-width: 720px"],[data-mroot] [style*="max-width: 700px"],[data-mroot] [style*="max-width: 680px"],[data-mroot] [style*="max-width: 660px"],[data-mroot] [style*="max-width: 640px"],[data-mroot] [style*="max-width: 620px"],[data-mroot] [style*="max-width: 600px"],[data-mroot] [style*="max-width: 560px"],[data-mroot] [style*="max-width: 540px"],[data-mroot] [style*="max-width: 520px"],[data-mroot] [style*="max-width: 498px"],[data-mroot] [style*="max-width: 480px"],[data-mroot] [style*="max-width: 472px"],[data-mroot] [style*="max-width: 452px"],[data-mroot] [style*="max-width: 420px"],[data-mroot] [style*="max-width: 400px"],[data-mroot] [style*="max-width: 390px"],[data-mroot] [style*="max-width: 380px"],[data-mroot] [style*="max-width: 366px"]{max-width:100% !important}
  [data-mroot] [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr) !important}
  [data-mroot] [style*="grid-template-columns"] > *{min-width:0 !important}
  [data-mroot] [data-m="mgrid2"]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important}
  [data-mroot] [style*="width: 53%"]{width:100% !important}
  [data-mroot] [style*="width: 600px"],[data-mroot] [style*="width: 660px"]{width:100% !important}

  /* --- paddings de sección --- */
  [data-mroot] [style*="padding: 69px 48px"]{padding:40px 20px !important}
  [data-mroot] [style*="padding: 75px 48px"]{padding:40px 20px !important}
  [data-mroot] [style*="padding: 75px 48px 0px"]{padding:38px 20px 0 !important}
  [data-mroot] [style*="padding: 14px 48px 0px"]{padding:12px 20px 0 !important}
  [data-mroot] [style*="padding: 184px 48px 75px"]{padding:150px 20px 40px !important}
  [data-mroot] [style*="padding: 40px 48px 69px"]{padding:24px 20px 40px !important}
  [data-mroot] [style*="padding: 69px 48px 81px"]{padding:40px 20px 46px !important}
  [data-mroot] [style*="padding: 59px 48px"]{padding:40px 20px !important}
  [data-mroot] [style*="padding: 56px 48px"]{padding:40px 20px !important}
  [data-mroot] [style*="padding: 53px 48px"]{padding:38px 20px !important}
  [data-mroot] [style*="padding: 50px 48px"]{padding:38px 20px !important}
  [data-mroot] [style*="padding: 22px 48px 24px"]{padding:18px 20px 20px !important}
  [data-mroot] [style*="padding: 0px 48px"]{padding-left:20px !important;padding-right:20px !important}
  [data-mroot] [style*="padding: 50px 40px 44px 48px"]{padding:34px 20px 26px !important}
  [data-mroot] [style*="padding: 44px 48px 44px 0px"]{padding:0 20px 26px !important}
  [data-mroot] [style*="padding: 94px 56px 100px"]{padding:44px 20px !important}
  [data-mroot] [style*="padding: 84px 56px 88px"]{padding:42px 20px !important}
  [data-mroot] [style*="padding: 100px 56px"]{padding:44px 20px !important}
  [data-mroot] [style*="padding: 40px 56px"]{padding:26px 20px !important}
  [data-mroot] [style*="padding: 44px"][style*="border-radius: 16px"]{padding:22px 18px !important}
  [data-mroot] [style*="padding: 32px 30px"],[data-mroot] [style*="padding: 34px 30px"],[data-mroot] [style*="padding: 36px 36px 32px"],[data-mroot] [style*="padding: 40px 38px"],[data-mroot] [style*="padding: 26px 28px"],[data-mroot] [style*="padding: 28px 34px"],[data-mroot] [style*="padding: 26px 30px"],[data-mroot] [style*="padding: 22px 26px"],[data-mroot] [style*="padding: 24px 22px"]{padding:18px 16px !important}

  /* --- gaps grandes --- */
  [data-mroot] [style*="gap: 56px"],[data-mroot] [style*="gap: 50px"],[data-mroot] [style*="gap: 48px"],[data-mroot] [style*="gap: 44px"],[data-mroot] [style*="gap: 40px"],[data-mroot] [style*="gap: 38px"],[data-mroot] [style*="gap: 34px"],[data-mroot] [style*="gap: 30px"]{gap:18px !important}

  /* --- filas título + lede --- */
  [data-mroot] [style*="align-items: flex-end"][style*="justify-content: space-between"]{flex-direction:column;align-items:flex-start !important;gap:12px !important}
  [data-mroot] [style*="align-items: stretch"][style*="display: flex"]{flex-wrap:wrap}


  /* --- Modelos: hero con mapa --- */
  [data-mroot] [style*=" height: 800px"]{height:560px !important}
  [data-mroot] [style*="left: 64px"][style*="top: 104px"]{left:20px !important;right:20px !important;width:auto !important;top:86px !important}
  [data-mroot] [style*="display: inline-flex"][style*="border-radius: 26px"]{flex-wrap:wrap;max-width:100%}

  /* --- Empresa: hero --- */
  [data-mroot] [style*=" height: 820px"]{height:700px !important}
  [data-mroot] [style*="left: 72px"][style*="top: 132px"]{left:20px !important;right:20px !important;width:auto !important;top:92px !important}
  [data-mroot] [style*="right: 52px"][style*="top: 132px"]{display:none !important}
  [data-mroot] [style*="left: 72px"][style*="bottom: 52px"]{left:20px !important;right:20px !important;bottom:30px !important;grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;gap:12px !important}

  /* --- Empresa: diagrama radial del modelo --- */
  [data-mroot] [style*=" height: 600px"]:not([style*="padding"]):not([style*="display: flex"]){height:284px !important;width:780px !important;transform:scale(0.45);transform-origin:top left}

  /* --- filas de botones --- */
  [data-mroot] [style*="display: flex"][style*="flex: 0 0 auto"]{flex-wrap:wrap;flex:0 1 auto !important;max-width:100%}

  /* --- tipografía --- */
  [data-mroot] h1{font-size:30px !important;line-height:1.08 !important}
  [data-mroot] h2{font-size:25px !important;line-height:1.16 !important}
  [data-mroot] h3{font-size:17px !important}
  [data-mroot] p{font-size:14.5px !important;line-height:1.6 !important}
}
@media (min-width: 861px){ [data-m="mob"],[data-m="mdrawer"],[data-m="mcta"],[data-m="mplat"],[data-m="mband"],[data-m="msol"]{display:none !important} }

/* ---------- Espacio para la barra de acción fija ----------
   La barra de "¿Cuál es tu pregunta de dónde? · Agenda" mide 67px y va
   fija abajo. Sin colchón, al llegar al final de la página tapa de forma
   permanente las últimas líneas del pie — medido: "Aviso de privacidad"
   y las coordenadas quedaban inalcanzables, no hay scroll que los saque.
   72px = la barra más un respiro. */
@media (max-width: 860px) {
  /* El colchón va en el PIE, no en el body. Probado con body: la regla
     se aplica —72px computados— pero no alarga el área de scroll, porque
     el contenedor que hace scroll no es el body en esta página. Medido:
     con la página hasta el fondo, "Aviso de privacidad" seguía 39px por
     debajo del borde superior de la barra. En el pie, que es un bloque
     normal en el flujo, sí funciona. */
  [data-screen-label="Footer"] { padding-bottom: 84px !important; }
}

@media (max-width: 860px) {
  /* Preguntas frecuentes: el "+" se queda a la derecha aunque la
     pregunta ocupe dos renglones. Sin esto, el flex-wrap la manda a una
     línea propia y deja un hueco de 45px en medio de la lista. */
  [data-screen-label="FAQ"] [style*="justify-content: space-between"] {
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 14px !important;
  }
  [data-screen-label="FAQ"] [style*="justify-content: space-between"] > *:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  [data-screen-label="FAQ"] [style*="justify-content: space-between"] > *:last-child {
    flex: 0 0 auto !important;
  }
}

@media (max-width: 860px) {
  /* ---------- La píldora del copiloto ----------
     "Con copiloto AI — pregúntale al mapa en lenguaje natural →" mide
     30px de alto fijos y no envuelve. A 390px ese texto no cabe en un
     renglón: la píldora se estira de borde a borde, el texto queda
     pegado a los bordes y la flecha se sale. Se ve apretado y roto.

     En teléfono se le deja envolver en dos renglones, con alto
     automático y aire arriba y abajo. Sigue siendo la misma píldora,
     solo que cabiendo. */
  [data-mroot] a[href="#ai"] {
    height: auto !important;
    min-height: 30px !important;
    padding: 9px 14px !important;
    white-space: normal !important;
    line-height: 1.45 !important;
    font-size: 12px !important;
    align-items: flex-start !important;
    text-wrap: pretty;
  }
}

@media (max-width: 860px) {
  /* ---------- El pie, en dos columnas ----------
     En teléfono la rejilla del pie (1.4fr 1fr 1fr 1fr) colapsa a una
     sola columna y deja los dieciséis enlaces en una tira de 789px —
     casi una pantalla entera de puro menú, que es lo que se sentía
     apretado y monótono.

     Con dos columnas los tres grupos caben en la mitad del alto y se
     leen como grupos, no como una lista interminable. El bloque de
     marca ocupa el ancho completo porque su frase no cabe en media
     columna. */
  [data-screen-label="Footer"] [style*="1.4fr 1fr 1fr 1fr"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 30px 20px !important;
  }

  [data-screen-label="Footer"] [style*="1.4fr 1fr 1fr 1fr"] > *:first-child {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 860px) {
  /* ---------- Empresa: dos recortes medidos ----------
     Decisión de Mauricio tras ver los números. La página iba en 10
     pantallas de teléfono y el peso estaba concentrado, no repartido.

     1. VACANTES — 1,325px para listar puestos. Quien busca trabajo llega
        por LinkedIn; quien entra desde el celular a conocer la empresa
        no necesita pantalla y media de convocatorias. Sigue completa en
        escritorio, que es donde alguien se sienta a leerlas. */
  [data-screen-label="06 Vacantes"] { display: none !important; }

  /*  2. "DE NACIONAL A PREDIO" — 2,590px, un tercio de la página. Se
        queda el encabezado y la escala de zoom, que son el argumento; se
        van los dos visuales, que son decoración:

          · el recuadro de 566px con la rejilla de puntos y el rótulo
            "LA PREGUNTA QUE SE RESUELVE AQUÍ", pensado para verse ancho
          · la rejilla decorativa de 16 columnas dentro de la tarjeta de
            cobertura: 795px sin una palabra, solo celdas vacías

        Con eso la sección baja ~1,360px sin perder una sola frase. */
  [data-screen-label="03 De nacional a predio"] [style*="height: 566px"] {
    display: none !important;
  }

  [data-screen-label="03 De nacional a predio"] [style*="repeat(16, 1fr)"] {
    display: none !important;
  }
}
