:root {
	--cd-navy: #1b2a6b;
	--cd-navy-dark: #121c4a;
	--cd-cyan: #17a3dc;
	--cd-cyan-dark: #0f86b8;
	--cd-ink: #1f2430;
	--cd-slate: #5b6472;
	--cd-line: #dde2ea;
	--cd-surface: #f4f6fa;
	--cd-white: #ffffff;
	--bs-primary: #1b2a6b;
	--bs-primary-rgb: 27, 42, 107;
	--bs-link-color: #1b2a6b;
	--bs-link-hover-color: #17a3dc;
	--bs-body-font-family: "Manrope", "Segoe UI", Arial, sans-serif;
	--bs-body-color: #1f2430;
	--bs-body-line-height: 1.65;
}

html { scroll-behavior: smooth; }
body { font-family: "Manrope", "Segoe UI", Arial, sans-serif; color: var(--cd-ink); background: var(--cd-white); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; letter-spacing: -0.01em; color: var(--cd-ink); line-height: 1.2; }
a { color: var(--cd-navy); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--cd-cyan); }
img { max-width: 100%; height: auto; }
.clearfix:after { content: ""; display: table; clear: both; }
.skip-link { position: absolute; left: 8px; top: 8px; z-index: 2000; background: var(--cd-navy); color: #fff; padding: 8px 14px; border-radius: 4px; }
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.btn { font-weight: 600; border-radius: 4px; padding: 0.7rem 1.4rem; }
.btn-primary { background: var(--cd-navy); border-color: var(--cd-navy); }
.btn-primary:hover, .btn-primary:focus { background: var(--cd-cyan); border-color: var(--cd-cyan); }
.btn-outline-primary { color: var(--cd-navy); border-color: var(--cd-navy); }
.btn-outline-primary:hover { background: var(--cd-navy); border-color: var(--cd-navy); }
.btn-lg { padding: 0.9rem 2rem; }
.form-control { border-radius: 4px; border-color: var(--cd-line); padding: 0.7rem 0.9rem; }
.form-control:focus { border-color: var(--cd-cyan); box-shadow: 0 0 0 3px rgba(23, 163, 220, 0.2); }
.form-label { font-weight: 600; font-size: 0.9rem; }
.req { color: #c8322b; }

.topbar { background: var(--cd-navy-dark); color: #b9c2e0; font-size: 0.82rem; padding: 6px 0; }
.topbar a { color: #b9c2e0; margin-right: 22px; }
.topbar a:hover { color: #fff; }
.topbar .bi { margin-right: 5px; color: var(--cd-cyan); }
.topbar-social a { margin: 0 0 0 14px; font-size: 0.95rem; }

.site-nav { background: var(--cd-white); border-bottom: 1px solid var(--cd-line); padding: 12px 0; }
.site-logo { height: 58px; width: auto; }
.site-logo-text { font-weight: 800; font-size: 1.5rem; color: var(--cd-navy); }
.site-nav .nav-link { color: var(--cd-ink); font-weight: 600; font-size: 0.95rem; padding: 0.6rem 0.95rem; position: relative; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: var(--cd-cyan); }
.site-nav .nav-link.active:after { content: ""; position: absolute; left: 0.95rem; right: 0.95rem; bottom: 0.15rem; height: 2px; background: var(--cd-cyan); }
.site-nav .dropdown-menu { border: 0; border-top: 3px solid var(--cd-cyan); border-radius: 0 0 6px 6px; box-shadow: 0 12px 30px rgba(18, 28, 74, 0.14); padding: 8px 0; }
.site-nav .dropdown-item { padding: 8px 20px; font-weight: 500; font-size: 0.92rem; }
.site-nav .dropdown-item:hover, .site-nav .dropdown-item.active { background: var(--cd-surface); color: var(--cd-cyan); }
.navbar-toggler { border-color: var(--cd-line); }

.home-hero { position: relative; background: var(--cd-navy-dark); }
.hero-slide { position: relative; min-height: 560px; background-size: cover; background-position: center; }
.hero-slide-overlay { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: linear-gradient(90deg, rgba(18, 28, 74, 0.92) 0%, rgba(18, 28, 74, 0.55) 55%, rgba(18, 28, 74, 0.15) 100%); }
.hero-slide-inner { position: relative; z-index: 2; padding: 150px 12px 120px; }
.hero-slide-title { color: #fff; font-size: 2.9rem; font-weight: 800; line-height: 1.12; margin-bottom: 1rem; text-shadow: 0 2px 12px rgba(0, 0, 0, 0.25); }
.hero-slide-text { color: #d5dcf2; font-size: 1.15rem; max-width: 560px; margin-bottom: 1.6rem; }
.btn-hero { background: var(--cd-cyan); color: #fff; border: 0; padding: 0.85rem 1.8rem; font-weight: 700; }
.btn-hero:hover { background: #fff; color: var(--cd-navy); }
.home-hero .carousel-indicators { margin-bottom: 1.4rem; }
.home-hero .carousel-indicators button { width: 34px; height: 4px; border-radius: 2px; background: rgba(255, 255, 255, 0.5); border: 0; margin: 0 4px; }
.home-hero .carousel-indicators .active { background: var(--cd-cyan); }
.home-hero .carousel-control-prev, .home-hero .carousel-control-next { width: 70px; opacity: 0.6; }
.home-hero-empty .hero-slide-inner { padding: 110px 12px 90px; }

.home-cifras { background: var(--cd-navy); color: #fff; padding: 34px 0; }
.cifras-title { color: #fff; font-size: 1.25rem; font-weight: 700; margin: 0; padding-right: 20px; border-right: 2px solid rgba(255, 255, 255, 0.2); }
.cifra { padding: 8px 12px; }
.cifra-num { display: block; font-size: 2.2rem; font-weight: 800; color: var(--cd-cyan); line-height: 1.1; }
.cifra-label { display: block; font-size: 0.85rem; color: #c3cbe8; margin-top: 2px; }

.home-cita { padding: 70px 0 60px; }
.cita-foto { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; margin-bottom: 20px; border: 3px solid var(--cd-surface); }
.cita-texto { font-size: 1.3rem; font-weight: 500; color: var(--cd-ink); line-height: 1.5; margin: 0 0 16px; position: relative; padding-top: 6px; }
.cita-texto:before { content: "\201C"; display: block; font-size: 3.5rem; line-height: 0.6; color: var(--cd-cyan); font-weight: 800; margin-bottom: 14px; }
.cita-autor { color: var(--cd-slate); font-size: 0.9rem; margin: 0; }
.cita-autor strong { color: var(--cd-navy); display: block; font-size: 0.95rem; }

.section { padding: 80px 0; }
.section-alt { background: var(--cd-surface); }
.section-title { font-size: 2rem; font-weight: 800; margin-bottom: 1rem; position: relative; padding-bottom: 14px; }
.section-title:after { content: ""; display: block; width: 46px; height: 4px; background: var(--cd-cyan); margin-top: 14px; }
.section-title.text-center:after { margin-left: auto; margin-right: auto; }
.section-lead { color: var(--cd-slate); font-size: 1.05rem; max-width: 620px; margin-bottom: 2.2rem; }
.section-intro { font-size: 1.25rem; font-weight: 600; color: var(--cd-navy); line-height: 1.5; text-align: center; margin-bottom: 3rem; }
.section-action { padding-top: 12px; margin-bottom: 2.2rem; }
.link-more { font-weight: 700; font-size: 0.92rem; color: var(--cd-navy); }
.link-more:after { content: ""; display: inline-block; width: 6px; height: 6px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); margin-left: 8px; vertical-align: 1px; }
.link-more:hover { color: var(--cd-cyan); }
.img-placeholder { display: block; width: 100%; padding-top: 62%; background: var(--cd-surface); position: relative; }
.img-placeholder .bi { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 2rem; color: #b6bfd0; }

.posicion, .noticia, .programa { background: #fff; border: 1px solid var(--cd-line); border-radius: 6px; overflow: hidden; height: 100%; transition: box-shadow 0.25s, border-color 0.25s; }
.posicion:hover, .noticia:hover, .programa:hover { box-shadow: 0 14px 32px rgba(18, 28, 74, 0.1); border-color: transparent; }
.posicion-img, .noticia-img, .programa-img { display: block; overflow: hidden; }
.posicion-img img, .noticia-img img, .programa-img img { width: 100%; height: auto; display: block; }
.posicion-body, .noticia-body, .programa-body { padding: 22px 24px 26px; }
.posicion-date, .noticia-meta { display: block; font-size: 0.8rem; color: var(--cd-slate); font-weight: 600; margin-bottom: 8px; }
.posicion-title, .noticia-title, .programa-title { font-size: 1.15rem; font-weight: 700; line-height: 1.35; margin-bottom: 14px; }
.posicion-title a, .noticia-title a { color: var(--cd-ink); }
.posicion-title a:hover, .noticia-title a:hover { color: var(--cd-cyan); }

.noticia-medio { color: var(--cd-cyan); text-transform: none; }
.noticia-medio:after { content: "\00B7"; margin: 0 6px; color: var(--cd-line); }
.noticia-fecha { color: var(--cd-slate); }
.noticia-excerpt { font-size: 0.92rem; color: var(--cd-slate); margin-bottom: 14px; }
.noticia-link { font-weight: 700; font-size: 0.88rem; }
.noticia-link .bi { font-size: 0.78rem; margin-left: 3px; }

.publicacion { display: block; background: #fff; border: 1px solid var(--cd-line); border-radius: 6px; padding: 24px 22px; height: 100%; color: var(--cd-ink); border-left: 4px solid var(--cd-navy); transition: border-color 0.2s, box-shadow 0.2s; }
.publicacion:hover { border-left-color: var(--cd-cyan); box-shadow: 0 12px 28px rgba(18, 28, 74, 0.1); color: var(--cd-ink); }
.publicacion-icon { display: block; font-size: 1.6rem; color: var(--cd-cyan); margin-bottom: 10px; }
.publicacion-title { display: block; font-weight: 700; line-height: 1.35; margin-bottom: 6px; }
.publicacion-desc { display: block; font-size: 0.85rem; color: var(--cd-slate); margin-bottom: 10px; }
.publicacion-cta { display: block; font-size: 0.82rem; font-weight: 700; color: var(--cd-navy); }

.video-main { position: relative; border-radius: 6px; overflow: hidden; background: #000; margin-bottom: 16px; }
.video-main img { width: 100%; display: block; opacity: 0.85; }
.video-main iframe { width: 100%; aspect-ratio: 16 / 9; display: block; border: 0; }
.video-play { position: absolute; left: 50%; top: 50%; width: 72px; height: 72px; margin: -36px 0 0 -36px; border-radius: 50%; border: 0; background: var(--cd-cyan); color: #fff; font-size: 2.2rem; line-height: 72px; text-align: center; cursor: pointer; transition: transform 0.2s, background 0.2s; }
.video-play:hover { background: #fff; color: var(--cd-navy); transform: scale(1.06); }
.video-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 18px; background: linear-gradient(0deg, rgba(18, 28, 74, 0.9), rgba(18, 28, 74, 0)); color: #fff; font-weight: 600; }
.video-thumb { display: block; position: relative; color: var(--cd-ink); }
.video-thumb img { width: 100%; border-radius: 4px; display: block; }
.video-thumb-play { position: absolute; left: 50%; top: 32px; width: 34px; height: 34px; margin-left: -17px; border-radius: 50%; background: var(--cd-cyan); color: #fff; text-align: center; line-height: 34px; font-size: 1.1rem; }
.video-thumb-title { display: block; font-size: 0.8rem; font-weight: 600; margin-top: 8px; line-height: 1.3; }

.opinion { background: #fff; border: 1px solid var(--cd-line); border-radius: 6px; padding: 26px 24px; height: 100%; }
.opinion-author { position: relative; padding-left: 70px; min-height: 56px; margin-bottom: 18px; }
.opinion-photo { position: absolute; left: 0; top: 0; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.opinion-photo-empty { background: var(--cd-surface); color: #b6bfd0; text-align: center; line-height: 56px; font-size: 1.5rem; }
.opinion-name { display: block; font-weight: 700; padding-top: 6px; }
.opinion-medio { display: block; font-size: 0.82rem; color: var(--cd-slate); }
.opinion-title { font-size: 1.1rem; line-height: 1.4; margin-bottom: 12px; }
.opinion-title a { color: var(--cd-ink); }
.opinion-title a:hover { color: var(--cd-cyan); }
.opinion-mail { font-size: 0.85rem; color: var(--cd-navy); }

.home-suscripcion { background: var(--cd-navy); background-image: linear-gradient(120deg, var(--cd-navy-dark), var(--cd-navy) 60%, var(--cd-cyan-dark)); padding: 80px 0; color: #fff; }
.suscripcion-title { color: #fff; font-size: 2rem; font-weight: 800; }
.suscripcion-text { color: #c9d2ee; margin-bottom: 28px; }
.suscripcion-form { position: relative; max-width: 520px; margin: 0 auto; }
.suscripcion-input { width: 100%; border: 0; border-radius: 40px; padding: 15px 160px 15px 24px; font-size: 1rem; }
.suscripcion-btn { position: absolute; right: 5px; top: 5px; bottom: 5px; border: 0; border-radius: 40px; background: var(--cd-cyan); color: #fff; font-weight: 700; padding: 0 26px; }
.suscripcion-btn:hover { background: var(--cd-ink); }

.page-hero { position: relative; background: var(--cd-navy-dark); background-size: cover; background-position: center; color: #fff; }
.page-hero-overlay { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: linear-gradient(90deg, rgba(18, 28, 74, 0.96) 0%, rgba(18, 28, 74, 0.75) 60%, rgba(18, 28, 74, 0.45) 100%); }
.page-hero:not(.has-bg) .page-hero-overlay { background: linear-gradient(120deg, var(--cd-navy-dark) 0%, var(--cd-navy) 70%, #1e3a8a 100%); }
.page-hero:before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 8px; background: var(--cd-cyan); z-index: 2; }
.page-hero-inner { position: relative; z-index: 2; padding: 90px 12px 80px; }
.page-hero-small .page-hero-inner { padding: 60px 12px 54px; }
.page-hero-eyebrow { color: var(--cd-cyan); font-weight: 700; font-size: 0.9rem; margin-bottom: 8px; }
.page-hero-title { color: #fff; font-size: 2.6rem; font-weight: 800; margin: 0; }
.page-hero-sub { color: #c9d2ee; font-size: 1.1rem; max-width: 640px; margin: 14px 0 0; }

.entry-content { font-size: 1.05rem; }
.entry-content p { margin-bottom: 1.2rem; }
.entry-content h2 { font-size: 1.7rem; margin: 2rem 0 1rem; }
.entry-content h3 { font-size: 1.3rem; margin: 1.6rem 0 0.8rem; }
.entry-content ul, .entry-content ol { padding-left: 1.3rem; margin-bottom: 1.2rem; }
.entry-content li { margin-bottom: 0.4rem; }
.entry-content blockquote { border-left: 4px solid var(--cd-cyan); padding: 10px 22px; margin: 1.5rem 0; color: var(--cd-slate); font-size: 1.1rem; }
.entry-content img { border-radius: 6px; }
.entry-content .wp-block-image figcaption { font-size: 0.85rem; color: var(--cd-slate); }
.single-content .wp-block-image { margin: 1.5rem 0; }
.single-nav { border-top: 1px solid var(--cd-line); margin-top: 3rem; padding-top: 1.5rem; font-weight: 600; font-size: 0.92rem; }

.about-img img { width: 100%; border-radius: 8px; box-shadow: 0 20px 40px rgba(18, 28, 74, 0.15); }
.about-mark { background: var(--cd-navy); border-radius: 8px; padding: 70px 40px; color: #fff; position: relative; overflow: hidden; }
.about-mark:before { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; background: var(--cd-cyan); transform: rotate(45deg); opacity: 0.35; }
.about-mark-big { display: block; font-size: 3.2rem; font-weight: 800; letter-spacing: 0.02em; position: relative; }
.about-mark-small { display: block; color: #c9d2ee; font-size: 0.95rem; max-width: 300px; position: relative; }

.bloque { background: #fff; border: 1px solid var(--cd-line); border-radius: 6px; padding: 30px 28px; height: 100%; position: relative; }
.bloque-icon { display: inline-block; width: 52px; height: 52px; border-radius: 6px; background: var(--cd-surface); color: var(--cd-cyan); text-align: center; line-height: 52px; font-size: 1.5rem; margin-bottom: 18px; }
.bloque-title { font-size: 1.2rem; margin-bottom: 10px; }
.bloque p { color: var(--cd-slate); margin-bottom: 12px; }
.bloque-link { font-weight: 700; font-size: 0.9rem; }

.directorio { margin-top: 1rem; }
.directivo { background: #fff; border: 1px solid var(--cd-line); border-radius: 6px; overflow: hidden; height: 100%; text-align: center; }
.directivo-photo { background: var(--cd-surface); }
.directivo-photo img { width: 100%; display: block; aspect-ratio: 6 / 7; object-fit: cover; }
.directivo-placeholder { display: block; padding-top: 85%; position: relative; }
.directivo-placeholder .bi { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 3.5rem; color: #b6bfd0; }
.directivo-body { padding: 20px 18px 22px; position: relative; }
.directivo-name { font-size: 1.1rem; font-weight: 700; margin-bottom: 4px; }
.directivo-role { color: var(--cd-cyan); font-weight: 700; font-size: 0.88rem; margin: 0; }
.directivo-org { color: var(--cd-slate); font-size: 0.85rem; margin: 4px 0 0; }
.directivo-link { display: inline-block; margin-top: 10px; font-size: 1.1rem; }

.beneficios { list-style: none; padding: 0; margin: 0 auto; max-width: 900px; }
.beneficio { position: relative; padding: 28px 24px 28px 150px; border-bottom: 1px solid var(--cd-line); min-height: 100px; }
.beneficio:last-child { border-bottom: 0; }
.beneficio-num { position: absolute; left: 0; top: 30px; font-size: 0.85rem; font-weight: 800; color: var(--cd-cyan); }
.beneficio-icon { position: absolute; left: 46px; top: 24px; width: 54px; height: 54px; border-radius: 6px; background: var(--cd-navy); color: #fff; text-align: center; line-height: 54px; font-size: 1.4rem; }
.beneficio-title { font-size: 1.2rem; margin-bottom: 6px; }
.beneficio p { color: var(--cd-slate); margin: 0; }
.cta-wrap { margin-top: 3rem; }

.mesas { list-style: none; padding: 0; margin: 0; }
.mesa { float: left; width: 50%; padding: 18px 20px 18px 66px; position: relative; border: 1px solid var(--cd-line); margin: 0 0 -1px -1px; font-weight: 700; min-height: 70px; background: #fff; }
.mesa .bi { position: absolute; left: 20px; top: 50%; margin-top: -16px; width: 32px; height: 32px; border-radius: 4px; background: var(--cd-surface); color: var(--cd-cyan); text-align: center; line-height: 32px; }
.mesas:after { content: ""; display: table; clear: both; }

.programa-tag { display: inline-block; font-size: 0.75rem; font-weight: 700; color: var(--cd-cyan); border: 1px solid var(--cd-cyan); border-radius: 30px; padding: 2px 10px; margin-bottom: 10px; }
.programa p { color: var(--cd-slate); font-size: 0.95rem; }

.contacto-datos .dato { text-align: center; padding: 30px 20px; border: 1px solid var(--cd-line); border-radius: 6px; height: 100%; }
.dato-icon { display: inline-block; width: 56px; height: 56px; border-radius: 50%; background: var(--cd-surface); color: var(--cd-cyan); line-height: 56px; font-size: 1.4rem; margin-bottom: 14px; }
.dato-title { font-size: 1.05rem; margin-bottom: 6px; }
.dato p { margin: 0; color: var(--cd-slate); }
.contacto-form { background: #fff; border: 1px solid var(--cd-line); border-radius: 6px; padding: 30px; }
.mapa { height: 320px; border-radius: 6px; overflow: hidden; background: var(--cd-surface); }
.mapa iframe { width: 100%; height: 100%; }
.mapa-empty { text-align: center; padding: 100px 30px 0; color: var(--cd-slate); }
.mapa-empty .bi { display: block; font-size: 2.5rem; color: #b6bfd0; margin-bottom: 8px; }
.horario { margin-top: 26px; }
.contacto-social a, .footer-social a { display: inline-block; width: 40px; height: 40px; border-radius: 50%; text-align: center; line-height: 40px; margin-right: 8px; }
.contacto-social a { background: var(--cd-navy); color: #fff; }
.contacto-social a:hover { background: var(--cd-cyan); }

.pagination-wrap { margin-top: 3rem; text-align: center; }
.pagination-wrap .nav-links { display: inline-block; }
.pagination-wrap .page-numbers { display: inline-block; padding: 8px 14px; border: 1px solid var(--cd-line); border-radius: 4px; margin: 0 3px; font-weight: 600; font-size: 0.9rem; }
.pagination-wrap .page-numbers.current { background: var(--cd-navy); color: #fff; border-color: var(--cd-navy); }

.site-footer { background: var(--cd-navy-dark); color: #b9c2e0; padding: 70px 0 0; font-size: 0.95rem; }
.footer-logo { height: 54px; width: auto; margin-bottom: 20px; filter: brightness(0) invert(1); }
.footer-about { max-width: 420px; margin-bottom: 22px; }
.footer-title { color: #fff; font-size: 1rem; font-weight: 800; margin-bottom: 18px; }
.footer-contact { list-style: none; padding: 0; margin: 0; }
.footer-contact li { position: relative; padding-left: 30px; margin-bottom: 12px; }
.footer-contact .bi { position: absolute; left: 0; top: 3px; color: var(--cd-cyan); }
.footer-contact a, .site-footer a { color: #b9c2e0; }
.site-footer a:hover { color: #fff; }
.footer-social a { background: rgba(255, 255, 255, 0.08); color: #fff; }
.footer-social a:hover { background: var(--cd-cyan); }
.footer-menu { list-style: none; padding: 0; margin: 0; }
.footer-menu li { margin-bottom: 8px; }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.1); margin-top: 50px; padding: 20px 0; font-size: 0.85rem; }

.whatsapp-btn { position: fixed; right: 22px; bottom: 22px; width: 56px; height: 56px; border-radius: 50%; background: #25d366; color: #fff; text-align: center; line-height: 56px; font-size: 1.7rem; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25); z-index: 900; }
.whatsapp-btn:hover { color: #fff; background: #1ebe5a; }

@media (max-width: 991.98px) {
	.site-nav .navbar-nav { padding: 10px 0; }
	.site-nav .nav-link.active:after { display: none; }
	.site-nav .dropdown-menu { box-shadow: none; border-top: 0; padding-left: 14px; }
	.hero-slide { min-height: 460px; }
	.hero-slide-inner { padding: 100px 12px 90px; }
	.hero-slide-title { font-size: 2.2rem; }
	.cifras-title { border-right: 0; margin-bottom: 16px; }
	.section { padding: 60px 0; }
	.section-title { font-size: 1.7rem; }
	.section-action { text-align: left; padding-top: 0; }
	.page-hero-title { font-size: 2rem; }
	.page-hero-inner { padding: 60px 12px 54px; }
	.about-mark { margin-bottom: 10px; }
}
@media (max-width: 767.98px) {
	.hero-slide { min-height: 400px; }
	.hero-slide-inner { padding: 80px 12px 80px; }
	.hero-slide-title { font-size: 1.7rem; }
	.hero-slide-text { font-size: 1rem; }
	.home-hero .carousel-control-prev, .home-hero .carousel-control-next { display: none; }
	.cifra-num { font-size: 1.7rem; }
	.mesa { float: none; width: 100%; margin-left: 0; }
	.beneficio { padding-left: 90px; }
	.beneficio-num { display: none; }
	.beneficio-icon { left: 0; }
	.suscripcion-input { padding-right: 24px; margin-bottom: 10px; }
	.suscripcion-btn { position: static; display: block; width: 100%; padding: 13px; }
	.contacto-form { padding: 20px; }
	.mapa { margin-top: 10px; }
	.whatsapp-btn { right: 14px; bottom: 14px; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.carousel-fade .carousel-item { transition: none; }
	.video-play, .posicion, .noticia, .programa, a { transition: none; }
}
.home-hero-empty .hero-slide { background-image: linear-gradient(120deg, var(--cd-navy-dark), var(--cd-navy) 65%, #1e3a8a); min-height: 0; }
.home-hero-empty .hero-slide-overlay { display: none; }
.home-hero-empty .hero-slide-inner { padding: 110px 12px 100px; }
.btn-hero-alt { margin-left: 10px; padding: 0.85rem 1.8rem; font-weight: 700; border-width: 2px; }

/* =========================================================
   CODESSD — Refinamiento institucional 1.1
   Lenguaje visual: sobrio, editorial y corporativo.
   ========================================================= */
:root {
	--cd-navy: #183478;
	--cd-navy-deep: #0d214f;
	--cd-navy-dark: #081a42;
	--cd-cyan: #19a7d8;
	--cd-cyan-soft: #e8f7fc;
	--cd-ink: #172033;
	--cd-slate: #657084;
	--cd-muted: #8b95a6;
	--cd-line: #e5eaf1;
	--cd-surface: #f6f8fb;
	--cd-surface-2: #eef3f8;
	--cd-white: #ffffff;
	--cd-shadow-sm: 0 8px 24px rgba(13, 33, 79, .06);
	--cd-shadow-md: 0 18px 45px rgba(13, 33, 79, .10);
	--cd-radius: 12px;
	--cd-radius-lg: 18px;
}

body {
	font-size: 16px;
	line-height: 1.7;
	background: #fff;
}

.container {
	max-width: 1220px;
}

/* Encabezado */
.site-header {
	position: relative;
	z-index: 1050;
	box-shadow: 0 1px 0 rgba(13, 33, 79, .05);
}
.topbar {
	background: var(--cd-navy-dark);
	padding: 7px 0;
	font-size: .78rem;
	letter-spacing: .01em;
}
.site-nav {
	padding: 14px 0;
	border-bottom: 0;
	box-shadow: 0 8px 30px rgba(13, 33, 79, .045);
}
.site-logo { height: 62px; }
.site-nav .nav-link {
	font-size: .89rem;
	font-weight: 700;
	letter-spacing: -.01em;
	padding: .75rem .9rem;
}
.site-nav .nav-link.active:after {
	left: .9rem;
	right: .9rem;
	bottom: .3rem;
	height: 3px;
	border-radius: 10px;
}
.site-nav .dropdown-menu {
	margin-top: 8px;
	border-radius: 10px;
	border-top-width: 2px;
	padding: 10px;
	min-width: 230px;
}
.site-nav .dropdown-item {
	border-radius: 7px;
	padding: 9px 12px;
}

/* Hero */
.home-hero {
	overflow: hidden;
}
.hero-slide {
	min-height: 585px;
	background-position: center center;
}
.hero-slide-overlay {
	background:
		linear-gradient(90deg, rgba(7, 24, 63, .94) 0%, rgba(10, 31, 78, .81) 38%, rgba(9, 29, 71, .46) 67%, rgba(9, 29, 71, .20) 100%),
		linear-gradient(0deg, rgba(4, 17, 45, .12), rgba(4, 17, 45, .12));
}
.hero-slide-inner {
	padding: 165px 12px 140px;
}
.hero-slide-inner .col-lg-8 { max-width: 820px; }
.hero-slide-title {
	font-size: clamp(2.35rem, 4.2vw, 4.35rem);
	line-height: 1.04;
	letter-spacing: -.045em;
	margin-bottom: 1.25rem;
	text-wrap: balance;
	text-shadow: 0 4px 24px rgba(0,0,0,.22);
}
.hero-slide-text {
	font-size: 1.12rem;
	line-height: 1.7;
	max-width: 680px;
	color: rgba(255,255,255,.82);
}
.btn-hero,
.btn-hero-alt {
	border-radius: 999px;
	padding: .9rem 1.65rem;
	font-size: .9rem;
	box-shadow: none;
}
.btn-hero {
	box-shadow: 0 10px 25px rgba(25,167,216,.24);
}
.home-hero .carousel-indicators {
	justify-content: flex-start;
	max-width: 1196px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 12px;
	padding-right: 12px;
	margin-bottom: 30px;
}
.home-hero .carousel-indicators button {
	width: 46px;
	height: 3px;
}
.home-hero .carousel-control-prev,
.home-hero .carousel-control-next {
	width: 6%;
}

/* Franja de cifras como pieza institucional */
.home-cifras {
	position: relative;
	z-index: 3;
	background: linear-gradient(105deg, var(--cd-navy-dark), var(--cd-navy) 66%, #164c8e);
	padding: 30px 0;
	box-shadow: 0 12px 35px rgba(13,33,79,.16);
}
.cifras-title {
	font-size: 1.05rem;
	line-height: 1.45;
	font-weight: 700;
	border-right-color: rgba(255,255,255,.16);
	max-width: 290px;
}
.cifra {
	padding: 3px 18px;
	position: relative;
}
.cifra + .cifra:before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	bottom: 8px;
	width: 1px;
	background: rgba(255,255,255,.12);
}
.cifra-num {
	font-size: 2rem;
	letter-spacing: -.04em;
	color: #4bc9ef;
}
.cifra-label {
	font-size: .78rem;
	line-height: 1.35;
	color: rgba(255,255,255,.66);
}

/* Cita */
.home-cita {
	padding: 88px 0 74px;
	background: #fff;
}
.cita-foto {
	width: 78px;
	height: 78px;
	box-shadow: 0 0 0 6px var(--cd-surface), 0 8px 22px rgba(13,33,79,.10);
	border: 0;
}
.cita-texto {
	font-size: clamp(1.12rem, 2vw, 1.45rem);
	font-weight: 500;
	line-height: 1.65;
	letter-spacing: -.015em;
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}
.cita-texto:before {
	font-size: 4rem;
	margin-bottom: 18px;
}
.cita-autor strong {
	font-size: .9rem;
	text-transform: uppercase;
	letter-spacing: .04em;
}

/* Secciones */
.section {
	padding: 96px 0;
}
.section-alt {
	background: linear-gradient(180deg, #f7f9fc 0%, #f1f5f9 100%);
	border-top: 1px solid #edf1f6;
	border-bottom: 1px solid #edf1f6;
}
.section-title {
	font-size: clamp(1.7rem, 2.4vw, 2.35rem);
	letter-spacing: -.035em;
	margin-bottom: .8rem;
	padding-bottom: 0;
}
.section-title:after {
	width: 42px;
	height: 3px;
	margin-top: 15px;
	border-radius: 5px;
}
.section-lead {
	font-size: 1rem;
	line-height: 1.75;
	margin-bottom: 2.6rem;
}
.section-action {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	padding-top: 0;
	padding-bottom: 8px;
}
.link-more {
	font-size: .82rem;
	text-transform: uppercase;
	letter-spacing: .045em;
}

/* Tarjetas editoriales */
.posicion,
.noticia,
.programa {
	border: 1px solid #e7ebf1;
	border-radius: var(--cd-radius);
	box-shadow: var(--cd-shadow-sm);
	transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.posicion:hover,
.noticia:hover,
.programa:hover {
	transform: translateY(-5px);
	box-shadow: var(--cd-shadow-md);
	border-color: rgba(25,167,216,.20);
}
.posicion-img,
.noticia-img,
.programa-img {
	aspect-ratio: 16 / 10;
	background: #eaf0f6;
}
.posicion-img img,
.noticia-img img,
.programa-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.posicion:hover .posicion-img img,
.noticia:hover .noticia-img img,
.programa:hover .programa-img img {
	transform: scale(1.035);
}
.img-placeholder {
	height: 100%;
	padding-top: 0;
	background: linear-gradient(135deg, #eff4f8, #e6ecf3);
}
.posicion-body,
.noticia-body,
.programa-body {
	padding: 25px 26px 28px;
}
.posicion-date,
.noticia-meta {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	margin-bottom: 10px;
}
.posicion-title,
.noticia-title,
.programa-title {
	font-size: 1.08rem;
	line-height: 1.48;
	letter-spacing: -.018em;
	margin-bottom: 16px;
}

/* Publicaciones */
.publicacion {
	border: 1px solid #e4eaf1;
	border-left: 0;
	border-radius: 11px;
	padding: 24px;
	box-shadow: 0 5px 18px rgba(13,33,79,.035);
	position: relative;
	overflow: hidden;
}
.publicacion:before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: var(--cd-navy);
}
.publicacion:hover {
	border-color: rgba(25,167,216,.28);
	box-shadow: var(--cd-shadow-sm);
	transform: translateY(-2px);
}
.publicacion:hover:before { background: var(--cd-cyan); }
.publicacion-icon {
	width: 42px;
	height: 42px;
	border-radius: 10px;
	background: var(--cd-cyan-soft);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2rem;
	margin-bottom: 15px;
}
.publicacion-title { font-size: .98rem; }
.publicacion-desc { line-height: 1.55; }
.publicacion-cta {
	margin-top: 12px;
	text-transform: uppercase;
	letter-spacing: .04em;
	font-size: .72rem;
}

/* Videos */
.video-main {
	border-radius: 14px;
	box-shadow: 0 16px 38px rgba(13,33,79,.16);
}
.video-main img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.video-play {
	width: 66px;
	height: 66px;
	margin: -33px 0 0 -33px;
	line-height: 66px;
	font-size: 2rem;
	box-shadow: 0 8px 24px rgba(0,0,0,.20);
}
.video-caption {
	padding: 28px 20px 18px;
	font-size: .88rem;
}
.video-thumb img {
	border-radius: 8px;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

/* Opinión */
.opinion {
	border: 1px solid #e5eaf0;
	border-radius: var(--cd-radius);
	padding: 26px;
	height: 100%;
	background: #fff;
	box-shadow: 0 5px 18px rgba(13,33,79,.035);
}
.opinion-author {
	padding-bottom: 16px;
	margin-bottom: 18px;
	border-bottom: 1px solid #edf0f4;
}
.opinion-photo {
	width: 42px;
	height: 42px;
}
.opinion-name { font-size: .82rem; font-weight: 800; }
.opinion-medio { font-size: .72rem; color: var(--cd-muted); }
.opinion-title {
	font-size: 1.05rem;
	line-height: 1.5;
	letter-spacing: -.015em;
}
.opinion-mail { font-size: .75rem; }

/* Suscripción */
.home-suscripcion {
	padding: 64px 0;
	background:
		radial-gradient(circle at 82% 15%, rgba(39,190,232,.30), transparent 28%),
		linear-gradient(115deg, #10265d, #183478 58%, #087daf);
}
.suscripcion-title {
	font-size: clamp(1.55rem, 2.5vw, 2rem);
	letter-spacing: -.03em;
}
.suscripcion-text { color: rgba(255,255,255,.70); }
.suscripcion-form {
	max-width: 620px;
	margin-left: auto;
	margin-right: auto;
	background: rgba(255,255,255,.10);
	padding: 6px;
	border: 1px solid rgba(255,255,255,.16);
	border-radius: 999px;
	backdrop-filter: blur(8px);
}
.suscripcion-input {
	background: #fff;
	border-radius: 999px;
	min-height: 50px;
	padding-left: 20px;
}
.suscripcion-btn {
	right: 6px;
	top: 6px;
	bottom: 6px;
	border-radius: 999px;
	padding-left: 24px;
	padding-right: 24px;
}

/* Footer */
.site-footer {
	background: #07183d;
	padding-top: 76px;
}
.footer-logo { height: 58px; }
.footer-about {
	color: rgba(255,255,255,.58);
	line-height: 1.75;
}
.footer-title {
	font-size: .83rem;
	text-transform: uppercase;
	letter-spacing: .07em;
}
.footer-contact li,
.footer-menu li { margin-bottom: 11px; }
.footer-contact a,
.site-footer a,
.footer-contact span { color: rgba(255,255,255,.62); }
.footer-bottom {
	color: rgba(255,255,255,.42);
	margin-top: 58px;
}

/* WhatsApp menos invasivo */
.whatsapp-btn {
	width: 52px;
	height: 52px;
	line-height: 52px;
	font-size: 1.45rem;
	box-shadow: 0 10px 28px rgba(0,0,0,.22);
	border: 3px solid rgba(255,255,255,.88);
}

@media (min-width: 992px) {
	.site-nav { min-height: 90px; }
	.is-home .site-header { position: absolute; left: 0; right: 0; top: 0; }
	.is-home.admin-bar .site-header { top: 32px; }
	.is-home .topbar { background: rgba(7,24,61,.80); border-bottom: 1px solid rgba(255,255,255,.09); }
	.is-home .site-nav { background: rgba(255,255,255,.97); }
	.is-home .hero-slide-inner { padding-top: 230px; }
}

@media (max-width: 991.98px) {
	.container { max-width: 100%; padding-left: 24px; padding-right: 24px; }
	.site-logo { height: 52px; }
	.site-nav { padding: 10px 0; }
	.navbar-collapse { border-top: 1px solid var(--cd-line); margin-top: 10px; }
	.hero-slide { min-height: 500px; }
	.hero-slide-inner { padding: 110px 24px 100px; }
	.hero-slide-title { font-size: clamp(2.1rem, 7vw, 3.25rem); }
	.cifras-title { max-width: none; margin-bottom: 20px; }
	.section { padding: 72px 0; }
	.section-action { justify-content: flex-start; padding-bottom: 0; margin-top: 6px; }
}

@media (max-width: 767.98px) {
	.container { padding-left: 18px; padding-right: 18px; }
	.hero-slide { min-height: 470px; }
	.hero-slide-inner { padding: 92px 18px 78px; }
	.hero-slide-title { font-size: 2rem; line-height: 1.1; }
	.hero-slide-text { line-height: 1.6; }
	.home-hero .carousel-indicators { padding-left: 18px; margin-bottom: 20px; }
	.home-cifras { padding: 24px 0; }
	.cifra { padding: 12px 14px; }
	.cifra + .cifra:before { display: none; }
	.cifra-num { font-size: 1.65rem; }
	.home-cita { padding: 64px 0 56px; }
	.section { padding: 62px 0; }
	.posicion-body, .noticia-body, .programa-body { padding: 21px 21px 24px; }
	.publicacion { padding: 21px; }
	.opinion { padding: 22px; }
	.suscripcion-form { background: transparent; border: 0; padding: 0; border-radius: 0; backdrop-filter: none; }
	.suscripcion-input { padding-right: 20px; }
	.suscripcion-btn { position: static; width: 100%; min-height: 50px; margin-top: 9px; }
	.site-footer { padding-top: 60px; }
}

/* =========================================================
   HERO HOME V1.2 — institucional, editorial y sin recortes
   ========================================================= */
.home-hero .carousel,
.home-hero .carousel-inner,
.home-hero .carousel-item {
	background: #07183f;
}

.home-hero .hero-slide {
	position: relative;
	isolation: isolate;
	min-height: clamp(600px, 47vw, 720px);
	background-image: none !important;
	background-color: #07183f;
}

.hero-slide-backdrop {
	position: absolute;
	inset: -22px;
	z-index: -3;
	background-image: var(--hero-bg);
	background-size: cover;
	background-position: var(--hero-position, center center);
	filter: blur(20px) saturate(.8);
	transform: scale(1.055);
	opacity: .44;
}

.hero-slide-media {
	position: absolute;
	z-index: -2;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(72%, 1120px);
	display: flex;
	align-items: center;
	justify-content: flex-end;
	overflow: hidden;
}

.hero-slide-image {
	display: block;
	width: 100%;
	height: 100%;
	object-position: var(--hero-position, center center);
}

.hero-image-complete .hero-slide-image {
	object-fit: contain;
}

.hero-image-cover .hero-slide-media {
	width: 100%;
}
.hero-image-cover .hero-slide-image {
	object-fit: cover;
}

.home-hero .hero-slide-overlay {
	z-index: -1;
	background:
		linear-gradient(90deg,
			rgba(5,20,54,.99) 0%,
			rgba(6,24,63,.97) 25%,
			rgba(7,27,70,.84) 43%,
			rgba(7,28,72,.52) 61%,
			rgba(7,27,70,.18) 79%,
			rgba(7,27,70,.04) 100%),
		linear-gradient(0deg, rgba(4,16,43,.14), rgba(4,16,43,.14));
}

.hero-image-cover .hero-slide-overlay {
	background: linear-gradient(90deg,
		rgba(5,20,54,.96) 0%,
		rgba(6,24,63,.90) 34%,
		rgba(7,28,72,.57) 58%,
		rgba(7,27,70,.18) 100%);
}

.home-hero .hero-slide-inner {
	padding-top: 245px;
	padding-bottom: 132px;
}

.hero-copy {
	max-width: 760px;
}

.hero-kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 18px;
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .17em;
	text-transform: uppercase;
	color: #69d2f4;
}
.hero-kicker::before {
	content: "";
	width: 34px;
	height: 2px;
	border-radius: 999px;
	background: currentColor;
}

.home-hero .hero-slide-title {
	max-width: 720px;
	font-size: clamp(3rem, 4.35vw, 5rem);
	line-height: 1.01;
	letter-spacing: -.052em;
	font-weight: 800;
	text-wrap: balance;
}

.home-hero .hero-slide-text {
	max-width: 590px;
	font-size: clamp(1rem, 1.15vw, 1.18rem);
	line-height: 1.65;
	color: rgba(255,255,255,.78);
}

.home-hero .btn-hero {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 50px;
	padding: .82rem 1.35rem .82rem 1.5rem;
	border: 1px solid rgba(255,255,255,.1);
	background: #19a7d8;
	box-shadow: 0 14px 32px rgba(25,167,216,.26);
	transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.home-hero .btn-hero:hover {
	transform: translateY(-2px);
	box-shadow: 0 18px 36px rgba(0,0,0,.18);
}
.home-hero .btn-hero .bi { font-size: 1rem; }

.home-hero .carousel-indicators {
	z-index: 4;
	margin-bottom: 35px;
}
.home-hero .carousel-indicators button {
	width: 54px;
	height: 3px;
	margin-right: 7px;
	background: rgba(255,255,255,.34);
	transition: width .25s ease, background .25s ease;
}
.home-hero .carousel-indicators button.active {
	width: 82px;
	background: #54c8ef;
}

.home-hero .carousel-control-prev,
.home-hero .carousel-control-next {
	z-index: 5;
	width: 76px;
	opacity: 1;
}
.home-hero .carousel-control-prev-icon,
.home-hero .carousel-control-next-icon {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background-size: 16px;
	background-color: rgba(5,20,54,.45);
	border: 1px solid rgba(255,255,255,.22);
	backdrop-filter: blur(8px);
}

/* La franja de cifras se integra al hero como cierre institucional */
.home-hero + .home-cifras {
	margin-top: 0;
	border-top: 1px solid rgba(255,255,255,.08);
}

@media (min-width: 1400px) {
	.hero-slide-media { width: min(70%, 1240px); }
	.home-hero .hero-slide-title { max-width: 780px; }
}

@media (max-width: 1199.98px) and (min-width: 992px) {
	.home-hero .hero-slide { min-height: 620px; }
	.hero-slide-media { width: 76%; }
	.home-hero .hero-slide-title { font-size: clamp(2.7rem, 4.3vw, 4rem); max-width: 650px; }
	.home-hero .hero-slide-inner { padding-top: 220px; padding-bottom: 120px; }
}

@media (max-width: 991.98px) {
	.home-hero .hero-slide {
		min-height: 650px;
		display: flex;
		align-items: flex-end;
	}
	.hero-slide-backdrop {
		filter: blur(16px) saturate(.82);
		opacity: .52;
	}
	.hero-slide-media {
		top: 0;
		right: 0;
		left: 0;
		bottom: auto;
		width: 100%;
		height: 58%;
		justify-content: center;
	}
	.hero-image-complete .hero-slide-image {
		object-fit: contain;
	}
	.hero-image-cover .hero-slide-image {
		object-fit: cover;
	}
	.home-hero .hero-slide-overlay,
	.hero-image-cover .hero-slide-overlay {
		background: linear-gradient(0deg,
			rgba(5,20,54,1) 0%,
			rgba(5,20,54,.98) 32%,
			rgba(5,20,54,.76) 55%,
			rgba(5,20,54,.13) 82%,
			rgba(5,20,54,.05) 100%);
	}
	.home-hero .hero-slide-inner {
		padding-top: 330px;
		padding-bottom: 84px;
	}
	.home-hero .hero-slide-title {
		font-size: clamp(2.35rem, 7vw, 3.55rem);
		max-width: 700px;
	}
	.home-hero .carousel-control-prev,
	.home-hero .carousel-control-next { display: none; }
}

@media (max-width: 767.98px) {
	.home-hero .hero-slide { min-height: 610px; }
	.hero-slide-media { height: 48%; }
	.home-hero .hero-slide-inner {
		padding: 270px 18px 74px;
	}
	.hero-kicker { font-size: .68rem; margin-bottom: 13px; }
	.hero-kicker::before { width: 25px; }
	.home-hero .hero-slide-title {
		font-size: clamp(2rem, 9.7vw, 2.8rem);
		line-height: 1.03;
		letter-spacing: -.045em;
		margin-bottom: 14px;
	}
	.home-hero .hero-slide-text {
		font-size: .98rem;
		line-height: 1.55;
		margin-bottom: 20px;
	}
	.home-hero .btn-hero { min-height: 46px; padding: .72rem 1.2rem; }
	.home-hero .carousel-indicators { margin-bottom: 20px; }
	.home-hero .carousel-indicators button { width: 34px; }
	.home-hero .carousel-indicators button.active { width: 50px; }
}

/* =========================================================
   HERO HOME V1.3 — proporción estable + fotografía completa
   Basado en Manual de Marca CODESSD 2026
   ========================================================= */

/* En portada la cabecera vuelve al flujo normal: el hero comienza debajo,
   nunca detrás del topbar/nav. */
@media (min-width: 992px) {
	.is-home .site-header,
	.is-home.admin-bar .site-header {
		position: relative;
		top: auto;
		left: auto;
		right: auto;
	}
	.is-home .topbar {
		background: #1F2A6B;
		border-bottom: 1px solid rgba(255,255,255,.08);
	}
	.is-home .site-nav {
		background: #fff;
	}
}

/* Todos los slides comparten exactamente la misma caja visual. */
.home-hero,
.home-hero .carousel,
.home-hero .carousel-inner,
.home-hero .carousel-item,
.home-hero .hero-slide {
	width: 100%;
}

.home-hero .carousel-inner {
	overflow: hidden;
}

.home-hero .hero-slide {
	height: clamp(520px, 41.6667vw, 700px);
	min-height: 0;
	background-color: #1F2A6B;
}

/* La imagen ocupa toda la caja del hero, no una columna parcial. */
.home-hero .hero-slide-media {
	inset: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

/* Modo recomendado: la fotografía se ve completa, sin recortes. */
.home-hero .hero-image-complete .hero-slide-image {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: var(--hero-position, center center);
}

/* El fondo ambiental llena cualquier margen que deje object-fit: contain. */
.home-hero .hero-slide-backdrop {
	inset: -28px;
	background-size: cover;
	background-position: var(--hero-position, center center);
	filter: blur(24px) saturate(.74);
	transform: scale(1.06);
	opacity: .58;
}

/* Si se selecciona "Llenar todo el hero", el recorte sigue siendo opcional. */
.home-hero .hero-image-cover .hero-slide-media {
	inset: 0;
	width: 100%;
	height: 100%;
}
.home-hero .hero-image-cover .hero-slide-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--hero-position, center center);
}

/* Tratamiento institucional: azul dominante y cian como acento, no como masa. */
.home-hero .hero-slide-overlay,
.home-hero .hero-image-cover .hero-slide-overlay {
	background:
		linear-gradient(90deg,
			rgba(31,42,107,.98) 0%,
			rgba(31,42,107,.94) 24%,
			rgba(31,42,107,.78) 39%,
			rgba(31,42,107,.42) 55%,
			rgba(31,42,107,.12) 72%,
			rgba(31,42,107,.03) 100%),
		linear-gradient(0deg, rgba(8,17,55,.14), rgba(8,17,55,.05));
}

/* Faceta sutil derivada del símbolo, una sola por pieza. */
.home-hero .hero-slide::after {
	content: "";
	position: absolute;
	z-index: 1;
	right: 0;
	bottom: 0;
	width: clamp(72px, 8vw, 140px);
	height: clamp(72px, 8vw, 140px);
	background: #1AA7E0;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
	opacity: .92;
	pointer-events: none;
}

.home-hero .hero-slide-inner {
	height: 100%;
	display: flex;
	align-items: center;
	padding-top: 58px;
	padding-bottom: 92px;
}

.home-hero .hero-kicker {
	color: #1AA7E0;
}

.home-hero .hero-slide-title {
	max-width: 760px;
	font-family: "Montserrat", Arial, sans-serif;
	font-size: clamp(2.7rem, 3.6vw, 4.55rem);
	line-height: 1.04;
	letter-spacing: -.045em;
	font-weight: 800;
	text-shadow: none;
}

.home-hero .hero-slide-text {
	max-width: 620px;
	color: rgba(255,255,255,.86);
}

.home-hero .btn-hero {
	background: #1AA7E0;
	border-color: #1AA7E0;
	box-shadow: none;
}
.home-hero .btn-hero:hover,
.home-hero .btn-hero:focus {
	background: #168fc0;
	border-color: #168fc0;
}

.home-hero .carousel-indicators {
	left: max(18px, calc((100vw - var(--bs-gutter-x, 1.5rem) - 1296px) / 2));
	right: auto;
	justify-content: flex-start;
	margin-left: 0;
	margin-right: 0;
	margin-bottom: 30px;
}
.home-hero .carousel-indicators button {
	background-color: rgba(255,255,255,.38);
}
.home-hero .carousel-indicators button.active {
	background-color: #1AA7E0;
}

/* Tablet: misma altura para todos los slides y foto completa arriba del texto. */
@media (max-width: 991.98px) {
	.home-hero .hero-slide {
		height: 620px;
		min-height: 0;
		display: block;
	}
	.home-hero .hero-slide-media {
		height: 100%;
	}
	.home-hero .hero-slide-inner {
		height: 100%;
		padding: 60px 24px 84px;
		align-items: flex-end;
	}
	.home-hero .hero-slide-overlay,
	.home-hero .hero-image-cover .hero-slide-overlay {
		background: linear-gradient(0deg,
			rgba(31,42,107,.99) 0%,
			rgba(31,42,107,.92) 34%,
			rgba(31,42,107,.52) 58%,
			rgba(31,42,107,.10) 82%,
			rgba(31,42,107,.02) 100%);
	}
	.home-hero .hero-slide-title {
		font-size: clamp(2.25rem, 6.8vw, 3.5rem);
		max-width: 760px;
	}
}

@media (max-width: 767.98px) {
	.home-hero .hero-slide {
		height: 590px;
	}
	.home-hero .hero-slide-inner {
		padding: 48px 18px 72px;
	}
	.home-hero .hero-slide-title {
		font-size: clamp(2rem, 9vw, 2.75rem);
		line-height: 1.05;
	}
	.home-hero .hero-slide::after {
		width: 64px;
		height: 64px;
	}
}

/* =========================================================
   CODESSD v1.4 — sistema visual institucional
   Basado en el Manual de Identidad y Expresión de Marca.
   ========================================================= */
:root {
	--cd-navy: #1F2A6B;
	--cd-navy-dark: #162052;
	--cd-cyan: #1AA7E0;
	--cd-cyan-soft: #D6EFFA;
	--cd-ink: #1D1D1B;
	--cd-muted: #5B6770;
	--cd-line: #C9D2DB;
	--cd-surface: #EEF2F6;
	--cd-radius: 2px;
	--cd-shadow-sm: 0 8px 24px rgba(31,42,107,.06);
	--cd-shadow-md: 0 18px 46px rgba(31,42,107,.10);
	--bs-body-font-family: "Montserrat", Arial, sans-serif;
}
body { font-family: "Montserrat", Arial, sans-serif; background:#fff; color:var(--cd-ink); }
h1,h2,h3,h4,h5,h6 { font-family:"Montserrat",Arial,sans-serif; }

/* La web gana autoridad con ritmo, aire y una grilla editorial más clara */
.section { position:relative; padding:108px 0; }
.section > .container { position:relative; z-index:2; }
.section-eyebrow {
	display:inline-flex;
	align-items:center;
	gap:10px;
	margin-bottom:14px;
	color:var(--cd-cyan);
	font-size:.72rem;
	font-weight:800;
	letter-spacing:.12em;
	text-transform:uppercase;
}
.section-eyebrow:before { content:""; width:26px; height:3px; background:var(--cd-cyan); }
.section-title {
	max-width:780px;
	font-size:clamp(2rem,3vw,3rem);
	font-weight:800;
	line-height:1.07;
	letter-spacing:-.045em;
	color:var(--cd-navy);
	margin-bottom:18px;
}
.section-title:after { display:none; }
.section-lead { max-width:720px; color:var(--cd-muted); font-size:1rem; line-height:1.8; }
.section-action { align-self:end; }
.link-more {
	display:inline-flex;
	align-items:center;
	gap:10px;
	color:var(--cd-navy);
	font-size:.75rem;
	font-weight:800;
	letter-spacing:.07em;
	text-transform:uppercase;
}
.link-more:after { margin-left:2px; }

/* Franja de cifras: menos dashboard, más firma institucional */
.home-cifras { position:relative; overflow:hidden; padding:38px 0; background:var(--cd-navy); }
.home-cifras:after {
	content:""; position:absolute; right:-90px; top:-130px; width:310px; height:360px;
	background:var(--cd-cyan); transform:skewX(-24deg); opacity:.95;
}
.home-cifras .container { position:relative; z-index:2; }
.cifras-title { border-right:1px solid rgba(255,255,255,.25); font-size:1.05rem; line-height:1.45; max-width:260px; }
.cifra { border-left:1px solid rgba(255,255,255,.15); padding-left:28px; }
.cifra:first-child { border-left:0; }
.cifra-num { font-size:2.35rem; font-weight:900; letter-spacing:-.04em; }
.cifra-label { color:rgba(255,255,255,.66); font-size:.72rem; line-height:1.35; }

/* Cita / voz institucional */
.home-cita { position:relative; padding:96px 0; overflow:hidden; background:#fff; }
.home-cita:before {
	content:""; position:absolute; left:0; top:0; bottom:0; width:7px; background:var(--cd-cyan);
}
.home-cita .col-lg-8 { max-width:920px; }
.cita-foto { width:76px; height:76px; border:0; box-shadow:0 0 0 6px var(--cd-surface); }
.cita-texto { font-family:"Source Serif 4",Georgia,serif; color:var(--cd-navy); font-size:clamp(1.4rem,2.4vw,2.05rem); line-height:1.42; }
.cita-texto:before { font-family:Georgia,serif; color:var(--cd-cyan); font-size:4.5rem; }
.cita-autor strong { color:var(--cd-navy); letter-spacing:.08em; }

/* Posiciones: bloque editorial principal */
.home-posiciones { background:#fff; overflow:hidden; }
.home-posiciones:after {
	content:""; position:absolute; right:-12%; top:78px; width:38%; height:78%;
	background:linear-gradient(145deg,transparent 49%,rgba(214,239,250,.55) 50%);
	pointer-events:none;
}
.home-posiciones .row.g-4 { margin-top:12px; }
.posicion {
	border:0;
	border-top:4px solid var(--cd-navy);
	border-radius:0;
	background:#fff;
	box-shadow:0 0 0 1px #e3e8ee;
}
.posicion:hover { border-top-color:var(--cd-cyan); box-shadow:var(--cd-shadow-md); transform:translateY(-4px); }
.posicion-img { aspect-ratio:16/9; background:var(--cd-surface); }
.posicion-img img { width:100%; height:100%; object-fit:cover; }
.posicion-body { padding:28px 28px 30px; }
.posicion-date { color:var(--cd-cyan); font-size:.68rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.posicion-title { font-size:1.18rem; line-height:1.42; min-height:3.4em; }
.posicion-title a { color:var(--cd-navy); }
.posicion .link-more { margin-top:6px; font-size:.68rem; }

/* Recursos: dos módulos de contenido claramente diferenciados */
.home-recursos {
	background:var(--cd-surface);
	border:0;
	padding-top:108px;
	padding-bottom:108px;
}
.home-recursos:before {
	content:""; position:absolute; left:0; top:0; width:100%; height:8px;
	background:linear-gradient(90deg,var(--cd-navy) 0 72%,var(--cd-cyan) 72% 100%);
}
.resource-column { position:relative; }
.resource-column + .resource-column { border-left:1px solid var(--cd-line); padding-left:48px; }
.home-recursos .section-title { font-size:clamp(1.8rem,2.3vw,2.45rem); }
.publicacion {
	min-height:220px;
	padding:28px 26px 26px;
	border:1px solid #dbe2e9;
	border-top:3px solid var(--cd-navy);
	border-left:1px solid #dbe2e9;
	border-radius:0;
	box-shadow:none;
	background:#fff;
}
.publicacion:before { display:none; }
.publicacion:hover { transform:translateY(-4px); border-top-color:var(--cd-cyan); box-shadow:var(--cd-shadow-sm); }
.publicacion-icon { width:46px; height:46px; border-radius:50%; background:var(--cd-cyan-soft); color:var(--cd-navy); }
.publicacion-title { color:var(--cd-navy); font-size:1rem; line-height:1.45; }
.publicacion-desc { font-size:.8rem; color:var(--cd-muted); }
.publicacion-cta { color:var(--cd-cyan); }
.video-main { border-radius:0; box-shadow:none; border:8px solid #fff; outline:1px solid #dbe2e9; }
.video-main img { opacity:.92; }
.video-caption { padding:55px 22px 20px; font-size:.82rem; font-weight:700; }
.video-play { width:62px; height:62px; line-height:62px; margin:-31px 0 0 -31px; }
.video-thumb { background:#fff; padding-bottom:10px; }
.video-thumb img { border-radius:0; }
.video-thumb-title { padding:0 4px; color:var(--cd-navy); }

/* Opinión: bloque de contraste institucional */
.home-opinion { background:var(--cd-navy); overflow:hidden; }
.home-opinion:after {
	content:""; position:absolute; right:-120px; bottom:-210px; width:430px; height:520px;
	background:var(--cd-cyan); transform:skewX(-23deg); opacity:.13;
}
.home-opinion .section-eyebrow { color:#75cff2; }
.home-opinion .section-title { color:#fff; }
.opinion-heading { margin-bottom:34px; }
.opinion-intro { color:rgba(255,255,255,.62); font-size:.9rem; line-height:1.75; margin:0 0 8px; }
.opinion {
	position:relative;
	border:0;
	border-radius:0;
	padding:32px 30px 30px;
	box-shadow:none;
	min-height:255px;
}
.opinion:before { content:""; position:absolute; left:0; top:0; width:42px; height:4px; background:var(--cd-cyan); }
.opinion-author { border-bottom:1px solid #e5eaf0; padding-bottom:18px; }
.opinion-photo { width:48px; height:48px; }
.opinion-title { font-family:"Source Serif 4",Georgia,serif; font-size:1.22rem; line-height:1.4; }
.opinion-title a { color:var(--cd-navy); }
.opinion-mail { color:var(--cd-muted); }

/* Presencia en medios: estilo de sala de prensa */
.home-noticias { background:#fff; border:0; }
.home-noticias .noticia {
	border:0;
	border-radius:0;
	box-shadow:0 0 0 1px #e2e7ec;
}
.home-noticias .noticia:hover { box-shadow:var(--cd-shadow-md); transform:translateY(-4px); }
.home-noticias .noticia-img { aspect-ratio:16/9; }
.home-noticias .noticia-img img { width:100%; height:100%; object-fit:cover; }
.home-noticias .noticia-body { padding:26px 28px 30px; }
.noticia-meta { font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; }
.noticia-title { font-size:1.12rem; line-height:1.45; }
.noticia-title a { color:var(--cd-navy); }
.noticia-excerpt { color:var(--cd-muted); line-height:1.65; }
.noticia-link { color:var(--cd-cyan); font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; }

/* Suscripción: llamada sobria, no publicitaria */
.home-suscripcion {
	position:relative;
	overflow:hidden;
	padding:82px 0;
	background:var(--cd-navy-dark);
}
.home-suscripcion:after {
	content:""; position:absolute; right:-55px; top:-170px; width:290px; height:440px;
	background:var(--cd-cyan); transform:skewX(-24deg);
}
.home-suscripcion .container { position:relative; z-index:2; }
.suscripcion-kicker { display:block; color:#7dd4f4; font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin-bottom:10px; }
.suscripcion-title { font-size:clamp(1.8rem,3vw,2.55rem); font-weight:800; }
.suscripcion-text { max-width:650px; margin-left:auto; margin-right:auto; line-height:1.7; }
.suscripcion-form { max-width:660px; background:transparent; border:0; padding:0; border-radius:0; backdrop-filter:none; display:flex; gap:8px; }
.suscripcion-input { min-height:54px; border-radius:0; padding:0 18px; }
.suscripcion-btn { position:static; border-radius:0; min-width:150px; background:var(--cd-cyan); }
.suscripcion-btn:hover { background:#fff; color:var(--cd-navy); }

/* Footer alineado al sistema gráfico */
.site-footer { position:relative; background:#111a45; }
.site-footer:before { content:""; position:absolute; top:0; left:0; right:0; height:5px; background:var(--cd-cyan); }
.footer-title { color:#fff; }

@media (max-width: 991.98px) {
	.section { padding:82px 0; }
	.resource-column + .resource-column { border-left:0; border-top:1px solid var(--cd-line); padding-left:12px; padding-top:54px; margin-top:20px; }
	.opinion-intro { margin-top:8px; max-width:620px; }
	.home-cifras:after { opacity:.35; }
}
@media (max-width: 767.98px) {
	.section { padding:68px 0; }
	.section-title { font-size:2rem; }
	.home-cifras { padding:26px 0; }
	.cifras-title { border-right:0; border-bottom:1px solid rgba(255,255,255,.18); padding-bottom:18px; margin-bottom:12px; max-width:none; }
	.cifra { border-left:0; padding:14px 12px; }
	.cifra-num { font-size:2rem; }
	.home-cita { padding:72px 0; }
	.posicion-title { min-height:0; }
	.publicacion { min-height:0; }
	.suscripcion-form { display:block; }
	.suscripcion-btn { width:100%; margin-top:8px; min-height:52px; }
}

/* === Quienes somos institucional v1.5 === */
.about-intro-pro{padding-top:88px;padding-bottom:88px}.institution-label{font-size:.72rem;font-weight:800;letter-spacing:.16em;color:var(--cd-cyan);margin:0 0 14px;text-transform:uppercase}.about-display{font-size:clamp(2rem,3.4vw,3.35rem);line-height:1.06;letter-spacing:-.035em;color:var(--cd-navy);font-weight:800;margin-bottom:25px}.about-display.smaller{font-size:clamp(1.8rem,2.8vw,2.7rem)}.about-copy{font-size:1.04rem;color:#465260}.about-copy p:first-child{display:none}.about-lead{font-size:1.08rem;line-height:1.75;color:#5b6770;border-left:3px solid var(--cd-cyan);padding-left:22px;margin:24px 0 30px}.about-actions{display:flex;gap:12px;flex-wrap:wrap}.about-img-pro{position:relative;padding:0 24px 24px 0}.about-img-pro:after{content:"";position:absolute;right:0;bottom:0;width:72%;height:72%;background:#d6effa;z-index:-1}.about-img-pro img{border-radius:0;box-shadow:none;aspect-ratio:4/5;object-fit:cover}.about-mark-pro{border-radius:0;padding:70px 44px;min-height:480px;display:flex;flex-direction:column;justify-content:flex-end;background:#1f2a6b}.about-mark-pro:before{width:65%;height:130%;right:-42%;top:10%;background:#1aa7e0;opacity:1;transform:skewX(-24deg)}.about-mark-pro .about-kicker{font-size:.7rem;letter-spacing:.16em;font-weight:800;color:#d6effa;margin-bottom:18px;position:relative}.about-mark-pro .about-mark-big{font-size:clamp(2.2rem,4vw,3.7rem);line-height:1.02;letter-spacing:-.04em;max-width:430px}.about-mark-pro .about-mark-big em{font-style:normal;color:#1aa7e0}.about-mark-pro .about-mark-small{margin-top:20px;line-height:1.6;max-width:390px}
.impact-strip{background:#1f2a6b;color:#fff;padding:0}.impact-grid{display:grid;grid-template-columns:repeat(4,1fr)}.impact-item{padding:35px 28px;border-right:1px solid rgba(255,255,255,.14);min-height:130px}.impact-item:first-child{border-left:1px solid rgba(255,255,255,.14)}.impact-item strong{display:block;color:#1aa7e0;font-size:2rem;line-height:1;font-weight:800;margin-bottom:10px}.impact-item span{font-size:.78rem;line-height:1.4;color:#e8edf7}.impact-note{font-size:.68rem;color:#aeb8d2;margin:0;padding:0 0 15px}
.section-head-pro{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:70px;align-items:end;margin-bottom:45px}.section-head-pro h2{font-size:clamp(1.9rem,3vw,2.85rem);line-height:1.08;color:#1f2a6b;font-weight:800;letter-spacing:-.03em;margin:0}.section-head-pro>p{color:#5b6770;line-height:1.7;margin:0}.role-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;border:1px solid #dfe5eb}.role-card{padding:42px 34px;position:relative;background:#fff;border-right:1px solid #dfe5eb;min-height:340px}.role-card:last-child{border:0}.role-card-featured{background:#eef2f6}.role-card .role-no{position:absolute;right:26px;top:22px;font-size:.72rem;font-weight:800;color:#a6b1bc}.role-card>i{font-size:1.7rem;color:#1aa7e0;display:block;margin-bottom:48px}.role-card h3{font-size:1.25rem;color:#1f2a6b;font-weight:750;margin-bottom:14px}.role-card p{font-size:.91rem;line-height:1.7;color:#5b6770;margin:0}.role-card a{display:inline-flex;gap:8px;align-items:center;margin-top:24px;font-size:.78rem;font-weight:800;color:#1f2a6b;text-transform:uppercase;letter-spacing:.04em}
.projects-showcase{background:#17215a;color:#fff;position:relative;overflow:hidden}.projects-showcase:after{content:"";position:absolute;width:420px;height:900px;background:#1aa7e0;right:-330px;top:-170px;transform:rotate(22deg);opacity:.16}.section-head-pro.light{position:relative;z-index:1}.section-head-pro.light h2{color:#fff}.section-head-pro.light>p{color:#cbd3e7}.projects-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.25fr 1fr;gap:1px;background:rgba(255,255,255,.13)}.project-card{background:#1f2a6b;padding:38px;min-height:300px}.project-main{grid-row:span 2;padding:48px}.project-icon{width:52px;height:52px;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;color:#1aa7e0;font-size:1.35rem;margin-bottom:40px}.project-tag{font-size:.65rem;letter-spacing:.13em;font-weight:800;color:#1aa7e0}.project-card h3{font-size:1.55rem;line-height:1.15;color:#fff;margin:12px 0 16px;font-weight:750}.project-main h3{font-size:clamp(1.8rem,3vw,2.55rem)}.project-card p{color:#cbd3e7;line-height:1.7;font-size:.91rem;margin:0}.project-metrics{display:flex;gap:36px;margin-top:35px;padding-top:25px;border-top:1px solid rgba(255,255,255,.14)}.project-metrics span{font-size:.73rem;color:#cbd3e7;max-width:150px}.project-metrics b{display:block;font-size:1.65rem;color:#1aa7e0;margin-bottom:4px}
.alliances-section{background:#fff}.alliance-copy{font-size:1rem;line-height:1.8;color:#5b6770}.alliance-list{border-top:1px solid #dfe5eb}.alliance-list>div{display:grid;grid-template-columns:50px 1fr 1.2fr;gap:18px;align-items:center;padding:20px 8px;border-bottom:1px solid #dfe5eb}.alliance-list span{color:#1aa7e0;font-size:.7rem;font-weight:800}.alliance-list strong{color:#1f2a6b;font-size:.94rem}.alliance-list small{color:#6a7580;font-size:.8rem}
.about-cta{background:#1aa7e0;overflow:hidden}.about-cta-inner{padding:54px 0;display:flex;align-items:center;justify-content:space-between;gap:50px;position:relative}.about-cta-inner:after{content:"";position:absolute;right:17%;top:-170px;width:230px;height:500px;background:#1f2a6b;transform:rotate(25deg);opacity:.14}.about-cta-inner>div,.about-cta-inner>a{position:relative;z-index:1}.about-cta span{font-size:.66rem;letter-spacing:.14em;font-weight:800;color:#143068}.about-cta h2{color:#fff;font-size:clamp(1.9rem,3vw,2.8rem);font-weight:800;letter-spacing:-.03em;margin:8px 0}.about-cta h2 em{font-style:normal;color:#1f2a6b}.about-cta p{margin:0;color:#eaf8fd;max-width:690px}.about-cta .btn{white-space:nowrap;border-radius:0;font-weight:700;color:#1f2a6b;padding:14px 22px}
@media(max-width:991.98px){.impact-grid{grid-template-columns:repeat(2,1fr)}.section-head-pro{grid-template-columns:1fr;gap:18px}.role-grid{grid-template-columns:1fr}.role-card{border-right:0;border-bottom:1px solid #dfe5eb;min-height:auto}.projects-grid{grid-template-columns:1fr}.project-main{grid-row:auto}.about-cta-inner{align-items:flex-start;flex-direction:column}.alliance-list>div{grid-template-columns:40px 1fr}.alliance-list small{grid-column:2}.about-img-pro{margin-bottom:15px}}
@media(max-width:575.98px){.about-intro-pro{padding-top:58px;padding-bottom:58px}.impact-grid{grid-template-columns:1fr 1fr}.impact-item{padding:25px 18px}.impact-item strong{font-size:1.55rem}.role-card,.project-card,.project-main{padding:30px 24px}.project-metrics{gap:18px}.about-mark-pro{padding:45px 28px;min-height:400px}.about-actions .btn{width:100%}.alliance-list>div{padding:17px 0}.about-cta-inner{padding:42px 0}}

/* =========================================================
   HOME v1.6 — Cita + posiciones: composición editorial
   ========================================================= */
.home-cita {
    position: relative;
    padding: 56px 0 48px;
    background: #fff;
    overflow: hidden;
}
.home-cita:before { display:none; }
.home-cita:after {
    content:"";
    position:absolute;
    right:-90px;
    bottom:-145px;
    width:320px;
    height:320px;
    background:rgba(214,239,250,.58);
    transform:rotate(45deg);
    pointer-events:none;
}
.cita-shell {
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns: 260px minmax(0,1fr);
    align-items:stretch;
    max-width:1120px;
    margin:0 auto;
    border:1px solid var(--cd-line);
    background:#fff;
    box-shadow:0 18px 46px rgba(31,42,107,.07);
}
.cita-identidad {
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:34px 34px 32px;
    background:var(--cd-navy);
    color:#fff;
    position:relative;
    overflow:hidden;
}
.cita-identidad:after {
    content:"";
    position:absolute;
    right:-56px;
    bottom:-94px;
    width:150px;
    height:220px;
    background:var(--cd-cyan);
    transform:skewX(-24deg);
    opacity:.95;
}
.cita-eyebrow {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    gap:10px;
    color:#fff;
    font-size:.68rem;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.cita-eyebrow:before {
    content:"";
    width:25px;
    height:3px;
    background:var(--cd-cyan);
}
.cita-persona {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    gap:15px;
}
.cita-foto {
    flex:0 0 auto;
    width:62px;
    height:62px;
    margin:0;
    border-radius:50%;
    object-fit:cover;
    box-shadow:0 0 0 3px rgba(255,255,255,.18);
}
.cita-autor {
    margin:0;
    min-width:0;
    color:rgba(255,255,255,.72);
    font-size:.75rem;
    line-height:1.35;
}
.cita-autor strong {
    display:block;
    margin-bottom:3px;
    color:#fff;
    font-family:Montserrat,Arial,sans-serif;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.cita-autor span { display:block; }
.cita-contenido {
    position:relative;
    display:flex;
    align-items:center;
    min-height:230px;
    padding:42px 56px 42px 64px;
}
.cita-contenido:before {
    content:"“";
    position:absolute;
    left:24px;
    top:20px;
    font-family:Georgia,serif;
    font-size:5.8rem;
    line-height:1;
    color:rgba(26,167,224,.14);
}
.cita-texto {
    position:relative;
    z-index:2;
    max-width:760px;
    margin:0;
    padding:0;
    color:var(--cd-navy);
    font-family:"Source Serif 4",Georgia,serif;
    font-size:clamp(1.45rem,2.2vw,2rem);
    font-weight:600;
    line-height:1.38;
    letter-spacing:-.02em;
}
.cita-texto:before { display:none; }

.home-posiciones {
    position:relative;
    padding-top:58px;
    padding-bottom:104px;
    background:#fff;
    overflow:hidden;
}
.home-posiciones:before {
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:1px;
    background:linear-gradient(90deg,transparent,var(--cd-line) 18%,var(--cd-line) 82%,transparent);
}
.home-posiciones:after {
    content:"";
    position:absolute;
    right:-8%;
    bottom:-28%;
    top:auto;
    width:31%;
    height:70%;
    background:linear-gradient(145deg,transparent 49%,rgba(214,239,250,.42) 50%);
    pointer-events:none;
}
.home-posiciones .container { position:relative; z-index:2; }
.home-posiciones > .container > .row:first-child {
    align-items:end;
    margin-bottom:30px;
}
.home-posiciones .section-eyebrow {
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:11px;
    color:var(--cd-cyan);
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.11em;
    text-transform:uppercase;
}
.home-posiciones .section-eyebrow:before {
    content:"";
    width:27px;
    height:3px;
    background:var(--cd-cyan);
}
.home-posiciones .section-title {
    margin-bottom:8px;
    color:var(--cd-navy);
    font-size:clamp(2rem,3.2vw,3rem);
    line-height:1.05;
    letter-spacing:-.045em;
}
.home-posiciones .section-lead {
    max-width:620px;
    margin:0;
    color:var(--cd-muted);
    font-size:.98rem;
    line-height:1.65;
}
.home-posiciones .section-action {
    align-self:end;
    margin:0 0 4px;
}
.home-posiciones .row.g-4 { margin-top:0; }
.home-posiciones .posicion {
    height:100%;
    display:flex;
    flex-direction:column;
    border:1px solid #e1e7ee;
    border-top:0;
    background:#fff;
    box-shadow:none;
    overflow:hidden;
    transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.home-posiciones .posicion:before {
    content:"";
    display:block;
    width:100%;
    height:5px;
    background:linear-gradient(90deg,var(--cd-navy) 0 78%,var(--cd-cyan) 78% 100%);
}
.home-posiciones .posicion:hover {
    transform:translateY(-5px);
    border-color:#d7dfe8;
    box-shadow:0 20px 48px rgba(31,42,107,.11);
}
.home-posiciones .posicion-img {
    display:block;
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--cd-surface);
}
.home-posiciones .posicion-img img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s ease;
}
.home-posiciones .posicion:hover .posicion-img img { transform:scale(1.025); }
.home-posiciones .posicion-body {
    flex:1;
    display:flex;
    flex-direction:column;
    padding:24px 25px 25px;
}
.home-posiciones .posicion-date {
    margin-bottom:11px;
    color:var(--cd-cyan);
    font-size:.64rem;
    font-weight:800;
    letter-spacing:.045em;
    text-transform:uppercase;
}
.home-posiciones .posicion-title {
    min-height:0;
    margin:0 0 20px;
    font-size:1.08rem;
    line-height:1.42;
}
.home-posiciones .posicion .link-more {
    margin-top:auto;
    padding-top:13px;
    border-top:1px solid #edf1f5;
    font-size:.64rem;
}

@media (max-width: 991.98px) {
    .home-cita { padding:42px 0 36px; }
    .cita-shell { grid-template-columns:210px minmax(0,1fr); }
    .cita-identidad { padding:28px 24px; }
    .cita-contenido { min-height:210px; padding:34px 34px 34px 44px; }
    .home-posiciones { padding-top:48px; padding-bottom:78px; }
}
@media (max-width: 767.98px) {
    .home-cita { padding:30px 0 28px; }
    .cita-shell { display:block; }
    .cita-identidad { min-height:auto; padding:22px 22px 20px; gap:22px; }
    .cita-identidad:after { right:-72px; bottom:-118px; }
    .cita-persona { gap:12px; }
    .cita-foto { width:52px; height:52px; }
    .cita-contenido { min-height:0; padding:30px 25px 32px; }
    .cita-contenido:before { left:15px; top:11px; font-size:4.6rem; }
    .cita-texto { font-size:1.28rem; line-height:1.45; }
    .home-posiciones { padding-top:40px; padding-bottom:62px; }
    .home-posiciones > .container > .row:first-child { margin-bottom:23px; }
    .home-posiciones .section-title { font-size:2rem; }
    .home-posiciones .section-action { margin-top:16px; text-align:left !important; }
}

/* =========================================================
   CODESSD v1.6.2 — navegación + portada móvil
   Conserva el sistema visual de v1.6 y corrige interacción
   del submenú, desbordamiento horizontal y composición móvil.
   ========================================================= */

/* Evita el desplazamiento lateral provocado por elementos decorativos. */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}
.site-main,
.site-header {
    width: 100%;
    max-width: 100%;
}

/* El submenú queda pegado al elemento padre: no existe una zona muerta
   entre el enlace y el panel que provoque el cierre al mover el mouse. */
@media (min-width: 992px) {
    .site-nav .dropdown-menu {
        margin-top: 0;
        top: calc(100% - 2px);
    }
    .site-nav .dropdown-menu::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -10px;
        height: 10px;
    }
    .site-nav .dropdown-toggle {
        cursor: pointer;
    }
}

/* ---------------------------------------------------------
   Hero móvil: fotografía y mensaje forman una sola pieza.
   La foto ocupa la zona superior y entra visualmente al azul
   mediante un degradado, en lugar de quedar flotando dentro
   de una gran caja de background.
   --------------------------------------------------------- */
@media (max-width: 767.98px) {
    .home-hero,
    .home-hero .carousel,
    .home-hero .carousel-inner,
    .home-hero .carousel-item,
    .home-hero .hero-slide {
        width: 100%;
        max-width: 100%;
    }

    .home-hero .hero-slide {
        height: 690px;
        min-height: 690px;
        background: var(--cd-navy);
    }

    .home-hero .hero-slide-backdrop {
        display: none;
    }

    .home-hero .hero-slide-media,
    .home-hero .hero-image-cover .hero-slide-media {
        position: absolute;
        inset: 0 0 auto 0;
        width: 100%;
        height: 42%;
        display: block;
        background: #dfe7ef;
    }

    .home-hero .hero-image-complete .hero-slide-image,
    .home-hero .hero-image-cover .hero-slide-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: var(--hero-position, center center);
    }

    .home-hero .hero-slide-overlay,
    .home-hero .hero-image-cover .hero-slide-overlay {
        position: absolute;
        inset: 0;
        background:
            linear-gradient(180deg,
                rgba(31,42,107,.05) 0%,
                rgba(31,42,107,.08) 27%,
                rgba(31,42,107,.62) 41%,
                rgba(31,42,107,.98) 49%,
                #1F2A6B 62%,
                #1F2A6B 100%);
    }

    .home-hero .hero-slide-inner {
        position: relative;
        z-index: 3;
        height: 100%;
        padding: 0 20px 78px;
        display: flex;
        align-items: flex-end;
    }

    .home-hero .hero-copy {
        width: 100%;
        max-width: none;
    }

    .home-hero .hero-kicker {
        display: inline-flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 13px;
        font-size: .72rem;
        letter-spacing: .18em;
    }
    .home-hero .hero-kicker::before {
        content: "";
        width: 32px;
        height: 3px;
        background: var(--cd-cyan);
    }

    .home-hero .hero-slide-title {
        max-width: 100%;
        margin-bottom: 14px;
        font-size: clamp(2.15rem, 9.5vw, 3rem);
        line-height: 1.01;
        letter-spacing: -.05em;
        text-wrap: pretty;
    }

    .home-hero .hero-slide-text {
        max-width: 95%;
        margin-bottom: 0;
        font-size: .99rem;
        line-height: 1.55;
        color: rgba(255,255,255,.78);
    }

    .home-hero .btn-hero {
        margin-top: 18px;
        padding: .75rem 1.1rem;
    }

    .home-hero .carousel-indicators {
        left: 20px;
        bottom: 23px;
        padding: 0;
        margin: 0;
    }
    .home-hero .carousel-indicators button {
        width: 32px;
    }
    .home-hero .carousel-indicators button.active {
        width: 48px;
    }

    .home-hero .hero-slide::after {
        width: 76px;
        height: 76px;
        opacity: .9;
    }
}

@media (max-width: 390px) {
    .home-hero .hero-slide {
        height: 660px;
        min-height: 660px;
    }
    .home-hero .hero-slide-media,
    .home-hero .hero-image-cover .hero-slide-media {
        height: 39%;
    }
    .home-hero .hero-slide-title {
        font-size: clamp(2rem, 9.1vw, 2.55rem);
    }
}

/* ---------------------------------------------------------
   Cifras debajo del hero — móvil.
   Sustituye la gran diagonal por una retícula institucional
   compacta, clara y legible en una mano.
   --------------------------------------------------------- */
@media (max-width: 767.98px) {
    .home-hero + .home-cifras,
    .home-cifras {
        padding: 0;
        background: var(--cd-navy);
        box-shadow: none;
    }

    .home-cifras::after {
        width: 94px;
        height: 94px;
        top: 0;
        right: 0;
        transform: none;
        clip-path: polygon(100% 0, 100% 100%, 0 0);
        opacity: .16;
    }

    .home-cifras .container {
        padding: 0 20px 30px;
    }

    .home-cifras .row.align-items-center {
        display: block;
        margin: 0;
    }

    .home-cifras .row.align-items-center > [class*="col-"] {
        width: 100%;
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    .cifras-title {
        max-width: none;
        margin: 0;
        padding: 27px 0 23px;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.16);
        font-size: 1.28rem;
        line-height: 1.3;
    }

    .home-cifras .col-lg-8 > .row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0;
        margin: 0;
    }

    .home-cifras .cifra,
    .home-cifras .cifra:first-child {
        width: auto;
        min-width: 0;
        padding: 24px 10px 23px 0;
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .home-cifras .cifra:nth-child(odd) {
        padding-right: 18px;
        border-right: 1px solid rgba(255,255,255,.12);
    }
    .home-cifras .cifra:nth-child(even) {
        padding-left: 22px;
    }
    .home-cifras .cifra:nth-last-child(-n+2) {
        border-bottom: 0;
    }

    .home-cifras .cifra-num {
        display: block;
        margin-bottom: 5px;
        font-size: clamp(2.15rem, 10vw, 3rem);
        line-height: 1;
        color: #49C7F4;
    }

    .home-cifras .cifra-label {
        display: block;
        max-width: 145px;
        font-size: .78rem;
        line-height: 1.35;
        color: rgba(255,255,255,.72);
    }
}

/* Menú móvil: panel estable y sin provocar ancho adicional. */
@media (max-width: 991.98px) {
    .site-nav .container,
    .navbar-collapse,
    .site-nav .navbar-nav {
        max-width: 100%;
    }
    .site-nav .dropdown-menu {
        position: static !important;
        width: 100%;
        min-width: 0;
        margin: 4px 0 8px;
        padding: 5px 0 5px 14px;
        border: 0;
        border-left: 2px solid var(--cd-cyan);
        border-radius: 0;
        transform: none !important;
    }
    .site-nav .dropdown-item {
        white-space: normal;
        padding: 9px 10px;
    }
}
