.elementor-kit-54{--e-global-color-primary:#A6A09B;--e-global-color-secondary:#FF9900;--e-global-color-text:#0C0A09;--e-global-color-accent:#61CE70;--e-global-color-09fe826:#FFFFFF;--e-global-color-d01ace6:#00000000;--e-global-color-0902004:#FAFAF9;--e-global-color-2d9fcfa:#F5F5F4;--e-global-color-544314d:#E7E5E4;--e-global-color-5b6bb15:#D6D3D1;--e-global-color-ff4e0c4:#79716B;--e-global-color-2507860:#57534D;--e-global-typography-primary-font-family:"Times New Roman";--e-global-typography-primary-font-size:5.16rem;--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"Times New Roman";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Britti Sans";--e-global-typography-text-font-size:1rem;--e-global-typography-text-font-weight:300;--e-global-typography-text-line-height:1.4em;--e-global-typography-accent-font-family:"Times New Roman";--e-global-typography-accent-font-weight:500;--e-global-typography-b7aa6fa-font-family:"Britti Sans";--e-global-typography-b7aa6fa-font-size:6.192rem;--e-global-typography-b7aa6fa-line-height:1.1em;--e-global-typography-ea684d9-font-family:"Britti Sans";--e-global-typography-ea684d9-font-size:3.583rem;--e-global-typography-ea684d9-line-height:1.1em;--e-global-typography-ea684d9-letter-spacing:-1.147px;--e-global-typography-c766958-font-family:"Britti Sans";--e-global-typography-c766958-font-size:2.986rem;--e-global-typography-c766958-line-height:1.1em;--e-global-typography-c766958-letter-spacing:-0.956px;--e-global-typography-3750d36-font-family:"Britti Sans";--e-global-typography-3750d36-font-size:2.488rem;--e-global-typography-3750d36-line-height:1.1em;--e-global-typography-3750d36-letter-spacing:-0.796px;--e-global-typography-e972675-font-family:"Britti Sans";--e-global-typography-e972675-font-size:2.074rem;--e-global-typography-e972675-line-height:1.1em;--e-global-typography-e972675-letter-spacing:-0.664px;--e-global-typography-31ad394-font-family:"Britti Sans";--e-global-typography-31ad394-font-size:1.728rem;--e-global-typography-31ad394-line-height:1.1em;--e-global-typography-31ad394-letter-spacing:-0.553px;--e-global-typography-85b49f2-font-family:"Britti Sans";--e-global-typography-85b49f2-font-size:1.44rem;--e-global-typography-85b49f2-line-height:1.3em;--e-global-typography-85b49f2-letter-spacing:-0.461px;--e-global-typography-bbd62d9-font-family:"Britti Sans";--e-global-typography-bbd62d9-font-size:1.2rem;--e-global-typography-bbd62d9-line-height:1.2em;--e-global-typography-bbd62d9-letter-spacing:-0.384px;--e-global-typography-499f10f-font-family:"Britti Sans";--e-global-typography-499f10f-font-size:0.833rem;--e-global-typography-499f10f-line-height:1.4em;--e-global-typography-499f10f-letter-spacing:-0.267px;--e-global-typography-f73fe45-font-family:"Britti Sans";--e-global-typography-f73fe45-font-size:0.694rem;--e-global-typography-f73fe45-line-height:1.4em;--e-global-typography-f73fe45-letter-spacing:-0.222px;background-color:var( --e-global-color-09fe826 );--e-page-transition-entrance-animation:e-page-transition-fade-out;--e-page-transition-exit-animation:e-page-transition-fade-in;--e-page-transition-animation-duration:500ms;}.elementor-kit-54 button,.elementor-kit-54 input[type="button"],.elementor-kit-54 input[type="submit"],.elementor-kit-54 .elementor-button{background-color:var( --e-global-color-544314d );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );border-radius:40px 40px 40px 40px;padding:.5rem 1.25rem .5rem 1.25rem;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:85vw;}.e-con{--container-max-width:85vw;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:32px;}.elementor-element{--widgets-spacing:32px 32px;--widgets-spacing-row:32px;--widgets-spacing-column:32px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1366px){.elementor-kit-54 button,.elementor-kit-54 input[type="button"],.elementor-kit-54 input[type="submit"],.elementor-kit-54 .elementor-button{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}}@media(max-width:1024px){.elementor-kit-54{--e-global-typography-ea684d9-font-size:2.875rem;--e-global-typography-499f10f-font-size:0.833rem;}.elementor-kit-54 button,.elementor-kit-54 input[type="button"],.elementor-kit-54 input[type="submit"],.elementor-kit-54 .elementor-button{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-54{--e-global-typography-primary-font-size:1rem;--e-global-typography-secondary-font-size:1rem;--e-global-typography-text-font-size:1rem;--e-global-typography-b7aa6fa-font-size:2.1rem;--e-global-typography-ea684d9-font-size:2rem;--e-global-typography-c766958-font-size:1.9rem;--e-global-typography-3750d36-font-size:1.6rem;--e-global-typography-e972675-font-size:1.35rem;--e-global-typography-31ad394-font-size:1.2rem;--e-global-typography-85b49f2-font-size:1.1rem;--e-global-typography-bbd62d9-font-size:1rem;--e-global-typography-bbd62d9-line-height:1.4em;--e-global-typography-499f10f-font-size:0.833rem;}.elementor-kit-54 button,.elementor-kit-54 input[type="button"],.elementor-kit-54 input[type="submit"],.elementor-kit-54 .elementor-button{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* X del Popup */
.dialog-close-button {
    display: none !important;
}
/* Botón */
.btn-custom, #btn-contacto {
  position: relative;
  overflow: hidden;
  cursor: pointer;
}

