/* ----> BOTONES <---- */

a.boton-por-defecto {
    color: #FFF !important;
}

a.boton-por-defecto {
    color: #FFF !important;
    padding: 10px 20PX;
    border: 1px solid;  
    position: relative;
    transition: all ease 0.3s;
    border-radius: 50px;
}

a.boton-por-defecto svg path {
    stroke: #FFF;
}

a.boton-por-defecto:hover svg path {
    stroke: #000;
}

a.boton-por-defecto > * {
    z-index: 2;
    position: relative;
}

a.boton-por-defecto:hover {
    color: #000 !important;
    border-color: #FFF;
}

a.boton-por-defecto::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0%;
    background-color: #FFFFFF;
    border-radius: 50px;
    opacity: 0;
    transition: all 0.5s ease;
}

a.boton-por-defecto:hover::before {
    width: 100%;
    opacity: 1;
}

a.boton-por-defecto.alternativo {
    color: #000 !important;
    border-color: #000;
}

a.boton-por-defecto.alternativo::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0%;
    background-color: #000;
    border-radius: 50px;
    opacity: 0;
    transition: all 0.5s ease;
}

a.boton-por-defecto.alternativo:hover::before {
    width: 100%;
    opacity: 1;
}

a.boton-por-defecto:hover.alternativo {
    color: #FFF !important;
}

a.boton-con-flecha span.flecha-dentro-boton {
    border-left: 2px solid #000 !important;
}

a.boton-con-flecha:hover span.flecha-dentro-boton {
    border-top: 2px solid #000;
    border-left: 2px solid #000 !important;
    border-bottom: 2px solid #000;
}


/* ----> FIN BOTONES <---- */

p.texto-destacado {
    font-size: 35px;
    line-height: 1.22;
}

a.texto-destacado-interior {
    font-size: 60px;
    display: block;
    font-weight: 500;
    padding-top: 25px;
    color: #000;
}

span.texto-destacado-interior:hover {
    color: #6d6d6d;
}


/* --> ESTILOS MENÚ <-- */

div#menu-por-encima > div {
    max-width: 900px;
    margin: 10% auto;
    display: flex;
    flex-direction: row;
    gap: 1%;
}

div#menu-por-encima>div>div {
    padding: 2%;
}

ul#menu-cabecera {
    list-style: none;
}

ul#menu-cabecera > li >a {
    color: #FFF;
    font-size: 80px;
    line-height: 85px;
    transition: color 0.3s ease;
}

.columna-imagen > div > a {
    display: block;
}

div#menu-por-encima > div {
    max-width: 1000px;
    margin: auto;
    display: flex;
    flex-direction: row;
    gap: 1%;
    justify-content: space-between;
    height: 100%;
    align-items: center;
}

ul#menu-cabecera:hover > li > a{
    color: #6d6d6d;
    transition: color 0.3s ease;
}

ul#menu-cabecera > li:hover > a {
    color: #FFF;
    transition: color 0.3s ease;
}

.columna-imagen div:hover a {
    color: #6d6d6d;
    transition: color 0.3s ease;
}

.columna-imagen div a {
    color: #FFF;
    font-size: 20px;
    transition: color 0.3s ease;
}

.columna-imagen div a:hover {
    color: #FFF;
    transition: color 0.3s ease;
}

.columna-imagen img {
    border-style: none;
    height: 200px;
    max-width: 100%;
    width: 200px;
    object-fit: cover;
    margin-bottom: 20%;
}

.footer-menu-por-encima {
    position: absolute;
    bottom: 0px;
    width: 100%;
    display: flex;
    justify-content: space-between;
    left: 0;
}

.footer-menu-por-encima a {
    color: #FFF;
    font-size: 16px;
    transition: color 0.3s ease;
    padding: 10px;
}

.footer-menu-por-encima > div:first-child:hover > a {
    color: #6d6d6d;
    transition: color 0.3s ease;
}

.footer-menu-por-encima > div:first-child > a:hover {
    color: #FFF;
    transition: color 0.3s ease;
}

.footer-menu-por-encima > div:last-child > a:hover {
    color: #6d6d6d;
    transition: color 0.3s ease;
}
/* --> FIN ESTILOS MENU <-- */

/* --> BLOQUE SERVICIOS <-- */

.posicion-sticky.elementor-widget.elementor-widget-heading {
    height: 100%;
}

.posicion-relative.elementor-widget.elementor-widget-heading {
    position: relative;
}

.posicion-sticky.elementor-widget.elementor-widget-heading h2 {
    position: sticky;
    top: 180px;
    bottom: 0;
}

/* --> FIN BLOQUE SERVICIOS <-- */

/* --> FOOTER <-- */

.footer-menu-textos-legales {
    width: 100%;
    display: flex;
    justify-content: space-between;
}

.footer-menu-textos-legales a {
    color: #FFF;
    font-size: 16px;
    transition: color 0.3s ease;
    padding-left: 5px;
}

.footer-menu-textos-legales > div:first-child > a:hover {
    color: #6d6d6d;
    transition: color 0.3s ease;
}

.footer-menu-textos-legales > div:last-child > a:hover {
    color: #6d6d6d;
    transition: color 0.3s ease;
}

.footer-menu-textos-legales p {
    display: inline-block;
    font-size: 16px;
    color: #FFF;
}

.cta-contacto-footer {
    padding-top: 175px;
    padding-bottom: 60px;
}

a.boton-grande-hablamos {
    font-size: 150px;
    font-weight: 600;
    letter-spacing: -10px;
    color: #FFF;
    transition: color ease 0.3s;
}

a.boton-grande-hablamos:hover {
    color: #6d6d6d;
    transition: color ease 0.3s;
}

/* --> FIN FOOTER <-- */