/* Variables de color (opcional, si tu editor/compilador soporta CSS variables) */
:root {
    --bg-dark: #121212;        /* Fondo principal (negro) */
    --bg-darker: #181818;      /* Negro un poco más claro para cajas */
    --text-color: #fff;        /* Texto blanco */
    --accent-color: #4db5ff;   /* Azul para detalles (ajusta a tu gusto) */
}

/* Estilos generales */
body {
    font-family: Arial, sans-serif; /* Fuente general */
    background-color: var(--bg-dark); 
    color: var(--text-color); 
    margin: 0;
    padding: 0;
    text-align: center; /* Centrar texto globalmente */
}

/* Estilos del encabezado */
header {
    background-color: var(--bg-darker);
    color: var(--text-color);
    padding: 20px 0;
    display: flex; /* Flexbox para alinear elementos */
    justify-content: space-between; /* Espaciado entre título y menú */
    align-items: center; /* Centrar verticalmente */
    padding: 20px;
}

.nombre-hover {
    color: var(--text-color);
    transition: color 0.3s ease; /* transición suave */
    cursor: pointer; /* indica interacción al usuario */
}

.nombre-hover:hover {
    color: var(--accent-color); /* Cambia a azul al pasar el ratón */
}

.portada-hero {
    display: block;
    margin: 20px auto;
    max-width: 800px;
    width: 80%;
    height: auto;
    border-radius: 5px;
    /* Sombra sutil */
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.8);
}
.text-container-borrado {
font-size: 2rem;
text-align: center;
margin-top: 50px;
min-height: 50px; 
}

.cursor {
    display: inline-block;
    width: 5px;
    height: 1.5rem;
    background-color: #333;
    animation: blink 0.6s steps(2,start) infinite;
}

@keyframes blink {
    50% {
        opacity: 0;
    }
}

h1 {
    margin: 0;
    font-size: 2em; /* Tamaño del título principal */
    flex-grow: 1; /* Ocupar espacio disponible */
    text-align: left;
    padding-left: 20px;
}

nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex; /* Menú en línea */
}

nav ul li {
    margin: 0 15px; /* Espaciado entre elementos del menú */
}

nav ul li a {
    color: var(--accent-color); 
    text-decoration: none;
    font-size: 1.2em;
}

/* Secciones */
section {
    padding: 50px; /* Espaciado interno */
    border-bottom: 1px solid #ddd; /* Línea divisoria entre secciones */
    max-width: 900px; /* Ancho máximo para no ocupar toda la pantalla */
    margin: auto; /* Centrar la sección */
    text-align: left; /* Alinear texto a la izquierda */
}

h2 {
    font-size: 1.8em;
    margin-bottom: 20px;
}

.tech-highlight {
    font-size: 1.2em;
    color: var(--accent-color);
    margin-top: 15px;
    text-align: center;
}

/* Estilos del enlace */
nav ul li a:hover {
    text-decoration: underline; /* Subrayado al pasar el mouse */
}
/* Estilo para la sección "Sobre mí" */
.sobre-mi-container {
    display: flex;
    align-items: center;
    gap: 20px;
}

.perfil {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 20px;
    border: 2px solid var(--accent-color);
}

.tech-list {
    list-style: none;
    display: flex;
    gap: 20px;
    justify-content: center;
    align-items: center;
    padding: 0;
    margin: 0;
}

.tech-list li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    font-size: 2em;
    color: var(--text-color);
    position: relative;
}

.tech-list li:hover {
    color: var(--accent-color);
}

.tech-list li span {
    font-size: 0.4em; /* Letra pequeña */
}

.swift-special {
    color: var(--accent-color); /* Siempre azul */
    font-size: 2.5em; /* Más grande */
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.3s ease, color 0.3s ease;
}

.swift-special i {
    color: var(--accent-color); /* Azul desde el inicio */
    transition: color 0.3s ease;
    font-size: 1.5em; /* Ícono más grande que los otros */
}

