/* --- Variables de Color y Tipografía (NUEVA PALETA GT EDUCA) --- */
:root {
    /* Colores Base Solicitados */
    --color-madera-fuerte: #6c4224;
    --color-madera-claro: #825333;
    --color-beige-fondo: #f5f0eb;
    --color-beige-borde: #e8d5c4;
    --color-blanco: #ffffff;
    --color-texto: #333333;
    --color-resaltar: #eb9d50;

    /* Variables de Estructura (Mapeadas a los nuevos colores) */
    --color-primario: var(--color-madera-claro); 
    --color-primario-claro: #986541; /* Madera claro iluminado */
    --color-primario-oscuro: var(--color-madera-fuerte); 
    --color-secundario: var(--color-resaltar); 
    --color-secundario-claro: #f4b475; /* Resaltar iluminado */
    --color-secundario-oscuro: #d48336; /* Resaltar oscuro */
    --color-acento-texto: var(--color-texto); 
    
    /* Fondos y Sombras ajustados a la nueva paleta */
    --color-fondo-claro: var(--color-beige-fondo); 
    --color-fondo-oscuro: #462814; /* Tono madera muy profundo para contrastes */
    --color-gris-intermedio: var(--color-beige-borde); 
    --color-sombra: rgba(108, 66, 36, 0.12); /* Sombra tono madera */
    --color-sombra-hover: rgba(108, 66, 36, 0.25);
    
    --font-heading: 'Rajdhani', sans-serif; 
    --font-body: 'Montserrat', sans-serif; 
}

/* --- Estilos Generales y ANTI-COPIA --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { 
    font-family: var(--font-body); 
    background-color: var(--color-fondo-claro); 
    color: var(--color-acento-texto); 
    line-height: 1.7; 
    overflow-x: hidden; 
    scroll-behavior: smooth; 
    /* Anti selección de texto */
    -webkit-user-select: none; 
    -ms-user-select: none; 
    user-select: none; 
}

.container { max-width: 1200px; margin: 0 auto; padding: 0 25px; }
section { scroll-margin-top: 100px; }
.common-padding { padding: 80px 0; }
h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: 700; color: var(--color-primario-oscuro); margin-bottom: 25px; letter-spacing: 1px; }
h2 { font-size: 3.2rem; text-align: center; margin-bottom: 20px; position: relative; padding-bottom: 15px; }
h2::after { content: ''; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 80px; height: 4px; background-color: var(--color-secundario); border-radius: 2px; }
.section-subtitle { font-family: var(--font-body); font-size: 1.3rem; color: var(--color-acento-texto); text-align: center; margin-bottom: 60px; max-width: 800px; margin-left: auto; margin-right: auto; font-weight: 300; }

.btn { display: inline-block; background-color: var(--color-secundario); color: var(--color-blanco); padding: 14px 30px; border-radius: 8px; text-decoration: none; font-weight: 600; font-size: 1.1rem; transition: all 0.3s ease; border: none; cursor: pointer; text-transform: uppercase; letter-spacing: 0.5px; box-shadow: 0 4px 15px var(--color-sombra); }
.btn:hover { background-color: var(--color-secundario-oscuro); transform: translateY(-4px); box-shadow: 0 8px 25px var(--color-sombra-hover); color: var(--color-blanco);}
.btn-outline { background-color: transparent; border: 2px solid var(--color-secundario); color: var(--color-secundario); }
.btn-outline:hover { background-color: var(--color-secundario); color: var(--color-blanco); }

