@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
	   only screen and (min--moz-device-pixel-ratio: 1.5),
	   only screen and (min-device-pixel-ratio: 1.5){
}





/* RESPONSIVE HORIZONTAL */




/* ----------------------------------------------------------------------*/

/* 1400
 
-------------------------------------------------------------------------*/
@media screen and (max-width: 1400px){
	
	
	/* #root */ 
	:root {


		/* size */
		--size                  : 1rem; /* 16px */
		--size-1                : 3.5rem; /* 60px */
		--size-2                : 2.6rem; /* 34px */
		--size-3                : 2.2rem; /* 30px */
		--size-4                : 1.8rem; /* 26px */
		--size-5                : 1.45rem; /* 22px */
		--size-6                : 1.2rem; /* 18px */

		

		/* header */
		--h-header              : 100px;
		--h-header-scroll       : 60px;
		--col-header-right      : 1fr;
		--bg-header             : var(--fff);

		/* logo */
		--w-logo                : 142px;
		--w-logo-footer         : 50px;

		/* cabezal */
		--h-cabezal             : 300px;
		
	}  



	/* logo */
	.site-branding {
		padding-bottom: 15px;
	}

	/* menu */
	.site-header .main-navigation ul li a {
		padding-bottom: 15px;
		font-size     : .9rem;
	}



}





/* ----------------------------------------------------------------------*/

/* 1200
 
-------------------------------------------------------------------------*/
@media screen and (max-width: 1200px){



	.sec--slide a {
		font-size: var(--size-3);
	}



}






/* ----------------------------------------------------------------------*/

/* 1024
 
-------------------------------------------------------------------------*/
@media screen and (max-width: 1024px){



	.obra-title {
		font-size: 1.2rem;
	}

	







}






/* ----------------------------------------------------------------------*/

/* 991
 
-------------------------------------------------------------------------*/

@media (min-width: 768px) and (max-width:991px) {
    .vc_hidden-sm {
        display: flex !important
    }

    .vc_el-clearfix-sm {
        clear: both
    }
}

