#slider .carousel-item .slideimg { transition: none; }
#slider .carousel-item.active .slideimg { transition: transform 3.5s linear, background-position 0.3s linear; }


#slider .effect-zoom-in.active .slideimg { transform: scale(1.1); }
#slider .effect-zoom-out .slideimg { transform: scale(1.1); }
#slider .effect-zoom-out.active .slideimg { transform: scale(1); }

#slider .effect-left .slideimg { transform: scale(1.1); }
#slider .effect-left.active .slideimg { transform:scale(1.1) translateX(-70px); }
#slider .effect-right .slideimg { transform: scale(1.1); }
#slider .effect-right.active .slideimg { transform: scale(1.1) translateX(70px); }
#slider .effect-up .slideimg { transform: scale(1.1); }
#slider .effect-up.active .slideimg { transform: scale(1.1) translateY(-70px); }
#slider .effect-down .slideimg { transform: scale(1.1); }
#slider .effect-down.active .slideimg { transform: scale(1.1) translateY(70px); }
/**/
#slider .effect-parallax .slideimg { transform: scale(1.1); }
#slider .effect-parallax.active .slideimg { transition: transform 0s linear, background-position 0s linear; transform: scale(1.1); background-attachment: scroll; will-change: background-position; }


@media screen and (max-width:991px){
	#slider .effect-left .slideimg { transform:scale(1.15); }
	#slider .effect-left.active .slideimg { transform:scale(1.15) translateX(-50px); }
	#slider .effect-right .slideimg { transform: scale(1.15); }
	#slider .effect-right.active .slideimg { transform: scale(1.15) translateX(50px); }
	#slider .effect-up .slideimg { transform: scale(1.15); }
	#slider .effect-up.active .slideimg { transform: scale(1.15) translateY(-50px); }
	#slider .effect-down .slideimg { transform: scale(1.15); }
	#slider .effect-down.active .slideimg { transform: scale(1.15) translateY(50px); }
}

@media screen and (max-width:768px){
	#slider .effect-left .slideimg { transform:scale(1.2); }
	#slider .effect-left.active .slideimg { transform:scale(1.2) translateX(-30px); }
	#slider .effect-right .slideimg { transform: scale(1.2); }
	#slider .effect-right.active .slideimg { transform: scale(1.2) translateX(30px); }
	#slider .effect-up.slideimg { transform: scale(1.2); }
	#slider .effect-up.active .slideimg { transform: scale(1.2) translateY(-30px); }
	#slider .effect-down .slideimg { transform: scale(1.2); }
	#slider .effect-down.active .slideimg { transform: scale(1.2) translateY(30px); }
}

/*** EFECTOS ***/
/* Estados */
.os-init { opacity: 0; will-change: opacity, transform, filter; }
.os-in   { opacity: 1; transform: none; filter: none; }

/* Efectos: SOLO aplican en estado inicial */
.os-init.os-slide-up   { transform: translateY(-40px); }
.os-init.os-slide-down   { transform: translateY(40px); }
.os-init.os-slide-left { transform: translateX(-40px); }
.os-init.os-slide-right { transform: translateX(40px); }
.os-init.os-zoom-in    { transform: scale(.90); }
.os-init.os-blur       { filter: blur(6px); }

/* Efectos nuevos */
.os-init.os-scale-down { transform: scale(1.08); }
.os-init.os-bounce     { transform: translateY(50px); }
.os-init.os-rotate-in  { transform: rotate(-8deg) translateY(20px); }
.os-init.os-flip-x     { transform: perspective(400px) rotateX(45deg); opacity: 0; }

/* Accesibilidad */
@media (prefers-reduced-motion: reduce) {
  .os-init { transition: none !important; opacity: 1 !important; transform: none !important; filter: none !important; }
}


