.resaltado-marcador {
    position: relative;
    display: inline-block;
    z-index: 1;
    white-space: nowrap;
}

.resaltado-marcador::after {
    content: "";
    position: absolute;
    left: -6px;
    right: -6px;
    /* Centrado vertical detrás del texto */
    top: 10%;
    bottom: 5%;
    
    /* Color calipso/rojo de tu captura con transparencia */
    background-color: rgba(255, 46, 75, 0.85); 
    
    /* Esquinas redondeadas irregulares simulando el trazo de fibra */
    border-radius: 8px 15px 12px 20px;
    
    /* Rotación leve para romper la línea recta perfecta */
    transform: rotate(-1deg);
    z-index: -1;
}

.resaltado-subrayado {
    position: relative;
    display: inline-block;
    z-index: 1;
}

.resaltado-subrayado::after {
    content: "";
    position: absolute;
    left: -2px;
    right: -4px;
    bottom: 2px; /* Pegado a la base de las letras */
    height: 8px; /* Grosor de la línea */
    
    background-color: #ff2e4b;
    
    /* Puntas más finas que el centro simulando el apoyo del lápiz */
    border-radius: 50% 20% 40% 10%;
    
    transform: rotate(-0.5deg);
    z-index: -1;
}

.resaltado-rustico {
    position: relative;
    display: inline-block;
    z-index: 1;
    white-space: nowrap;
}

.resaltado-rustico::after {
    content: "";
    position: absolute;
    left: -8px;
    right: -5px;
    top: 5%;
    bottom: 5%;
    
    background-color: rgba(255, 46, 75, 0.9);
    
    /* Forzamos puntas en diagonal asimétricas por hardware */
    clip-path: polygon(2% 15%, 98% 5%, 100% 85%, 0% 95%);
    -webkit-clip-path: polygon(2% 15%, 98% 5%, 100% 85%, 0% 95%);
    
    z-index: -1;
}
/* Contenedor de la palabra a rodear */
.resaltado-circulo {
    position: relative;
    display: inline-block;
    z-index: 1;
    /* Un toque de aire a los lados para que el círculo no asfixie el texto */
    padding: 0 12px; 
}

/* El lazo circular/ovalado con CSS */
.resaltado-circulo::after {
    content: "";
    position: absolute;
    
    /* Lo estiramos un poquito más afuera de los límites del texto */
    top: -6px;
    bottom: -6px;
    left: -2px;
    right: -2px;
    
    /* Trazo lineal fino con el color de Bondi */
    border: 5px solid #ff2e4b; 
    
    /* 1. CLAVE: Forzamos una elipse perfecta y continua en los bordes */
    border-radius: 50%; 
    
    /* 2. EL HACK: Deformamos la elipse en diagonal (skew) y la rotamos 
       para romper la simetría de computadora y lograr el look de trazo a mano */
    transform: skewX(-10deg) rotate(-2deg);
    -webkit-transform: skewX(-10deg) rotate(-2deg);
    
    /* Evitamos que interfiera con la selección de texto o clics */
    pointer-events: none; 
    z-index: -1; 
}


.approach-section p {
    color: #fff 
}
.approach-mobile p {
    color: #fff 
}

.text-white {
    color: #fff
}
.text-black {
    color: #242424
}
.serv-style2 .item.bg-light .cont .tags span {
    border-color: rgba(0, 0, 0, 1);
    color: #242424
}

