/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 7.2
Version: 1.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
    color: inherit;
    text-decoration: none;
}

main {
	padding:30px 0px;
}

.vc_section {
	margin:0px auto !important;
}

.vc_row {
	margin:0px !important;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/

body {
	background-color:#eeeee9 !important;
}

.more-link {
	display: block;
}

.custom-header {
	padding:20px 0px;
}

.custom-header .grupo-menu {
    align-items: center;
    justify-content: center;
}

.custom-header .wp-block-image img {
	max-width: 140px;
}

.custom-header .wp-block-image {
	margin-right:auto;
}

.custom-header .menu-01 {
	margin:0 auto;
}

.custom-header .menu-02 {
	margin-right:auto;
}

.item {
	padding: 0px !important;
	border-radius: 5px !important;
}

.item a {
	background: #000;
	border-radius: 5px;
	font-family: 'Loew-ExtraBold';
	opacity:0;
	transition:.6s;
}

.item a:hover {
	opacity:1;
	transition:.6s;
}

footer {
	background:#1b1b19;
}

footer a {
	color: inherit !important;
	text-decoration: none !important;
}

.tipo-contacto ul {
    list-style: none;
    padding: 0;
    margin-bottom: 20px;
    display: flex;
    gap: 30px;
}

.tipo-contacto li {
    display: inline-block;
}

form {
	max-width: 70%;
	margin: 35px auto 0px !important;
}

.wpcf7-form label {
    display: block;
    margin-bottom: 15px;
    color: #000;
    font-size: 15px;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form textarea {
   	width: 100%;
    padding: 18px 20px 15px;
    border: 1px solid transparent;
    border-radius: 25px;
    background: #fff;
    font-size: 15px;
}

.wpcf7-form textarea {
    min-height: 150px;
    border-radius: 15px;
}

.checkbox-privacidad {
    font-size: 14px;
    display: flex;
    flex-wrap: wrap;
    text-align:left;
}

.checkbox-privacidad a {
	color: #000;
	font-weight: bold;
	margin-left: 5px;
}

.wpcf7-submit {
    background: #000;
    color: #fff;
    padding: 12px 40px;
    border: none;
    border-radius: 25px;
    cursor: pointer;
    margin-top: 20px;
}


.tipo-contacto {
	padding:10px 15px;
}


.tipo-contacto label {
	font-size: 19px;
}


/* Radio button seleccionado */
.tipo-contacto input[type="radio"]:checked {
    accent-color: #000;
}

/* Para navegadores que no soportan accent-color (método alternativo) */
.tipo-contacto input[type="radio"] {
    accent-color: #000;
}

/* Checkbox seleccionado */
.wpcf7-form input[type="checkbox"]:checked {
    accent-color: #000;
}

/* Para navegadores que no soportan accent-color (método alternativo) */
.wpcf7-form input[type="checkbox"] {
    accent-color: #000;
}

.separador-footer-02 {
	opacity: 0.3;
	background: #fff !important;
	width: 100%;
	height: 3px;
	margin: 0 0 40px;
}

.group-footer-02 {
	align-items: center;
	justify-content: center;
	padding: 0 0 50px;
	gap: 0px !important;
}

.footer-block-bot-01 {
    flex: 0 0 33.33%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: auto !important;
    margin-bottom: auto !important;
}

.footer-block-bot-01 p {
	margin-right: auto !important;
	margin-left: 0px !important;
}

.footer-block-bot-02 {
    flex: 0 0 33.33%;
    text-align: center;
    margin-top: auto !important;
    margin-bottom: auto !important;
}

.footer-block-bot-02 .logo-footer img {
	max-width: 150px !important;
	margin:0 auto;
}

.wp-block-social-links img {
	width:auto;
	height:auto;
}



.footer-block-bot-03 {
    flex: 0 0 33.33%;
    text-align: right;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: auto !important;
    margin-bottom: auto !important;
}

.footer-block-bot-03 p {
	margin: 0 20px !important;
}

.footer-block-bot-03 figure {
	margin: 0 !important;
}

.custom-grid-foot {
	justify-content: center;
	align-items: stretch !important;
	padding: 50px 0px !important;
}

.custom-grid-foot hr {
	width: 1px;
	background: #fff !important;
	opacity: 1;
	margin-right: auto;
	margin-left: auto;
}

.columna-derecha .vc_custom_1762436470092 {margin-top:auto;}

.textos-home {
	text-align:center;
}

.textos-home img {
	max-width:45px;
	margin-bottom: 40px !important;
}

.separador-top {
	height: 15%;
	width: 3px !important;
	background: #000;
	position: absolute;
	top: 0;
	left: 50%;
}

.grid-home-02 {
    display: flex;
    align-items: stretch;
    margin-top: 100px !important;
    margin-bottom: 100px !important;
    justify-content: center;
}

.grid-home-02 .imagen-right-middle img {
    max-width: 420px !important;
}

.separador-top .vc_sep_holder {display:none !important;}

.grilla-absolute {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.separador-bottom {
	position: absolute;
	top: -25%;
	bottom: 0;
	width: 3px !important;
	height: 145%;
	background: #000;
	margin: 0 auto;
	left: 50%;
}


.separador-bottom-02 {
	position: absolute;
	top: -45%;
	bottom: 0;
	width: 3px !important;
	height: 35%;
	background: #000 !important;
	margin: 0 auto;
	left: 50%;
}


.textos-home h3 {
	font-family: 'Monschone-Regular';
	font-size: 50px;
	line-height: 0.9;
}

.textos-home h3 em {
	font-style: normal;
	font-size: 35px;
	line-height: 0.9;
}

.textos-home p {
    font-family: 'Loew-Regular';
    font-size: 19px;
    line-height: 1.3;
    margin-top: 20px;
}

.textos-home a {
	background: #000;
	color: #fff;
	text-decoration: none;
	padding: 12px 30px 14px;
	display: inline-block;
	width: auto;
	text-transform: uppercase;
	font-size: 16px;
	border-radius: 5px;
	margin-top: 50px;
	line-height: 1;
	font-family: 'Loew-Bold';
	transition:.6s;
}

.textos-home a:hover {
	background:#fff;
	color:#000;
	transition:.6s;
}


.textos-home-02 h3 {
	font-family: 'Monschone-Regular';
	font-size: 50px;
	line-height: 1;
	color:#fff;
	margin:30px 0px 0px;
}

.textos-home-02 h3 em {
	font-style: normal;
	font-size: 35px;
}

.textos-home-02 h5 {
    font-family: 'Loew-Regular';
    font-size: 20px;
    line-height: 1.3;
    margin-top: 20px;
    color:#fff;
    margin:0px;
}


.carrusel-home-wrapper {
    position: relative;
    width: 100%;
    height: 440px;
    overflow: hidden;
    margin: 0px 0px 80px !important;
}

.carrusel-home {
    position: relative;
    height: 100%;
    width: 100%;
}

.slide-item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease-in-out;
}

.slide-item.active {
    opacity: 1;
    pointer-events: auto;
    z-index: 2;
}

.slide-item.exiting {
    opacity: 1;
    z-index: 3;
    transition: opacity 0.4s ease-out;
}

.slide-item.entering {
    opacity: 0;
    z-index: 1;
}

/* Contenedor de la imagen centrada */
.slide-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: var(--bg-image);
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat;
    z-index: 1;
}

/* Overlay con gradiente */
.slide-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0) 70%);
    z-index: 2;
}

