/*
Theme Name: Brelses
Template: Divi
Author: LK Asociados
Version: 0.1
*/


/* Estilos header*/
.header-info{
    display: flex;
    justify-content: space-between;
}

.header-info div{
    margin-right: 45px;
}

.header-info div a{
    display: flex;
    align-items: center;
}

.header-info img{
    width: auto;
    height: 100%;
    margin-right: 15px;
}

/*Estilos footer*/

.footer-curva {
  position: relative;
  overflow: hidden;
}

.footer-curva::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url('https://brelsescontadores.com.mx/wp-content/uploads/2025/09/Img_Footer.png') no-repeat center/cover; /* 👈 aquí tu textura real */
  
  /* Máscara SVG */
  -webkit-mask-image: url('https://brelsescontadores.com.mx/wp-content/uploads/2025/09/Footer.svg');
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: cover;
  mask-image: url('https://brelsescontadores.com.mx/wp-content/uploads/2025/09/Footer.svg');
  mask-repeat: no-repeat;
  mask-size: cover;
  -webkit-mask-position-x: center;
  border-radius: 0 0 20px 20px;
}

.menu-footer {
  display: flex;
  justify-content: space-between; /* distribuye espacio */
  align-items: flex-start;        /* alinea arriba */
  gap: 2rem;                      /* espacio entre columnas */
}

.menu-footer > div {
  flex: 1;                        /* cada columna ocupa el mismo ancho */
  min-width: 150px;               /* evita que se colapsen en pantallas pequeñas */
}

.menu-footer h4, 
.menu-footer a {
  font-weight: bold;
  text-decoration: none;
  display: block;
  margin-bottom: 20px;
}

.menu-footer ul {
  line-height: 15px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.menu-footer li {
  margin-bottom: 31px;
}

/*Estilos botones*/

/* Base del botón */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 10px 10px 25px;
    font-family: 'Gantari', sans-serif;
    font-weight: 700;
    font-size: 19px;
    text-decoration: none;
    border-radius: 15px;
    transition: all 0.3s ease;
    letter-spacing: 0.5px;
}

/* Icon wrapper */
.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 40px;
    height: 40px;
    overflow: hidden;
    border-radius: 10px;
}

