/* Reset y estilos base */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #ffffff;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Header */
.header {
    background: linear-gradient(135deg, #152c74 0%, #07214b 100%);
    color: white;
    padding: 15px 0;
    position: relative;
    border-radius: 0 0 15px 15px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.header .container {
    display: flex;
    justify-content: space-between; /* Logo a la izquierda, menú/icono a la derecha */
    align-items: center;
    flex-wrap: wrap; /* Permite que los elementos se envuelvan en pantallas pequeñas */
    min-height: 40px; /* Asegura un alto mínimo para el header */
}

/* Estilo del Logo */
.header-logo {
    height: 80px; /* Ajusta el tamaño del logo */
    margin-right: auto; /* Empuja el logo a la izquierda si hay espacio */
}

/* Contenido del encabezado (título y subtítulo) */
.header-content {
    text-align: center;
    width: 100%; /* Ocupa todo el ancho disponible debajo del logo y menú */
    margin-top: 20px; /* Espacio superior */
    padding-top: 10px; /* Espacio interno superior */
    border-top: 1px solid rgba(255, 255, 255, 0.2); /* Separador visual */
}

.header-content h1 {
    font-size: 3rem;
    margin-bottom: 10px;
    font-weight: 700;
}

.header-content p {
    font-size: 1.2rem;
    opacity: 0.9;
}

/* Ocultar el checkbox de hamburguesa */
#menu-toggle {
    display: none;
}

/* Icono de hamburguesa */
.menu-icon {
    display: none; /* Ocultar por defecto en desktop */
    width: 30px;
    height: 3px; /* Usar solo una barra para simular el icono antes de transformarse */
    background: white;
    position: relative;
    cursor: pointer;
    z-index: 3; /* Asegura que el icono esté por encima del menú */
    transition: background-color 0.3s ease; /* Transición para el color del icono */
    margin-left: 20px; /* Espacio a la izquierda del icono, si es necesario */
}

.menu-icon::before,
.menu-icon::after {
    content: '';
    display: block;
    width: 100%;
    height: 3px; /* Barras del icono de hamburguesa */
    background: white;
    position: absolute;
    transition: transform 0.3s ease, top 0.3s ease, opacity 0.3s ease;
}

.menu-icon::before {
    top: -8px;
}

.menu-icon::after {
    top: 8px;
}

/* Estilos para el menú de navegación (desktop) */
.header nav {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1rem;
    transition: transform 0.3s ease;
}

.header nav a {
    color: #ffffff;
    text-decoration: none;
    font-weight: 500;
    padding: 8px 15px; /* Ajustado para coincidir con biblioteca.css */
    border-radius: 15px; /* Ajustado para coincidir con biblioteca.css */
    transition: background 0.3s;
}

.header nav a:hover,
.header nav a.active {
    background: #3498db; 
}

/* Definición del Proyecto */
.project-definition {
    padding: 80px 0;
    background-color: #f8fafc;
}

.project-definition h2 {
    text-align: center;
    font-size: 2.5rem;
    color: #1e40af;
    margin-bottom: 40px;
    font-weight: 600;
}

.definition-content {
    max-width: 800px;
    margin: 0 auto;
}

.definition-content p {
    font-size: 1.1rem;
    margin-bottom: 20px;
    text-align: justify;
    color: #1a2637;
}

/* Sección del Equipo */
.team-section {
    padding: 80px 0;
    background-color: white;
}

.team-section h2 {
    text-align: center;
    font-size: 2.5rem;
    color: #162e6f;
    margin-bottom: 60px;
    font-weight: 600;
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 40px;
    margin-top: 40px;
}

.team-member {
    text-align: center;
    padding: 30px;
    border-radius: 15px;
    box-shadow: 0 4px 15px rgba(30, 64, 175, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    background: white;
}

.team-member:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(11, 35, 116, 0.15);
}

.member-image {
    margin-bottom: 20px;
}

.member-image img {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #1e478a;
}

.team-member h3 {
    font-size: 1.5rem;
    color: #1e40af;
    margin-bottom: 5px;
    font-weight: 600;
}

.team-member .role {
    font-size: 1rem;
    color: #3b82f6;
    font-weight: 500;
    margin-bottom: 15px;
}

.team-member .description {
    font-size: 0.95rem;
    color: #6b7280;
    line-height: 1.5;
}

/* Sección de Contacto */
.contact-section {
    padding: 80px 0;
    background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
}

.contact-section h2 {
    text-align: center;
    font-size: 2.5rem;
    color: #1e40af;
    margin-bottom: 20px;
    font-weight: 600;
}

.contact-section > .container > p {
    text-align: center;
    font-size: 1.1rem;
    color: #6b7280;
    margin-bottom: 50px;
}

.contact-form {
    max-width: 600px;
    margin: 0 auto;
    background: white;
    padding: 40px;
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(30, 64, 175, 0.1);
}

.form-group {
    margin-bottom: 25px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: #374151;
}

.form-group input,
.form-group textarea {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    font-size: 1rem;
    transition: border-color 0.3s ease;
}

.form-group input:focus,
.form-group textarea:focus {
    outline: none;
    border-color: #1e4594;
}

.rating-stars {
    display: flex;
    gap: 5px;
    margin-top: 5px;
}

.star {
    font-size: 1.5rem;
    color: #d1d5db;
    cursor: pointer;
    transition: color 0.2s ease;
}

.star:hover,
.star.active {
    color: #fbbf24;
}

.submit-btn {
    width: 100%;
    background: linear-gradient(135deg, #1e40af 0%, #0a295a 100%);
    color: white;
    padding: 15px 30px;
    border: none;
    border-radius: 8px;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.submit-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(30, 64, 175, 0.3);
}

.success-message {
    max-width: 600px;
    margin: 20px auto 0;
    padding: 20px;
    background: #d1fae5;
    border: 1px solid #10b981;
    border-radius: 8px;
    text-align: center;
}

.success-message p {
    color: #065f46;
    font-weight: 500;
}

/* Footer */
.footer {
    background-color: #1f2965;
    color: white;
    text-align: center;
    padding: 30px 0;
}

.footer p {
    opacity: 0.9;
}

/* Responsive */
@media (max-width: 768px) {
    /* Ajustes generales del header para móvil */
    .header .container {
        flex-direction: row; /* Mantener logo a la izquierda, icono a la derecha */
        justify-content: space-between;
        padding-top: 10px; /* Pequeño padding superior para el logo/icono */
        padding-bottom: 10px;
    }

    /* Ocultar el contenido del encabezado (título y subtítulo) en móvil, ya que no tienes espacio para ello */
    .header-content {
        display: none; 
    }
    
    .header-logo {
        height: 80px; /* Ajustar tamaño del logo en móvil */
        margin-left: 0; /* Asegurar que no haya margin-left innecesario */
    }

    /* Mostrar el ícono de hamburguesa */
    .menu-icon {
        display: block;
        margin-left: 0; /* Eliminar margen que lo empujaba */
    }

    /* El menú de navegación en móvil */
    .header nav {
        position: absolute; /* Usamos absolute para que se posicione relativo al header */
        top: 100%; /* Justo debajo del header */
        right: -100%; /* Ocultar el menú a la derecha */
        width: 220px; /* Ancho del menú desplegable */
        background-color: #333; /* Color de fondo del menú desplegable */
        flex-direction: column;
        padding: 15px;
        border-radius: 8px;
        box-shadow: 0 8px 20px rgba(0,0,0,0.2);
        z-index: 1000;
        transition: right 0.3s ease; /* Animación para el deslizamiento */
        gap: 0; /* Eliminar el gap entre los elementos */
    }
    
    /* Mostrar el menú cuando el checkbox está marcado */
    #menu-toggle:checked ~ nav {
        right: 20px; /* Deslizar el menú 20px desde la derecha */
        display: flex; /* Asegurarse de que se muestre como flex */
    }

    .header nav a {
        display: block; /* Cada enlace ocupa su propia línea */
        width: 100%;
        margin: 5px 0; /* Margen vertical para separar los enlaces */
        text-align: left; /* Alinear el texto de los enlaces a la izquierda */
        padding: 8px 15px; /* Padding para los enlaces */
    }

    /* Restaurar el icono de hamburguesa (sin animación de "X") */
    .menu-icon .navicon {
        background: white; /* Asegurarse de que la barra central siempre esté visible */
    }

    .menu-icon::before {
        transform: none; /* Desactivar la rotación */
        top: -8px; /* Posición original */
    }
    
    .menu-icon::after {
        transform: none; /* Desactivar la rotación */
        top: 8px; /* Posición original */
    }
    
    .project-definition h2,
    .team-section h2,
    .contact-section h2 {
        font-size: 2rem;
    }
    
    .team-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .contact-form {
        padding: 30px 20px;
    }
    
    .container {
        padding: 20px 15px;
    }
}

@media (max-width: 480px) {
    .header {
        padding: 10px 0;
    }
    
    .project-definition,
    .team-section,
    .contact-section {
        padding: 60px 0;
    }
    
    .member-image img {
        width: 120px;
        height: 120px;
    }
}