/* =========================================================
   MOBILE POLISH - WirelessBridge
   Diseño móvil profesional basado en composición visual
   ========================================================= */

/* =========================================================
   1. BASE GLOBAL MÓVIL
   ========================================================= */

@media (max-width: 767px) {

  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  body {
    font-size: 16px;
  }

  * {
    box-sizing: border-box;
  }

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

  picture {
    display: block;
  }

  picture img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* Secciones: altura natural, no forzar 100vh */
  .full-screen-section {
    min-height: auto !important;
    height: auto !important;
    padding: 56px 18px !important;
    overflow: hidden;
  }
}


/* =========================================================
   2. HEADER MÓVIL COMPACTO Y PROFESIONAL
   ========================================================= */

@media (max-width: 767px) {

  /* Panel del header: compacto y proporcionado */
  .rd-navbar-panel {
    min-height: 76px;
    height: 76px;
    padding: 0 18px !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  /* Logo WB: proporcionado, no gigante y CENTRADO VERTICALMENTE.
     Se neutraliza el padding-top:6px de indez.css y el padding inline
     que inyecta el script fitLogo() (causaban que el logo quedara
     pegado arriba y a la derecha). */
  .rd-navbar-brand {
    flex: 0 1 auto;
    display: flex !important;
    align-items: center !important;
    align-self: center !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .rd-navbar-brand img {
    width: clamp(150px, 42vw, 188px) !important;
    max-width: 188px !important;
    max-height: 46px !important;
    height: auto !important;
    object-fit: contain;
    display: block;
  }

  /* Hamburguesa: tocable pero no gigante */
  .rd-navbar-toggle {
    width: 42px !important;
    height: 42px !important;
    flex: 0 0 42px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}


/* =========================================================
   3. MENÚ MÓVIL - PANEL DESPLEGABLE DESDE EL HEADER (top-down)
   ========================================================= */

@media (max-width: 991px) {

  /* Asegurar que el body no se mueva cuando el menú se abre */
  html,
  body {
    position: relative;
    overflow-x: clip;
  }

  /* Header FIJO arriba (sticky al hacer scroll) y POR ENCIMA del menú, con
     fondo sólido, para que el panel se despliegue desde debajo de la barra.
     (Antes se forzaba position:relative, que rompía el comportamiento fijo
     del framework y hacía que la barra se fuera al hacer scroll.) */
  .rd-navbar-fixed .rd-navbar-panel {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    background: #ffffff !important;
  }

  /* Menú: panel desplegable de ARRIBA hacia abajo, ancho completo,
     que baja desde la barra del header (no lateral). */
  .rd-navbar-fixed .rd-navbar-nav-wrap {
    position: fixed !important;
    top: 76px !important;            /* justo debajo del header */
    bottom: auto !important;         /* el framework ponía bottom:0 (forzaba alto completo) */
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: calc(100dvh - 76px) !important;
    padding: 6px 0 14px !important;
    transform: translateY(-100%) !important;   /* oculto detrás del header */
    transition: transform 0.34s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 9990 !important;                   /* debajo del header */
    background: #ffffff !important;
    overflow-y: auto;
    overflow-x: hidden;
    box-shadow: 0 14px 26px rgba(0, 0, 0, 0.20);
    border-radius: 0 0 14px 14px !important;     /* esquinas inferiores redondeadas */
  }

  /* Estado activo: el panel baja y queda visible */
  .rd-navbar-fixed .rd-navbar-nav-wrap.active {
    transform: translateY(0) !important;
  }

  /* Altura AJUSTADA AL CONTENIDO (dropdown compacto). RD Navbar fuerza el
     panel a pantalla completa con alta especificidad; se sobrescribe con
     mayor especificidad (prefijo html) para que el alto = altura de los ítems. */
  html .rd-navbar.rd-navbar-fixed .rd-navbar-nav-wrap,
  html .rd-navbar.rd-navbar-fixed .rd-navbar-nav-wrap.active {
    height: auto !important;
    max-height: calc(100dvh - 76px) !important;
  }

  /* Scrim: atenúa la página por DEBAJO del panel sin grisar el panel.
     Va en un ANCESTRO (:has) para quedar por debajo del panel (9990) y por
     encima de la página. No es hijo del panel (un hijo pintaría sobre su fondo). */
  .rd-navbar:has(.rd-navbar-nav-wrap.active)::after {
    content: "";
    position: fixed;
    top: 76px;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(8, 12, 30, 0.45);
    z-index: 9985;
    pointer-events: none;
  }

  /* Enlaces del menú: legibles y tocables */
  .rd-navbar-fixed .rd-nav-link {
    font-size: 16px !important;
    padding: 14px 20px !important;
    min-height: 48px;
    display: flex;
    align-items: center;
    color: #151515 !important;
    transition: background-color 0.2s ease;
  }

  /* Estado activo sobrio: borde lateral cyan, no barra azul gigante */
  .rd-navbar-fixed .rd-nav-item.active .rd-nav-link {
    background: rgba(158, 244, 255, 0.12) !important;
    border-left: 3px solid #9ef4ff;
    color: #0a0e2b !important;
  }

  /* Hover state */
  .rd-navbar-fixed .rd-nav-item:hover .rd-nav-link {
    background: rgba(158, 244, 255, 0.08) !important;
  }
}


/* =========================================================
   4. TIPOGRAFÍA MÓVIL PROFESIONAL
   ========================================================= */

@media (max-width: 767px) {

  /* Títulos hero */
  .main-title {
    font-size: clamp(1.45rem, 6vw, 2rem) !important;
    line-height: 1.15 !important;
    max-width: 340px;
    margin-inline: auto;
  }

  /* Títulos de sección */
  h1 {
    font-size: clamp(1.65rem, 7vw, 2.15rem) !important;
    line-height: 1.08 !important;
    letter-spacing: 0.04em;
  }

  /* Subtítulos */
  h2 {
    font-size: clamp(0.9rem, 3.5vw, 1rem) !important;
    line-height: 1.35 !important;
  }

  /* Párrafos principales: legibles, nunca < 15px */
  p {
    font-size: clamp(0.95rem, 3.8vw, 1.05rem) !important;
    line-height: 1.5 !important;
    max-width: 38rem;
    overflow-wrap: break-word;
    word-wrap: break-word;
  }
}


/* =========================================================
   5. SECCIÓN #INICIO - HERO MÓVIL LIMPIO
   ========================================================= */

@media (max-width: 767px) {

  /* Padding horizontal 0 en sección y slide: así el contenedor es de ancho
     completo y el título (más ancho) se centra normalmente con margin auto,
     sin el problema de alineación flex-start de los flex-items que desbordan.
     Cada hijo controla su propio margen lateral. */
  #inicio {
    padding: 54px 0 26px !important;
  }

  #inicio .swiper-slide {
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    justify-content: flex-start !important;
  }

  /* Título hero: escala con el viewport y, sobre todo, SE ENVUELVE
     (white-space:normal) para que "proposito" NUNCA se corte en
     pantallas pequeñas. */
  #inicio .main-title {
    font-size: clamp(1.1rem, 5.4vw, 1.4rem) !important;
    line-height: 1.22 !important;
    /* Ancho explícito que rompe la restricción del flex (align-items:center)
       para que el título sea más grande y aún quepa en 2 renglones.
       Un flex-item más ancho que su contenedor se alinea a flex-start, así
       que se centra de forma determinista con left:50% + translateX(-50%). */
    width: calc(100vw - 24px) !important;
    max-width: 380px !important;
    margin: 0 auto 24px !important;
    padding-inline: 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: none !important;
  }

  /* Puente: GRANDE, sangra a los lados para integrarse con el fondo.
     La masa visual de la imagen está al 58.8% horizontal (medido por alfa),
     no en el centro. Se fija a la izquierda del flujo y se desplaza con un
     calc en vw para que ese 58.8% caiga en el centro del viewport. */
  #inicio .overlay-img {
    width: 134vw !important;
    max-width: 134vw !important;
    align-self: flex-start !important;
    margin-inline: 0 !important;
    margin-bottom: 26px !important;
    display: block !important;
  }

  #inicio .overlay-img img {
    transform: translateX(-28.8vw) !important;
    width: 100% !important;
    display: block !important;
  }

  /* Logo WB inferior: proporcionado y centrado */
  #inicio .logo-wb-completo {
    max-width: 210px !important;
    width: min(56vw, 210px) !important;
    margin-inline: auto !important;
    margin-bottom: 8px !important;
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: translateX(8px) !important;
  }
}

