:root {
    --primary: #0284C7;
    --primary-color: #0284C7;
    --primary-light: #38BDF8;
    --primary-lighter: #7DD3FC;
    --primary-dark: #0369A1;
    --primary-darker: #075985;
    --primary-50: rgba(2, 132, 199, 0.06);
    --primary-100: rgba(2, 132, 199, 0.10);
    --primary-200: rgba(2, 132, 199, 0.18);
    --primary-300: rgba(2, 132, 199, 0.30);
    --secondary: #F87171;
    --secondary-color: #F87171;
    --secondary-light: #FECACA;
    --secondary-dark: #DC2626;
    --accent: #F87171;
    --accent-color: #F87171;
    --accent-soft: #FECACA;
    --accent-dark: #DC2626;
    --success: #10B981;
    --success-light: #34D399;
    --success-dark: #059669;
    --warning: #F59E0B;
    --warning-light: #FBBF24;
    --warning-dark: #D97706;
    --danger: #EF4444;
    --danger-light: #F87171;
    --danger-dark: #DC2626;
    --error: #EF4444;
    --info: #0284C7;
    --ink-50: #F8FAFC;
    --ink-100: #F1F5F9;
    --ink-200: #E2E8F0;
    --ink-300: #CBD5E1;
    --ink-400: #94A3B8;
    --ink-500: #64748B;
    --ink-600: #475569;
    --ink-700: #334155;
    --ink-800: #1E293B;
    --ink-900: #0F172A;
    --gray-50: #F8FAFC;
    --gray-100: #F1F5F9;
    --gray-200: #E2E8F0;
    --gray-300: #CBD5E1;
    --gray-400: #94A3B8;
    --gray-500: #64748B;
    --gray-600: #475569;
    --gray-700: #334155;
    --gray-800: #1E293B;
    --gray-900: #0F172A;
    --white: #FFFFFF;
    --black: #000000;
    --off-white: #F8FAFC;
    --text-color: #1E293B;
    --text-light: #64748B;
    --text-muted: #94A3B8;
    --text-inverse: #FFFFFF;
    --title-inverse: #FFFFFF;
    --bg-light: #F8FAFC;
    --background: #F8FAFC;
    --surface: #FFFFFF;
    --surface-soft: #F8FAFC;
    --surface-tint: #F0F9FF;
    --border: #E2E8F0;
    --border-soft: rgba(2, 132, 199, 0.12);
    --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-display: var(--font-sans);
    --radius-xs: 4px;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-xl: 20px;
    --radius-2xl: 28px;
    --radius-pill: 9999px;
    --radius-full: 9999px;
    --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
    --shadow-sm: 0 2px 4px rgba(15, 23, 42, 0.04), 0 1px 2px rgba(15, 23, 42, 0.03);
    --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.06), 0 2px 4px rgba(15, 23, 42, 0.04);
    --shadow-lg: 0 12px 28px rgba(15, 23, 42, 0.08), 0 4px 10px rgba(15, 23, 42, 0.05);
    --shadow-xl: 0 24px 48px rgba(15, 23, 42, 0.10), 0 8px 18px rgba(15, 23, 42, 0.06);
    --shadow-card: var(--shadow-sm);
    --shadow-primary: 0 12px 30px rgba(2, 132, 199, 0.28), 0 4px 12px rgba(2, 132, 199, 0.18);
    --ease-smooth: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    --duration-fast: 180ms;
    --duration-normal: 320ms;
    --duration-slow: 520ms;
    --transition: 220ms var(--ease-smooth);
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;
    --container-max: 1280px;
    --container-padding: 1.5rem;
}

:is(.posts-page, .obras-page, .institution-page, .documents-page, .virtual-documents-page, .convocatorias-page, .consultation-page, .seguridad-page, .convocatoria-detail-page) {
    min-height: 100vh;
    color: var(--ink-800);
    font-family: var(--font-sans);
    line-height: 1.65;
    background-color: var(--notebook-paper-color);
    background-image: var(--notebook-paper-background);
    background-size: var(--notebook-paper-background-size);
    background-position: var(--notebook-paper-background-position);
    background-repeat: no-repeat, repeat, no-repeat;
    background-attachment: fixed, fixed, fixed;
    overflow-x: clip;
}

