/*
Theme Name: Hello Elementor Child
Theme URI: https://elementor.com/hello-theme/?utm_source=wp-themes&utm_campaign=theme-uri&utm_medium=wp-dash
Template: hello-elementor
Author: Elementor Team
Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
Description: Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators.
Tags: accessibility-ready,flexible-header,custom-colors,custom-menu,custom-logo,featured-images,rtl-language-support,threaded-comments,translation-ready
Version: 3.5.1.1788343122
Updated: 2026-09-02 11:58:42

*/



.sin-br-767 br {
	@media screen and (width < 767px) {
		display: none;
	}	
}

.con-br-1200 br {
	@media screen and (width >= 1200px) {
		display: none;
	}	
}

.txt-balance p {
	text-wrap: balance;
}

.contador .elementor-counter-title {
	text-align: center;
	text-wrap: balance;
	@media screen and (width < 767px) {
		text-align: left;
	}
}



/* HEADER ----------------------------------------------------------------------------- */

header div.header-sticky  {
	width: 100% !important;
}
.header-sticky, .header-sticky.elementor-sticky--effects {
	width: 100%;
}

.header-sticky {
	transition: background 0.5s ease;
}
.header-sticky.elementor-sticky--effects {
    background-color: var(--verde-dark) !important;
}

.header-sticky > .max-w {
	transition: padding 0.5s ease;
}
.header-sticky.elementor-sticky--effects > .max-w-xl {
    padding-top: 6px;
	padding-bottom: 6px;
	@media screen and (width < 1024px) {
      padding-top: 1px;
	  padding-bottom: 1px;
	}
}

/* Logo */
.logo-descriptor {
	transform-origin: left center;
	transition: transform 0.3s ease;
}
.header-sticky.elementor-sticky--effects .logo-descriptor {
	transform: scale(0);
}

.logo-simbolo {
	transition: transform 0.3s ease;
}
.header-sticky.elementor-sticky--effects .logo-simbolo {
	transform: scale(0.75);
}

/* Submenú */
.header-sticky ul.sub-menu > li:first-child > a {
	padding-top: 20px !important;
	padding-bottom: 10px !important;
}
.header-sticky ul.sub-menu > li:last-child > a {
	padding-top: 10px !important;
	padding-bottom: 20px !important;
}

/* Menú offcanvas */
.e-off-canvas nav ul li:nth-child(2) a.elementor-item,
.e-off-canvas nav ul li:nth-child(3) a.elementor-item {
    padding-left: 20px !important;
}

/* Header entradas */
.single-post .header-sticky {
	background-color: var(--verde-dark) !important;
}



/* INICIO > HERO --------------------------------------------------------------------- */

.hero-inicio .max-w {
	position: relative !im
}
.hero-inicio .fondo-absolut {
	position: absolute !important;
	height: 105%;
	bottom: 0;
	left: 0;
	transition: all 0.3s ease;
}
@media (max-width: 1700px) {
    .hero-inicio .fondo-absolut {
        left: -5%;
    }
}
@media (max-width: 1600px) {
    .hero-inicio .fondo-absolut {
        leportant;ft: -10%;
    }
}
@media (max-width: 1500px) {
    .hero-inicio .fondo-absolut {
		
        left: -15%;
    }
}
@media (max-width: 1400px) {
    .hero-inicio .fondo-absolut {
		height: 110%;
        left: -25%;
    }
}
@media (max-width: 1300px) {
    .hero-inicio .fondo-absolut {
        left: -35%;
    }
}
@media (max-width: 1200px) {
    .hero-inicio .fondo-absolut {
        left: -30%;
    }
}



/* SECCION BLOG ---------------------------------------------------------------------- */

.h-blog h2 span:first-child {
	font-size: 24px;
	line-height: 0.8em;
}
.h-blog h2 span:nth-of-type(2) {
	font-size: 64px !important;
	letter-spacing: -0.04em;
	text-transform: uppercase;
	font-weight: 800;
	line-height: 1em;
	color: var(--azul-dark);
	@media screen and (width < 1024px) {
		font-size: 56px !important;
	}
	@media screen and (width < 767px) {
		font-size: 44px !important;
	}
}