@media (max-width: 480px) {
  /* No se fija font-size aquí: el clamp del bloque 767 ya escala con el
     viewport y evita el corte. */
  #inicio .logo-wb-completo {
    max-width: 188px !important;
  }
}


/* =========================================================
   6. SECCIÓN #SOBRE-NOSOTROS - TEXTO SIN CORTES + ICONOS BALANCEADOS
   ========================================================= */

@media (max-width: 767px) {

  #sobre-nosotros {
    padding: 56px 18px 36px !important;
  }

  /* Slide: altura natural (no 100vh) para compactar arriba y abajo */
  #sobre-nosotros .swiper-slide {
    min-height: 0 !important;
    height: auto !important;
    justify-content: flex-start !important;
    padding: 0 !important;
  }

  /* (El puente decorativo de #sobre-nosotros se eliminó del HTML,
     móvil y PC, por solicitud del cliente.) */

  /* Título: legible, no gigante, pegado arriba */
  #sobre-nosotros h1 {
    font-size: clamp(1.55rem, 6.5vw, 2rem) !important;
    margin-top: 6px !important;
    margin-bottom: 16px !important;
  }

  #sobre-nosotros span {
    font-size: clamp(1.75rem, 7vw, 2.25rem) !important;
  }

  /* Párrafos: sin cortes, max-width controlado, márgenes compactos */
  #sobre-nosotros p {
    width: min(100%, 390px) !important;
    max-width: 390px !important;
    margin: 0 auto 14px !important;
    padding-inline: 18px !important;
    font-size: clamp(0.95rem, 3.8vw, 1.05rem) !important;
    line-height: 1.48 !important;
    text-align: center !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    white-space: normal !important;
  }

  /* Grid de 6 iconos: 3 columnas x 2 filas (neutraliza el flex inline) */
  #sobre-nosotros .wb-about-icons {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 22px 10px !important;
    max-width: min(100%, 344px) !important;
    width: 100% !important;
    margin: 20px auto 0 !important;
    padding: 0 !important;
  }

  /* Iconos: proporcionados para 3 por fila */
  #sobre-nosotros .wb-about-icons .logo-wb-completo {
    width: clamp(64px, 20vw, 92px) !important;
    max-width: 92px !important;
    margin-inline: auto !important;
  }
}


