/* Normatividad: presentación institucional, lectura y navegación persistente. */
html.norms-pdf-open,html.norms-pdf-open body{overflow:hidden}
.norms-pdf-dialog{width:calc(100vw - 48px);max-width:1500px;height:94dvh;max-height:94dvh;padding:0;border:1px solid #bac8d4;border-radius:4px;color:#26384b;background:#fff;box-shadow:0 12px 60px #06163a55;overflow:hidden}
.norms-pdf-dialog[open]{display:flex;flex-direction:column}
.norms-pdf-dialog::backdrop{background:rgba(6,22,58,.65)}
.norms-pdf-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 12px;background:#f7f9fb;border-bottom:1px solid #d4dde5;flex-shrink:0}
.norms-pdf-dialog-header h2{flex:1;min-width:0;margin:0;color:var(--portal-secondary, #06163a);font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.norms-pdf-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.norms-pdf-header-actions a,.norms-pdf-header-actions button{display:inline-flex;justify-content:center;align-items:center;width:44px;height:44px;border:1px solid #b9c7d3;border-radius:3px;background:#fff;color:#26384b;text-decoration:none;font-size:1.375rem;cursor:pointer}
.norms-pdf-header-actions a:focus-visible{outline:3px solid var(--portal-primary, #087da4);outline-offset:2px}
.norms-pdf-dialog-header button{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 14px;border:1px solid #b9c7d3;border-radius:3px;background:#fff;color:#26384b;font:inherit;font-size:1rem;cursor:pointer}
.norms-pdf-dialog-header button span{font-size:1.5rem;line-height:1}
.norms-pdf-dialog-header button:focus-visible{outline:3px solid var(--portal-primary, #087da4);outline-offset:2px}
.norms-pdf-dialog iframe{display:block;width:100%;flex:1;min-height:0;border:0;background:#e2e6eb}
@media(max-width:600px){.norms-pdf-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.norms-pdf-dialog-header{padding:8px 12px}.norms-pdf-dialog-header h2{font-size:1rem}}
/* overflow: clip conserva el recorte del portal sin crear un contenedor que anule sticky. */
body.norms-page #pageWrapper { overflow:clip; }
.norms-sidebar-slot{min-width:0;align-self:stretch}
.norms-section .norms-sidebar.norms-sidebar-fixed{position:fixed;top:var(--norms-fixed-top);left:var(--norms-fixed-left);width:var(--norms-fixed-width);max-height:var(--norms-fixed-height);z-index:5}
@media(max-width:991px){.norms-sidebar-slot{display:none}}
@media(max-width:600px){.norms-pdf-dialog-header h2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;line-height:1.4}.norms-pdf-dialog-header{padding:6px 10px}}
.norms-section {
    --norms-navy:var(--portal-secondary, #06163a);
    --norms-accent:#03add0;
    --norms-blue:#214b6a;
    --norms-border:#d6dee6;
    --norms-sticky-top:128px;
    padding:44px 0 64px;
    background:#f7f8fa;
    color:#344557;
    font-size:1rem;
    line-height:1.65;
}
.norms-section .norms-intro { display:flex; justify-content:space-between; align-items:center; gap:28px; margin-bottom:32px; }
.norms-section .norms-eyebrow { display:block; margin-bottom:8px; color:#536171; font-size:.8125rem; line-height:1.5; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.norms-section .norms-intro h2 { margin:0 0 12px; color:var(--norms-navy); font-size:2rem; font-weight:600; line-height:1.3; }
.norms-section .norms-intro p { max-width:720px; margin:0; color:#4b5b6b; font-size:1rem; line-height:1.7; }
.norms-section .norms-catalog-total { display:flex; align-items:center; gap:12px; flex-shrink:0; padding:6px 0 6px 20px; border-left:1px solid #becbd6; color:#4b5b6b; font-size:.9375rem; }
.norms-section .norms-catalog-total > i { display:none; }
.norms-section .norms-catalog-total strong { display:block; color:var(--norms-navy); font-size:1.5rem; line-height:1.3; font-weight:600; font-variant-numeric:tabular-nums; }

/* El menú queda visible bajo la cabecera y se detiene antes del pie. */
.norms-section .norms-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:32px; align-items:start; }
.norms-section .norms-sidebar,.norms-section .norms-main { min-width:0; }
.norms-section .norms-sidebar {
    position:sticky;
    top:var(--norms-sticky-top);
    max-height:calc(100vh - var(--norms-sticky-top) - 24px);
    max-height:calc(100dvh - var(--norms-sticky-top) - 24px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:#9daebd transparent;
    scrollbar-gutter:stable;
    align-self:start;
}
.norms-section .norms-categories { overflow:hidden; border:1px solid var(--norms-border); border-radius:3px; background:#fff; }
.norms-section .norms-categories h3 { margin:0; padding:19px 18px; border-bottom:1px solid var(--norms-border); color:var(--norms-navy); font-size:1.0625rem; font-weight:600; }
.norms-section .norms-categories h3 i { display:none; }
.norms-section .norms-categories ul { margin:0; padding:6px 0; list-style:none; }
.norms-section .norms-categories li + li { border-top:1px solid #f0f2f5; }
.norms-section .norms-categories a { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:46px; padding:12px 15px; border-left:3px solid transparent; color:#344557; font-size:.9375rem; line-height:1.55; }
.norms-section .norms-categories a > span:first-child { min-width:0; overflow-wrap:anywhere; }
.norms-section .norms-categories a:hover { color:var(--norms-navy); background:#f2f5f8; }
.norms-section .norms-categories a[aria-current] { border-left-color:var(--norms-navy); color:var(--norms-navy); background:#eaf0f5; font-weight:700; }
.norms-section .norms-category-count { flex-shrink:0; min-width:26px; color:#536171; font-size:.8125rem; text-align:right; font-variant-numeric:tabular-nums; }
.norms-section .norms-help { margin-top:18px; padding:20px 18px; border:1px solid var(--norms-border); border-radius:3px; background:#f0f3f6; }
.norms-section .norms-help h3 { margin:0 0 10px; color:var(--norms-navy); font-size:1rem; font-weight:600; }
.norms-section .norms-help p { margin:0 0 14px; color:#4b5b6b; font-size:.9375rem; line-height:1.65; }
.norms-section .norms-help a { color:var(--norms-blue); font-size:.9375rem; font-weight:600; text-decoration:underline; }
.norms-section .norms-help a i { margin-left:5px; font-size:.75rem; }

/* Formulario de consulta: campos grandes y etiquetas permanentes. */
.norms-section .norms-search { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:20px; padding:18px 20px; margin-bottom:24px; border:1px solid var(--norms-border); border-top:2px solid var(--norms-navy); border-radius:3px; background:#fff; }
.norms-section .norms-search label { display:block; margin:0 0 8px; color:#24374b; font-size:.9375rem; line-height:1.5; font-weight:600; }
.norms-section .norms-search > label { grid-column:1/-1; margin-bottom:8px; color:var(--norms-navy); font-size:1rem; }
.norms-section .norms-search-row { grid-column:1/-1; display:flex; gap:12px; }
.norms-section .norms-search-input { position:relative; min-width:0; flex:1; }
.norms-section .norms-search-input > i { position:absolute; top:15px; left:14px; color:#536171; font-size:.875rem; }
.norms-section .norms-search input,.norms-section .norms-search select { width:100%; min-width:0; height:48px; padding:10px 12px; border:1px solid #b8c6d2; border-radius:3px; background:#fff; color:#24374b; font:inherit; font-size:1rem; }
.norms-section .norms-search-input input { height:44px; padding-left:40px; }
.norms-section .norms-search input::placeholder { color:#617080; opacity:1; }
.norms-section .norms-search button { min-height:44px; min-width:100px; padding:9px 18px; border:0; border-radius:3px; background:var(--norms-navy); color:#fff; font:inherit; font-size:1rem; font-weight:600; cursor:pointer; }
.norms-section .norms-search button i { margin-right:6px; font-size:.8125rem; }
.norms-section .norms-search button:hover { background:var(--portal-secondary, #193754); }
.norms-section .norms-search button:disabled { opacity:.75; cursor:wait; }
.norms-section .norms-search-status { grid-column:1/-1; grid-row:3; display:flex; align-items:center; gap:9px; margin-top:10px; padding:8px 12px; border-left:2px solid #849caf; background:#f2f6f9; color:#3e586e; font-size:.875rem; line-height:1.5; }
.norms-section .norms-search-status[hidden],.norms-section .norms-search-spinner[hidden] { display:none; }
.norms-section .norms-search-spinner { width:14px; height:14px; flex-shrink:0; border:2px solid #cad6df; border-top-color:#214b6a; border-radius:50%; animation:norms-search-spin .8s linear infinite; }
.norms-section .norms-search-status:not([hidden]) ~ .norms-advanced { grid-row:4; }
.norms-section .norms-search-status:not([hidden]) ~ .norms-search-hint { grid-row:4; }
.norms-section .norms-search-status:not([hidden]) ~ .norms-advanced[open] + .norms-search-hint { grid-row:5; }
.norms-section .norms-search-failed { border-left-color:#9b7446; background:#faf6ef; color:#6c5132; }
@keyframes norms-search-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce){.norms-section .norms-search-spinner{animation:none}}
.norms-section .norms-filter-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 18px; margin-top:14px; padding-bottom:6px; }
.norms-section .norms-filter-grid > div { min-width:0; }
.norms-section .norms-search-hint { grid-column:1; grid-row:3; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; margin-top:8px; color:#536171; font-size:.875rem; line-height:1.6; }
.norms-section .norms-advanced { grid-column:2; grid-row:3; margin-top:8px; }
.norms-section .norms-advanced[open] { grid-column:1/-1; }
.norms-section .norms-advanced[open] + .norms-search-hint { grid-column:1/-1; grid-row:4; }
.norms-section .norms-advanced > summary { width:fit-content; min-height:30px; color:#214b6a; font-size:.875rem; font-weight:600; cursor:pointer; padding:3px 0; }
.norms-section .norms-advanced > summary span { color:#536171; font-weight:400; }
.norms-section .norms-advanced > summary:focus-visible { outline:2px solid var(--portal-primary, #087da4); outline-offset:3px; }
.norms-section .norms-content-excerpt { margin:16px 0 0; padding:12px 14px; border-left:2px solid #8ba0b5; background:#f4f7fa; color:#344557; font-size:.9375rem; line-height:1.7; overflow-wrap:anywhere; }
.norms-section .norms-content-excerpt strong { color:#214b6a; font-weight:600; }
.norms-section .norms-search-hint a { color:var(--norms-blue); font-weight:600; text-decoration:underline; }

/* Resultados con jerarquía tipográfica y sin adornos que distraigan de la norma. */
.norms-section .norms-results-heading { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:12px 18px; margin-bottom:22px; scroll-margin-top:var(--norms-sticky-top); }
.norms-section .norms-results-heading h2 { margin:0; color:var(--norms-navy); font-size:1.5rem; line-height:1.4; font-weight:600; }
.norms-section .norms-results-heading:focus { outline:none; }
.norms-section .norms-results-heading p { margin:0; color:#536171; font-size:.9375rem; }
.norms-section .norms-active-filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; }
.norms-section .norms-active-filters a { display:flex; align-items:center; gap:12px; max-width:100%; padding:7px 10px; border:1px solid #cbd6e0; border-radius:3px; background:#fff; color:#344557; font-size:.875rem; line-height:1.5; }
.norms-section .norms-active-filters span { min-width:0; overflow-wrap:anywhere; }
.norms-section .norms-active-filters i { font-size:.6875rem; }
.norms-section .norms-document-list { display:grid; gap:18px; }
.norms-section .norms-document { display:grid; grid-template-columns:42px minmax(0,1fr); gap:18px; padding:26px 24px; border:1px solid var(--norms-border); border-radius:3px; background:#fff; }
.norms-section .norms-document-body { min-width:0; }
.norms-section .norms-pdf-icon { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; width:42px; height:58px; color:#40566b; }
.norms-section .norms-pdf-icon i { font-size:1.875rem; }
.norms-section .norms-pdf-icon span { font-size:.6875rem; font-weight:700; letter-spacing:.04em; }
.norms-section .norms-document-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; margin-bottom:12px; color:#536171; font-size:.875rem; line-height:1.6; }
.norms-section .norms-document-meta i { margin-right:5px; }
.norms-section .norms-type-badge { color:#41546a; font-weight:600; }
.norms-section .norms-document h3 { margin:0 0 14px; color:var(--norms-navy); font-size:1.25rem; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.norms-section .norms-document h3 a { color:inherit; }
.norms-section .norms-document h3 a:hover { text-decoration:underline; text-underline-offset:3px; }
.norms-section .norms-description { max-width:75ch; margin:0 0 18px; color:#344557; font-size:1rem; line-height:1.75; overflow-wrap:anywhere; }
.norms-section .norms-description-full { margin:0 0 18px; font-size:1rem; line-height:1.75; }
.norms-section .norms-description-full summary { width:fit-content; color:var(--norms-blue); cursor:pointer; font-size:.9375rem; font-weight:600; }
.norms-section .norms-description-full p { margin:12px 0 0; color:#344557; overflow-wrap:anywhere; white-space:pre-line; }
.norms-section .norms-document-footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding-top:18px; border-top:1px solid #e6ebf0; }
.norms-section .norms-file-meta { color:#536171; font-size:.875rem; line-height:1.6; }
.norms-section .norms-document-actions { display:flex; gap:10px; flex-wrap:wrap; }
.norms-section .norms-action { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 14px; border:1px solid #b8c6d2; border-radius:3px; background:#fff; color:var(--norms-blue); font-size:.9375rem; font-weight:600; line-height:1.4; }
.norms-section .norms-action:hover { color:var(--norms-navy); background:#eef2f6; border-color:#7f92a4; }
.norms-section .norms-action-primary { border-color:var(--norms-navy); background:var(--norms-navy); color:#fff; }
.norms-section .norms-action-primary:hover { border-color:var(--portal-secondary, #193754); background:var(--portal-secondary, #193754); color:#fff; }
.norms-section .norms-file-unavailable { color:#785b35; font-size:.9375rem; }
.norms-section .norms-empty { padding:36px 24px; border:1px solid var(--norms-border); border-radius:3px; background:#fff; text-align:center; }
.norms-section .norms-empty > i { margin-bottom:16px; color:#536171; font-size:1.625rem; }
.norms-section .norms-empty h3 { margin:0 0 12px; color:var(--norms-navy); font-size:1.25rem; }
.norms-section .norms-empty p { margin-bottom:18px; color:#4b5b6b; font-size:1rem; }
.norms-section .norms-empty a { color:var(--norms-blue); text-decoration:underline; font-size:1rem; font-weight:600; }
.norms-section .norms-error { border-color:#cfa5a8; }
.norms-section .norms-error > i { color:#943841; }
.norms-section .norms-pagination-wrap { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:18px; margin-top:28px; }
.norms-section .norms-pagination-wrap > p { margin:0; color:#536171; font-size:.9375rem; }
.norms-section .norms-pagination { display:flex; flex-wrap:wrap; align-items:center; gap:5px; margin:0; padding:0; list-style:none; }
.norms-section .norms-pagination a,.norms-section .norms-pagination span { display:flex; align-items:center; justify-content:center; min-width:40px; height:42px; padding:0 10px; border:1px solid var(--norms-border); border-radius:3px; color:var(--norms-blue); background:#fff; font-size:.9375rem; }
.norms-section .norms-pagination a:hover { border-color:#7f92a4; background:#eef2f6; }
.norms-section .norms-pagination .norms-page-current { border-color:var(--norms-navy); background:var(--norms-navy); color:#fff; font-weight:700; }
.norms-section .norms-pagination .norms-page-gap { min-width:14px; padding:0 2px; border:0; background:none; }
.norms-section a:focus-visible,.norms-section button:focus-visible,.norms-section input:focus-visible,.norms-section select:focus-visible,.norms-section summary:focus-visible { outline:3px solid var(--norms-accent); outline-offset:3px; }

@media(max-width:1199px){
    .norms-section .norms-layout { grid-template-columns:270px minmax(0,1fr); gap:24px; }
    .norms-section .norms-intro h2 { font-size:1.875rem; }
}
@media(max-width:991px){
    .norms-section .norms-layout { grid-template-columns:minmax(0,1fr); }
    .norms-section .norms-sidebar { display:none; }
    .norms-section .norms-intro { align-items:flex-start; }
}
@media(max-width:575px){
    .norms-section { padding:30px 0 40px; }
    .norms-section .norms-intro { flex-direction:column; gap:18px; margin-bottom:26px; }
    .norms-section .norms-intro h2 { font-size:1.625rem; }
    .norms-section .norms-catalog-total { padding:0; border:0; }
    .norms-section .norms-catalog-total strong { display:inline; margin-right:6px; font-size:1.125rem; }
    .norms-section .norms-search { padding:16px; margin-bottom:24px; }
    .norms-section .norms-search-row { gap:8px; }
    .norms-section .norms-search-row button { min-width:44px; width:44px; padding:10px; }
    .norms-section .norms-search-row button i { margin:0; }
    .norms-section .norms-search-button-label { display:none; }
    .norms-section .norms-advanced { grid-column:1/-1; }
    .norms-section .norms-search-hint { grid-column:1/-1; grid-row:4; }
    .norms-section .norms-search-status:not([hidden]) ~ .norms-search-hint { grid-row:5; }
    .norms-section .norms-filter-grid { gap:16px 12px; }
    .norms-section .norms-filter-grid > div:first-child,.norms-section .norms-filter-grid > div:last-child { grid-column:1/-1; }
    .norms-section .norms-document { grid-template-columns:minmax(0,1fr); padding:22px 18px; gap:14px; }
    .norms-section .norms-pdf-icon { display:none; }
    .norms-section .norms-document h3 { font-size:1.1875rem; }
    .norms-section .norms-document-footer { align-items:flex-start; flex-direction:column; }
    .norms-section .norms-document-actions { width:100%; }
    .norms-section .norms-action { flex:1; padding:10px 12px; }
    .norms-section .norms-pagination-wrap { justify-content:center; }
    .norms-section .norms-pagination a,.norms-section .norms-pagination span { min-width:36px; padding:0 7px; }
}
