/* --- Variables de Entorno --- */
:root {
    /* MODO CYBERPUNK (Ekko) - Default */
    --bg-main: #0a0a0c;
    --bg-gradient: radial-gradient(circle at 50% -20%, #1a1a2e, #0a0a0c);
    --accent-primary: #00ffcc; /* Cian Ekko */
    --accent-secondary: #ff00ff; /* Magenta Neón */
    --text-main: #e0e0e0;
    --card-bg: rgba(255, 255, 255, 0.03);
    --border-color: rgba(255, 255, 255, 0.1);
    --font-header: 'Poppins', sans-serif;
    --font-code: 'JetBrains Mono', monospace;
}

body:not(.dark-mode) {
    /* MODO CLARO  */
    --bg-main: #ffffff;
    --bg-gradient: none;
    --accent-primary: #222222;
    --accent-secondary: #555555;
    --text-main: #1a1a1a;
    --card-bg: #f9f9f9;
    --border-color: #eee;
}

/* --- Base --- */
body {
    background: var(--bg-main);
    background-image: var(--bg-gradient);
    color: var(--text-main);
    font-family: var(--font-header);
    line-height: 1.6;
    margin: 0;
    transition: all 0.4s ease;
}

.container { max-width: 1100px; margin: 0 auto; padding: 0 2rem; }
a { text-decoration: none; transition: 0.3s; }

/* --- Header & Nav --- */
header { padding: 1.5rem 0; border-bottom: 1px solid var(--border-color); }
.header-content { display: flex; justify-content: space-between; align-items: center; }
.logo { font-weight: 800; font-size: 1.5rem; letter-spacing: -1px; margin: 0; }
.logo span { color: var(--accent-primary); }

nav { display: flex; align-items: center; gap: 15px; }

.nav-btn {
    font-family: var(--font-code);
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--accent-primary);
    border: 1px solid var(--accent-primary);
    padding: 6px 15px;
    border-radius: 6px;
}

.nav-btn:hover {
    background: var(--accent-primary);
    color: var(--bg-main);
    box-shadow: 0 0 15px var(--accent-primary);
}

.dark-mode-icon {
    background: none; border: none; cursor: pointer;
    color: var(--text-main); display: flex; align-items: center;
}

/* --- About Section --- */
.about-section { padding: 100px 0; }
.split-layout { display: flex; align-items: center; gap: 60px; }
.about-text-content { flex: 1.2; }
.about-image-wrapper { flex: 0.8; position: relative; }

.badge { 
    font-family: var(--font-code); 
    color: var(--accent-primary); 
    font-size: 0.8rem; 
    border: 1px solid var(--accent-primary);
    padding: 4px 12px;
    border-radius: 20px;
    display: inline-block;
    margin-bottom: 1rem;
}

.profile-photo {
    width: 100%; aspect-ratio: 1/1; object-fit: cover;
    border-radius: 20px; position: relative; z-index: 2;
}

.glow-effect {
    position: absolute; width: 110%; height: 110%; top: -5%; left: -5%;
    background: linear-gradient(45deg, var(--accent-primary), var(--accent-secondary));
    filter: blur(40px); opacity: 0.15; z-index: 1;
}

/* --- Botones Principales --- */
.about-btns { display: flex; gap: 15px; margin-top: 2rem; }

.btn {
    background: var(--accent-primary);
    color: var(--bg-main);
    padding: 12px 30px;
    border-radius: 8px;
    font-weight: 700;
    display: inline-block;
}

.btn:hover { box-shadow: 0 0 20px var(--accent-primary); transform: translateY(-2px); }

/* Boton secundario(Contactar) */
.btn-secondary {
    background: transparent;
    color: var(--accent-primary);
    border: 2px solid var(--accent-primary);
}

.btn-secondary:hover {
    background: var(--accent-primary);
    color: var(--bg-main);
}

/* --- Projects --- */
.projects-section { padding: 60px 0; }
.projects-list { display: flex; flex-direction: column; gap: 80px; margin-top: 50px; }
.project-row { 
    display: flex; gap: 40px; align-items: center; padding: 30px;
    border-radius: 24px; background: var(--card-bg);
    border: 1px solid var(--border-color);
}

.project-image { flex: 1; }
.project-icon-wrapper {
    background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
    height: 250px; border-radius: 15px;
    display: flex; justify-content: center; align-items: center;
    font-size: 4rem; color: var(--bg-main);
}

.project-info { flex: 1.5; }
.project-info h3 { font-size: 2rem; margin: 0 0 10px 0; }
.project-tech { margin: 15px 0; display: flex; gap: 10px; }
.project-tech span { font-family: var(--font-code); font-size: 0.8rem; opacity: 0.7; }

.link-glow { font-weight: 700; color: var(--accent-primary); margin-right: 20px; }
.link-glow:hover { text-shadow: 0 0 10px var(--accent-primary); }

/* --- Footer --- */
.main-footer { padding: 60px 0 30px; border-top: 1px solid var(--border-color); background: rgba(0,0,0,0.2); margin-top: 100px; text-align: center; }
.footer-socials { display: flex; justify-content: center; gap: 25px; font-size: 2rem; margin: 20px 0; }
.footer-socials a { color: var(--text-main); }
.footer-socials a:hover { color: var(--accent-primary); transform: translateY(-5px); }
.copyright { font-family: var(--font-code); font-size: 0.8rem; opacity: 0.5; }