/* =========================================================
   7. SECCIÓN #NUESTRA-HISTORIA - TIMELINE VERTICAL
   ========================================================= */

@media (max-width: 1024px) {

  #nuestra-historia {
    padding: 46px 18px 22px !important;
  }

  /* Reducir el hueco entre Nuestra Historia y Servicios */
  #nuestra-historia .history-item:last-child {
    margin-bottom: 0 !important;
  }

  #nuestra-historia .swiper-wrapper {
    margin-bottom: 0 !important;
  }

  #nuestra-historia .history-inner {
    flex-direction: column !important;
    gap: 30px !important;
    padding: 0 !important;
  }

  /* Imagen planeta: proporcionada */
  #nuestra-historia .history-image {
    max-width: 300px !important;
    margin-inline: auto !important;
    text-align: center !important;
  }

  #nuestra-historia .history-image picture {
    display: block !important;
    margin-inline: auto !important;
  }

  #nuestra-historia .history-image img {
    width: 100% !important;
    display: block !important;
    margin-inline: auto !important;
  }

  /* Tarjetas de años */
  #nuestra-historia .history-content {
    width: 100% !important;
  }

  #nuestra-historia .history-timeline {
    max-width: min(100%, 390px);
    margin-inline: auto;
  }

  #nuestra-historia .history-item {
    width: 100%;
    padding: 18px 20px;
    background: rgba(31, 30, 97, 0.25);
    border-radius: 12px;
    border-left: 3px solid #9ef4ff;
    margin-bottom: 18px;
  }

  /* Título principal HISTORIA: grande, al nivel de "CONFIANZA" */
  #nuestra-historia .history-title h2 {
    font-size: clamp(1.75rem, 7vw, 2.25rem) !important;
    line-height: 1.05 !important;
    margin: 0 !important;
  }

  /* Kicker "NUESTRA": subtítulo ~20% más pequeño que antes */
  #nuestra-historia .history-over-title {
    font-size: clamp(0.62rem, 2.4vw, 0.74rem) !important;
    letter-spacing: 0.28em !important;
  }

  /* Año: subtítulo de cada tarjeta, ~18% más pequeño; sigue cyan/negrita
     para mantener jerarquía sobre el cuerpo de texto. */
  #nuestra-historia .history-year {
    font-size: clamp(0.95rem, 3.3vw, 1.1rem) !important;
    margin-bottom: 6px;
  }

  /* Descripción: colapsada a 3 líneas en móvil ("ver más" expande). */
  #nuestra-historia .history-item p {
    font-size: clamp(0.875rem, 3.2vw, 0.98rem) !important;
    line-height: 1.5 !important;
    margin-bottom: 6px !important;
  }

  #nuestra-historia .history-item p {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  #nuestra-historia .history-item.expanded p {
    -webkit-line-clamp: unset;
    display: block;
    overflow: visible;
  }

  /* Botón "ver más / ver menos" */
  #nuestra-historia .history-readmore {
    display: inline-block;
    background: none;
    border: none;
    padding: 2px 0;
    margin: 0;
    color: #9ef4ff;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    cursor: pointer;
    min-height: 0;
    min-width: 0;
  }
}