@media screen and (max-width: 991px){


	:root {
		--w-logo: 180px;
	}
	
	
	.site-header {
		height: 70px !important
	}
	
	.site-header .container--gr section {
		grid-template-columns: var(--w-logo-scroll) 1fr
	}
	
	.site-branding {
		padding-bottom: 0 !important
	}


	/* Mobile */
	#site-navigation {
		display: none;
	}

	.btn--menu {
		display         : block;
		position        : absolute;
		margin          : auto;
		width           : 25px;
		height          : 30px;
		background-color: transparent;
		cursor          : pointer;
		transform       : translateX(0);
		font-size       : 0;
		bottom          : 15px;
		right           : 15px;
		margin          : auto;
	}

	    .btn--menu span {
			position     : absolute;
			top          : 0;
			right        : 0;
			bottom       : 0;
			left         : 0;
			width        : 100%;
			height       : 2px;
			margin       : auto;
			border-radius: 0;
			transition   : background 0s .25s;
			background   : var(--000);
	    }


	        .btn--menu span:before,
	        .btn--menu span:after {
				position           : absolute;
				width              : inherit;
				height             : inherit;
				content            : '';
				transition-delay   : .25s, 0s;
				transition-duration: .25s, .25s;
				background         : var(--000);
				border-radius      : 0;
				width              : 100%;
				transform          : translateX(0);
				transition         : all .3s ease;
	        }
	        .home .btn--menu span:before,
	        .home .btn--menu span:after {
				background         : var(--000);
	        }
	        .btn--menu span:before {
				top                : -8px;
				transition-property: top, -webkit-transform;
				transition-property: top, transform;
	        }
	        .btn--menu span:after {
				bottom             : -8px;
				transition-property: bottom, -webkit-transform;
				transition-property: bottom, transform;
	        }



	    /* hover - activo */
	    body.visible--menu #flag--menu + span {
	        background: none;
	    } 
	    body.visible--menu #flag--menu + span:before {
	        top: 0;
	        -webkit-transform: rotate(45deg);
	                transform: rotate(45deg);
	    }
	    body.visible--menu #flag--menu + span:after {
	        bottom: 0;
	        -webkit-transform: rotate(-45deg);
	                transform: rotate(-45deg);
	    }
	    body.visible--menu #flag--menu + span:before,
	    body.visible--menu #flag--menu + span:after {
	        transition-delay: 0s, .25s;
	    }

	    .btn--menu input {
	    	opacity: 0;
	    }


		/* hover */
		.btn--menu:hover {
			background-color: transparent;
		}
		.btn--menu:hover span:before,
		.btn--menu:hover span:after {
			transform: translateX(0);
		}

	.cont--menu.mobile {
		width           : 100%;
		height          : calc(100% - var(--h-header));
		position        : fixed;
		top             : 0;
		left            : 0;
		transform       : translateY(-1000px);
		background-color: rgba(255, 255, 255, .9);
		transition      : var(--transition);
	}

	.visible--menu .cont--menu.mobile {
		display  : flex;
		transform: translateY(70px);
		z-index  : 991;
	}

	.scroll--down .cont--menu.mobile {
		top             : var(--h-header-scroll);
		height          : calc(100% - 70px);
	}

		.cont--menu.mobile > div {
			width          : 100%;
			float          : left;
			padding        : 50px;
			align-items    : flex-start;
			flex-direction : column;
			justify-content: start;
		}

		/* user */
		.cont--menu.mobile .cont--user {
			transform     : translateY(30px);
			padding-bottom: 15px;
			border-bottom : 1px solid var(--eee);
		}

		/* section */
		.cont--menu.mobile ul {
			width         : 100%;
			float         : left;
			flex-direction: column;
			margin-top    : 30px;
			padding-left  : 0;
		}
		.cont--menu.mobile ul .sub-menu {
			width     : 100%;
			float     : left;
			display   : none;
			margin-top: 0 !important;
		}

			.cont--menu.mobile ul li {
				width     : 100%;
				padding   : 0;
				text-align: right;
				float     : left;
				list-style: none;
			}

			.cont--menu.mobile ul li.menu-item-has-children {
				display: block !important;
			}

				.cont--menu.mobile ul li.menu-item-has-children > a {
					width                : 100%;
					display              : grid;
					grid-template-columns: 1fr;
					align-items          : center;
					justify-content      : space-between;
					color                : var(--000);

					pointer-events       : none !important;
				}
				.cont--menu.mobile ul li.menu-item-has-children > a {
					color: var(--000);
				}

				.cont--menu.mobile ul li a {
					float          : right;
					text-decoration: none;
					padding        : 15px 0 15px 30px;
					font-size      : var(--size-6);
					color          : var(--000);
					text-align     : right;
					border-bottom  : 1px solid rgba(var(--000-rgb) / .35);
				}

				.cont--menu.mobile ul li a:hover {
					font-weight  : 500;
					border-bottom: 1px solid rgba(var(--fff-rgb) / .98);
				}

	.site-main {
		padding-top: 70px !important
	}

	.sec--slide a {
		font-size   : var(--size-4);
		padding-left: 15px;
	}





	.site-footer .container--gr section.d--grid {
		grid-template-columns: 1fr;
	}

	.footer-social-links {
		justify-content: flex-start;
	}


}





/* ----------------------------------------------------------------------*/

