 body {
	margin: 0;
	padding: 0;
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	overflow-x: hidden;
}

/* Contenedor principal */
.main-container {
	min-height: 100vh;
	background: linear-gradient(135deg, #1e3a50 0%, #2d5266 100%);
	display: flex;
	position: relative;
}
/* Sección izquierda - Contenido */
.left-section {
	flex: 0 0 40%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 40px 60px;
	position: relative;
	z-index: 2;
}

/* Círculos decorativos en la sección izquierda */
.left-circles {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
}

.left-circle {
	position: absolute;
	border-radius: 50%;
	background: rgba(172, 202, 228, 0.5);
	z-index: -1;
}

.left-circle-1 {
	width: 120px;
	height: 120px;
	top: 160px;
	left: 240px;
}

/* Navegación superior */
.top-nav {
	position: absolute;
	top: 30px;
	right: 40px;
	display: flex;
	gap: 15px;
	z-index: 1000;
}

.nav-btn {
	background-color: rgba(106, 144, 170, 0.8);
	color: white;
	border: 3px solid transparent;
	padding: 10px 30px;
	border-radius: 25px;
	font-size: 16px;
	cursor: pointer;
	transition: all 0.3s ease;
	backdrop-filter: blur(10px);
}

.nav-btn:hover {
	background-color: rgba(106, 144, 170, 0.2);
	color: blue;
	border: 3px solid #6489a8;
	transform: translateY(-5px);
	backdrop-filter: blur(20px);
}

.nav-btn.active {
	background-color: rgba(106, 144, 170, 1);
}

/* Contenedor del contenido izquierdo */
.content-wrapper {
	width: 80%;
	max-width: 800px;
	margin: 0 auto;
}

/* Sección de branding */
.brand-section {
	color: white;
	margin-bottom: 50px;
	text-align: left;
}

.brand-circle {
	top: 60px;
	left: 80px;
	position: absolute;
	width: 220px;
	height: 220px;
	background: rgba(100, 137, 168, 0.7);
	border-radius: 50%;
	margin: 0 auto 30px;
	backdrop-filter: blur(10px);
	z-index: -2;
}

.brand-title {
	margin: 0;
	font-size: 20px;
	font-weight: 100;
	margin-bottom: 10px;
}

.brand-name {
	margin: 0;
	font-size: 64px;
	font-weight: 900;
	letter-spacing: 2px;
	line-height: 1;
	margin-bottom: 15px;
}

.brand-subtitle {
	margin: 0;
	font-size: 20px;
	font-weight: 400;
	opacity: 0.95;
	line-height: 1.4;
}

/* Sección del formulario */
.form-section {
	width: 100%;
}

.form-container {
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(20px);
	border-radius: 20px;
	padding: 40px;
	border: 1px solid rgba(255, 255, 255, 0.2);
}

.form-title {
	color: white;
	font-size: 28px;
	font-weight: 800;
	margin-bottom: 15px;
	text-align: center;
}

/* Grupos de formulario */
.form-group {
	margin-bottom: 5px;
	position: relative;
}

.form-label {
	color: white;
	font-size: 14px;
	display: block;
	font-weight: 400;
}

.form-input {
	width: 100%;
	padding: 14px 20px;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-radius: 8px;
	background: transparent;
	color: white;
	font-size: 15px;
	transition: all 0.3s ease;
	box-sizing: border-box;
}

.form-input:focus {
	outline: none;
	border-color: rgba(255, 255, 255, 0.6);
	background: rgba(255, 255, 255, 0.05);
}

.form-input::placeholder {
	color: rgba(255, 255, 255, 0.5);
}

/* Input de contraseña con icono */
.password-input-wrapper {
	position: relative;
}

.mostrarContra {
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: white;
	cursor: pointer;
	padding: 5px;
	opacity: 0.7;
	transition: opacity 0.3s ease;
	font-size: 18px;
}

.mostrarContra:hover {
	opacity: 1;
}

/* Botones del formulario */
.form-buttons {
	display: flex;
	flex-direction: column;
	gap: 15px;
	margin-top: 30px;
}

.btn-login {
	width: 100%;
	padding: 14px;
	background-color: rgba(106, 144, 170, 0.8);
	color: white;
	border: none;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.3s ease;
}

.btn-login:hover {
	background-color: rgba(106, 144, 170, 1);
	transform: translateY(-2px);
}

.btn-registrarse {
	width: 100%;
	padding: 14px;
	background-color: white;
	color: #3a5a70;
	border: none;
	border-radius: 8px;
	font-size: 16px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.3s ease;
	text-align: center;
}

.btn-registrarse:hover {
	background-color: rgba(255, 255, 255, 0.9);
	color: #3a5a70;
	transform: translateY(-2px);
}

/* Link de recuperación */
.forgot-password {
	text-align: center;
	margin-top: 20px;
}

.forgot-password-text {
	color: rgba(255, 255, 255, 0.8);
	font-size: 14px;
}

.forgot-password-link {
	color: white;
	text-decoration: underline;
	cursor: pointer;
	transition: opacity 0.3s ease;
}

.forgot-password-link:hover {
	opacity: 0.8;
}

/* Sección de servicios */
.servicios-section {
	padding: 80px 20px;
	background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
	position: relative;
}

.servicios-header {
	text-align: center;
	margin-bottom: 60px;
}

.servicios-title {
	font-size: 48px;
	font-weight: 700;
	color: #2d3e50;
	margin: 0;
	letter-spacing: 2px;
}


/* Sección de cursos */
.cursos-section {
	padding: 80px 20px;
	background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
	position: relative;
}

.cursos-header {
	text-align: center;
	margin-bottom: 60px;
}

.cursos-title {
	font-size: 48px;
	font-weight: 700;
	color: #2d3e50;
	margin: 0;
	letter-spacing: 2px;
}

/* Contenedor del carrusel */
.carousel-container {
	margin: 0 auto;
	position: relative;
	padding: 0;
}

.carousel-wrapper {
	overflow: hidden;
	position: relative;
}

.carousel-track {
	display: flex;
	transition: transform 0.5s ease-in-out;
	gap: 30px;
}

/* Tarjetas de servicio */
.service-card {
    margin-top: 50px;
    width: 300px;          /* fijo en lugar de min-width */
    min-width: 300px;
    flex-shrink: 0;
    background-color: transparent !important;
    overflow: hidden;
    cursor: pointer;
    opacity: 0.6;
    transform: scale(0.85);
    z-index: -2;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-card.center-card {
	opacity: 1;
	transform: scale(1.15);
	z-index: 100;
}

.service-card:hover {
	transform: scale(0.95);
}

.service-card.center-card:hover {
	transform: scale(1.18);
}

.service-image {
    width: 300px;          /* igual al ancho de la tarjeta */
    height: 280px;
    object-fit: cover;
    border-radius: 20px;
    display: block;        /* elimina espacio extra de inline */
}

.service-content {
	padding: 30px 25px;
	text-align: center;
	z-index: 100;
}

.service-title {
	font-size: 22px;
	font-weight: 700;
	color: #2d3e50;
	margin: 0;
	line-height: 1.3;
}

/* Botones de navegación */
.carousel-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 60px;
	height: 60px;
	background: rgba(45, 62, 80, 0.9);
	border: none;
	border-radius: 50%;
	color: white;
	font-size: 28px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	z-index: 10;
}

.carousel-btn:hover {
	background: rgba(45, 62, 80, 1);
	transform: translateY(-50%) scale(1.1);
}

.carousel-btn.prev {
	left: -20px;
	transform: translateY(-50%);
	height: 450px;
	background: #1c1c39;
	border-radius: 0 30px 30px 0;
	z-index: 1;
}

.carousel-btn.next {
	right: -20px;
	transform: translateY(-50%);
	height: 450px;
	background: #1c1c39;
	border-radius: 30px 0 0 30px;
	z-index: 1;
}

/* Indicadores */
.carousel-indicators {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 40px;
	z-index: 5;
}

.indicator {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #d0d0d0;
	cursor: pointer;
	transition: all 0.3s ease;
}

.indicator.active {
	background: #2d3e50;
	width: 30px;
	border-radius: 6px;
}

/* Sección de quienesSomos */
.quienesSomos-section {
	padding: 100px 0;
	background: linear-gradient(135deg, #214c6d 0%, #1c1c39 100%);
	position: relative;
	overflow: hidden;
}

.circle-1 {
	position: absolute;
	width: 260px;
	height: 260px;
	background: rgba(255, 255, 255, 0.15);
	border-radius: 50%;
	top: 40px;
	left: 40px;
	z-index: 0;
}

.quienes-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	position: relative;
	height: 600px;
}


.img-principal {
	position: absolute;
	top: 0;
	left: -120px;
	width: 400px;
	height: 600px;
	object-fit: cover;
	border-radius: 24px;
}


.titulo-flotante {
	position: absolute;
	width: 240px;
	top: 0px;
	right: 0px;
	background: #6f8fa8;
	padding: 24px 28px;
	border-radius: 20px;
	color: white;
	z-index: 2;
	text-align: center;
}

.titulo-flotante h3 {
	margin: 0;
	font-size: 38px;
	font-weight: 600;
}

.img-secundaria {
	position: absolute;
	top: 160px;
	right: 0;
	width: 240px;
	height: 440px;
	object-fit: cover;
	border-radius: 24px;
}

.img-flecha {
	position: absolute;
	top: 50px;
	right: -120px;
	width: 150px;
	transform: rotateZ(15deg);
}


.contenido-texto p {
	font-size: 22px;
	line-height: 1.7;
	margin-bottom: 24px;
	text-align: justify;
}


/* Sección de marcas */
.marca-section {
	padding: 80px 20px;
	background: white;
	position: relative;
	overflow: hidden;
}

/* Cuadros decorativos a los lados */
.marca-section::before,
.marca-section::after {
	content: '';
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 100px;
	height: 350px;
	background: #1c1c39;
	border-radius: 30px;
	z-index: 1;
}

.marca-section::before {
	left: -50px;
	transform: translateY(-50%);
}

.marca-section::after {
	right: -50px;
	transform: translateY(-50%);
}

.marca-container {
	width: 90%;
	margin: 0 auto;
	position: relative;
	z-index: 0;
}

.marca-container::before,
.marca-container::after {
	content: '';
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 100px;
	height: 300px;
	background: #6489a8;
	border-radius: 30px;
	z-index: 1;
}

.marca-container::before {
	left: -9%;
	transform: translateY(-50%);
}

.marca-container::after {
	right: -9%;
	transform: translateY(-50%);
}


.marca-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 40px;
	align-items: center;
	position: relative;
}