.serv-style2 .item .cont .tags span {

border: 1px solid rgba(255, 255, 255, 1);
color: #fff}
@media (max-width: 991px) {

  /* 1. Forzamos a Swiper a estirar los contenedores de las slides */
  .services-mobile .swiper-wrapper {
      display: flex !important;
      align-items: stretch !important;
  }
  
  .services-mobile .swiper-slide {
      height: auto !important;
      display: flex !important;
  }
  
  /* 2. Reseteamos la grilla para que mantenga el ancho nativo que pide Swiper */
  .services-mobile .swiper-slide > .row {
      display: flex !important;
      align-items: stretch !important;
      width: 100% !important;
      margin: 0 !important; /* Evita desbordes externos */
  }
  
  .services-mobile .swiper-slide > .row > div[class*="col-"] {
      display: flex !important;
      flex-direction: column !important;
      align-items: stretch !important;
      width: 100% !important;
      padding: 0 !important; /* Deja que el espacio horizontal lo maneje el spaceBetween */
  }
  
  /* 3. La tarjeta se estira verticalmente al 100% sin alterar el ancho */
  .services-mobile .item.sub-bg {
      display: flex !important;
      flex-direction: column !important;
      justify-content: space-between !important;
      height: 100% !important;
      width: 100% !important;
      flex: 1 1 100% !important;
      
      /* Tu colchón inferior para la imagen de fondo */
      padding-bottom: 280px !important;
  }

}

.serv-style2 .item .fit-img img, .serv-style2 .item .fit-img video { 
    object-position: right; 
    overflow: visible;
}    
 


/* El div que maneja el fondo alineado */
.bg-inteligencia {
    position: absolute;
    top: 0;
    right: 0;
    
    /* Ocupa el 100% del alto de la tarjeta madre */
    height: 100% !important;
    width: 100% !important;
    
    /* Configuración de la imagen */
    background-image: url('../imgs/servicios/inteligencia/home.webp') !important;
    background-repeat: no-repeat !important;
    
    /* CLAVE: Alineado al ras de la derecha (right) y centrado o abajo en vertical (center o bottom) */
    background-position: right bottom !important;
    
    /* Mantiene la proporción de la imagen adaptándose al alto sin deformarla */
    background-size: cover !important;
    
    /* Fondo transparente para que se fusione con el color o degradado del padre */
    background-color: transparent !important;
    
    /* Evita bloqueos de renderizado */
    pointer-events: none; 
}


/* El div que maneja el fondo alineado */
.bg-diseno {
    position: absolute;
    top: 0;
    right: 0;
    
    /* Ocupa el 100% del alto de la tarjeta madre */
    height: 100% !important;
    width: 100% !important;
    
    /* Configuración de la imagen */
    background-image: url('../imgs/servicios/diseno/home.webp') !important;
    background-repeat: no-repeat !important;
    
    /* CLAVE: Alineado al ras de la derecha (right) y centrado o abajo en vertical (center o bottom) */
    background-position: right bottom !important;
    
    /* Mantiene la proporción de la imagen adaptándose al alto sin deformarla */
    background-size: cover !important;
    
    /* Fondo transparente para que se fusione con el color o degradado del padre */
    background-color: transparent !important;
    
    /* Evita bloqueos de renderizado */
    pointer-events: none; 
}


/* El div que maneja el fondo alineado */
.bg-growth {
    position: absolute;
    top: 0;
    right: 0;
    
    /* Ocupa el 100% del alto de la tarjeta madre */
    height: 100% !important;
    width: 100% !important;
    
    /* Configuración de la imagen */
    background-image: url('../imgs/servicios/growth/home.webp') !important;
    background-repeat: no-repeat !important;
    
    /* CLAVE: Alineado al ras de la derecha (right) y centrado o abajo en vertical (center o bottom) */
    background-position: right bottom !important;
    
    /* Mantiene la proporción de la imagen adaptándose al alto sin deformarla */
    background-size: cover !important;
    
    /* Fondo transparente para que se fusione con el color o degradado del padre */
    background-color: transparent !important;
    
    /* Evita bloqueos de renderizado */
    pointer-events: none; 
}


/* El div que maneja el fondo alineado */
.bg-trayectoria {
    position: absolute;
    top: 0;
    right: 0;
    
    /* Ocupa el 100% del alto de la tarjeta madre */
    height: 100% !important;
    width: 100% !important;
    
    /* Configuración de la imagen */
    background-image: url('../imgs/servicios/trayectoria/home.webp') !important;
    background-repeat: no-repeat !important;
    
    /* CLAVE: Alineado al ras de la derecha (right) y centrado o abajo en vertical (center o bottom) */
    background-position: right bottom !important;
    
    /* Mantiene la proporción de la imagen adaptándose al alto sin deformarla */
    background-size: cover !important;
    
    /* Fondo transparente para que se fusione con el color o degradado del padre */
    background-color: transparent !important;
    
    /* Evita bloqueos de renderizado */
    pointer-events: none; 
}

 
 
/* Tarjeta 1: Inteligencia de Negocios */
.bg-inteligencia-mobile {
    background-image: url('../imgs/servicios/inteligencia/home-mobile.webp') !important;
        background-size: cover !important;
background-position: bottom center !important;
    background-repeat: no-repeat !important;
}
.bg-diseno-mobile {
    background-image: url('../imgs/servicios/diseno/home-mobile.webp') !important;
        background-size: cover !important;
background-position: bottom center !important;
    background-repeat: no-repeat !important;
}
.bg-growth-mobile {
    background-image: url('../imgs/servicios/growth/home-mobile.webp') !important;
        background-size: cover !important;
background-position: bottom center !important;
    background-repeat: no-repeat !important;
}
.bg-trayectoria-mobile {
    background-image: url('../imgs/servicios/trayectoria/home-mobile.webp') !important;
        background-size: cover !important;
background-position: bottom center !important;
    background-repeat: no-repeat !important;
}

 
.bg-1 {
  background-color: #f11446 !important
}

.bg-2 {
  background-color: #2a2a2a !important
}

.bg-3 {
  background-color: #2196f3 !important
}

.bg-4 {
  background-color: #d2d2d2 !important
}

@media (max-width: 991px) {
    .item h2 {
        font-size: 34px !important;
    }
    
     
}

.bg-light {
    background: #f7f7f7 !important; 
}

.contenedor-mailto {
  display: inline-flex;
  align-items: end;
  gap: 20px;
  position: relative;
    color: #fff;
}
.mailto {
  display: none;
  background: #000000;
  color: #ffffff;
  padding: 12px 12px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
@media screen and (max-width: 992px) {
  .footer-style4 .links, .footer-style4 .copyright {
    text-align: left;
    display: block !important;
  }
  section {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}




@media screen and (max-width: 450px) {
    .contenedor-mailto a {
        font-size: 25px;
    }
}
.h-900px {
  height: 900px !important;
}
@media screen and (max-width: 768px) {
  .h-600px {
    height: 550px !important;
  }
  .pg-hero .fs-80 {
    font-size: 32px !important;
    margin-top: 40px;
  }
    
    .contenedor-mailto {
    display: inline-block; 
}    
    .contenedor-mailto span{
    margin-top: 20px 
}
    
}
/* =============================================================================
   CORRECCIÓN: Forzar bordes redondeados y recorte de fondo
   ============================================================================= */
/* Modificamos el contenedor de la tarjeta para que recorte las esquinas de la foto */
.stackCard .item.sub-bg {
  position: relative !important;
  overflow: hidden !important; /* CLAVE: Corta las puntas de la imagen y mantiene los 30px */
  border-radius: 30px !important;
  z-index: 1 !important;
}
/* El contenedor absoluto de la imagen */
.bg-card-image {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 30px !important; /* Refuerzo de bordes para Safari Mobile */
  overflow: hidden;
  z-index: -1
}
.bg-card-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}
.bg-card-image .overlay-oscura {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(16, 16, 16, 0.75) !important; /* Capa oscura */
  z-index: 1 !important;
}
.bg-card-image-service {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 0 !important; /* Se queda al fondo de todo */
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 30px !important; /* Refuerzo de bordes para Safari Mobile */
  background-image: url("../imgs/servicios/diseno/cover.webp");
  opacity: .25;
  z-index: -10 !important
}
/* Forzamos a que la columna del texto flote por encima de la imagen y la capa oscura */
.stackCard .item .col-lg-5 {
  position: relative !important;
  z-index: 2 !important; /* Mayor que el z-index de la capa oscura */
}
.team-reval .item-row {
  cursor: auto;
}
/* CLASE UTILITARIA: Aplica la máscara de desvanecimiento de izquierda a derecha */
.mask-gradient-right {
  -webkit-mask-image: linear-gradient(to right, transparent 40%, #000000 80%) !important;
  mask-image: linear-gradient(to right, transparent 40%, #000000 80%) !important;
}
@media (max-width: 1280px) {
  .fs-60 {
    font-size: 45px !important;
  }
}
@media (max-width: 991px) {
  .bg-img-branding {
    background-position-y: -190px;
  }
  .fs-60 {
    font-size: 38px !important;
  }
  .features .item {
    border: 0px solid rgba(255, 255, 255, 0.05);
  }
  .mask-gradient-right {
    /* Cambiamos a 'to bottom' para que el degradé corra hacia abajo */
    -webkit-mask-image: linear-gradient(to bottom, transparent 30%, #000000 100%) !important;
    mask-image: linear-gradient(to bottom, transparent 30%, #000000 100%) !important;
  }
  /* Desactivamos el empaquetado space-between en mobile */
  .serv-style2 .item .cont.v-align-between {
    -webkit-box-pack: start !important;
    -ms-flex-pack: start !important;
    justify-content: flex-start !important;
  }
  /* Opcional: Controlamos el espacio entre el título y la bajada */
  /* Como le sacamos el space-between, si te quedan DEMASIADO pegados, */
  /* podés darle un aire controlado al div de la bajada: */
  .serv-style2 .item .cont.v-align-between .mt-40px {
    margin-top: 45px !important; /* Ajustá este número a gusto */
  }
  /* El alto ahora se maneja de forma dinámica por JS */
  .cardStacking {
    position: relative !important;
    width: 100% !important;
    overflow: visible !important;
  }
  .cardStacking__cards.row {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
  }
  .stackCard {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
    transition: none !important;
    will-change: transform, opacity;
    transform: translate3d(0, 0, 0);
  }
  .serv-style2 .item {
    height: 100% !important;
    min-height: auto !important;
    padding: 30px 20px !important; /* Mantenemos este padding para que respire */
    transition: none !important;
  }
  .serv-style2 .item .cont {
    padding: 40px 10px !important;
  }
  /* La imagen se adapta al alto dinámico que toque */
  .serv-style2 .item .fit-img {
    height: 180px !important;
    min-height: 180px !important;
    position: relative;
    margin-top: 15px;
  }
  .serv-style2 .item .fit-img img {
    position: relative !important;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.testim-style1 {
  border-radius: 0 0 0px 0px;
}
.main-marq .box:last-of-type .item:nth-of-type(odd) h4 {
  color: #fff;
  -webkit-text-stroke: 0px #fff;
}
/* 1. Fijamos la altura de la caja de textos para que nunca salte */
.portfolio-elegant .item .cont {
  position: relative;
  height: 30px; /* Le damos una altura fija de referencia */
  display: flex !important;
  align-items: center;
  justify-content: space-between;
}
/* 2. El título se queda quieto a la izquierda */
.portfolio-elegant .item .cont h6 {
  white-space: nowrap !important;
}
/* 3. El tag aparece y desaparece en su lugar sin empujar a nadie */
.portfolio-elegant .item .cont span {
  position: absolute;
  right: 0; /* Lo clavamos a la derecha */
  opacity: 0;
  white-space: nowrap !important;
  pointer-events: none; /* Evita que interfiera con los clics */
}
/* 4. Solo animamos la opacidad al activarse */
.portfolio-elegant .item.active .cont span {
  opacity: 1;
}
@media (max-width: 991px) {
  /* 1. Contenedor general: le prohibimos romper el layout de la web */
  .testim-style3 {
    overflow: hidden !important;
    width: 100%;
  }
  /* 2. El Swiper: Le damos padding SOLO a los costados */
  .testim-style3 .swiper-container {
    /* Esto te asegura el aire de 15px fijo a la izquierda y derecha cuando está quieto */
    padding-left: 15px !important;
    padding-right: 15px !important;
    /* Mantiene el ancho nativo sin ensanchar la caja */
    width: 100% !important;
    /* TRUCO MAESTRO: Permitimos que las tarjetas "dibujen" por encima del padding 
           cuando el usuario las arrastra con el dedo hacia los bordes */
    overflow: visible !important;
  }
  /* 3. Ajuste de ancho de la tarjeta para que Swiper no se confunda con el padding */
  .testim-style3 .swiper-slide {
    box-sizing: border-box !important;
  }
}
.tags a {
  margin-bottom: 10px !important
}
.desktop {
  display: block
}
.mobile {
  display: none
}
.text-left {
  text-align: left
}
.navbar .dropdown-menu {
  width: fit-content;
  min-width: auto
}
@media screen and (max-width: 991px) {
  .navbar .navbar-collapse {
    max-height: 1000px;
    overflow: auto;
      z-index: 1000000000000000000000000000 !important
  }
  .navbar .dropdown-menu {
    width: auto;
    min-width: auto
  }
  .mobile {
    display: block
  }
  .desktop {
    display: none
  }
  .navbar .navbar-nav .nav-item:last-of-type .nav-link {
    padding-bottom: 12px !important;
  }
  .cursor {
    display: none
  }
  .portfolio-elegant .item .cont span {
    opacity: 1 !important;
  }
  .portfolio-elegant .item .cont h6 {
    opacity: 1 !important;
  }
  .portfolio-elegant .item .cont.hide {
    opacity: 1 !important;
    visibility: inherit;
  }
}
.marq-brand .item a img {
  max-width: 175px;
}
.slide-har.logos .box {
  position: relative;
  animation: slide-har 30s linear infinite;
}
/*
body.light .intro-style1 {
  padding-top: 140px !important;
}


.portfolio-elegant .item .cont.hide span{
display: none}

*/
/* Estado: MODO CLARO (Body tiene clase .light) */
/* Queremos ver la LUNA para poder cambiar a oscuro */
body.light .theme-icon .sun {
  display: none !important;
}
body.light .theme-icon .moon {
  display: inline-block !important;
}
/* Estado: MODO OSCURO (Body NO tiene clase .light) */
/* Queremos ver el SOL para poder volver a claro */
body:not(.light) .theme-icon .moon {
  display: none !important;
}
body:not(.light) .theme-icon .sun {
  display: inline-block !important;
}