.icon-default,
.icon-hover {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.icon-default {
  font-family: "Gantari", sans-serif; /* › usa tu tipografía */
  font-size: 20px;
  color: currentColor;
  opacity: 1;
  transform: translateX(0);
}

.icon-hover svg {
    width: 35px;
    height: 35px;
    fill: currentColor;
}

.icon-hover {
  opacity: 0;
  transform: translateX(-8px);
}

/* 🔥 Animación en hover */
.btn:hover .icon-default {
  opacity: 0;
  transform: translateX(8px);
}

.btn:hover .icon-hover {
  opacity: 1;
  transform: translateX(0);
}
/* =============================
   Versión 1
============================= */
.version1 {
  background: #000;
  color: #fff;
}
.version1 .btn-icon {
  background: #b5121b;
  color: #fff;
}
.version1:hover {
  background: #b5121b;
  color: #fff;
}
.version1:hover .btn-icon {
  background: #000;
  color: #fff;
}

/* =============================
   Versión 2
============================= */
.version2 {
    background: #b5121b;
    color: #fff;
}

.version2 .btn-icon {
    background: #ffffff;
    color: #000000;
    border: 2px solid #fff;
}
.version2:hover {
  background: #fff;
  color: #000;
}
.version2:hover .btn-icon {
  background: #b5121b;
  color: #fff;
}

/* =============================
   Versión 3
============================= */
.version3 {
  background: #fff;
  color: #000;
  border: 2px solid transparent; /* para evitar saltos al hacer hover */
  transition: all 0.3s ease;
}

.version3 .btn-text {
  padding: 8px 15px;
  border-radius: 8px;
  transition: all 0.3s ease;
}

.version3 .btn-icon {
  background: #000;
  color: #fff;
}

/* Hover */
.version3:hover {
  background: #b5121b;
  color: #fff;
  border: 2px solid #fff; /* 🔥 borde en todo el botón */
}
.version3:hover .btn-text {
  background: transparent;
  color: #fff;
}
.version3:hover .btn-icon {
  background: #fff;
  color: #000;
}

/*Estilos HOME*/

/*Banner principal*/
.banner-curva {
  position: relative;
  overflow: hidden;
  min-height: 600px; /* altura mínima para que la curva siempre se vea */
}

/* Pseudo-elemento con SVG */
.banner-curva::before {
  content: "";
  position: absolute;
  inset: 0; /* cubre todo el contenedor */
  
  background: linear-gradient(90deg, #ededec 0%, rgba(237,237,236,0.9) 35%, rgba(255,255,255,0.1) 100%),
              url('https://brelsescontadores.com.mx/wp-content/uploads/2025/09/M1_Banner_Img-1.png') no-repeat center/cover;

  -webkit-mask-image: url('https://brelsescontadores.com.mx/wp-content/uploads/2025/09/BannerPrincipal.svg');
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center bottom;
  -webkit-mask-size: cover;
  -webkit-mask-composite: destination-in;

  mask-image: url('https://brelsescontadores.com.mx/wp-content/uploads/2025/09/BannerPrincipal.svg');
  mask-repeat: no-repeat;
  mask-position: center top;
  mask-size: contain;
  mask-composite: intersect;
  z-index: 1;
}

/* Asegurar que el contenido de Divi quede encima */
.banner-curva > .et_pb_module {
  position: relative;
  z-index: 2;
}





/*Banner frase gancho*/

.frase::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url('https://brelsescontadores.com.mx/wp-content/uploads/2025/10/M4_Frase_Fondo-1.png') no-repeat center/cover;
  filter: brightness(0.5);

  /* Máscara SVG */
  -webkit-mask-image: url('https://brelsescontadores.com.mx/wp-content/uploads/2025/09/M4_FraseGancho_forma.svg');
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center bottom;
  -webkit-mask-size: cover;

  mask-image: url('https://brelsescontadores.com.mx/wp-content/uploads/2025/09/M4_FraseGancho_forma.svg');
  mask-repeat: no-repeat;
  mask-position: center top;
  mask-size: contain;

  z-index: 1;
  pointer-events: none;
}

.frase > * {
  position: relative;
  z-index: 2;
  color: #fff;
}

@media (max-width: 980px) {
  .frase {
    min-height: 320px;
    padding: 40px 15px;
  }
}

@media (max-width: 480px) {
  .frase {
    min-height: 250px;
  }
}


/*Modulo animacion home*/
.module-animacion {
  position: relative;
  width: 100%;
  height: 500px; /* módulo compacto */
  overflow: hidden;
  font-family: Arial, sans-serif;
  background: #a00;
  color: #fff;
}

.module-icon {
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0.15;
  z-index: 0;
  pointer-events: none;
  transition: transform 1s ease, left 1s ease, opacity 1s ease;
}
.module-icon img {
  width: 350px;
  height: auto;
  filter: brightness(0) invert(1);
}


.texto-container {
  position: sticky;
  top: 30%; /* sticky dentro del módulo */
  width: 100%;
  height: 200px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: 1.8rem;
  font-weight: bold;
  z-index: 2;
}

.texto {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  opacity: 0;
  transition: transform 0.8s ease, opacity 0.8s ease, width 0.8s ease;
}

.center {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
  width: 80%;
  z-index: 2;
}
.left {
  transform: translate(-70%, -50%) scale(0.9);
  opacity: 1;
  width: 45%;
  text-align: left;
  z-index: 1;
}
.right {
  transform: translate(20%, -50%) scale(1);
  opacity: 1;
  width: 45%;
  text-align: right;
  z-index: 2;
  animation: enterFromRight 0.8s ease forwards;
}
.out-left {
  transform: translate(-200%, -50%) scale(0.8);
  opacity: 0;
  width: 45%;
}

@keyframes enterFromRight {
  0% {
    transform: translate(220%, -50%) scale(1);
    opacity: 0;
  }
  60% {
    transform: translate(40%, -50%) scale(1);
    opacity: 0.8;
  }
  100% {
    transform: translate(20%, -50%) scale(1);
    opacity: 1;
  }
}




/* Card más grande */
.servicio-card {
    width: 360px;
    min-height: 520px;
    border-radius: 20px;
    background: #ECEDED;
    overflow: hidden;
    position: relative;
    transition: all 0.3s ease;
}

.hover-content {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  padding: 20px;
  background: #000000ad;
  border-top-left-radius: 25px;
  border-top-right-radius: 25px;

  /* Nuevo método para ocultar sin romper flex */
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all 0.4s ease;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

/* Al hacer hover, se muestra suavemente */
.servicio-card:hover .hover-content {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}


/* Título + icono */
.servicio-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px 20px 0;
}
.servicio-header h3 {
    font-size: 20px;
    margin: 0;
    font-weight: 600;
    font-family: 'Gantari', Helvetica, Arial, Lucida, sans-serif;
    font-weight: 800;
    font-size: 25px;
    color: #B91E22 !important;
    text-align: left;
    width: 80%;
}
.servicio-header .icono {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.servicio-top p {
    font-family: 'Gantari';
    margin: 10px 20px 40px;
    font-size: 18px;
    color: #444;
    width: 65%;
}

/* Imagen destacada */
/* Forzar altura uniforme y mantener el efecto original */
.servicio-bottom {
    position: relative;
    aspect-ratio: 10 / 10; /* mantiene proporción uniforme sin romper el hover */
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    border-radius: 25px;
    transition: all 0.3s ease;
}


/* Botón flecha circular */
.boton-flecha {
    position: absolute;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #B91E22;
    border: 10px solid #ECEDED;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    transition: all 0.3s ease;
    color: #ffff;
    font-size: 22px;
}

.boton-flecha i {
    color: #fff;
    font-size: 20px;
}

/* Hover: oculta flecha y muestra beneficios */
.servicio-card:hover .boton-flecha {
    opacity: 0;
    transform: translateX(-50%) translateY(-20px);
}

.hover-content ul {
    padding-left: 20px;
    color:#fff;
    font-family: 'Gantari';
}

.hover-content .btn{
    padding: 10px 15px;
    font-size: 14px;
}

/* --- Mantener todas las tarjetas con la misma altura --- */
.contenedor-servicios {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch; /* hace que todas crezcan a la misma altura */
    justify-content: center;
    gap: 30px; /* espacio entre cards */
}

.servicio-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 550px; /* altura fija uniforme */
}

/* ==== SWIPER SOLO PARA MÓDULO DE SERVICIOS ==== */
.servicios-swiper {
    width: 100%;
    overflow: hidden; /* evita que se vean slides fuera del contenedor */
    position: relative;
    padding-bottom: 40px;
}

.servicios-swiper .swiper-wrapper {
    box-sizing: border-box;
}

.servicios-swiper .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: stretch;
    height: auto;
}

