/* Layout base ACHM (scaffold). Usa tokens.css; sin literales de color. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-body); color: var(--ink); background: #fff; min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1 0 auto; } /* sticky footer: el contenido empuja el footer al fondo en páginas cortas */
a { color: inherit; }
img { max-width: 100%; }
h1, h2, h3 { font-family: var(--font-title); }
h1, h2 { text-wrap: balance; } /* equilibra el quiebre de línea en títulos */
.wrap { max-width: var(--container); margin: 0 auto; padding: 0 40px; }

/* --- Pulido global (Web Interface Guidelines) --- */
html { color-scheme: light; -webkit-tap-highlight-color: transparent; }
a, button, label, select, summary, [role="button"], input[type="search"], .cb-dot { touch-action: manipulation; }
/* Foco visible consistente en todo elemento interactivo (anillo turquesa) */
:focus-visible { outline: 2px solid var(--achm-turquesa); outline-offset: 2px; border-radius: 3px; }
/* Sobre superficies oscuras (barra utilitaria, footer, cabecera de página, hero, flechas) el anillo va blanco */
.util :focus-visible, .site-footer :focus-visible, .phead :focus-visible, .home-hero :focus-visible, body.home .nav :focus-visible, .cb-arrow:focus-visible { outline-color: #fff; }
/* Números tabulares en cifras (no “bailan” al cambiar) */
.cs-item b, .cat-year, .cat-count, .stat b { font-variant-numeric: tabular-nums; }

.skip-link { position: absolute; left: -999px; top: 0; background: var(--achm-rojo); color: #fff; padding: 10px 16px; z-index: 100; border-radius: 0 0 8px 0; }
.skip-link:focus { left: 0; }

/* Cabecera fija en todo el sitio (obs. ACHM, reunión 8-jul): arriba es transparente
   y se funde con el hero de la página (logo siempre blanco); al hacer scroll pasa a
   fondo azul corporativo (.is-stuck). El header-sticky.js alterna la clase. */
.topbar { position: fixed; top: 0; left: 0; right: 0; z-index: 60; color: #fff;
  background: transparent; border-bottom: 0;
  transition: background .28s ease, box-shadow .28s ease; }
.topbar.is-stuck { background: var(--achm-azul-corp); box-shadow: 0 6px 22px rgba(0, 18, 34, .34); }
/* Municipios «Recorre Chile»: cabecera absoluta (no fija) y siempre transparente,
   fundida con la imagen del hero scrollytelling; se desplaza con la página. */
body.mu-scrolly .topbar { position: absolute; }
body.mu-scrolly .topbar.is-stuck { background: transparent; box-shadow: none; }
/* Cabecera NO fija (setting header.sticky = off): se desplaza con la página y
   desaparece al bajar. La barra sigue coloreándose sólida (is-stuck) para que el
   logo blanco se lea en páginas de fondo claro. */
body.header-static .topbar { position: absolute; }
.util { display: flex; align-items: center; gap: 22px; font-size: 12px; padding: 8px 40px;
  background: transparent; border-bottom: .5px solid rgba(255, 255, 255, .12); }
.util-group { display: flex; align-items: center; gap: 22px; }
.util-right { margin-left: auto; }
.util a { display: inline-flex; align-items: center; gap: 7px; color: var(--achm-celeste); text-decoration: none; font-family: var(--font-title); font-weight: 500; letter-spacing: .2px; opacity: .92; transition: opacity .15s, color .15s; }
.util a:hover { color: #fff; }
.util a svg { width: 15px; height: 15px; flex: 0 0 auto; }
.util a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 3px; }
.nav { display: flex; align-items: center; gap: 16px; padding: 18px 40px; }
.brand { display: inline-flex; align-items: center; line-height: 0; }
.brand img { height: 44px; width: auto; }
.menu { display: flex; align-items: center; gap: 24px; margin-left: 18px; flex: 1; }
.menu a { color: #dce8f0; text-decoration: none; font-family: var(--font-title); font-weight: 500; font-size: 14px; position: relative; transition: color .2s; }
.menu a:hover, .menu a[aria-current] { color: #fff; }
.menu-link[aria-current]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--achm-rojo); border-radius: 2px; }
/* Menú con submenús: mega-panel desplegable (hover/focus) */
.menu-item { position: relative; display: inline-flex; align-items: center; }
.menu-link { display: inline-flex; align-items: center; gap: 4px; }
.menu-caret { transition: transform .2s ease; opacity: .8; }
.menu-item:hover .menu-caret, .menu-item:focus-within .menu-caret { transform: rotate(180deg); }
.mega { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); padding-top: 13px; opacity: 0; visibility: hidden; transition: opacity .18s ease, visibility .18s; z-index: 60; }
.menu-item:hover > .mega, .menu-item:focus-within > .mega { opacity: 1; visibility: visible; }
/* Panel con profundidad (sombra en capas), entra con un fade + slide suave: sin rebote, sin líneas internas. */
.mega-inner { min-width: 256px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 6px 16px rgba(10, 26, 58, .08), 0 24px 54px rgba(10, 26, 58, .2); padding: 8px; display: grid; gap: 1px; transform: translateY(-6px); opacity: 0; transition: transform .2s ease-out, opacity .18s ease-out; }
.menu-item:hover > .mega .mega-inner, .menu-item:focus-within > .mega .mega-inner { transform: none; opacity: 1; }
.mega-inner a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; border-radius: 9px; color: var(--achm-azul-corp); font-weight: 500; font-size: 14.5px; transition: background .14s, color .14s; }
.mega-inner a:hover { background: var(--paper); color: var(--achm-rojo); }
.mega-ext { color: var(--achm-turquesa); font-size: 12px; }
/* En el home la cabecera es transparente (texto claro); el panel es blanco → texto oscuro. */
body.home .menu .mega-inner a { color: var(--achm-azul-corp); }
body.home .menu .mega-inner a:hover { color: var(--achm-rojo); }
@media (prefers-reduced-motion: reduce) {
  .mega-inner { transition: opacity .1s; transform: none; }
}
.search { background: transparent; border: 0; color: #fff; cursor: pointer; display: flex; align-items: center; }
.search:hover { color: var(--achm-celeste); }
/* Menú móvil (hamburguesa): oculto en escritorio; se activa en el @media de abajo. */
.nav-toggle { display: none; background: transparent; border: 0; color: inherit; cursor: pointer; padding: 4px; align-items: center; }
.menu-movil { display: none; }

/* Hero */
.hero { background: var(--achm-azul-corp); color: #fff; padding: 96px 0; }
.eyebrow { font-family: var(--font-title); font-weight: 600; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: #7CD3DF; margin: 0; }
.hero h1 { font-weight: 800; font-size: clamp(36px, 6vw, 58px); line-height: 1.02; margin: 12px 0 0; }
.hero h1 span { color: var(--achm-celeste); }
.hero .lead { font-size: clamp(15px, 1.6vw, 18px); line-height: 1.6; color: #c7d6e2; margin: 18px 0 0; max-width: 480px; }
.cta { display: flex; gap: 14px; margin-top: 28px; flex-wrap: wrap; }
.btn { font-family: var(--font-title); font-weight: 600; font-size: 15px; padding: 13px 24px; border-radius: 10px; text-decoration: none; display: inline-block; border: 0; cursor: pointer; transition: transform .18s, filter .18s; }
.btn:hover { transform: translateY(-2px); }
.pri { background: var(--achm-rojo); color: #fff; }
.ghost { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.45); }
.stat { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 26px; max-width: 560px; }
.stat b { font-family: var(--font-title); font-weight: 800; font-size: 30px; display: block; line-height: 1; }
.stat small { font-size: 12px; color: #9fb6c9; }
@media (max-width: 600px) { .stat { max-width: 320px; } }

/* Secciones / tarjetas */
.sec { padding: 84px 40px; }
.sec h2 { font-size: clamp(26px, 3.4vw, 38px); font-weight: 700; color: var(--achm-azul-corp); margin: 8px 0 0; }
.grid { display: grid; gap: 20px; margin-top: 40px; }
.g3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.card { background: #fff; border: .5px solid var(--line); border-radius: var(--radius); padding: 26px; text-decoration: none; transition: transform .2s, box-shadow .2s; display: block; }
.card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(10,26,58,.10); }
.card h3 { font-size: 18px; font-weight: 600; color: var(--achm-azul-corp); margin: 0 0 6px; }
.card p { margin: 0 0 14px; color: #5a6775; font-size: 14.5px; line-height: 1.55; }
.card .go { font-family: var(--font-title); font-weight: 600; font-size: 14px; color: var(--achm-rojo); }

/* Footer */
.site-footer { background: var(--achm-azul-corp); color: #cdd9e3; padding: 64px 0 30px; }
.fgrid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 34px; }
.flogo { height: 56px; width: auto; display: block; margin-bottom: 14px; }
.ftag { font-size: 14px; line-height: 1.6; color: #aebfcd; max-width: 280px; }
.site-footer h4 { font-family: var(--font-title); font-weight: 600; color: #fff; font-size: 14px; letter-spacing: 1px; text-transform: uppercase; margin: 0 0 14px; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin: 0 0 9px; font-size: 14px; }
.site-footer a { color: #aebfcd; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.fsocial { display: flex; gap: 10px; margin-top: 16px; }
.fsocial li { margin: 0; }
.fsocial a { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: rgba(255, 255, 255, .08); color: #cdd9e3; transition: background .18s, color .18s, transform .18s; }
.fsocial a:hover { background: var(--achm-turquesa); color: #fff; transform: translateY(-2px); }
.fbar { border-top: .5px solid rgba(255,255,255,.12); margin-top: 40px; padding-top: 22px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 12.5px; color: #8a99a8; }

/* Páginas interiores */
.phead { position: relative; overflow: hidden; color: #fff; padding: 132px 0 64px;
  background:
    radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1.7px) 0 0 / 24px 24px,
    linear-gradient(118deg, #00273F 0%, #0E4975 55%, #0a5a6e 122%); }
.phead::after { content: ""; position: absolute; top: -45%; right: -6%; width: 540px; height: 540px; background: radial-gradient(circle, rgba(1, 129, 139, .5), transparent 62%); pointer-events: none; z-index: 0; }
/* Silueta punteada de Chile (las 346 comunas) — marca de agua sutil del header. */
.phead::before { content: ""; position: absolute; top: 50%; right: 3%; width: 250px; height: 150%; transform: translateY(-50%); z-index: 0; pointer-events: none;
  background: var(--achm-celeste);
  -webkit-mask: url("../img/chile-silueta.svg") no-repeat right center / auto 100%;
  mask: url("../img/chile-silueta.svg") no-repeat right center / auto 100%;
  opacity: .09; }
.phead .wrap { position: relative; z-index: 1; }
.crumbs { font-size: 13px; color: #9fb6c9; }
.crumbs a { color: #cdd9e3; text-decoration: none; }
.crumbs a:hover { color: #fff; }
.phead h1 { font-weight: 800; font-size: clamp(32px, 4.6vw, 50px); margin: 12px 0 0; line-height: 1.02; letter-spacing: -.5px; }
.phead p { color: #cfe0ec; font-size: 16.5px; max-width: 640px; margin: 14px 0 0; line-height: 1.6; }
.art-meta { color: #9fb6c9; font-size: 14px; }
.muted { color: #6a7785; font-size: 14px; }

.ngrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin-top: 18px; }
.ncard { background: #fff; border: .5px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.ncard:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(10,26,58,.10); }
.nthumb { display: block; height: 150px; background: linear-gradient(135deg, var(--achm-azul-corp), var(--achm-azul-desarrollo)); position: relative; overflow: hidden; }
.nthumb .thumb-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; z-index: 1; transition: transform .4s ease; }
.nthumb::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,39,63,.34), rgba(0,39,63,0) 50%); z-index: 1; pointer-events: none; }
.nthumb .chip { z-index: 2; }
.ncard:hover .nthumb .thumb-img { transform: scale(1.06); }
.chip { position: absolute; top: 12px; left: 12px; font-family: var(--font-title); font-size: 11px; font-weight: 600; padding: 4px 11px; border-radius: 20px; background: var(--achm-rojo); color: #fff; }
.nbody { padding: 16px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.ndate { font-size: 12px; color: #8a97a5; }
.ncard h3 { font-family: var(--font-title); font-size: 16px; font-weight: 600; line-height: 1.3; margin: 2px 0; }
.ncard h3 a { color: var(--achm-azul-corp); text-decoration: none; }
.ncard h3 a:hover { color: var(--achm-rojo); }
.ncard p { margin: 0; color: #5a6775; font-size: 14px; line-height: 1.5; }
.nauthor { font-size: 12.5px; color: #8a97a5; margin-top: auto; }

.pager { display: flex; gap: 8px; justify-content: center; margin-top: 44px; }
.pager a { min-width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 10px; border: .5px solid var(--line); font-family: var(--font-title); font-weight: 600; font-size: 14px; color: var(--achm-azul-corp); text-decoration: none; }
.pager a.on { background: var(--achm-azul-corp); color: #fff; border-color: var(--achm-azul-corp); }
.pager a:hover:not(.on) { border-color: var(--achm-turquesa); }

.prose { max-width: 760px; }
.prose p { font-size: 17px; line-height: 1.75; color: #2b3a4a; margin: 0 0 18px; }
/* Imágenes insertadas en el cuerpo desde el editor: nunca desbordan la columna y el
   párrafo que las contiene se centra (el pie de foto va en <em> bajo la imagen). */
.prose img { border-radius: var(--radius); max-width: 100%; height: auto; display: block; margin: 22px auto 6px; }
.prose p > img:only-child { margin-bottom: 6px; }
.prose p > em:only-child { display: block; text-align: center; font-size: 14.5px; color: #5a6775; margin: 0 0 20px; }
.prose a { color: var(--achm-azul-desarrollo); }
.prose .tbl-wrap, .prose table { margin: 22px 0; }
.prose table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.prose th, .prose td { border: 1px solid var(--achm-celeste); padding: 10px 13px; text-align: left; vertical-align: top; line-height: 1.5; color: #2b3a4a; }
.prose thead th, .prose th { background: var(--achm-celeste-soft, #e4f2fa); color: var(--achm-azul-corp); font-family: var(--font-title); font-weight: 700; font-size: 13.5px; }
.prose tbody tr:nth-child(even) { background: #f7fbfd; }
.prose ul, .prose ol { margin: 0 0 18px; padding-left: 4px; list-style: none; }
.prose ol { counter-reset: prose-li; }
.prose li { position: relative; padding-left: 28px; margin-bottom: 10px; font-size: 16px; line-height: 1.6; color: #2b3a4a; }
.prose ul li::before { content: ""; position: absolute; left: 6px; top: 11px; width: 7px; height: 7px; border-radius: 50%; background: var(--achm-turquesa); }
.prose ol li { counter-increment: prose-li; }
.prose ol li::before { content: counter(prose-li); position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%; background: var(--achm-celeste); color: var(--achm-azul-corp); font-family: var(--font-title); font-weight: 700; font-size: 11px; display: grid; place-items: center; }
.prose .back { margin-top: 30px; }
.prose .back a { color: var(--achm-rojo); font-family: var(--font-title); font-weight: 600; text-decoration: none; }

/* ===== Ficha de noticia (artículo de lectura) ===== */
.art-progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--achm-rojo); z-index: 200; transition: width .1s linear; }
/* Hero con foto destacada + velo de marca */
.art-hero { position: relative; background: var(--achm-azul-corp); color: #fff; display: flex; align-items: flex-end; min-height: 420px; overflow: hidden; }
.art-hero.has-img { min-height: 480px; }
.art-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: 0; }
.art-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,39,63,.4) 0%, rgba(0,39,63,.55) 45%, rgba(0,39,63,.93) 100%); z-index: 1; }
.art-hero-inner { position: relative; z-index: 2; padding: 44px 40px 48px; width: 100%; }
.art-hero .crumbs, .art-hero .crumbs a { color: rgba(255,255,255,.82); }
.art-cat { display: inline-block; font-family: var(--font-title); font-weight: 700; font-size: 12px; letter-spacing: .6px; text-transform: uppercase; color: #fff; background: var(--achm-rojo); padding: 6px 13px; border-radius: 100px; margin: 14px 0 0; }
.art-hero h1 { font-weight: 800; font-size: clamp(30px, 4.4vw, 52px); line-height: 1.06; margin: 16px 0 0; max-width: 940px; }
.art-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; font-size: 14.5px; color: #d6e2ec; font-family: var(--font-title); }
.art-author { display: inline-flex; align-items: center; gap: 9px; font-weight: 600; }
.art-avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--achm-turquesa); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 13px; }
.art-dot { opacity: .5; }
.art-read { display: inline-flex; align-items: center; gap: 6px; }
/* Cuerpo + rail de compartir */
.art-main { padding: 54px 40px 20px; }
.art-grid { display: grid; grid-template-columns: 52px minmax(0, 720px); gap: 40px; justify-content: center; align-items: start; }
.art-rail { position: sticky; top: 96px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.art-rail-lbl { font-family: var(--font-title); font-weight: 600; font-size: 10.5px; letter-spacing: .6px; text-transform: uppercase; color: #9aa7b3; margin-bottom: 4px; }
.art-sh { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--achm-azul-corp); display: grid; place-items: center; cursor: pointer; transition: background .18s, color .18s, border-color .18s, transform .15s; padding: 0; }
.art-sh:hover { background: var(--achm-azul-corp); color: #fff; border-color: var(--achm-azul-corp); transform: translateY(-2px); }
.art-sh.copied { background: var(--achm-turquesa); color: #fff; border-color: var(--achm-turquesa); }
/* Lead + prose del artículo */
.art-body.prose { max-width: none; }
.art-lead { font-family: var(--font-title); font-size: clamp(18px, 2vw, 21px); line-height: 1.55; font-weight: 500; color: var(--achm-azul-corp); margin: 0 0 26px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.art-body p { font-size: 18px; line-height: 1.8; color: #2b3a4a; margin: 0 0 20px; }
.art-body h2 { font-size: 26px; color: var(--achm-azul-corp); margin: 38px 0 12px; }
.art-body h3 { font-size: 21px; color: var(--achm-azul-corp); margin: 30px 0 10px; }
.art-body a { color: var(--achm-azul-desarrollo); text-decoration: underline; text-underline-offset: 2px; }
.art-body a:hover { color: var(--achm-rojo); }
.art-body img { border-radius: var(--radius); height: auto; margin: 12px 0; width: 100%; }
.art-body ul, .art-body ol { font-size: 18px; line-height: 1.75; color: #2b3a4a; padding-left: 22px; margin: 0 0 20px; }
.art-body li { margin: 0 0 8px; }
.art-body blockquote { margin: 28px 0; padding: 6px 0 6px 24px; border-left: 4px solid var(--achm-turquesa); font-family: var(--font-title); font-size: 20px; font-weight: 500; font-style: italic; color: var(--achm-azul-corp); line-height: 1.5; }
.art-foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 40px; padding-top: 26px; border-top: 1px solid var(--line); }
.art-tag { font-family: var(--font-title); font-weight: 600; font-size: 12.5px; color: var(--achm-azul-corp); background: var(--achm-celeste); padding: 7px 14px; border-radius: 100px; text-decoration: none; }
.art-tag:hover { background: var(--achm-turquesa); color: #fff; }
.art-back { font-family: var(--font-title); font-weight: 600; color: var(--achm-rojo); text-decoration: none; }
.art-back:hover { text-decoration: underline; }
.art-related { background: var(--paper); }
@media (max-width: 860px) {
  .art-hero-inner { padding: 32px 20px 34px; }
  .art-main { padding: 36px 20px 12px; }
  .art-grid { grid-template-columns: 1fr; gap: 24px; }
  .art-rail { position: static; flex-direction: row; justify-content: flex-start; gap: 10px; }
  .art-rail-lbl { margin: 0 4px 0 0; align-self: center; }
  .art-body p, .art-body ul, .art-body ol { font-size: 17px; }
}
/* Formularios públicos (p. ej. Contacto) */
.card form p { margin: 0 0 16px; }
.card form label { display: block; font-family: var(--font-title); font-weight: 600; font-size: 13px; color: var(--achm-azul-corp); margin-bottom: 6px; }
.card form input, .card form textarea { width: 100%; box-sizing: border-box; padding: 11px 14px; border: 1px solid var(--line); border-radius: 10px; font: inherit; font-size: 15px; color: var(--achm-azul-corp); background: #fff; }
.card form input:focus, .card form textarea:focus { outline: 2px solid var(--achm-turquesa); outline-offset: 1px; border-color: var(--achm-turquesa); }
.card form textarea { resize: vertical; min-height: 130px; }
.card form button { margin-top: 4px; background: var(--achm-rojo); color: #fff; border: 0; border-radius: 10px; padding: 13px 28px; font-family: var(--font-title); font-weight: 600; font-size: 15px; cursor: pointer; transition: transform .18s, filter .18s; }
.card form button:hover { transform: translateY(-2px); filter: brightness(1.05); }
/* Formulario de contacto: avisos, honeypot, consentimiento */
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.aviso { margin-bottom: 18px; }
.aviso-ok { border-left: 4px solid var(--achm-turquesa); }
.aviso-error { border-left: 4px solid var(--achm-rojo); }
.aviso ul { margin: 8px 0 0; padding-left: 20px; color: #5a6775; }
.consent label { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: #5a6775; }
.card form input[type="checkbox"] { width: auto; flex: 0 0 auto; margin-top: 3px; }

/* Módulo audiovisual: grid de videos (enlazan a YouTube; CSP-safe, sin iframe) */
.video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; margin-top: 30px; }
.video-card { display: flex; flex-direction: column; text-align: left; width: 100%; padding: 0; font: inherit; cursor: pointer; text-decoration: none; color: inherit; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; }
.video-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(10, 26, 58, .14); }
.video-card:hover .video-play { transform: scale(1.12); }
.video-play { transition: transform .18s ease; }
.video-thumb { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--achm-azul-corp); }
.video-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-play { position: absolute; inset: 0; margin: auto; width: 54px; height: 54px; display: grid; place-items: center; background: rgba(198, 37, 60, .92); color: #fff; border-radius: 50%; font-size: 18px; padding-left: 4px; }
.video-body { padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.video-title { font-family: var(--font-title); font-weight: 600; font-size: 15px; line-height: 1.3; color: var(--achm-azul-corp); }
.video-date { font-size: 12.5px; color: #6a7785; }
.av-note { margin-top: 22px; font-size: 13px; }

/* Botón primario (rojo de marca) — usado por la ficha de evento y el hero audiovisual. */
.btn.primary { background: var(--achm-rojo); color: #fff; }
.btn.primary:hover { filter: brightness(.93); }

/* ===== Audiovisual — experiencia tipo «Netflix» (hero + carruseles + modal) ===== */
.av { background: #0b1117; color: #fff; }
.av-hero { position: relative; min-height: 420px; overflow: hidden; }
.av-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 28%; }
.av-hero--carousel .av-hero-bg { transition: opacity .8s ease; }
.av-hero--carousel h1, .av-hero--carousel .av-hero-desc { transition: opacity .25s ease; }
.av-hero-dots { display: flex; gap: 9px; margin-top: 22px; }
.av-hero-dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .32); cursor: pointer; transition: background .2s, width .2s; }
.av-hero-dot.is-active { width: 26px; border-radius: 6px; background: var(--achm-rojo); }
.av-hero-dot:hover { background: rgba(255, 255, 255, .6); }
.av-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,17,23,.92), rgba(11,17,23,.55) 42%, rgba(11,17,23,.25)), linear-gradient(0deg, #0b1117 2%, transparent 42%); }
.av-hero-inner { position: relative; z-index: 2; padding: 134px 40px 56px; width: 100%; }
.av-hero .crumbs, .av-hero .crumbs a { color: rgba(255,255,255,.7); }
.av-hero .eyebrow { color: var(--achm-celeste); }
.av-hero h1 { color: #fff; font-weight: 800; font-size: clamp(28px, 4vw, 48px); line-height: 1.05; margin: 12px 0 0; max-width: 720px; }
.av-hero-desc { color: #c7d2db; font-size: 16px; line-height: 1.6; margin: 14px 0 0; max-width: 560px; }
.av-hero-actions { display: flex; align-items: center; gap: 18px; margin-top: 24px; flex-wrap: wrap; }
.av-play { display: inline-flex; align-items: center; gap: 8px; }
.av-hero-date { color: #9fb0bd; font-family: var(--font-title); font-size: 13.5px; }
.av-rows { padding: 30px 0 54px; }
.av-row { margin: 6px 0 30px; }
.av-row h2 { color: #fff; font-size: 19px; margin: 0 0 14px; padding: 0 40px; }
.av-track { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-left: 40px; padding: 6px 40px 16px; scrollbar-width: thin; scrollbar-color: #2a3744 transparent; }
.av-track::-webkit-scrollbar { height: 8px; }
.av-track::-webkit-scrollbar-thumb { background: #2a3744; border-radius: 8px; }
.av-card { flex: 0 0 auto; width: 280px; scroll-snap-align: start; background: none; border: 0; padding: 0; cursor: pointer; text-align: left; color: inherit; display: flex; flex-direction: column; gap: 9px; transition: transform .2s ease; }
.av-card:hover, .av-card:focus-visible { transform: scale(1.045); outline: none; }
.av-card-thumb { position: relative; display: block; aspect-ratio: 16/9; border-radius: 10px; overflow: hidden; background: #1a2530; box-shadow: 0 8px 22px rgba(0,0,0,.4); }
.av-card-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter .2s; }
.av-card:hover .av-card-thumb img, .av-card:focus-visible .av-card-thumb img { filter: brightness(.78); }
.av-card-play { position: absolute; inset: 0; margin: auto; width: 48px; height: 48px; border-radius: 50%; background: rgba(198,37,60,.95); color: #fff; display: grid; place-items: center; opacity: 0; transform: scale(.8); transition: opacity .2s, transform .2s; }
.av-card-play svg { margin-left: 2px; }
.av-card:hover .av-card-play, .av-card:focus-visible .av-card-play { opacity: 1; transform: scale(1); }
.av-card-thumb::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--achm-rojo); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.av-card:hover .av-card-thumb::after, .av-card:focus-visible .av-card-thumb::after { transform: scaleX(1); }
/* Badge «Material» en videos con archivos descargables + lista en el modal. */
.av-card-mat { position: absolute; left: 8px; bottom: 8px; z-index: 2; display: inline-flex; align-items: center; gap: 4px; font-family: var(--font-title); font-weight: 600; font-size: 11px; color: #fff; background: rgba(1, 129, 139, .94); padding: 3px 9px 3px 7px; border-radius: 100px; box-shadow: 0 2px 8px rgba(0, 0, 0, .3); }
.av-modal-files { margin-top: 14px; }
.av-modal-files-h { font-family: var(--font-title); font-weight: 700; font-size: 13px; letter-spacing: .3px; text-transform: uppercase; color: #fff; opacity: .85; margin: 0 0 9px; }
.av-modal-files ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 9px; }
.av-modal-files a { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-title); font-weight: 600; font-size: 13.5px; color: #fff; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .24); border-radius: 100px; padding: 8px 16px; text-decoration: none; transition: background .15s, border-color .15s; }
.av-modal-files a::before { content: "↓"; font-size: 15px; opacity: .85; }
.av-modal-files a:hover { background: rgba(255, 255, 255, .22); border-color: rgba(255, 255, 255, .4); }
.av-card-meta { display: flex; flex-direction: column; gap: 3px; }
.av-card-title { font-family: var(--font-title); font-weight: 600; font-size: 14px; color: #e8eef3; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.av-card-date { font-size: 12px; color: #8294a2; }
/* Modal de reproducción in-situ */
.av-modal[hidden] { display: none; }
.av-modal { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 24px; }
.av-modal-backdrop { position: absolute; inset: 0; background: rgba(2,6,10,.86); }
.av-modal-dialog { position: relative; z-index: 1; width: min(1000px, 100%); }
.av-modal-frame { position: relative; aspect-ratio: 16/9; background: #000; border-radius: 12px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.6); }
.av-modal-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.av-modal-close { position: absolute; top: -46px; right: 0; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); color: #fff; cursor: pointer; display: grid; place-items: center; transition: background .15s, border-color .15s; }
.av-modal-close:hover { background: var(--achm-rojo); border-color: var(--achm-rojo); }
.av-modal-title { color: #e8eef3; font-family: var(--font-title); font-weight: 600; font-size: 16px; margin: 14px 2px 0; }
.av-noscroll { overflow: hidden; }
@media (max-width: 680px) {
  .av-hero { min-height: 340px; }
  .av-hero-inner { padding: 100px 20px 30px; }
  .av-row h2 { padding: 0 20px; font-size: 17px; }
  .av-track { padding: 6px 20px 16px; scroll-padding-left: 20px; }
  .av-card { width: 230px; }
  .av-modal { padding: 14px; }
  .av-modal-close { top: -44px; }
}

/* Banner de consentimiento de cookies (GA4) */
.cookie-consent { position: fixed; bottom: 0; left: 0; right: 0; z-index: 60; background: var(--achm-azul-corp); color: #fff; padding: 16px 22px; display: flex; gap: 18px; align-items: center; justify-content: center; flex-wrap: wrap; box-shadow: 0 -6px 24px rgba(0, 18, 30, .25); }
.cookie-consent[hidden] { display: none; } /* la clase pisaba al atributo hidden → no se ocultaba al aceptar */

/* Buscador modal (en vivo) */
.search-modal { border: 0; border-radius: 16px; padding: 0; width: 92vw; max-width: 640px; margin: 9vh auto auto; box-shadow: 0 32px 90px rgba(0, 18, 30, .45); overflow: hidden; }
.search-modal::backdrop { background: rgba(0, 39, 63, .55); }
.sm-head { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.sm-form { flex: 1; display: flex; }
.sm-input { width: 100%; border: 0; font-family: var(--font-title); font-size: 18px; color: var(--achm-azul-corp); outline: none; background: transparent; }
.sm-input::placeholder { color: #9aa6b2; }
.sm-close { border: 0; background: transparent; font-size: 18px; color: #6a7785; cursor: pointer; line-height: 1; }
.sm-results { max-height: 56vh; overflow-y: auto; }
.sm-item { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 13px 18px; text-decoration: none; color: var(--achm-azul-corp); border-bottom: .5px solid var(--line); }
.sm-item:hover { background: var(--paper); }
.sm-t { font-size: 14.5px; line-height: 1.35; }
.sm-m { font-size: 12px; color: #8a96a3; white-space: nowrap; }
.sm-empty { padding: 26px 18px; color: #6a7785; margin: 0; }
.sm-more { display: block; padding: 14px 18px; color: var(--achm-rojo); font-family: var(--font-title); font-weight: 600; font-size: 14px; text-decoration: none; background: var(--paper); }
.sm-more:hover { filter: brightness(.97); }

/* Agenda pública (/agenda) + ficha de evento (/agenda/{slug}) */
.ag-count { font-family: var(--font-title); font-size: 13px; font-weight: 600; color: var(--achm-turquesa); background: var(--achm-celeste); border-radius: 20px; padding: 3px 13px; margin-left: auto; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ag-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 24px; }
.ag-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; transition: transform .22s ease, box-shadow .22s ease; }
.ag-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(10, 26, 58, .16); }
.ag-thumb { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background:
  radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1.6px) 0 0 / 18px 18px,
  linear-gradient(135deg, #00273F, #0E4975 58%, #01818B); }
.ag-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.ag-card:hover .ag-thumb img { transform: scale(1.05); }
.ag-thumb-ph, .ev-feat-ph { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; color: rgba(255, 255, 255, .82); }
.ag-thumb-ph svg, .ev-feat-ph svg { color: var(--achm-celeste); opacity: .9; }
.ag-thumb-ph span, .ev-feat-ph span { font-family: var(--font-title); font-weight: 700; font-size: 13px; letter-spacing: 3px; }
.ag-thumb-ph.is-feat svg { width: 52px; height: 52px; }
.ag-badge { position: absolute; top: 12px; right: 12px; font-family: var(--font-title); font-size: 11.5px; font-weight: 600; color: #fff; background: rgba(0, 39, 63, .82); border-radius: 20px; padding: 4px 11px; }
.ag-badge.web { background: rgba(1, 129, 139, .92); }
.ag-card.is-past .ag-thumb img { filter: grayscale(.35); }
.ag-body { display: flex; flex-direction: column; flex: 1; padding: 16px 18px 18px; }
.ag-date { font-family: var(--font-title); font-size: 12.5px; font-weight: 600; color: var(--achm-turquesa); margin: 0 0 6px; }
.ag-card h3 { font-size: 16px; line-height: 1.35; margin: 0 0 14px; }
.ag-card h3 a { color: var(--achm-azul-corp); text-decoration: none; }
.ag-card h3 a:hover { text-decoration: underline; }
.ag-actions { margin-top: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.ag-card[hidden] { display: none; }

/* Pop-up / aviso del sitio (configurable desde admin) */
.site-popup { position: fixed; inset: 0; z-index: 220; display: flex; align-items: center; justify-content: center; padding: 24px; }
.site-popup[hidden] { display: none; }
.site-popup-backdrop { position: absolute; inset: 0; background: rgba(4, 18, 33, .68); backdrop-filter: blur(2px); }
.site-popup-card { position: relative; z-index: 1; width: min(468px, 100%); background: #fff; border-radius: 22px; text-align: center; box-shadow: 0 30px 80px rgba(0, 0, 0, .4); overflow: hidden;
  animation: popIn .35s cubic-bezier(.22,1,.36,1) both; }
@keyframes popIn { from { opacity: 0; transform: translateY(18px) scale(.96); } to { opacity: 1; transform: none; } }
.site-popup-close { position: absolute; top: 12px; right: 12px; z-index: 3; display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 10px; background: rgba(3,12,22,.42); backdrop-filter: blur(6px); color: #fff; cursor: pointer; transition: background .15s; }
.site-popup-close:hover { background: rgba(3,12,22,.66); }
/* Cabecera con imagen real (o degradado de marca + silueta de Chile como respaldo) */
.site-popup-media { position: relative; height: 178px; overflow: hidden; background: linear-gradient(120deg, var(--achm-azul-corp, #00273F), var(--achm-azul-desarrollo, #0E4975) 46%, var(--achm-turquesa, #01818B)); display: flex; align-items: flex-end; }
.site-popup-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Con imagen adjunta, el área crece según la proporción real del archivo y la muestra
   COMPLETA (sin recorte), con tope para no desbordar en pantallas bajas. La clase de
   proporción la calcula el template (la CSP no admite estilos inline). */
/* `width: 100%` es obligatorio: con aspect-ratio + max-height el navegador encoge el
   ANCHO para conservar la proporción y el área quedaría angosta dentro de la tarjeta. */
.site-popup-media.has-img { width: 100%; height: auto; max-height: min(48vh, 520px); }
.site-popup-media.has-img img { flex: 1 0 100%; object-fit: contain; }
.site-popup-media--16x9 { aspect-ratio: 16 / 9; }
.site-popup-media--4x3 { aspect-ratio: 4 / 3; }
.site-popup-media--1x1 { aspect-ratio: 1 / 1; }
.site-popup-media--4x5 { aspect-ratio: 4 / 5; }
.site-popup-media--3x4 { aspect-ratio: 3 / 4; }
/* El aviso completo nunca excede la pantalla (imágenes verticales altas). */
.site-popup-card { max-height: calc(100vh - 48px); overflow-y: auto; }
.site-popup-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,20,34,0) 40%, rgba(0,20,34,.62) 100%); }
.site-popup-card--brand .site-popup-media { align-items: center; justify-content: center; }
.site-popup-iso { position: absolute; right: -6%; top: 50%; transform: translateY(-50%); height: 150%; width: auto; opacity: .16; filter: brightness(0) invert(1); }
.site-popup-eyebrow { position: absolute; left: 22px; bottom: 14px; z-index: 2; font-family: var(--font-title); font-weight: 700; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #fff;
  background: var(--achm-rojo, #C6253C); padding: 5px 12px; border-radius: 100px; box-shadow: 0 4px 12px rgba(198,37,60,.4); }
.site-popup-body { padding: 22px 32px 30px; }
.site-popup-card h2 { font-family: var(--font-title); font-weight: 800; font-size: 24px; color: var(--achm-azul-corp); margin: 2px 0 10px; line-height: 1.18; }
.site-popup-card p { font-size: 15.5px; line-height: 1.6; color: #44525f; margin: 0 0 22px; }
.site-popup-cta { display: inline-flex; align-items: center; gap: 8px; }
.site-popup-cta svg { transition: transform .18s; }
.site-popup-cta:hover svg { transform: translateX(3px); }

/* Capacitaciones — UI tipo LMS (selector de formato + paneles) */
.cap-formatos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.cap-format { position: relative; display: flex; align-items: center; gap: 14px; text-align: left; padding: 20px 22px; border-radius: 16px; background: #fff; border: 1px solid var(--line); cursor: pointer; font: inherit; box-shadow: 0 6px 18px rgba(10, 26, 58, .05); transition: border-color .15s, box-shadow .15s, transform .15s; }
.cap-format:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(10, 26, 58, .1); }
.cap-format.is-active { border-color: var(--achm-turquesa); box-shadow: 0 0 0 2px var(--achm-turquesa), 0 14px 32px rgba(1, 129, 139, .14); }
.cap-format.is-soon { cursor: pointer; }
.cap-format-ic { flex: 0 0 auto; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--achm-celeste); color: var(--achm-azul-corp); }
.cap-format.is-active .cap-format-ic { background: var(--achm-turquesa); color: #fff; }
.cap-format-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cap-format-txt strong { font-family: var(--font-title); font-weight: 700; font-size: 16.5px; color: var(--achm-azul-corp); line-height: 1.2; }
.cap-format-meta { font-size: 13px; color: #6a7785; }
.cap-soon-badge { position: absolute; top: 12px; right: 12px; font-family: var(--font-title); font-weight: 700; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: var(--achm-azul-desarrollo); border-radius: 20px; padding: 3px 9px; }
.cap-panels { margin-top: 30px; }
.cap.js-tabs .cap-panel:not(.is-active) { display: none; }
.cap-panel-h { font-size: 22px; color: var(--achm-azul-corp); margin: 0 0 20px; }
.cap-panel .ag-grid { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.cap-empty { color: #5a6775; font-size: 15.5px; }
.cap-empty a { color: var(--achm-azul-desarrollo); }
.cap-soon { max-width: 640px; margin: 10px auto; text-align: center; background: linear-gradient(160deg, #fff, var(--paper)); border: 1px solid var(--line); border-radius: 20px; padding: 44px 36px; box-shadow: 0 14px 38px rgba(10, 26, 58, .06); }
.cap-soon-ic { display: inline-grid; place-items: center; width: 78px; height: 78px; border-radius: 20px; background: var(--achm-celeste); color: var(--achm-azul-corp); margin-bottom: 18px; }
.cap-soon h2 { font-size: 24px; margin: 0 0 10px; }
.cap-soon p { font-size: 16px; line-height: 1.7; color: #44525f; margin: 0 0 22px; }
.cap-foot { margin-top: 34px; }
@media (max-width: 760px) { .cap-formatos { grid-template-columns: 1fr; } }

/* Agenda — próxima actividad destacada */
.ag-prox { padding-bottom: 16px; }
.ag-grid--prox { margin-top: 18px; margin-bottom: 8px; }
.ag-group-title { display: flex; align-items: center; gap: 10px; font-family: var(--font-title); font-weight: 700; font-size: 19px; color: var(--achm-azul-corp); margin: 34px 0 0; }
.ag-group-n { font-family: var(--font-title); font-weight: 700; font-size: 12.5px; color: #fff; background: var(--achm-turquesa); border-radius: 20px; padding: 2px 10px; }
.ag-featured { display: grid; grid-template-columns: minmax(0, 1.05fr) 1fr; background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: 0 16px 44px rgba(10, 26, 58, .09); margin-top: 22px; }
.ag-featured-media { position: relative; display: block; min-height: 290px; overflow: hidden; background:
  radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1.6px) 0 0 / 20px 20px,
  linear-gradient(135deg, #00273F, #0E4975 58%, #01818B); }
.ag-featured-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ag-featured-media .ag-badge { top: 16px; right: 16px; }
.ag-featured-body { padding: 34px 38px; display: flex; flex-direction: column; align-items: flex-start; }
.ag-featured-pill { font-family: var(--font-title); font-weight: 600; font-size: 11.5px; letter-spacing: .5px; text-transform: uppercase; color: #fff; background: var(--achm-rojo); border-radius: 100px; padding: 5px 13px; }
.ag-featured-body .ag-date { margin: 18px 0 0; font-size: 13.5px; }
.ag-featured-body h3 { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.15; margin: 8px 0 0; }
.ag-featured-body h3 a { color: var(--achm-azul-corp); text-decoration: none; }
.ag-featured-body h3 a:hover { color: var(--achm-rojo); }
.ag-featured-desc { color: #475561; font-size: 15.5px; line-height: 1.6; margin: 14px 0 0; }
.ag-featured .ag-actions { margin-top: 24px; }

/* Agenda — filtros del archivo (año / modalidad / búsqueda) */
.ag-archivo-sec { padding-top: 10px; }
.ag-filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 22px 0 28px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.ag-search { display: flex; align-items: center; gap: 9px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 9px 14px; flex: 1 1 240px; max-width: 340px; }
.ag-search svg { color: #8a97a5; flex: 0 0 auto; }
.ag-search input { flex: 1; border: 0; background: transparent; font: inherit; font-size: 14.5px; color: var(--achm-azul-corp); outline: none; min-width: 0; }
.ag-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.ag-chip { font-family: var(--font-title); font-weight: 600; font-size: 13px; color: var(--achm-azul-corp); background: #fff; border: 1px solid var(--line); border-radius: 100px; padding: 7px 14px; cursor: pointer; transition: background .15s, color .15s, border-color .15s; display: inline-flex; align-items: center; gap: 6px; }
.ag-chip:hover { border-color: var(--achm-turquesa); }
.ag-chip.is-on { background: var(--achm-azul-corp); color: #fff; border-color: var(--achm-azul-corp); }
.ag-chip-n { font-size: 11px; font-variant-numeric: tabular-nums; opacity: .6; }
.ag-chip.is-on .ag-chip-n { opacity: .8; }
.ag-chip:focus-visible, .ag-reset:focus-visible { outline: 2px solid var(--achm-azul-desarrollo); outline-offset: 2px; }
.ag-empty { padding: 44px 0; text-align: center; color: #6a7785; }
.ag-reset { font: inherit; font-family: var(--font-title); font-weight: 600; color: var(--achm-rojo); background: none; border: 0; cursor: pointer; text-decoration: underline; padding-left: 4px; }

/* Agenda — archivo como "agenda real": línea de tiempo por año */
.ag-timeline { position: relative; max-width: 840px; margin: 0 auto; }
.ag-timeline::before { content: ""; position: absolute; left: 74px; top: 14px; bottom: 14px; width: 2px; background: linear-gradient(var(--achm-celeste), var(--line)); }
.ag-year { position: relative; margin: 32px 0 12px; padding-left: 92px; }
.ag-year:first-child { margin-top: 4px; }
.ag-year[hidden] { display: none; }
.ag-year span { font-family: var(--font-title); font-weight: 700; font-size: 20px; color: var(--achm-azul-corp); background: var(--paper); padding-right: 12px; position: relative; }
.ag-year::before { content: ""; position: absolute; left: 68px; top: 6px; width: 15px; height: 15px; border-radius: 50%; background: var(--achm-rojo); border: 3px solid var(--paper); box-shadow: 0 0 0 1px var(--line); }
.ag-entry { position: relative; display: grid; grid-template-columns: 58px 1fr; gap: 34px; padding: 7px 0; align-items: start; }
.ag-entry[hidden] { display: none; }
.ag-entry::before { content: ""; position: absolute; left: 69px; top: 16px; width: 11px; height: 11px; border-radius: 50%; background: #fff; border: 2px solid var(--achm-turquesa); z-index: 1; }
.ag-entry-date { text-align: center; padding-top: 8px; }
.ag-entry-date b { display: block; font-family: var(--font-title); font-weight: 800; font-size: 22px; color: var(--achm-azul-corp); line-height: 1; font-variant-numeric: tabular-nums; }
.ag-entry-date span { display: block; font-family: var(--font-title); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; color: var(--achm-turquesa); margin-top: 3px; }
.ag-entry-card { display: flex; align-items: center; gap: 15px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px 12px 12px; text-decoration: none; transition: transform .18s, box-shadow .18s, border-color .18s; }
.ag-entry-card:hover { transform: translateX(4px); box-shadow: 0 12px 30px rgba(10, 26, 58, .1); border-color: var(--achm-celeste); }
.ag-entry-thumb { flex: 0 0 auto; width: 86px; height: 64px; border-radius: 9px; overflow: hidden; background: var(--achm-azul-corp); }
.ag-entry-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ag-entry-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ag-entry-mod { align-self: flex-start; font-family: var(--font-title); font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .4px; color: var(--achm-azul-desarrollo); background: var(--achm-celeste); border-radius: 100px; padding: 2px 9px; }
.ag-entry-mod.web { color: #fff; background: var(--achm-turquesa); }
.ag-entry-title { font-family: var(--font-title); font-weight: 600; font-size: 15px; color: var(--achm-azul-corp); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ag-entry-place { font-size: 12.5px; color: #6a7785; }
.ag-entry-arrow { flex: 0 0 auto; margin-left: auto; color: var(--achm-rojo); font-weight: 700; opacity: 0; transition: opacity .18s, transform .18s; }
.ag-entry-card:hover .ag-entry-arrow { opacity: 1; transform: translateX(2px); }

@media (max-width: 760px) {
  .ag-featured { grid-template-columns: 1fr; }
  .ag-featured-media { min-height: 0; aspect-ratio: 16 / 9; }
  .ag-featured-body { padding: 24px 22px; }
  .ag-count { margin-left: 0; width: 100%; }
}
@media (max-width: 600px) {
  .ag-timeline::before { left: 50px; }
  .ag-year { padding-left: 66px; }
  .ag-year::before { left: 43px; }
  .ag-entry { grid-template-columns: 40px 1fr; gap: 26px; }
  .ag-entry::before { left: 45px; }
  .ag-entry-date b { font-size: 17px; }
  .ag-entry-thumb { display: none; }
}

.btn-sm { font-family: var(--font-title); font-size: 13px; font-weight: 600; text-decoration: none; border-radius: 8px; padding: 8px 14px; border: 1.5px solid var(--achm-azul-corp); color: var(--achm-azul-corp); transition: background .2s, color .2s; }
.btn-sm:hover { background: var(--achm-azul-corp); color: #fff; }
.btn-sm.primary { background: var(--achm-rojo); border-color: var(--achm-rojo); color: #fff; }
.btn-sm.primary:hover { filter: brightness(.93); background: var(--achm-rojo); color: #fff; }

/* Ficha de evento */
.ev-detail { display: grid; grid-template-columns: 1fr 320px; gap: 36px; align-items: start; }
.ev-main { min-width: 0; }
.ev-flyer { width: 100%; height: auto; border-radius: 14px; border: 1px solid var(--line); display: block; margin-bottom: 22px; }
.ev-main h1 { font-size: clamp(24px, 3.2vw, 34px); color: var(--achm-azul-corp); line-height: 1.15; margin: 0 0 18px; }
.ev-aside { position: sticky; top: 96px; }
.ev-card { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 20px 22px; }
.ev-meta { display: flex; justify-content: space-between; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--line); margin: 0; }
.ev-meta:first-child { padding-top: 0; }
.ev-k { font-family: var(--font-title); font-size: 12.5px; font-weight: 600; color: #6a7785; text-transform: uppercase; letter-spacing: .5px; }
.ev-v { color: var(--achm-azul-corp); font-weight: 500; text-align: right; }
.btn.block { display: block; text-align: center; width: 100%; margin-top: 18px; box-sizing: border-box; }
.ev-past-note { font-size: 13px; color: #6a7785; margin: 14px 0 0; }
/* Par simétrico Inscripción / Programa en el lateral (reemplaza los botones-imagen del flyer). */
.ev-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 6px; }
.ev-actions.is-single { grid-template-columns: 1fr; }
.ev-act { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 15px 10px; border-radius: 12px; font-family: var(--font-title); font-weight: 700; font-size: 14px; line-height: 1.15; text-align: center; text-decoration: none; transition: transform .12s, box-shadow .15s, background .15s; }
.ev-act svg { flex: 0 0 auto; }
.ev-act--insc { background: var(--achm-rojo); color: #fff; }
.ev-act--insc:hover { background: #a81e30; }
.ev-act--prog { background: var(--achm-azul-corp); color: #fff; }
.ev-act--prog:hover { background: var(--achm-azul-dev, #0E4975); }
.ev-act:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 20, 40, .16); }
.ev-act:focus-visible { outline: 2px solid var(--achm-turquesa); outline-offset: 2px; }
.ev-actions + .ev-enlace, .ev-act ~ .ev-enlace { margin-top: 10px; }
.btn.block.ev-enlace { margin-top: 10px; }
.ev-back { display: inline-block; margin-top: 18px; font-family: var(--font-title); font-weight: 600; color: var(--achm-rojo); text-decoration: none; }
.ev-back:hover { text-decoration: underline; }

/* Ficha de evento — hero llamativo (gradiente de marca autorizado) */
.ev-hero { position: relative; overflow: hidden; color: #fff; padding: 120px 0 74px;
  background:
    radial-gradient(660px 420px at 88% -12%, rgba(1, 129, 139, .32), transparent 60%),
    linear-gradient(120deg, var(--achm-azul-corp) 0%, var(--achm-azul-desarrollo) 52%, var(--achm-turquesa) 122%); }
.ev-hero .wrap { position: relative; z-index: 1; }
/* Silueta punteada de Chile (las 346 comunas) — marca de agua sutil. */
.ev-hero::before { content: ""; position: absolute; top: 50%; right: 2%; width: 230px; height: 150%; transform: translateY(-50%); z-index: 0; pointer-events: none;
  background: var(--achm-celeste);
  -webkit-mask: url("../img/chile-silueta.svg") no-repeat right center / auto 100%;
  mask: url("../img/chile-silueta.svg") no-repeat right center / auto 100%;
  opacity: .1; }
/* Corte de papel rasgado inferior. */
.ev-hero::after { display: none; }
.ev-hero .crumbs, .ev-hero .crumbs a { color: rgba(255, 255, 255, .85); }
.ev-hero .eyebrow { color: rgba(255, 255, 255, .92); }
.ev-hero h1 { font-weight: 800; font-size: clamp(26px, 3.6vw, 42px); line-height: 1.08; margin: 12px 0 0; max-width: 900px; color: #fff; }
.ev-hero-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.ev-htag { font-family: var(--font-title); font-weight: 600; font-size: 13px; color: #fff; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .28); border-radius: 100px; padding: 6px 15px; }
.ev-htag--estado.is-next { background: #fff; color: var(--achm-rojo); border-color: #fff; }
.ev-htag--estado.is-past { background: rgba(0, 0, 0, .16); border-color: rgba(255, 255, 255, .2); }
/* Tarjeta de información (fecha/hora/modalidad/lugar + estado) */
.ev-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ev-card-head h2 { font-size: 18px; color: var(--achm-azul-corp); margin: 0; }
.ev-estado { font-family: var(--font-title); font-weight: 600; font-size: 11px; letter-spacing: .4px; text-transform: uppercase; border-radius: 100px; padding: 4px 11px; white-space: nowrap; }
.ev-estado.is-next { background: var(--achm-rojo); color: #fff; }
.ev-estado.is-past { background: var(--achm-celeste); color: var(--achm-azul-desarrollo); }
.ev-info { list-style: none; margin: 16px 0 0; padding: 0; }
.ev-info li { display: flex; gap: 13px; align-items: flex-start; padding: 13px 0; border-top: 1px solid var(--line); }
.ev-info li:first-child { border-top: 0; padding-top: 2px; }
.ev-ic { flex: 0 0 auto; width: 36px; height: 36px; border-radius: 10px; background: #fff; border: 1px solid var(--line); color: var(--achm-azul-desarrollo); display: grid; place-items: center; }
.ev-info li > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ev-info b { font-family: var(--font-title); font-size: 11.5px; font-weight: 600; letter-spacing: .4px; text-transform: uppercase; color: #8a97a5; }
.ev-info li > div span { color: var(--achm-azul-corp); font-size: 15px; word-break: break-word; }
@media (max-width: 820px) { .ev-detail { grid-template-columns: 1fr; gap: 24px; } .ev-aside { position: static; } }

/* Home — Agenda vigente: evento destacado (con flyer) + mini-cards de los próximos */
.agenda-feat-wrap { display: flex; flex-direction: column; gap: 26px; margin-top: 30px; }
/* Estado vacío de la agenda: en vez de dejar un hueco, invita a ver lo ya realizado. */
.agenda-empty { display: flex; align-items: center; gap: 22px; margin-top: 26px; padding: 28px 32px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 12px 30px rgba(10, 26, 58, .06); flex-wrap: wrap; }
.agenda-empty-ic { flex: 0 0 auto; width: 60px; height: 60px; display: grid; place-items: center; border-radius: 16px; background: var(--achm-celeste); color: var(--achm-azul-corp); }
.agenda-empty-txt { flex: 1 1 300px; min-width: 0; }
.agenda-empty-txt h3 { font-family: var(--font-title); font-weight: 700; font-size: 19px; color: var(--achm-azul-corp); margin: 0 0 5px; }
.agenda-empty-txt p { font-size: 14.5px; color: #5a6b78; line-height: 1.5; margin: 0; }
.agenda-empty-cta { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 620px) { .agenda-empty { padding: 22px; } .agenda-empty-cta { width: 100%; text-align: center; } }
/* La caja del flyer respeta su orientación + cover, para que llene sin espacios a los lados */
.ev-feat-img.is-vert, .ev-mini-thumb.is-vert, .ag-thumb.is-vert { aspect-ratio: 3 / 4; }
.ev-feat-img.is-horiz, .ev-mini-thumb.is-horiz, .ag-thumb.is-horiz { aspect-ratio: 4 / 3; }
.ev-feat-img.is-sq, .ev-mini-thumb.is-sq, .ag-thumb.is-sq { aspect-ratio: 1 / 1; }
.ev-feat { display: grid; grid-template-columns: minmax(0, 360px) 1fr; background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: 0 16px 40px rgba(10, 26, 58, .12); }
.ev-feat-img { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; background:
  radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1.6px) 0 0 / 18px 18px,
  linear-gradient(135deg, #00273F, #0E4975 58%, #01818B); }
.ev-feat-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .55s cubic-bezier(.2, .7, .2, 1); }
.ev-feat:hover .ev-feat-img img { transform: scale(1.03); }
.ev-mini-ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-family: var(--font-title); font-weight: 800; letter-spacing: 2px; opacity: .55; }
.ev-feat-body { padding: 36px 40px; display: flex; flex-direction: column; }
.ev-feat-tag { font-family: var(--font-title); font-size: 12px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--achm-rojo); margin: 0 0 12px; }
.ev-feat-date { font-family: var(--font-title); font-size: 13.5px; font-weight: 600; color: var(--achm-turquesa); margin: 0 0 8px; }
.ev-feat-body h3 { font-size: clamp(19px, 2.1vw, 25px); line-height: 1.2; color: var(--achm-azul-corp); margin: 0 0 24px; }
.ev-feat-body h3 a { color: inherit; text-decoration: none; }
.ev-feat-body h3 a:hover { text-decoration: underline; }
.ev-feat-desc { color: #4a5763; font-size: 15px; line-height: 1.6; margin: 0 0 24px; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.ev-feat-actions { margin-top: auto; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ev-feat-more { font-family: var(--font-title); font-weight: 600; color: var(--achm-azul-corp); text-decoration: none; white-space: nowrap; }
.ev-feat-more:hover { color: var(--achm-rojo); }

.agenda-mini { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: start; }
.ev-mini { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; text-decoration: none; transition: transform .22s ease, box-shadow .22s ease; }
.ev-mini:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(10, 26, 58, .14); }
.ev-mini-thumb { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--achm-azul-corp); }
.ev-mini-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .45s ease; }
.ev-mini:hover .ev-mini-thumb img { transform: scale(1.04); }
.ev-mini .ag-badge { top: 10px; right: 10px; font-size: 10.5px; padding: 3px 9px; }
.ev-mini-info { padding: 18px 20px 20px; }
.ev-mini-date { display: block; font-family: var(--font-title); font-size: 12px; font-weight: 600; color: var(--achm-turquesa); margin-bottom: 7px; }
.ev-mini-title { font-size: 15px; line-height: 1.35; color: var(--achm-azul-corp); font-weight: 700; margin: 0 0 14px; min-height: 2.7em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ev-mini-title a { color: inherit; text-decoration: none; }
.ev-mini-title a:hover { color: var(--achm-rojo); }
.ev-mini-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ev-mini-more { font-family: var(--font-title); font-weight: 600; font-size: 13px; color: var(--achm-azul-corp); text-decoration: none; white-space: nowrap; }
.ev-mini-more:hover { color: var(--achm-rojo); }
@media (max-width: 860px) {
  .ev-feat { grid-template-columns: 1fr; }
  .ev-feat-img { aspect-ratio: 16 / 9; }
  .agenda-mini { grid-template-columns: 1fr; }
}
.cookie-consent p { margin: 0; font-size: 14px; max-width: 720px; line-height: 1.5; }
.cookie-consent a { color: var(--achm-celeste); }
.cookie-actions { display: flex; gap: 10px; flex-shrink: 0; }
.btn-cookie { font-family: var(--font-title); font-weight: 600; font-size: 13.5px; border: 0; border-radius: 8px; padding: 10px 20px; cursor: pointer; background: var(--achm-rojo); color: #fff; }
.btn-cookie.ghost { background: transparent; border: 1px solid rgba(255, 255, 255, .5); color: #fff; }
.btn-cookie:hover { filter: brightness(1.08); }

/* Directorio / estructura institucional */
.dir-h { font-family: var(--font-title); color: var(--achm-azul-corp); font-size: clamp(20px, 2.4vw, 26px); margin: 42px 0 18px; padding-bottom: 10px; border-bottom: 2px solid var(--achm-celeste); display: flex; align-items: baseline; gap: 10px; }
.dir-n { font-size: 13px; font-weight: 600; color: #fff; background: var(--achm-turquesa); border-radius: 20px; padding: 2px 10px; }
.dir-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.dir-card { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.dir-ini { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-title); font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--achm-azul-desarrollo), var(--achm-azul-corp)); font-size: 15px; }
.dir-foto { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; object-fit: cover; object-position: top center; background: var(--paper); }

/* Encabezado de ficha con imagen de fondo (comuna) */
.phead-foto { position: relative; overflow: hidden; }
.phead-foto .phead-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: 0; }
.phead-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, rgba(0, 39, 63, .92), rgba(0, 39, 63, .58)); z-index: 1; }
.phead-foto .wrap { position: relative; z-index: 2; }
.dir-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dir-nombre { font-size: 14.5px; color: var(--achm-azul-corp); line-height: 1.25; }
.dir-cargo { font-size: 13px; color: #5a6775; }
.dir-partido { font-size: 12px; color: #8a96a3; }
.dir-card.is-link { text-decoration: none; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; }
.dir-card.is-link:hover { border-color: var(--achm-celeste); box-shadow: 0 10px 26px rgba(10, 26, 58, .1); transform: translateY(-2px); }
.dir-arrow { margin-left: auto; color: var(--achm-rojo); font-weight: 700; opacity: 0; transition: opacity .15s, transform .15s; flex: 0 0 auto; }
.dir-card.is-link:hover .dir-arrow { opacity: 1; transform: translateX(2px); }

/* ===== Página de órgano (Directorio/Comité/Comisiones/Direcciones) ===== */
.grp-count { font-family: var(--font-title); font-weight: 600; color: #6a7785; margin: 0 0 6px; }
.grp-count strong { color: var(--achm-azul-corp); }
.grp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 16px; margin-top: 20px; }
.grp-card { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.grp-card:hover { border-color: var(--achm-celeste); box-shadow: 0 12px 28px rgba(10, 26, 58, .1); transform: translateY(-3px); }
.grp-av { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 50%; overflow: hidden; background: var(--paper); }
.grp-av img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.grp-av.is-ini { display: grid; place-items: center; background: linear-gradient(135deg, var(--achm-azul-desarrollo), var(--achm-azul-corp)); color: #fff; font-family: var(--font-title); font-weight: 700; font-size: 19px; }
.grp-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.grp-txt strong { font-size: 15.5px; color: var(--achm-azul-corp); line-height: 1.25; }
.grp-cargo { font-size: 13px; color: #5a6775; }
.grp-cargo-inst { font-size: 12.5px; font-weight: 600; color: var(--achm-azul-desarrollo, #0E4975); }
.grp-partido { font-size: 12px; color: #8a96a3; }
.grp-arrow { margin-left: auto; color: var(--achm-rojo); font-weight: 700; opacity: 0; transition: opacity .15s, transform .15s; flex: 0 0 auto; }
.grp-card:hover .grp-arrow { opacity: 1; transform: translateX(2px); }
.grp-back { display: inline-flex; margin-top: 36px; }
/* Tarjeta destacada (presidencia del Directorio) */
.grp-hero { position: relative; overflow: hidden; display: flex; align-items: center; gap: 30px; margin: 22px 0 8px; padding: 30px 34px; border-radius: 20px; text-decoration: none; color: #fff;
  background: linear-gradient(115deg, var(--achm-azul-corp, #00273F) 0%, var(--achm-azul-desarrollo, #0E4975) 44%, var(--achm-turquesa, #01818B) 100%); box-shadow: 0 18px 40px rgba(1, 129, 139, .26); transition: transform .2s, box-shadow .2s; }
.grp-hero:hover { transform: translateY(-3px); box-shadow: 0 24px 54px rgba(1, 129, 139, .34); }
/* Marca sutil: silueta de Chile al costado derecho */
.grp-hero::after { content: ""; position: absolute; right: -1%; top: 50%; transform: translateY(-50%); width: 300px; height: 128%; z-index: 0; pointer-events: none;
  background: url(../img/chile-silueta.svg) no-repeat right center / contain; opacity: .1; filter: brightness(0) invert(1); }
.grp-hero-av, .grp-hero-txt { position: relative; z-index: 1; }
.grp-hero-av { flex: 0 0 auto; width: 132px; height: 132px; border-radius: 50%; overflow: hidden; background: rgba(255, 255, 255, .12); box-shadow: 0 0 0 4px rgba(255, 255, 255, .28); }
.grp-hero-av img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.grp-hero-av.is-ini { display: grid; place-items: center; color: #fff; font-family: var(--font-title); font-weight: 700; font-size: 42px; }
.grp-hero-txt { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.grp-hero-cargo { font-family: var(--font-title); font-weight: 600; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--achm-celeste); }
.grp-hero-txt strong { font-family: var(--font-title); font-weight: 700; font-size: 27px; line-height: 1.15; color: #fff; }
.grp-hero-cargo-inst { font-size: 14px; font-weight: 600; color: var(--achm-celeste, #B1EAEF); }
.grp-hero-partido { font-size: 13.5px; color: rgba(255, 255, 255, .78); }
.grp-hero-go { display: inline-flex; align-items: center; gap: 7px; margin-top: 10px; align-self: flex-start; padding: 8px 16px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-family: var(--font-title); font-weight: 600; font-size: 13.5px; transition: background .2s, gap .2s; }
.grp-hero:hover .grp-hero-go { background: rgba(255, 255, 255, .28); gap: 11px; }

/* ===== Ficha de dirección / unidad (reseña + funciones + equipo) ===== */
.uni-wrap { max-width: 980px; }
.uni-intro { max-width: 820px; }
.uni-intro p { font-size: 16.5px; line-height: 1.7; }
.uni-team { margin-top: 40px; }
.uni-team .head-row { margin-bottom: 22px; }
.uni-team .grp-count { margin: 0; }
.uni-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 16px; }
.uni-card { display: flex; align-items: flex-start; gap: 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; transition: border-color .15s, box-shadow .15s, transform .15s; }
.uni-card:hover { border-color: var(--achm-celeste); box-shadow: 0 12px 28px rgba(10, 26, 58, .1); transform: translateY(-3px); }
.uni-av { flex: 0 0 auto; width: 76px; height: 76px; border-radius: 50%; overflow: hidden; background: var(--paper); }
.uni-av img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.uni-av.is-ini { display: grid; place-items: center; background: linear-gradient(135deg, var(--achm-azul-desarrollo), var(--achm-azul-corp)); color: #fff; font-family: var(--font-title); font-weight: 700; font-size: 23px; }
.uni-card-body { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.uni-nombre { font-family: var(--font-title); font-size: 16.5px; color: var(--achm-azul-corp); line-height: 1.25; }
.uni-cargo { font-size: 13.5px; color: #5a6775; margin-bottom: 6px; }
.uni-contact { display: flex; flex-direction: column; gap: 5px; margin-top: auto; }
.uni-link { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: #44525f; text-decoration: none; transition: color .15s; min-width: 0; }
.uni-link svg { flex: 0 0 auto; color: var(--achm-turquesa); }
.uni-link span { overflow-wrap: anywhere; }
.uni-link:hover { color: var(--achm-rojo); }
.uni-link:hover svg { color: var(--achm-rojo); }

/* ===== /achm — La ACHM (institucional) ===== */
.achm-hero { position: relative; overflow: hidden; color: #fff; padding: 140px 0 66px;
  background:
    radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1.7px) 0 0 / 24px 24px,
    linear-gradient(118deg, rgba(0, 39, 63, .94) 0%, rgba(14, 73, 117, .9) 55%, rgba(10, 90, 110, .92) 122%),
    url("../img/hero-home.webp") center / cover no-repeat; }
.achm-hero::after { content: ""; position: absolute; top: -40%; right: 6%; width: 560px; height: 560px; background: radial-gradient(circle, rgba(1, 129, 139, .45), transparent 62%); pointer-events: none; }
.achm-hero::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--achm-turquesa), #5fc7d4 55%, var(--achm-celeste)); pointer-events: none; }
.achm-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; }
.achm-hero-txt { max-width: 760px; }
.achm-hero-txt h1 { font-size: clamp(30px, 4.2vw, 46px); line-height: 1.08; margin: 8px 0 0; }
.achm-claim { font-family: var(--font-title); font-weight: 700; font-size: clamp(18px, 2.4vw, 24px); color: var(--achm-celeste); margin: 14px 0 0; }
.achm-lead { font-size: 17px; line-height: 1.7; color: #d7e6f1; margin: 14px 0 0; max-width: 620px; }
.achm-stats { display: flex; flex-wrap: wrap; gap: 38px; margin-top: 30px; }
.achm-stat b { font-family: var(--font-title); font-weight: 800; font-size: 42px; line-height: 1; display: block; color: #fff; }
.achm-stat span { font-size: 13.5px; color: #a7c2d6; margin-top: 6px; display: block; }
.achm-hero-art { align-self: stretch; display: flex; align-items: center; }
.achm-hero-art img { height: 280px; width: auto; opacity: .5; filter: brightness(0) invert(1); }

/* Línea de tiempo de la historia */
.achm-timeline { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 22px; position: relative; }
.achm-timeline::before { content: ""; position: absolute; top: 9px; left: 8%; right: 8%; height: 2px; background: linear-gradient(90deg, var(--achm-turquesa), var(--achm-celeste)); opacity: .5; }
.achm-tl-item { position: relative; padding-top: 34px; }
.achm-tl-dot { position: absolute; top: 2px; left: 0; width: 16px; height: 16px; border-radius: 50%; background: var(--achm-turquesa); box-shadow: 0 0 0 5px rgba(1, 129, 139, .16); }
.achm-tl-anio { font-family: var(--font-title); font-weight: 800; font-size: 26px; color: var(--achm-azul-desarrollo); display: block; }
.achm-tl-item h3 { font-family: var(--font-title); font-weight: 700; font-size: 17px; color: var(--achm-azul-corp); margin: 4px 0 6px; }
.achm-tl-item p { font-size: 14.5px; line-height: 1.6; color: #4a5a68; margin: 0; }
.achm-historia { max-width: 860px; margin-top: 34px; }

/* Misión / Visión */
.achm-mv-sec { background: linear-gradient(180deg, #fff, var(--paper)); }
.achm-mv { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
.achm-mv-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 36px 32px 30px; box-shadow: 0 10px 30px rgba(10, 26, 58, .05); overflow: hidden; transition: transform .2s, box-shadow .2s; }
.achm-mv-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--achm-grad-oscuro); }
.achm-mv-card:hover { transform: translateY(-4px); box-shadow: 0 22px 46px rgba(10, 26, 58, .1); }
.achm-mv-ic { display: inline-grid; place-items: center; width: 60px; height: 60px; border-radius: 16px; background: var(--achm-grad-oscuro); color: #fff; box-shadow: 0 8px 20px rgba(16, 67, 112, .22); margin-bottom: 18px; }
.achm-mv-eyebrow { font-family: var(--font-title); font-weight: 600; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--achm-turquesa); margin: 0 0 4px; }
.achm-mv-card h2 { font-size: 24px; margin: 0 0 12px; }
.achm-mv-text { font-size: 16px; line-height: 1.7; color: #2b3a4a; margin: 0; }

/* Principios y objetivos (tarjetas) */
.achm-po { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 48px; }
.achm-po-col h3 { font-family: var(--font-title); font-weight: 700; font-size: 19px; color: var(--achm-azul-corp); margin: 0 0 16px; }
.achm-pcards, .achm-ocards { display: flex; flex-direction: column; gap: 12px; }
.achm-pcard, .achm-ocard { display: flex; align-items: flex-start; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 13px; padding: 15px 18px; transition: border-color .15s, box-shadow .15s, transform .15s; }
.achm-pcard:hover, .achm-ocard:hover { border-color: var(--achm-celeste); box-shadow: 0 10px 24px rgba(10, 26, 58, .08); transform: translateY(-2px); }
.achm-pcard p, .achm-ocard p { margin: 0; font-size: 15.5px; line-height: 1.5; color: #2b3a4a; }
.achm-pcard-ic { flex: 0 0 auto; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: var(--achm-celeste); color: var(--achm-azul-corp); margin-top: 1px; }
.achm-ocard-num { flex: 0 0 auto; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--achm-grad-oscuro); color: #fff; font-family: var(--font-title); font-weight: 700; font-size: 14px; margin-top: 1px; }

/* Ficha institucional (SUBDERE) — logo a color al lado + datos */
.achm-ficha-sec { background: var(--paper); }
.achm-ficha-wrap { max-width: 980px; margin: 0 auto; display: grid; grid-template-columns: 260px 1fr; gap: 0; background: #fff; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; box-shadow: 0 14px 38px rgba(10, 26, 58, .06); }
.achm-ficha-brand { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 14px; padding: 36px 28px; background: linear-gradient(160deg, var(--achm-celeste), #e4f2fa); }
.achm-ficha-logo { max-width: 200px; height: auto; }
.achm-ficha-claim { font-family: var(--font-title); font-weight: 700; font-size: 14px; color: var(--achm-azul-corp); margin: 0; }
.achm-ficha-main { padding: 36px 40px; }
.achm-ficha-head h2 { font-size: 26px; margin: 6px 0 4px; }
.achm-ficha { margin: 22px 0 0; border-top: 1px solid var(--line); }
.achm-ficha-row { display: flex; gap: 18px; padding: 14px 2px; border-bottom: 1px solid var(--line); }
.achm-ficha-row dt { flex: 0 0 200px; font-family: var(--font-title); font-weight: 600; color: var(--achm-azul-corp); font-size: 14.5px; margin: 0; }
.achm-ficha-row dd { margin: 0; font-size: 15.5px; color: #2b3a4a; }
.achm-ficha-links { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: 24px; }
.btn-line { border: 1.5px solid var(--achm-azul-desarrollo); color: var(--achm-azul-desarrollo); background: #fff; }
.btn-line:hover { background: var(--achm-azul-desarrollo); color: #fff; }

/* Galería Flickr (CTA) */
.achm-flickr { display: flex; align-items: center; gap: 22px; padding: 26px 32px; border-radius: 18px; text-decoration: none; color: #fff; background: linear-gradient(135deg, var(--achm-azul-corp) 0%, var(--achm-azul-desarrollo) 48%, var(--achm-turquesa) 100%); box-shadow: 0 16px 38px rgba(16, 67, 112, .22); transition: transform .2s, box-shadow .2s; }
.achm-flickr:hover { transform: translateY(-3px); box-shadow: 0 22px 50px rgba(16, 67, 112, .3); }
.achm-flickr-ic { flex: 0 0 auto; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 14px; background: rgba(255, 255, 255, .16); }
.achm-flickr-txt { flex: 1; min-width: 0; }
.achm-flickr-txt strong { font-family: var(--font-title); font-weight: 700; font-size: 19px; display: block; }
.achm-flickr-txt span { font-size: 14.5px; color: rgba(255, 255, 255, .82); }
.achm-flickr-go { flex: 0 0 auto; font-family: var(--font-title); font-weight: 600; font-size: 14px; padding: 9px 16px; border-radius: 999px; background: rgba(255, 255, 255, .16); transition: background .2s; }
.achm-flickr:hover .achm-flickr-go { background: rgba(255, 255, 255, .28); }

/* Galería institucional (carrusel de fotos del Flickr) */
.achm-gal { position: relative; margin-top: 22px; }
.achm-gal-track { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 2px; -ms-overflow-style: none; scrollbar-width: none; }
.achm-gal-track::-webkit-scrollbar { display: none; }
.achm-gal-slide { flex: 0 0 calc((100% - 28px) / 3); scroll-snap-align: start; border-radius: 14px; overflow: hidden; aspect-ratio: 3 / 2; background: var(--paper); box-shadow: 0 8px 22px rgba(10, 26, 58, .08); }
.achm-gal-slide img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.achm-gal-slide:hover img { transform: scale(1.06); }
.achm-gal-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 50%; border: 0; background: #fff; box-shadow: 0 6px 20px rgba(10, 26, 58, .2); color: var(--achm-azul-corp); font-size: 26px; line-height: 1; cursor: pointer; display: grid; place-items: center; z-index: 2; transition: background .15s, color .15s; }
.achm-gal-prev { left: -10px; }
.achm-gal-next { right: -10px; }
.achm-gal-nav:hover { background: var(--achm-azul-corp); color: #fff; }
@media (max-width: 860px) {
  .achm-gal-slide { flex-basis: 80%; }
  .achm-gal-nav { display: none; }
}

/* Estructura (tarjetas enlazables) */
.achm-estructura .card { display: flex; flex-direction: column; }
.achm-estructura .card .go { margin-top: auto; padding-top: 12px; }

/* Apoyo jurídico y técnico (/municipios/apoyo-juridico) */
.aj-grid .achm-mv-card { display: flex; flex-direction: column; }
.aj-list { list-style: none; margin: 14px 0 18px; padding: 0; }
.aj-list li { position: relative; padding-left: 26px; margin-bottom: 10px; font-size: 15px; line-height: 1.55; color: #2b3a4a; }
.aj-list li::before { content: ""; position: absolute; left: 4px; top: 8px; width: 7px; height: 7px; border-radius: 50%; background: var(--achm-turquesa); }
.aj-grid .link-more { margin-top: auto; }

@media (max-width: 860px) {
  /* La barra utilitaria se oculta <860px → la cabecera baja de ~112px a ~80px:
     se reduce el respiro superior del héroe para mantener un aire parejo. */
  .achm-hero { padding-top: 108px; }
  .achm-hero-grid { grid-template-columns: 1fr; }
  .achm-hero-art { display: none; }
  .achm-timeline { grid-template-columns: 1fr; gap: 4px; }
  .achm-timeline::before { display: none; }
  .achm-tl-item { padding-top: 0; padding-left: 28px; padding-bottom: 22px; }
  .achm-tl-dot { top: 6px; }
  .achm-tl-item::before { content: ""; position: absolute; left: 7px; top: 18px; bottom: 0; width: 2px; background: var(--achm-celeste); }
  .achm-tl-item:last-child::before { display: none; }
  .achm-mv, .achm-po { grid-template-columns: 1fr; }
  .achm-ficha-wrap { grid-template-columns: 1fr; }
  .achm-ficha-brand { flex-direction: row; justify-content: flex-start; gap: 18px; padding: 22px 24px; }
  .achm-ficha-logo { max-width: 150px; }
  .achm-ficha-main { padding: 26px 24px; }
  .achm-ficha-row { flex-direction: column; gap: 2px; }
  .achm-ficha-row dt { flex-basis: auto; }
  .achm-flickr { flex-direction: column; text-align: center; }
}

/* ===== /contacto (rediseño) ===== */
.ct-quick { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.ct-quick-chip { display: inline-flex; align-items: center; gap: 9px; padding: 9px 16px; border-radius: 999px; background: rgba(255, 255, 255, .14); color: #fff; text-decoration: none; font-family: var(--font-title); font-weight: 600; font-size: 14px; transition: background .18s; }
.ct-quick-chip:hover { background: rgba(255, 255, 255, .26); }
.ct-quick-chip svg { color: var(--achm-celeste); }

.ct-form-sec { background: var(--paper); }
.ct-grid { display: grid; grid-template-columns: 320px 1fr; gap: 28px; align-items: start; }
.ct-info { background: linear-gradient(135deg, var(--achm-azul-corp) 0%, var(--achm-azul-desarrollo) 48%, var(--achm-turquesa) 100%); color: #fff; border-radius: 18px; padding: 30px 28px; }
.ct-info h2 { color: #fff; font-size: 21px; margin: 0 0 18px; }
.ct-info-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.ct-info-list li { display: flex; gap: 14px; }
.ct-info-ic { flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: rgba(255, 255, 255, .14); color: var(--achm-celeste); }
.ct-info-list span:not(.ct-info-ic) { font-size: 14.5px; line-height: 1.55; color: #d7e6f1; min-width: 0; }
.ct-info-list strong { display: block; font-family: var(--font-title); color: #fff; font-size: 14px; margin-bottom: 2px; }
.ct-info-list a { color: #fff; }
.ct-info-link { display: inline-block; margin-top: 6px; color: var(--achm-celeste); font-family: var(--font-title); font-weight: 600; text-decoration: none; }

.ct-form-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 30px 32px; box-shadow: 0 12px 32px rgba(10, 26, 58, .06); }
.ct-form-card h2 { font-size: 23px; margin: 0 0 4px; }
.ct-form-card .muted { margin: 0 0 18px; }
.ct-form p { margin: 0 0 16px; }
.ct-form label { display: block; font-family: var(--font-title); font-weight: 600; font-size: 14px; color: var(--achm-azul-corp); margin-bottom: 6px; }
.ct-form input, .ct-form select, .ct-form textarea { width: 100%; box-sizing: border-box; padding: 11px 14px; border: 1px solid var(--line); border-radius: 10px; font: inherit; font-size: 15px; color: var(--achm-azul-corp); background: #fff; }
.ct-form select.is-set { border-color: var(--achm-turquesa); }
.ct-form input:focus, .ct-form select:focus, .ct-form textarea:focus { outline: 2px solid var(--achm-turquesa); outline-offset: 1px; border-color: var(--achm-turquesa); }
.ct-form textarea { resize: vertical; min-height: 140px; }
.ct-form .field-hint { display: block; margin-top: 5px; font-size: 13px; color: #5a6775; }
.ct-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.ct-form .consent label { display: flex; gap: 10px; align-items: flex-start; font-family: var(--font-body, inherit); font-weight: 400; font-size: 14px; color: #5a6775; }
.ct-form .consent input[type="checkbox"] { width: auto; flex: 0 0 auto; margin-top: 3px; }
.btn-rojo { background: var(--achm-rojo); color: #fff; }
.btn-rojo:hover { transform: translateY(-2px); filter: brightness(1.05); }
.ct-ok p { margin: 0 0 6px; }

@media (max-width: 820px) {
  .ct-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .ct-row { grid-template-columns: 1fr; }
  .ct-form-card { padding: 24px 20px; }
}

/* ===== Ficha de autoridad (perfil tipo red social) ===== */
.auth-hero { position: relative; overflow: hidden; color: #fff; padding: 132px 0 80px;
  background:
    radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1.7px) 0 0 / 24px 24px,
    linear-gradient(115deg, #00273F 0%, #0E4975 54%, #015e66 110%); }
.auth-hero::after { content: ""; position: absolute; top: -55%; right: -4%; width: 480px; height: 480px; background: radial-gradient(circle, rgba(1, 129, 139, .42), transparent 62%); pointer-events: none; }
.auth-hero::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--achm-turquesa), #5fc7d4 55%, var(--achm-celeste)); pointer-events: none; }
.auth-hero .wrap { position: relative; z-index: 1; }
.auth-hero .crumbs, .auth-hero .crumbs a { color: rgba(255, 255, 255, .92); }
.auth-wrap { padding-top: 0; }
.auth-card { display: flex; align-items: center; gap: 28px; margin-top: -58px; position: relative; z-index: 2; background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 26px 34px; box-shadow: 0 20px 48px rgba(10, 26, 58, .13); }
.auth-avatar { flex: 0 0 auto; width: 142px; height: 142px; border-radius: 50%; overflow: hidden; border: 4px solid #fff; box-shadow: 0 10px 26px rgba(10, 26, 58, .18); background: var(--paper); }
.auth-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.auth-avatar.is-ini { display: grid; place-items: center; background: linear-gradient(135deg, var(--achm-azul-desarrollo), var(--achm-azul-corp)); color: #fff; font-family: var(--font-title); font-weight: 800; font-size: 44px; }
.auth-id { min-width: 0; }
.auth-id .eyebrow { color: var(--achm-turquesa); }
.auth-id h1 { font-size: clamp(24px, 3.2vw, 34px); color: var(--achm-azul-corp); line-height: 1.12; margin: 5px 0 0; }
.auth-headline { font-family: var(--font-title); font-weight: 600; font-size: 16px; color: var(--achm-azul-desarrollo); margin: 6px 0 0; }
.auth-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.auth-chip { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-title); font-weight: 600; font-size: 13px; color: var(--achm-azul-corp); background: var(--achm-celeste); border-radius: 100px; padding: 6px 14px; }
.auth-chip--link { background: #fff; border: 1px solid var(--line); color: var(--achm-azul-desarrollo); text-decoration: none; transition: background .15s, color .15s, border-color .15s; }
.auth-chip--link:hover { background: var(--achm-azul-corp); color: #fff; border-color: var(--achm-azul-corp); }
/* Badge de partido: pastilla con la sigla + nombre. Sin logos externos (override
   automático si existe assets/img/partidos/{slug}.svg). Independiente = chip neutro. */
.auth-chip--partido { background: #fff; border: 1px solid var(--line); padding-left: 6px; }
.auth-chip--partido.is-indep { background: var(--paper); border-style: dashed; color: #5a6775; padding-left: 14px; }
.pbadge { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 24px; padding: 0 8px; border-radius: 7px; background: var(--achm-azul-desarrollo); color: #fff; font-family: var(--font-title); font-weight: 700; font-size: 11.5px; letter-spacing: .3px; }
.pbadge--rn { background: #16458f; }
.pbadge--udi { background: #0a2a6b; }
.pbadge--ps { background: #d12f2f; }
.pbadge--pc { background: #c0102a; }
.pbadge--evopoli { background: #00838f; }
.pbadge--rep { background: #15233f; }
.pbadge-logo { width: 22px; height: 22px; object-fit: contain; }
.auth-roles { margin-top: 36px; }
.auth-roles h2, .auth-related h2 { font-size: 20px; color: var(--achm-azul-corp); margin: 0; }
.auth-roles h2 { margin-bottom: 16px; }
.auth-roles-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.auth-role { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; }
.auth-role-tag { display: inline-block; font-family: var(--font-title); font-weight: 600; font-size: 11.5px; letter-spacing: .4px; text-transform: uppercase; color: #fff; background: var(--achm-turquesa); border-radius: 100px; padding: 4px 12px; text-decoration: none; }
.auth-role ul { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.auth-role li { font-size: 15px; color: var(--achm-azul-corp); padding-left: 16px; position: relative; }
.auth-role li::before { content: ""; position: absolute; left: 0; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: var(--achm-rojo); }
.auth-related { margin-top: 46px; }
.auth-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-top: 20px; }
.auth-person { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.auth-person:hover { border-color: var(--achm-celeste); box-shadow: 0 10px 24px rgba(10, 26, 58, .1); transform: translateY(-2px); }
.auth-person-av { flex: 0 0 auto; width: 54px; height: 54px; border-radius: 50%; overflow: hidden; background: var(--paper); }
.auth-person-av img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.auth-person-av.is-ini { display: grid; place-items: center; background: linear-gradient(135deg, var(--achm-azul-desarrollo), var(--achm-azul-corp)); color: #fff; font-family: var(--font-title); font-weight: 700; font-size: 17px; }
.auth-person-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.auth-person-txt strong { font-size: 14px; color: var(--achm-azul-corp); line-height: 1.25; }
.auth-person-txt small { font-size: 12.5px; color: #6a7785; }
.auth-back { display: inline-flex; margin-top: 38px; }
@media (max-width: 640px) {
  .auth-hero { padding: 100px 0 58px; }
  .auth-card { flex-direction: column; align-items: flex-start; gap: 12px; margin-top: -44px; padding: 22px; }
  .auth-avatar { width: 104px; height: 104px; }
  .grp-hero { flex-direction: column; text-align: center; gap: 18px; padding: 26px 22px; }
  .grp-hero-av { width: 116px; height: 116px; }
  .grp-hero-txt { align-items: center; }
  .grp-hero-txt strong { font-size: 23px; }
  .grp-hero-go { align-self: center; }
}

/* Biblioteca de documentos (categorías colapsables) */
.doc-wrap { max-width: 920px; }
.doc-cat { border: 1px solid var(--line); border-radius: 14px; margin-bottom: 14px; background: #fff; overflow: hidden; box-shadow: 0 6px 18px rgba(10, 26, 58, .05); transition: box-shadow .2s ease; }
.doc-cat[open] { box-shadow: 0 14px 34px rgba(10, 26, 58, .1); }
.doc-cat-sum { cursor: pointer; padding: 18px 22px; display: flex; align-items: center; gap: 14px; list-style: none; }
.doc-cat-sum::-webkit-details-marker { display: none; }
.doc-cat-ic { flex: 0 0 auto; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; background: var(--achm-celeste); color: var(--achm-azul-corp); }
.doc-cat-t { flex: 1; min-width: 0; font-family: var(--font-title); font-weight: 700; font-size: 16px; color: var(--achm-azul-corp); }
.doc-n { flex: 0 0 auto; font-size: 12.5px; font-weight: 700; color: #fff; background: var(--achm-turquesa); border-radius: 20px; padding: 3px 11px; }
.doc-cat-chev { flex: 0 0 auto; color: var(--achm-turquesa); transition: transform .2s ease; }
.doc-cat[open] .doc-cat-chev { transform: rotate(180deg); }
.doc-list { list-style: none; margin: 0; padding: 4px 10px 16px; border-top: 1px solid var(--line); }
.doc-item { display: flex; align-items: center; gap: 13px; padding: 12px 12px; border-radius: 11px; border-bottom: .5px solid var(--line); transition: background .14s; }
.doc-item:last-child { border-bottom: 0; }
.doc-item:hover { background: var(--paper, #eef3f8); }
.doc-file-ic { flex: 0 0 auto; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: var(--achm-celeste, #B1EAEF); color: var(--achm-azul-desarrollo, #0E4975); }
.doc-item-title { flex: 1; min-width: 0; font-family: var(--font-title); font-weight: 600; font-size: 15px; color: var(--achm-azul-corp); line-height: 1.35; }
.doc-type { flex: 0 0 auto; font-family: var(--font-title); font-size: 9.5px; font-weight: 700; letter-spacing: .5px; color: var(--achm-azul-desarrollo, #0E4975);
  background: rgba(14, 73, 117, .1); border-radius: 4px; padding: 3px 6px; text-transform: uppercase; }
.doc-type--pdf { color: var(--achm-turquesa, #01818B); background: rgba(1, 129, 139, .12); }
.doc-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; }
.doc-btn { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-title); font-weight: 600; font-size: 13px; padding: 7px 13px; border-radius: 9px; border: 0; cursor: pointer; background: var(--achm-azul-desarrollo); color: #fff; text-decoration: none; transition: filter .15s, background .15s, color .15s; }
.doc-btn:hover { filter: brightness(1.08); }
.doc-btn--ghost { background: transparent; color: var(--achm-azul-desarrollo); border: 1px solid var(--line); }
.doc-btn--ghost:hover { background: var(--paper); filter: none; }

/* Visor de documentos (modal con iframe de PDF) */
.doc-modal { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 24px; }
.doc-modal[hidden] { display: none; }
.doc-modal-backdrop { position: absolute; inset: 0; background: rgba(4, 18, 33, .72); backdrop-filter: blur(2px); }
.doc-modal-dialog { position: relative; z-index: 1; width: min(960px, 100%); height: min(88vh, 100%); background: #fff; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.doc-modal-bar { display: flex; align-items: center; gap: 14px; padding: 12px 14px 12px 20px; border-bottom: 1px solid var(--line); }
.doc-modal-title { flex: 1; min-width: 0; margin: 0; font-family: var(--font-title); font-weight: 600; font-size: 15px; color: var(--achm-azul-corp); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.doc-modal-open { flex: 0 0 auto; font-family: var(--font-title); font-weight: 600; font-size: 13.5px; color: var(--achm-azul-desarrollo); text-decoration: none; padding: 7px 12px; border: 1px solid var(--line); border-radius: 8px; }
.doc-modal-open:hover { background: var(--paper); }
.doc-modal-close { flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 8px; background: var(--paper); color: var(--achm-azul-corp); cursor: pointer; transition: background .15s; }
.doc-modal-close:hover { background: var(--achm-celeste); }
.doc-modal-frame { flex: 1; background: #525659; }
.doc-modal-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 640px) {
  .doc-modal { padding: 0; }
  .doc-modal-dialog { width: 100%; height: 100%; border-radius: 0; }
  .doc-item { flex-wrap: wrap; }
  .doc-item-title { flex-basis: 100%; }
}

/* Boletín Municipio Digital (archivo colapsable) */
.bol-head-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 16px; font-size: 14px; color: #cfe0ee; }
.bol-head-meta strong { color: #fff; font-family: var(--font-title); }
.bol-head-dot { opacity: .45; }
.bol-wrap { max-width: 1040px; }

/* ===== Hero «Municipio Digital» de la edición (recreación on-brand del banner) ===== */
.bol-hero { position: relative; overflow: hidden; color: #fff; padding: 140px 0 74px;
  background:
    radial-gradient(680px 420px at 78% 12%, rgba(34, 211, 238, .34), transparent 60%),
    linear-gradient(116deg, #061634 0%, #0b3a9c 58%, #1567d8 100%); }
.bol-hero-map { position: absolute; top: 50%; right: -1%; width: 340px; height: 168%; transform: translateY(-50%); z-index: 0; pointer-events: none;
  background: linear-gradient(180deg, #7fe9ff, #22d3ee 60%, #3aa0ff);
  -webkit-mask: url("../img/chile-silueta.svg") no-repeat right center / auto 100%;
  mask: url("../img/chile-silueta.svg") no-repeat right center / auto 100%;
  opacity: .5; }
.bol-hero-in { position: relative; z-index: 1; }
.bol-hero .crumbs, .bol-hero .crumbs a { color: rgba(224, 240, 255, .8); }
.bol-hero .crumbs a:hover { color: #fff; }
.bol-hero-grid { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 30px; margin-top: 22px; }
.bol-hero-chev { display: block; font-family: var(--font-title); font-weight: 800; font-size: 22px; letter-spacing: 4px; color: #35d6f0; opacity: .9; }
.bol-hero-wm { font-family: var(--font-title); font-weight: 800; line-height: .92; letter-spacing: -1px; text-transform: uppercase; margin: 8px 0 0; }
.bol-hero-wm span { display: block; font-size: clamp(44px, 8.5vw, 104px); }
.bol-hero-wm .bol-hero-wm2 { background: linear-gradient(92deg, #8becff, #22d3ee 55%, #3aa0ff);
  -webkit-background-clip: text; background-clip: text; color: #35d6f0; -webkit-text-fill-color: transparent; }
.bol-hero-tag { color: #d5e6fb; font-size: clamp(14px, 1.7vw, 18px); max-width: 560px; margin: 20px 0 0; line-height: 1.55; }
.bol-hero-meta { display: flex; align-items: center; gap: 12px; margin: 22px 0 0; font-size: 14.5px; color: #bcd4f2; }
.bol-hero-meta strong { color: #fff; font-family: var(--font-title); font-weight: 700; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .22); border-radius: 100px; padding: 5px 14px; }
.bol-hero-dot { opacity: .5; }
.bol-hero-res { color: #cadcf6; font-size: 15px; max-width: 620px; margin: 14px 0 0; line-height: 1.6; }
.bol-hero-brand { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; padding-bottom: 6px; }
.bol-hero-brand img { height: 52px; width: auto; }
.bol-hero-claim { text-align: right; font-family: var(--font-title); font-weight: 700; font-size: 12.5px; letter-spacing: 1px; text-transform: uppercase; color: #9fd8ff; line-height: 1.3; border-left: 2px solid rgba(127, 233, 255, .5); padding-left: 12px; }
.bol-hero-torn { display: none; }
@media (max-width: 720px) {
  .bol-hero { padding: 104px 0 58px; }
  .bol-hero-grid { grid-template-columns: 1fr; align-items: start; gap: 22px; }
  .bol-hero-brand { flex-direction: row; align-items: center; }
  .bol-hero-claim { border-left: 0; padding-left: 0; text-align: left; }
  .bol-hero-map { width: 200px; opacity: .35; }
}

/* Edición destacada (última) */
.bol-feature { position: relative; border: 1px solid var(--line); border-radius: 20px; background: #fff; overflow: hidden; box-shadow: 0 16px 42px rgba(10, 26, 58, .1); }
.bol-feature::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--achm-grad-oscuro); }
.bol-feature-head { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; padding: 28px 30px 0; }
.bol-feature-badge { font-family: var(--font-title); font-weight: 700; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: #fff; background: var(--achm-rojo); border-radius: 999px; padding: 6px 14px; }
.bol-feature-head h2 { font-size: clamp(22px, 3vw, 28px); margin: 0; color: var(--achm-azul-corp); }
.bol-feature-body { padding: 6px 30px 28px; }
.bol-feature-body .video-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }

/* Grilla de ediciones (tarjetas compactas) */
.bol-sec-title { font-size: 22px; color: var(--achm-azul-corp); margin: 44px 0 18px; }
.bol-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; align-items: start; }
.bol-card { border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; box-shadow: 0 6px 18px rgba(10, 26, 58, .05); transition: box-shadow .2s ease, transform .2s ease; }
.bol-card:not([open]):hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(10, 26, 58, .12); }
.bol-card[open] { box-shadow: 0 14px 36px rgba(10, 26, 58, .12); }
.bol-sum { cursor: pointer; display: flex; align-items: center; gap: 14px; padding: 16px 18px; list-style: none; }
.bol-sum::-webkit-details-marker { display: none; }
.bol-sum-ic { flex: 0 0 auto; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px; background: var(--achm-grad-oscuro); color: #fff; }
.bol-sum-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bol-sum-txt strong { font-family: var(--font-title); font-weight: 700; font-size: 15.5px; color: var(--achm-azul-corp); line-height: 1.25; }
.bol-sum-txt small { font-size: 12.5px; color: #6a7785; }
.bol-sum-chev { flex: 0 0 auto; color: var(--achm-turquesa); transition: transform .2s ease; }
.bol-card[open] .bol-sum-chev { transform: rotate(180deg); }
.bol-body { padding: 0 18px 18px; }
.bol-feature-body.bol-body { padding: 6px 30px 28px; }
.bol-h { font-family: var(--font-title); font-size: 13px; color: var(--achm-turquesa); text-transform: uppercase; letter-spacing: .5px; margin: 14px 0; }
.bol-card .video-grid, .bol-feature-body .video-grid { padding: 0; margin-top: 0; }

/* Archivo plegable (resto de ediciones) */
.bol-archive { margin-top: 18px; }
.bol-archive > summary { cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-title); font-weight: 600; color: var(--achm-azul-desarrollo); padding: 12px 20px; border: 1px solid var(--line); border-radius: 999px; transition: background .15s, color .15s; }
.bol-archive > summary::-webkit-details-marker { display: none; }
.bol-archive > summary::before { content: "+"; font-size: 18px; line-height: 1; color: var(--achm-turquesa); }
.bol-archive[open] > summary::before { content: "−"; }
.bol-archive > summary:hover { background: var(--achm-azul-corp); color: #fff; }
.bol-archive[open] > summary { margin-bottom: 18px; }
.bol-archive-n { font-weight: 400; color: #6a7785; font-size: 13px; }
.bol-cols { list-style: none; margin: 0; padding: 0; }
.bol-cols li { padding: 10px 0; border-bottom: .5px solid var(--line); display: flex; flex-direction: column; gap: 2px; }
.bol-cols li:last-child { border-bottom: 0; }
.bol-cols a { color: var(--achm-azul-desarrollo); text-decoration: none; font-weight: 500; }
.bol-cols a:hover { color: var(--achm-rojo); }
.bol-aut { font-size: 12.5px; color: #6a7785; }

/* Boletín — noticias destacadas */
.bol-news { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.bol-news-card { display: flex; flex-direction: column; text-decoration: none; background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; transition: transform .18s, box-shadow .18s; }
.bol-news-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(10, 26, 58, .12); }
.bol-news-img { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--achm-azul-corp); }
.bol-news-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.bol-news-card:hover .bol-news-img img { transform: scale(1.05); }
.bol-news-img.is-ph { display: grid; place-items: center; background: linear-gradient(135deg, #00273F, #0E4975 58%, #01818B); }
.bol-news-img.is-ph span { font-family: var(--font-title); font-weight: 800; letter-spacing: 2px; color: rgba(255, 255, 255, .8); font-size: 13px; }
.bol-news-t { padding: 12px 14px; font-family: var(--font-title); font-weight: 600; font-size: 14px; line-height: 1.35; color: var(--achm-azul-corp); }

/* Boletín — capacitaciones y eventos */
.bol-events { list-style: none; margin: 0; padding: 0; }
.bol-events li { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: .5px solid var(--line); }
.bol-events li:last-child { border-bottom: 0; }
.bol-events a { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 12px; text-decoration: none; }
.bol-ev-date { flex: 0 0 auto; font-family: var(--font-title); font-weight: 700; font-size: 12.5px; color: var(--achm-turquesa); white-space: nowrap; }
.bol-ev-t { color: var(--achm-azul-desarrollo); font-weight: 500; font-size: 14.5px; }
.bol-events a:hover .bol-ev-t { color: var(--achm-rojo); }
.bol-ev-mod { flex: 0 0 auto; font-family: var(--font-title); font-size: 11px; font-weight: 600; color: #fff; background: rgba(0, 39, 63, .82); border-radius: 20px; padding: 3px 10px; }
.bol-ev-mod.web { background: rgba(1, 129, 139, .92); }

/* Boletín — lo más leído */
.bol-leido { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px 18px; }
.bol-leido a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 10px; text-decoration: none; color: var(--achm-azul-corp); font-weight: 500; font-size: 14px; transition: border-color .15s, background .15s; }
.bol-leido a:hover { border-color: var(--achm-celeste); background: var(--paper); }
.bol-leido-go { color: var(--achm-turquesa); font-weight: 700; }

/* Buscador (página /buscar, sobre la banda .phead oscura) */
.buscador { display: flex; gap: 10px; margin-top: 22px; max-width: 560px; }
.buscador input { flex: 1; min-width: 0; padding: 13px 16px; border: 0; border-radius: 10px; font: inherit; font-size: 15px; color: var(--achm-azul-corp); background: #fff; }
.buscador button { background: var(--achm-rojo); color: #fff; border: 0; border-radius: 10px; padding: 13px 26px; font-family: var(--font-title); font-weight: 600; font-size: 15px; cursor: pointer; transition: transform .18s, filter .18s; }
.buscador button:hover { transform: translateY(-2px); filter: brightness(1.05); }
/* Página de error (404) */
.errorpage { text-align: center; padding: 96px 24px 110px; }
.errorpage { padding-top: 150px; }
.errorpage .errcode { font-family: var(--font-title); font-weight: 800; font-size: 86px; line-height: 1; color: var(--achm-celeste); margin: 0; max-width: none; }
.errorpage h1 { color: var(--achm-azul-corp); font-size: 34px; margin: 4px 0 14px; }
.errorpage p { color: #5a6775; font-size: 17px; max-width: 520px; margin: 0 auto 26px; }
.errorpage .errlinks { display: flex; gap: 20px; align-items: center; justify-content: center; flex-wrap: wrap; }

/* Municipios — directorio por región */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ===== «Recorre Chile» — mapa scrollytelling de Municipios (PRD §18.6) ===== */
.scrolly { position: relative; background: var(--achm-azul-corp); color: #fff; }
/* Logo ACHM blanco arriba-izquierda, fijo durante todo el recorrido (sticky de alto 0). */
/* El logo blanco aparece sólo cuando el header se va con el scroll (scroll-driven). */
.scrolly-brand { position: sticky; top: 0; height: 0; z-index: 6; }
.scrolly-logo { position: absolute; top: 22px; left: 40px; display: inline-block; }
.scrolly-logo img { height: 40px; width: auto; display: block; }
@keyframes brandReveal { from { opacity: 0; } to { opacity: 1; } }
@supports (animation-timeline: scroll()) {
  .scrolly-brand { animation: brandReveal linear both; animation-timeline: scroll(root); animation-range: 70px 200px; }
}
/* Portada: título sobre la foto, centrado en el viewport (el padding-bottom lo sube
   descontando el header, sin que la búsqueda asome); se desvanece al hacer scroll. */
.scrolly-intro { min-height: 100vh; box-sizing: border-box; padding-bottom: 190px; display: flex; flex-direction: column; justify-content: center; max-width: 620px; color: #fff; }
.scrolly-intro .crumbs, .scrolly-intro .crumbs a { color: rgba(255, 255, 255, .82); }
.scrolly-intro .eyebrow { color: var(--achm-celeste); }
.scrolly-intro h1 { color: #fff; font-size: clamp(38px, 6vw, 72px); line-height: 1.02; margin: 12px 0 0; }
.scrolly-intro > p { font-size: 18px; color: #dceaf2; margin: 18px 0 0; max-width: 540px; }
.scrolly-hint { display: inline-flex; align-items: center; gap: 8px; margin-top: 32px; font-family: var(--font-title); font-weight: 600; font-size: 12.5px; letter-spacing: .6px; text-transform: uppercase; color: #fff; opacity: .85; }
.scrolly-hint::after { content: "↓"; font-size: 15px; animation: hintBounce 1.6s ease-in-out infinite; }
@keyframes hintBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
@keyframes introFade { to { opacity: 0; transform: translateY(-24px); } }
@supports (animation-timeline: scroll()) {
  .scrolly-intro { animation: introFade linear both; animation-timeline: scroll(root); animation-range: 0 62vh; }
}
/* Escenario fijo (sticky) a ANCHO COMPLETO: foto de región + velo + constelación */
.scrolly-stage { position: sticky; top: 0; height: 100vh; overflow: hidden; z-index: 0; }
.scrolly-bg { position: absolute; inset: 0; }
.scrolly-bg .sbg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 1; transition: opacity .9s ease; }
.scrolly-bg .sbg-b { opacity: 0; }
/* Velo más oscuro hacia la derecha, donde va el panel de texto */
.scrolly-stage::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,39,63,.58) 0%, rgba(0,39,63,.42) 34%, rgba(0,39,63,.8) 68%, rgba(0,39,63,.93) 100%); }
#chile-scrolly-canvas { position: absolute; inset: 0; z-index: 2; }
.scrolly-tag { position: absolute; left: 96px; bottom: 30px; z-index: 3; background: rgba(0,18,30,.5); border: 1px solid rgba(255,255,255,.16); border-radius: 14px; padding: 14px 18px; max-width: 320px; }
.scrolly-tag b { display: block; font-family: var(--font-title); font-weight: 700; font-size: 18px; color: #fff; line-height: 1.2; }
.scrolly-tag small { display: block; margin-top: 4px; color: var(--achm-celeste); font-size: 13px; }
.scrolly-index { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); z-index: 3; display: flex; flex-direction: column; gap: 2px; }
.scrolly-index a { font-family: var(--font-title); font-weight: 600; font-size: 10.5px; color: rgba(255,255,255,.5); text-decoration: none; padding: 3px 6px; border-radius: 5px; text-align: center; min-width: 26px; transition: color .15s, background .15s; }
.scrolly-index a:hover { color: #fff; background: rgba(255,255,255,.14); }
/* Escenas que pasan SOBRE el escenario fijo, alineadas a la derecha */
.scrolly-scenes { position: relative; z-index: 3; margin-top: -100vh; max-width: 1240px; margin-left: auto; margin-right: auto; padding: 0 56px; }
.scrolly-search { position: sticky; top: 18px; z-index: 5; display: flex; align-items: center; gap: 10px; width: 46%; max-width: 520px; margin-left: auto; background: rgba(255,255,255,.96); border-radius: 12px; padding: 11px 16px; box-shadow: 0 12px 34px rgba(0,0,0,.34); }
.scrolly-search svg { color: #8a97a5; flex: 0 0 auto; }
.scrolly-search input { flex: 1; border: 0; background: transparent; font: inherit; font-size: 15px; color: var(--achm-azul-corp); outline: none; }
.scrolly-search .mcount { font-family: var(--font-title); font-weight: 600; font-size: 12px; color: #6a7785; white-space: nowrap; }
.scrolly-scene { min-height: 100vh; display: flex; align-items: center; justify-content: flex-end; }
.scrolly-scene[hidden] { display: none; }
.scene-panel { width: 46%; max-width: 520px; background: rgba(0,18,30,.32); border: 1px solid rgba(255,255,255,.1); border-radius: 18px; padding: 32px 34px; }
.scene-eyebrow { font-family: var(--font-title); font-weight: 700; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--achm-celeste); margin: 0; }
.scrolly-scene h2 { color: #fff; font-size: clamp(28px, 3vw, 40px); line-height: 1.05; margin: 10px 0 0; }
.scene-num { font-family: var(--font-title); font-size: 15px; color: #bcd0de; margin: 14px 0 22px; }
.scene-num b { font-size: 22px; color: #fff; font-weight: 700; }
.scene-comunas { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; max-height: 46vh; overflow: auto; }
.scene-comunas li[hidden] { display: none; }
.scene-comunas a { display: inline-block; font-size: 13.5px; color: #eaf2f7; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 100px; padding: 7px 14px; text-decoration: none; transition: background .15s, border-color .15s, color .15s, transform .12s; }
.scene-comunas a:hover { background: var(--achm-rojo); border-color: var(--achm-rojo); color: #fff; transform: translateY(-2px); }
.scene-empty { color: #bcd0de; padding: 30px 0; text-align: right; }
@media (max-width: 920px) {
  .scrolly-stage { display: none; }
  .scrolly-brand { display: none; }
  .scrolly-intro { min-height: 0; display: block; max-width: none; padding: 36px 0 6px; animation: none; }
  .scrolly-hint { display: none; }
  .scrolly-scenes { margin-top: 0; padding: 0 20px; }
  .scrolly-search { width: 100%; max-width: none; margin: 26px 0 4px; top: 10px; }
  .scrolly-scene { min-height: 0; justify-content: flex-start; padding: 26px 0; border-bottom: 1px solid rgba(255,255,255,.08); }
  .scene-panel { width: 100%; max-width: none; background: transparent; border: 0; padding: 0; }
  .scene-comunas { max-height: none; overflow: visible; }
  .scene-empty { text-align: left; }
}

/* ===== Ficha de comuna (municipio) ===== */
@keyframes mufade { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.mu-hero { position: relative; background: var(--achm-azul-corp); color: #fff; min-height: 392px; display: flex; align-items: flex-end; overflow: hidden; }
.mu-hero.has-img { min-height: 452px; }
.mu-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: 0; }
.mu-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,39,63,.42) 0%, rgba(0,39,63,.55) 45%, rgba(0,39,63,.92) 100%); z-index: 1; }
/* Borde de papel rasgado al pie del hero (guiño al sitio anterior) */
.mu-hero::before { display: none; }
.mu-hero-inner { position: relative; z-index: 2; padding: 40px 40px 44px; width: 100%; }
.mu-hero .crumbs, .mu-hero .crumbs a { color: rgba(255,255,255,.82); }
.mu-region { display: inline-block; font-family: var(--font-title); font-weight: 600; font-size: 13px; color: #fff; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.25); padding: 5px 13px; border-radius: 100px; margin: 14px 0 0; text-decoration: none; transition: background .18s, border-color .18s; }
.mu-region:hover { background: var(--achm-rojo); border-color: var(--achm-rojo); }
.mu-hero h1 { font-weight: 800; font-size: clamp(34px, 5vw, 56px); line-height: 1.02; margin: 14px 0 0; text-shadow: 0 2px 18px rgba(0,20,35,.4); }
.mu-title { display: flex; align-items: center; gap: 18px; margin: 14px 0 0; }
.mu-title h1 { margin: 0; }
.mu-escudo { flex: 0 0 auto; width: 76px; height: 76px; display: grid; place-items: center; background: linear-gradient(180deg,#fff 0%,#f3f7fa 100%); border-radius: 15px; padding: 9px; box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 0 0 1px rgba(255,255,255,.35), 0 8px 22px rgba(0,20,35,.4); }
.mu-escudo img { width: 100%; height: 100%; object-fit: contain; display: block; filter: drop-shadow(0 1px 1px rgba(0,20,35,.12)); }
@media (max-width: 560px) { .mu-escudo { width: 58px; height: 58px; border-radius: 12px; padding: 6px; } }
.mu-concejo-sec { padding-top: 0; }
.mu-concejo { position: relative; overflow: hidden; display: flex; align-items: center; gap: 22px; padding: 24px 28px; border-radius: 18px; text-decoration: none; color: #fff; background: linear-gradient(105deg, var(--achm-azul-corp) 0%, var(--achm-azul-desarrollo) 45%, var(--achm-turquesa) 100%); box-shadow: 0 12px 30px rgba(1,129,139,.22); transition: transform .18s, box-shadow .18s; }
.mu-concejo:hover { transform: translateY(-2px); box-shadow: 0 16px 38px rgba(1,129,139,.32); }
.mu-concejo-deco { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.mu-concejo-deco svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.mu-mtn { fill: #fff; }
.mu-mtn-back { opacity: .07; }
.mu-mtn-front { opacity: .1; }
.mu-concejo-ic { position: relative; z-index: 1; flex: 0 0 auto; width: 58px; height: 58px; display: grid; place-items: center; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.28); border-radius: 14px; color: #fff; }
.mu-concejo-txt { position: relative; z-index: 1; flex: 1 1 auto; }
.mu-concejo-txt strong { display: block; font-family: var(--font-title); font-size: 20px; font-weight: 700; margin-bottom: 3px; }
.mu-concejo-txt span { font-size: 14.5px; color: rgba(255,255,255,.9); line-height: 1.4; }
.mu-concejo-go { position: relative; z-index: 1; flex: 0 0 auto; font-family: var(--font-title); font-weight: 600; font-size: 14px; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3); padding: 10px 18px; border-radius: 100px; white-space: nowrap; }
.mu-concejo:hover .mu-concejo-go { background: #fff; color: var(--achm-azul-corp); border-color: #fff; }
@media (max-width: 640px) { .mu-concejo { flex-direction: column; align-items: flex-start; gap: 16px; padding: 22px; } }
/* Chip compacto (alto fijo) con la foto del alcalde SOBRESALIENDO por arriba y abajo. */
.mu-alcalde { display: inline-flex; align-items: center; gap: 15px; height: 58px; margin: 34px 0 0; padding: 0 26px 0 6px; background: rgba(0,26,45,.32); border: 1px solid rgba(255,255,255,.14); border-radius: 100px; backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); }
.mu-avatar { width: 88px; height: 88px; border-radius: 50%; background: var(--achm-turquesa); color: #fff; display: grid; place-items: center; font-family: var(--font-title); font-weight: 700; font-size: 34px; flex: 0 0 auto; box-shadow: 0 0 0 3px rgba(255,255,255,.5), 0 8px 20px rgba(0,20,35,.4); }
.mu-avatar.has-foto { background: rgba(255, 255, 255, .15); overflow: hidden; box-shadow: 0 0 0 3px rgba(255, 255, 255, .45), 0 6px 18px rgba(0, 20, 35, .35); }
.mu-avatar.has-foto img { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
.mu-alcalde-txt { display: flex; flex-direction: column; line-height: 1.2; }
.mu-alcalde-txt small { font-size: 13px; color: #c7d6e2; letter-spacing: .5px; text-transform: uppercase; font-weight: 600; }
.mu-alcalde-txt b { font-family: var(--font-title); font-size: 24px; font-weight: 700; color: #fff; }
.mu-alcalde.is-link { text-decoration: none; transition: opacity .15s; }
.mu-alcalde.is-link:hover .mu-alcalde-txt b { text-decoration: underline; }
/* «Ver ficha →» colapsado por defecto (no reserva ancho → el chip queda compacto);
   se despliega al pasar el cursor. Antes ocupaba su espacio con opacity:0 y dejaba
   un hueco borroso a la derecha del nombre. */
.mu-alcalde-go { font-family: var(--font-title); font-weight: 600; font-size: 12.5px; color: #fff; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .3); border-radius: 100px; white-space: nowrap; overflow: hidden; max-width: 0; padding: 5px 0; margin-left: 0; opacity: 0; transition: max-width .28s ease, opacity .2s ease, padding .28s ease, margin-left .28s ease; }
.mu-alcalde.is-link:hover .mu-alcalde-go, .mu-alcalde.is-link:focus-visible .mu-alcalde-go { max-width: 130px; opacity: 1; padding: 5px 12px; margin-left: 10px; }
.mu-main { padding-top: 54px; }
.mu-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 26px; align-items: stretch; }
.mu-card { display: flex; flex-direction: column; background: #fff; border: .5px solid var(--line); border-radius: 16px; padding: 28px 30px; box-shadow: 0 12px 34px rgba(10,26,58,.07); animation: mufade .6s both; }
.mu-card:nth-child(2) { animation-delay: .1s; }
.mu-card h2 { font-size: 20px; color: var(--achm-azul-corp); margin: 0 0 18px; }
.mu-data { list-style: none; margin: 0; padding: 0; }
.mu-data li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-top: 1px solid var(--line); }
.mu-data li:first-child { border-top: 0; padding-top: 0; }
.mu-ic { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 11px; background: var(--achm-celeste); color: var(--achm-azul-corp); display: grid; place-items: center; }
.mu-data li > div { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.mu-data b { font-family: var(--font-title); font-size: 12px; font-weight: 600; letter-spacing: .3px; text-transform: uppercase; color: #8a97a5; }
.mu-data span, .mu-data li > div a { font-size: 15.5px; color: var(--achm-azul-corp); word-break: break-word; }
.mu-data li > div a { color: var(--achm-azul-desarrollo); text-decoration: none; }
.mu-data li > div a:hover { color: var(--achm-rojo); text-decoration: underline; }
.mu-data .pendiente { color: #aab4bf; font-style: italic; }
.mu-ubic .mu-map { flex: 1 1 auto; }
.mu-map { border-radius: 12px; overflow: hidden; border: 1px solid var(--line); background: var(--paper); min-height: 320px; }
.mu-map iframe { display: block; width: 100%; height: 100%; min-height: 320px; border: 0; }
.mu-map-actions { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 14px; }
.mu-map-actions a { font-family: var(--font-title); font-weight: 600; font-size: 13.5px; color: var(--achm-azul-desarrollo); text-decoration: none; white-space: nowrap; }
.mu-map-actions a:hover { color: var(--achm-rojo); text-decoration: underline; }
/* Banda full-bleed (.sec añade 40px horizontales; el gutter lo da el .wrap interno → sin doble padding). */
.mu-region-band { background: var(--paper); padding-left: 0; padding-right: 0; }
.mu-region-inner { max-width: 880px; text-align: center; }
.mu-region-band .eyebrow { color: var(--achm-turquesa); }
.mu-region-sub { color: #5a6b78; font-size: 15.5px; margin: 10px 0 0; }
.mu-hermanas { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 26px; }
.mu-hermanas a { font-size: 14px; color: var(--achm-azul-corp); background: #fff; border: 1px solid var(--line); border-radius: 100px; padding: 8px 16px; text-decoration: none; transition: background .15s, color .15s, border-color .15s, transform .12s; }
.mu-hermanas a:hover { background: var(--achm-azul-corp); color: #fff; border-color: var(--achm-azul-corp); transform: translateY(-2px); }
.mu-hermanas a.is-on { background: var(--achm-turquesa); color: #fff; border-color: var(--achm-turquesa); transform: translateY(-2px); }
.mu-region-actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-top: 30px; }
.mu-region-cta { display: inline-block; font-family: var(--font-title); font-weight: 600; font-size: 14.5px; color: #fff; background: var(--achm-azul-corp); border-radius: 100px; padding: 12px 28px; text-decoration: none; transition: background .18s, transform .15s; }
.mu-region-cta:hover { background: var(--achm-rojo); transform: translateY(-2px); }
/* "Volver" sutil, dentro del cuadro de la banda (junto al CTA). */
.mu-region-back { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-title); font-weight: 600; font-size: 13.5px; color: #6a7785; text-decoration: none; transition: color .15s, transform .15s; }
.mu-region-back:hover { color: var(--achm-rojo); transform: translateX(-3px); }
/* Banda con mapa interactivo de la región: 2 columnas (mapa + info). */
.mu-region-grid { display: grid; grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); gap: 42px; align-items: center; }
/* Contenedor del mapa real (Leaflet): aspect-ratio da la altura; bordes redondeados. */
.mu-region-map { position: relative; min-width: 0; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); box-shadow: 0 18px 44px rgba(10, 26, 58, .16); background: #eaf1f5; z-index: 0; }
.mu-region-map .leaflet-container { font: inherit; background: #eaf1f5; }
/* Glow de líneas y puntos (turquesa de marca) como la constelación de Chile, sobre el mapa a color. */
.mu-region-map .mu-edge { filter: drop-shadow(0 0 2px rgba(1, 129, 139, .6)); }
.mu-region-map .mu-dot { filter: drop-shadow(0 0 4px rgba(1, 129, 139, .65)); }
/* Pulso de la comuna actual. */
.mu-pulse { position: relative; }
.mu-pulse-core { position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--achm-rojo); box-shadow: 0 0 8px 1px rgba(198, 37, 60, .9); }
.mu-pulse-ring { position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; border: 2px solid var(--achm-rojo); opacity: 0; animation: muPulse 2s cubic-bezier(.2, .6, .3, 1) infinite; }
.mu-pulse-ring.d2 { animation-delay: 1s; }
@keyframes muPulse { 0% { transform: scale(1); opacity: .85; } 100% { transform: scale(3.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .mu-pulse-ring { animation: none; } }
.mu-region-map .leaflet-popup-content { font-family: var(--font-title); font-size: 13.5px; color: var(--achm-azul-corp); margin: 11px 14px; line-height: 1.4; }
.mu-region-map .mu-pop-alc { color: #5a6b78; font-weight: 500; }
.mu-region-map .mu-pop-link { display: inline-block; margin-top: 4px; color: var(--achm-rojo); font-weight: 600; text-decoration: none; }
.mu-region-map .mu-pop-link:hover { text-decoration: underline; }
.mu-region-info { text-align: left; }
.mu-region-info .mu-hermanas { justify-content: flex-start; }
@media (max-width: 820px) {
  .mu-region-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
.back.wrap { padding: 40px 40px 48px; }
.back.wrap a { display: inline-flex; align-items: center; gap: 8px; color: var(--achm-azul-corp); font-family: var(--font-title); font-weight: 600; font-size: 14.5px; text-decoration: none; border: 1px solid var(--line); border-radius: 100px; padding: 11px 22px; transition: background .16s, color .16s, border-color .16s, transform .16s, box-shadow .16s; }
.back.wrap a:hover { background: var(--achm-azul-corp); color: #fff; border-color: var(--achm-azul-corp); transform: translateX(-3px); box-shadow: 0 8px 20px rgba(10, 26, 58, .14); }
.mnote { margin-top: 22px; }
/* Video de YouTube de la comuna (ficha): solo aparece si el admin ancló una URL. */
.mu-video-sec { padding-top: 0; }
.mu-video-card { background: #fff; border: .5px solid var(--line); border-radius: 16px; padding: 28px 30px 30px; box-shadow: 0 12px 34px rgba(10,26,58,.07); }
.mu-video-card h2 { font-size: 20px; color: var(--achm-azul-corp); margin: 0 0 18px; }
.mu-video { position: relative; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; border: 1px solid var(--line); background: #000; }
.mu-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
@media (prefers-reduced-motion: reduce) { .mu-card { animation: none; } }
@media (max-width: 820px) {
  .mu-hero-inner { padding: 30px 20px 32px; }
  .mu-main { padding-top: 36px; }
  .mu-grid { grid-template-columns: 1fr; gap: 18px; }
  .back.wrap { padding: 32px 20px 40px; }
  .mu-avatar { width: 74px; height: 74px; font-size: 29px; }
  .mu-alcalde-txt b { font-size: 20px; }
}

.mfilter { display: flex; align-items: center; gap: 14px; margin-bottom: 28px; flex-wrap: wrap; }
.mfilter input { flex: 1; min-width: 240px; max-width: 420px; font-family: var(--font-body); font-size: 15px; padding: 12px 16px; border: .5px solid var(--line); border-radius: var(--radius); background: var(--paper); color: var(--ink); }
.mfilter input:focus { outline: 2px solid var(--achm-turquesa); outline-offset: 1px; border-color: var(--achm-turquesa); }
.mcount { font-size: 13.5px; color: #6a7785; font-family: var(--font-title); font-weight: 600; }
.mregions { display: flex; flex-direction: column; gap: 12px; }
.mregion { border: .5px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden; }
.mregion > summary { display: flex; align-items: center; gap: 12px; padding: 16px 20px; cursor: pointer; font-family: var(--font-title); font-weight: 600; color: var(--achm-azul-corp); list-style: none; }
.mregion > summary::-webkit-details-marker { display: none; }
.mregion > summary::after { content: "+"; margin-left: auto; font-size: 20px; line-height: 1; color: var(--achm-turquesa); transition: transform .2s; }
.mregion[open] > summary::after { content: "−"; }
.mregion > summary:hover { background: var(--achm-grad-claro); }
.mregion > summary:focus-visible { outline: 2px solid var(--achm-turquesa); outline-offset: -2px; }
.rcode { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 26px; padding: 0 8px; border-radius: 7px; background: var(--achm-azul-corp); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .5px; }
.rname { flex: 0 1 auto; }
.rnum { font-style: normal; font-size: 12px; font-weight: 700; color: var(--achm-rojo); background: var(--achm-celeste); border-radius: 20px; padding: 2px 10px; margin-left: 4px; }
.mlist { list-style: none; margin: 0; padding: 6px 20px 20px; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 18px; }
.mlist li { margin: 0; }
.mlist a { display: block; padding: 8px 10px; border-radius: 8px; text-decoration: none; color: #2b3a4a; font-size: 14.5px; transition: background .15s, color .15s; }
.mlist a:hover, .mlist a:focus { background: var(--achm-celeste); color: var(--achm-azul-corp); }
.mempty { padding: 0 20px 18px; margin: 0; }

/* Municipios — ficha de comuna */
.mficha { max-width: 640px; }
.finfo { margin: 0; }
.frow { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 14px 0; border-bottom: .5px solid var(--line); }
.frow dt { font-family: var(--font-title); font-weight: 600; color: var(--achm-azul-corp); font-size: 14.5px; margin: 0; }
.frow dd { margin: 0; font-size: 15px; color: #2b3a4a; }
.frow dd a { color: var(--achm-azul-desarrollo); }
.pendiente { color: #8a97a5; font-style: italic; font-size: 14px; }
.mnote { margin-top: 22px; }

/* ===== Home (portada · 7 bloques §18.2) ===== */
/* La cabecera transparente/fija es global (arriba, .topbar). El home no necesita
   overrides propios: su hero es full-bleed y el header se funde igual. */

/* Bloque 1 — Héroe carrusel full-bleed (imágenes pared a pared, ancho completo,
   configurable desde el gestor). Cada slide = imagen + velo de marca para legibilidad
   del texto blanco (más oscuro a la izquierda y bordes). Ref: lascondes.cl / Guía §Bloque 1. */
.home-hero { position: relative; min-height: 100vh; min-height: 100svh; color: #fff; overflow: hidden; background-color: var(--achm-azul-corp); }
.hero-track { position: absolute; inset: 0; }
.hero-slide {
  position: absolute; inset: 0; display: flex; align-items: center;
  opacity: 0; visibility: hidden; transition: opacity .8s ease;
}
.hero-slide.is-active { opacity: 1; visibility: visible; }
/* Imagen de fondo del slide vía <img> (CSP: img-src 'self'; no usar style inline). */
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; transition: opacity .5s ease; }
/* Velo de marca para legibilidad del texto blanco: más oscuro a la izquierda y en los bordes. */
.hero-slide::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image:
    linear-gradient(90deg, rgba(0, 23, 38, .92) 0%, rgba(0, 23, 38, .55) 48%, rgba(0, 23, 38, .12) 100%),
    linear-gradient(180deg, rgba(0, 23, 38, .72) 0%, rgba(0, 23, 38, 0) 24%, rgba(0, 23, 38, 0) 70%, rgba(0, 23, 38, .74) 100%);
}
/* Mapa interactivo de las 346 comunas — solo en el primer slide, sobre la imagen (derecha). */
.hero-map { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; }
.region-tag { position: absolute; z-index: 4; transform: translate(-50%, -122%); display: flex; align-items: center; gap: 12px; background: rgba(0, 23, 38, .92); border: 1px solid rgba(177, 234, 239, .4); color: #fff; padding: 9px 11px 9px 14px; border-radius: 12px; pointer-events: none; box-shadow: 0 14px 34px rgba(0, 0, 0, .34); white-space: nowrap; }
.region-tag b { font-family: var(--font-title); display: block; font-size: 14px; font-weight: 700; line-height: 1.2; }
.region-tag small { font-size: 12px; color: var(--achm-celeste); }
.region-more { pointer-events: auto; flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%; background: var(--achm-rojo); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 21px; line-height: 0; font-family: var(--font-body); text-decoration: none; transition: transform .15s, filter .15s; }
.region-more:hover { transform: scale(1.12); filter: brightness(1.1); }
.region-tag::after { content: ""; position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%) rotate(45deg); width: 10px; height: 10px; background: rgba(0, 23, 38, .92); border-right: 1px solid rgba(177, 234, 239, .4); border-bottom: 1px solid rgba(177, 234, 239, .4); }
.map-hint { position: absolute; right: 7%; bottom: 92px; z-index: 3; color: #cdd9e3; font-family: var(--font-title); font-size: 11.5px; letter-spacing: .5px; display: flex; align-items: center; gap: 7px; opacity: .9; margin: 0; pointer-events: none; }
.map-hint span { width: 7px; height: 7px; border-radius: 50%; background: var(--achm-rojo); box-shadow: 0 0 0 4px rgba(198, 37, 60, .25); }
/* Controles del carrusel */
.hero-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .45); background: rgba(0, 23, 38, .28); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .2s, border-color .2s; }
.hero-arrow:hover { background: var(--achm-rojo); border-color: var(--achm-rojo); }
.hero-prev { left: 26px; }
.hero-next { right: 26px; }
.hero-dots { position: absolute; bottom: 52px; left: 50%; transform: translateX(-50%); z-index: 3; display: flex; gap: 10px; }
.hero-dot { width: 10px; height: 10px; border-radius: 50%; border: 0; padding: 0; background: rgba(255, 255, 255, .45); cursor: pointer; transition: background .2s, width .2s; }
.hero-dot.is-active { background: #fff; width: 26px; border-radius: 5px; }
/* z-index 3 (sobre el mapa); pointer-events: none deja pasar el clic al canvas del mapa,
   solo el texto/botones vuelven a ser interactivos. */
.home-hero-inner { position: relative; z-index: 3; width: 100%; max-width: var(--container); margin: 0 auto; padding: 120px 40px; pointer-events: none; }
.home-hero-copy { max-width: 600px; pointer-events: auto; }
.home-hero .eyebrow { color: #7CD3DF; }
.home-hero .hero-title { font-weight: 800; font-size: clamp(40px, 6.6vw, 64px); line-height: 1.02; margin: 12px 0 0; text-shadow: 0 2px 26px rgba(0, 18, 30, .55); }
.home-hero .hero-title span { color: var(--achm-celeste); }
.home-hero .lead { font-size: clamp(16px, 1.7vw, 19px); line-height: 1.6; color: #dbe6ef; margin: 18px 0 0; max-width: 520px; }
.scroll { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: #cdd9e3; font-size: 11px; font-family: var(--font-title); letter-spacing: 1px; z-index: 2; margin: 0; }

/* Eyebrow turquesa sobre fondos claros (las secciones .sec) */
.sec .eyebrow { color: var(--achm-turquesa); }
.head-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; }
.link-more { font-family: var(--font-title); font-weight: 600; color: var(--achm-rojo); text-decoration: none; font-size: 15px; white-space: nowrap; }
.link-more:hover { text-decoration: underline; }
.empty { color: #6a7785; font-size: 15px; margin-top: 30px; }

/* Bloque 2 — Accesos de tarea */
/* Silueta de Chile (de Arica a Magallanes) como marca de agua muy tenue al fondo. */
#accesos { position: relative; }
#accesos::before { content: ""; position: absolute; inset: 0; background: url("/assets/img/chile-silueta.svg") no-repeat center center; background-size: contain; opacity: .05; pointer-events: none; z-index: 0; }
#accesos > .wrap { position: relative; z-index: 1; }
.card .ic { width: 46px; height: 46px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--achm-celeste); color: var(--achm-azul-corp); margin-bottom: 16px; }
.card .go { display: inline-flex; align-items: center; gap: 6px; transition: gap .2s; }
.card:hover .go { gap: 10px; }

/* Hero — accesos rápidos como tags de texto simétricos (igual ancho) */
.hero-access { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 30px 0 4px; max-width: 720px; }
.hero-access-tag { display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 13px 14px; border-radius: 12px; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .2); color: #fff; text-decoration: none; font-family: var(--font-title); font-weight: 600; font-size: 14px; line-height: 1.1; text-align: center; backdrop-filter: blur(2px); transition: background .18s, transform .18s, border-color .18s; }
.hero-access-tag svg { flex: 0 0 auto; color: var(--achm-celeste); transition: color .18s; }
.hero-access-tag:hover, .hero-access-tag:focus-visible { transform: translateY(-3px); }
.hero-access-tag:hover svg, .hero-access-tag:focus-visible svg { color: #fff; }
/* Color propio de cada acceso al pasar el cursor (como las tarjetas de acceso) */
.hero-access-tag.is-rojo:hover, .hero-access-tag.is-rojo:focus-visible { background: var(--achm-rojo); border-color: var(--achm-rojo); }
.hero-access-tag.is-turquesa:hover, .hero-access-tag.is-turquesa:focus-visible { background: var(--achm-turquesa); border-color: var(--achm-turquesa); }
.hero-access-tag.is-azul:hover, .hero-access-tag.is-azul:focus-visible { background: var(--achm-azul-desarrollo); border-color: var(--achm-azul-desarrollo); }
/* Móvil: los 4 accesos del héroe en 2×2 (mismo tamaño), y el tag de región se
   fija abajo compacto para no tapar el título/bajada (obs. David). */
@media (max-width: 600px) {
  .hero-access { grid-template-columns: repeat(2, 1fr); max-width: 360px; gap: 10px; }
  .hero-access-tag { padding: 12px 8px; font-size: 13px; }
  /* Móvil: la etiqueta de región se fija ARRIBA (bajo la cabecera), sobre el cielo
     del mapa, para no taparse con las cifras. El contenido del héroe baja para
     dejarle su espacio (padding-top mayor abajo). */
  .region-tag {
    left: 50% !important; right: auto !important; bottom: auto !important;
    top: 90px !important; transform: translateX(-50%) !important;
    max-width: calc(100vw - 32px); white-space: nowrap; text-align: left;
    font-size: 12px; padding: 7px 11px; gap: 8px;
  }
  .region-tag b { font-size: 13px; }
  .region-tag::after { display: none; }
  .map-hint { display: none; }
}

/* Tarjetas de acceso: color de la paleta + ilustración 3D que desborda (ref. Fancy/lascondes).
   Solo colores NO reservados: azul corp, azul desarrollo, turquesa, rojo. */
.acceso { position: relative; overflow: hidden; color: #fff; border: 0; padding: 0; display: flex; flex-direction: column; min-height: 300px; transition: transform .28s cubic-bezier(.2, .7, .2, 1), box-shadow .28s ease; }
/* Foto de cabecera (zoom suave al pasar el cursor) */
.acceso-foto { display: block; height: 150px; overflow: hidden; background: rgba(0, 18, 30, .25); }
.acceso-foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.acceso:hover .acceso-foto img { transform: scale(1.09); }
/* Motivo de anillos concéntricos en el cuerpo (alude al isotipo). Pulsa al pasar el cursor. */
.acceso::before { content: ""; position: absolute; right: -46px; bottom: -46px; width: 248px; height: 248px; pointer-events: none; z-index: 0; transform-origin: 78% 78%; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='248' height='248'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.13'%3E%3Ccircle cx='174' cy='174' r='40'/%3E%3Ccircle cx='174' cy='174' r='70'/%3E%3Ccircle cx='174' cy='174' r='100'/%3E%3Ccircle cx='174' cy='174' r='130'/%3E%3C/g%3E%3Ccircle cx='174' cy='174' r='7' fill='%23ffffff' fill-opacity='0.16'/%3E%3C/svg%3E") no-repeat center / contain; animation: acceso-pulso 9s ease-in-out infinite; }
.acceso > * { position: relative; z-index: 1; }
.acceso:nth-child(2)::before { animation-delay: -1.5s; }
.acceso:nth-child(3)::before { animation-delay: -3s; }
.acceso:nth-child(4)::before { animation-delay: -4.5s; }
.acceso:nth-child(5)::before { animation-delay: -6s; }
.acceso:nth-child(6)::before { animation-delay: -7.5s; }
/* Al pasar el cursor: el punto/anillos laten más rápido y fuerte (efecto ping). */
.acceso:hover::before { animation: acceso-ping 1.5s ease-in-out infinite; }
@keyframes acceso-pulso { 0%, 100% { transform: scale(1); opacity: .85; } 50% { transform: scale(1.05); opacity: 1; } }
@keyframes acceso-ping { 0% { transform: scale(.9); opacity: .45; } 50% { transform: scale(1.16); opacity: 1; } 100% { transform: scale(.9); opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .acceso::before, .acceso:hover::before { animation: none; } .acceso:hover .acceso-foto img { transform: none; } }
.acceso:nth-child(1) { background: var(--achm-azul-desarrollo); }
.acceso:nth-child(2) { background: var(--achm-turquesa); }
.acceso:nth-child(3) { background: var(--achm-azul-corp); }
.acceso:nth-child(4) { background: var(--achm-azul-desarrollo); }
.acceso:nth-child(5) { background: var(--achm-rojo); }
.acceso:nth-child(6) { background: var(--achm-turquesa); }
.acceso-body { position: relative; z-index: 1; padding: 36px 26px 26px; display: flex; flex-direction: column; flex: 1; }
/* Ícono en pastilla blanca superpuesto al borde foto/cuerpo; el color del ícono = color de la tarjeta. */
.acceso-ic { position: absolute; top: -26px; left: 26px; z-index: 2; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 15px; background: #fff; box-shadow: 0 12px 26px rgba(0, 18, 30, .32); transition: transform .25s ease, box-shadow .25s ease; }
.acceso:nth-child(1) .acceso-ic, .acceso:nth-child(4) .acceso-ic { color: var(--achm-azul-desarrollo); }
.acceso:nth-child(2) .acceso-ic, .acceso:nth-child(6) .acceso-ic { color: var(--achm-turquesa); }
.acceso:nth-child(3) .acceso-ic { color: var(--achm-azul-corp); }
.acceso:nth-child(5) .acceso-ic { color: var(--achm-rojo); }
.acceso h3 { color: #fff; font-size: 19px; margin: 0 0 8px; }
.acceso p { color: rgba(255, 255, 255, .9); font-size: 14.5px; line-height: 1.55; margin: 0 0 18px; flex: 1; }
.acceso .go { color: #fff; }
.acceso:hover { transform: translateY(-6px); box-shadow: 0 24px 52px rgba(10, 26, 58, .32); }
.acceso:hover .acceso-ic { transform: translateY(-3px); box-shadow: 0 16px 32px rgba(0, 18, 30, .42); }

/* Bloque 3 — Agenda vigente */
.agenda { background: var(--paper); }
.event { display: flex; gap: 20px; align-items: center; background: #fff; border: .5px solid var(--line); border-radius: var(--radius); padding: 20px 24px; transition: transform .2s, box-shadow .2s; }
.event:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(10,26,58,.09); }
.event .date { flex: 0 0 76px; text-align: center; background: var(--achm-azul-corp); color: #fff; border-radius: 12px; padding: 12px 6px; }
.event .date .d { font-family: var(--font-title); font-weight: 800; font-size: 24px; line-height: 1; }
.event .date .m { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--achm-celeste); }
.event .info { flex: 1; }
.event h3 { font-size: 17px; font-weight: 600; color: var(--achm-azul-corp); margin: 0 0 4px; }
.event .meta { font-size: 13px; color: #6a7785; display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin: 0; }
.badge { font-family: var(--font-title); font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 20px; background: #E1F5EE; color: #0F6E56; }
.badge.web { background: #E6F1FB; color: #185FA5; }
.ghost-d { background: transparent; color: var(--achm-azul-corp); border: 1.5px solid var(--achm-azul-corp); }

/* Bloque 4 — Prioridades estratégicas (franja oscura) */
.prio {
  position: relative; overflow: hidden; color: #fff;
  padding-top: 104px; padding-bottom: 104px;
  background:
    radial-gradient(720px 480px at 87% -14%, rgba(1,129,139,.32), transparent 62%),
    radial-gradient(620px 460px at 2% 120%, rgba(124,211,223,.12), transparent 60%),
    linear-gradient(168deg, #013a58 0%, var(--achm-azul-corp) 54%, #001621 100%);
}
.prio > .wrap { position: relative; z-index: 3; }
/* Glow turquesa con pulso suave (profundidad/dinamismo). */
.prio::before {
  content: ""; position: absolute; top: -180px; right: -130px;
  width: 540px; height: 540px; border-radius: 50%; z-index: 1; pointer-events: none;
  background: radial-gradient(circle, rgba(1,129,139,.38), transparent 66%);
  animation: prioGlow 13s ease-in-out infinite alternate;
}
@keyframes prioGlow { from { transform: translate(0,0) scale(1); opacity: .8; } to { transform: translate(-46px,34px) scale(1.14); opacity: 1; } }
/* Silueta punteada de Chile = las 346 comunas (alusión al claim y al isotipo). */
.prio::after {
  content: ""; position: absolute; top: 50%; right: 3%; width: 300px; height: 150%;
  z-index: 2; pointer-events: none; transform: translateY(-50%);
  background: var(--achm-celeste);
  -webkit-mask: url("../img/chile-silueta.svg") no-repeat right center / auto 100%;
  mask: url("../img/chile-silueta.svg") no-repeat right center / auto 100%;
  opacity: .14; animation: prioFloat 17s ease-in-out infinite;
}
@keyframes prioFloat {
  0%   { transform: translateY(-55%) translateX(0); }
  25%  { transform: translateY(-50%) translateX(-12px); }
  50%  { transform: translateY(-45%) translateX(-2px); }
  75%  { transform: translateY(-50%) translateX(12px); }
  100% { transform: translateY(-55%) translateX(0); }
}
.prio h2 { color: #fff; }
.prio .eyebrow { color: #7CD3DF; }
.prio .lead { color: #bcd0de; font-size: 17px; max-width: 620px; margin: 14px 0 0; line-height: 1.6; }
@media (prefers-reduced-motion: reduce) { .prio::before, .prio::after { animation: none; } }
.prio-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin-top: 40px; }
.pcard { position: relative; border: .5px solid rgba(255,255,255,.14); border-radius: var(--radius); padding: 24px; overflow: hidden; transition: background .25s, transform .25s, border-color .25s; }
.pcard::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, var(--achm-turquesa), var(--achm-celeste)); transform: scaleX(0); transform-origin: left; transition: transform .4s cubic-bezier(.2,.7,.2,1); }
.pcard:hover { background: rgba(255,255,255,.06); transform: translateY(-4px); border-color: rgba(177,234,239,.38); }
.pcard:hover::before { transform: scaleX(1); }
.pcard-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.pcard .pic { width: 42px; height: 42px; border-radius: 10px; background: rgba(177,234,239,.14); color: var(--achm-celeste); display: inline-flex; align-items: center; justify-content: center; transition: background .25s, color .25s, transform .3s cubic-bezier(.2,.7,.2,1); }
.pcard:hover .pic { background: var(--achm-turquesa); color: #fff; transform: scale(1.1) rotate(-4deg); }
.pnum { font-family: var(--font-title); font-weight: 800; font-size: 30px; line-height: 1; color: rgba(177,234,239,.22); transition: color .25s; }
.pcard:hover .pnum { color: rgba(177,234,239,.5); }
.pcard h3 { font-size: 17px; font-weight: 600; margin: 0 0 6px; }
.pcard p { margin: 0; color: #aebfcd; font-size: 14px; line-height: 1.5; }

/* Bloque 5 — Noticias ACHM (1 destacada + hasta 3) */
.news { display: grid; grid-template-columns: 1.25fr 1fr; gap: 22px; margin-top: 40px; align-items: start; }
.nfeat, .nsmall { background: #fff; border: .5px solid var(--line); border-radius: var(--radius); overflow: hidden; transition: transform .2s, box-shadow .2s; }
.nfeat .thumb { height: 360px; }
.nfeat:hover, .nsmall:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(10,26,58,.10); }
.news .thumb { display: block; height: 230px; background: linear-gradient(135deg, var(--achm-azul-corp), var(--achm-azul-desarrollo)); position: relative; overflow: hidden; }
.nsmall { display: flex; min-height: 122px; }
.nsmall .thumb { flex: 0 0 138px; width: 138px; height: auto; }
.thumb-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; z-index: 1; transition: transform .4s ease; }
.news .thumb::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,39,63,.36), rgba(0,39,63,0) 48%); z-index: 1; pointer-events: none; }
.thumb .chip { z-index: 2; }
.nfeat:hover .thumb-img, .nsmall:hover .thumb-img { transform: scale(1.06); }
.news .nbody { padding: 18px 22px; display: block; }
.nsmall .nbody { padding: 13px 16px; display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.nfeat h3 { font-size: 22px; font-weight: 700; margin: 6px 0 8px; line-height: 1.2; }
.nfeat h3 a, .nsmall h3 a { color: var(--achm-azul-corp); text-decoration: none; }
.nfeat h3 a:hover, .nsmall h3 a:hover { color: var(--achm-rojo); }
.nfeat .nbody p { margin: 0; color: #5a6775; font-size: 14.5px; line-height: 1.55; }
.nsmall h3 { font-size: 15px; font-weight: 600; margin: 6px 0 0; line-height: 1.3; }
.ncol { display: flex; flex-direction: column; gap: 16px; }

/* Bloque 6 — Convenios y beneficios */
.conv { background: var(--paper); }
.cat { font-family: var(--font-title); font-weight: 600; font-size: 14px; color: var(--achm-turquesa); margin: 30px 0 14px; letter-spacing: .5px; display: flex; align-items: center; gap: 10px; }
.cat::after { content: ""; flex: 1; height: .5px; background: var(--line); }

/* Bloque de convenios del home — más presencia: título grande + acento rasgado, íconos grandes */
.conv .head-row h2 { font-size: clamp(28px, 3.6vw, 40px); letter-spacing: -.5px; }
.conv .head-row h2::after { content: ""; display: block; width: 92px; height: 5px; margin-top: 14px; border-radius: 3px;
  background: linear-gradient(90deg, var(--achm-rojo), var(--achm-turquesa)); }
.conv .cat { font-size: 15px; margin-top: 34px; }
.conv .logos:not(.logos-tiles) .logo-card { padding: 20px 22px; gap: 16px; }
.conv .logos:not(.logos-tiles) .lc-badge { width: 70px; height: 70px; border-radius: 15px; }
.conv .logos:not(.logos-tiles) .logo-card .nm { font-size: 17px; }
.conv .logos:not(.logos-tiles) .logo-card .bn { font-size: 12.5px; margin-top: 4px; }
.conv .logos-tiles .lc-badge { width: 96px; height: 96px; }
.conv .logos-tiles .logo-card.tile .nm { font-size: 14.5px; }
.logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.logo-card { display: flex; align-items: center; gap: 14px; background: #fff; border: .5px solid var(--line); border-radius: var(--radius); padding: 16px 18px; text-align: left; transition: transform .2s, box-shadow .2s; }
.logo-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(10,26,58,.08); border-color: var(--achm-celeste); }
.logo-card .lc-logo, .logo-card .mono { transition: transform .28s cubic-bezier(.2,.7,.2,1); }
.logo-card:hover .lc-logo, .logo-card:hover .mono { transform: scale(1.09); }
.logo-card.tile:hover { border-color: var(--achm-turquesa); }
.lc-badge { flex: 0 0 auto; width: 58px; height: 58px; display: grid; place-items: center; border-radius: 12px; }
.has-logo .lc-badge { background: var(--achm-azul-corp); border: 1px solid var(--achm-azul-corp); padding: 9px; }
.has-logo .lc-badge--light { background: #fff; border-color: var(--line); }
/* Muro de logos (educación): tile vertical con el logo prominente */
.logos-tiles { grid-template-columns: repeat(auto-fill, minmax(158px, 1fr)); }
.logo-card.tile { flex-direction: column; align-items: center; text-align: center; gap: 12px; padding: 22px 14px 18px; }
.logo-card.tile .lc-badge { width: 86px; height: 86px; border-radius: 16px; padding: 13px; }
.logo-card.tile .lc-txt { align-items: center; gap: 3px; }
.logo-card.tile .nm { font-size: 13.5px; line-height: 1.3; }
.logo-card.tile .bn { font-size: 11.5px; }
.logo-card .lc-logo { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.logo-card .mono { width: 58px; height: 58px; border-radius: 12px; display: grid; place-items: center; font-family: var(--font-title); font-weight: 700; font-size: 20px; color: #fff; }

/* ===== Convenios: realce interactivo (tilt 3D + acentos + reveal escalonado) ===== */
.cat-card, .logo-card, .conv-pdf { transform-style: preserve-3d; will-change: transform; }
.cat-card { transition: transform .16s ease, box-shadow .28s ease, border-color .28s ease; }
.cat-card::before, .logo-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; border-radius: var(--radius) var(--radius) 0 0; background: linear-gradient(90deg, var(--achm-turquesa), var(--achm-celeste)); transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.2,.7,.2,1); pointer-events: none; }
.logo-card { position: relative; }
.cat-card:hover::before, .cat-card.is-tilt::before, .logo-card:hover::before, .logo-card.is-tilt::before { transform: scaleX(1); }
.cat-card:hover, .cat-card.is-tilt { box-shadow: 0 24px 48px rgba(10,26,58,.16); border-color: var(--achm-turquesa); }
.logo-card.is-tilt { box-shadow: 0 22px 44px rgba(10,26,58,.14); border-color: var(--achm-turquesa); }
.cat-card .cat-logo, .cat-card .cat-body { transition: transform .2s ease; }
.cat-card.is-tilt .cat-logo { transform: translateZ(38px); }
.cat-card.is-tilt .cat-body { transform: translateZ(18px); }
.logo-card .lc-badge { transition: transform .22s cubic-bezier(.2,.7,.2,1); }
.logo-card.is-tilt .lc-badge { transform: translateZ(32px) scale(1.06); }
.conv-pdf.is-tilt { box-shadow: 0 26px 56px rgba(16,67,112,.4); }

/* Aparición escalonada de los logos al entrar en viewport */
.logos.reveal .logo-card { opacity: 0; transform: translateY(16px); transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1); }
.logos.reveal.in .logo-card { opacity: 1; transform: none; }
.logos.reveal.in .logo-card:nth-child(2) { transition-delay: .06s; }
.logos.reveal.in .logo-card:nth-child(3) { transition-delay: .12s; }
.logos.reveal.in .logo-card:nth-child(4) { transition-delay: .18s; }
.logos.reveal.in .logo-card:nth-child(5) { transition-delay: .24s; }
.logos.reveal.in .logo-card:nth-child(6) { transition-delay: .3s; }
.logos.reveal.in .logo-card:nth-child(n+7) { transition-delay: .34s; }
@media (prefers-reduced-motion: reduce) {
  .logos.reveal .logo-card { opacity: 1; transform: none; transition: none; }
  .cat-card, .logo-card, .conv-pdf { transform: none !important; }
}
.lc-txt { display: flex; flex-direction: column; min-width: 0; }
.logos .logo-card:nth-child(4n+1) .mono { background: var(--achm-azul-corp); }
.logos .logo-card:nth-child(4n+2) .mono { background: var(--achm-turquesa); }
.logos .logo-card:nth-child(4n+3) .mono { background: var(--achm-azul-desarrollo); }
.logos .logo-card:nth-child(4n) .mono { background: var(--achm-rojo); }
.logo-card .nm { font-family: var(--font-title); font-weight: 600; color: var(--achm-azul-corp); font-size: 15px; }
.logo-card .bn { font-size: 12px; color: #6a7785; margin-top: 3px; }

/* ---- Carrusel de banners de beneficios (página /convenios) ---- */
.conv-banners { padding: 30px 40px 0; }
.conv-banners .wrap { position: relative; }
.cb-viewport { position: relative; overflow: hidden; border-radius: 16px; box-shadow: 0 18px 50px rgba(10, 26, 58, .16); background: var(--paper); transition: height .45s cubic-bezier(.22, 1, .36, 1); }
.cb-slide { display: block; position: absolute; top: 0; left: 0; width: 100%; opacity: 0; visibility: hidden; transition: opacity .55s ease, visibility .55s ease; }
.cb-slide.is-active { position: relative; opacity: 1; visibility: visible; z-index: 2; }
.cb-slide img { display: block; width: 100%; height: auto; }
.cb-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 50%; border: 0; background: rgba(0, 39, 63, .5); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; z-index: 4; display: grid; place-items: center; transition: background .2s, transform .2s; }
.cb-arrow:hover { background: rgba(0, 39, 63, .85); }
.cb-arrow:active { transform: translateY(-50%) scale(.94); }
.cb-prev { left: 54px; }
.cb-next { right: 54px; }
.cb-dots { display: flex; gap: 9px; justify-content: center; margin-top: 16px; }
.cb-dot { width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; background: rgba(10, 26, 58, .2); cursor: pointer; transition: background .2s, transform .2s; }
.cb-dot:hover { background: rgba(10, 26, 58, .4); }
.cb-dot[aria-selected="true"] { background: var(--achm-rojo); transform: scale(1.3); }

/* ---- Botón PDF en la cabecera ---- */
.phead-actions { margin-top: 22px; }

/* ---- Título de sección centrado y simétrico ---- */
.sec-head { text-align: center; max-width: 720px; margin: 0 auto 8px; }
.sec-head .eyebrow { color: var(--achm-turquesa); }
.sec-head h2 { margin: 8px 0 0; }
.sec-head h2::after { content: ""; display: block; width: 54px; height: 3px; background: var(--achm-rojo); border-radius: 2px; margin: 16px auto 0; }
.sec-sub { color: #6a7785; font-size: 15px; line-height: 1.6; margin: 16px auto 0; max-width: 560px; }

/* ---- Intro + estadísticas (simétricas) ---- */
.conv-intro { padding: 66px 40px 6px; }
.conv-intro .prose { text-align: center; max-width: 700px; margin: 0 auto; font-size: 17.5px; line-height: 1.85; color: #44525f; }
.conv-stats { display: flex; justify-content: center; align-items: stretch; flex-wrap: wrap; gap: 0; margin: 48px auto 0; max-width: 760px; padding: 30px 18px; background: linear-gradient(180deg, #fff, #f1fafc); border: 1px solid #e1eef2; border-radius: 20px; box-shadow: 0 16px 40px rgba(10, 26, 58, .06); }
.cs-item { flex: 1 1 0; min-width: 150px; max-width: 240px; text-align: center; padding: 6px 30px; transition: transform .2s ease; }
.cs-item:hover { transform: translateY(-4px); }
.cs-item b { font-family: var(--font-title); font-weight: 800; font-size: 46px; line-height: 1; color: var(--achm-azul-desarrollo); display: block; letter-spacing: -1px; }
.cs-item small { display: block; margin-top: 12px; color: #6a7785; font-size: 13.5px; letter-spacing: .3px; }
.cs-divider { width: 1px; align-self: center; height: 56px; background: linear-gradient(180deg, transparent, var(--line) 22%, var(--line) 78%, transparent); flex: 0 0 auto; }

/* ---- CTA del catálogo en PDF ---- */
.conv-pdf { display: flex; align-items: center; gap: 18px; margin: 26px auto 0; max-width: 720px; padding: 18px 22px; border-radius: 14px; text-decoration: none; color: #fff; background: var(--achm-grad-oscuro); box-shadow: 0 14px 34px rgba(16, 67, 112, .26); transition: transform .2s, box-shadow .2s; }
.conv-pdf:hover { transform: translateY(-3px); box-shadow: 0 20px 44px rgba(16, 67, 112, .34); }
.conv-pdf-ico { flex: 0 0 auto; width: 50px; height: 50px; display: grid; place-items: center; border-radius: 12px; background: rgba(255, 255, 255, .16); color: #fff; }
.conv-pdf-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.conv-pdf-txt strong { font-family: var(--font-title); font-weight: 700; font-size: 16px; }
.conv-pdf-txt small { font-size: 13px; color: rgba(255, 255, 255, .82); }
.conv-pdf-cta { margin-left: auto; font-family: var(--font-title); font-weight: 700; font-size: 14px; white-space: nowrap; }

/* ---- Espaciado de las sub-secciones de convenios ---- */
.conv-destacados, .conv-edu { padding: 52px 40px; }
.conv-catalogo { padding: 52px 40px 84px; background: var(--paper); }

/* ---- Catálogo institucional filtrable ---- */
.cat-tools { display: flex; flex-direction: column; gap: 16px; margin-top: 26px; }
.cat-tools-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; }
/* Filtro de comisión como pills horizontales (ref. lascondes.cl/beneficios) */
.cat-chips { display: flex; gap: 9px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; scrollbar-color: var(--line) transparent; -webkit-overflow-scrolling: touch; }
.cat-chips::-webkit-scrollbar { height: 6px; }
.cat-chips::-webkit-scrollbar-thumb { background: var(--line); border-radius: 100px; }
.cat-chip-btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--line); background: #fff; color: var(--achm-azul-corp); font-family: var(--font-title); font-weight: 600; font-size: 13px; padding: 8px 15px; border-radius: 100px; cursor: pointer; white-space: nowrap; transition: background .15s, color .15s, border-color .15s, transform .12s; }
.cat-chip-btn:hover { border-color: var(--achm-turquesa); color: var(--achm-turquesa); }
.cat-chip-btn:active { transform: scale(.96); }
.cat-chip-btn.is-active { background: var(--achm-azul-corp); border-color: var(--achm-azul-corp); color: #fff; }
.cc-n { font-size: 11px; font-weight: 700; opacity: .55; }
.cat-chip-btn.is-active .cc-n { opacity: .8; }
.cat-search-box { position: relative; flex: 1 1 260px; display: flex; align-items: center; }
.cat-search-box svg { position: absolute; left: 14px; color: #8a97a5; pointer-events: none; }
.cat-search-box input { width: 100%; padding: 12px 14px 12px 42px; border: 1px solid var(--line); border-radius: 10px; font: inherit; background: #fff; color: var(--ink); }
.cat-search-box input:focus { outline: 2px solid var(--achm-turquesa); outline-offset: 1px; border-color: transparent; }
.cat-select { display: flex; flex-direction: column; gap: 5px; }
.cat-select-lbl { font-family: var(--font-title); font-weight: 600; font-size: 11px; letter-spacing: .4px; text-transform: uppercase; color: #8a97a5; }
.cat-select select { padding: 11px 14px; border: 1px solid var(--line); border-radius: 10px; font: inherit; background: #fff; color: var(--ink); cursor: pointer; min-width: 190px; }
.cat-select select:focus { outline: 2px solid var(--achm-turquesa); outline-offset: 1px; }
.cat-count { font-family: var(--font-title); font-weight: 600; font-size: 13px; color: #6a7785; margin: 16px 0 0; }
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-top: 14px; }
.cat-card[hidden] { display: none; }
/* Tarjeta de convenio con FLIP al clic: cara frontal (resumen) → cara trasera
   (descripción completa + «Ver archivo»). Alto fijo para que el volteo calce. */
.cat-flip { position: relative; height: 190px; perspective: 1200px; cursor: pointer; border-radius: var(--radius); }
.cat-flip::before { display: none; }
.cat-flip:focus-visible { outline: 2px solid var(--achm-turquesa); outline-offset: 3px; }
.cat-flip .cat-inner { position: relative; width: 100%; height: 100%; transition: transform .55s cubic-bezier(.2, .7, .2, 1); transform-style: preserve-3d; }
.cat-flip.is-flipped .cat-inner { transform: rotateY(180deg); }
.cat-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; background: #fff; border: .5px solid var(--line); border-radius: var(--radius); padding: 18px; box-shadow: 0 1px 2px rgba(10, 26, 58, .04); transition: box-shadow .2s, border-color .2s; }
.cat-flip:hover .cat-face { box-shadow: 0 14px 32px rgba(10, 26, 58, .10); border-color: var(--achm-celeste); }
.cat-front { display: flex; gap: 14px; }
/* Icono de «voltear» (arriba a la derecha de la cara frontal): indica que la
   tarjeta se da vuelta al clic. */
.cat-flip-ic { position: absolute; top: 12px; right: 12px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--paper, #eef3f8); color: var(--achm-turquesa); transition: background .18s, color .18s, transform .35s ease; }
.cat-flip:hover .cat-flip-ic { background: var(--achm-turquesa); color: #fff; transform: rotate(-180deg); }
.cat-back { transform: rotateY(180deg); display: flex; flex-direction: column; }
.cat-more { margin-top: 10px; align-self: flex-start; font-family: var(--font-title); font-weight: 600; font-size: 12px; color: var(--achm-turquesa); display: inline-flex; gap: 5px; align-items: center; }
.cat-flip:hover .cat-more span, .cat-flip:hover .cat-doc span { transform: translateX(2px); }
.cat-more span { transition: transform .15s; }
.cat-back-name { font-family: var(--font-title); font-weight: 700; font-size: 14px; color: var(--achm-azul-corp); margin: 0 0 8px; }
.cat-back-name span { color: #8a97a5; font-weight: 600; }
.cat-back-desc { font-size: 12.5px; color: #4b5a68; line-height: 1.5; margin: 0; overflow-y: auto; flex: 1; }
.cat-back-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.cat-flip-back { background: none; border: 0; padding: 0; cursor: pointer; font-family: var(--font-title); font-weight: 600; font-size: 12.5px; color: #8a97a5; transition: color .15s; }
.cat-flip-back:hover { color: var(--achm-rojo); }
.cat-back .cat-doc { margin-top: 0; }
.cat-logo { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 11px; display: grid; place-items: center; overflow: hidden; }
.cat-logo img { width: 100%; height: 100%; object-fit: contain; background: #fff; border: 1px solid var(--line); border-radius: 11px; padding: 5px; }
.cat-logo--light img { background: var(--achm-azul-corp); border-color: var(--achm-azul-corp); }
.cat-mono { width: 100%; height: 100%; border-radius: 11px; display: grid; place-items: center; font-family: var(--font-title); font-weight: 700; font-size: 19px; color: #fff; background: var(--achm-azul-desarrollo); }
.cat-grid .cat-card:nth-child(4n+1) .cat-mono { background: var(--achm-azul-corp); }
.cat-grid .cat-card:nth-child(4n+2) .cat-mono { background: var(--achm-turquesa); }
.cat-grid .cat-card:nth-child(4n+3) .cat-mono { background: var(--achm-azul-desarrollo); }
.cat-grid .cat-card:nth-child(4n)   .cat-mono { background: var(--achm-rojo); }
.cat-body { min-width: 0; display: flex; flex-direction: column; }
.cat-name { font-family: var(--font-title); font-weight: 700; font-size: 15.5px; color: var(--achm-azul-corp); margin: 0 0 4px; line-height: 1.25; }
.cat-desc { font-size: 12.5px; color: #6a7785; line-height: 1.45; margin: 0 0 12px; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cat-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: auto; }
.cat-doc { display: inline-flex; align-items: center; gap: 5px; align-self: flex-start; margin-top: 11px; font-family: var(--font-title); font-weight: 600; font-size: 12.5px; color: var(--achm-azul-desarrollo); text-decoration: none; transition: color .15s, gap .15s; }
.cat-doc:hover { color: var(--achm-rojo); gap: 8px; }
.cat-chip { font-family: var(--font-title); font-weight: 600; font-size: 11px; padding: 4px 10px; border-radius: 100px; background: var(--achm-celeste); color: var(--achm-azul-corp); }
.cat-year { font-family: var(--font-title); font-weight: 700; font-size: 11px; color: #8a97a5; margin-left: auto; }
.cat-empty { text-align: center; color: #6a7785; padding: 36px; font-size: 14.5px; }

@media (max-width: 720px) {
  .conv-banners { padding: 18px 16px 0; }
  .cb-arrow { width: 38px; height: 38px; font-size: 22px; }
  .cb-prev { left: 22px; }
  .cb-next { right: 22px; }
  .conv-intro { padding: 40px 0 0; }
  .conv-destacados, .conv-edu { padding: 40px 0; }
  .conv-catalogo { padding: 40px 0 64px; }
  .conv-stats { gap: 18px 28px; padding: 22px 14px; }
  .cs-item { padding: 6px 14px; }
  .cs-item b { font-size: 32px; }
  .cs-divider { display: none; }
  .cat-select, .cat-select select { width: 100%; }
  .cat-grid { grid-template-columns: 1fr; }
}

/* Motion — aparición al hacer scroll (mejora progresiva; sin JS quedan visibles vía .in / reduced-motion) */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .65s cubic-bezier(.22,1,.36,1), transform .65s cubic-bezier(.22,1,.36,1); }
.reveal.in { opacity: 1; transform: none; }

@media (max-width: 860px) {
  .menu { display: none; }
  /* La barra utilitaria (accesos rápidos con íconos) no cabe en móvil → se oculta;
     esos enlaces van dentro del menú hamburguesa (.mm-util). */
  .util { display: none; }
  /* Hamburguesa + panel desplegable */
  .nav-toggle { display: inline-flex; }
  .nav .search { margin-left: auto; }
  .menu-movil {
    display: block; position: absolute; top: 100%; left: 0; right: 0;
    background: #fff; border-top: 1px solid var(--line);
    box-shadow: 0 20px 44px rgba(0, 39, 63, .16);
    max-height: 0; overflow: hidden; visibility: hidden;
    transition: max-height .3s ease, visibility .3s; z-index: 60;
  }
  .menu-movil.is-open { max-height: calc(100vh - 60px); overflow-y: auto; visibility: visible; }
  .mm-nav a {
    display: block; padding: 15px 24px; color: var(--achm-azul-corp);
    font-family: var(--font-title); font-weight: 600; font-size: 16px;
    text-decoration: none; border-bottom: 1px solid var(--line);
  }
  .mm-nav a:hover, .mm-nav a[aria-current] { color: var(--achm-rojo); }
  /* Acordeón de secciones con submenú (móvil) */
  .mm-group { border-bottom: 1px solid var(--line); }
  .mm-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 15px 24px; background: none; border: 0; cursor: pointer; font-family: var(--font-title); font-weight: 600; font-size: 16px; color: var(--achm-azul-corp); text-align: left; }
  .mm-toggle .menu-caret { transition: transform .25s ease; opacity: .65; flex: 0 0 auto; }
  .mm-toggle[aria-expanded="true"] .menu-caret { transform: rotate(180deg); }
  .mm-sub { max-height: 0; overflow: hidden; transition: max-height .3s ease; background: var(--paper); }
  .mm-sub.is-open { max-height: 640px; }
  .mm-nav .mm-sub a { padding: 12px 24px 12px 40px; font-weight: 500; font-size: 14.5px; color: var(--achm-azul-desarrollo); border-bottom: 1px solid rgba(0, 39, 63, .06); }
  .mm-nav .mm-sub a:hover { color: var(--achm-rojo); }
  .mm-util { display: flex; flex-direction: column; gap: 1px; padding: 8px 0 12px; background: var(--achm-celeste); }
  .mm-util a {
    display: flex; align-items: center; gap: 10px; padding: 11px 24px;
    color: var(--achm-azul-corp); text-decoration: none;
    font-family: var(--font-title); font-weight: 500; font-size: 14px;
  }
  .mm-util a svg { width: 17px; height: 17px; flex: 0 0 auto; color: var(--achm-turquesa); }
  .fgrid { grid-template-columns: 1fr 1fr; }
  .wrap, .nav { padding-left: 24px; padding-right: 24px; }
  .frow { grid-template-columns: 1fr; gap: 4px; }
  .home-hero-inner { padding: 148px 24px 72px; }
  .news { grid-template-columns: 1fr; }
  .event { flex-wrap: wrap; }
  /* En móvil el copy ocupa todo el ancho → velo más parejo sobre la foto; flechas fuera (solo puntos). */
  .hero-slide::after { background-image:
    linear-gradient(180deg, rgba(0, 23, 38, .6) 0%, rgba(0, 23, 38, .45) 45%, rgba(0, 23, 38, .82) 100%); }
  .hero-arrow { display: none; }
}
@media (max-width: 560px) {
  .home-hero-copy { max-width: 100%; }
}
/* Pantallas muy estrechas (Androids ≤360px): el logo con su bajada podría rozar
   los íconos de buscar/menú → se reduce un poco y se ajustan paddings/gap para
   que nada se superponga ni desborde. (En iPhone 375+ no cambia nada.) */
@media (max-width: 360px) {
  .nav { padding-left: 16px; padding-right: 16px; gap: 10px; }
  .brand img { height: 38px; }
  .brand { min-width: 0; flex: 0 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: none; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
  .reveal { opacity: 1; transform: none; }
  .scroll { display: none; }
}

/* ============================ Widget de accesibilidad ============================ */
.a11y-widget { position: fixed; left: 22px; bottom: 22px; z-index: 2147483000; font-family: var(--font-body); }
.a11y-fab { width: 54px; height: 54px; border-radius: 50%; border: 0; cursor: pointer; color: #fff; display: grid; place-items: center; background: linear-gradient(135deg, var(--achm-azul-desarrollo), var(--achm-turquesa)); box-shadow: 0 10px 26px rgba(1,129,139,.45); transition: transform .18s, box-shadow .18s; }
.a11y-fab:hover { transform: translateY(-2px) scale(1.05); box-shadow: 0 14px 32px rgba(1,129,139,.55); }
.a11y-fab svg { width: 28px; height: 28px; }
.a11y-fab:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.a11y-panel { position: absolute; left: 0; bottom: 66px; width: 320px; max-width: calc(100vw - 44px); background: #fff; color: var(--achm-azul-corp); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 22px 60px rgba(10,26,58,.28); padding: 16px; animation: a11yPop .16s ease both; }
@keyframes a11yPop { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.a11y-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.a11y-head strong { font-family: var(--font-title); font-size: 17px; }
.a11y-close { width: 32px; height: 32px; border: 0; background: var(--paper); border-radius: 9px; font-size: 22px; line-height: 1; cursor: pointer; color: var(--achm-azul-corp); }
.a11y-close:hover { background: #e6eef2; }
.a11y-fsrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--paper); border-radius: 11px; padding: 10px 12px; margin-bottom: 12px; }
.a11y-fslbl { font-weight: 600; font-size: 14px; }
.a11y-fsctl { display: flex; align-items: center; gap: 8px; }
.a11y-fsctl button { width: 34px; height: 34px; border: 1px solid var(--line); background: #fff; border-radius: 9px; font-family: var(--font-title); font-weight: 700; cursor: pointer; color: var(--achm-azul-corp); }
.a11y-fsctl button:hover { border-color: var(--achm-turquesa); color: var(--achm-turquesa); }
.a11y-fsval { min-width: 26px; text-align: center; font-family: var(--font-title); font-weight: 700; }
.a11y-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.a11y-opt { display: flex; flex-direction: column; align-items: center; gap: 7px; text-align: center; padding: 12px 8px; border: 1.5px solid var(--line); border-radius: 12px; background: #fff; cursor: pointer; color: var(--achm-azul-corp); font-size: 12.5px; font-weight: 600; font-family: var(--font-body); transition: border-color .15s, background .15s, color .15s; }
.a11y-opt svg { width: 22px; height: 22px; color: var(--achm-azul-desarrollo); }
.a11y-opt:hover { border-color: var(--achm-turquesa); }
.a11y-opt.on { background: var(--achm-turquesa); border-color: var(--achm-turquesa); color: #fff; }
.a11y-opt.on svg { color: #fff; }
.a11y-reset { width: 100%; margin-top: 12px; padding: 11px; border: 0; border-radius: 11px; background: var(--achm-azul-corp); color: #fff; font-family: var(--font-title); font-weight: 600; font-size: 14px; cursor: pointer; }
.a11y-reset:hover { background: var(--achm-azul-desarrollo); }

/* ---- Ajustes aplicados al sitio (clases en <html>) ---- */
html.a11y-fs-1 body > :not(.a11y-widget) { zoom: 1.08; }
html.a11y-fs-2 body > :not(.a11y-widget) { zoom: 1.16; }
html.a11y-fs-3 body > :not(.a11y-widget) { zoom: 1.24; }
html.a11y-fs-4 body > :not(.a11y-widget) { zoom: 1.34; }

html.a11y-contrast body > :not(.a11y-widget) { filter: invert(1) hue-rotate(180deg); }
html.a11y-grayscale body > :not(.a11y-widget) { filter: grayscale(1); }
html.a11y-contrast.a11y-grayscale body > :not(.a11y-widget) { filter: grayscale(1) invert(1) hue-rotate(180deg); }
html.a11y-contrast img, html.a11y-contrast video, html.a11y-contrast iframe, html.a11y-contrast svg image { filter: invert(1) hue-rotate(180deg); }

html.a11y-links a:not(.btnx):not(.btn):not(.a11y-opt) { text-decoration: underline !important; text-underline-offset: 3px; font-weight: 700 !important; outline: 2px solid currentColor; outline-offset: 2px; border-radius: 2px; }

html.a11y-readable, html.a11y-readable body :not(svg):not(path):not(i) { font-family: Verdana, Tahoma, Arial, sans-serif !important; letter-spacing: .01em; }

html.a11y-spacing p, html.a11y-spacing li, html.a11y-spacing .prose, html.a11y-spacing .lead, html.a11y-spacing td, html.a11y-spacing dd, html.a11y-spacing figcaption { line-height: 1.9 !important; letter-spacing: .06em !important; word-spacing: .14em !important; }

html.a11y-no-motion *, html.a11y-no-motion *::before, html.a11y-no-motion *::after { animation-duration: .001s !important; animation-iteration-count: 1 !important; transition-duration: .001s !important; scroll-behavior: auto !important; }

html.a11y-big-cursor, html.a11y-big-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l6 16 2.2-6.6L18.8 9z' fill='%23000' stroke='%23fff' stroke-width='1.4'/%3E%3C/svg%3E") 4 2, auto !important; }

.a11y-guide-bar { position: fixed; left: 0; right: 0; height: 42px; margin-top: -21px; background: rgba(1,129,139,.1); border-top: 2px solid var(--achm-turquesa); border-bottom: 2px solid var(--achm-turquesa); pointer-events: none; z-index: 2147482000; }

@media (max-width: 560px) { .a11y-widget { left: 14px; bottom: 14px; } .a11y-panel { width: 300px; } }

/* ---- Banners de pódcast en Sala de Prensa (sobre las noticias) ---- */
.prensa-podcasts { padding-top: 10px; padding-bottom: 2px; }
/* Franja de Podcasts estilo «Netflix» en la portada: fondo oscuro, una fila por
   programa (Voz Local / Soluciones Municipales), con las tarjetas de /audiovisual. */
.podcasts-net { background: #0a1119; color: #fff; padding: 0 0 50px; }
/* Cuando el destacado full-bleed encabeza la franja, va al ras (sin banda negra arriba). */
.podcasts-net > .pod-hero:first-child { margin-top: 0; }
.podcasts-net > .pod-row:first-child { margin-top: 44px; }
.podcasts-net .eyebrow { color: var(--achm-turquesa); }
.podcasts-net h2 { color: #fff; }
.podcasts-net .link-more { color: var(--achm-celeste); }
.podcasts-net .link-more:hover { color: #fff; }
.pod-row { margin-top: 24px; --pod: var(--achm-turquesa); }
.pod-voz-local { --pod: #2b86e0; }
.pod-soluciones-municipales { --pod: #9350dd; }
.pod-row-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; padding: 0 40px; }
.pod-row-head h3 { font-family: var(--font-title); font-size: 21px; font-weight: 800; color: #fff; margin: 0; }
.pod-sub { font-size: 13px; color: #9fb3c4; display: inline-flex; align-items: center; gap: 6px; }
/* Marca del medio con el que se produce cada pódcast (chip pequeño, color de marca). */
.pod-partner { font-family: var(--font-title); font-weight: 800; font-size: 11px; line-height: 1; letter-spacing: .2px; color: #fff; padding: 4px 8px; border-radius: 5px; text-transform: lowercase; }
.pod-partner--tvn { background: #ec1c24; }
.pod-partner--biobio { background: #0a3d91; text-transform: none; font-style: italic; }
.pod-badge { font-family: var(--font-title); font-weight: 700; font-size: 10px; letter-spacing: .7px; text-transform: uppercase; color: #fff; padding: 4px 10px; border-radius: 100px; background: var(--pod); align-self: center; }
.pod-row .av-card-thumb { border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 8px 22px rgba(0, 0, 0, .5); }
.pod-row .av-card:hover .av-card-thumb, .pod-row .av-card:focus-visible .av-card-thumb { border-color: var(--pod); }
.pod-row .av-card-thumb::after { background: var(--pod); }
.pod-row .av-card-play { background: color-mix(in srgb, var(--pod) 92%, transparent); }
.podcasts-net .av-card-title { color: #e8eef3; }
/* Destacado de la franja: el último episodio en grande, FULL-BLEED como /audiovisual. */
.pod-hero { position: relative; overflow: hidden; min-height: 440px; display: flex; align-items: flex-end; }
.pod-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.pod-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,10,16,.95), rgba(6,10,16,.6) 46%, rgba(6,10,16,.2)), linear-gradient(0deg, #0a1119 3%, transparent 52%); }
.pod-hero-inner { position: relative; z-index: 2; padding: 56px 40px 52px; width: 100%; }
.pod-hero-inner .eyebrow { color: var(--achm-turquesa); }
.pod-hero-tag { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
.pod-hero-title { font-family: var(--font-title); color: #fff; font-weight: 800; font-size: clamp(28px, 4vw, 46px); line-height: 1.04; margin: 14px 0 0; max-width: 680px; }
.pod-hero-desc { color: #c7d2db; font-size: 15.5px; line-height: 1.6; margin: 13px 0 0; max-width: 560px; }
.pod-hero-actions { display: flex; align-items: center; gap: 20px; margin-top: 24px; flex-wrap: wrap; }
.pod-hero-date { color: #9fb0bd; font-family: var(--font-title); font-size: 13.5px; }
/* Logo oficial del medio coproductor (sobre chip blanco para que lea en cualquier fondo). */
.pod-logo { display: inline-flex; align-items: center; background: #fff; border-radius: 5px; padding: 3px 8px; height: 23px; box-sizing: border-box; border: 1px solid rgba(0, 0, 0, .08); }
.pod-logo img { height: 15px; width: auto; display: block; }
/* Logo con fondo propio (TVN): sin chip blanco, se muestra tal cual. */
.pod-logo--boxed { background: none; border: 0; padding: 0; height: 24px; border-radius: 5px; overflow: hidden; }
.pod-logo--boxed img { height: 24px; border-radius: 5px; }
@media (max-width: 860px) { .pod-hero { min-height: 380px; } .pod-hero-inner { padding: 40px 40px 34px; } }
@media (max-width: 680px) { .pod-hero { min-height: 340px; } .pod-hero-inner { padding: 34px 20px 28px; } .pod-row-head { padding: 0 20px; } }
/* Banner «Descarga tu Constancia de Participación» (Congreso Nacional 2026). */
.constancia-banner { position: relative; overflow: hidden; display: flex; align-items: center; gap: 24px; padding: 26px 32px; border-radius: 18px; text-decoration: none; color: #fff; background: linear-gradient(115deg, #0a2f3a 0%, #0e5563 48%, #12808c 100%); box-shadow: 0 16px 40px rgba(1, 129, 139, .28); transition: transform .18s, box-shadow .18s; }
.constancia-banner:hover { transform: translateY(-3px); box-shadow: 0 22px 52px rgba(1, 129, 139, .38); }
.cb-deco { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 88% 20%, rgba(255, 255, 255, .12), transparent 42%); }
.cb-txt { position: relative; z-index: 1; flex: 1 1 auto; min-width: 0; }
.cb-kicker { display: block; font-family: var(--font-title); font-weight: 700; font-size: 12px; letter-spacing: .5px; text-transform: uppercase; color: var(--achm-celeste); }
.cb-title { display: block; font-family: var(--font-title); font-weight: 800; font-size: clamp(20px, 2.6vw, 28px); line-height: 1.1; margin: 6px 0 5px; }
.cb-sub { display: block; font-size: 13.5px; color: rgba(255, 255, 255, .82); }
.cb-cta { position: relative; z-index: 1; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-title); font-weight: 700; font-size: 15px; color: var(--achm-azul-corp); background: #fff; padding: 13px 24px; border-radius: 100px; white-space: nowrap; transition: background .15s; }
.constancia-banner:hover .cb-cta { background: var(--achm-celeste); }
@media (max-width: 640px) { .constancia-banner { flex-direction: column; align-items: flex-start; gap: 16px; padding: 24px; } .cb-cta { width: 100%; justify-content: center; } }
.prensa-banners { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.prensa-banner { display: block; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 32px rgba(10, 26, 58, .12); transition: transform .2s ease, box-shadow .2s ease; }
.prensa-banner img { display: block; width: 100%; height: auto; }
a.prensa-banner { text-decoration: none; }
a.prensa-banner:hover { transform: translateY(-4px); box-shadow: 0 20px 46px rgba(10, 26, 58, .2); }
@media (max-width: 720px) { .prensa-banners { grid-template-columns: 1fr; gap: 14px; } }

/* Modo lectura por voz: indica que el texto se puede clicar para escucharlo. */
html.a11y-voz main :is(p, li, h1, h2, h3, h4, blockquote, a, td, .lead) { cursor: pointer; }
html.a11y-voz main :is(p, li, h2, h3, blockquote):hover { outline: 2px dashed var(--achm-turquesa); outline-offset: 3px; border-radius: 4px; }

/* ---- Páginas legales (privacidad, accesibilidad): lectura clara y organizada ---- */
.legal-doc { max-width: 800px; margin: 0 auto; }
.legal-doc > p:first-child { font-size: 17px; line-height: 1.65; color: var(--achm-azul-corp); background: linear-gradient(180deg, #fff, var(--paper)); border-left: 4px solid var(--achm-turquesa); border-radius: 0 12px 12px 0; padding: 16px 20px; margin: 0 0 8px; }
.legal-doc h2 { font-family: var(--font-title); font-size: 20px; line-height: 1.25; color: var(--achm-azul-corp); margin: 30px 0 10px; padding-top: 26px; border-top: 1px solid var(--line); }
.legal-doc p, .legal-doc li { font-size: 15.5px; line-height: 1.72; color: #3f4c59; }
.legal-doc ul { margin: 6px 0 14px; }
.legal-doc a { color: var(--achm-azul-desarrollo); font-weight: 500; }
.legal-doc .muted { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 13.5px; }

/* Agrupador de campos opcionales en formularios (canal de denuncias). */
.ct-fieldset { border: 1px solid var(--line); border-radius: 12px; padding: 12px 18px 2px; margin: 0 0 6px; }
.ct-fieldset legend { font-family: var(--font-title); font-weight: 600; font-size: 12.5px; color: #6a7785; padding: 0 8px; text-transform: uppercase; letter-spacing: .04em; }

/* ============ Lector de documentos tipo revista (flipbook) ============ */
.doc-flip-modal .doc-modal-backdrop { background: rgba(3, 12, 22, .93); backdrop-filter: blur(4px); }
.doc-flip-shell { position: relative; z-index: 1; width: min(1400px, 100%); height: min(95vh, 100%); display: flex; flex-direction: column; }
.doc-flip-bar { display: flex; align-items: center; gap: 14px; padding: 2px 4px 12px; }
.doc-flip-title { flex: 1; min-width: 0; margin: 0; font-family: var(--font-title); font-weight: 600; font-size: 16px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.doc-flip-tools { display: flex; gap: 10px; flex: 0 0 auto; }
.doc-flip-btn { display: grid; place-items: center; width: 42px; height: 42px; border: 0; border-radius: 11px; background: rgba(255,255,255,.14); color: #fff; cursor: pointer; text-decoration: none; transition: background .15s, transform .12s; }
.doc-flip-btn:hover { background: rgba(255,255,255,.28); }
.doc-flip-btn:active { transform: scale(.94); }
.doc-flip-stage-wrap { position: relative; flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; }
.doc-flip-stage { flex: 0 0 auto; position: relative; } /* el JS le fija ancho/alto en px según la página; el wrap lo centra */
/* StPageFlip inyecta su CSS con un <style> inline dinámico; nuestra CSP style-src lo
   bloquea (queda en el DOM pero sin aplicar), así que replicamos sus reglas aquí,
   servidas desde 'self'. OJO: la librería trae un typo (.sft__wrapper) — va corregido. */
.doc-flip-stage .stf__parent { position: relative; display: block; box-sizing: border-box; transform: translateZ(0); -ms-touch-action: pan-y; touch-action: pan-y; }
.doc-flip-stage .stf__wrapper { position: relative; width: 100%; box-sizing: border-box; }
.doc-flip-stage .stf__parent canvas { position: absolute; width: 100%; height: 100%; left: 0; top: 0; }
.doc-flip-stage .stf__block { position: absolute; width: 100%; height: 100%; box-sizing: border-box; perspective: 2000px; }
.doc-flip-stage .stf__item { display: none; position: absolute; transform-style: preserve-3d; }
.doc-flip-stage .stf__outerShadow, .doc-flip-stage .stf__innerShadow, .doc-flip-stage .stf__hardShadow, .doc-flip-stage .stf__hardInnerShadow { position: absolute; left: 0; top: 0; }
.doc-flip-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; width: 52px; height: 52px; border-radius: 50%; border: 0; background: rgba(255,255,255,.16); color: #fff; cursor: pointer; display: grid; place-items: center; transition: background .18s; }
.doc-flip-nav:hover { background: rgba(255,255,255,.34); }
.doc-flip-nav:active { transform: translateY(-50%) scale(.92); }
.doc-flip-prev { left: 4px; }
.doc-flip-next { right: 4px; }
.doc-flip-foot { text-align: center; padding-top: 12px; }
.doc-page-info { font-family: var(--font-title); font-weight: 600; font-size: 14px; color: #fff; background: rgba(255,255,255,.14); border-radius: 100px; padding: 6px 16px; display: inline-block; min-width: 72px; }
.doc-page-info:empty { display: none; }
.doc-bg-status { margin-left: 12px; font-size: 12.5px; color: rgba(255,255,255,.72); font-family: var(--font-body); }
.doc-bg-status:empty { display: none; }
.doc-loader { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; }
.doc-loader[hidden] { display: none; }
.doc-loader-track { width: 240px; height: 6px; border-radius: 4px; background: rgba(255,255,255,.2); overflow: hidden; }
.doc-loader-bar { height: 100%; width: 0; background: linear-gradient(90deg, var(--achm-turquesa), var(--achm-celeste)); transition: width .2s ease; }
.doc-loader span { font-size: 14px; color: rgba(255,255,255,.85); }
.doc-flip-fallback { width: min(960px, 92vw); height: 82vh; border: 0; border-radius: 10px; background: #fff; }

/* ============ Documentos: DOCK de carpetas (estilo macOS) ============ */
.doc-dock-sec { padding-top: 26px; }
.doc-dock-hint { text-align: center; color: var(--achm-azul-desarrollo, #0E4975); font-size: 14px; margin: 0 0 6px; opacity: .8; }

.doc-dock-viewport { position: relative; perspective: 1400px; padding: 30px 44px 8px; }
.doc-dock { display: flex; align-items: flex-end; gap: 14px; list-style: none; margin: 0; padding: 46px 120px 20px; /* aire arriba para magnificar */
  overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; scrollbar-width: none; }
.doc-dock::-webkit-scrollbar { display: none; }

.doc-folder { flex: 0 0 auto; width: 92px; display: flex; flex-direction: column; align-items: center; gap: 9px; cursor: pointer;
  transform-origin: 50% 100%; transition: transform .12s ease-out; will-change: transform; }
.doc-folder-name { font-family: var(--font-title); font-weight: 600; font-size: 12px; line-height: 1.2; text-align: center; color: var(--achm-azul-corp, #00273F);
  max-width: 108px; min-height: 2.4em; /* reserva 2 líneas → los íconos quedan alineados */
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; transition: color .15s; }

/* Tooltip con el nombre completo de la carpeta */
.doc-dock-tip { position: absolute; z-index: 10; transform: translate(-50%, -100%); pointer-events: none;
  background: var(--achm-azul-corp, #00273F); color: #fff; font-family: var(--font-title); font-weight: 600; font-size: 12.5px; line-height: 1.3;
  padding: 8px 13px; border-radius: 10px; max-width: 240px; text-align: center; box-shadow: 0 10px 26px rgba(0,39,63,.3);
  animation: docTipIn .14s ease both; }
.doc-dock-tip[hidden] { display: none; }
.doc-dock-tip::after { content: ""; position: absolute; left: 50%; top: 100%; transform: translateX(-50%); border: 6px solid transparent; border-top-color: var(--achm-azul-corp, #00273F); }
@keyframes docTipIn { from { opacity: 0; transform: translate(-50%, -92%); } to { opacity: 1; transform: translate(-50%, -100%); } }

/* Carpeta 3D (tapa que se abre) */
.doc-folder-ico { position: relative; width: 88px; height: 68px; perspective: 320px; filter: drop-shadow(0 8px 14px rgba(0,39,63,.22)); }
.doc-folder-back { position: absolute; inset: auto 0 0 0; height: 58px; border-radius: 9px 9px 8px 8px;
  background: linear-gradient(160deg, var(--achm-azul-desarrollo, #0E4975), var(--achm-azul-corp, #00273F)); }
.doc-folder-back::before { content: ""; position: absolute; left: 6px; top: -8px; width: 40px; height: 12px; border-radius: 6px 6px 0 0; background: var(--achm-azul-desarrollo, #0E4975); }
.doc-folder-paper { position: absolute; left: 8px; right: 8px; bottom: 12px; height: 46px; border-radius: 5px; background: #fff;
  box-shadow: 0 2px 4px rgba(0,0,0,.12); transform: translateY(0); transition: transform .22s cubic-bezier(.34,1.4,.5,1); }
.doc-folder-paper::before, .doc-folder-paper::after { content: ""; position: absolute; left: 8px; right: 8px; height: 3px; border-radius: 2px; background: #cfe0ec; }
.doc-folder-paper::before { top: 10px; } .doc-folder-paper::after { top: 18px; box-shadow: 0 8px 0 #dfeaf3, 0 16px 0 #e9f1f7; }
.doc-folder-front { position: absolute; inset: auto 0 0 0; height: 50px; border-radius: 8px; transform-origin: 50% 100%;
  background: linear-gradient(160deg, #12A5AE, var(--achm-turquesa, #01818B)); box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
  transition: transform .22s cubic-bezier(.34,1.4,.5,1); }
.doc-folder-count { position: absolute; top: -7px; right: -6px; z-index: 3; min-width: 21px; height: 21px; padding: 0 6px; border-radius: 100px;
  background: var(--achm-rojo, #C6253C); color: #fff; font-family: var(--font-title); font-weight: 700; font-size: 11px;
  display: grid; place-items: center; box-shadow: 0 2px 6px rgba(198,37,60,.4); }

/* Abrir la carpeta (hover / magnificada / activa) */
.doc-folder:hover .doc-folder-front, .doc-folder.is-mag .doc-folder-front, .doc-folder.is-active .doc-folder-front { transform: rotateX(-34deg); }
.doc-folder:hover .doc-folder-paper, .doc-folder.is-mag .doc-folder-paper, .doc-folder.is-active .doc-folder-paper { transform: translateY(-15px); }
.doc-folder:hover .doc-folder-name, .doc-folder.is-active .doc-folder-name { color: var(--achm-turquesa, #01818B); }
.doc-folder.is-active .doc-folder-name { font-weight: 700; }

.doc-dock-arrow { position: absolute; top: 46%; z-index: 4; width: 44px; height: 44px; border-radius: 50%; border: 1px solid #d7e3ee;
  background: #fff; color: var(--achm-azul-corp, #00273F); display: grid; place-items: center; cursor: pointer; box-shadow: 0 6px 16px rgba(0,39,63,.14);
  transition: transform .15s, background .15s; }
.doc-dock-arrow:hover { background: var(--achm-celeste, #B1EAEF); transform: scale(1.06); }
.doc-dock-arrow--prev { left: 2px; } .doc-dock-arrow--next { right: 2px; }

/* Cajón: documentos de la carpeta abierta */
.doc-drawer { margin-top: 10px; }
.doc-panel { animation: docPanelIn .3s ease both; }
.doc-panel[hidden] { display: none; }
/* Filtro de documentos (buscador por título + año). */
.doc-filter { display: flex; align-items: center; gap: 14px; margin: 0 auto 16px; max-width: 720px; flex-wrap: wrap; }
.doc-filter-box { position: relative; flex: 1 1 320px; display: flex; align-items: center; }
.doc-filter-ic { position: absolute; left: 15px; color: #8496a5; display: inline-flex; pointer-events: none; }
.doc-filter-box input { width: 100%; font-family: var(--font-body); font-size: 15px; color: var(--ink); padding: 12px 42px 12px 44px; border: .5px solid var(--line); border-radius: 100px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.doc-filter-box input:focus { outline: none; border-color: var(--achm-turquesa); box-shadow: 0 0 0 3px rgba(1, 129, 139, .14); }
.doc-filter-box input::-webkit-search-cancel-button { -webkit-appearance: none; }
.doc-filter-x { position: absolute; right: 8px; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 0; border-radius: 50%; background: transparent; color: #6a7785; cursor: pointer; transition: background .15s, color .15s; }
.doc-filter-x:hover { background: rgba(10, 26, 58, .08); color: var(--achm-rojo); }
.doc-filter-x[hidden] { display: none; }
.doc-filter-anio { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-title); font-weight: 600; font-size: 13px; color: var(--achm-azul-corp); text-transform: uppercase; letter-spacing: .3px; }
.doc-filter-anio select { font-family: var(--font-body); font-size: 14.5px; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--ink); padding: 11px 14px; border: .5px solid var(--line); border-radius: 100px; background: #fff; cursor: pointer; }
.doc-filter-anio select:focus { outline: none; border-color: var(--achm-turquesa); box-shadow: 0 0 0 3px rgba(1, 129, 139, .14); }
.doc-filter-status { text-align: center; color: #6a7785; font-size: 14.5px; margin: 0 0 14px; }
.doc-item[hidden] { display: none; }
.doc-dock-sec.is-filtering .doc-dock-viewport,
.doc-dock-sec.is-filtering .doc-dock-hint { display: none; }
.doc-dock-sec.is-filtering .doc-panel { animation: none; margin-bottom: 18px; }
@keyframes docPanelIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.doc-panel-head { display: flex; align-items: center; gap: 12px; padding: 4px 4px 14px; border-bottom: 2px solid var(--achm-celeste, #B1EAEF); margin-bottom: 8px; }
.doc-panel-ico { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: var(--achm-celeste, #B1EAEF); color: var(--achm-azul-corp, #00273F); flex: 0 0 auto; }
.doc-panel-title { font-family: var(--font-title); font-size: 22px; color: var(--achm-azul-corp, #00273F); margin: 0; flex: 1; }

@media (max-width: 640px) {
  .doc-dock-viewport { padding: 24px 6px 4px; }
  .doc-dock { padding: 40px 30% 18px; }
  .doc-folder { width: 82px; }
  .doc-dock-arrow { display: none; }
  .doc-panel-title { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) { .doc-folder { transition: none; } }

/* Índice de miniaturas (tira inferior) */
.doc-flip-thumbs { display: flex; gap: 10px; overflow-x: auto; overflow-y: hidden; padding: 12px 4px 6px; scrollbar-width: thin; scroll-behavior: smooth; }
.doc-flip-thumbs[hidden] { display: none; }
.doc-thumb { position: relative; flex: 0 0 auto; width: 68px; height: 92px; padding: 0; border: 2px solid transparent; border-radius: 7px; overflow: hidden; background: rgba(255,255,255,.08); cursor: pointer; transition: transform .14s, border-color .14s; }
.doc-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; background: #fff; }
.doc-thumb:hover { transform: translateY(-3px); border-color: rgba(255,255,255,.5); }
.doc-thumb.is-current { border-color: var(--achm-turquesa); }
.doc-thumb-n { position: absolute; right: 3px; bottom: 3px; font-size: 10.5px; font-weight: 700; color: #fff; background: rgba(3,12,22,.7); border-radius: 4px; padding: 1px 5px; line-height: 1.4; }

/* Zoom: página ampliada con paneo, sobre el escenario */
.doc-zoom { position: absolute; inset: 0; z-index: 8; background: rgba(3,12,22,.96); display: flex; }
.doc-zoom[hidden] { display: none; }
.doc-zoom-scroll { flex: 1; overflow: auto; display: flex; align-items: flex-start; justify-content: center; padding: 16px; cursor: grab; }
.doc-zoom-scroll.is-grabbing { cursor: grabbing; }
.doc-zoom-img { width: 100%; max-width: 900px; height: auto; user-select: none; border-radius: 4px; box-shadow: 0 10px 40px rgba(0,0,0,.5); background: #fff; }
.doc-zoom-ctrls { position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; background: rgba(255,255,255,.12); backdrop-filter: blur(8px); border-radius: 100px; padding: 6px 8px; }
.doc-zoom-btn { display: grid; place-items: center; min-width: 38px; height: 38px; padding: 0 6px; border: 0; border-radius: 100px; background: rgba(255,255,255,.16); color: #fff; font-size: 20px; line-height: 1; cursor: pointer; transition: background .14s; }
.doc-zoom-btn:hover { background: rgba(255,255,255,.32); }
.doc-zoom-close { background: rgba(198,37,60,.75); }
.doc-zoom-lvl { min-width: 52px; text-align: center; font-family: var(--font-title); font-weight: 600; font-size: 13px; color: #fff; }

@media (max-width: 820px) { .doc-flip-modal { padding: 10px; } .doc-flip-nav { width: 42px; height: 42px; } .doc-flip-prev { left: -2px; } .doc-flip-next { right: -2px; } .doc-thumb { width: 54px; height: 74px; } .doc-zoom-img { max-width: 100%; } }

/* ===== Boletín: diseño edición (estilo WP anterior) ===== */
/* Cabecera de la edición (imagen opcional cargada desde el admin) */
.bol-cab { margin: 16px 0 6px; }
.bol-cab img { display: block; width: 100%; height: auto; border-radius: 14px; }

/* Secciones con separador suave entre sí */
.bol-sec { padding: 16px 0 6px; }
.bol-sec + .bol-sec { border-top: 1px solid var(--line); margin-top: 16px; }

/* Cabecera de sección: mayúsculas azul + última palabra en rojo + hexágonos */
.bol-sec-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 4px 0 18px; }
.bol-h2 { font-family: var(--font-title); font-weight: 800; font-size: clamp(17px, 2.3vw, 21px); line-height: 1.2; letter-spacing: .04em; text-transform: uppercase; color: var(--achm-azul-corp); margin: 0; }
.bol-h2 em { font-style: normal; color: var(--achm-rojo); }
.bol-hexes { flex: 0 0 auto; display: block; margin-left: auto; opacity: .92; }

/* Noticias: grilla de tarjetas con imagen 16:10 + botón «Leer más» outline */
.bol-news { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.bol-news-img { aspect-ratio: 16 / 10; }
.bol-news-t { padding: 13px 14px 8px; color: var(--achm-azul-desarrollo); font-size: 14.5px; }
.bol-news-card:hover .bol-news-t { color: var(--achm-rojo); }
.bol-news-more { margin: auto 14px 14px; align-self: flex-start; font-family: var(--font-title); font-weight: 700; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #5a6775; border: 1.5px solid #c9d3dc; border-radius: 5px; padding: 8px 15px; transition: color .15s, border-color .15s; }
.bol-news-card:hover .bol-news-more { color: var(--achm-rojo); border-color: var(--achm-rojo); }

/* Videos «Lo más visto»: 2 columnas, título-enlace arriba, miniatura grande, play al hover */
.video-grid.bol-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; }
.bol-video { border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.bol-video:hover { transform: none; box-shadow: none; }
.bol-video .video-body { padding: 0 0 10px; }
.bol-video .video-title { color: var(--achm-azul-desarrollo); font-weight: 700; font-size: 15.5px; }
.bol-video:hover .video-title { color: var(--achm-rojo); }
.bol-video .video-thumb { border-radius: 12px; overflow: hidden; }
.bol-video .video-thumb::after { content: ""; position: absolute; inset: 0; background: rgba(0, 39, 63, 0); transition: background .18s ease; }
.bol-video:hover .video-thumb::after { background: rgba(0, 39, 63, .35); }
.bol-video .video-play { z-index: 1; opacity: 0; transform: scale(.8); transition: opacity .18s ease, transform .18s ease; }
.bol-video:hover .video-play, .bol-video:focus-visible .video-play { opacity: 1; transform: scale(1); }
@media (hover: none) { .bol-video .video-play { opacity: 1; transform: none; } }

/* Columnas «Lo más comentado»: tarjeta horizontal con foto opcional a la derecha */
.bol-cols .bol-col-card { flex-direction: row; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 0; }
.bol-col-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.bol-col-t { color: var(--achm-azul-desarrollo); font-weight: 600; font-size: 15.5px; line-height: 1.35; text-decoration: none; }
a.bol-col-t:hover { color: var(--achm-rojo); }
.bol-col-aut { font-size: 13px; color: var(--achm-azul-corp); }
.bol-col-aut strong { font-weight: 700; }
.bol-col-cargo { font-size: 12.5px; color: #6a7785; }
.bol-col-img { flex: 0 0 160px; }
.bol-col-img img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 10px; }

/* Eventos: 2 columnas — fecha gris arriba, título-enlace azul debajo */
.bol-events { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 30px; }
.bol-events li { display: block; padding: 13px 0; }
.bol-events a { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.bol-ev-date { font-family: var(--font-title); font-weight: 600; font-size: 12.5px; color: #6a7785; white-space: normal; }
.bol-ev-t { font-weight: 600; font-size: 15px; line-height: 1.35; }
.bol-ev-mod, .bol-ev-mod.web { font-size: 10.5px; padding: 2px 9px; vertical-align: 1px; }

/* Lo más leído: lista con check turquesa + enlace azul */
.bol-leido { display: block; }
.bol-leido li { border-bottom: 1px solid var(--line); }
.bol-leido li:last-child { border-bottom: 0; }
.bol-leido a { position: relative; justify-content: flex-start; border: 0; border-radius: 0; padding: 11px 0 11px 30px; color: var(--achm-azul-desarrollo); font-weight: 600; font-size: 14.5px; }
.bol-leido a::before { content: "✓"; position: absolute; left: 4px; top: 10px; color: var(--achm-turquesa); font-weight: 800; font-size: 15px; line-height: 1.4; }
.bol-leido a:hover { color: var(--achm-rojo); background: none; border: 0; }

/* Dentro de las tarjetas compactas de «Ediciones anteriores» todo colapsa a 1 columna */
.bol-card .bol-news, .bol-card .video-grid.bol-videos, .bol-card .bol-events { grid-template-columns: 1fr; }
.bol-card .bol-col-img { flex-basis: 110px; }
.bol-card .bol-sec-head .bol-hexes { width: 58px; height: 17px; }

/* Responsive: las grillas de la edición colapsan a 1 columna en móvil */
@media (max-width: 720px) {
  .bol-news, .video-grid.bol-videos, .bol-events { grid-template-columns: 1fr; }
  .bol-events { gap: 0; }
  .bol-cols .bol-col-card { gap: 14px; }
  .bol-col-img { flex: 0 0 112px; }
  .bol-hexes { width: 60px; height: 18px; }
}

/* ===== Boletín: visor de ediciones (tarjetas-enlace a ancho completo) ===== */
.bol-edis-head { margin-top: 34px; }
.bol-edis-hint { margin: -6px 0 14px; }
.bol-edis { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin: 6px 0 26px; }
.bol-edi { display: flex; align-items: center; gap: 13px; padding: 15px 16px; border: 1px solid var(--linea, #e3e9ee);
  border-radius: 14px; background: #fff; text-decoration: none; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.bol-edi:hover { transform: translateY(-2px); border-color: var(--achm-turquesa, #01818B);
  box-shadow: 0 14px 30px -14px rgba(0, 39, 63, .28); }
.bol-edi-ic { flex: 0 0 auto; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; color: #fff;
  background: linear-gradient(135deg, var(--achm-azul-corp, #00273F) 15%, var(--achm-rojo, #C6253C) 120%); }
.bol-edi-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.bol-edi-txt strong { font-family: var(--font-title, Montserrat, sans-serif); font-size: 15.5px; color: var(--achm-azul-corp, #00273F); line-height: 1.25; }
.bol-edi-txt small { font-size: 12.5px; color: #6a7785; }
.bol-edi-cta { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 5px; font-family: var(--font-title, Montserrat, sans-serif);
  font-size: 12px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--achm-rojo, #C6253C); white-space: nowrap; }
.bol-edi-cta svg { transition: transform .16s ease; }
.bol-edi:hover .bol-edi-cta svg { transform: translateX(3px); }
/* Edición abierta en el visor: marcada y sin salto */
.bol-edi.is-actual { border-color: var(--achm-turquesa, #01818B); background: rgba(1, 129, 139, .06); pointer-events: none; }
.bol-edi.is-actual .bol-edi-ic { background: var(--achm-turquesa, #01818B); }
.bol-edi.is-actual .bol-edi-cta { color: var(--achm-turquesa, #01818B); }
/* El archivo plegable reutiliza la misma grilla */
.bol-archive .bol-edis { margin-top: 16px; }
@media (max-width: 560px) { .bol-edis { grid-template-columns: 1fr; } }

/* Pop-up del sitio: tamaños configurables desde /admin/popups (md = base). */
.site-popup-card--sm { width: min(380px, 100%); }
.site-popup-card--lg { width: min(720px, 100%); }

/* ── Comisiones técnicas: tarjetas compactas estilo iOS (obs. ACHM) ── */
/* Buscador en vivo de comisiones técnicas (por comisión o persona). */
.estr-filtro { position: relative; display: flex; align-items: center; max-width: 460px; margin: 16px 0 4px; }
.estr-filtro-ic { position: absolute; left: 15px; color: #8496a5; display: inline-flex; pointer-events: none; }
.estr-filtro input { width: 100%; font-family: var(--font-body); font-size: 15px; color: var(--ink); padding: 12px 42px 12px 44px; border: .5px solid var(--line); border-radius: 100px; background: var(--paper); transition: border-color .15s, box-shadow .15s, background .15s; }
.estr-filtro input:focus { outline: none; border-color: var(--achm-turquesa); background: #fff; box-shadow: 0 0 0 3px rgba(1, 129, 139, .14); }
.estr-filtro input::-webkit-search-cancel-button { -webkit-appearance: none; }
.estr-filtro-x { position: absolute; right: 8px; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 0; border-radius: 50%; background: transparent; color: #6a7785; cursor: pointer; transition: background .15s, color .15s; }
.estr-filtro-x:hover { background: rgba(10, 26, 58, .08); color: var(--achm-rojo); }
.estr-filtro-x[hidden] { display: none; }
.estr-filtro-vacio { color: #6a7785; font-size: 15px; margin: 18px 0 0; }
.estr-filtro-vacio b { color: var(--achm-azul-corp); font-weight: 700; }
.estr-com-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 16px; margin-top: 14px; }
.estr-com[hidden] { display: none; }

.estr-com {
  --rx: 0deg; --ry: 0deg; --acento: var(--achm-azul-desarrollo);
  position: relative; background: #fff; border: 1px solid var(--line);
  border-radius: 16px; padding: 16px 18px 6px; overflow: hidden;
  box-shadow: 0 1px 2px rgba(10, 26, 58, .04), 0 8px 20px -16px rgba(10, 26, 58, .28);
  transform: perspective(1400px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(0);
  transition: box-shadow .25s ease, transform .25s cubic-bezier(.22,1,.36,1), border-color .25s ease;
}
.estr-com:hover { transform: perspective(1400px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(-2px); box-shadow: 0 2px 6px rgba(10, 26, 58, .06), 0 16px 34px -20px rgba(10, 26, 58, .3); border-color: color-mix(in srgb, var(--acento) 26%, var(--line)); }
.estr-com-list .estr-com:nth-child(3n+1) { --acento: var(--achm-azul-corp); }
.estr-com-list .estr-com:nth-child(3n+2) { --acento: var(--achm-turquesa); }
.estr-com-list .estr-com:nth-child(3n+3) { --acento: var(--achm-azul-desarrollo); }

.estr-com-head { display: flex; align-items: center; gap: 12px; padding: 0 0 13px; margin-bottom: 12px; border-bottom: 1px solid var(--line); }
.estr-com-badge { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; color: #fff; background: linear-gradient(145deg, var(--acento), color-mix(in srgb, var(--acento) 62%, #fff)); box-shadow: 0 4px 10px -4px color-mix(in srgb, var(--acento) 60%, transparent), inset 0 1px 0 rgba(255,255,255,.28); }
.estr-com-badge svg { display: block; }
.estr-com-headtxt { min-width: 0; }
.estr-com .estr-com-titulo { font-family: var(--font-title); font-size: 16px; font-weight: 700; color: var(--achm-azul-corp); margin: 0; line-height: 1.28; letter-spacing: -.01em; overflow-wrap: anywhere; }
.estr-com-meta { display: inline-flex; align-items: center; gap: 5px; margin: 3px 0 0; font-family: var(--font-title); font-weight: 600; font-size: 12px; color: color-mix(in srgb, var(--acento) 72%, #55636f); }
.estr-com-ico { flex: 0 0 auto; color: var(--acento); }

.estr-com-lider { display: flex; align-items: center; gap: 12px; margin: 0 0 4px; padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--acento) 6%, #fff); border: 1px solid color-mix(in srgb, var(--acento) 16%, var(--line)); }
.estr-com-lider-av { flex: 0 0 auto; width: 50px; height: 50px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--achm-celeste); box-shadow: 0 0 0 2px #fff, 0 3px 9px -4px rgba(10, 26, 58, .32); }
.estr-com-lider-av img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.estr-com-lider-av.is-ini { background: linear-gradient(135deg, var(--acento), color-mix(in srgb, var(--acento) 55%, var(--achm-turquesa))); }
.estr-com-lider-av.is-ini span { font-family: var(--font-title); font-weight: 700; font-size: 17px; color: #fff; }
.estr-com-lider-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.estr-com-lider-nombre { font-family: var(--font-title); font-weight: 700; font-size: 15px; color: var(--achm-azul-corp); text-decoration: none; line-height: 1.2; }
a.estr-com-lider-nombre:hover { color: var(--achm-rojo); text-decoration: underline; }
.estr-com-lider-cargo { font-size: 12.5px; color: #6a7785; }
.estr-com-lider-cargoinst { font-size: 12px; font-weight: 600; color: var(--achm-azul-desarrollo, #0E4975); }

.estr-com-integrantes { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; }
.estr-com-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid rgba(10, 26, 58, .06); }
.estr-com-item:last-child { border-bottom: 0; }
.estr-com-av { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; overflow: hidden; background: var(--achm-celeste); display: grid; place-items: center; }
.estr-com-av img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.estr-com-av.is-ini { background: linear-gradient(135deg, var(--achm-turquesa), var(--achm-azul-desarrollo)); }
.estr-com-av.is-ini span { font-family: var(--font-title); font-weight: 700; font-size: 13px; color: #fff; }
.estr-com-datos { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1 1 auto; }
.estr-com-nombre { font-family: var(--font-title); font-weight: 600; font-size: 14px; color: var(--achm-azul-corp); text-decoration: none; }
a.estr-com-nombre:hover { color: var(--achm-rojo); text-decoration: underline; }
.estr-com-cargo { font-size: 12px; color: #6a7785; }
.estr-com-cargoinst { font-size: 11.5px; font-weight: 600; color: var(--achm-azul-desarrollo, #0E4975); }

.estr-com-chip { align-self: flex-start; display: inline-block; padding: 2px 9px; border-radius: 999px; font-family: var(--font-title); font-weight: 600; font-size: 10px; letter-spacing: .04em; text-transform: uppercase; line-height: 1.5; }
.estr-com-chip-sm { flex: 0 0 auto; font-size: 9.5px; padding: 2px 8px; }
.estr-com-chip.is-pres { background: color-mix(in srgb, var(--achm-rojo) 12%, #fff); color: var(--achm-rojo); border: 1px solid color-mix(in srgb, var(--achm-rojo) 28%, #fff); }
.estr-com-chip.is-vice { background: color-mix(in srgb, var(--achm-turquesa) 14%, #fff); color: var(--achm-turquesa); border: 1px solid color-mix(in srgb, var(--achm-turquesa) 30%, #fff); }
.estr-com-chip.is-sec  { background: #eef1f4; color: #55636f; border: 1px solid #dfe4ea; }
.estr-com-chip.is-int  { background: color-mix(in srgb, var(--achm-azul-desarrollo) 11%, #fff); color: var(--achm-azul-desarrollo); border: 1px solid color-mix(in srgb, var(--achm-azul-desarrollo) 26%, #fff); }

.estr-com.reveal { opacity: 0; transform: translateY(20px); transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1); }
.estr-com.reveal.in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .estr-com, .estr-com:hover { transform: none !important; transition: box-shadow .2s; }
  .estr-com.reveal { opacity: 1; transform: none; transition: none; }
}
.estr-unidad { max-width: 900px; }
.estr-lead { display: flex; align-items: center; gap: 18px; background: var(--achm-celeste); border-radius: var(--radius); padding: 20px 24px; margin: 0 0 28px; }
.estr-lead-av { flex: 0 0 auto; width: 72px; height: 72px; border-radius: 50%; overflow: hidden; background: #fff; display: grid; place-items: center; box-shadow: 0 2px 6px rgba(10, 26, 58, .12); }
.estr-lead-av img { width: 100%; height: 100%; object-fit: cover; }
.estr-lead-av.is-ini span { font-family: var(--font-title); font-weight: 800; font-size: 22px; color: var(--achm-azul-corp); }
.estr-lead-txt { display: flex; flex-direction: column; gap: 3px; }
.estr-lead-rol { margin: 0; font-family: var(--font-title); font-weight: 600; font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--achm-turquesa); }
.estr-lead-nombre { font-family: var(--font-title); font-weight: 700; font-size: 22px; color: var(--achm-azul-corp); line-height: 1.15; }
.estr-unidad-desc { max-width: 780px; }
.estr-unidad-desc p { font-size: 16.5px; line-height: 1.7; }
.estr-back { display: inline-flex; margin-top: 36px; }
@media (max-width: 560px) {
  .estr-com-list { grid-template-columns: 1fr; }
  .estr-com-item { flex-wrap: wrap; }
  .estr-com-chip-sm { order: 9; margin: 0 0 4px 56px; align-self: flex-start; }
  .estr-lead { flex-direction: column; align-items: flex-start; text-align: left; }
}

/* ===== Biblioteca de documentos (faceted search: buscador + Tema/Año/Tipo) ===== */
.docx { padding-top: 34px; }
.docx-toolbar { display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-end; }
.docx-search { position: relative; flex: 1 1 340px; min-width: 240px; display: flex; align-items: center; }
.docx-search-ic { position: absolute; left: 14px; color: #7d8b99; display: flex; pointer-events: none; }
.docx-search input { width: 100%; padding: 13px 42px 13px 42px; border: 1.5px solid #d7dfe7; border-radius: 12px; font: inherit; font-size: 15px; color: var(--achm-azul-corp); background: #fff; transition: border-color .15s, box-shadow .15s; }
.docx-search input:focus { outline: none; border-color: var(--achm-turquesa); box-shadow: 0 0 0 3px rgba(1,129,139,.14); }
.docx-search-x { position: absolute; right: 10px; border: 0; background: #eef2f6; color: #55636f; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; }
.docx-search-x:hover { background: #e0e6ec; }
.docx-selects { display: flex; gap: 10px; }
.docx-sel { display: flex; flex-direction: column; gap: 5px; font-size: 12px; color: #6a7785; font-weight: 600; }
.docx-sel select { padding: 11px 12px; border: 1.5px solid #d7dfe7; border-radius: 10px; font: inherit; font-size: 14px; color: var(--achm-azul-corp); background: #fff; cursor: pointer; }
.docx-sel select:focus { outline: none; border-color: var(--achm-turquesa); }

.docx-chips { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 16px; }
.docx-chip { display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border: 1.5px solid #d9e1e9; border-radius: 100px; background: #fff; color: #33414f; font-family: var(--font-title); font-weight: 600; font-size: 13.5px; cursor: pointer; transition: color .15s, background .15s, border-color .15s; }
.docx-chip svg { color: var(--achm-turquesa); }
.docx-chip:hover { border-color: var(--achm-turquesa); color: var(--achm-azul-corp); }
.docx-chip.is-active { background: var(--achm-azul-corp); border-color: var(--achm-azul-corp); color: #fff; }
.docx-chip.is-active svg { color: var(--achm-celeste); }
.docx-chip-n { font-size: 12px; opacity: .7; font-variant-numeric: tabular-nums; }
.docx-chip.is-active .docx-chip-n { opacity: .9; }

.docx-count { margin: 16px 0 0; color: #6a7785; font-size: 14px; font-weight: 600; }
.docx-count:empty { display: none; }

.docx-results { margin-top: 22px; }
.docx-tema { margin-top: 34px; }
.docx-tema:first-child { margin-top: 10px; }
.docx-tema[hidden], .docx-cat[hidden], .docx-row[hidden] { display: none; }
.docx-tema-title { display: flex; align-items: center; gap: 12px; font-family: var(--font-title); font-size: 20px; font-weight: 800; color: var(--achm-azul-corp); padding-bottom: 12px; border-bottom: 2px solid #e7edf2; margin: 0 0 4px; }
.docx-tema-ic { display: inline-flex; width: 34px; height: 34px; border-radius: 9px; background: var(--achm-celeste); color: var(--achm-azul-corp); align-items: center; justify-content: center; flex: 0 0 auto; }
.docx-tema-n { margin-left: auto; font-size: 13px; font-weight: 600; color: #7d8b99; font-variant-numeric: tabular-nums; }

.docx-cat { margin-top: 20px; }
.docx-cat-title { display: flex; align-items: baseline; gap: 9px; font-family: var(--font-title); font-size: 15.5px; font-weight: 700; color: #2a3a49; margin: 0 0 9px; }
.docx-cat-n { font-size: 12px; font-weight: 600; color: #8896a3; background: #eef3f7; padding: 1px 8px; border-radius: 100px; }
.docx-subcat-title { display: flex; align-items: baseline; gap: 8px; font-family: var(--font-title); font-size: 13.5px; font-weight: 600; color: #4a5a68; margin: 14px 0 7px; padding-left: 11px; border-left: 3px solid var(--turquesa, #01818B); }
.docx-subcat-n { font-size: 11px; font-weight: 600; color: #8896a3; }

.docx-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.docx-row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; border: 1px solid #e6ecf1; border-radius: 12px; transition: border-color .15s, box-shadow .15s; }
.docx-row:hover { border-color: #cdd8e1; box-shadow: 0 6px 18px rgba(10,26,58,.06); }
.docx-ic { flex: 0 0 auto; color: var(--achm-turquesa); display: flex; }
.docx-row-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.docx-row-title { font-weight: 600; font-size: 14.5px; color: var(--achm-azul-corp); line-height: 1.35; }
.docx-row-meta { display: flex; align-items: center; gap: 8px; }
.docx-type { font-family: var(--font-title); font-weight: 700; font-size: 10px; letter-spacing: .4px; padding: 2px 6px; border-radius: 4px; background: #eef3f7; color: #64727f; }
.docx-type--pdf { background: #fbe9ec; color: #b52a3d; }
.docx-type--pptx { background: #fdeee3; color: #c1531a; }
.docx-type--doc, .docx-type--docx { background: #e8eefb; color: #2a4da0; }
.docx-year { font-size: 12.5px; color: #93a1ad; font-variant-numeric: tabular-nums; }
.docx-acts { flex: 0 0 auto; display: flex; gap: 8px; }
.docx-btn { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-title); font-weight: 600; font-size: 13px; padding: 8px 13px; border-radius: 9px; border: 0; cursor: pointer; background: var(--achm-azul-corp); color: #fff; text-decoration: none; transition: background .15s, border-color .15s; white-space: nowrap; }
.docx-btn:hover { background: var(--achm-azul-dev, #0E4975); }
.docx-btn--ghost { background: transparent; color: var(--achm-azul-corp); border: 1.5px solid #d3dde5; }
.docx-btn--ghost:hover { background: #f1f5f8; border-color: #b9c6d3; }
.docx-empty { margin-top: 24px; padding: 30px; text-align: center; color: #6a7785; background: #f6f8fa; border-radius: 14px; }

@media (max-width: 640px) {
  .docx-selects { width: 100%; }
  .docx-sel { flex: 1 1 auto; }
  .docx-row { flex-wrap: wrap; }
  .docx-acts { width: 100%; }
  .docx-btn { flex: 1 1 auto; justify-content: center; }
}

/* Flechas de navegación de los carruseles de video (.av-track), inyectadas por av-carousel.js. */
.av-track-wrap { position: relative; }
.av-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(10, 17, 25, .78); color: #fff; display: grid; place-items: center; cursor: pointer; opacity: 0; transition: opacity .18s, background .18s, transform .12s; box-shadow: 0 6px 20px rgba(0, 0, 0, .45); }
.av-track-wrap:hover .av-nav, .av-nav:focus-visible { opacity: 1; }
.av-nav:hover { background: var(--achm-rojo); }
.av-nav:active { transform: translateY(-50%) scale(.94); }
.av-nav[hidden] { display: none; }
.av-nav--prev { left: 8px; }
.av-nav--next { right: 8px; }
@media (hover: none) { .av-nav { display: none; } }

/* ===== Inscripción nativa en la ficha del evento (sin formularios externos) ===== */
.ev-insc { margin-top: 34px; background: #fff; border: 1px solid var(--line, #e6ecf1); border-radius: 18px; padding: 30px 32px; box-shadow: 0 12px 32px rgba(10, 26, 58, .06); scroll-margin-top: 130px; }
.ev-insc h2 { font-size: 23px; margin: 0 0 4px; }
.ev-insc .muted { margin: 0 0 18px; }
.ev-insc-form label { display: flex; flex-direction: column; gap: 6px; font-family: var(--font-title); font-weight: 600; font-size: 13.5px; color: #33414f; margin: 0 0 14px; }
.ev-insc-form input[type="text"], .ev-insc-form input[type="email"], .ev-insc-form input[type="tel"] { padding: 12px 14px; border: 1.5px solid #d7dfe7; border-radius: 10px; font: inherit; font-family: var(--font-body, inherit); font-weight: 400; font-size: 15px; color: var(--achm-azul-corp); background: #fff; transition: border-color .15s, box-shadow .15s; }
.ev-insc-form input:focus { outline: none; border-color: var(--achm-turquesa); box-shadow: 0 0 0 3px rgba(1,129,139,.14); }
.ev-insc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ev-insc-form .consent { margin: 4px 0 18px; }
.ev-insc-form .consent label { flex-direction: row; align-items: flex-start; gap: 10px; font-family: var(--font-body, inherit); font-weight: 400; font-size: 14px; color: #5a6775; }
.ev-insc-err { background: #fbe9ec; border-left: 3px solid var(--achm-rojo); border-radius: 0 8px 8px 0; padding: 12px 18px; margin: 0 0 18px; }
.ev-insc-err ul { margin: 0; padding-left: 18px; color: #8f1d2e; font-size: 14px; }
.ev-insc-ok { display: flex; gap: 16px; align-items: flex-start; }
.ev-insc-ok-ic { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; background: #e7f5ec; color: #1c6b3a; display: grid; place-items: center; }
.ev-insc-ok h2 { margin: 2px 0 6px; font-size: 21px; }
.ev-insc-ok p { margin: 0; color: #5a6775; }
@media (max-width: 640px) { .ev-insc { padding: 24px 20px; } .ev-insc-row { grid-template-columns: 1fr; gap: 0; } }

/* Cupos de la inscripción nativa: contador + estados de cierre. */
.ev-insc-cupos { display: inline-block; margin-left: 10px; font-family: var(--font-title); font-weight: 700; font-size: 12px; color: #1c6b3a; background: #e7f5ec; padding: 3px 10px; border-radius: 100px; }
.ev-insc-cupos.is-low { color: #8a5a00; background: #fff6e0; }
.ev-insc-lleno-ic { background: #fbe9ec !important; color: #8f1d2e !important; }
.ev-act--lleno { background: #eef2f6; color: #77848f; cursor: not-allowed; }
.ev-act--lleno:hover { transform: none; box-shadow: none; }

/* Estados de la ventana de inscripción (por abrir / cerrada). */
.ev-insc-pronto-ic { background: #fff6e0 !important; color: #8a5a00 !important; }
.ev-act--pronto { background: #fff6e0; color: #8a5a00; }
.ev-act--pronto:hover { background: #ffedc2; }
.ev-insc-row.is-single { grid-template-columns: 1fr; }

/* La ACHM en imágenes — mosaico del pie de la portada */
.home-galeria .gal-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 180px; gap: 12px; margin-top: 22px; }
.gal-item { margin: 0; overflow: hidden; border-radius: var(--radius, 14px); background: var(--achm-celeste-soft, #e4f2fa); box-shadow: 0 10px 24px -18px rgba(0,39,63,.5); }
.gal-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.gal-item:hover img { transform: scale(1.06); }
.gal-item--lead { grid-column: span 2; grid-row: span 2; }
@media (max-width: 900px) { .home-galeria .gal-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 150px; } .gal-item--lead { grid-column: span 2; grid-row: span 2; } }
@media (max-width: 560px) { .home-galeria .gal-grid { grid-auto-rows: 130px; } .gal-item--lead { grid-column: span 2; grid-row: span 1; } }

/* Comisiones técnicas: presidencia + vicepresidencias destacadas y pie de secretaría técnica */
.estr-com-lideres { display: grid; gap: 10px; }
.estr-com-lideres .estr-com-lider { margin: 0; }
.estr-com-sec { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--achm-celeste); display: grid; gap: 6px; }
.estr-com-sec-linea { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 13.5px; color: #41505e; line-height: 1.5; }
.estr-com-sec-linea svg { flex: 0 0 auto; margin-top: 3px; color: var(--achm-turquesa); }
.estr-com-sec-linea span { min-width: 0; }
.estr-com-sec-linea strong { color: var(--achm-azul-corp); font-weight: 700; }
.estr-com-sec-linea a { color: var(--achm-azul-desarrollo); text-decoration: none; overflow-wrap: anywhere; }
.estr-com-sec-linea a:hover { text-decoration: underline; }
/* El correo del secretario en su propia línea, a ancho completo, para que nunca quede al filo del borde de la tarjeta. */
.estr-com-sec-mail { display: block; margin-top: 1px; }

/* Biblioteca de documentos: subcategorías desplegables (acordeón) */
.docx-loose { margin-bottom: 10px; }
.docx-acc { border: 1px solid #e7eef4; border-radius: 11px; margin: 8px 0; background: #fff; overflow: hidden; }
.docx-acc.is-open { box-shadow: 0 8px 24px -18px rgba(16,67,117,.55); }
.docx-acc-head { width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: linear-gradient(180deg,#fbfdff,#f2f7fb); border: 0; cursor: pointer; font-family: var(--font-title); font-size: 14.5px; font-weight: 600; color: #2a3a49; text-align: left; }
.docx-acc-head:hover { background: #eef5fb; }
.docx-acc-chev { flex: 0 0 auto; color: var(--achm-turquesa, #01818B); transition: transform .18s; }
.docx-acc.is-open .docx-acc-chev { transform: rotate(90deg); }
.docx-acc-name { flex: 1 1 auto; min-width: 0; }
.docx-acc-n { flex: 0 0 auto; font-size: 12px; font-weight: 600; color: #6b7c8b; background: #e6eef5; padding: 1px 9px; border-radius: 100px; }
.docx-acc-body { padding: 8px 12px 12px; border-top: 1px solid #eef2f6; }
.docx-acc-body .docx-list { margin: 0; }

/* ===== Galería al final de la noticia (imágenes propias de la biblioteca) ===== */
.art-gal { margin: 34px 0 8px; }
.art-gal-t { font-family: var(--font-title); font-weight: 700; font-size: 19px; color: var(--achm-azul-corp); margin: 0 0 14px; }
.art-gal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.art-gal-item { display: block; border-radius: var(--radius); overflow: hidden; background: var(--achm-celeste-soft, #e4f2fa); aspect-ratio: 4 / 3; }
.art-gal-item img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; border-radius: 0; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.art-gal-item:hover img { transform: scale(1.06); }
.art-gal-item:focus-visible { outline: 3px solid var(--achm-turquesa, #01818B); outline-offset: 2px; }
@media (max-width: 520px) { .art-gal-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); } }