/* En pantallas grandes no se colapsa ni se muestra el botón */
@media (min-width: 1025px) {
  #nuestra-historia .history-readmore {
    display: none !important;
  }

  /* Planeta queda en su tamaño original (grande, PLANETAZ.webp). Solo se
     conserva esta salvaguarda mínima: el min-width:600px de indez.css hacía
     que el texto de la línea de tiempo se cortara por la derecha a 1085-1280px.
     Con esto el texto envuelve y no se corta; el planeta NO cambia de tamaño. */
  #nuestra-historia .history-content,
  #nuestra-historia .history-item {
    min-width: 0 !important;
  }

  #nuestra-historia .history-content {
    flex: 1 1 auto !important;
  }
}


/* =========================================================
   8. SECCIÓN #NUESTROS-SERVICIOS - TARJETAS COMPACTAS Y PREMIUM
   ========================================================= */

@media (max-width: 767px) {

  #nuestros-servicios {
    padding: 34px 18px 34px !important;
  }

  /* Neutraliza el margin-top:50px inline del wrapper (sólo era hueco) */
  #nuestros-servicios .swiper-wrapper {
    margin-top: 0 !important;
  }

  #nuestros-servicios .services-inner {
    padding: 0 !important;
  }

  /* Título sección */
  #nuestros-servicios .services-title {
    font-size: clamp(1.65rem, 6.8vw, 2rem) !important;
  }

  #nuestros-servicios .services-over-title {
    font-size: clamp(0.85rem, 3.2vw, 1rem) !important;
  }

  /* Texto intro */
  #nuestros-servicios .services-intro {
    max-width: min(100%, 370px) !important;
    font-size: clamp(0.92rem, 3.6vw, 1.02rem) !important;
    margin-inline: auto;
  }

  /* Grid de tarjetas: apiladas */
  #nuestros-servicios .services-grid {
    flex-direction: column !important;
    gap: 48px !important;
    align-items: center;
  }

  /* Cada tarjeta: compacta y proporcionada */
  #nuestros-servicios .service-card {
    width: min(100%, 360px) !important;
    max-width: 360px !important;
    margin-inline: auto;
    padding: 76px 20px 22px !important;
    border-radius: 18px;
  }

  /* Logo flotante en tarjeta: controlado, NO gigante */
  #nuestros-servicios .service-cloud {
    top: -50px !important;
    width: min(78%, 260px) !important;
  }

  #nuestros-servicios .service-logo {
    max-width: 260px !important;
    max-height: 90px !important;
    object-fit: contain;
  }

  /* Texto en tarjeta: legible */
  #nuestros-servicios .service-body p {
    font-size: clamp(0.88rem, 3.4vw, 0.98rem) !important;
    line-height: 1.45 !important;
  }
}