/* Líneas verticales azules entre las imágenes */
.marca-item {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 20px;
	transition: transform 0.3s ease;
	position: relative;
}

.marca-item:not(:last-child)::after {
	content: '';
	position: absolute;
	right: -20px;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 80%;
	background: #6489a8;
}

.marca-item:hover {
	transform: scale(1.05);
}

.marca-item img {
	width: 100%;
	height: auto;
	max-width: 250px;
	object-fit: contain;
}

/* Responsive */

@media (max-width: 1280px) {
	.service-card {
        width: calc((100% - 60px) / 3);
    }

    .service-card.center-card {
        transform: scale(1);
    }

	.left-section {
		padding: 40px 5px;
	}
	.content-wrapper {
		width: 90%;
	}
}

@media (max-width: 992px) {
	.main-container {
		flex-direction: column;
	}

	.seccionDerecha {
		display: none; /* Ocultar imagen en móvil */
	}

	.left-section {
		padding: 40px 30px;
		min-height: 100vh;
	}

	.brand-name {
		font-size: 52px;
		font-weight: 900;
	}

	.top-nav {
		right: 20px;
		top: 20px;
	}

	.marca-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 30px;
	}

	/* Ajustar líneas para grid 2x2 */
	.marca-item:nth-child(2n)::after {
		display: none;
	}

	.marca-section::before {
		left: -50px;
		transform: translateY(-50%);
	}

	.marca-section::after {
		right: -50px;
		transform: translateY(-50%);
	}

	.marca-section::before,
	.marca-section::after {
		width: 100px;
		height: 700px;
	}

	.marca-container::before,
	.marca-container::after {
		width: 100px;
		height: 600px;
	}


	.marca-container::before {
		left: -10%;
	}

	.marca-container::after {
		right: -10%;
	}
}

