/* Capa transversal de consistencia visual y accesibilidad v42 */
:root{--type-body:clamp(1.02rem,calc(.98rem + .2vw),1.1rem);--type-hero:clamp(2.75rem,5.5vw,5.5rem);--type-section:clamp(2.2rem,4.4vw,4.15rem);--content-reading:72ch;--focus-color:#0a66c2;--hc-action:#ffe600;--hc-link:#00e5ff;--hc-surface:#000;--hc-text:#fff}
html{scroll-padding-top:calc(var(--navbar-height,82px) + 18px)}body{font-size:var(--type-body);line-height:1.68;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}main{overflow:clip}main section[id]{scroll-margin-top:calc(var(--navbar-height,82px) + 18px)}
:where(.hero,.news-hero,.site-map-hero,.public-hero,.entity-hero,.contact-hero) h1{font-size:var(--type-hero);line-height:.99;letter-spacing:-.05em;text-wrap:balance}:where(.section-heading>h2,.location-copy>h2,.contact-request__layout>div>h2){font-size:var(--type-section);line-height:1.04;text-wrap:balance}:where(.section-heading>p,.public-hero p,.entity-hero p,.contact-hero p,.news-hero p,.site-map-hero p){max-width:var(--content-reading)}
:where(.button,button,input,select,textarea,summary,a){-webkit-tap-highlight-color:transparent}:where(.button,.menu-toggle,.accessibility-bar button,.accessibility-bar a,.nav-menu>a,.nav-public summary,.news-filters button,.carousel-button,.copy-address){min-height:44px}:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus-color);outline-offset:3px}
:where(.institution-card,.service-card,.news-card,.site-map-card,.public-card,.rule-card,.entity-group,.contact-channel-card,.arrival-steps li,.content-page__article){border-color:#d5dfe8}:where(.institution-card,.service-card,.news-card,.public-card,.contact-channel-card,.arrival-steps li){height:100%}
:where(.institution-card,.service-card,.news-card,.site-map-card,.public-card,.rule-card,.entity-topic,.contact-channel-card,.route-options>a,.arrival-steps li,.button,.quick-actions__grid>a){transition-duration:240ms;transition-timing-function:cubic-bezier(.2,.75,.25,1)}
:where(.institution-card,.service-card,.news-card,.site-map-card,.public-card,.contact-channel-card):hover{transform:translateY(-4px)}:where(.institution-card,.service-card,.news-card,.site-map-card,.public-card,.contact-channel-card):active{transform:translateY(-1px) scale(.995)}
.brand__text strong{line-height:1.12}.brand__text small{line-height:1.15}.footer__grid{align-items:start}.footer__grid>div{min-width:0}.footer__grid a{overflow-wrap:anywhere}.content-page__article{width:min(100%,920px)}.content-page__article :where(p,li){max-width:var(--content-reading)}
@media(min-width:1051px){.navbar__content{min-height:94px}.nav-menu{justify-content:flex-end}.nav-menu>a,.nav-public summary{display:flex;align-items:center}}
@media(max-width:720px){:root{--type-hero:clamp(2.45rem,11.5vw,3.85rem);--type-section:clamp(2rem,10vw,3.15rem)}body{line-height:1.62}.section-heading h2{font-size:var(--type-section)}:where(.section,.public-directory,.entity-directory,.contact-channels,.location-section,.arrival-guide,.contact-request){padding-block:clamp(64px,16vw,76px)}.footer__grid{gap:30px}.content-page__article{padding-inline:clamp(20px,6vw,30px)}}
@media(max-width:390px){.brand__text strong{font-size:.64rem}.brand__text small{font-size:.61rem}:where(.button,.copy-address){width:100%;justify-content:center}}

/* Preferencia del sistema: contraste aumentado sin sustituir la identidad visual. */
@media(prefers-contrast:more){:root{--line:#718096;--muted:#334155}.button,.menu-toggle,.accessibility-bar button,.accessibility-bar a,.news-filters button,.copy-address{border-width:2px}:where(.institution-card,.service-card,.news-card,.site-map-card,.public-card,.rule-card,.entity-group,.contact-channel-card,.route-options>a,.arrival-steps li,.content-page__article){border-width:2px;box-shadow:none}:where(a,button,input,select,textarea,summary):focus-visible{outline-width:4px;outline-offset:4px}}

/* Alto contraste manual: funciones semánticas estables y no solo inversión de color. */
html.a11y-high-contrast{--navy:#000;--navy-2:#000;--red:var(--hc-action);--red-dark:var(--hc-link);--gold:var(--hc-action);--ink:var(--hc-text);--muted:var(--hc-text);--surface:var(--hc-surface);--soft:var(--hc-surface);--line:var(--hc-text);--focus-color:var(--hc-link);color-scheme:dark}
.a11y-high-contrast body{background:var(--hc-surface)!important;color:var(--hc-text)!important}
.a11y-high-contrast :where(.topbar,.navbar,.hero,.section,.section--dark,.prevention,.faq,.footer,.content-page,.site-map-page,.site-map-hero,.site-map-directory,.news-hero,.news-archive,.public-page,.public-hero,.public-directory,.entity-page,.entity-hero,.entity-directory,.contact-page,.contact-hero,.contact-channels,.location-section,.arrival-guide,.contact-request){border-color:var(--hc-text)!important;background:var(--hc-surface)!important;color:var(--hc-text)!important;background-image:none!important;box-shadow:none!important}
.a11y-high-contrast :where(.quick-actions__grid,.stats__grid,.institution-card,.service-card,.news-card,.faq__list,.contact-form,.dispatch-card,.checklist,.content-page__article,.site-map-card,.site-map-accessible,.news-tools__inner,.featured-story,.archive-card,.news-empty,.status-panel,.lsc-placeholder,.public-card,.rule-card,.public-note,.public-hero__symbol,.entity-group,.entity-group__header,.entity-topic,.entity-guidance,.entity-hero__visual,.contact-channel-card,.contact-emergency,.location-map__badge,.location-copy address,.route-options>a,.arrival-steps li){border:2px solid var(--hc-text)!important;background:var(--hc-surface)!important;color:var(--hc-text)!important;background-image:none!important;box-shadow:none!important}
.a11y-high-contrast :where(h1,h2,h3,h4,h5,p,li,strong,small,label,summary,address,legend,.brand,.brand__text strong,.section-heading p,.hero p,.footer p,.footer span,.news-results,.story-body,.content-page__article p,.content-page__article li,.site-map-card p,.site-map-accessible small,.public-card p,.rule-card p,.entity-topic__body p,.contact-channel-card h3,.contact-channel-card strong,.location-copy address strong,.location-copy address small,.route-options>a,.route-options>a small,.arrival-steps strong,.arrival-steps p){color:var(--hc-text)!important}
.a11y-high-contrast a:not(.button):not(.brand):not(.site-map-card):not(.contact-channel-card){color:var(--hc-link)!important;text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:4px!important}
.a11y-high-contrast :where(.eyebrow,.card-number,.story-meta,.contact-list span,.news-card small,.site-map-card small,.public-card__order,.rule-card__level,.entity-topic summary small){color:var(--hc-action)!important}
.a11y-high-contrast :where(.button,.news-filters button.is-active,.dispatch-card__call,.contact-emergency>a){border:2px solid var(--hc-action)!important;background:var(--hc-action)!important;color:#000!important;box-shadow:none!important}
.a11y-high-contrast :where(.button,.news-filters button.is-active,.dispatch-card__call,.contact-emergency>a):hover,.a11y-high-contrast :where(.button,.news-filters button.is-active,.dispatch-card__call,.contact-emergency>a):focus-visible{border-color:var(--hc-link)!important;background:var(--hc-link)!important;color:#000!important}
.a11y-high-contrast :where(input,select,textarea,.news-search){border:2px solid var(--hc-text)!important;background:var(--hc-surface)!important;color:var(--hc-text)!important;box-shadow:none!important}.a11y-high-contrast :where(input,textarea)::placeholder{color:#dedede!important;opacity:1!important}
.a11y-high-contrast :where(.quick-actions__icon,.stat-symbol,.stat-icon,.card-number,.site-map-card>span,.news-search .material-symbols-rounded,.news-filters>span,.public-card__icon,.rule-card__icon,.public-note>.material-symbols-rounded,.public-hero__symbol .material-symbols-rounded,.entity-group__icon,.entity-topic__icon,.entity-guidance>div>.material-symbols-rounded,.entity-hero__visual>.material-symbols-rounded,.contact-emergency__icon,.contact-channel-card>.material-symbols-rounded,.location-map__badge>.material-symbols-rounded,.arrival-steps li>span){border:1px solid var(--hc-action)!important;background:var(--hc-action)!important;color:#000!important}
.a11y-high-contrast :where(.accessibility-bar button[aria-pressed="true"],.nav-menu>a[aria-current="page"],.nav-public[data-current] summary){border-color:var(--hc-action)!important;background:var(--hc-action)!important;color:#000!important}
.a11y-high-contrast .nav-menu>a[aria-current="page"],.a11y-high-contrast .nav-public[data-current]>summary,.a11y-high-contrast .nav-public>div a[aria-current="page"]{background:var(--hc-action)!important;color:#000!important;text-decoration:none!important}.a11y-high-contrast .accessibility-bar a{color:var(--hc-text)!important;text-decoration:none!important}.a11y-high-contrast .accessibility-bar a:hover,.a11y-high-contrast .accessibility-bar a:focus-visible{background:var(--hc-link)!important;color:#000!important}
.a11y-high-contrast :where(a,button,input,select,textarea,summary):focus-visible{outline:4px solid var(--hc-link)!important;outline-offset:4px!important}.a11y-high-contrast .scroll-progress span{background:var(--hc-action)!important}.a11y-high-contrast .location-map{border:3px solid var(--hc-text)!important;filter:grayscale(1) contrast(1.15)}

/* El sistema operativo conserva el control de su propia paleta forzada. */
@media(forced-colors:active){*{forced-color-adjust:auto}.button,.menu-toggle,.accessibility-bar button,.accessibility-bar a,.news-filters button,.copy-address,.nav-public summary{border:2px solid ButtonText}.button:focus-visible,.menu-toggle:focus-visible,.accessibility-bar button:focus-visible,.accessibility-bar a:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid Highlight!important;outline-offset:3px!important}.status-dot,.scroll-progress span{background:Highlight}.location-map{border:3px solid CanvasText}}

/* Anula toda animación decorativa cuando la persona lo solicita. */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}.reveal{opacity:1!important;transform:none!important}.emergency-floating,.site-map-hero__icon,.public-hero__symbol,.entity-hero__visual,.contact-emergency__icon{animation:none!important;transform:none!important}}

/* Correcciones estructurales de Información de la entidad v43 */
@media(min-width:1051px){.nav-public>div{min-width:280px}}
.entity-directory>.container{display:grid}.entity-directory>.container>.section-heading{width:100%;max-width:850px}.entity-group{width:100%;min-width:0}.entity-group__header>div:nth-child(2),.entity-topic summary>span:nth-child(2){min-width:0}.entity-group__header h2,.entity-topic summary strong{overflow-wrap:anywhere}.entity-group__header>strong{justify-self:end}.entity-topics{min-width:0}.entity-topic{min-width:0;overflow:clip}.entity-topic summary{width:100%;grid-template-columns:52px minmax(0,1fr) 40px}.entity-topic summary small{color:#52657a}.entity-topic__icon,.entity-topic__toggle{flex:0 0 auto}.entity-topic__toggle{justify-self:end}.entity-topic[open] summary{border-bottom:1px solid #eadde0}.entity-topic__body p{padding-right:72px}.entity-topic__status{max-width:calc(100% - 176px);white-space:normal;line-height:1.35}.entity-guidance>div{min-width:0}.entity-guidance h2{line-height:1.15}.entity-guidance a{justify-self:end}
@media(max-width:1080px){.entity-guidance{grid-template-columns:1fr}.entity-guidance a{justify-self:start}}
@media(max-width:720px){.entity-group__header{grid-template-columns:54px minmax(0,1fr)}.entity-group__header>.entity-group__icon{grid-row:1/3;align-self:start}.entity-group__header>strong{grid-column:2;grid-row:2;justify-self:start}.entity-topic summary{grid-template-columns:46px minmax(0,1fr) 36px;padding-inline:14px}.entity-topic__body p{padding:0 66px 10px}.entity-topic__status{max-width:calc(100% - 132px);margin-inline:66px}}
@media(max-width:480px){.entity-group__header{grid-template-columns:46px minmax(0,1fr);padding:18px 16px}.entity-group__icon{width:46px;height:46px}.entity-group__header h2{font-size:1.2rem}.entity-group__header p{display:block;font-size:.8rem;line-height:1.4}.entity-group__header>strong{grid-column:2;grid-row:2}.entity-topics{padding:6px}.entity-topic summary{grid-template-columns:42px minmax(0,1fr) 34px;gap:10px;min-height:76px;padding:12px 10px}.entity-topic__icon{width:42px;height:42px}.entity-topic__toggle{grid-column:3;grid-row:1;width:34px;height:34px;margin:0}.entity-topic summary strong{font-size:1rem;line-height:1.25}.entity-topic__body p{padding:14px 12px 9px}.entity-topic__status{max-width:calc(100% - 24px);margin:0 12px 16px}.entity-guidance{gap:17px;padding:20px}.entity-guidance>div{align-items:flex-start}.entity-guidance>div>.material-symbols-rounded{width:44px;height:44px;flex:0 0 44px}.entity-guidance a{width:100%;justify-content:space-between;white-space:normal}}
.a11y-high-contrast .entity-topic[open] summary{border-color:var(--hc-text)!important}.a11y-high-contrast .entity-topic[open] .entity-topic__toggle{border-color:var(--hc-link)!important;background:var(--hc-link)!important;color:#000!important}.a11y-high-contrast .entity-topic__status{border:2px solid var(--hc-text)!important;background:var(--hc-surface)!important;color:var(--hc-text)!important}.a11y-high-contrast .entity-guidance a{color:var(--hc-link)!important}
.emergency-floating__icon svg{display:block;width:28px;height:28px;transition:transform var(--motion-base) var(--ease-smooth)}
.emergency-floating:hover .emergency-floating__icon svg,.emergency-floating:focus-visible .emergency-floating__icon svg{transform:rotate(60deg) scale(1.08)}
.entity-inline-icon{display:block;width:1.65rem;height:1.65rem;flex:0 0 auto}
.entity-hero__visual>.entity-inline-icon{width:4rem;height:4rem}
.entity-group__icon .entity-inline-icon{width:2.25rem;height:2.25rem}
.entity-topic__icon{display:grid;place-items:center}
.entity-topic__icon .entity-inline-icon{width:1.45rem;height:1.45rem}
.entity-topic__toggle{position:relative;display:grid;width:2.4rem;height:2.4rem;place-items:center}
.entity-topic__toggle::before{content:"";width:.62rem;height:.62rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform var(--motion-base) var(--ease-smooth)}
.entity-topic[open] .entity-topic__toggle::before{transform:rotate(225deg) translate(-2px,-2px)}
.entity-guidance a .entity-inline-icon{width:1.2rem;height:1.2rem;transition:transform var(--motion-fast) var(--ease-smooth)}
.entity-guidance a:hover .entity-inline-icon{transform:translateX(5px)}

/* Motor visual optimizado: composición GPU y menor trabajo de pintura. */
.scroll-progress span{width:100%;transform:scaleX(0);transform-origin:left center;will-change:transform}
.js .reveal{will-change:opacity,transform;backface-visibility:hidden}
.js .reveal.is-visible{will-change:auto}
:where(.service-card,.institution-card,.news-card,.public-card,.rule-card,.site-map-card,.contact-channel-card,.arrival-steps li,.button,.emergency-floating){backface-visibility:hidden;transform:translateZ(0)}
.status-dot,.hero__kicker i,.dispatch-card::before,.site-map-hero__icon span,.public-hero__symbol span,.contact-emergency__icon{animation-play-state:paused!important}
.status-dot.motion-active,.hero__kicker i.motion-active,.dispatch-card.motion-active::before,.site-map-hero__icon.motion-active span,.public-hero__symbol.motion-active span,.contact-emergency__icon.motion-active{animation-play-state:running!important}

@media(max-width:900px),(update:slow){
  .navbar,.dispatch-card,.news-tools__inner,.public-hero__symbol,.entity-hero__visual,.contact-emergency,.location-map__badge{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .navbar{background:rgba(255,255,255,.985)}
  .dispatch-card,.public-hero__symbol,.entity-hero__visual,.contact-emergency{background-color:rgba(15,42,69,.96)}
  .js .reveal{transform:translateY(14px);transition-duration:440ms}
}

@media(hover:none){
  :where(.service-card,.institution-card,.news-card,.public-card,.rule-card,.site-map-card,.contact-channel-card,.arrival-steps li){transform:none}
}