/* Contenido del slide - posicionado a la izquierda */
.slide-content {
    position: relative;
    z-index: 3;
    text-align: left;
    color: white;
    padding: 4rem;
    padding-left: 15%;
    max-width: 800px;
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.6s ease-out 0.3s, transform 0.6s ease-out 0.3s;
}

.slide-item.active .slide-content {
    opacity: 1;
    transform: translateX(0);
    transition: opacity 0.6s ease-out 0.5s, transform 0.6s ease-out 0.5s;
}

.slide-item.exiting .slide-content {
    opacity: 0;
    transform: translateX(-80px);
    transition: opacity 0.4s ease-in, transform 0.4s ease-in;
}

/* Subtítulo */
.slide-subtitulo {
    font-size: 19px;
    font-weight: 300;
    margin-bottom: 15px;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
    font-family: 'Loew-Regular';
}

.slide-item.active .slide-subtitulo {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.6s;
}

/* Título */
.slide-titulo {
    font-size: 42px;
    font-weight: 300;
    line-height: normal;
    margin: 0;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    font-family: 'Monschone-Regular';
}

.slide-item.active .slide-titulo {
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0.8s;
}

/* Controles */
.carrusel-prev,
.carrusel-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    backdrop-filter: none;
    border: none;
    color: white;
    width: 50px;
    height: 50px;
    cursor: pointer;
    z-index: 10;
    transition: all 0.3s;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.carrusel-prev img,