.btn-custom .elementor-button-text,
#btn-contacto .elementor-button-text{
  display: inline-block;
  transition: transform 0.4s ease;
}

.btn-custom .elementor-button-icon,
#btn-contacto .elementor-button-icon{
    margin-top: -3px;
}

.btn-custom:hover .elementor-button-text,
#btn-contacto:hover .elementor-button-text {
  animation: scroll-once 0.3s ease forwards;
}

@keyframes scroll-once {
  0% {
    transform: translateY(0%);
    opacity: 1;
  }
  49% {
    transform: translateY(-100%);
    opacity: 0;
  }
  50% {
    transform: translateY(100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0%);
    opacity: 1;
  }
}


.btn-custom svg,
#btn-contacto svg{
  transition: 0.3s ease;
  font-size: 8px;
  margin-top: 3px;
}

.btn-custom:hover svg,
#btn-contacto:hover svg{
  transform: scale(1.3);
}

/* Animacion linea horizontal títulos*/

.animated-border-on-scroll {
  position: relative;
  display: inline-block;
}

.animated-border-on-scroll::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  height: .5px;
  width: 100%;
  background-color: #000;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.5s ease;
}

.animated-border-on-scroll.visible::after {
  transform: scaleX(1);
}


/* Carrusel Proyectos */
.custom-carrusel .swiper-wrapper .swiper-slide {
  overflow: hidden;
}

.custom-carrusel .swiper-wrapper .swiper-slide .bg-image {
  position: relative;
  height: 50vh;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform 1.5s ease;
}

.custom-carrusel .swiper-wrapper .swiper-slide:hover .bg-image {
  transform: scale(1.05);
  cursor: pointer;
}


/* Controles del carrusel (sin variables) */
.custom-carrusel-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

/* Botón circular accesible */
.circle-button {
  position: relative;
  inline-size: 64px;
  block-size: 64px;
  min-inline-size: 44px;
  min-block-size: 44px;
  border: none;
  border-radius: 999px;
  background: transparent; /* transparente */
  color: #A6A09B;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: none; /* sin sombra */
  transition: transform .2s ease, color .2s ease;
  outline: none;
}

.circle-button:hover,
.circle-button:focus-visible {
  color: #0C0A09;
  transform: translateY(-1px);
}

.circle-button:active {
  transform: translateY(0);
}

.circle-button:focus-visible {
  outline: .5px solid #000; /* foco visible */
  outline-offset: 2px;
}

.circle-button[disabled] {
  opacity: .5;
  cursor: not-allowed;
  transform: none;
}


/* Círculo de progreso */
.circle-progress {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  transform: rotate(-90deg);
}