:is(.posts-page, .obras-page, .institution-page, .documents-page, .virtual-documents-page, .convocatorias-page, .consultation-page, .seguridad-page, .convocatoria-detail-page) *,
:is(.posts-page, .obras-page, .institution-page, .documents-page, .virtual-documents-page, .convocatorias-page, .consultation-page, .seguridad-page, .convocatoria-detail-page) *::before,
:is(.posts-page, .obras-page, .institution-page, .documents-page, .virtual-documents-page, .convocatorias-page, .consultation-page, .seguridad-page, .convocatoria-detail-page) *::after {
    box-sizing: border-box;
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) {
    background: rgba(255, 255, 255, 0.76) !important;
    border-bottom: 1px solid rgba(2, 132, 199, 0.12);
    padding: clamp(1.5rem, 4vw, 2.75rem) 0 !important;
    overflow: visible;
    backdrop-filter: blur(8px) saturate(1.08);
    -webkit-backdrop-filter: blur(8px) saturate(1.08);
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero)::before,
:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero)::after {
    display: none !important;
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__container"] {
    width: min(var(--container-max), 100%);
    max-width: none;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    text-align: left;
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__icon"] {
    width: 42px;
    height: 42px;
    display: inline-grid;
    place-items: center;
    margin: 0 0 0.85rem;
    color: var(--ink-500);
    background: var(--ink-100);
    border: 0;
    border-radius: var(--radius-sm);
    box-shadow: none;
    animation: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__icon"] i {
    color: var(--ink-500);
    font-size: 1rem;
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__eyebrow"] {
    display: block;
    margin: 0 0 0.45rem;
    color: var(--ink-500);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-transform: uppercase;
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__eyebrow"]::before,
:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__eyebrow"]::after {
    display: none;
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__title"] {
    max-width: 58rem;
    margin: 0;
    color: var(--ink-900);
    font-family: var(--font-display);
    font-size: clamp(1.4rem, 3.1vw, 2.15rem);
    font-weight: 800;
    line-height: 1.16;
    letter-spacing: -0.03em;
    text-shadow: none;
    text-wrap: balance;
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__title"] span {
    display: block;
    margin-top: 0.35rem;
    color: var(--ink-600);
    font-size: clamp(0.95rem, 1.5vw, 1.1rem);
    font-weight: 700;
    letter-spacing: -0.01em;
    opacity: 1;
}

:is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__description"] {
    max-width: 48rem;
    margin: 0.75rem 0 0;
    color: var(--ink-600);
    font-size: 0.96rem;
    font-weight: 600;
    line-height: 1.7;
}

:is(.posts-breadcrumb, .obras-breadcrumb, .institution-breadcrumb, .documents-breadcrumb, .convocatorias-breadcrumb, .consultation-breadcrumb, .seguridad-breadcrumb, .convocatoria-detail-breadcrumb) {
    position: static;
    z-index: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    background: rgba(255, 255, 255, 0.72);
    border-bottom: 1px solid rgba(2, 132, 199, 0.12);
    backdrop-filter: blur(8px) saturate(1.08);
    -webkit-backdrop-filter: blur(8px) saturate(1.08);
}