/* --- Header --- */
.header { background-color: var(--color-blanco); box-shadow: 0 4px 20px var(--color-sombra); position: sticky; top: 0; z-index: 1000; }
.top-bar { background-color: var(--color-primario-oscuro); padding: 8px 0; border-bottom: 1px solid var(--color-primario); }
.top-bar .container-nav { justify-content: flex-end; }
.social-icons { display: flex; gap: 20px; }
.social-icons a { color: var(--color-secundario-claro); font-size: 1.3rem; transition: all 0.3s ease; }
.social-icons a:hover { color: var(--color-blanco); transform: translateY(-3px) scale(1.1); }
.main-header-content { padding: 15px 0; }
.container-nav { display: flex; justify-content: space-between; align-items: center; max-width: 1200px; margin: 0 auto; padding: 0 25px; }
.logo img { max-width: 160px; height: auto; }
.nav-menu ul { list-style: none; display: flex; margin: 0; padding: 0; align-items: center;}
.nav-item { margin-left: 35px; position: relative; }
.nav-link { font-family: var(--font-heading); text-decoration: none; color: var(--color-acento-texto); font-weight: 600; padding: 10px 0; display: block; transition: all 0.3s ease; font-size: 1.1rem; position: relative; }
.nav-link::after { content: ''; position: absolute; left: 0; bottom: -5px; width: 0; height: 3px; background-color: var(--color-primario); transition: width 0.3s ease-out; }
.nav-link:hover::after, .nav-link.active::after { width: 100%; }
.nav-link:hover { color: var(--color-primario); transform: translateY(-2px); }

/* Dropdown */
.dropdown-toggle i { font-size: 0.7em; margin-left: 8px; transition: transform 0.3s ease; }
.nav-item.dropdown:hover .dropdown-toggle i { transform: rotate(180deg); }
.dropdown-menu { list-style: none; position: absolute; top: calc(100% + 15px); left: 0; background-color: var(--color-primario-oscuro); box-shadow: 0 8px 25px var(--color-sombra-hover); border-radius: 10px; min-width: 250px; opacity: 0; visibility: hidden; transform: translateY(20px); transition: all 0.4s ease; z-index: 10; padding: 15px 0; border-top: 3px solid var(--color-secundario); display: flex; flex-direction: column; }
.nav-item.dropdown:hover .dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown-menu li { width: 100%; }
.dropdown-menu li a { padding: 12px 25px; color: var(--color-blanco); text-decoration: none; display: block; white-space: nowrap; transition: all 0.2s ease; font-weight: 400; font-size: 1rem; }
.dropdown-menu li a:hover { background-color: rgba(255, 255, 255, 0.15); color: var(--color-secundario-claro); padding-left: 30px; }
.hamburger { font-size: 2rem; cursor: pointer; color: var(--color-primario); display: none; }

/* --- Animaciones de Scroll --- */
.scroll-anim { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease-out, transform 0.8s ease-out; }
.scroll-anim.is-visible { opacity: 1; transform: translateY(0); }

/* --- Hero Section & Carrusel --- */
.hero-section { position: relative; width: 100%; overflow: hidden; height: 80vh; background-color: var(--color-fondo-oscuro); display: flex; align-items: center; justify-content: center; }
.carousel-container { position: relative; width: 100%; height: 100%; }
.carousel-slide { display: flex; width: 100%; height: 100%; }
.carousel-item { min-width: 100%; width: 100%; height: 100%; position: relative; overflow: hidden; flex-shrink: 0; }
.carousel-item img { width: 100%; height: 100%; object-fit: cover; display: block; filter: brightness(45%); /* Oscurecido levemente para mayor contraste */ transition: transform 0.1s ease-out; }

/* Degradado protector */
.carousel-item::after {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(to bottom, rgba(70,40,20,0.3) 0%, rgba(20,10,5,0.7) 100%); /* Tonos cálidos */
    pointer-events: none;
}

.carousel-caption { 
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); 
    color: var(--color-blanco); text-align: center; width: 100%; max-width: 1000px; 
    padding: 0 80px; z-index: 5; box-sizing: border-box; 
}

.carousel-caption .fade-up { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease, transform 0.6s ease; }
.carousel-item.active-caption .fade-up { opacity: 1; transform: translateY(0); }