/* 768
 
-------------------------------------------------------------------------*/
@media screen and (max-width: 768px){

	:root {

		--padding-container: 30px;

	}
	
	.sec--b .col--left {
		padding-bottom: 0 !important
	}
	.sec--b .col--left .vc_column-inner {
		padding-bottom: 0 !important
	}
	
	.sec--b .col--right {
		padding-top: 0 !important;
		transform: translatey(-15px)
	}
	.sec--b .col--right .vc_column-inner {
		padding-left: 15px !important;
		padding-top: 0 !important
	}
	
	
	.sec--cabezal .col--right {
		padding: 15px 50px !important
	}
	
	.cont--svg div {
		left: auto
	}
	
	.column--2-fix .wpb_wrapper,
	.column--2 .wpb_text_column .wpb_wrapper {
		column-count: 1;
		column-gap  : 0;
	}


	/* obras grid */
	.grid--obras {
		gap: 0;
		grid-template-columns: 1fr;
		padding: 0;
	}

		.grid--obras article {
			margin-bottom: 15px !important
		}

		.obra-card:nth-child(4n-3), .obra-card:nth-child(4n) {
			grid-column: inherit;
		}

		.category-obras .wpb-content-wrapper > .vc_row.wpb_row.vc_row-fluid {
			display: flex;
			flex-direction: column-reverse;
		}

		 .obra-excerpt, .obra-excerpt * {
			display   : none !important;
			visibility: hidden;
		 }


	/* obra */
	.category-obras .wpb_column.vc_col-sm-4 p {
		font-size: 1rem;
	}



	#custom_html-2 {
		left: auto
	}
	
	.site-footer .widget {
		margin-bottom: 0;
		padding-bottom: 0;
	}
	
	


}






/* ----------------------------------------------------------------------*/

/* 640
 
-------------------------------------------------------------------------*/
@media screen and (max-width: 640px){


	/* #root */ 
	:root {


		/* size */
		--size                  : .95rem; /* 16px */
		--size-1                : 3rem; /* 60px */
		--size-2                : 2.4rem; /* 34px */
		--size-3                : 2rem; /* 30px */
		--size-4                : 1.6rem; /* 26px */
		--size-5                : 1.3rem; /* 22px */
		--size-6                : 1.15rem; /* 18px */

		
	}  


	.sm-slide-content {
		padding-bottom: 60px !important;
	}

	.sm-hero-slider .swiper-button-next::after, 
	.sm-hero-slider .swiper-button-prev::after {
		font-size: 20px !important;
	}

	.sm-slider-controls {
		left     : 0 !Important;
		transform: translateY(8px);
		bottom   : 60px;
	}
	
	
	
	.sec--entrada p {
		font-size: 1.05rem
	}

}





/* ----------------------------------------------------------------------*/

/* 480
 
-------------------------------------------------------------------------*/
@media screen and (max-width: 480px){


	/* #root */ 
	:root {


		/* size */
		--size                  : .92rem; /* 16px */
		--size-1                : 2.8rem; /* 60px */
		--size-2                : 2.2rem; /* 34px */
		--size-3                : 1.85rem; /* 30px */
		--size-4                : 1.55rem; /* 26px */
		--size-5                : 1.2rem; /* 22px */
		--size-6                : 1.05rem; /* 18px */

		
	}  


	.category-obras .wpb_column.vc_col-sm-4 h2 {
		font-size: var(--size-4);
	}

	.category-obras .col--galeria .main-image-wrapper a:before {
		font-size: 38px;
	}



	.contact-item i {
		font-size: 20px;
	}

}



/* Tablets (Menos de 1024px) */
@media (max-width: 1024px) {
    :root {
        --size-1: 3.5rem;
        --size-2: 3rem;
        --size-3: 2.6rem;
        --size-4: 2.2rem;
        --size-5: 1.8rem;
        --size-6: 1.2rem;
    }
}

/* Móviles comunes (Menos de 768px) */
@media (max-width: 768px) {
    :root {
        --size: 1rem;      /* Mantenemos legible el cuerpo */
        --size-1: 2.9rem;  /* Reducción proporcional fuerte para títulos grandes */
        --size-2: 2.4rem;
        --size-3: 2rem;
        --size-4: 1.75rem;
        --size-5: 1.4rem;
        --size-6: 1.15rem;
    }
}