:is(.posts-breadcrumb, .obras-breadcrumb, .institution-breadcrumb, .documents-breadcrumb, .convocatorias-breadcrumb, .consultation-breadcrumb, .seguridad-breadcrumb, .convocatoria-detail-breadcrumb) [class$="__wrapper"] {
    width: min(var(--container-max), 100%);
    margin: 0 auto;
    padding: 0.85rem var(--container-padding);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

:is(.posts-breadcrumb, .obras-breadcrumb, .institution-breadcrumb, .documents-breadcrumb, .convocatorias-breadcrumb, .consultation-breadcrumb, .seguridad-breadcrumb, .convocatoria-detail-breadcrumb) :is([class$="__link"], [class$="__current"], [class$="__item"]) {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 30px;
    color: var(--ink-500);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
}

:is(.posts-breadcrumb, .obras-breadcrumb, .institution-breadcrumb, .documents-breadcrumb, .convocatorias-breadcrumb, .consultation-breadcrumb, .seguridad-breadcrumb, .convocatoria-detail-breadcrumb) [class$="__current"] {
    color: var(--ink-700);
}

:is(.posts-breadcrumb, .obras-breadcrumb, .institution-breadcrumb, .documents-breadcrumb, .convocatorias-breadcrumb, .consultation-breadcrumb, .seguridad-breadcrumb, .convocatoria-detail-breadcrumb) [class$="__link"]:hover,
:is(.posts-breadcrumb, .obras-breadcrumb, .institution-breadcrumb, .documents-breadcrumb, .convocatorias-breadcrumb, .consultation-breadcrumb, .seguridad-breadcrumb, .convocatoria-detail-breadcrumb) [class$="__link"]:focus-visible {
    color: var(--primary-dark);
}

:is(.posts-breadcrumb, .obras-breadcrumb, .institution-breadcrumb, .documents-breadcrumb, .convocatorias-breadcrumb, .consultation-breadcrumb, .seguridad-breadcrumb, .convocatoria-detail-breadcrumb) [class$="__separator"] {
    display: inline-grid;
    place-items: center;
    color: var(--ink-400);
    font-size: 0.62rem;
}

:is(.posts-content, .obras-content, .obra-detail-content, .institution-content, .documents-content, .convocatorias-content, .consultation-content, .seguridad-content, .convocatoria-detail-content) {
    width: min(var(--container-max), 100%);
    margin: 0 auto;
    padding: clamp(2rem, 5vw, 4rem) var(--container-padding) clamp(4rem, 7vw, 6rem);
}

:is(.posts-layout, .obra-detail-grid) {
    gap: clamp(1.25rem, 3vw, 2rem);
}

:is(.post-card, .sidebar-widget, .post-single, .obra-card, .obra-main__header, .obra-gallery, .obra-info-card, .obra-progress-card, .stat-card, .profile-card, .welcome-card, .download-section, .team-section, .commissions-section, .documents-section, .document-group, .intro-card, .info-block, .mission-card, .vision-card, .value-card, .consultation-alert, .consultation-section, .convocatorias-table-wrapper, .convocatoria-card, .filters-card, .results-card, .document-card, .table-card, .accordion-container, .seguridad-documents, .seguridad-instituciones, .convocatoria-detail-card) {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

:is(.post-card, .obra-card, .team-card, .value-card, .document-card, .convocatoria-card, .stat-card):hover {
    box-shadow: var(--shadow-md);
}

:is(.post-card__link, .obra-btn, .obra-back-btn, .download-btn, .doc-btn, .btn, .btn-action, .portal-action-btn, .modal-btn, .search-form__btn, .convocatoria-detail-download, .convocatoria-detail-back) {
    min-height: 44px;
    border-radius: var(--radius-md);
    cursor: pointer;
}

:is(.posts-empty, .obras-empty, .empty-state, .consultation-empty, .bodies-doc-empty, .convocatoria-detail-empty) {
    display: grid;
    justify-items: center;
    gap: 0.8rem;
    padding: clamp(2rem, 5vw, 3rem) 1rem;
    color: var(--ink-500);
    text-align: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

:is(.posts-empty__icon, .obras-empty__icon, .empty-state__icon, .consultation-empty__icon, .convocatoria-detail-empty__icon) {
    width: 60px;
    height: 60px;
    display: inline-grid;
    place-items: center;
    color: var(--ink-500);
    background: var(--ink-100);
    border-radius: var(--radius-pill);
}

:is(.posts-empty__title, .obras-empty__title, .empty-state__title, .consultation-empty__title, .convocatoria-detail-empty__title) {
    margin: 0;
    color: var(--ink-800);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
}

:is(.posts-empty__text, .obras-empty__text, .empty-state__text, .consultation-empty__text, .convocatoria-detail-empty__text) {
    max-width: 34rem;
    margin: 0;
    color: var(--ink-500);
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.65;
}

.convocatoria-detail-card {
    overflow: hidden;
}

.convocatoria-detail-card__header {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 0.85rem;
    align-items: center;
    padding: clamp(1.1rem, 2.4vw, 1.6rem);
    border-bottom: 1px solid var(--border);
}

.convocatoria-detail-card__icon,
.convocatoria-detail-note__icon {
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    color: var(--ink-500);
    background: var(--ink-100);
    border-radius: var(--radius-sm);
}

.convocatoria-detail-card__title {
    margin: 0 0 0.35rem;
    color: var(--ink-900);
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    font-weight: 800;
    line-height: 1.16;
    letter-spacing: -0.03em;
    text-wrap: balance;
}

.convocatoria-detail-card__subtitle {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    color: var(--ink-500);
    font-size: 0.82rem;
    font-weight: 700;
}

.convocatoria-detail-card__body {
    display: grid;
    gap: 1rem;
    padding: clamp(1.1rem, 2.5vw, 1.6rem);
}

.convocatoria-detail-note {
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.25rem);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}

.convocatoria-detail-note__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid var(--border);
}

.convocatoria-detail-note__title {
    margin: 0;
    color: var(--ink-900);
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.015em;
}

.convocatoria-detail-note__content {
    min-width: 0;
    color: var(--ink-700);
    font-size: clamp(0.95rem, 1.05vw, 1rem);
    line-height: 1.78;
}

.convocatoria-detail-note__content > *:first-child {
    margin-top: 0;
}

.convocatoria-detail-note__content > *:last-child {
    margin-bottom: 0;
}

.convocatoria-detail-download {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 36px;
    align-items: center;
    gap: 0.8rem;
    padding: 0.75rem;
    color: inherit;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: border-color var(--duration-fast) var(--ease-smooth), background-color var(--duration-fast) var(--ease-smooth);
}

.convocatoria-detail-download:hover,
.convocatoria-detail-download:focus-visible {
    background: var(--surface-soft);
    border-color: rgba(2, 132, 199, 0.24);
}

.convocatoria-detail-download__icon,
.convocatoria-detail-download__action {
    display: inline-grid;
    place-items: center;
    color: var(--ink-500);
    background: var(--ink-100);
}

.convocatoria-detail-download__icon {
    width: 42px;
    height: 42px;
    border-radius: var(--radius-sm);
}

.convocatoria-detail-download__content {
    min-width: 0;
    display: grid;
    gap: 0.2rem;
}

.convocatoria-detail-download__title {
    color: var(--ink-800);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.35;
}

.convocatoria-detail-download__meta {
    color: var(--ink-500);
    font-size: 0.78rem;
    font-weight: 700;
}

.convocatoria-detail-download__action {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-pill);
}