.carousel-caption h2 { 
    font-family: var(--font-heading); color: var(--color-blanco); font-size: 4.5rem; 
    margin-bottom: 20px; text-shadow: 0 5px 15px rgba(0, 0, 0, 0.8); line-height: 1.1; 
}

.carousel-caption p { 
    font-family: var(--font-body); font-size: 1.5rem; margin-bottom: 40px; 
    text-shadow: 0 3px 10px rgba(0, 0, 0, 0.8); font-weight: 300; 
}
.carousel-prev, .carousel-next { position: absolute; top: 50%; transform: translateY(-50%); background-color: rgba(70, 40, 20, 0.6); color: var(--color-secundario); border: none; padding: 18px 22px; font-size: 2.2rem; cursor: pointer; z-index: 10; border-radius: 50%; transition: all 0.3s ease; backdrop-filter: blur(5px); }
.carousel-prev:hover, .carousel-next:hover { background-color: var(--color-primario); color: var(--color-blanco); transform: translateY(-50%) scale(1.1); }
.carousel-prev { left: 30px; } .carousel-next { right: 30px; }
.carousel-dots { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); display: flex; gap: 12px; z-index: 10; }
.dot { width: 14px; height: 14px; background-color: rgba(255, 255, 255, 0.4); border-radius: 50%; cursor: pointer; transition: all 0.3s ease; border: 2px solid rgba(255, 255, 255, 0.7); }
.dot.active { background-color: var(--color-secundario); transform: scale(1.3); border-color: var(--color-secundario); }

/* --- Amor de Tres --- */
.amor-de-tres-section { background-color: var(--color-blanco); border-top: 1px solid var(--color-gris-intermedio); border-bottom: 1px solid var(--color-gris-intermedio); }
.adt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }

/* Flexbox para Título y Logo */
.adt-header { display: flex; align-items: center; gap: 20px; margin-bottom: 20px; }
.adt-logo { width: 120px; height: 120px; border-radius: 50%; object-fit: contain; background-color: var(--color-blanco); box-shadow: 0 5px 15px var(--color-sombra); border: 3px solid var(--color-secundario); flex-shrink: 0; }
.adt-header h2 { margin-bottom: 0; text-align: left; }
.adt-header h2::after { display: none; } 

.adt-subtitle { font-size: 1.2rem; font-style: italic; color: var(--color-primario-oscuro); margin-bottom: 25px; font-weight: 600; }
.adt-content p { margin-bottom: 15px; font-size: 1.1rem; }

/* Ebooks Promoción */
.ebook-promo-card { background: linear-gradient(135deg, var(--color-primario-oscuro) 0%, var(--color-primario) 100%); padding: 40px; border-radius: 20px; color: var(--color-blanco); box-shadow: 0 15px 40px rgba(108, 66, 36, 0.4); position: relative; overflow: hidden; }
.ebook-badge { 
    position: absolute; 
    top: 30px; /* Bajamos un poco para ganar un tramo diagonal más largo */
    right: -55px; /* Ajustamos a la derecha para mantener la inclinación perfecta */
    width: 220px; /* Le damos más holgura al contenedor */
    background-color: var(--color-secundario); 
    color: var(--color-blanco); 
    padding: 6px 0; 
    text-align: center; 
    transform: rotate(45deg); 
    font-weight: 800; 
    font-size: 0.75rem; /* Letra más pequeña como sugeriste */
    text-transform: uppercase; 
    letter-spacing: 0.5px; /* Reducimos el espacio entre letras para que ocupe menos largo */
    box-shadow: 0 4px 15px rgba(0,0,0,0.3); 
    z-index: 10;
}
.ebook-promo-card h3 { color: var(--color-blanco); font-size: 2.2rem; margin-bottom: 15px; }
.ebook-promo-card p { font-size: 1.05rem; margin-bottom: 20px; font-weight: 300; }
.ebook-features { list-style: none; margin-bottom: 30px; }
.ebook-features li { margin-bottom: 10px; font-size: 1.1rem; display: flex; align-items: center; }
.ebook-features i { color: var(--color-secundario-claro); margin-right: 15px; font-size: 1.2rem; }
.btn-hotmart { background-color: var(--color-blanco); color: var(--color-primario-oscuro); display: block; text-align: center; width: 100%; margin-top: 20px;}
.btn-hotmart:hover { background-color: var(--color-secundario); color: var(--color-blanco); }