.servicios-swiper .swiper-button-next,
.servicios-swiper .swiper-button-prev {
    color: #B91E22;
    top: 45%;
    transform: translateY(-50%);
    z-index: 5;
}

.servicios-swiper .swiper-pagination {
    bottom: 0;
    position: absolute;
}

.servicios-swiper .swiper-pagination-bullet {
    background: #B91E22;
}
/* --- Flechas específicas del carrusel de servicios --- */
.servicios-nav {
  position: absolute;
  top: -50px; /* súbelas o bájalas según necesites */
  right: 0px;
  display: flex;
  gap: 10px;
  z-index: 15;
}

.servicios-button-prev, .servicios-button-next {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    color: #595959;
    font-size: 40px;
    padding: 3px;
    font-weight: 500;
    display: flex;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.servicios-button-prev:hover,
.servicios-button-next:hover {
  background-color: #B91F23;
  color: #fff;
}

/* Aseguramos que la fila o sección contenedora permita posición absoluta */
.et_pb_row.servicios-wrapper,
.et_pb_section.servicios-wrapper {
  position: relative;
}

.btn-conocer {
    display: inline-block;
    background: #000;
    color: #fff;
    padding: 10px 20px;
    border-radius: 25px;
    text-decoration: none;
}
.btn-conocer:hover {
    background: #333;
}

/*display styles*/
@media screen and (min-width:1000px){
.flex{
    display:flex;
}
.items-align-center{
    align-items:center;
}    
}