.convocatoria-detail-card__footer {
    display: flex;
    justify-content: flex-start;
    padding: 1rem clamp(1.1rem, 2.5vw, 1.6rem);
    background: var(--surface-soft);
    border-top: 1px solid var(--border);
}

.convocatoria-detail-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0 0.95rem;
    color: var(--ink-700);
    background: var(--surface);
    border: 1px solid var(--border);
    font-size: 0.84rem;
    font-weight: 800;
    text-decoration: none;
}

.convocatoria-detail-back:hover,
.convocatoria-detail-back:focus-visible {
    color: var(--primary-dark);
    background: var(--primary-50);
    border-color: rgba(2, 132, 199, 0.20);
}

.legacy-public-page {
    min-height: 100vh;
    color: var(--ink-800);
    font-family: var(--font-sans);
    line-height: 1.65;
    background-color: var(--notebook-paper-color);
    background-image: var(--notebook-paper-background);
    background-size: var(--notebook-paper-background-size);
    background-position: var(--notebook-paper-background-position);
    background-repeat: no-repeat, repeat, no-repeat;
    background-attachment: fixed, fixed, fixed;
    overflow-x: clip;
}

.legacy-public-page *,
.legacy-public-page *::before,
.legacy-public-page *::after {
    box-sizing: border-box;
}

.legacy-public-breadcrumb {
    background: rgba(255, 255, 255, 0.72);
    border-bottom: 1px solid rgba(2, 132, 199, 0.12);
    backdrop-filter: blur(8px) saturate(1.08);
    -webkit-backdrop-filter: blur(8px) saturate(1.08);
}

.legacy-public-breadcrumb__wrapper {
    width: min(var(--container-max), 100%);
    margin: 0 auto;
    padding: 0.85rem var(--container-padding);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.legacy-public-breadcrumb__link,
.legacy-public-breadcrumb__current,
.legacy-public-breadcrumb__item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 30px;
    color: var(--ink-500);
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
}