.carrusel-next img {
    max-width: 20px;
}

.carrusel-prev:hover,
.carrusel-next:hover {
    background: none;
    transform: translateY(-50%) scale(1.09);
}

.carrusel-prev {
    left: 2rem;
}

.carrusel-next {
    right: 2rem;
}

.carrusel-prev svg,
.carrusel-next svg {
    width: 24px;
    height: 24px;
}

.indicator-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    border: 2px solid rgba(255, 255, 255, 0.6);
    cursor: pointer;
    transition: all 0.3s;
    padding: 0;
}

.indicator-dot.active {
    background: white;
    transform: scale(1.3);
    border-color: white;
}

.indicator-dot:hover {
    background: rgba(255, 255, 255, 0.7);
}

/* Responsive */
@media (max-width: 1024px) {
    .slide-item::before {
        left: 10%;
    }
    
    .slide-item.active::before {
        left: 10%;
    }
    
    .slide-overlay {
        left: 10%;
    }
    
    .slide-item.active .slide-overlay {
        left: 10%;
    }
    
    .slide-content {
        padding-left: calc(10% + 3rem);
        max-width: 600px;
    }
    
    .slide-titulo {
        font-size: 2.5rem;
    }
}

@media (max-width: 768px) {
    .carrusel-home-wrapper {
        height: 500px;
    }
    
    .slide-item::before {
        left: 5%;
        border-radius: 20px 0 0 20px;
    }
    
    .slide-item.active::before {
        left: 5%;
        border-radius: 20px 0 0 20px;
    }
    
    .slide-overlay {
        left: 5%;
        border-radius: 20px 0 0 20px;
    }
    
    .slide-item.active .slide-overlay {
        left: 5%;
        border-radius: 20px 0 0 20px;
    }
    
    .slide-content {
        padding: 2rem;
        padding-left: calc(5% + 2rem);
        max-width: 90%;
    }
    
    .slide-titulo {
        font-size: 2rem;
    }
    
    .slide-subtitulo {
        font-size: 0.9rem;
    }
    
    .carrusel-prev,
    .carrusel-next {
        width: 40px;
        height: 40px;
    }
    
    .carrusel-prev {
        left: 1rem;
    }
    
    .carrusel-next {
        right: 1rem;
    }
}

.post .wp-block-columns {
	max-width:100%;
	align-items:center !important;
}

.post .titulo-proyecto {
	font-family: 'Monschone-Regular';
	font-size: 44px;
	position:relative;
}

.post .separador-titulo-proyecto {
    width: 2px;
    height: 5em;
    background: #000;
    opacity: 1;
}

.post .wp-block-gallery-is-layout-flex img {
	border-radius:5px;
}

.post .wp-block-heading {
	font-family: 'Monschone-Regular';
	font-size: 35px;
	position: relative;
	text-align: center;
	margin-top: 200px;
	margin-bottom: 40px;
}

.post .wp-block-heading:before {
	content:'';
	position: absolute;
	width: 2px;
	height: 3em;
	right: 50%;
	bottom: 180%;
	background: #000;

}

.wp-block-navigation-item__content span {
	font-family: 'Loew-Bold';
	font-size: 14px;
	text-transform: uppercase;
	font-weight: normal;
	line-height: normal;
	padding:0px 8px;
}

.post .parrafo-proyecto {
	font-family: 'Loew-Regular';
	font-size: 15px;
	margin: 15px 0 100px;
	max-width:90%;
}
.post .parrafo-mini-proyecto {
	font-family: 'Loew-Regular';
	font-size: 15px;
	margin: 0px;
}

.post .parrafo-mini-proyecto strong {
	font-family: 'Loew-ExtraBold';
}

.post .container {
	padding:0px 8%;
}

.custom-video-wrapper video, .custom-video-wrapper .custom-video-overlay {
	border-radius:60px;
}

.post iframe {
	border-radius: 5px;
}

.columna-derecha img {
	border-radius:5px;
}