@media (max-width: 576px) {
	.left-section {
		padding: 30px 20px;
	}

	.brand-circle {
		top: 100px;
		left: -20px;
		width: 180px;
		height: 180px;
	}

	.left-circle-1 {
		top: 180px;
		left: 120px;
		width: 100px;
		height: 100px;
	}

	.brand-name {
		font-size: 48px;
	}

	.brand-subtitle {
		font-size: 18px;
	}

	.form-container {
		padding: 30px 25px;
	}

	.top-nav {
		gap: 5px;
		right: 5px;
	}

	.nav-btn {
		padding: 5px 15px;
		font-size: 12px;
	}

	.content-wrapper {
		width: 100%;
		max-width: 100%;
	}

	.marca-section::before {
		left: -70px;
		transform: translateY(-50%);
	}

	.marca-section::after {
		right: -70px;
		transform: translateY(-50%);
	}


	.marca-container::before {
		left: -26%;
	}

	.marca-container::after {
		right: -26%;
	}

	.marca-section::before,
	.marca-section::after {
		width: 100px;
		height: 700px;
	}

	.marca-container::before,
	.marca-container::after {
		width: 100px;
		height: 600px;
	}
}

@media (max-width: 768px) {
	.servicios-title { font-size: 36px; }
    .cursos-title { font-size: 36px; }

    .cursos-section {
        padding: 80px 0px;
    }
    .servicios-section {
        padding: 80px 0px;
    }

    .cursos-header,
    .servicios-header {
        padding: 0 20px;
        text-align: center;
    }

    .carousel-container {
        padding: 0;
        overflow: hidden;
    }

    .carousel-wrapper {
        overflow: visible;
    }

    /* Ancho fijo = 100vw - ambos botones (50px c/u) */
    .service-card {
        width: calc(100vw - 120px) !important;
        min-width: calc(100vw - 120px) !important;
        opacity: 0 !important;
        transform: scale(1) !important;
        transition: opacity 0.3s ease;
    }

    .service-card.center-card {
        opacity: 1 !important;
        transform: scale(1) !important;
    }

    .service-image {
        width: 100%;
        height: 250px;
		object-fit: contain;
    }

    .carousel-btn.prev {
        left: 0;
        width: 50px;
        height: 100%;
        top: 0;
        transform: none;
        border-radius: 0 20px 20px 0;
    }

    .carousel-btn.next {
        right: 0;
        width: 50px;
        height: 100%;
        top: 0;
        transform: none;
        border-radius: 20px 0 0 20px;
    }

    .carousel-btn:hover {
        transform: none;
    }

	.carousel-track {
		gap: 0px;
	}
	.img-principal {
		top: -20px;
		left: 0px;
		width: 70%;
		height: 600px;
		object-fit: cover;
		border-radius: 24px;
	}


	.titulo-flotante {
		position: absolute;
		width: 70%;
	}

	.circle-1 {
		left: -20px;
	}

	.img-secundaria {
		top: 170px;
		width: 50%;
		height: 380px;
	}

	.img-flecha {
		display: none;
	}

	.quienes-card {
		gap: 0;
	}

	.marca-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.marca-section::before,
	.marca-section::after {
		width: 100px;
		height: 600px;
	}

	.marca-container::before,
	.marca-container::after {
		width: 100px;
		height: 500px;
	}

	.marca-section::before {
		left: -70px;
		transform: translateY(-50%);
	}

	.marca-section::after {
		right: -70px;
		transform: translateY(-50%);
	}

	.marca-container::before {
		left: -18%;
	}

	.marca-container::after {
		right: -18%;
	}
}

