:root {
	--color-blanco: #ffffff;
	--color-celeste: #6da7da;
	--color-azul: #2a3844;
	--color-calido: #f4ede1;
	--color-negro: #000000;
	--color-gris: #575757;
	--color-btranslucido: rgba(255, 255, 255, 0.82);
}

/* Reset Básico */
body {
	padding-top: 100px; /* Ajusta este valor según la altura de tu navbar */
	font-family: 'Poppins', sans-serif;
	color: var(--color-negro);
}

a {
	text-decoration: none;
	color: inherit;
}

/* Estilos Generales */
.img_logo {
	height: 6rem; /* Altura del logo */
}

.ilustrativa {
	width: 100%;
}

.derecha {
	text-align: right;
}

.izquierda {
	text-align: left;
}

.justifica {
	text-align: justify;
}

.br-20 {
	border-radius: 20px;
}

/* Responsiveness para Orientación Vertical */
@media only screen and (orientation: portrait) {
	.img_logo {
		height: 3rem; /* Altura del logo */
	}
}

/* Navbar Estilos */
.navbar {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 9999; /* Asegura que la navbar esté por encima de otros elementos */
	background-color: var(--color-calido);
	transition: background-color 0.3s ease;
}

.navbar-nav .nav-item .nav-link {
	color: var(--color-azul);
	transition: color 0.5s ease, font-size 0.5s ease, font-weight 0.5s ease;
}

.navbar-nav .nav-item .nav-link:hover {
	color: var(--color-celeste);
	font-size: 1.1rem;
	font-weight: bold;
}

.nav_footer .nav-item {
	padding-top: 7px;
	transition: all 0.3s ease;
}

.nav_footer .nav-item:hover {
	color: rgb(1, 1, 20);
	padding-left: 5px;
}

/* Estilos de Fondo */
.bg-light {
	background-color: #f9f8f84f !important;
	transition: background-color 0.3s ease;
}

/* Responsiveness para Orientación Vertical */
@media only screen and (orientation: portrait) {
	.bg-light {
		background-color: #fff !important;
		transition: background-color 0.3s ease;
	}
}

.bg-light.scrolled {
	background-color: rgba(255, 255, 255, 1) !important; /* Blanco sólido */
}

.fdo_color {
	background-color: var(--color-calido);
}

/* Botones de Navegación del Slider */
.carousel-control-prev,
.carousel-control-next {
	z-index: 4;
}

.carousel-control-prev-icon:hover,
.carousel-control-next-icon:hover {
	filter: invert();
}

/* Botón Elegante */
.btn-elegant {
	background: #212d38; /* Azul sólido o utilizar degradado si prefieres */
	color: var(--color-blanco);
	border: none;
	padding: 12px 24px;
	font-size: 16px;
	font-weight: bold;
	border-radius: 5px;
	transition: background 0.3s ease, transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
	margin-top: 1rem;
}

.btn-elegant:hover {
	background: rgba(57, 193, 218, 0.24); /* Amarillo transparente */
	transform: scale(1.1);
	box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

.btn-elegant:active {
	transform: scale(1);
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);
}

.icon_contacto {
	width: 50px;
	padding-right: 1rem;
}

.ref_img {
	width: 500px;
}

/* Responsive Styles for Buttons */
@media (max-width: 767px) {
	body {
		padding-top: 70px;
	}
	.ref_img {
		width: 100%;
	}
	.img-container {
		margin-right: 0px !important;
		margin-bottom: 15px;
	}
	.icon_contacto {
		width: 30px;
		padding-right: 0.5rem;
	}
	.mail {
		font-size: 1rem;
	}
	.btn-elegant {
		margin-top: 1rem;
	}
}

/* Otros Estilos de Botones */
.btn_serv {
	font-size: 1.1rem;
	margin-top: 1.3rem;
	padding: 10px 15px;
	border-radius: 12px;
	background-color: var(--color-celeste);
	color: var(--color-blanco);
	transition: all 0.2s ease;
	border: 1px solid var(--color-gris);
}

.btn_serv:hover {
	background-color: var(--color-calido);
	color: var(--color-azul);
	letter-spacing: 0.1rem;
}

/* Scroll Up Button Styles */
.scroll-up-btn {
	position: fixed;
	bottom: 20px;
	right: 20px;
	background: #6da7da8c; /* Celeste transparente */
	color: var(--color-blanco);
	border: none;
	border-radius: 50%;
	width: 50px;
	height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 2rem;
	cursor: pointer;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
	transition: all 0.3s ease-in-out;
	opacity: 0;
	visibility: hidden;
}

.scroll-up-btn.show {
	opacity: 1;
	visibility: visible;
}

.scroll-up-btn:hover {
	background: #2a38445e; /* Azul transparente */
	transform: scale(1.1);
	box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

#mainSlider {
	scroll-margin-top: 150px;
}

/* Secciones con Fondo */
#sobre-mi,
#servicios,
#faq,
#resenas,
#contacto,
#reflexiones {
	scroll-margin-top: 80px;
}

/* Tipografía y Textos */
.t_blanco {
	color: var(--color-blanco);
}

.t12r {
	font-size: 1.2rem;
}

.hovcel:hover {
	color: var(--color-celeste);
}

.cita {
	background: rgba(255, 255, 255, 0.75);
	color: #204d75;
	padding: 0.5rem;
	margin-top: 1rem;
	text-align: center;
	font-size: 1.1rem;
}

.firma {
	font-family: 'Corinthia', cursive;
	font-weight: 400;
	font-style: normal;
}

