:root {
	--blanco: #fff;
	--gris: #5f5f5f;
	--verde: #23bd8b;
	--negro: #000;
}
.justifica {
	text-align: justify;
	hyphens: auto; /* Divide palabras con guiones */
	text-justify: inter-word; /* Distribución inteligente de espacios (Chrome/Edge) */
}

/* Define el idioma para que funcione hyphens:auto */
html {
	lang: 'es';
}
#inicio {
	position: relative;
	overflow: hidden;
	min-height: 91vh;
}

#inicio .hero-bg {
	position: absolute;
	top: 50%;
	left: 50%;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	transform: translate(-50%, -50%);
	object-fit: cover;
	z-index: 1;
	background: url('../img/hero.jpg') center/cover no-repeat;
}

#inicio .overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.4);
	z-index: 2;
}

#inicio .container {
	position: relative;
	z-index: 3;
}
.lead {
	font-size: 1.35rem;
}
.nav-link {
	font-size: 1.2em;
}

.nav-link:hover {
	color: var(--verde);
}

.nav-link.active {
	color: var(--verde) !important; /* El !important es necesario para sobrescribir los estilos de Bootstrap */
}

.btn-custom {
	padding: 12px 30px;
	font-size: 1.1rem;
	transition: all 0.3s ease;
	border: 2px solid var(--blanco);
	background-color: transparent;
	color: var(--blanco);
}

.btn-custom:hover {
	background-color: var(--blanco);
	color: var(--negro);
}

.section {
	padding: 80px 0;
}
.section:nth-child(even) {
	background-color: var(--blanco);
}
.project-card {
	margin-bottom: 20px;
	transition: transform 0.3s;
}
.project-card:hover {
	transform: translateY(-5px);
}
.counter-box {
	text-align: center;
	padding: 20px;
	background: var(--blanco);
	border-radius: 10px;
	box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}
.counter-number {
	font-size: 2.5rem;
	font-weight: bold;
	color: var(--verde);
}

.logo {
	height: 70px;
}
#inicio {
	scroll-margin-top: 110px;
}

#nosotros,
#servicios,
#proyectos,
#clientes,
#contacto {
	scroll-margin-top: 90px;
}
.center-item {
	display: flex;
	flex-direction: column;
	justify-content: center;
	/* height: 100%; */
}

.dataTables_wrapper {
	padding: 20px;
}
.table thead {
	background-color: #f8f9fa;
}

section h2 {
	color: var(--verde);
}

section p {
	font-size: 1.2rem;
}

.gris {
	background-color: #3939390f;
}

section .container img {
	border-radius: 10px;
}

footer {
	background-color: #333;
	color: #fff;
	padding: 50px 0 20px;
}

footer h5 {
	color: var(--verde);
}

.footer-logo {
	max-width: 200px;
	margin-bottom: 20px;
}

.footer-links {
	list-style: none;
	padding: 0;
}

.footer-links li {
	margin-bottom: 10px;
}

.footer-links a {
	color: #fff;
	text-decoration: none;
	transition: color 0.3s ease;
}

.footer-links a:hover {
	color: var(--verde, #28a745);
}

.contact-info i {
	margin-right: 10px;
	color: var(--verde, #28a745);
}

.footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	margin-top: 30px;
	padding-top: 20px;
}

/* Green */
.success {
	background-color: var(--verde);
	color: var(--blanco);
}

.success:hover {
	border-color: var(--verde);
	color: var(--verde);
}

.centrar {
	margin: 0 auto;
}

/* Estilos para datatables */
.active > .page-link,
.page-link.active {
	color: var(--blanco);
	background-color: var(--verde);
	border-color: var(--verde);
}

.flogoverde {
	background-color: var(--verde);
	color: var(--blanco);
}

.flogogris {
	background-color: var(--gris);
	color: var(--blanco);
}

.linea_blanca {
	border-top: 1px solid rgba(255, 255, 255, 0.32);
	margin-top: 15px;
	padding-top: 17px;
}

.linea_gris {
	border-top: 1px solid rgba(0, 0, 0, 0.15);
	margin-top: 15px;
	padding-top: 17px;
}

#servicios h5 {
	color: var(--verde);
}

.page-link {
	color: var(--verde);
}
.page-link:hover {
	color: var(--verde);
}

#scrollUpButton {
	position: fixed;
	bottom: 20px;
	right: 20px;
	background-color: var(--verde);
	color: var(--blanco);
	border: none;
	padding: 1px 25px 1px 17px;
	border-radius: 50%;
	cursor: pointer;
	display: none;
	z-index: 1000;
	font-size: 50px;
	transition: opacity 0.3s;
}
#scrollUpButton:hover {
	background-color: var(--gris);
}
#scrollUpButton .arrow {
	display: inline-block;
	transform: rotate(-90deg); /* Rota el símbolo ">" para que apunte hacia arriba */
}
/* En móvil (≤ 767px) */
@media (max-width: 767px) {
	#imagen-nosotros {
		max-width: 100% !important; /* Ancho completo */
		float: none !important; /* Elimina el float */
		margin-right: 0 !important; /* Elimina margen derecho */
		margin-bottom: 1rem !important;
		width: 100%; /* Garantiza que ocupe todo el ancho */
	}
}

.enlace_dalco {
	text-decoration: none;
}
.enlace_dalco:hover {
	filter: opacity(0.8);
}

tr {
	border-width: 1px;
}
.card-title {
	height: 2em;
}

#clientes img {
	height: 80%;
	width: auto;
}

.carousel-indicators [data-bs-target] {
	display: none;
}

.carousel-control-next,
.carousel-control-prev {
	display: none;
}

.amail {
	text-decoration: none;
	color: #212529;
}
.amail:hover {
	color: var(--verde);
}

.sopweb {
	text-decoration: none;
	color: var(--blanco);
}
.sopweb:hover {
	color: var(--verde);
}

/* Carrusel nosotros */
.carousel-container {
	position: relative;
	width: 100%;
	height: 100%;
}

.carousel-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	opacity: 0;
	transition: opacity 1s ease-in-out;
}

.carousel-image.active {
	opacity: 1;
	position: relative; /* Para mantener el espacio */
}

#prev-btn,
#next-btn {
	border-radius: 50%;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0.7;
	z-index: 10;
}

#prev-btn:hover,
#next-btn:hover {
	opacity: 1;
}

/* Tabla proyectos */

/* Anular el nowrap de DataTables para permitir ajuste de texto */
table.dataTable td {
	white-space: normal !important;
	word-break: break-word;
}

/* Limitar el ancho máximo de las celdas en móviles */
@media screen and (max-width: 767px) {
	table.dataTable td {
		max-width: 200px;
	}
}