body.claro { color: #222; }
body.oscuro { color: #DDD; background-color: #222;}
body.claro a {color: #222; }
body.oscuro a { color: #DDD; }
h1 { font-weight: 900; font-size: 3.3rem; } 
h2 { font-weight: 700; font-size: 2.5rem; }

.accordion h2:after, h2.sinborde { content: none; }

.bloque-gal .galfoto { background-size: cover; background-position: center center; }

.bloque-gal .galfoto1 { height: 480px; margin-top: 40px; }

.bloque-gal .galfoto2 {
	height: 280px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bloque-gal .galfoto2 .bg-blur {
	height: 280px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(0, 0, 0, 0.25);
	width: 100%;
}

.bloque-gal .galfoto3 {
	height: 280px;
}

.bloque-gal .galfoto4 {
	height: 480px;
	margin-top: 40px;
}

.bgimagen {
	background-size: cover;
	background-position: center center;
}

.cab { background-size: cover; background-position: center center; }
.cab>div { background-color: rgba(0, 0, 0, 0.75); }

.oscuro .cab>div {
	background-color: rgba(0, 0, 0, 0.4);
}

.float {
	display: none;
	position: fixed;
	bottom: 60px;
	right: 10px;
	z-index: 10;
}
		
.float .icon {
	border-radius: 5px;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #FFF;
	font-size: 25px;
	margin-bottom: 10px;
}

.float .icon.phone {
	background-color: rgba(51, 102, 137, 0.8);
}

.float .icon.whatsapp {
	background-color: rgba(73, 195, 88, 0.8);
}

.float .icon.mail {
	background-color: rgba(50, 50, 50, 0.8);
}

@media (min-width:1200px) {
	.container-1100 {
		max-width: 1100px;
	}
}

@media (min-width:992px) {
	.container-900 {
		max-width: 900px;
	}
}
		
.footer>div {
	background-color: rgba(20, 20, 20, 0.95);
}

.footer a { color: #FFF !important; }

.footer ul { list-style: none; }

/*.oscuro .footer > div{ background-color:rgba(240,240,240,0.8);}
.oscuro .footer a{ color: #000;}*/

.form {
	padding: 15px;
}

.form a {
	text-decoration: underline;
}

.claro .form {
	background-color: #EEE;
}

.oscuro .form { background-color: #111; }


.footer2 {
	font-size: 13px;
}

.claro .footer2 {
	background-color: #282828;
}

.claro .footer2,
.claro .footer2 a {
	color: #FFF;
}

/*.oscuro .footer2{ background-color: #DDD; }
.oscuro .footer2, .oscuro .footer2 a{ color:#222 !important; }*/

.idiomas {
	padding-bottom: 2px;
}

.idiomas a {
	font-size: 0.9em;
	margin-right: 5px;
	text-decoration: underline;
}


.p-6 {
	padding: 4rem !important;
}

.pt-6 {
	padding-top: 4rem !important;
}

.pb-6 {
	padding-bottom: 4rem !important;
}

.py-6 {
	padding-top: 4rem !important;
	padding-bottom: 4rem !important;
}

.my-6 {
	margin-top: 4rem !important;
	margin-bottom: 4rem !important;
}

.oscuro .bg-white {
	background-color: #222 !important;
}

.secini h2 {
	position: relative;
}

.secini h2:after {
	left: 0;
	transform: none;
}

.scrollup {
	width: 40px;
	height: 40px;
	border-radius: 4px;
	opacity: 0.8;
	position: fixed;
	bottom: 20px;
	right: 10px;
	display: flex;
	z-index: 200;
	align-items: center;
	justify-content: center;
}

.servicio h2:after {
	border-top: none;
	content: "";
	margin-top: 0px;
}

.slideimg {
	width: 100%;
	height: 600px;
	background-size: cover;
	background-position: center center;
}

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

	.bloque-gal .galfoto1,
	.bloque-gal .galfoto3,
	.bloque-gal .galfoto4 {
		display: none;
	}

	.float {
		display: inline-block;
	}

	.slideimg {
		height: 450px;
	}
}

@media screen and (min-width: 767px) {
	.w-md-50 {
		width: 50% !important;
	}
}

.accordion-button:focus {
	box-shadow: 0 0 0 0.25rem rgba(0, 0, 0, .25);
}

/* === NAVBAR ESTILOS === */

/* Toggler personalizado (FontAwesome en lugar de SVG Bootstrap) */
.navbar-toggler { border: none; font-size: 1.4rem; padding: 0.25rem 0.5rem; }
.navbar-toggler:focus { box-shadow: none; }

/* Estilo 2: Subrayado */
.nav-estilo-2 .navbar-nav a { position: relative; }
.nav-estilo-2 .navbar-nav a::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0.8rem; right: 0.8rem;
	height: 2px;
	background-color: currentColor;
	transform: scaleX(0);
	transition: transform 0.25s ease;
}
.nav-estilo-2 .navbar-nav a:hover::after,
.nav-estilo-2 .navbar-nav a.active::after { transform: scaleX(1); }

/* Estilo 3: Botón cuadrado */
.nav-estilo-3 .navbar-nav a {
	margin: 2px 3px; border-radius: 0;
	transition: background-color 0.2s ease, color 0.2s ease;
}

/* Estilo 4: Botón redondeado (pill) */
.nav-estilo-4 .navbar-nav a {
	margin: 2px 3px; border-radius: 50px;
	transition: background-color 0.2s ease, color 0.2s ease;
}

/* Estilo 5: Destacar último enlace (Contactar) */
.nav-estilo-5 .navbar-nav .nav-item:last-child a {
	border-radius: 50px;
	transition: background-color 0.2s ease, color 0.2s ease;
}

/* Offcanvas menú móvil */
.offcanvas .navbar-nav a { padding: 0.6rem 1rem !important; }
.offcanvas .offcanvas-header img { max-height: 40px; }
@media (min-width: 992px) {
	.offcanvas-navbar { display: none !important; }
}

/* === MÓDULOS NUEVOS === */

/* Módulo 10: Contadores */
.se-mod10 .counter { font-size: 3.5rem; font-weight: 900; line-height: 1.2; }
.se-mod10 .counter-label { font-size: 1rem; margin-top: 0.5rem; }

/* Módulo 11: Precios */
.se-mod11 .pricing-card { border: 1px solid #dee2e6; border-radius: 8px; padding: 2rem 1.5rem; height: 100%; display: flex; flex-direction: column; }
.se-mod11 .pricing-card.featured { transform: scale(1.05); z-index: 1; }
.se-mod11 .pricing-card ul { list-style: none; padding: 0; margin: 0; flex: 1; }
.se-mod11 .pricing-card ul li { padding: 0.5rem 0; border-bottom: 1px solid #eee; font-size: 0.95rem; }
.se-mod11 .pricing-card ul li:last-child { border-bottom: none; }
@media (max-width: 767px) { .se-mod11 .pricing-card.featured { transform: none; } }

/* Módulo 12: Acordeón — usa estilos Bootstrap, sin extra */

/* Módulo 13: Logo cloud */
.se-mod13-scroll { overflow: hidden; }
.se-mod13-scroll .logo-track { display: flex; align-items: center; animation: logoScroll 25s linear infinite; width: max-content; }
.se-mod13-scroll .logo-track img { height: 90px; margin: 0 2.5rem; object-fit: contain; flex-shrink: 0; opacity: 0.7; transition: opacity 0.3s; }
.se-mod13-scroll .logo-track img:hover { opacity: 1; }
.se-mod13-scroll:hover .logo-track { animation-play-state: paused; }
@keyframes logoScroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.se-mod13-static { text-align: center; overflow: visible; }
.se-mod13-static .logo-static { display: flex !important; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2rem; max-width: 1100px; margin: 0 auto; padding: 0 1rem; }
.se-mod13-static .logo-static img { height: 90px !important; width: auto !important; max-width: 200px; object-fit: contain; opacity: 0.7; transition: opacity 0.3s; }
.se-mod13-static .logo-static img:hover { opacity: 1; }

/* Módulo 14: Imagen full-width */
.se-mod14 { position: relative; }
.se-mod14 img { width: 100%; display: block; }
.se-mod14 .overlay-title { position: absolute; bottom: 0; left: 0; right: 0; padding: 2rem; background: linear-gradient(transparent, rgba(0,0,0,0.6)); }
.se-mod14 .overlay-title h2 { color: #fff; margin: 0; }

/* Módulo 15: Vídeo */
.se-mod15 .ratio { max-width: 900px; margin: 0 auto; }

/* Módulo 16: Timeline */
.se-mod16 .timeline { position: relative; padding: 1rem 0; }
.se-mod16 .timeline::before { content: ''; position: absolute; left: 50%; width: 3px; top: 0; bottom: 0; transform: translateX(-50%); }
.se-mod16 .timeline-item { position: relative; width: 50%; padding: 0 2.5rem 2rem; }
.se-mod16 .timeline-item:nth-child(odd) { left: 0; text-align: right; padding-right: 3rem; padding-left: 0; }
.se-mod16 .timeline-item:nth-child(even) { left: 50%; padding-left: 3rem; padding-right: 0; }
.se-mod16 .timeline-dot { position: absolute; top: 5px; width: 16px; height: 16px; border-radius: 50%; border: 3px solid; }
.se-mod16 .timeline-item:nth-child(odd) .timeline-dot { right: -8px; }
.se-mod16 .timeline-item:nth-child(even) .timeline-dot { left: -8px; }
.se-mod16 .timeline-date { font-weight: 700; font-size: 1.1rem; margin-bottom: 0.3rem; }
@media (max-width: 767px) {
	.se-mod16 .timeline::before { left: 20px; }
	.se-mod16 .timeline-item { width: 100%; left: 0 !important; text-align: left !important; padding-left: 50px !important; padding-right: 0 !important; }
	.se-mod16 .timeline-dot { left: 12px !important; right: auto !important; }
}

/* Módulo 17: Mapa */
.se-mod17 .ratio { border-radius: 8px; overflow: hidden; }

/* Módulo 18: Estadísticas / Contadores animados */
.se-mod18 .stat-col { padding: 1.5rem 1rem; }
.se-mod18 .stat-numero { font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 800; line-height: 1; letter-spacing: -1px; }
.se-mod18 .stat-etiqueta { font-size: 0.95rem; margin-top: 0.4rem; opacity: 0.75; font-weight: 500; }
.se-mod18 .stat-col:not(:last-child) { border-right: 1px solid rgba(0,0,0,0.08); }
@media(max-width:767px){ .se-mod18 .stat-col:not(:last-child) { border-right: none; border-bottom: 1px solid rgba(0,0,0,0.08); } }

/* Contraste automático en módulos con fondo oscuro */
.fg-dark-bg,
.fg-dark-bg h1,.fg-dark-bg h2,.fg-dark-bg h3,
.fg-dark-bg h4,.fg-dark-bg h5,.fg-dark-bg h6 { color: #fff !important; }
.fg-dark-bg p,
.fg-dark-bg li,
.fg-dark-bg span { color: rgba(255,255,255,0.87) !important; }
.fg-dark-bg .text-dark      { color: rgba(255,255,255,0.9)  !important; }
.fg-dark-bg .text-black     { color: #fff                   !important; }
.fg-dark-bg .text-secondary { color: rgba(255,255,255,0.65) !important; }
.fg-dark-bg .text-muted     { color: rgba(255,255,255,0.5)  !important; }
.fg-dark-bg a:not(.btn)     { color: rgba(255,255,255,0.85) !important; }

/* Contraste automático en módulos con fondo claro */
.fg-light-bg,
.fg-light-bg h1,.fg-light-bg h2,.fg-light-bg h3,
.fg-light-bg h4,.fg-light-bg h5,.fg-light-bg h6 { color: #111 !important; }
.fg-light-bg p,
.fg-light-bg li,
.fg-light-bg span { color: #333 !important; }
.fg-light-bg .text-white { color: #222 !important; }
.fg-light-bg a:not(.btn) { color: #222 !important; }