.h-blog-proyecto h2 span:nth-of-type(2) {
	text-transform: none !important;
}

.h-blog-proyecto h2 br:last-child {
	@media screen and (width < 767px) {
		display: none !important;
	}
}

.blog-ultimas-noticias .e-loop-item:last-child {
	@media screen and (width < 1024px) {
		display: none !important;
	}
}



/* PROYECTO > CARRUSEL IMAGENES --------------------------------------------------------- */

.carrusel-imagenes-proyecto .swiper-wrapper {
    display: flex !important;
    align-items: stretch !important;
}

.carrusel-imagenes-proyecto .swiper-slide {
    height: auto !important;
    flex: 1 0 auto !important;
    display: flex !important;
    aspect-ratio: 1 / 1 !important;
}

.carrusel-imagenes-proyecto .swiper-slide-inner,
.carrusel-imagenes-proyecto .elementor-carousel-image {
    height: 100% !important;
    width: 100% !important;
    display: flex !important;
    aspect-ratio: 1 / 1 !important;
}

.carrusel-imagenes-proyecto .swiper-slide img {
    height: 100% !important;
    width: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    aspect-ratio: 1 / 1 !important;
}

.carrusel-imagenes-proyecto .swiper-pagination-bullets {
	bottom: -16px !important;
}



/* ENTRADAS Y TEXTOS LEGALES ----------------------------------------------------------- */

.entrada-blog h2, .entrada-blog h3, .entrada-blog h4, .entrada-blog h5, .entrada-blog h6, 
.textos-legales h2, .textos-legales h3, .textos-legales h4, .textos-legales h5, .textos-legales h6 {
	margin-top: 40px;
    margin-bottom: 24px;
}
.entrada-blog a, 
.textos-legales a {
	color: var(--negro);
	font-weight: 600;
}
.entrada-blog a:hover, 
.textos-legales a:hover {
	color: var(--azul-dark);
	font-weight: 600;
}
.entrada-blog ul, .entrada-blog ol, 
.textos-legales ul, .textos-legales ol {
	margin-bottom: 24px;
}
.entrada-blog li, 
.textos-legales li {
	margin-bottom: 12px;
}



/* CONTACT FORM ----------------------------------------------------------------------- */

.formulario-contacto p {
	margin: 0;
	padding: 0;
}

.formulario-contacto > div {
	margin-bottom: 24px;
}

.formulario-contacto label {
	font-family: var(--corporativa), sans-serif;
  font-size: var(--txt);
  color: var(--azul-dark);
	font-weight: 500;
  margin-bottom: 12px;
}

.formulario-contacto input, .formulario-contacto textarea, .formulario-contacto select {
	color: var(--negro);
	font-family: var(--corporativa), sans-serif;
	font-size: var(--txt);
	background-color: var(--blanco);
	border-radius: 8px !important;
	border: solid 1px var(--verde-dark) !important;
	padding: 16px;
}

.formulario-contacto textarea {
	min-height: 200px;
  resize: vertical;
	line-height: var(--txt-lineheight);
	margin-bottom: -6px;
	padding: 28px 16px;
}

.formulario-contacto .wpcf7-select {
	appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 40px !important;
  background: url("data:image/svg+xml,%3Csvg width='16' height='16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23143928' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center/16px 16px;
}

/* Focus */
.formulario-contacto input:focus, .formulario-contacto textarea:focus, .formulario-contacto select:focus {
	-webkit-appearance: none;
  -moz-appearance: none;
	outline: none;
	border-color: var(--negro) !important;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.15);
}