/* =========================================================
   9. SECCIÓN #INET - TEXTO SIN CORTES + PLANES BALANCEADOS
   ========================================================= */

@media (max-width: 767px) {

  #inet {
    padding: 46px 18px 34px !important;
  }

  #inet .inet-inner {
    width: min(100%, 410px);
    margin-inline: auto;
    padding: 0 !important;
  }

  /* Contenedor a ancho completo y en bloque (indez lo dejaba flex, lo que
     rompía el centrado del img al sangrar) */
  #inet .inet-logo {
    display: block !important;
    margin: 0 auto !important;
    width: 100% !important;
    text-align: center !important;
  }

  /* Logo INET: GRANDE y prominente. Sangra a los lados (los chevrons/
     líneas decorativas se desvanecen) y se centra respecto al viewport. */
  #inet .inet-logo img {
    display: block !important;
    width: min(162vw, 675px) !important;
    max-width: 675px !important;
    height: auto !important;
    margin-left: 50% !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;
  }

  /* Niño con tablet: MÁS grande y con más presencia, y separado del logo
     (se anula el margin-top:-50px inline que lo pegaba al logo INET). */
  #inet .inet-hero {
    margin-top: 22px !important;
    text-align: center !important;
  }

  #inet .inet-hero picture {
    display: block !important;
    width: 100% !important;
  }

  #inet .inet-hero img {
    width: min(88vw, 366px) !important;
    max-width: 366px !important;
    max-height: 330px !important;
    object-fit: contain !important;
    padding-left: 0 !important;
    margin-inline: auto !important;
    display: block !important;
  }

  /* Texto principal: SIN CORTES */
  #inet .inet-text {
    max-width: min(100%, 370px) !important;
    width: 100% !important;
    margin-inline: auto !important;
    padding-inline: 18px !important;
    font-size: clamp(0.95rem, 3.8vw, 1.05rem) !important;
    line-height: 1.5 !important;
    text-align: center;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
  }

  #inet .inet-text p {
    margin-inline: auto;
  }

  /* Planes: grid 3 columnas balanceado */
  #inet .inet-planes {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: min(100%, 390px) !important;
    max-width: 390px;
    margin-inline: auto !important;
    padding: 0 !important;
  }

  #inet .inet-planes img {
    width: 100% !important;
    max-width: 120px !important;
    justify-self: center;
  }

  /* Subtítulo planes */
  #inet .inet-subtitle {
    font-size: clamp(1.05rem, 4.2vw, 1.3rem) !important;
  }

  /* Botón */
  #inet .inet-btn a {
    font-size: 15px !important;
    padding: 0 24px !important;
    min-height: 46px !important;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
  }
}

/* Botones "IR AL SITIO": contenedor centrado y texto centrado en los 3 */
@media (max-width: 767px) {
  #inet .inet-btn,
  #storetech .storetech-btn,
  #inproyet .inproyet-btn {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
  }

  #inet .inet-btn a,
  #storetech .storetech-btn a,
  #inproyet .inproyet-btn a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }
}


/* =========================================================
   10. SECCIÓN #STORETECH - ICONOS PROPORCIONADOS
   ========================================================= */