@media (max-width: 480px) {
	.marca-section::before,
	.marca-section::after, .marca-container::after, .marca-container::before {
		display: none;
	}
}


/* Sección de contacto */
.contacto-section {
	padding: 80px 20px;
	background: linear-gradient(135deg, #f0f0f0 0%, #e5e5e5 100%);
}

.contacto-header {
	text-align: center;
	margin-bottom: 60px;
}

.contacto-icon {
	font-size: 48px;
	color: #2d3e50;
	margin-bottom: 15px;
}

.contacto-title {
	font-size: 48px;
	font-weight: 700;
	color: #2d3e50;
	margin: 0;
}

.contacto-container {
	margin: 0 30px;
	background: white;
	border-radius: 30px;
	overflow: hidden;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

.contacto-image {
	width: 100%;
	height: 400px;
	overflow: hidden;
}

.contacto-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.contacto-info {
	padding-top: 10px;
	padding-bottom: 30px;
	padding-left: 60px;
	padding-right: 60px;
}

/* Redes sociales */
.social-links {
	display: flex;
	justify-content: space-around;
	gap: 40px;
	margin-bottom: 15px;
	padding-bottom: 10px;
	border-bottom: 2px solid #e0e0e0;
}

.social-link {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	color: #2d3e50;
	font-size: 18px;
	font-weight: 600;
	transition: transform 0.3s ease;
}

.social-link:hover {
	transform: translateY(-5px);
}

.social-link i {
	font-size: 32px;
}

.social-link.facebook i {
	color: #1877f2;
}

.social-link.instagram i {
	color: #e4405f;
}

.social-link.tiktok i {
	color: #000000;
}

/* Detalles de contacto */
.contact-details {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}


.contact-item:hover {
	transform: translateY(-5px);
}


.contact-item {
	background: #f5f5f5;
	padding-top: 10px;
	padding-bottom: 10px;
	padding-left: 30px;
	padding-right: 30px;
	border-radius: 15px;
	text-align: left;
	transition: transform 0.3s ease;
}

.contact-item h3 {
	font-size: 16px;
	color: #666;
	margin: 0 0 15px 0;
	font-weight: 500;
}

.contact-item p {
	font-size: 18px;
	color: #2d3e50;
	margin: 0;
	font-weight: 600;
	line-height: 1.5;
}

@media (min-width: 992px) {
	.contact-item {
		display: flex;
		flex-direction: column;
		min-height: 100px;
	}

	.contact-item p {
		display: flex;
		align-items: center;
		flex-grow: 1;
	}
}

@media (max-width: 1280px) {
	.contact-item p {
		font-size: 12px;
	}
}
/* Responsive contacto */
@media (max-width: 992px) {
	.contact-details {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.social-links {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}

	.contacto-info {
		padding: 40px 30px;
	}

	.contacto-container {
		margin: 0 auto;
	}

	.contact-item p {
		font-size: 16px;
	}
}

@media (max-width: 768px) {
	.contacto-title {
		font-size: 36px;
	}

	.contacto-image {
		height: 300px;
	}

	.contacto-info {
		padding: 30px 20px;
	}

	.social-link {
		font-size: 16px;
	}

	.social-link i {
		font-size: 28px;
	}

	.contact-item p {
		font-size: 14px;
	}
}