/* Base visual */
@font-face { font-family: "Tipo UBB"; src: url("../font/Tipo-UBB-Bold_Condensed.otf") format("opentype"); font-weight: 700; font-style: normal; font-display: swap;}
@font-face { font-family: "Tipo UBB"; src: url("../font/Tipo-UBB-Light_Condensed.otf") format("opentype"); font-weight: 300; font-style: normal; font-display: swap}
@font-face { font-family: "Tipo UBB"; src: url("../font/Tipo-UBB-Black_Condensed.otf") format("opentype"); font-weight: 900; font-style: normal; font-display: swap;}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-Light.ttf") format("truetype"); font-weight: 300; font-style: normal; font-display: swap}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-LightItalic.ttf") format("truetype"); font-weight: 300; font-style: italic; font-display: swap;}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-Regular.ttf") format("truetype"); font-weight: 400; font-style: normal; font-display: swap}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-Italic.ttf") format("truetype"); font-weight: 400; font-style: italic; font-display: swap;}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-Medium.ttf") format("truetype"); font-weight: 500; font-style: normal; font-display: swap}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-MediumItalic.ttf") format("truetype"); font-weight: 500; font-style: italic; font-display: swap;}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-SemiBold.ttf") format("truetype"); font-weight: 600; font-style: normal; font-display: swap}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-SemiBoldItalic.ttf") format("truetype"); font-weight: 600; font-style: italic; font-display: swap;}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-Bold.ttf") format("truetype"); font-weight: 700; font-style: normal; font-display: swap}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-ExtraBold.ttf") format("truetype"); font-weight: 800; font-style: normal; font-display: swap;}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-ExtraBoldItalic.ttf") format("truetype"); font-weight: 800; font-style: italic; font-display: swap}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-Black.ttf") format("truetype"); font-weight: 900; font-style: normal; font-display: swap;}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-BlackItalic.ttf") format("truetype"); font-weight: 900; font-style: italic; font-display: swap}
@font-face { font-family: "Fira Sans"; src: url("../font/Fira_Sans/FiraSans-BoldItalic.ttf") format("truetype"); font-weight: 700; font-style: italic; font-display: swap;}
:root { --font-display: "Tipo UBB", "Arial Narrow", sans-serif; --font-display-light: "Tipo UBB", "Arial Narrow", sans-serif; --font-body: "Fira Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --font-mono: "Fira Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --wrapper-max: 1340px; --header-height: 166px; --header-height-compact: 76px; --institutional-blue: #1d3c71; --institutional-blue-strong: #172949; --institutional-teal: var(--brand-accent); --institutional-neutral: #dce5f0; --institutional-neutral-soft: #eef3f8; --institutional-divider: #d9dfe5; --border-subtle: rgba(29, 60, 113, 0.08); --border-default: rgba(29, 60, 113, 0.12); --border-strong: rgba(29, 60, 113, 0.18); --border-contrast: rgba(255, 255, 255, 0.14); --corp-blue: #014898; --corp-silver: #b9bbbb; --corp-red: #e41b1a; --corp-yellow: #f9b214; --header-corporate-line: linear-gradient( 90deg, var(--corp-blue) 0%, var(--corp-blue) 58%, var(--corp-silver) 58%, var(--corp-silver) 77%, var(--corp-yellow) 77%, var(--corp-yellow) 89%, var(--corp-red) 89%, var(--corp-red) 100% ); --gradient-strip-light: linear-gradient(90deg, #0544b1 0%, #d3dbde 30%, #fecc37 67%, #fe3737 100%); --gradient-strip-dark: linear-gradient(90deg, #1d3c71 0%, #1d3c71 100%); --gradient-strip: var(--gradient-strip-light); --border-thin: 1px; --border-regular: 1px; --radius-small: 3px; --radius-medium: 10px; --radius-large-max: 99px; --radius-large: min(var(--radius-large-max), clamp(18px, 2.2vw, 24px)); --radius-header-bar: 0.12rem; --radius-header-bar-bottom: 0 0 var(--radius-header-bar) var(--radius-header-bar); --radius-section: var(--radius-large); --radius-surface: var(--radius-medium); --radius-card: var(--radius-surface); --radius-control: var(--radius-small); --radius-soft: var(--radius-section); --radius-pill: 999px; --bg: #f4f7fa; --bg-alt: #e8eef5; --surface: rgba(255, 255, 255, 0.9); --surface-strong: #ffffff; --header-surface: rgba(235, 235, 235, 0.98); --header-surface-strong: #ebebeb; --header-border: var(--border-default); --header-panel-bg: rgba(255, 255, 255, 0.14); --header-panel-bg-strong: rgba(255, 255, 255, 0.12); --header-panel-bg-hover: rgba(255, 255, 255, 0.22); --header-panel-border: var(--border-default); --surface-border: var(--header-panel-border); --surface-border-strong: var(--header-border); --header-panel-text: rgba(27, 46, 81, 0.9); --header-panel-text-soft: rgba(27, 46, 81, 0.8); --section-divider: var(--border-default); --header-shadow: 0 10px 24px rgba(27, 46, 81, 0.08); --text: #39485d; --text-soft: rgba(57, 72, 93, 0.9); --text-faint: rgba(57, 72, 93, 0.68); --line: var(--border-default); --brand-primary: #014898; --brand-primary-strong: #003a79; --brand-indigo: #1d3c71; --brand-indigo-strong: #172949; --brand-teal: var(--brand-accent); --brand-teal-strong: var(--brand-accent-strong); --brand-accent: #17a2b8; --brand-accent-rgb: 23, 162, 184; --brand-accent-strong: #0e7f91; --brand-accent-hover: #39b6cb; --brand-accent-active: #138da2; --brand-accent-active-strong: #0d7283; --interactive-hover-bg: rgba(var(--brand-accent-rgb), 0.08); --interactive-hover-border: rgba(var(--brand-accent-rgb), 0.24); --interactive-hover-text: var(--brand-accent-strong); --menu-hover-bg: var(--interactive-hover-bg); --menu-hover-border: var(--interactive-hover-border); --shadow-soft: 0 18px 36px rgba(27, 46, 81, 0.08); --shadow-strong: 0 24px 56px rgba(27, 46, 81, 0.12); --hover-shadow: rgba(27, 46, 81, 0.18); --hover-ring: rgba(var(--brand-accent-rgb), 0.14); --hover-glow: rgba(var(--brand-accent-rgb), 0.12); --card-hover-y: -4px; --card-hover-shadow: 0 22px 42px rgba(27, 46, 81, 0.14); --card-hover-border: var(--interactive-hover-border); --card-media-scale: 1.03}
html[data-theme="dark"] { --bg: #0f1828; --bg-alt: #122236; --surface: rgba(16, 31, 49, 0.82); --surface-strong: rgba(14, 24, 39, 0.96); --header-surface: rgba(14, 24, 39, 0.96); --header-surface-strong: rgba(14, 24, 39, 0.98); --border-subtle: rgba(255, 255, 255, 0.08); --border-default: rgba(255, 255, 255, 0.12); --border-strong: rgba(255, 255, 255, 0.18); --border-contrast: rgba(255, 255, 255, 0.14); --header-border: var(--border-default); --header-panel-bg: rgba(255, 255, 255, 0.05); --header-panel-bg-strong: rgba(255, 255, 255, 0.06); --header-panel-bg-hover: rgba(255, 255, 255, 0.1); --header-panel-border: var(--border-default); --surface-border: var(--header-panel-border); --surface-border-strong: var(--header-border); --header-panel-text: rgba(247, 243, 255, 0.86); --header-panel-text-soft: rgba(247, 243, 255, 0.66); --section-divider: var(--border-strong); --header-shadow: 0 14px 34px rgba(0, 0, 0, 0.28); --text: #d9dfe5; --text-soft: rgba(217, 223, 229, 0.82); --text-faint: rgba(217, 223, 229, 0.58); --line: var(--border-default); --brand-primary: #7fb4e6; --brand-primary-strong: #9ac4ed; --brand-indigo: #90acd6; --brand-indigo-strong: #c3d4eb; --brand-teal: var(--brand-accent); --brand-teal-strong: var(--brand-accent-strong); --brand-accent: #4bc5d8; --brand-accent-rgb: 75, 197, 216; --brand-accent-strong: #17a2b8; --brand-accent-hover: #79d4e3; --brand-accent-active: #138da2; --brand-accent-active-strong: #0d7283; --institutional-blue: #1d3c71; --interactive-hover-bg: rgba(var(--brand-accent-rgb), 0.12); --interactive-hover-border: rgba(var(--brand-accent-rgb), 0.24); --interactive-hover-text: #7fddea; --menu-hover-bg: var(--interactive-hover-bg); --menu-hover-border: var(--interactive-hover-border); --gradient-strip: var(--gradient-strip-dark); --shadow-soft: 0 24px 46px rgba(0, 0, 0, 0.28); --shadow-strong: 0 34px 80px rgba(0, 0, 0, 0.38); --hover-shadow: rgba(0, 0, 0, 0.4); --hover-ring: rgba(var(--brand-accent-rgb), 0.18); --hover-glow: rgba(var(--brand-accent-rgb), 0.12); --card-hover-shadow: 0 24px 46px rgba(0, 0, 0, 0.32); --card-hover-border: var(--interactive-hover-border)}
*, *::before, *::after { box-sizing: border-box}
html { font-size: 100%; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; text-size-adjust: 100%}
html.theme-switching *, html.theme-switching *::before, html.theme-switching *::after { transition: none !important; animation-duration: 0.001ms !important; animation-delay: 0ms !important}
body { margin: 0; min-width: 320px; font-family: var(--font-body); background: radial-gradient(circle at top left, rgba(29, 60, 113, 0.06), transparent 22%), radial-gradient(circle at 86% 12%, rgba(var(--brand-accent-rgb), 0.05), transparent 18%), linear-gradient(180deg, var(--bg) 0%, var(--bg-alt) 100%); color: var(--text); line-height: 1.6; overflow-x: hidden}
img { display: block; max-width: 100%; height: auto}
a { color: inherit; text-decoration: none}
button, .btn, input, textarea { font: inherit}
figure { margin: 0}
::selection { background: rgba(var(--brand-accent-rgb), 0.22); color: inherit}
:focus-visible { outline: 2px solid var(--brand-accent); outline-offset: 3px}
.skip-link { position: absolute; top: 16px; left: 16px; z-index: 1000; padding: 10px 14px; background: var(--brand-indigo); color: #fff}
.wrapper { width: min(100% - 40px, var(--wrapper-max)); margin-inline: auto}
.section-shell { --section-radius: var(--radius-section); position: relative; padding: clamp(4.5rem, 7vw, 7rem) 0}
section[id] { scroll-margin-top: calc(var(--header-height-compact) + 1px)}
body.admin-bar section[id] { scroll-margin-top: calc(var(--header-height-compact) + 32px + 1px)}
@media (max-width: 782px) { body.admin-bar section[id] { scroll-margin-top: calc(var(--header-height-compact) + 46px + 1px)}}
.site-main { position: relative}
.site-main--home { padding-top: 0}
.site-main>section { position: relative; width: 100%; border-bottom: 1px solid var(--section-divider)}
.site-main>section+section::before { content: none}

/* =========================================================
   Tarjetas de noticias
   ========================================================= */
.news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.2rem, 2vw, 1.6rem)}
.news-card { display: grid; grid-template-columns: minmax(180px, 42%) minmax(0, 1fr); align-items: stretch; min-height: 100%; overflow: hidden; border: 1px solid var(--border-subtle); border-radius: var(--radius-small); background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 248, 251, 0.98)); box-shadow: var(--shadow-soft); transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease}
.news-card:hover { transform: translateY(var(--card-hover-y)); box-shadow: var(--card-hover-shadow); border-color: var(--card-hover-border)}
.news-card__image { position: relative; display: block; min-height: 100%; overflow: hidden; background: rgba(27, 46, 81, 0.06)}
.news-card__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(var(--brand-accent-rgb), 0.18), rgba(29, 60, 113, 0.08) 54%, transparent 82%); opacity: 0; pointer-events: none; transition: opacity 260ms ease}
.news-card__image img { width: 100%; height: 100%; object-fit: cover; transition: opacity 260ms ease, filter 260ms ease}
.news-card:hover .news-card__image img { opacity: 0.9; filter: saturate(1.02)}
.news-card:hover .news-card__image::after, .news-card:focus-visible .news-card__image::after { opacity: 1}
.news-card__body { display: grid; align-content: start; gap: 0.8rem; padding: clamp(1.45rem, 2vw, 1.95rem)}
.news-card__meta { display: grid; grid-template-columns: repeat(2, max-content); align-items: center; justify-content: start; column-gap: 1rem; row-gap: 0.2rem}
.news-card__date, .news-card__author { display: inline-flex; align-items: center; font-family: var(--font-body); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.01em; text-transform: uppercase}
.news-card__date { color: var(--brand-primary)}
.news-card__author { color: var(--text-soft)}
.news-card__meta-divider { display: none}
.news-card__title { margin: 0; font-family: var(--font-display); font-size: 1.32rem; font-weight: 700; letter-spacing: -0.01em; line-height: 1.08; text-transform: uppercase}
.news-card__title a { color: inherit; transition: color 200ms ease}
.news-card__title a:hover { color: var(--brand-primary)}
.news-card__excerpt { display: -webkit-box; margin: 0; overflow: hidden; color: var(--text-soft); font-size: 0.95rem; line-height: 1.58; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4}
@media (max-width: 991px) { .news-grid { grid-template-columns: 1fr} .news-card { grid-template-columns: 1fr; align-items: start} .news-card__image { min-height: 0; aspect-ratio: 16 / 9} .news-card__image img { object-position: center top} .news-card__body { align-content: start; padding: 1.2rem 1.15rem 1.3rem} .news-card__excerpt { display: block; overflow: visible; -webkit-line-clamp: unset; line-clamp: unset}}
@media (max-width: 575px) { .news-card__body { align-content: start; gap: 0.7rem} .news-card__title { font-size: clamp(1.1rem, 4.6vw, 1.3rem)}}
/* =========================================================
   Secciones y tipografía
   ========================================================= */