@media (max-width: 767px) {

  #storetech {
    padding: 46px 18px 34px !important;
  }

  /* Ocultar flechas laterales en móvil */
  #storetech .storetech-arrow {
    display: none !important;
  }

  #storetech .storetech-inner {
    width: min(100%, 410px);
    margin-inline: auto;
    padding: 0 !important;
  }

  /* Contenedor: se anula el margin-right:125px inline para poder centrar */
  #storetech .storetech-logo {
    display: block !important;
    margin: 0 auto !important;
    width: 100% !important;
    text-align: center !important;
  }

  /* Logo StoreTech: GRANDE y prominente, sangra a los lados y se centra */
  #storetech .storetech-logo img {
    display: block !important;
    width: min(162vw, 675px) !important;
    max-width: 675px !important;
    height: auto !important;
    margin-left: 50% !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;
  }

  /* Texto */
  #storetech .storetech-intro,
  #storetech .storetech-footer-text {
    width: min(100%, 380px) !important;
    font-size: clamp(0.95rem, 3.8vw, 1.05rem) !important;
    line-height: 1.5 !important;
    margin-inline: auto;
  }

  /* Composición: la MANO arriba y los 8 iconos abajo en 3-3-2.
     Las dos columnas de iconos (left/right) se fusionan con display:contents
     para que sus 8 .icon-item fluyan en una sola rejilla de 3 columnas. */
  #storetech .storetech-feature-grid {
    display: grid !important;
    grid-template-columns: repeat(6, 1fr) !important;
    gap: 22px 8px !important;
    align-items: start !important;
    justify-items: center !important;
    width: min(100%, 360px) !important;
    margin-inline: auto !important;
  }

  #storetech .storetech-icons.left,
  #storetech .storetech-icons.right {
    display: contents !important;
  }

  /* Mano: ocupa toda la fila superior */
  #storetech .storetech-center {
    grid-column: 1 / -1 !important;
    order: -1 !important;
    margin-bottom: 6px !important;
    text-align: center !important;
  }

  #storetech .storetech-center picture {
    display: block !important;
    margin-inline: auto !important;
  }

  #storetech .storetech-center img {
    display: block !important;
    margin-inline: auto !important;
    max-width: 100% !important;
  }

  /* 8 iconos en 3-2-3 (rejilla de 6 columnas). En DOM: left=GPS,Alarmas,
     PuntoVenta,RedesWifi ; right=Almacenamiento,Videovig,ControlAcceso,Conectores.
     Fila1 (3, span2): left 1,2,3 · Fila2 (2, span3): left4 + right1 ·
     Fila3 (3, span2): right 2,3,4. */
  #storetech .storetech-icons.left .icon-item:nth-child(1),
  #storetech .storetech-icons.left .icon-item:nth-child(2),
  #storetech .storetech-icons.left .icon-item:nth-child(3),
  #storetech .storetech-icons.right .icon-item:nth-child(2),
  #storetech .storetech-icons.right .icon-item:nth-child(3),
  #storetech .storetech-icons.right .icon-item:nth-child(4) {
    grid-column: span 2 !important;
  }

  /* Los 2 iconos del centro se colocan en cols 2-3 y 4-5, de modo que sus
     centros (33% y 67%) caigan en los HUECOS que dejan los 3 de arriba/abajo
     (que están en 17%, 50%, 83%) → quedan escalonados/alineados. */
  #storetech .storetech-icons.left .icon-item:nth-child(4) {
    grid-column: 2 / span 2 !important;
  }
  #storetech .storetech-icons.right .icon-item:nth-child(1) {
    grid-column: 4 / span 2 !important;
  }

  #storetech .icon-item {
    justify-self: center !important;
  }

  #storetech .storetech-center img {
    width: min(70vw, 290px) !important;
    max-width: 290px;
    margin: 0 auto 4px !important;
  }

  #storetech .icon-item img {
    width: clamp(68px, 21vw, 96px) !important;
    max-width: 96px;
  }

  #storetech .icon-item span {
    font-size: clamp(0.68rem, 2.6vw, 0.78rem) !important;
  }

  /* Flechas inferiores: controladas */
  #storetech .storetech-bottom-arrows {
    width: min(90%, 330px) !important;
    max-width: 330px;
  }

  /* Botón */
  #storetech .storetech-btn a {
    font-size: 15px !important;
    padding: 0 24px !important;
    min-height: 46px !important;
    border-radius: 999px;
  }
}


/* =========================================================
   11. SECCIÓN #INPROYET - CIUDAD SEGURA CLARA
   ========================================================= */