/* Imágenes y Contenedores */
.img-container {
	float: left; /* Permite que el texto fluya alrededor de la imagen */
	margin-right: 15px; /* Espacio a la derecha de la imagen */
	margin-bottom: 15px; /* Espacio debajo de la imagen */
}

.img_contacto {
	border-radius: 10px;
}

.zona_contacto {
	padding: 30px;
	background-color: rgb(71 66 66 / 18%);
	border-radius: 15px;
}

/* Otras Clases */
.celeste {
	background-color: var(--color-celeste);
	color: var(--color-blanco);
	text-shadow: 0px 3px 6px var(--color-negro);
}

.azul {
	background-color: var(--color-azul);
	color: var(--color-blanco);
	text-shadow: 0px 3px 6px var(--color-negro);
}

.calido {
	background-color: var(--color-calido);
	color: var(--color-azul);
	text-shadow: 0px 2px 4px var(--color-negro);
}

.hov_what:hover {
	color: green !important;
}

/* Animaciones Slider */
@keyframes slideInFromBottom {
	from {
		transform: translateY(100%);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

@keyframes slideInFromTop {
	from {
		transform: translateY(-100%);
		opacity: 0;
	}
	to {
		transform: translateY(0);
		opacity: 1;
	}
}

.animate-bottom {
	animation: slideInFromBottom 1s ease-out;
}

.animate-top {
	animation: slideInFromTop 1s ease-out;
}

/* Carrusel */
.carousel {
	position: relative;
	z-index: 1; /* Establece un z-index explícito */
}

.carousel-item {
	position: relative;
	min-height: 105vh; /* Altura mínima para escritorio */
}

.carousel-image {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center center; /* Centra la imagen */
	background-repeat: no-repeat;
	z-index: 1;
}

.carousel-caption {
	position: absolute;
	top: 45%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 78%;
	color: var(--color-azul);
	z-index: 3; /* Por encima del overlay */
}

.carousel-caption.caption2 {
	top: 70%;
	text-align: right;
}

.titulo {
	font-size: 5rem;
	font-weight: bold;
	text-align: left;
	/* text-shadow: -2px 0px 5px black; */
}

.subtitulo {
	font-size: 1.5rem;
	text-align: left;
	/* text-shadow: -2px 0px 5px black; */
}

@media only screen and (orientation: landscape) {
	#mainSlider {
		margin: 0 auto;
	}

	.carousel-inner {
		margin-top: -7rem;
	}
}

/* RESPONSIVE STYLES FOR MOBILE */
@media (max-width: 767px) {
	.carousel-caption {
		display: block;
		top: 0%;
		width: 90%;
		left: 50%;
		transform: translate(-50%, 0);
	}

	.carousel-caption.caption2 {
		top: 61%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 90%;
		text-align: center;
	}

	.titulo {
		font-size: 2.5rem;
	}

	.subtitulo {
		font-size: 1.2rem;
	}

	.cita {
		font-size: 1rem;
		margin-top: 1rem;
	}

	.navbar-collapse {
		padding: 30px;
		background-color: var(--color-blanco);
	}

	/* Ajustar altura mínima del slider para móvil */
	.carousel-item {
		min-height: 800px; /* Ajusta este valor según sea necesario */
	}

	.carousel-image {
		background-position: center center; /* Asegura que la parte central de la imagen esté visible */
	}
}

#footer {
	background-color: rgb(128 129 131 / 9%) !important;
}

/* TITULO REFLEXIONES */
.ref_txt {
	margin-bottom: 20px;
	color: #1a5385cc;
}

.gris_suave {
	background-color: #e3dfdf40;
}

/* ACORDEON PREGUNTAS Y RESPUESTAS */
.accordion-button {
	background-color: #f7f7f7;
	color: #000;
}

.accordion-button:not(.collapsed) {
	background-color: #e2e2e2;
	color: #000;
}

.accordion-body {
	background-color: #ffffff;
}

.accordion-item {
	border: none;
	border-bottom: 1px solid #ddd;
	font-size: 1.2rem;
}

.accordion-button:focus {
	box-shadow: none;
}

#acccordionFAQ .accordion-button::after {
	background-image: none;
}

.divisor {
	border-bottom: 3px solid #3988cdb8;
	width: 40%;
	margin: 0 auto;
	margin-bottom: 3rem;
}

.titulo_footer {
	color: #134571db;
}

.precio {
	background-color: var(--color-azul);
	color: var(--color-blanco);
	padding: 20px;
	border-radius: 20px;
	text-align: center;
}

/* CALIFICACIONES */

.testimonial-container {
	max-width: 800px;
	margin: 0 auto;
	padding: 20px;
	overflow: hidden;
}

.testimonial-carousel {
	position: relative;
}

.testimonial {
	display: none;
	text-align: center;
	padding: 20px;
	opacity: 0;
	transition: opacity 0.5s ease-in-out;
}

.testimonial.active {
	display: block;
	opacity: 1;
	height: 18rem;
}

.stars {
	color: #ffd700;
	font-size: 24px;
	margin-bottom: 15px;
}

.testimonial-text {
	font-size: 18px;
	line-height: 1.6;
	margin-bottom: 15px;
	font-style: italic;
}

.author {
	font-weight: bold;
	color: #666;
}

@media (max-width: 767px) {
	.testimonial.active {
		height: 25rem;
	}
}

.opiniones {
	text-align: center;
	text-decoration: none;
	color: rgb(21, 43, 83);
}

.opiniones:hover {
	color: var(--color-celeste);
}

.copyright {
	color: #204d75;
}
.copyright a {
	color: #7f0a65;
}
.copyright a:hover {
	color: #ecb706;
}