/* --- Ministerios y Servicios --- */
.courses-section { background-color: var(--color-fondo-oscuro); color: var(--color-blanco); }
.courses-section h2, .courses-section .section-subtitle { color: var(--color-blanco); }
.courses-section h2::after { background-color: var(--color-secundario); }
.course-categories-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; margin-top: 50px; }

.course-category .feature-item { 
    background-color: var(--color-primario-oscuro); padding: 40px 30px; border-radius: 20px; 
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); border: 1px solid var(--color-primario); 
    transition: all 0.4s ease; height: 100%; min-height: 380px;
    display: flex; flex-direction: column; align-items: center; text-align: center;
}
.course-category .feature-item:hover { transform: translateY(-10px); box-shadow: 0 15px 40px rgba(0, 0, 0, 0.6); background-color: var(--color-primario); }
.course-category .feature-icon i { font-size: 4.5rem; margin-bottom: 20px; display: inline-block; color: var(--color-secundario-claro); text-shadow: 0 0 15px rgba(235, 157, 80, 0.4); }
.course-category h3 { font-family: var(--font-heading); font-size: 2rem; color: var(--color-blanco); margin-bottom: 15px; }
.course-category p { font-family: var(--font-body); font-size: 1.05rem; color: var(--color-blanco); margin-bottom: 20px;}

.service-link { 
    margin-top: auto; color: var(--color-secundario-claro); text-decoration: none; font-weight: 700; 
    font-size: 1.1rem; transition: color 0.3s ease; display: inline-flex; align-items: center; gap: 8px;
}
.service-link:hover { color: var(--color-blanco); }
.service-link i { transition: transform 0.3s ease; }
.feature-item:hover .service-link i { transform: translateX(5px); }

/* --- Quiénes somos --- */
.about-section { background-color: var(--color-blanco); text-align: center; }
.gt-meaning { max-width: 800px; margin: 0 auto 50px; padding: 25px; background-color: var(--color-fondo-claro); border-radius: 12px; border-left: 5px solid var(--color-primario); font-size: 1.15rem; color: var(--color-primario-oscuro); box-shadow: 0 5px 15px var(--color-sombra); }
.teachers-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 50px; justify-content: center; }
.teacher-card { background-color: var(--color-fondo-claro); padding: 35px; border-radius: 20px; box-shadow: 0 10px 30px var(--color-sombra); text-align: center; transition: all 0.4s ease; border: 1px solid var(--color-gris-intermedio); }
.teacher-card:hover { transform: translateY(-10px); box-shadow: 0 15px 40px var(--color-sombra-hover); }
.teacher-photo { width: 160px; height: 160px; border-radius: 50%; overflow: hidden; margin: 0 auto 25px; border: 6px solid var(--color-primario); box-shadow: 0 0 0 6px var(--color-secundario-claro), 0 0 20px rgba(108, 66, 36, 0.3); }
.teacher-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.teacher-card:hover .teacher-photo img { transform: scale(1.05); }
.teacher-card h3 { color: var(--color-acento-texto); font-size: 2rem; margin-bottom: 12px; }
.teacher-card p { font-size: 1.05rem; color: var(--color-acento-texto); margin-bottom: 12px; }
.teacher-card p strong { color: var(--color-secundario); font-weight: 600; }