@media (max-width: 767px) {

  #inproyet {
    padding: 46px 18px 34px !important;
  }

  #inproyet .inproyet-inner {
    width: min(100%, 410px);
    margin-inline: auto;
    padding: 0 !important;
  }

  /* Contenedor: se anula el margin-right:125px inline para poder centrar */
  #inproyet .inproyet-logo {
    display: block !important;
    margin: 0 auto !important;
    width: 100% !important;
    text-align: center !important;
  }

  /* Logo Inproyet: un poco más grande que los otros dos (lo pidió el cliente) */
  #inproyet .inproyet-logo img {
    display: block !important;
    width: min(188vw, 780px) !important;
    max-width: 780px !important;
    height: auto !important;
    margin-left: 50% !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;
  }

  /* Texto intro */
  #inproyet .inproyet-intro {
    width: min(100%, 390px) !important;
    font-size: clamp(0.95rem, 3.8vw, 1.05rem) !important;
    line-height: 1.5 !important;
    margin-inline: auto;
  }

  /* Título CIUDAD SEGURA */
  #inproyet .inproyet-title-small {
    font-size: clamp(0.85rem, 3.2vw, 1rem) !important;
  }

  #inproyet .inproyet-title-big {
    font-size: clamp(1.75rem, 7vw, 2.15rem) !important;
  }

  /* Iconos en 2-3-2: rejilla de 6 columnas; las filas de 2 ocupan 3 cols
     cada icono y la fila de 3 ocupa 2 cols cada uno, quedando centradas. */
  #inproyet .inproyet-icons {
    display: grid !important;
    grid-template-columns: repeat(6, 1fr) !important;
    gap: 22px 8px !important;
    max-width: min(100%, 360px) !important;
    margin-inline: auto !important;
    align-items: start !important;
  }

  #inproyet .inproyet-icons .icon-item {
    justify-self: center !important;
  }

  /* Fila 1: 2 iconos */
  #inproyet .inproyet-icons .icon-item:nth-child(1),
  #inproyet .inproyet-icons .icon-item:nth-child(2) {
    grid-column: span 3 !important;
  }
  /* Fila 2: 3 iconos */
  #inproyet .inproyet-icons .icon-item:nth-child(3),
  #inproyet .inproyet-icons .icon-item:nth-child(4),
  #inproyet .inproyet-icons .icon-item:nth-child(5) {
    grid-column: span 2 !important;
  }
  /* Fila 3: 2 iconos */
  #inproyet .inproyet-icons .icon-item:nth-child(6),
  #inproyet .inproyet-icons .icon-item:nth-child(7) {
    grid-column: span 3 !important;
  }

  /* Tamaño uniforme para que compaginen armoniosamente */
  #inproyet .icon-item img {
    width: clamp(74px, 22vw, 100px) !important;
    max-width: 100px;
  }

  #inproyet .icon-item span {
    font-size: clamp(0.68rem, 2.6vw, 0.78rem) !important;
  }

  /* Ciudad: más grande y con presencia */
  #inproyet .inproyet-hero {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
  }

  #inproyet .inproyet-hero picture {
    display: block !important;
    width: 100% !important;
  }

  #inproyet .inproyet-hero img {
    display: block !important;
    width: min(138vw, 611px) !important;
    max-width: 611px !important;
    height: auto !important;
    margin-left: 50% !important;
    margin-right: 0 !important;
    transform: translateX(-50%) !important;
  }

  /* Botón */
  #inproyet .inproyet-btn a {
    font-size: 15px !important;
    padding: 0 24px !important;
    min-height: 46px !important;
    border-radius: 999px;
  }
}


/* =========================================================
   12. FOOTER RESPONSIVE
   ========================================================= */

@media (max-width: 767px) {

  .footer-minimal-inset,
  .footer-minimal-bottom-panel {
    padding-inline: 18px;
  }

  .footer-list-category-2,
  .footer-social-list-2 {
    font-size: 14px !important;
  }

  .footer-list-category-2 li a,
  .footer-social-list-2 li a {
    min-height: 44px;
    padding: 10px 12px;
    display: inline-flex;
    align-items: center;
  }
}