.swift-special span {
    font-weight: bold;
    color: var(--accent-color); /* Siempre azul también */
    font-size: 0.4em; /* Pequeño y elegante */
    margin-top: 5px;
}

.swift-special::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 3px;
    background-color: var(--accent-color);
    bottom: -5px;
    left: 0;
    border-radius: 5px;
}
/* Al pasar el cursor (opcional: cambia ligeramente a más claro para dar interacción) */
.swift-special:hover {
    transform: scale(1.1); /* Efecto de aumento al pasar el ratón */
    color: #66cfff; /* Azul más claro */
}

.swift-special:hover span {
    color: #66cfff; /* Azul más claro también para el texto */
}


.gitcv-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px; /* Espacio entre imagen y log */
    margin-top: 30px;
    flex-wrap: nowrap; /* No permite saltar línea */
}

.git-info-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px; /* aumenta el espacio entre título y terminal */
    flex-grow: 1;
    justify-content: flex-start; /* alinea desde arriba */
}

.titulo-proyecto {
    color: var(--text-color);
    font-size: 1.3rem;
    text-align: center;
    margin-top: 0;        /* elimina margen superior */
    margin-bottom: 10px;  /* ligero margen inferior */
    font-weight: bold;
}

.gitcv-container img {
    height: 500px;
    width: auto;            /* Esto evita deformaciones */
}

#git-image {
    height: 500px;
    width: auto;
    max-width: 100%;
    flex-shrink: 0; /* Evita que la imagen reduzca demasiado su ancho */
}

/* Media Query para pantallas pequeñas */
@media (max-width: 768px) {
    .gitcv-container {
        flex-direction: row; /* Mantiene siempre en fila */
        align-items: flex-start; /* Alinea desde arriba */
        justify-content: flex-start; /* Alinea desde la izquierda */
        overflow-x: auto; /* Permite scroll horizontal en caso necesario */
        padding-bottom: 10px;
    }

    #git-image {
        height: auto;
        max-height: 250px;
        width: auto;
    }

    .git-log {
        width: 100%; /* Aprovecha el resto del espacio disponible */
        font-size: 0.8rem; /* Ajusta ligeramente el tamaño para móviles */
    }
}

.gitcv-container ul {
    list-style: none;
    padding: 0;
    text-align: left;
    color: var(--text-color);
    font-size: 1em;
}

.gitcv-container li {
    margin-bottom: 10px;
}

@media (max-width: 768px) {
    .gitcv-container {
        gap: 10px;
        padding: 10px;
    }

    #git-image {
        height: auto;
        max-height: 300px; /* altura máxima en móviles */
        width: auto;
    }

    .git-log {
        font-size: 0.75rem; /* reducir ligeramente el texto */
        padding: 10px;
    }
}

/* Colores específicos para los commits en el git-log */
.commit-main {
    color: #ffa427;
}

.commit-daw {
    color: #028cfa;
}

.commit-iosDeveloperAlten {
    color: #ff1414;
}

.commit-dam {
    color: #e3518c;
}

.commit-swiftDeveloperProgram {
    color: #00ab33;
}

/* Fuente bold común a todos los commits */
.git-commit {
    font-weight: bold;
}

.git-log {
    background-color: #000;
    color: #fff;
    padding: 20px;
    font-family: 'Courier New', Courier, monospace;
    border-radius: 8px;
    margin-top: 20px;
    max-width: 600px;
    overflow-y: auto;
    height: 200px;
    border: 1px solid #333;
    box-shadow: 0 0 10px rgba(0,0,0,0.5);
    max-width: 100%;
    flex-grow: 1;   /* El git-log toma el espacio sobrante */
    overflow: auto;
}

.git-log-title {
    color: #4db5ff;
    margin-bottom: 10px;
    font-weight: bold;
}

