.contenedor-mailto {
  display: inline-flex;
  align-items: end;
  gap: 20px;
  position: relative;
}
.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;
  }
}
.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;
  }
  .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;
}