.section-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0; font-family: var(--font-body); font-size: 0.98rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(27, 46, 81, 0.82)}
.section-eyebrow::before { content: ""; width: 0.56rem; height: 0.56rem; border-radius: var(--radius-small); background: var(--brand-accent); box-shadow: 0 0 0 3px var(--hover-glow); flex: 0 0 auto}
.section-eyebrow--light { color: rgba(255, 255, 255, 0.84)}
.section-eyebrow--light::before { background: rgba(255, 255, 255, 0.94); box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.12)}
.display-title, .section-title { margin: 0; font-family: var(--font-display); font-weight: 900; letter-spacing: -0.01em; line-height: 0.92; text-transform: uppercase}
.display-title { font-size: clamp(3rem, 6.5vw, 7.2rem)}
.hero-line { display: block}
.hero-line--small { margin-bottom: 0.12em; font-weight: 300; font-size: clamp(1.7rem, 2.8vw, 2.35rem); letter-spacing: 0.01em; color: rgba(255, 255, 255, 0.92)}
.hero-line--strong { font-weight: 900}
.hero-line--light { font-weight: 300; color: rgba(255, 255, 255, 0.92)}
.section-title { font-size: clamp(1.9rem, 3vw, 3rem)}
.title-accent { color: var(--brand-accent)}
.title-accent--hero { text-shadow: 0 0 18px rgba(var(--brand-accent-rgb), 0.22)}
html[data-theme="dark"] .title-accent { color: var(--brand-accent)}
.lead-copy { margin: 0; font-size: clamp(1rem, 1.55vw, 1.12rem); color: var(--text-soft)}
.section-heading { display: grid; gap: 0.9rem; margin-bottom: clamp(1.6rem, 3vw, 3.4rem)}
.section-heading--center { max-width: min(100%, 1180px); margin-inline: auto; text-align: center}
.section-heading--center .section-eyebrow { justify-content: center}
.section-heading--center .section-title, .section-heading--center .lead-copy { margin-inline: auto}
/* =========================================================
   Botones
   ========================================================= */