.legacy-public-breadcrumb__link:hover,
.legacy-public-breadcrumb__link:focus-visible {
    color: var(--primary-dark);
}

.legacy-public-breadcrumb__separator {
    display: inline-grid;
    place-items: center;
    color: var(--ink-400);
    font-size: 0.62rem;
}

.legacy-public-breadcrumb__current {
    color: var(--ink-700);
}

.legacy-public-content {
    width: min(var(--container-max), 100%);
    margin: 0 auto;
    padding: clamp(2rem, 5vw, 4rem) var(--container-padding) clamp(4rem, 7vw, 6rem);
}

.legacy-public-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 330px);
    gap: clamp(1.25rem, 3vw, 2rem);
    align-items: start;
}

.legacy-public-stack {
    display: grid;
    gap: clamp(1rem, 2.4vw, 1.5rem);
}

.legacy-public-card,
.legacy-public-section,
.legacy-public-side-card,
.legacy-public-item {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.legacy-public-card {
    overflow: hidden;
}

.legacy-public-card__header {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: clamp(1rem, 2vw, 1.25rem);
    align-items: center;
    padding: clamp(1.1rem, 2.4vw, 1.6rem);
    background: var(--surface);
    border-bottom: 1px solid var(--border);
}

.legacy-public-card__icon,
.legacy-public-section__icon,
.legacy-public-item__icon,
.legacy-public-empty__icon {
    display: inline-grid;
    place-items: center;
    color: var(--ink-500);
    background: var(--ink-100);
}

.legacy-public-card__icon {
    width: 52px;
    height: 52px;
    border-radius: var(--radius-md);
    font-size: 1rem;
}

.legacy-public-card__title {
    margin: 0 0 0.4rem;
    color: var(--ink-900);
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    font-weight: 800;
    line-height: 1.16;
    letter-spacing: -0.03em;
    text-wrap: balance;
}

.legacy-public-card__subtitle {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    color: var(--ink-500);
    font-size: 0.82rem;
    font-weight: 700;
}

.legacy-public-card__body {
    display: grid;
    gap: clamp(1rem, 2.4vw, 1.5rem);
    padding: clamp(1.1rem, 2.5vw, 1.6rem);
}

.legacy-public-section {
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.25rem);
    border-radius: var(--radius-md);
}

.legacy-public-section__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid var(--border);
}

.legacy-public-section__icon {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
}

.legacy-public-section__title,
.legacy-public-side-card__title {
    margin: 0;
    color: var(--ink-900);
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.015em;
}

.legacy-public-section__content {
    min-width: 0;
    color: var(--ink-700);
    font-size: clamp(0.95rem, 1.05vw, 1rem);
    line-height: 1.78;
}

.legacy-public-section__content > *:first-child {
    margin-top: 0;
}

.legacy-public-section__content > *:last-child {
    margin-bottom: 0;
}

.legacy-public-section__content p {
    margin: 0 0 1rem;
}

.legacy-public-section__content ul,
.legacy-public-section__content ol {
    margin: 0;
    padding-left: 1.25rem;
}

.legacy-public-section__content li {
    margin-bottom: 0.45rem;
}

.legacy-public-section__content li::marker {
    color: var(--ink-500);
    font-weight: 800;
}

.legacy-public-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
}

.legacy-public-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.legacy-public-item {
    display: grid;
    gap: 0.65rem;
    padding: 1rem;
    border-radius: var(--radius-md);
}

.legacy-public-item__icon {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-sm);
}

.legacy-public-item__title {
    margin: 0;
    color: var(--ink-900);
    font-family: var(--font-display);
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.3;
}

.legacy-public-item__text {
    margin: 0;
    color: var(--ink-600);
    font-size: 0.88rem;
    font-weight: 550;
    line-height: 1.6;
}

.legacy-public-doc-list,
.legacy-public-list {
    display: grid;
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.legacy-public-doc-link,
.legacy-public-list__item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 36px;
    align-items: center;
    gap: 0.8rem;
    min-height: 58px;
    padding: 0.75rem;
    color: inherit;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: border-color var(--duration-fast) var(--ease-smooth), background-color var(--duration-fast) var(--ease-smooth);
}