.columna-izquierda {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.textos-home-02 a {
	background: #fff;
	color: #000;
	text-decoration: none;
	padding: 12px 30px 14px;
	display: inline-block;
	width: auto;
	text-transform: uppercase;
	font-size: 16px;
	border-radius: 5px;
	margin-top: 30px;
	line-height: 1;
	font-family: 'Loew-Bold';
	transition:.6s;
}

.textos-home-02 a:hover {
	background:#000;
	color:#fff;
	transition:.6s;
}

.hablemos-top {
	border-right: 1px #000 solid;
	padding-right: 17px !important;
}

.nav-gral {
	width: 85%;
}

.nav-contn-grl {
	margin: 0 auto !important;
}
.nav-btns-grl {
	margin-left:auto  !important;
}

.content-boton-hablemos {
	margin-left:auto ;
}

.hablemos-top a {
	background: #000 !important;
	color: #fff !important;
	font-family: 'Loew-Bold';
	text-transform: uppercase;
	padding: 8px 11px 10px !important;
	display: inline-block !important;
	font-size: 13px;
	border-radius: 8px;
} 

.separador-nosotras {
	width: 2px !important;
	background: #000;
	height: 140px;
	border: none;
}

.separador-nosotras .vc_sep_holder {
	display:none;
}

.text-nosotras h3 {
	font-family: 'Monschone-Regular';
	font-size: 53px;
	font-weight: normal;
	margin-bottom: 30px;
}
.text-nosotras p {
	font-family: 'Monschone-Regular';
	font-size: 19px;
	line-height: 1.1;
	font-weight: normal;
}

.text-nosotras-02 h3 {
	font-family: 'Monschone-Regular';
	font-size: 38px;
	margin-bottom: 35px;
	margin-top: 65px;
}
.text-nosotras-02 p {
	font-family: 'Loew-Regular';
	font-size: 21px;
	margin-bottom: 85px;
}

.textos-contacto {text-align:center;}
.textos-contacto h3 {
	font-family: 'Monschone-Regular';
	font-size: 39px;
	font-weight: normal;
	margin-bottom: 10px;
	margin-top: 35px;
}

.textos-contacto img {
	max-width:45px;
}

.textos-contacto p {
	font-family: 'Monschone-Regular';
	font-size: 20px;
	line-height: 1.1;
	font-weight: normal;
}

footer h2 {
	font-family: 'Loew-Medium';
	color: #fff;
	font-size:20px;
}
footer p {
	font-family: 'Loew-Regular';
    margin: 0 0 2px !important;
	font-size: 14px;
	color: #818181;
}

footer .wp-block-group {margin-bottom:auto;}


@media (max-width: 767px) {

	form {
		max-width:90%;
	}

	main {
		padding:0px;
	}

	.grilla-absolute {
		position: relative;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		background-image: url('/wp-content/uploads/2025/11/imagen-home-04.png');
		flex-direction: column;
		padding: 10px 30px 40px;
		background-size: 250%;
		background-position: center;
		border-radius: 50px;
	}

	.image-home-prensa {
		display:none;
	}

	.home-obras {
		padding: 0 15px;
		margin-top: -120px !important;
	}

	.separador-bottom-02 {
    position: relative;
    top: 0px;
    bottom: 0;
    width: 3px !important;
    height: 150px;
    background: #000 !important;
    margin: -100px auto 50px;
    left: 0px;
    width: 3px; 

    }

	.wp-block-navigation__responsive-container {
		border: 2px #000 solid;
	}

	.wp-block-navigation__responsive-container-content {
		padding:10px 0px;
	}

	.wp-block-navigation__container {
		padding: 0px;
		margin: 0;
		width: 100%;
	}

	.grid {
		gap:1px;
	}

	.textos-home p {
	    margin-bottom: 40px !important;
	}

	.custom-header .wp-block-image img {
		max-width:120px;
	}

	.vc_column_container>.vc_column-inner {
		padding-left: 0px !important;
		padding-right: 0px !important;
		padding-top: 10px;
	}

	.nav-gral {
		width:60%;
		flex-wrap: nowrap;
		flex-direction: row-reverse;
	}

	.hablemos-top a {
		font-size:8px;
	}

	.separador-top {
		height: 100px;
		width: 3px !important;
		background: #000;
		position: relative;
		top: 0;
		left: 0;
	}

	.grid-home-02 .imagen-right-middle img {
		max-width:100% !important;
	}

	.carrusel-home-wrapper {
		display:none;
	}

  .grid-home-02, .group-footer-02, .custom-grid-foot {
  	flex-direction:column;
  }

  .group-footer-02 {
  	gap:30px !important;
  }
}