.circle-progress .bg {
  stroke: #d7d7d7;
  stroke-width: 0.5;
  fill: none;
}

.circle-progress .progress {
  /* circunferencia r=26 → ~163.36 */
  stroke: #000;
  stroke-width: 0.5;
  fill: none;
  stroke-dasharray: 163.36;
  stroke-dashoffset: 163.36; /* 100% oculto: anima reduciendo este valor */
  transition: stroke-dashoffset 1.5s ease;
}

/* Icono */
.circle-icon {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
}

.circle-icon svg {
  inline-size: 24px;
  block-size: 24px;
  fill: currentColor;
}

/* La tarjeta */
.card-bucle { display: flex; flex-direction: column; }

/* Área de imagen cuadrada */
.card-bucle .item-media {
  width: 100%;
  aspect-ratio: 1 / 1;      /* cuadrado perfecto */
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

/* Fallback si algún navegador antiguo no soporta aspect-ratio */
@supports not (aspect-ratio: 1 / 1) {
  .card-bucle .item-media {
    position: relative;
  }
  .card-bucle .item-media::before {
    content: "";
    display: block;
    padding-top: 100%; /* 1:1 */
  }
}

/* Textos debajo, sin afectar al cuadrado */
.card-bucle .item-meta { padding-top: .75rem; }


/* Reduce movimiento si el usuario lo prefiere */
@media (prefers-reduced-motion: reduce) {
  .circle-button { transition: none; }
  .circle-progress .progress { transition: none; }
}

/* Tablet */
@media (max-width: 768px) {
  .custom-carrusel-controls {
    gap: 14px;
    justify-content: center;
  }
  .circle-button {
    inline-size: 56px;
    block-size: 56px;
  }
  .circle-icon svg {
    inline-size: 22px;
    block-size: 22px;
  }
}

/* Móvil */
@media (max-width: 480px) {
  .custom-carrusel-controls {
    gap: 12px;
    inline-size: 100%;
    justify-content: space-between; /* útil para que queden a los lados */
  }
  .circle-button {
    inline-size: 52px;
    block-size: 52px;
  }
  .circle-icon svg {
    inline-size: 20px;
    block-size: 20px;
  }
}

/* RTL opcional: respeta el orden visual en contenedores RTL */
[dir="rtl"] .custom-carrusel-controls {
  direction: rtl;
}

.custom-carrusel-controls .circle-button:hover,
.custom-carrusel-controls .circle-button:focus,
.custom-carrusel-controls .circle-button:focus-visible {
  background-color: transparent !important;
}

/* Quitar fondo en hover, focus y estado normal */
.elementor-kit-54 .circle-button,
.elementor-kit-54 .circle-button:hover,
.elementor-kit-54 .circle-button:focus,
.elementor-kit-54 .circle-button:focus-visible {
  background-color: transparent !important;
}


/* Forzado del header */


/* ✅ Forzar header sólido en páginas con clase white-header en el <body> */
body:has(.white-header) {
    .she-header-transparent-yes, .elementor-editor-active .she-header-transparent-yes {
      background: #fff !important;
    }
    
    .elementor-nav-menu li a {
        color: var(--e-global-color-text) !important;
        fill: var(--e-global-color-text) !important;
    }
    
    header .elementor-button-icon svg {
        fill: white !important;
    }
    
    #logo {
        filter: invert(1);
    }
    
    .menu-toggle span {
         background: var(--e-global-color-text) !important;
    }
    
    .btn-custom a {
        background-color: var(--e-global-color-text)  !important;
        color: #fff !important;
        border: 1px solid var(--e-global-color-text) !important;
    
    }
    
    .btn-custom:hover a {
        background-color: #fff !important;
        color: var(--e-global-color-text)  !important ;
        border: 1px solid var(--e-global-color-text);
    }
    
    .btn-custom:hover svg {
        fill: var(--e-global-color-text) !important;
    }
}

.recaptcha_v3-inline {
    display: none;
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Britti Sans';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://estudioalto.com/wp-content/uploads/2025/08/72a87a52930e0dca4ebeb8dab269a8df.woff2') format('woff2');
}
/* End Custom Fonts CSS */