@charset "utf-8";

/* ==========================================================================
   1. Reset & Normalización
   ========================================================================== */
html {
    font-size: 100%;
    overflow-y: scroll;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-size: 13px;
    line-height: 1.231;
    font-family: sans-serif;
    color: #222;
}

button, input, select, textarea {
    font-family: sans-serif;
    color: #222;
    font-size: 100%;
    margin: 0;
    vertical-align: baseline;
}

article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
    display: block;
}

audio, canvas, video {
    display: inline-block;
}

[hidden], audio:not([controls]) {
    display: none;
}

/* ==========================================================================
   2. Tipografía y Elementos Básicos
   ========================================================================== */
a { color: #00e; }
a:visited { color: #551a8b; }
a:hover { color: #06e; }
a:focus { outline: dotted thin; }
a:active, a:hover { outline: 0; }

abbr[title] { border-bottom: 1px dotted; }

b, mark, strong { font-weight: 700; }
dfn, mark { font-style: italic; }
ins, mark { color: #000; }

blockquote { margin: 1em 40px; }
code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; }
pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }

q { quotes: none; }
q:after, q:before { content: ""; content: none; }

small { font-size: 85%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sup { top: -0.5em; }
sub { bottom: -0.25em; }

/* ==========================================================================
   3. Listas, Tablas y Formularios
   ========================================================================== */
ol, ul { margin: 1em 0; padding: 0 0 0 40px; }
dd { margin: 0 0 0 40px; }
nav ol, nav ul { list-style: none; margin: 0; padding: 0; }

table { border-collapse: collapse; border-spacing: 0; }
td, textarea { vertical-align: top; }

fieldset, hr, img, legend { border: 0; }
figure, form, fieldset { margin: 0; padding: 0; }
label { cursor: pointer; }
legend { padding: 0; }

button, input { line-height: normal; }
button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; }
input[type="checkbox"], input[type="radio"] { box-sizing: border-box; }
input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; }
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }

textarea { overflow: auto; resize: vertical; }
input:invalid, textarea:invalid { background-color: #fff; }

/* ==========================================================================
   4. Clases de Utilidad y Layout
   ========================================================================== */
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }

.hidden { display: none !important; }
.invisible { visibility: hidden; }

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}
.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
}

/* Ajuste específico para encabezados (Corrección de espacios) */
h5.text-titulo {
    margin: 0;
    padding: 0;
}

/* ==========================================================================
   5. Estilos de Impresión
   ========================================================================== */
@media print {
    * { background: transparent !important; color: #000 !important; text-shadow: none !important; filter: none !important; }
    a, a:visited { text-decoration: underline; }
    a[href]:after { content: " (" attr(href) ")"; }
    abbr[title]:after { content: " (" attr(title) ")"; }
    blockquote, img, pre, tr { page-break-inside: avoid; }
    thead { display: table-header-group; }
    img { max-width: 100% !important; }
    @page { margin: 0.5cm; }
    h2, h3, p { orphans: 3; widows: 3; }
    h2, h3 { page-break-after: avoid; }
}