/* Autcompletado */
/* WebKit (Chrome, Safari) */
.formulario-contacto input:-webkit-autofill,
.formulario-contacto input:-webkit-autofill:hover,
.formulario-contacto input:-webkit-autofill:focus,
.formulario-contacto input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--negro) !important;
  font-family: var(--corporativa), sans-serif !important;
  font-size: var(--txt) !important;
  -webkit-box-shadow: 0 0 0px 1000px var(--blanco) inset !important;
  background-color: var(--blanco) !important; 
}
/* Firefox y otros navegadores modernos */
.formulario-contacto input:-moz-autofill,
.formulario-contacto input:-moz-autofill:hover,
.formulario-contacto input:-moz-autofill:focus,
.formulario-contacto input:-moz-autofill:active, .formulario-contacto input:autofill,
.formulario-contacto input:autofill:hover,
.formulario-contacto input:autofill:focus,
.formulario-contacto input:autofill:active {
  color: var(--negro);
  font-family: var(--corporativa), sans-serif !important;
  font-size: var(--txt) !important;
  background-color: var(--blanco) !important;
}

/* Legal */
.formulario-contacto .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.formulario-contacto .wpcf7-acceptance .wpcf7-list-item label {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 28px;
}

.formulario-contacto .wpcf7-acceptance .wpcf7-list-item .wpcf7-list-item-label {
	font-size: 14px !important;
	font-family: var(--corporativa), sans-serif !important;
	color: var(--azul-darker);
	margin-left: 24px;
	text-transform: none;
	font-weight: 400;
	line-height: var(--txt-lineheight);
}

.formulario-contacto .wpcf7-acceptance .wpcf7-list-item .wpcf7-list-item-label a {
	color: var(--azul-darker);
	text-decoration: none;
	font-weight: 500;
	transition: color 0.3s ease;
}
.formulario-contacto .wpcf7-acceptance .wpcf7-list-item .wpcf7-list-item-label a:hover {
	color: var(--negro);
}

/* Ocultar el checkbox por defecto */
.formulario-contacto input[type="checkbox"] {
    opacity: 0;
    position: absolute;
    width: 0;
    height: 0;
}

/* Nuevo checkbox personalizado */
.formulario-contacto .wpcf7-list-item-label::before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    width: 16px;
    height: 16px;
    background: var(--blanco);
	  border: solid 1px var(--verde-dark) !important;
    border-radius: 4px;
}
/* Icono de check */
.formulario-contacto input[type="checkbox"]:checked + .wpcf7-list-item-label::after {
    content: '';
    position: absolute;
    left: 3px;
    top: 7.5px;
    width: 10px;
    height: 5px;
    border: solid var(--verde-dark);
    border-width: 0 0 2px 2px;
    transform: rotate(-45deg);
}

/* Enviar */
.formulario-contacto .wpcf7-submit {
	background-color: var(--btn-primario) !important;
	color: var(--negro) !important;
	border: none !important;
	border-radius: var(--btn-radio) !important;
	padding: 12px 24px;
	font-family: var(--corporativa);
	font-size: var(--btn-size);
	transition: background-color 0.3s ease-in-out;
}
.formulario-contacto p input[type="submit"]:hover {
	background-color: var(--btn-primario-hover) !important;
}

/* Avisos */
.wpcf7-not-valid-tip {
	margin-top: 8px;
	font-family: var(--corporativa), sans-serif;
	color: firebrick;
}
.formulario-contacto .wpcf7-response-output {
	 margin: 32px 0 !important;
   padding: 24px 16px !important;
   font-family: var(--corporativa), sans-serif;
	font-size: var(--txt);
	line-height: var(--txt-lineheight);
  color: var(--verde-dark);
	border-color: var(--verde-light) !important;
	width: fit-content;
}
.formulario-contacto .wpcf7 .sent .wpcf7-response-output {
   color: var(--verde-dark);
	 border-color: var(--verde-light) !important;
}
.wpcf7 .invalid .wpcf7-response-output {
  color: var(--verde-dark);
	 border-color: firebrick !important;
}