/*
Estilo PI - Programación en Internet
Iván Galiano Soro
mailto:ivan.galiano@ arroba @ua.es
*/

/* Reset básico y configuración general */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #f5f5f5;
    max-width: 100%;
    overflow-x: hidden;
}

#contenedor {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    background-color: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

/* Encabezado */
#intro {
    margin-bottom: 30px;
    border-bottom: 2px solid #0066cc;
    padding-bottom: 20px;
}

#titulo h1 {
    color: #0066cc;
    font-size: 2.5rem;
    margin-bottom: 10px;
}

#titulo h2 {
    color: #666;
    font-size: 1.5rem;
    margin-bottom: 20px;
}

#resumen, #comentario {
    margin-bottom: 20px;
}

#resumen ul, #comentario ul {
    margin-left: 20px;
    margin-bottom: 10px;
}

#resumen p, #comentario p {
    margin-bottom: 10px;
}

/* Enlaces internos */
#enlacesintra {
    background-color: #e6f2ff;
    padding: 15px;
    border-radius: 5px;
    margin-bottom: 30px;
}

#enlacesintra h3 {
    color: #0066cc;
    margin-bottom: 10px;
}

#enlacesintra ul {
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#enlacesintra li {
    margin-right: 15px;
}

#enlacesintra a {
    color: #0066cc;
    text-decoration: none;
    padding: 5px 10px;
    border: 1px solid #0066cc;
    border-radius: 3px;
    transition: all 0.3s ease;
}

#enlacesintra a:hover, #enlacesintra a:focus {
    background-color: #0066cc;
    color: white;
}

/* Apartados principales */
#apartados > div {
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 1px solid #ddd;
}

#apartados h3 {
    color: #0066cc;
    font-size: 1.8rem;
    margin-bottom: 15px;
    padding-bottom: 5px;
    border-bottom: 2px solid #0066cc;
}

#apartados ul {
    margin-left: 20px;
    margin-bottom: 15px;
}

#apartados ul ul {
    margin-left: 20px;
    margin-top: 5px;
}

#apartados dl {
    margin-left: 20px;
}

#apartados dt {
    font-weight: bold;
    margin-top: 10px;
}

#apartados dd {
    margin-left: 20px;
    margin-bottom: 10px;
}

.autores, .editorial, .isbn {
    display: block;
}

/* Sección de enlaces */
#enlaces {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 30px;
}

#lselecciona, #lhistorico, #lrecursos {
    flex: 1;
    min-width: 300px;
    background-color: #f0f8ff;
    padding: 15px;
    border-radius: 5px;
}

#enlaces h3 {
    color: #0066cc;
    margin-bottom: 10px;
    font-size: 1.3rem;
}

#enlaces ul {
    list-style-type: none;
}

#enlaces li {
    margin-bottom: 8px;
}

#enlaces a {
    color: #0066cc;
    text-decoration: none;
    transition: color 0.3s ease;
}

#enlaces a:hover, #enlaces a:focus {
    color: #004080;
    text-decoration: underline;
}

/* Versiones anteriores */
#enlacesversiones {
    background-color: #e6f2ff;
    padding: 15px;
    border-radius: 5px;
    margin-bottom: 20px;
}

#enlacesversiones h3 {
    color: #0066cc;
    margin-bottom: 10px;
}

#enlacesversiones ul {
    list-style-type: none;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#enlacesversiones li {
    margin-right: 15px;
}

#enlacesversiones a {
    color: #0066cc;
    text-decoration: none;
    padding: 5px 10px;
    border: 1px solid #0066cc;
    border-radius: 3px;
    transition: all 0.3s ease;
}

#enlacesversiones a:hover, #enlacesversiones a:focus {
    background-color: #0066cc;
    color: white;
}

/* Elementos extra (para imágenes) */
#extraDiv1, #extraDiv2, #extraDiv3, #extraDiv4, #extraDiv5, #extraDiv6 {
    display: none;
}

/* Media Queries para diseño responsive */
@media (max-width: 1200px) {
    #contenedor {
        max-width: 95%;
    }
}

@media (max-width: 992px) {
    #titulo h1 {
        font-size: 2rem;
    }
    
    #titulo h2 {
        font-size: 1.3rem;
    }
    
    #apartados h3 {
        font-size: 1.5rem;
    }
}

@media (max-width: 768px) {
    #contenedor {
        padding: 10px;
    }
    
    #titulo h1 {
        font-size: 1.8rem;
    }
    
    #titulo h2 {
        font-size: 1.2rem;
    }
    
    #enlacesintra ul, #enlacesversiones ul {
        flex-direction: column;
        gap: 5px;
    }
    
    #enlacesintra li, #enlacesversiones li {
        margin-right: 0;
        margin-bottom: 5px;
    }
    
    #enlaces {
        flex-direction: column;
    }
    
    #lselecciona, #lhistorico, #lrecursos {
        min-width: 100%;
    }
}

@media (max-width: 640px) {
    body {
        font-size: 14px;
    }
    
    #titulo h1 {
        font-size: 1.5rem;
    }
    
    #titulo h2 {
        font-size: 1rem;
    }
    
    #apartados h3 {
        font-size: 1.3rem;
    }
    
    #enlacesintra a, #enlacesversiones a {
        display: block;
        text-align: center;
    }
}

/* Mejoras de accesibilidad */
a:focus {
    outline: 2px solid #0066cc;
    outline-offset: 2px;
}

h1, h2, h3 {
    position: relative;
}

/* Contraste de color para cumplir WCAG 2.2 AA */
body {
    color: #333; /* Contraste suficiente con fondo blanco */
}

a {
    color: #0066cc; /* Contraste suficiente con fondo blanco */
}

/* Estilos para mejorar la legibilidad */
p, li, dd {
    line-height: 1.6;
}

ul, ol {
    margin-bottom: 15px;
}

/* Estilos específicos para elementos con clases */
.p1, .p2, .p3, .p4 {
    margin-bottom: 10px;
}

.ul1, .ul2 {
    margin-left: 20px;
}

.li1, .li2, .li3, .li4 {
    margin-bottom: 5px;
}

.a1, .a2, .a3, .a4, .a5 {
    color: #0066cc;
    text-decoration: none;
}

.a1:hover, .a2:hover, .a3:hover, .a4:hover, .a5:hover,
.a1:focus, .a2:focus, .a3:focus, .a4:focus, .a5:focus {
    text-decoration: underline;
}