/* =========================================================
   13. ACCESIBILIDAD Y TOUCH TARGETS
   ========================================================= */

@media (max-width: 767px) {

  /* Touch targets mínimos */
  a,
  button {
    min-height: 44px;
    min-width: 44px;
  }

  /* Foco visible */
  a:focus,
  button:focus {
    outline: 2px solid #9ef4ff;
    outline-offset: 2px;
  }
}


/* =========================================================
   14. TABLETS (768px - 991px)
   ========================================================= */

@media (min-width: 768px) and (max-width: 991px) {

  /* Header tablet */
  .rd-navbar-brand img {
    max-width: 230px !important;
    max-height: 60px !important;
  }

  /* Secciones con más ancho */
  .full-screen-section {
    padding-inline: 40px !important;
  }

  /* Grid de iconos #sobre-nosotros: 3 columnas en tablet con más ancho */
  #sobre-nosotros .wb-about-icons {
    grid-template-columns: repeat(3, 1fr) !important;
    max-width: 500px !important;
  }

  /* Grid iconos #inproyet: 3 columnas */
  #inproyet .inproyet-icons {
    grid-template-columns: repeat(3, 1fr) !important;
    max-width: 480px;
  }
}


/* =========================================================
   15. CORRECCIONES FINALES
   - Fecha: 2026-06-17
   ========================================================= */

@media (max-width: 1024px) {

  /* (A) #nuestra-historia: el indez.css forzaba min-width:600px en
     .history-content y .history-item, lo que recortaba el texto en
     viewports < 600px. Se neutraliza como red de seguridad ademas de
     haberlo scopeado a desktop en indez.css. */
  #nuestra-historia .history-content,
  #nuestra-historia .history-item {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  #nuestra-historia .history-timeline {
    max-width: min(100%, 400px) !important;
    width: 100% !important;
    margin-inline: auto !important;
  }

  /* La .history-slide tenia min-height:100vh (indez.css) que, al reducir
     el planeta, dejaba un gran hueco vertical. Altura natural en movil. */
  #nuestra-historia .history-slide {
    min-height: 0 !important;
    height: auto !important;
    justify-content: flex-start !important;
    padding-bottom: 12px !important;
  }

  #nuestra-historia .history-inner {
    align-items: stretch !important;
  }

  /* indez.css daba flex:0 0 60% / 50%; en columna eso fija la ALTURA y
     creaba contenedores enormes (1012px) alrededor de imagenes pequenas.
     Se resetea para que dimensionen segun su contenido. */
  #nuestra-historia .history-image,
  #nuestra-historia .history-content {
    flex: 0 0 auto !important;
  }

  /* Planeta: ~25% más chico que los 480px (≈345px) y separado del borde.
     La imagen ahora es cuadrada y el globo la llena por completo, así que
     cabe dentro del contenido de la sección y se centra normalmente,
     dejando ~22px de margen a cada lado (ya no sangra al borde). */
  #nuestra-historia .history-image {
    width: min(88vw, 345px) !important;
    max-width: 345px !important;
    align-self: center !important;
    margin-inline: auto !important;
  }

  #nuestra-historia .history-image img {
    width: 100% !important;
    max-width: 345px !important;
    max-height: none !important;
    height: auto !important;
    object-fit: contain;
  }
}

@media (max-width: 767px) {

  /* (B) #sobre-nosotros: el puente tenia transform: translateX(-80px)
     inline que lo descentraba a la izquierda en movil. Se resetea
     igual que en #inicio y se limita su ancho. */
  #sobre-nosotros .overlay-img {
    transform: translateX(0) !important;
    width: min(96%, 360px) !important;
    max-width: 360px !important;
    margin-inline: auto !important;
  }

  /* (C) (El menú desplegable es un panel blanco a pantalla completa bajo el
     header; no necesita scrim. Se elimina para que no atenúe el panel.) */

  /* (D) Header: el script inline fitLogo() fija max-height del logo segun
     la altura real del navbar. Se garantiza una altura de panel estable
     para que el logo no crezca de mas. */
  .rd-navbar-panel {
    max-height: 86px;
  }
}

/* Fin de mobile-polish.css */