.git-commit {
    cursor: pointer; /* Indica claramente que es clicable */
    transition: transform 0.2s ease, background-color 0.2s ease;
    padding: 5px 0;
    border-bottom: 1px solid #333;
    border-radius: 4px;
    font-size: 0.9rem;
    font-weight: bold;
}
.git-commit:hover {
    transform: translateX(8px); /* Desplaza ligeramente hacia la derecha al pasar el ratón */
    background-color: rgba(77, 181, 255, 0.1); /* Fondo azul claro translúcido */
}

.git-commit:active {
    transform: translateX(4px); /* Efecto al hacer clic */
    background-color: rgba(77, 181, 255, 0.3);
}

.git-commit:last-child {
    border-bottom: none;
}

.git-commit::before {
    content: '➜';
    color: var(--accent-color);
    margin-right: 8px;
    opacity: 0.6;
    transition: opacity 0.3s ease;
}

.git-commit:hover::before {
    opacity: 1;
}

/* Animación para simular el scroll del log */
@keyframes scrollLog {
    0% { transform: translateY(0); }
    100% { transform: translateY(-100%); }
}

.commit-description-box {
    margin-top: 20px;
    padding: 15px;
    background-color: var(--bg-darker);
    color: var(--text-color);
    border: 1px solid var(--accent-color);
    border-radius: 8px;
    font-size: 0.9rem;
    font-family: Arial, sans-serif;
    text-align: left;
    display: none; /* Oculto inicialmente */
    max-width: 600px;
}

.commit-description-box.visible {
    display: block;
}

.commit-description {
    margin-top: 8px;
    padding: 8px;
    background-color: #1e1e1e;
    border-left: 4px solid var(--accent-color);
    border-radius: 5px;
    font-size: 0.85em;
    color: #ddd;
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* Estilos de la sección de proyectos */
.proyectos-container {
    display: flex; /* Organiza los proyectos en fila */
    flex-wrap: wrap; /* Permite que los proyectos bajen si no caben */
    justify-content: center; /* Centrar los proyectos */
    gap: 20px; /* Espaciado entre proyectos */
}

.proyecto {
    background: var(--bg-darker); 
    color: var(--text-color);
    padding: 20px;
    border-radius: 10px;
    text-align: center;
    max-width: 300px;
    margin: auto;
    transition: background-color 0.3s ease; /* Transición suave */
}


.proyecto:hover {
    background-color: #2a2a2a; /* Gris un poco más claro */
}

.proyecto img {
    width: 100%; /* Imagen ocupa todo el ancho del contenedor */
    border-radius: 5px;
}

.proyecto h3 {
    margin-top: 15px;
}

.proyecto p {
    font-size: 0.9em;
}

.proyecto a {
    display: inline-block;
    margin-top: 10px;
    padding: 10px;
    background: black;
    color: white;
    text-decoration: none;
    border-radius: 5px;
}

.proyecto a:hover {
    background: gray; /* Cambio de color al pasar el ratón */
}

/* Estilo para el formulario de contacto */
form {
    display: flex;
    flex-direction: column;
    gap: 15px;
    max-width: 600px;
    margin: auto;
}

label {
    font-weight: bold;
}

input, textarea {
    background-color: #1f1f1f; /* Gris oscuro */
    color: var(--text-color); /* Texto blanco (o #fff) */
    border: 1px solid #333;   /* Un borde sutil */
    border-radius: 5px;
    padding: 10px;            /* Ajusta a tu gusto */
    font-size: 1em;
    width: 100%;              /* Que ocupe todo el espacio del contenedor */
    box-sizing: border-box;   /* Para que padding no rompa el layout */
}

button {
    background-color: #3292d4;
    color: #fff; 
    font-weight: bold;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 1em;
    padding: 10px;
    transition: all 0.3s ease;
}

button:hover {
    background-color: var(--accent-color); /* Un azul un poco más claro */
}

#formMessage {
    font-size: 1em;
    color: white;
}

/* ✅ Contenedor de contacto con dos columnas */
.contact-container {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: flex-start;
    flex-wrap: wrap;
}

/* ✅ Estilo para la información de contacto (columna izquierda) */
.contact-info {
    flex: 1;
    min-width: 250px;
}