/* --- Testimonios & Contacto --- */
.contact-section { background-color: var(--color-blanco); text-align: center; }
.contact-info { max-width: 600px; margin: 0 auto; background-color: var(--color-fondo-claro); padding: 40px; border-radius: 15px; box-shadow: 0 8px 25px var(--color-sombra); border: 1px solid var(--color-gris-intermedio); }
.contact-info p { font-size: 1.3rem; margin-bottom: 20px; color: var(--color-acento-texto); display: flex; align-items: center; justify-content: center; }
.contact-info p i { color: var(--color-secundario); margin-right: 15px; font-size: 1.8rem; width: 30px; text-align: center; }
.contact-info a { color: var(--color-primario); text-decoration: none; font-weight: 600; transition: all 0.3s ease; }
.contact-info a:hover { color: var(--color-secundario); text-decoration: underline; }
.cta-message { margin-top: 40px; font-size: 1.5rem; font-weight: 700; color: var(--color-primario); text-shadow: 0 0 10px rgba(108, 66, 36, 0.2); }

.testimonials-section { background-color: var(--color-fondo-claro); }
.testimonials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; justify-content: center; }
.testimonial-card { background-color: var(--color-blanco); padding: 35px; border-radius: 18px; box-shadow: 0 8px 25px var(--color-sombra); text-align: left; transition: all 0.4s ease; border-left: 5px solid var(--color-secundario); }
.testimonial-card:hover { transform: translateY(-8px); box-shadow: 0 12px 35px var(--color-sombra-hover); }
.testimonial-header { display: flex; align-items: center; margin-bottom: 25px; }
.testimonial-photo { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; margin-right: 20px; border: 4px solid var(--color-primario); box-shadow: 0 0 0 3px rgba(108, 66, 36, 0.15); }
.testimonial-meta h4 { color: var(--color-acento-texto); font-size: 1.4rem; margin-bottom: 8px; font-family: var(--font-heading); letter-spacing: 0.5px; }
.testimonial-meta .stars i { color: #FFD700; font-size: 1.2rem; margin-right: 2px; }
.testimonial-text { font-size: 1.1rem; color: var(--color-acento-texto); line-height: 1.8; font-style: italic; }

/* --- Footer --- */
.footer { background-color: var(--color-primario-oscuro); color: var(--color-blanco); text-align: center; padding: 40px 0; font-size: 1rem; border-top: 5px solid var(--color-secundario); }
.footer p { margin: 8px 0; font-family: var(--font-body); font-weight: 300; }
.footer i { color: var(--color-secundario-claro); margin: 0 5px; }

/* --- Modal Formulario --- */
.modal { display: none; position: fixed; z-index: 2000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(70,40,20,0.7); backdrop-filter: blur(5px); justify-content: center; align-items: center; opacity: 0; transition: opacity 0.3s ease; }
.modal.show { display: flex; opacity: 1; }
.modal-content { background-color: var(--color-fondo-claro); padding: 40px; border-radius: 15px; width: 90%; max-width: 500px; position: relative; transform: translateY(-30px); transition: transform 0.3s ease; box-shadow: 0 20px 50px rgba(0,0,0,0.5); }
.modal.show .modal-content { transform: translateY(0); }
.close-modal { position: absolute; top: 15px; right: 20px; font-size: 2rem; color: #aaa; cursor: pointer; transition: color 0.3s; }
.close-modal:hover { color: var(--color-primario-oscuro); }
.modal-header h3 { color: var(--color-primario-oscuro); font-size: 2rem; margin-bottom: 10px; }
.form-group { margin-bottom: 20px; text-align: left; }
.form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: var(--color-primario-oscuro); }
.form-group input { width: 100%; padding: 12px 15px; border: 1px solid var(--color-gris-intermedio); border-radius: 8px; font-size: 1rem; }
.form-group input:focus { outline: none; border-color: var(--color-secundario); box-shadow: 0 0 5px var(--color-secundario-claro); }
.btn-submit { width: 100%; font-size: 1.2rem; }
.form-message { margin-top: 15px; font-weight: 600; text-align: center; }
.msg-success { color: #28a745; }
.msg-error { color: #dc3545; }

/* --- MEDIA QUERIES --- */
@media (max-width: 992px) {
    .container-nav { padding: 0 20px; }
    .top-bar .container-nav { justify-content: center; }
    .main-header-content .container-nav { flex-wrap: wrap; justify-content: space-between; }
    .nav-menu { flex-basis: 100%; order: 3; display: none; width: 100%; background-color: var(--color-blanco); box-shadow: 0 8px 15px rgba(0, 0, 0, 0.08); padding: 20px 0; position: absolute; top: 100%; left: 0; z-index: 999; }
    .nav-menu.active { display: block; }
    .nav-menu ul { flex-direction: column; width: 100%; text-align: center; }
    .nav-item { margin: 0; width: 100%; }
    .nav-link { padding: 15px 0; border-bottom: 1px solid var(--color-gris-intermedio); }
    .nav-link::after { display: none; }
    
    .dropdown-menu { position: static; width: 100%; box-shadow: none; background-color: var(--color-primario); border-radius: 0; padding: 0; margin-top: 10px; max-height: 0; overflow: hidden; transition: max-height 0.4s ease-out; }
    .nav-item.dropdown.active .dropdown-menu { max-height: 250px; }
    .dropdown-menu li a { background-color: var(--color-primario-oscuro); border-top: 1px solid rgba(255, 255, 255, 0.1); }
    
    .hamburger { display: block; margin-left: 20px; }
    
    /* Carrusel Responsive Tablets */
    .hero-section { height: 60vh; }
    .carousel-caption { left: 50%; transform: translate(-50%, -50%); text-align: center; width: 95%; padding: 0 30px; }
    .carousel-caption h2 { font-size: 3rem; margin-bottom: 15px; }
    
    .adt-grid { grid-template-columns: 1fr; gap: 40px; }
    .adt-header { flex-direction: column; text-align: center; justify-content: center; margin-bottom: 30px;}
    .adt-header h2 { text-align: center; }
    .adt-content { text-align: center; }
}

@media (max-width: 768px) {
    /* Damos más altura para que el texto y el botón respiren y no choquen con los puntos */
    .hero-section { height: 75vh; } 
    
    /* Ajustamos el contenedor del texto */
    .carousel-caption { padding: 0 45px; top: 48%; } 
    
    /* Letras más proporcionadas para celular */
    .carousel-caption h2 { font-size: 2.2rem; margin-bottom: 12px; line-height: 1.1; }
    .carousel-caption p { font-size: 0.95rem; margin-bottom: 25px; line-height: 1.5; }
    
    /* Achicamos las flechas laterales y las pegamos a los bordes para liberar el centro */
    .carousel-prev, .carousel-next { 
        padding: 12px 16px; 
        font-size: 1.4rem; 
        background-color: rgba(70, 40, 20, 0.4); /* Un poco más transparentes */
    }
    .carousel-prev { left: 10px; } 
    .carousel-next { right: 10px; }

    /* Ajuste de botón y títulos generales */
    .btn { padding: 12px 25px; font-size: 0.95rem; }
    h2 { font-size: 2.3rem; }
    .course-category .feature-icon i { font-size: 3.5rem; }
}

/* --- Ajuste Extra para celulares muy pequeños (iPhone SE, etc.) --- */
@media (max-width: 480px) {
    .hero-section { height: 85vh; } /* Máxima altura para dar espacio */
    .carousel-caption { padding: 0 35px; top: 45%; }
    .carousel-caption h2 { font-size: 1.9rem; }
    .carousel-caption p { font-size: 0.85rem; margin-bottom: 20px;}
    
    /* Flechas aún más discretas */
    .carousel-prev, .carousel-next { padding: 8px 12px; font-size: 1.1rem; }
    .carousel-prev { left: 5px; } 
    .carousel-next { right: 5px; }
}