/* --- Responsive --- */
@media (max-width: 768px) {
    .split-layout, .project-row { flex-direction: column; text-align: center; }
    .project-row { flex-direction: column-reverse; }
    .about-btns { justify-content: center; }
}

/* --- System Panel (Perfil) --- */
.system-panel {
    background: var(--card-bg);
    border: 1px solid var(--accent-primary);
    border-radius: 12px;
    padding: 24px;
    margin: 25px 0;
    box-shadow: 0 0 20px rgba(0, 255, 204, 0.05); /* Glow sutil para que no mate la vista */
}

.system-title {
    font-family: var(--font-code);
    color: var(--text-main);
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 15px;
}

.system-data {
    font-family: var(--font-code);
    font-size: 0.9rem;
    margin-bottom: 20px;
}

.data-row {
    display: grid;
    /* Grid asegura que los dos puntos ":" queden perfectamente alineados */
    grid-template-columns: 85px 15px 1fr; 
    margin-bottom: 6px;
}

.data-key {
    color: var(--accent-primary);
}

.data-colon {
    color: var(--text-main);
}

.data-val {
    color: var(--text-main);
}

.system-hr {
    border: none;
    border-top: 1px solid var(--border-color);
    margin: 20px 0;
}

.system-bio {
    font-family: var(--font-header); /* Usa Poppins para contrastar con la de código */
    font-size: 0.95rem;
    color: var(--text-main);
    line-height: 1.7;
    margin: 0; /* Reseteamos el margen que traen los <p> por defecto */
    opacity: 0.9;
}

/*Linea 120....
/*Certificaciones sección*/
/* --- Carrusel de Certificaciones --- */
.carousel-container {
    position: relative;
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    display: flex;
    align-items: center;
}

.carousel-track-container {
    overflow: hidden; /* Fundamental: oculta los certificados fuera de la vista */
    width: 100%;
    border-radius: 12px;
    background: var(--card-bg);
    border: 1px solid var(--border-color);
}

.carousel-track {
    display: flex;
    padding: 0;
    margin: 0;
    list-style: none;
    transition: transform 0.4s ease-in-out; /* Suaviza el movimiento lateral */
}

.carousel-slide {
    min-width: 100%; /* Cada slide ocupa todo el contenedor visible */
    box-sizing: border-box;
    padding: 30px;
    text-align: center;
}

.carousel-slide img {
    width: 100%;
    max-height: 450px;
    object-fit: contain;
    border-radius: 8px;
}

.cert-title {
    font-family: var(--font-code);
    color: var(--accent-primary);
    margin-top: 20px;
    font-size: 1.1rem;
    font-weight: 700;
}

/* Botones de navegación integrados con el estilo con el cual estamos laburando :-} */
.carousel-btn {
    background: var(--bg-main);
    color: var(--accent-primary);
    border: 2px solid var(--accent-primary);
    border-radius: 50%;
    width: 45px;
    height: 45px;
    cursor: pointer;
    position: absolute;
    z-index: 10;
    transition: all 0.3s ease;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.2rem;
}

.carousel-btn:hover {
    background: var(--accent-primary);
    color: var(--bg-main);
    box-shadow: 0 0 15px var(--accent-primary);
}

#prev-btn { left: -60px; }
#next-btn { right: -60px; }

@media (max-width: 900px) {
    #prev-btn { left: 10px; }
    #next-btn { right: 10px; }
    .carousel-slide { padding: 40px 15px 15px 15px; } /* Evita que los botones tapen la imagen en mobile */
}


/* --- Estilos para la interactividad de la imagen y el modal --- */

.expandable-cert {
    cursor: pointer; /* Indica que se puede hacer clic */
    transition: transform 0.3s ease;
}

.expandable-cert:hover {
    transform: scale(1.03); /* Ligera ampliación en hover para feedback */
}

/* Modal de Certificados */
.cert-modal {
    display: none; /* Oculto por defecto */
    position: fixed; /* Se mantiene en la pantalla */
    z-index: 1000; /* Por encima de todo */
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.9); /* Fondo oscuro translúcido */
    justify-content: center; /* Centrado vertical y horizontal */
    align-items: center;
}

.modal-content {
    display: block;
    width: 80%; /* Ancho responsivo */
    max-width: 900px; /* Ancho máximo para pantallas grandes */
    max-height: 85vh; /* Altura máxima para que no se corte */
    object-fit: contain; /* Mantiene la proporción sin recortar */
    margin: auto;
    border-radius: 12px;
    box-shadow: 0 0 50px rgba(0, 255, 204, 0.5); /* Brillo cyberpunk en el modal */
    
    /* Animación de apertura */
    animation-name: zoom;
    animation-duration: 0.6s;
}

@keyframes zoom {
  from {transform:scale(0)}
  to {transform:scale(1)}
}

/* Botón de cerrar (X) */
.close-modal {
    position: absolute;
    top: 15px;
    right: 35px;
    color: var(--accent-primary);
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    transition: 0.3s;
}

.close-modal:hover,
.close-modal:focus {
    color: #bbb;
    text-decoration: none;
}