.contact-info p {
    font-size: 1em;
    color: #fff;
}

.contact-info a {
    color: #fff;
    text-decoration: none;
    font-weight: bold;
}

.contact-info a:hover {
    text-decoration: underline;
}


.social-links {
    margin-top: 10px;
    display: flex;       /* Poner los enlaces en línea */
    gap: 10px;           /* Separar cada enlace */
    flex-wrap: wrap;     /* Que pasen a la siguiente línea si no caben */
}

.social-links a {
    display: inline-flex;
    align-items: center; 
    color: #fff;
    text-decoration: none;
    font-weight: bold;
}

.social-links a i {
    margin-right: 5px;  /* Espacio entre icono y texto */
}

.social-links a:hover {
    text-decoration: underline;
}

/* Íconos de contacto info */
.contact-info p {
    margin-bottom: 10px;
    display: flex;
    align-items: center; /* Alinear ícono y texto en la misma línea */
}

.contact-info i {
    margin-right: 8px; /* Espacio entre el ícono y el texto */
    color: var(--accent-color);       /* Ajusta el color si quieres que sea diferente */
}
/* ✅ Estilo para el formulario (columna derecha) */
.contact-form {
    flex: 1;
    min-width: 250px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* Pie de página */
#footer {
    background-color: #000; /* Fondo negro */
    color: #fff;            /* Texto blanco */
    text-align: center;     /* Centrar texto y enlaces */
    padding: 20px;          /* Espacio interno */
    margin-top: 40px;       /* Espacio encima del footer */
}

#footer nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: inline-flex;   /* Poner los enlaces en línea */
    flex-wrap: wrap;        /* Que se acomoden en varias líneas si es necesario */
    gap: 10px;              /* Espaciado entre enlaces */
}

#footer nav ul li {
    margin: 0;
}

#footer nav ul li a {
    color: #fff;
    text-decoration: none;
    font-size: 1em;
}

#footer nav ul li a:hover {
    text-decoration: underline;
}

#footer p {
    margin: 10px 0 0;       /* Separar el texto de copyright */
    font-size: 0.9em;
}

/* Diseño Responsivo */
@media (max-width: 768px) { /* Estilos para pantallas pequeñas */
    header {
        flex-direction: column; /* Apilar elementos en pantallas pequeñas */
        text-align: center;
    }
    
    h1 {
        text-align: center;
        padding: 10px 0;
    }
    
    nav ul {
        flex-direction: column; /* Menú en columna en móviles */
        padding: 0;
    }
    
    nav ul li {
        margin: 10px 0; /* Espaciado entre opciones del menú en móviles */
    }
    
    section {
        padding: 50px;
        border-bottom: none; 
        max-width: 900px;
        margin: auto;
        text-align: left;
        background-color: transparent; /* Fondo transparente, se ve el black de body */    }
}

.thanks-page {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh; /* Ocupa toda la ventana */
    background-color: var(--bg-dark); /* O el color que quieras */
    font-family: Arial, sans-serif;
    color: var(--text-color);
    text-align: center;
    padding: 20px;
}

.thanks-container {
    background: var(--bg-darker); /* Un gris oscuro (#181818) */
    padding: 40px;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(0,0,0,0.2); /* Sombra sutil en modo oscuro */
    animation: fadeIn 0.6s ease-in-out;
    max-width: 600px; /* Ajusta ancho máximo */
    margin: auto;
}

.thanks-container h1 {
    font-size: 2em;
    margin-bottom: 20px;
    color: var(--text-color); 
}

.thanks-container p {
    font-size: 1.1em;
    margin-bottom: 20px;
    color: #ccc; /* O var(--text-color) si quieres blanco */
}

.thanks-container a {
    display: inline-block;
    padding: 10px 20px;
    background-color: var(--accent-color);
    color: #000; /* Contraste sobre el azul */
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s ease;
}

.thanks-container a:hover {
    background-color: #66cfff; /* Un azul más claro */
}

/* Animación de entrada */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