.btn { --btn-bg: linear-gradient(135deg, var(--brand-indigo) 0%, #325895 100%); --btn-color: #fff; --btn-border: transparent; --btn-border-hover: var(--btn-border); --btn-border-active: var(--btn-border-hover); --btn-bg-hover: linear-gradient(135deg, #254b87 0%, var(--brand-indigo-strong) 100%); --btn-bg-active: linear-gradient(135deg, #203f72 0%, #142743 100%); --btn-shadow: none; --btn-shadow-hover: 0 12px 28px rgba(27, 46, 81, 0.14); --btn-shadow-active: 0 8px 18px rgba(27, 46, 81, 0.12); --btn-ring: rgba(var(--brand-accent-rgb), 0.18); position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 0.72rem; min-height: 60px; padding: 0 24px; border: 1px solid var(--btn-border); border-radius: 3px; background: var(--btn-bg); color: var(--btn-color); box-shadow: var(--btn-shadow); font-family: var(--font-body); font-size: 1.1rem; font-weight: 600; letter-spacing: 0.02em; text-transform: none; text-decoration: none; overflow: hidden; transition: background 220ms ease, color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease}
.btn::before { content: ""; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 0 34%, rgba(255, 255, 255, 0.28) 48%, transparent 62%); transform: translateX(-120%); transition: transform 420ms ease}
.btn:hover::before { transform: translateX(120%)}
.btn:hover, .btn:focus-visible { background: var(--btn-bg-hover); color: var(--btn-color); border-color: var(--btn-border-hover); box-shadow: var(--btn-shadow-hover)}
.btn:hover { transform: translateY(-2px)}
.btn:focus-visible { outline: 0; box-shadow: 0 0 0 3px var(--btn-ring), var(--btn-shadow-hover)}
.btn:active { transform: translateY(0); background: var(--btn-bg-active); border-color: var(--btn-border-active); box-shadow: var(--btn-shadow-active)}
.btn:disabled, .btn.disabled, .btn[aria-disabled="true"] { opacity: 0.58; pointer-events: none; transform: none; box-shadow: none; filter: saturate(0.78)}
.btn-icon { width: 58px; min-width: 58px; padding: 0; border-radius: 0.8rem}
.btn:not(.btn-icon)>i:last-child { display: inline-block; margin-left: 0.1rem; border: 0; background: transparent; font-size: 1rem; line-height: 1; transition: transform 180ms ease, color 180ms ease}
.btn:hover>i:last-child, .btn:focus-visible>i:last-child { transform: translateX(2px)}
.btn-primary-brand { --btn-bg: linear-gradient(135deg, var(--institutional-blue) 0%, #325895 100%); --btn-bg-hover: linear-gradient(135deg, #254b87 0%, var(--brand-indigo-strong) 100%); --btn-bg-active: linear-gradient(135deg, #203f72 0%, #142743 100%); --btn-ring: rgba(29, 60, 113, 0.18)}
.btn-secondary-brand { --btn-bg: linear-gradient(135deg, #375d97 0%, var(--brand-indigo) 100%); --btn-bg-hover: linear-gradient(135deg, #27497f 0%, var(--brand-indigo-strong) 100%); --btn-bg-active: linear-gradient(135deg, #1c355f 0%, #11233d 100%); --btn-ring: rgba(49, 85, 139, 0.18); --btn-shadow-hover: 0 12px 28px rgba(27, 46, 81, 0.18)}
.btn-accent-brand { --btn-bg: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-accent-strong) 100%); --btn-bg-hover: linear-gradient(135deg, var(--brand-accent-hover) 0%, var(--brand-accent-strong) 100%); --btn-bg-active: linear-gradient(135deg, var(--brand-accent-active) 0%, var(--brand-accent-active-strong) 100%); --btn-ring: rgba(var(--brand-accent-rgb), 0.18); --btn-shadow-hover: 0 12px 28px rgba(var(--brand-accent-rgb), 0.22); --btn-shadow-active: 0 8px 18px rgba(var(--brand-accent-rgb), 0.18)}
.btn-outline-brand { --btn-bg: transparent; --btn-color: var(--text); --btn-border: rgba(29, 60, 113, 0.22); --btn-border-hover: rgba(29, 60, 113, 0.34); --btn-border-active: rgba(29, 60, 113, 0.42); --btn-bg-hover: rgba(29, 60, 113, 0.06); --btn-bg-active: rgba(29, 60, 113, 0.09); --btn-shadow-hover: none; --btn-shadow-active: none; --btn-ring: rgba(29, 60, 113, 0.14)}
.btn-outline-brand::before { display: none}
.btn-outline-brand:hover, .btn-outline-brand:focus-visible { color: var(--text)}
.btn-outline-brand > i:last-child { margin-left: 0.05rem}
.btn-outline-brand:hover > i:last-child, .btn-outline-brand:focus-visible > i:last-child { transform: translateX(2px)}

/* =========================================================
   Header
   ========================================================= */
.site-header { position: relative; z-index: 20; display: flex; flex-direction: column; height: var(--header-height); background: var(--header-surface-strong); border-bottom: 1px solid var(--header-border); box-shadow: 0 12px 28px rgba(31, 33, 72, 0.06); overflow: clip; transition: height 360ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 500ms ease, border-color 500ms ease, background-color 500ms ease, backdrop-filter 500ms ease}
.site-header-sticky { position: fixed; top: 0; left: 0; right: 0; z-index: 100; height: var(--header-height-compact); background: var(--header-surface); border-bottom: 1px solid var(--header-border); box-shadow: 0 14px 30px rgba(31, 33, 72, 0.1); backdrop-filter: blur(12px); opacity: 0; visibility: hidden; pointer-events: none}
body.admin-bar .site-header-sticky { top: 32px}
@media (max-width: 782px) { body.admin-bar .site-header-sticky { top: 46px}}
.site-header-sticky.is-visible { opacity: 1; visibility: visible; pointer-events: auto}
.site-header-sticky>.wrapper { height: 100%}
.site-header-sticky .site-nav__right--desktop .header-logo, .site-header-sticky .site-nav__right--mobile .header-logo { padding: 0.35rem 0.5rem}
.site-header>.wrapper { flex: 1 1 0%; min-height: 0}
@media (max-width: 991.98px) { :root { --header-height: var(--header-height-compact)}}
.site-utility-bar { border-bottom: 1px solid var(--border-default); background: #ffffff; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; padding: 0; max-width: none; width: 100%; margin: 0 auto}
.site-utility-shell { display: flex; align-items: center; justify-content: flex-end; gap: 1.5rem; min-height: 42px; padding: 0.08rem 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none}
.site-utility-nav { margin-left: 0}
.site-utility-meta { display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem; min-height: 28px}
.site-utility-actions { display: flex; align-items: center; padding-left: 0.85rem; margin-left: 0.25rem; border-left: 1px solid var(--header-border)}
.institutional-menu { display: flex; align-items: center; justify-content: flex-start; gap: 1.45rem; margin: 0; padding: 0; list-style: none}
.institutional-item { position: relative}
.institutional-item+.institutional-item::before { content: ""; position: absolute; left: -0.74rem; top: 50%; width: 1px; height: 10px; background: var(--border-default); transform: translateY(-50%)}
.institutional-link { display: inline-flex; align-items: center; gap: 0.3rem; min-height: 18px; font-family: var(--font-body); font-size: 0.87rem; font-weight: 600; letter-spacing: 0.02em; color: rgba(27, 46, 81, 0.76); transition: color 180ms ease}
.institutional-link--trigger i { font-size: 0.62rem; transition: transform 200ms ease}
.institutional-submenu { position: absolute; z-index: 12; top: calc(100% + 0.55rem); left: 50%; width: max-content; min-width: max-content; max-width: min(360px, calc(100vw - 2rem)); margin: 0; padding: 0.55rem; list-style: none; border: 1px solid var(--border-default); border-radius: 3px; border-top-left-radius: 0px; border-top-right-radius: 0px; border-top: 0px; background: #ffffff; box-shadow: 0 20px 40px rgba(27, 46, 81, 0.1); backdrop-filter: blur(12px); opacity: 0; visibility: hidden; transform: translateX(-50%) translateY(6px) scaleY(0.98); transform-origin: top center; transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease}
.institutional-submenu::before { content: ""; position: absolute; top: 0; left: 50%; width: 12px; height: 12px; background: inherit; border-left: 1px solid var(--header-border); border-top: 1px solid var(--header-border); transform: translate(-50%, -50%) rotate(45deg)}
.institutional-submenu li { position: relative}
.institutional-submenu li+li { margin-top: 0.1rem}
.institutional-submenu a { display: flex; align-items: center; min-width: max-content; min-height: 30px; padding: 0rem 1rem; border: 1px solid transparent; border-radius: 0px; font-family: var(--font-body); font-size: 0.90rem; font-weight: 500; letter-spacing: 0.01em; color: var(--header-panel-text); white-space: nowrap; flex: 0 0 auto; transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease}
.institutional-link:hover, .institutional-link:focus-visible { color: var(--interactive-hover-text)}
.institutional-submenu a:hover, .institutional-submenu a:focus-visible { background: var(--menu-hover-bg); color: var(--interactive-hover-text); border-color: var(--menu-hover-border)}
.institutional-item--has-submenu:hover .institutional-submenu, .institutional-item--has-submenu:focus-within .institutional-submenu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0)}
.institutional-item--has-submenu:hover .institutional-link--trigger i, .institutional-item--has-submenu:focus-within .institutional-link--trigger i { transform: rotate(180deg)}
.site-search-toggle { display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--border-default); border-radius: 3px; background: transparent; box-shadow: none; color: var(--header-panel-text-soft); transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease}
.site-search-toggle i { font-size: 1rem}
.site-search-toggle:hover, .site-search-toggle:focus-visible, .site-search-toggle[aria-expanded="true"] { background: var(--interactive-hover-bg); border-color: var(--interactive-hover-border); color: var(--interactive-hover-text)}
.site-search-shell { position: relative; z-index: 2}
.site-search-shell[hidden] { display: none !important}
.site-search-shell .wrapper { position: relative}
.site-search-panel { display: flex; justify-content: flex-end; padding: 0 0 0.95rem}
.site-search-field { display: flex; align-items: center; gap: 0.8rem; width: 100%; min-height: 56px; padding: 0 0.7rem 0 1rem; border: 1px solid var(--surface-border); border-radius: 4px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(244, 247, 250, 0.98) 100%); box-shadow: 0 18px 36px rgba(27, 46, 81, 0.08)}
.site-search-field:focus-within { border-color: var(--brand-accent); box-shadow: 0 0 0 3px var(--hover-ring), 0 18px 36px rgba(27, 46, 81, 0.1)}
.site-search-field>i { flex: 0 0 auto; font-size: 1rem; color: var(--header-panel-text-soft)}
.site-search-field input { flex: 1 1 auto; min-width: 0; padding: 0; border: 0; background: transparent; color: var(--header-panel-text); font-size: 0.95rem; letter-spacing: 0.01em}
.site-search-field input::placeholder { color: var(--header-panel-text-soft)}
.site-search-field input:focus { outline: 0}
.site-search-submit { display: inline-grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; padding: 0; border: 1px solid var(--brand-accent); border-radius: 4px; background: var(--brand-accent); color: #ffffff; box-shadow: var(--btn-shadow-active); transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 180ms ease}
.site-search-submit i { font-size: 1.15rem; line-height: 1}
.site-search-submit:hover, .site-search-submit:focus-visible { background: var(--brand-accent-strong); border-color: var(--brand-accent-strong); color: #ffffff; transform: translateY(-1px); box-shadow: 0 0 0 3px var(--hover-ring), var(--btn-shadow-hover)}
.site-search-shell.is-open .site-search-panel { pointer-events: auto}
/* =========================================================
   Menú principal
   ========================================================= */
.site-nav { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(1rem, 1.8vw, 1.65rem); height: 100%}
.site-nav--header { grid-template-columns: auto minmax(0, 1fr) auto}
.site-header-main { display: grid; grid-template-columns: minmax(280px, max-content) minmax(0, 1fr) auto; align-items: center; gap: clamp(1.2rem, 2vw, 1.9rem); min-height: 96px; padding: 0.82rem 0 0.78rem}
.site-nav--sticky { grid-template-rows: none; grid-template-columns: auto minmax(0, 1fr); gap: clamp(0.9rem, 1.6vw, 1.35rem); align-items: center}
.site-nav--sticky .site-nav__brand { align-items: center}
.site-nav--sticky .site-nav__menu { justify-content: flex-end}
.site-nav__brand { display: flex; align-items: center; gap: 12px; min-width: 0}
.header-wordmark { display: inline-grid; gap: 0.14rem; min-width: 0; max-width: min(100%, 36rem); padding-block: 0.08rem}
.header-wordmark__logo { display: block; max-width: min(100%, 360px); max-height: 72px; width: auto; height: auto; object-fit: contain}
.header-wordmark__logo--mobile { max-width: min(100%, 280px); max-height: 58px}
.header-wordmark__logo--dark { display: none}
.header-wordmark__line { display: block; line-height: 0.94}
.header-wordmark__line--bold { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.04rem, 0.92rem + 0.42vw, 1.28rem); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text)}
.header-wordmark__line--black { font-family: var(--font-display); font-weight: 900; font-size: clamp(1.92rem, 1.58rem + 0.76vw, 2.55rem); text-transform: uppercase; color: var(--text)}
.header-wordmark__accent { color: var(--brand-accent)}
.header-logo { display: inline-flex; align-items: center; justify-content: flex-end; max-width: 150px; overflow: hidden; transition: max-width 420ms cubic-bezier(0.22, 1, 0.36, 1), opacity 360ms ease, transform 420ms cubic-bezier(0.22, 1, 0.36, 1), padding 320ms cubic-bezier(0.22, 1, 0.36, 1)}
.header-logo img { height: 96px; width: auto; transition: height 420ms cubic-bezier(0.22, 1, 0.36, 1), opacity 340ms ease, transform 420ms cubic-bezier(0.22, 1, 0.36, 1), filter 340ms ease}
.header-logo__image--dark { display: none}
html[data-theme="dark"] .header-logo__image--light { display: none}
html[data-theme="dark"] .header-logo__image--dark { display: block}
.site-nav__menu { display: flex; justify-content: center; width: 100%; min-width: 0}
.site-nav__menu--header { justify-content: center; align-self: center; min-width: 0}
.site-menu, .mobile-menu { list-style: none; margin: 0; padding: 0}
.menu--fallback { display: inline-flex; align-items: center; padding: 0.3rem 1.55rem; border-radius: var(--radius-control); background: rgba(29, 60, 113, 0.06); color: var(--header-panel-text-soft)}
.footer-menu .menu--fallback { display: inline-flex; min-height: 0; padding: 0.3rem 1.55rem; margin-inline: auto; background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.84)}
.menu-item__fallback-message { display: block; font-family: var(--font-body); font-size: 0.95rem; font-weight: 600; line-height: 1.35}
.site-menu { display: flex; align-items: center; justify-content: center; gap: clamp(0.28rem, 0.55vw, 0.58rem)}
.site-nav__menu--header { gap: clamp(0.45rem, 0.8vw, 0.8rem)}
.site-nav__menu--header .site-menu { flex: 1 1 auto; justify-content: center; gap: clamp(0.28rem, 0.55vw, 0.52rem); width: auto; min-width: 0; margin-left: auto}
.site-nav__menu--header .site-search-toggle { flex: 0 0 40px}
.site-nav__menu--sticky .site-menu { justify-content: center; gap: clamp(0.24rem, 0.45vw, 0.44rem)}
.site-menu a { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; max-width: clamp(8rem, 8vw, 11rem); padding: 0 0.9rem; border-radius: var(--radius-control); font-family: var(--font-body); font-size: 1.05rem; font-weight: 500; letter-spacing: 0.01em; line-height: 1.15; text-align: center; white-space: normal; color: var(--header-panel-text-soft); transition: color 180ms ease, opacity 180ms ease, background-color 180ms ease, border-color 180ms ease, transform 180ms ease; border: 1px solid transparent; position: relative; isolation: isolate}
.offcanvas-shell .mobile-menu a { display: inline-flex; align-items: center; width: 100%; min-height: 40px; padding: 0.5rem 0.78rem 0.75rem; border-radius: 0; font-family: var(--font-body); font-size: clamp(0.92rem, 0.88rem + 0.18vw, 0.98rem); font-weight: 600; letter-spacing: 0.008em; color: rgba(255, 255, 255, 0.9); transition: color 180ms ease, opacity 180ms ease}
.offcanvas-shell .mobile-menu a:hover { color: #fff}
.offcanvas-shell .mobile-menu > .menu-item-has-children > a { justify-content: space-between}
.offcanvas-shell .mobile-menu > .menu-item-has-children > a::after { content: ""; width: 0.45rem; height: 0.45rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-15%) rotate(45deg)}
.offcanvas-shell .mobile-menu .sub-menu { display: grid; gap: 0; margin: 0.35rem 0 0; padding: 0.2rem 0; list-style: none; border-left: 0; background: rgba(255, 255, 255, 0.06); border-radius: 0}
.offcanvas-shell .mobile-menu .sub-menu li { border-bottom: 1px solid rgba(255, 255, 255, 0.18)}
.offcanvas-shell .mobile-menu .sub-menu li:last-child { border-bottom: 0}
.offcanvas-shell .mobile-menu .sub-menu a { color: inherit}
.site-menu > .current-menu-item > a, .site-menu > .current-menu-parent > a, .site-menu > .current-menu-ancestor > a, .site-menu > .menu-item-has-children.current-menu-parent > a, .site-menu > .menu-item-has-children.current-menu-ancestor > a, .site-menu > .menu-item-has-children.current-page-parent > a, .site-menu > .menu-item-has-children.current-page-ancestor > a, .site-menu > li > a:hover, .site-menu > li > a:focus-visible { color: var(--interactive-hover-text); background: transparent; border-color: transparent}
.site-menu a::after { content: none}
.site-menu > li { position: relative}
.site-menu > .menu-item-has-children > a { padding-right: 2.1rem}
.site-menu > .menu-item-has-children > a::after { content: ""; position: absolute; top: 50%; right: 0.95rem; width: 0.44rem; height: 0.44rem; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; opacity: 0.72; transform: translateY(-58%) rotate(45deg); transition: transform 180ms ease, opacity 180ms ease}
.site-menu > .menu-item-has-children:hover > a::after, .site-menu > .menu-item-has-children:focus-within > a::after { opacity: 1; transform: translateY(-38%) rotate(225deg)}
.site-menu > .menu-item-has-children > .sub-menu { position: absolute; top: calc(100% + 0.16rem); left: 0; z-index: 30; display: grid; gap: 0.18rem; min-width: min(280px, 32vw); margin: 0; padding: 0.35rem; list-style: none; border: 1px solid var(--surface-border-strong); border-radius: var(--radius-small); background: #fff; box-shadow: 0 16px 28px rgba(15, 26, 46, 0.18); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(0.08rem); transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease; overflow: visible}
.site-menu > .menu-item-has-children > .sub-menu::before { content: ""; position: absolute; top: -0.44rem; left: 1.35rem; width: 12px; height: 12px; background: inherit; border-left: 1px solid var(--surface-border-strong); border-top: 1px solid var(--surface-border-strong); transform: rotate(45deg); z-index: 1}
.site-menu > .menu-item-has-children > .sub-menu::after { content: ""; position: absolute; left: 0; right: 0; top: -0.22rem; height: 0.28rem}
.site-menu > .menu-item-has-children:hover > .sub-menu, .site-menu > .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0)}
.site-menu > .menu-item-has-children > .sub-menu li { margin: 0}
.site-menu > .menu-item-has-children > .sub-menu a { justify-content: flex-start; min-width: 100%; min-height: 42px; padding: 0.68rem 0.82rem; border-radius: var(--radius-control); font-size: 0.94rem; line-height: 1.25; white-space: normal; color: var(--header-panel-text)}
.site-header-sticky .site-menu > .menu-item-has-children > a { padding-right: 1.95rem}
.site-header-sticky .site-menu > .menu-item-has-children > a::after { right: 0.82rem; width: 0.4rem; height: 0.4rem; border-right-width: 1.5px; border-bottom-width: 1.5px}
.site-menu > .menu-item-has-children > .sub-menu a:hover, .site-menu > .menu-item-has-children > .sub-menu a:focus-visible, .site-menu > .menu-item-has-children > .sub-menu .current-menu-item > a { color: var(--brand-accent-strong); background: transparent; border-color: transparent}
html[data-theme="dark"] .site-menu > .menu-item-has-children > .sub-menu { border-color: rgba(255, 255, 255, 0.14); background: #0e1927; box-shadow: 0 16px 28px rgba(0, 0, 0, 0.34)}
html[data-theme="dark"] .site-menu > .menu-item-has-children > .sub-menu::before { border-left-color: rgba(255, 255, 255, 0.14); border-top-color: rgba(255, 255, 255, 0.14)}
html[data-theme="dark"] .site-menu > .menu-item-has-children > .sub-menu a { color: rgba(244, 246, 246, 0.92)}
html[data-theme="dark"] .site-menu > .menu-item-has-children > .sub-menu a:hover, html[data-theme="dark"] .site-menu > .menu-item-has-children > .sub-menu a:focus-visible, html[data-theme="dark"] .site-menu > .menu-item-has-children > .sub-menu .current-menu-item > a { color: var(--brand-accent); background: transparent; border-color: transparent}
.site-nav__right { display: flex; align-items: center; gap: 0.8rem; padding: 0}
.site-nav__right--desktop { align-items: center; justify-content: flex-end; gap: 0; flex: 0 0 auto}
.site-nav__right--desktop .header-logo { justify-content: flex-end; flex: 0 0 auto; max-width: none; padding-left: 0; margin-left: 0; border-left: 0}
.site-nav__right--mobile { justify-content: flex-end; width: 100%; margin-left: auto}
.site-nav__right--mobile .site-nav__toggle { margin-left: auto}
.site-nav__toggle { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 50px; height: 50px; padding: 0; border: 1px solid var(--border-default); border-radius: var(--radius-small); background: transparent; color: var(--header-panel-text)}
.site-theme-toggle { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 1px solid var(--brand-accent); border-radius: 3px; background: var(--brand-accent); color: #ffffff; cursor: pointer; box-shadow: var(--btn-shadow-active); transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease, transform 220ms ease, box-shadow 220ms ease}
.site-theme-toggle:hover, .site-theme-toggle:focus-visible { background: var(--brand-accent-strong); border-color: var(--brand-accent-strong); color: #ffffff; transform: translateY(-1px); box-shadow: 0 0 0 3px var(--hover-ring), var(--btn-shadow-hover)}
.site-theme-toggle i { font-size: 0.85rem; line-height: 1}
.site-header-sticky .site-menu a { min-height: 42px; max-width: clamp(7.5rem, 7.2vw, 9.5rem); padding: 0 0.82rem; font-size: 1rem}
.site-header-sticky .site-menu > .menu-item-has-children > .sub-menu a { max-width: none; width: 100%; white-space: nowrap}
.site-header-sticky .site-theme-toggle { width: 38px; height: 38px; background: var(--brand-accent); border-color: var(--brand-accent); color: #ffffff}
.site-header-sticky .header-wordmark__line--bold { font-size: clamp(0.82rem, 0.72rem + 0.26vw, 0.96rem)}
.site-header-sticky .header-wordmark__line--black { font-size: clamp(1.34rem, 1.16rem + 0.4vw, 1.62rem)}
.site-header-sticky .header-wordmark__logo { padding-block: 0.55rem}
.site-nav__toggle span { display: block; width: 18px; height: 2px; border-radius: var(--radius-pill); background: currentColor}
.site-nav__toggle span+span { margin-top: 0}
/* =========================================================
   Menú móvil
   ========================================================= */
.offcanvas-shell { color: #fff; border-left: 0}
.offcanvas-shell { background: linear-gradient(180deg, var(--institutional-blue) 0%, var(--institutional-blue-strong) 100%)}
html[data-theme="dark"] .offcanvas-shell { background: linear-gradient(180deg, #06111b 0%, #02050a 100%)}
.offcanvas-header { align-items: flex-start; padding: 28px 24px 16px}
.offcanvas-shell .header-wordmark { gap: 0.22rem; max-width: 100%}
.offcanvas-shell .header-wordmark__line--bold, .offcanvas-shell .header-wordmark__line--black { color: #fff}
.offcanvas-shell .header-wordmark--mobile .header-wordmark__line--bold { font-size: clamp(0.92rem, 0.82rem + 0.22vw, 1.08rem)}
.offcanvas-shell .header-wordmark--mobile .header-wordmark__line--black { font-size: clamp(1.6rem, 1.34rem + 0.5vw, 2.05rem)}
.offcanvas-body { gap: 28px; padding: 0 24px 32px}
.offcanvas-shell .mobile-menu { display: grid; gap: 0; margin-top: 30px}
.offcanvas-shell .mobile-menu li { border-bottom: 1px solid rgba(255, 255, 255, 0.18)}
.offcanvas-shell .mobile-menu a:hover, .offcanvas-shell .mobile-menu a:focus-visible { color: #fff; background: transparent; transform: none}
.offcanvas-actions { display: flex; align-items: center; gap: 14px; margin-top: 20px}
.site-theme-toggle--mobile { width: 48px; height: 48px; background: var(--brand-accent); border-color: var(--brand-accent); color: #ffffff}
.site-theme-toggle--mobile:hover { background: var(--brand-accent-strong); border-color: var(--brand-accent-strong); color: #ffffff}
.home .site-header { background: var(--header-surface-strong); border-bottom-color: var(--header-border); box-shadow: none; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px)}
html[data-theme="dark"] .home .site-header { background: var(--header-surface-strong); border-bottom-color: var(--header-border); box-shadow: 0 14px 32px rgba(0, 0, 0, 0.22)}
html[data-theme="dark"] .home .site-header .header-wordmark__line--bold, html[data-theme="dark"] .home .site-header .institutional-link, html[data-theme="dark"] .home .site-header .site-menu a, html[data-theme="dark"] .home .site-header .site-nav__toggle { color: #ffffff}
html[data-theme="dark"] .home .site-header .header-wordmark__line--black { color: #ffffff}
html[data-theme="dark"] .site-header .header-wordmark__logo--light, html[data-theme="dark"] .site-header-sticky .header-wordmark__logo--light { display: none}
html[data-theme="dark"] .site-header .header-wordmark__logo--dark, html[data-theme="dark"] .site-header-sticky .header-wordmark__logo--dark { display: block}
html[data-theme="dark"] .home .site-header .site-theme-toggle { border-color: var(--brand-accent); background: var(--brand-accent); color: #ffffff; box-shadow: 0 10px 22px rgba(7, 96, 110, 0.34)}
html[data-theme="dark"] .home .site-header .site-nav__toggle { border-color: var(--border-default); background: transparent}

/* Header UBB */
.site-header, .home .site-header { height: auto; min-height: var(--header-height); background: #ffffff; border-bottom: 0; box-shadow: none; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); overflow: visible}
.site-header>.wrapper { flex: 0 0 auto; min-height: auto}
.site-header::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--header-corporate-line); opacity: 0.92; pointer-events: none}
.site-header-sticky { height: var(--header-height-compact); min-height: var(--header-height-compact); background: #ffffff; border-bottom: 0; box-shadow: 0 14px 32px rgba(27, 46, 81, 0.08); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px)}
.site-header-sticky .header-wordmark__line--bold { color: var(--text)}
.site-header-sticky .header-wordmark__line--black { color: var(--text)}
.site-header-sticky .header-wordmark__accent { color: var(--brand-accent)}
.site-menu__theme-item { margin-left: 0.25rem}
html[data-theme="dark"] .site-menu a, html[data-theme="dark"] .offcanvas-shell .mobile-menu a { color: #ffffff}
html[data-theme="dark"] .site-utility-bar { border-color: var(--border-default); border-top: 0; background: transparent}
html[data-theme="dark"] .site-utility-shell { border-color: transparent; background: transparent; box-shadow: none}
html[data-theme="dark"] .institutional-link { color: #ffffff}
html[data-theme="dark"] .institutional-item+.institutional-item::before { background: var(--border-default)}
html[data-theme="dark"] .institutional-submenu { border-color: var(--border-default); background: var(--header-surface-strong); box-shadow: 0 22px 42px rgba(0, 0, 0, 0.22)}
html[data-theme="dark"] .institutional-submenu a { color: rgba(247, 243, 255, 0.82)}
html[data-theme="dark"] .institutional-link:hover, html[data-theme="dark"] .institutional-link:focus-visible { color: var(--interactive-hover-text)}
html[data-theme="dark"] .header-wordmark__line--bold { color: #ffffff}
html[data-theme="dark"] .header-wordmark__line--black { color: #ffffff}
html[data-theme="dark"] .site-theme-toggle { border-color: var(--brand-accent); background: var(--brand-accent); color: #ffffff; box-shadow: 0 10px 22px rgba(7, 96, 110, 0.34)}
html[data-theme="dark"] .site-theme-toggle:hover, html[data-theme="dark"] .site-theme-toggle:focus-visible { background: var(--brand-accent-strong); border-color: var(--brand-accent-strong); color: #ffffff; box-shadow: 0 0 0 3px var(--hover-ring), 0 10px 20px rgba(7, 96, 110, 0.34)}
html[data-theme="dark"] .site-search-field { border-color: var(--border-default); background: linear-gradient(180deg, rgba(17, 29, 46, 0.98) 0%, rgba(12, 21, 35, 0.98) 100%); box-shadow: 0 18px 36px rgba(0, 0, 0, 0.28)}
html[data-theme="dark"] .site-search-field:focus-within { border-color: var(--brand-accent); box-shadow: 0 0 0 3px var(--hover-ring), 0 18px 36px rgba(0, 0, 0, 0.32)}
html[data-theme="dark"] .site-search-submit { border-color: var(--brand-accent); background: var(--brand-accent); color: #ffffff; box-shadow: 0 8px 18px rgba(7, 96, 110, 0.34)}
html[data-theme="dark"] .site-search-submit:hover, html[data-theme="dark"] .site-search-submit:focus-visible { background: var(--brand-accent-strong); border-color: var(--brand-accent-strong); color: #ffffff; box-shadow: 0 0 0 3px var(--hover-ring), 0 10px 20px rgba(7, 96, 110, 0.34)}
html[data-theme="dark"] .institutional-submenu a:hover, html[data-theme="dark"] .institutional-submenu a:focus-visible { background: var(--menu-hover-bg); color: var(--interactive-hover-text)}
html[data-theme="dark"] .site-nav__toggle { background: transparent; border-color: var(--border-default); color: rgba(247, 243, 255, 0.92)}

/* Header overlay */
.site-header.site-header--overlay { position: absolute; inset-inline: 0; top: 0; z-index: 30; background: linear-gradient(180deg, rgba(8, 18, 34, 0.72) 0%, rgba(8, 18, 34, 0.42) 100%); border-bottom-color: transparent; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; --overlay-text: #ffffff; --overlay-text-soft: rgba(255, 255, 255, 0.9); --overlay-wordmark-accent: #ffffff; --overlay-toggle-bg: rgba(255, 255, 255, 0.06); --overlay-toggle-border: rgba(255, 255, 255, 0.2); --overlay-toggle-hover-bg: rgba(255, 255, 255, 0.12); --overlay-toggle-hover-border: rgba(255, 255, 255, 0.32); --overlay-search-bg: rgba(255, 255, 255, 0.08); --overlay-search-hover-bg: rgba(255, 255, 255, 0.14); --overlay-search-border: rgba(255, 255, 255, 0.2); --overlay-search-hover-border: rgba(255, 255, 255, 0.28); --overlay-submenu-bg: rgba(11, 19, 35, 0.96); --overlay-submenu-border: rgba(255, 255, 255, 0.12); --overlay-submenu-link: rgba(255, 255, 255, 0.88); --overlay-submenu-accent: var(--brand-accent); --overlay-utility-border: rgba(255, 255, 255, 0.16); --overlay-actions-border: rgba(255, 255, 255, 0.18)}
body.admin-bar .site-header.site-header--overlay { top: 32px}
@media (max-width: 782px) { body.admin-bar .site-header.site-header--overlay { top: 46px}}
.site-header.site-header--overlay::after { opacity: 0.12}
.site-header.site-header--overlay.site-header--overlay--light { background: linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.66) 100%); --overlay-text: var(--institutional-blue-strong); --overlay-text-soft: rgba(27, 46, 81, 0.92); --overlay-wordmark-accent: var(--brand-accent); --overlay-toggle-bg: rgba(255, 255, 255, 0.7); --overlay-toggle-border: rgba(29, 60, 113, 0.14); --overlay-toggle-hover-bg: rgba(255, 255, 255, 0.92); --overlay-toggle-hover-border: rgba(29, 60, 113, 0.22); --overlay-search-bg: rgba(255, 255, 255, 0.84); --overlay-search-hover-bg: rgba(255, 255, 255, 0.96); --overlay-search-border: rgba(29, 60, 113, 0.14); --overlay-search-hover-border: rgba(29, 60, 113, 0.24); --overlay-submenu-bg: rgba(255, 255, 255, 0.97); --overlay-submenu-border: rgba(29, 60, 113, 0.12); --overlay-submenu-link: rgba(27, 46, 81, 0.92); --overlay-utility-border: rgba(29, 60, 113, 0.14); --overlay-actions-border: rgba(29, 60, 113, 0.14)}
.site-header.site-header--overlay.site-header--overlay--dark { background: linear-gradient(180deg, rgba(8, 18, 34, 0.72) 0%, rgba(8, 18, 34, 0.42) 100%); --overlay-text: #ffffff; --overlay-text-soft: rgba(255, 255, 255, 0.9); --overlay-wordmark-accent: #ffffff; --overlay-toggle-bg: rgba(255, 255, 255, 0.06); --overlay-toggle-border: rgba(255, 255, 255, 0.2); --overlay-toggle-hover-bg: rgba(255, 255, 255, 0.12); --overlay-toggle-hover-border: rgba(255, 255, 255, 0.32); --overlay-search-bg: rgba(255, 255, 255, 0.08); --overlay-search-hover-bg: rgba(255, 255, 255, 0.14); --overlay-search-border: rgba(255, 255, 255, 0.2); --overlay-search-hover-border: rgba(255, 255, 255, 0.28); --overlay-submenu-bg: rgba(11, 19, 35, 0.96); --overlay-submenu-border: rgba(255, 255, 255, 0.12); --overlay-submenu-link: rgba(255, 255, 255, 0.88); --overlay-utility-border: rgba(255, 255, 255, 0.16); --overlay-actions-border: rgba(255, 255, 255, 0.18)}
html[data-theme="dark"] .site-header.site-header--overlay.site-header--overlay--light { background: linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.66) 100%)}
html[data-theme="dark"] .site-header.site-header--overlay.site-header--overlay--dark { background: linear-gradient(180deg, rgba(8, 18, 34, 0.72) 0%, rgba(8, 18, 34, 0.42) 100%)}
.site-header.site-header--overlay .site-utility-bar, .site-header.site-header--overlay .site-utility-shell { background: transparent; border-color: transparent; box-shadow: none}
.site-header.site-header--overlay .site-utility-bar { border-bottom: 1px solid var(--overlay-utility-border)}
.site-header.site-header--overlay .site-utility-actions { border-left-color: var(--overlay-actions-border)}
.site-header.site-header--overlay .header-wordmark__line--bold { color: var(--overlay-text)}
.site-header.site-header--overlay .header-wordmark__line--black { color: var(--overlay-text)}
.site-header.site-header--overlay .header-wordmark__accent { color: var(--overlay-wordmark-accent)}
.site-header.site-header--overlay .institutional-link { color: var(--overlay-text)}
.site-header.site-header--overlay .site-menu a { color: var(--overlay-text)}
.site-header.site-header--overlay .site-nav__toggle { color: var(--overlay-text); border-color: var(--overlay-toggle-border); background: var(--overlay-toggle-bg)}
.site-header.site-header--overlay .site-search-toggle { color: var(--overlay-text)}
.site-header.site-header--overlay .site-nav__toggle:hover { border-color: var(--overlay-toggle-hover-border); background: var(--overlay-toggle-hover-bg)}
.site-header.site-header--overlay .site-nav__toggle:focus-visible { border-color: var(--overlay-toggle-hover-border); background: var(--overlay-toggle-hover-bg)}
.site-header.site-header--overlay .site-search-toggle { border-color: var(--overlay-search-border); background: var(--overlay-search-bg)}
.site-header.site-header--overlay .site-search-toggle:hover, .site-header.site-header--overlay .site-search-toggle:focus-visible, .site-header.site-header--overlay .site-search-toggle[aria-expanded="true"] { background: var(--overlay-search-hover-bg); border-color: var(--overlay-search-hover-border); color: var(--overlay-text)}
.site-header.site-header--overlay .site-menu > .menu-item-has-children > .sub-menu { background: var(--overlay-submenu-bg); border-color: var(--overlay-submenu-border)}
.site-header.site-header--overlay .site-menu > .menu-item-has-children > .sub-menu::before { border-left-color: var(--overlay-submenu-border); border-top-color: var(--overlay-submenu-border)}
.site-header.site-header--overlay .site-menu > .menu-item-has-children > .sub-menu a { color: var(--overlay-submenu-link)}
.site-header.site-header--overlay .site-menu > .menu-item-has-children > .sub-menu a:hover, .site-header.site-header--overlay .site-menu > .menu-item-has-children > .sub-menu a:focus-visible, .site-header.site-header--overlay .site-menu > .menu-item-has-children > .sub-menu .current-menu-item > a { color: var(--overlay-submenu-accent)}
html[data-theme="dark"] .site-header.site-header--overlay::after { opacity: 0.12}

/* Fondos oscuros por sección */
html[data-theme="dark"] .scroll-btn { color: #f7f3ff}
html[data-theme="dark"] .scroll-btn .bg { stroke: rgba(255, 255, 255, 0.14)}

/* =========================================================
   Footer
   ========================================================= */
.footer { position: relative; overflow: hidden; margin-top: 0; color: rgba(255, 255, 255, 0.92); background: linear-gradient(180deg, #17345f 0%, #14305a 52%, #102543 100%)}
html[data-theme="dark"] .footer { background: linear-gradient(180deg, #0d2134 0%, #0b1c2d 50%, #081624 100%)}
.footer::before { content: ""; position: absolute; left: max(20px, calc((100vw - var(--wrapper-max)) / 2)); bottom: 0; width: min(38vw, 1000px); height: 8px; background: linear-gradient( 90deg, var(--corp-blue) 0%, var(--corp-blue) 58%, var(--corp-silver) 58%, var(--corp-silver) 76%, var(--corp-yellow) 76%, var(--corp-yellow) 89%, var(--corp-red) 89%, var(--corp-red) 100% ); opacity: 0.96; box-shadow: none; pointer-events: none}
.footer::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, transparent 18%), radial-gradient(circle at 86% 16%, rgba(255, 255, 255, 0.05), transparent 20%); pointer-events: none}
html[data-theme="dark"] .footer::after { background: linear-gradient(90deg, rgba(var(--brand-accent-rgb), 0.04) 0%, transparent 24%), radial-gradient(circle at 84% 18%, rgba(var(--brand-accent-rgb), 0.06), transparent 22%)}
.footer > .wrapper.row.w-100 { position: relative; min-height: 100%; padding-top: clamp(2.5rem, 4vw, 3.5rem); padding-bottom: clamp(2rem, 3vw, 2.75rem)}
.footer > .wrapper.row.w-100 > * { position: relative; z-index: 1}
.footer-cortina h3, .footer-cortina h6 { color: #fff}
.footer-cortina p { color: rgba(255, 255, 255, 0.86)}
.footer strong { color: #fff}
footer a { color: #fff; text-decoration: none}
.footer .footer-brand-image { width: min(180px, 100%); height: auto; filter: brightness(0) invert(1)}
.footer .footer-seal { width: min(400px, 100%); height: auto}
.footer-menu { align-self: flex-start}
.footer-menu__list { list-style: none; margin: 0; padding: 0; text-align: center}
.footer-menu__list li + li { margin-top: 0.3rem}
.footer-menu__list a { display: block; padding: 0.18rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.84); transition: color 220ms ease, border-color 220ms ease, transform 220ms ease}
.footer-menu__list a:hover, .footer-menu__list a:focus-visible { color: #ffffff; border-bottom-color: rgba(255, 255, 255, 0.28); transform: translateX(2px)}
.footer .section-social { position: relative; overflow: visible}
.footer .icons { display: flex; align-items: center; gap: 0.35rem}
.footer .icons a { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: rgba(255, 255, 255, 0.12); color: #fff; font-size: 1.15rem; transition: transform 0.3s ease, background-color 0.3s ease}
.footer .icons a:hover, .footer .icons a:focus-visible { transform: scale(1.12); background: rgba(255, 255, 255, 0.2)}
html[data-theme="dark"] .footer .icons a { background: rgba(127, 180, 230, 0.12); color: #f4f8fc}
html[data-theme="dark"] .footer .icons a:hover, html[data-theme="dark"] .footer .icons a:focus-visible { background: rgba(var(--brand-accent-rgb), 0.18)}
.footer .icon-footer { flex: 0 0 auto; display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 0.7rem; color: #ffffff; font-size: 0.9rem; background: rgba(var(--brand-accent-rgb), 0.1)}
.footer .footer-svg { right: 15%; bottom: -20px; max-width: 500px; pointer-events: none; opacity: 0.92}
.footer .footer-svg path { fill: rgba(255, 255, 255, 0.12) !important}
.footer-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; color: rgba(255, 255, 255, 0.86)}
.footer-meta__sep { color: var(--brand-accent); font-weight: 700}
.footer-meta__dev a { color: var(--brand-accent); font-weight: 700; text-decoration: none}
.footer-meta__dev a:hover, .footer-meta__dev a:focus-visible { color: var(--brand-accent-strong); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.14em}
.footer [id="footerYear"] { color: #fff}
@media (max-width: 767px) { .footer::before { left: 20px; width: min(44vw, 170px); height: 7px}}

/* =========================================================
   Utilidades
   ========================================================= */
.scroll-btn { position: fixed; right: 18px; bottom: 20px; z-index: 60; width: 56px; height: 56px; border: 0; border-radius: var(--radius-small); background: transparent; color: var(--brand-indigo); opacity: 0; pointer-events: none; transition: opacity 200ms ease, transform 200ms ease, box-shadow 220ms ease, background 220ms ease, color 220ms ease}
.scroll-btn:hover { transform: translateY(-2px)}
.scroll-btn .progress-square { position: absolute; inset: 3px; width: calc(100% - 6px); height: calc(100% - 6px)}
.scroll-btn .bg, .scroll-btn .progress { fill: none; stroke-width: 2.5}
.scroll-btn .bg { stroke: rgba(255, 255, 255, 0.28)}
.scroll-btn .progress { stroke: var(--brand-primary); stroke-linecap: round; transform-origin: 50% 50%; height: 42px}
.scroll-btn .arrow { position: relative; z-index: 1; font-size: 1.1rem; font-weight: 700}
.scroll-btn.footer-contrast { color: #fff}
.scroll-btn.footer-contrast .progress { stroke: #fff}
.scroll-btn.footer-contrast .arrow { color: #fff}
html[data-theme="dark"] .scroll-btn { color: #f7f3ff}
.reveal { opacity: 0; transform: translate3d(0, var(--reveal-y, 22px), 0) scale(var(--reveal-scale, 0.985)); transition: opacity var(--reveal-duration, 780ms) ease, transform var(--reveal-duration, 780ms) ease; transition-delay: var(--reveal-delay, 0ms)}
.reveal.is-inview { opacity: 1; transform: translate3d(0, 0, 0) scale(1)}

/* Ajustes globales */
::-webkit-scrollbar { width: 7px; height: 7px}
::-webkit-scrollbar-track { border-radius: 0}
::-webkit-scrollbar-thumb { border-radius: 0; background: #162f5a}
::-webkit-scrollbar-thumb:window-inactive { background: #162f5a}
::selection { background: rgba(var(--brand-accent-rgb), 0.24)}
:focus-visible { outline-color: var(--brand-accent)}
.page-loader { position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; background: #ffffff; backdrop-filter: none; transition: opacity 260ms ease, visibility 260ms ease}
.page-loader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none}
.page-loader__inner { display: grid; justify-items: center; gap: 0}
.page-loader__ring { width: 38px; height: 38px; border: 2px solid rgba(29, 60, 113, 0.14); border-top-color: var(--brand-teal); border-radius: 50%; animation: page-loader-spin 0.8s linear infinite}
@keyframes page-loader-spin { to { transform: rotate(360deg)}}

/* =========================================================
   Contacto compartido
   ========================================================= */
.contact-meta { display: grid; gap: 0; margin-top: 0.5rem}
.contact-meta__row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 0; border-top: 1px solid var(--line)}
.contact-meta__row:last-child { border-bottom: 1px solid var(--line)}
.contact-meta__group { display: inline-flex; align-items: center; gap: 0.8rem; min-width: 0}
.contact-meta__icon { display: inline-grid; place-items: center; width: 2.55rem; height: 2.55rem; flex-shrink: 0; border-radius: 0.85rem; background: rgba(var(--brand-accent-rgb), 0.1); color: var(--brand-primary); font-size: 1rem}
.contact-meta__group > span { color: var(--brand-primary); font-family: var(--font-body); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase}
.contact-meta__row strong { color: var(--text); font-family: var(--font-body); font-size: 1rem; font-weight: 600; text-align: right}
.contact-meta__row:hover .contact-meta__icon { background: rgba(var(--brand-accent-rgb), 0.16)}
.contact-form { display: grid; gap: 1rem}
.contact-form--home { position: relative; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none}
.contact-form--home::before { content: none}
.contact-form__group { display: grid; gap: 0.55rem; margin: 0}
.contact-form .wpcf7 { position: relative; z-index: 1}
.contact-form .wpcf7 form { display: grid; gap: 1rem; margin: 0}
.contact-form .wpcf7 form > p { display: grid; gap: 0.55rem; margin: 0}
.contact-form .wpcf7-form label { display: grid; gap: 0.45rem; margin: 0; font-family: var(--font-body); font-size: 0.92rem; font-weight: 600; color: var(--institutional-blue)}
.contact-form .wpcf7-form-control-wrap { display: block}
.contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-acceptance) { width: 100%; min-height: 52px; padding: 0.9rem 1rem; border: 1px solid rgba(29, 60, 113, 0.16); border-radius: var(--radius-small); background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 248, 252, 1)); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 8px 22px rgba(27, 46, 81, 0.05); color: var(--text); font-family: var(--font-body); font-size: 1rem; line-height: 1.5; transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease}
.contact-form textarea.wpcf7-form-control { min-height: 150px; resize: vertical}
.contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-acceptance):focus { outline: 0; border-color: var(--brand-accent); box-shadow: 0 0 0 4px var(--hover-glow), 0 12px 28px rgba(27, 46, 81, 0.1)}
.contact-form .wpcf7-form-control.wpcf7-not-valid, .contact-form .wpcf7-form-control[aria-invalid="true"] { border-color: rgba(150, 88, 98, 0.34); background: linear-gradient(180deg, rgba(255, 250, 250, 0.98), rgba(250, 244, 245, 1)); box-shadow: 0 0 0 4px rgba(150, 88, 98, 0.08), 0 10px 22px rgba(27, 46, 81, 0.06)}
.contact-form .wpcf7-submit { display: inline-block; min-height: 60px; padding: 0 3.35rem 0 24px; border: 1px solid transparent; border-radius: 3px; background-color: var(--brand-accent); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 3l4.5 5L6 13' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"), linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-accent-strong) 100%); background-repeat: no-repeat, no-repeat; background-position: right 1.05rem center, center; background-size: 1rem 1rem, cover; color: #fff; font-family: var(--font-body); font-size: 1.1rem; font-weight: 600; letter-spacing: 0.02em; text-transform: none; box-shadow: none; transition: background 220ms ease, color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease; cursor: pointer}
.contact-form .wpcf7-submit:hover, .contact-form .wpcf7-submit:focus-visible { background-color: var(--brand-accent-hover); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 3l4.5 5L6 13' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"), linear-gradient(135deg, var(--brand-accent-hover) 0%, var(--brand-accent-strong) 100%); color: #fff; transform: translateY(-1px); box-shadow: var(--btn-shadow-hover)}
.contact-form .wpcf7-submit:focus-visible { outline: 0; box-shadow: 0 0 0 3px var(--hover-ring), var(--btn-shadow-hover)}
.contact-form .wpcf7-submit:active { transform: translateY(0); background-color: var(--brand-accent-active); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6 3l4.5 5L6 13' stroke='%23ffffff' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"), linear-gradient(135deg, var(--brand-accent-active) 0%, var(--brand-accent-active-strong) 100%); box-shadow: var(--btn-shadow-active)}
.contact-form .wpcf7-spinner { margin: 0 0 0 0.6rem; vertical-align: middle}
.contact-form .wpcf7-not-valid-tip { margin-top: 0.35rem; padding: 0; border: 0; border-radius: 0; background: transparent; color: rgba(150, 88, 98, 0.96); font-size: 0.8rem; font-weight: 600; line-height: 1.42}
.contact-form .wpcf7 form .wpcf7-response-output { margin: 0.4rem 0 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--text); font-size: 0.92rem; line-height: 1.5}
.contact-form .wpcf7 form .wpcf7-response-output.wpcf7-validation-errors, .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-acceptance-missing, .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-spam-blocked, .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-mail-sent-ng, .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-aborted { color: rgba(150, 88, 98, 0.96)}
.contact-form .wpcf7 form .wpcf7-response-output.wpcf7-mail-sent-ok { color: var(--brand-accent)}
html[data-theme="dark"] .contact-meta__group > span { color: var(--brand-teal)}
html[data-theme="dark"] .contact-meta__row:hover .contact-meta__icon { background: var(--brand-accent); border-color: var(--brand-accent); box-shadow: 0 12px 22px rgba(0, 0, 0, 0.22); opacity: 1}
html[data-theme="dark"] .contact-form .wpcf7-form label { color: rgba(244, 246, 246, 0.92)}
html[data-theme="dark"] .contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-acceptance) { border-color: rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.04); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04), 0 10px 24px rgba(0, 0, 0, 0.16); color: rgba(244, 246, 246, 0.94)}
html[data-theme="dark"] .contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-acceptance):focus { box-shadow: 0 0 0 4px var(--hover-ring), 0 14px 28px rgba(0, 0, 0, 0.24)}
html[data-theme="dark"] .contact-form .wpcf7-form-control.wpcf7-not-valid, html[data-theme="dark"] .contact-form .wpcf7-form-control[aria-invalid="true"] { border-color: rgba(198, 117, 128, 0.34); background: rgba(255, 255, 255, 0.04); box-shadow: 0 0 0 4px rgba(198, 117, 128, 0.09), 0 10px 24px rgba(0, 0, 0, 0.16)}
html[data-theme="dark"] .contact-form .wpcf7-not-valid-tip { border: 0; background: transparent; color: rgba(244, 214, 218, 0.96)}
html[data-theme="dark"] .contact-form .wpcf7 form .wpcf7-response-output { border: 0; background: transparent; color: rgba(244, 246, 246, 0.92)}
html[data-theme="dark"] .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-validation-errors, html[data-theme="dark"] .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-acceptance-missing, html[data-theme="dark"] .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-spam-blocked, html[data-theme="dark"] .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-mail-sent-ng, html[data-theme="dark"] .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-aborted { color: rgba(244, 214, 218, 0.96)}
html[data-theme="dark"] .contact-form .wpcf7 form .wpcf7-response-output.wpcf7-mail-sent-ok { color: var(--brand-accent-hover)}
@media (max-width: 767px) { .contact-meta__row { flex-direction: column; align-items: flex-start} .contact-meta__row strong { text-align: left}}
html[data-theme="dark"] .page-loader { background: var(--bg)}
html[data-theme="dark"] .page-loader__ring { border-color: rgba(255, 255, 255, 0.12); border-top-color: var(--brand-teal)}
html[data-theme="dark"] .site-header, html[data-theme="dark"] .site-header-sticky { background: var(--header-surface-strong); border-bottom-color: var(--header-border); box-shadow: 0 14px 32px rgba(0, 0, 0, 0.22)}
html[data-theme="dark"] .site-header-sticky { border-bottom: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 18px 38px rgba(0, 0, 0, 0.42)}
html[data-theme="dark"] .site-header::after { opacity: 0.84}
html[data-theme="dark"] .site-menu > .current-menu-item > a, html[data-theme="dark"] .site-menu > .current-menu-parent > a, html[data-theme="dark"] .site-menu > .current-menu-ancestor > a, html[data-theme="dark"] .site-menu > .menu-item-has-children.current-menu-parent > a, html[data-theme="dark"] .site-menu > .menu-item-has-children.current-menu-ancestor > a, html[data-theme="dark"] .site-menu > .menu-item-has-children.current-page-parent > a, html[data-theme="dark"] .site-menu > .menu-item-has-children.current-page-ancestor > a, html[data-theme="dark"] .site-menu > li > a:hover { color: var(--interactive-hover-text)}

/* =========================================================
   Ajustes responsive
   ========================================================= */
@media (max-width: 1199px) { .highlights-layout { grid-template-columns: 1fr} :root { --header-height: 128px; --header-height-compact: 74px} .header-wordmark__line--bold { font-size: clamp(0.96rem, 0.86rem + 0.2vw, 1.08rem)} .header-wordmark__line--black { font-size: clamp(1.56rem, 1.28rem + 0.62vw, 1.92rem)} .institutional-menu { gap: 0.9rem} .institutional-link { font-size: 0.68rem} .site-menu { gap: 0.3rem} .site-header-main { grid-template-columns: minmax(220px, max-content) minmax(0, 1fr) auto; min-height: 90px; padding: 0.46rem 0 0.38rem} .site-nav__menu--header .site-menu { gap: 0.08rem} .site-menu a { min-height: 44px; padding-inline: 0.78rem; font-size: 0.88rem; letter-spacing: 0.02em} .header-logo img { height: 76px}}
@media (max-width: 991px) { :root { --header-height: 96px; --header-height-compact: 78px} .wrapper { width: min(100% - 3rem, var(--wrapper-max))} .header-logo { max-width: 98px} .site-header-main { min-height: 86px; padding: 0.45rem 0; grid-template-columns: minmax(0, 1fr) auto} .site-nav__right--mobile { min-width: max-content; width: auto; margin-left: 0; justify-self: end} .header-logo img { height: 74px}}
@media (max-width: 767px) { .section-shell { padding: 4rem 0} .site-nav { grid-template-columns: minmax(0, 1fr) auto; gap: 8px} .site-nav__brand { gap: 10px} .site-nav__right--mobile { width: auto; min-width: max-content; gap: 0.55rem; justify-self: end} .header-wordmark--mobile .header-wordmark__line--bold { font-size: clamp(0.72rem, 2.9vw, 0.88rem)} .header-wordmark--mobile .header-wordmark__line--black { font-size: clamp(1.24rem, 5vw, 1.45rem)} .overview-note { max-width: none} .header-wordmark__line--bold { font-size: clamp(1rem, 0.9rem + 0.25vw, 1.12rem)} .header-wordmark__line--black { font-size: clamp(1.55rem, 1.32rem + 0.52vw, 1.88rem)} .header-logo img { height: 66px} .display-title { font-size: clamp(2.8rem, 11.4vw, 4.3rem)} .hero-line--small { font-size: clamp(1.34rem, 5vw, 1.9rem)} .footer > .wrapper { padding-top: 2rem; padding-bottom: 2rem} .footer .icons a { width: 42px; height: 42px; font-size: 1rem} .footer .footer-brand-image { display: block; margin-inline: auto}}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto} *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important} .reveal { opacity: 1; transform: none; filter: none}}
/* =========================================================
   404
   ========================================================= */
.error-page { display: grid; place-items: center; text-align: center; min-height: 50vh; padding: 2rem 0}
.error-page__code { margin: 0; font-family: var(--font-display); font-weight: 900; font-size: clamp(6rem, 16vw, 12rem); line-height: 0.85; letter-spacing: -0.04em; text-transform: uppercase; background: linear-gradient(135deg, var(--brand-primary), var(--brand-indigo)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text}
.error-page__message { margin: 0.5rem 0 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(1.4rem, 2.5vw, 2rem); text-transform: uppercase; color: var(--text)}
.error-page__description { margin: 1rem 0 2rem; max-width: 44ch; font-size: 1.05rem; color: var(--text-soft)}

.error-hero { position: relative; padding: clamp(3.5rem, 5vw, 5rem) 0; background: linear-gradient(90deg, rgb(25 162 184) 0%, rgb(29 60 113) 100%); color: #fff; overflow: hidden; box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.08)}
.error-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0) 36%), linear-gradient(180deg, rgba(9, 16, 58, 0.08) 0%, rgba(9, 16, 58, 0.18) 100%); pointer-events: none}
.error-hero .wrapper { position: relative; z-index: 1; display: grid; place-items: center; text-align: center; gap: 0.8rem}
.error-hero__code { margin: 0; font-family: var(--font-display); font-weight: 900; font-size: clamp(5rem, 14vw, 10rem); line-height: 0.85; letter-spacing: -0.04em; text-transform: uppercase; color: rgba(255, 255, 255, 0.15)}
.error-hero__title { margin: 0; font-family: var(--font-display); font-weight: 900; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 0.96; text-transform: uppercase}
.error-hero__subtitle { margin: 0; max-width: 48ch; font-size: clamp(1rem, 1.6vw, 1.14rem); color: rgba(255, 255, 255, 0.82)}
html[data-theme="dark"] .error-hero { background: linear-gradient(90deg, rgba(18, 74, 101, 0.98) 0%, rgba(18, 43, 82, 0.98) 100%)}
html[data-theme="dark"] .news-card { border: 1px solid var(--border-subtle); background: rgba(16, 28, 48, 0.96)}
html[data-theme="dark"] .news-card__meta-divider { background: rgba(255, 255, 255, 0.18)}
html[data-theme="dark"] .news-card:hover { border-color: var(--card-hover-border)}
html[data-theme="dark"] .news-card__title a:hover { color: var(--brand-teal)}

html[data-theme="dark"] .page-body h2 { color: var(--brand-teal)}
html[data-theme="dark"] .page-body blockquote { background: rgba(255, 255, 255, 0.03); border-left-color: var(--brand-teal)}
html[data-theme="dark"] .section-eyebrow { color: rgba(255, 255, 255, 0.82)}
html[data-theme="dark"] .section-eyebrow::before { background: var(--brand-accent); box-shadow: 0 0 0 3px var(--hover-ring)}
html[data-theme="dark"] .btn-accent-brand { --btn-bg: linear-gradient(135deg, var(--brand-accent) 0%, var(--brand-accent-strong) 100%); --btn-bg-hover: linear-gradient(135deg, var(--brand-accent-hover) 0%, var(--brand-accent-strong) 100%)}
html[data-theme="dark"] ::-webkit-scrollbar-thumb { background: rgba(var(--brand-accent-rgb), 0.32)}
html[data-theme="dark"] ::-webkit-scrollbar-thumb:window-inactive { background: rgba(var(--brand-accent-rgb), 0.18)}