.legacy-public-doc-link:hover,
.legacy-public-doc-link:focus-visible,
.legacy-public-list__item:hover,
.legacy-public-list__item:focus-within {
    background: var(--surface-soft);
    border-color: rgba(2, 132, 199, 0.24);
}

.legacy-public-doc-link__icon,
.legacy-public-doc-link__action,
.legacy-public-list__icon {
    display: inline-grid;
    place-items: center;
    color: var(--ink-500);
    background: var(--ink-100);
}

.legacy-public-doc-link__icon,
.legacy-public-list__icon {
    width: 42px;
    height: 42px;
    border-radius: var(--radius-sm);
}

.legacy-public-doc-link__title,
.legacy-public-list__title {
    min-width: 0;
    color: var(--ink-800);
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.35;
}

.legacy-public-doc-link__meta,
.legacy-public-list__meta {
    color: var(--ink-500);
    font-size: 0.78rem;
    font-weight: 700;
}

.legacy-public-doc-link__action {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-pill);
}

.legacy-public-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.legacy-public-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 44px;
    padding: 0 0.95rem;
    color: var(--ink-700);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    cursor: pointer;
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
}

.legacy-public-button--primary {
    color: #fff;
    background: var(--primary);
    border-color: var(--primary);
}

.legacy-public-button:hover,
.legacy-public-button:focus-visible {
    color: var(--primary-dark);
    background: var(--primary-50);
    border-color: rgba(2, 132, 199, 0.20);
}

.legacy-public-button--primary:hover,
.legacy-public-button--primary:focus-visible {
    color: #fff;
    background: var(--primary-dark);
    border-color: var(--primary-dark);
}

.legacy-public-media {
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.legacy-public-media img {
    display: block;
    width: 100%;
    height: clamp(220px, 30vw, 360px);
    object-fit: cover;
}

.legacy-public-side-card {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border-radius: var(--radius-md);
}

.legacy-public-empty {
    display: grid;
    justify-items: center;
    gap: 0.8rem;
    padding: clamp(2rem, 5vw, 3rem) 1rem;
    color: var(--ink-500);
    text-align: center;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.legacy-public-empty__icon {
    width: 60px;
    height: 60px;
    border-radius: var(--radius-pill);
}

.legacy-public-empty__title {
    margin: 0;
    color: var(--ink-800);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
}

.legacy-public-empty__text {
    max-width: 34rem;
    margin: 0;
    color: var(--ink-500);
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.65;
}

:is(.posts-page, .obras-page, .institution-page, .documents-page, .virtual-documents-page, .convocatorias-page, .consultation-page, .seguridad-page, .convocatoria-detail-page, .legacy-public-page) :focus-visible {
    outline: 3px solid var(--primary-light);
    outline-offset: 3px;
}

@media (max-width: 960px) {
    .legacy-public-layout,
    .legacy-public-grid,
    .legacy-public-grid--two {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    :root {
        --container-padding: 1rem;
    }

    :is(.posts-hero, .obras-hero, .institution-hero, .documents-hero, .convocatorias-hero, .consultation-hero, .seguridad-hero) [class$="__title"] {
        font-size: clamp(1.25rem, 8vw, 1.7rem);
    }

    .convocatoria-detail-card__header,
    .convocatoria-detail-download,
    .legacy-public-card__header,
    .legacy-public-doc-link,
    .legacy-public-list__item {
        grid-template-columns: 40px minmax(0, 1fr);
    }

    .convocatoria-detail-download__action,
    .legacy-public-doc-link__action {
        grid-column: 2;
        width: auto;
        min-height: 32px;
        justify-self: start;
        padding: 0 0.75rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    :is(.posts-page, .obras-page, .institution-page, .documents-page, .virtual-documents-page, .convocatorias-page, .consultation-page, .seguridad-page, .convocatoria-detail-page, .legacy-public-page) *,
    :is(.posts-page, .obras-page, .institution-page, .documents-page, .virtual-documents-page, .convocatorias-page, .consultation-page, .seguridad-page, .convocatoria-detail-page, .legacy-public-page) *::before,
    :is(.posts-page, .obras-page, .institution-page, .documents-page, .virtual-documents-page, .convocatorias-page, .consultation-page, .seguridad-page, .convocatoria-detail-page, .legacy-public-page) *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
