/* ECOS shared website footer — v0.5.0.
   Independent of page-specific grids, stable on mobile and desktop. */
.site-footer.ecos-universal-footer {
  display:block; width:100%; margin:0; padding:0; min-height:0;
  background:#081826; color:#e9f0f4; text-align:left;
}
.ecos-universal-footer *, .ecos-universal-footer *::before, .ecos-universal-footer *::after{box-sizing:border-box}
.ecos-universal-footer .ecos-footer-container{width:calc(100% - 2 * clamp(22px,4vw,60px));max-width:1420px;margin:0 auto}
.ecos-universal-footer .ecos-footer-columns{display:grid;grid-template-columns:minmax(0,2.25fr) minmax(175px,.65fr) minmax(210px,.8fr);column-gap:clamp(25px,5vw,105px);row-gap:42px;align-items:start;padding:72px 0 58px}
.ecos-universal-footer .ecos-footer-identity{min-width:0}
.ecos-universal-footer .ecos-footer-wordmark{display:inline-block;margin:0;color:#eef6fb;font-size:21px;font-weight:800;letter-spacing:.13em;line-height:1.35;white-space:normal;text-decoration:none}
.ecos-universal-footer .ecos-footer-wordmark span{color:#8bbbd9}
.ecos-universal-footer .ecos-footer-identity p{font-size:14px;line-height:1.72;margin:28px 0 0;color:#9db6c6}
.ecos-universal-footer .ecos-footer-links{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:13px;flex-wrap:nowrap}
.ecos-universal-footer .ecos-footer-links h2{margin:0 0 9px;padding:0;border:0;color:#96b8cb;font-size:11px;line-height:1.5;font-weight:750;letter-spacing:.19em;text-transform:uppercase}
.ecos-universal-footer .ecos-footer-links a{display:inline-block;margin:0;padding:0;background:none;border:0;border-bottom:1px solid transparent;border-radius:0;text-decoration:none;font-size:13px;line-height:1.58;font-weight:400;color:#c4d3dd;white-space:normal;transition:color .18s,border-color .18s}
.ecos-universal-footer .ecos-footer-links a:hover,.ecos-universal-footer .ecos-footer-links a:focus-visible{color:white;border-color:#9ac5db}
.ecos-universal-footer a:focus-visible{outline:2px solid #9ac5db;outline-offset:4px}
.ecos-universal-footer .ecos-footer-end{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid #30485a;padding:25px 0 27px;color:#91adbf;font-size:10px;letter-spacing:.15em;line-height:1.5;text-transform:uppercase}
@media(max-width:880px){
 .ecos-universal-footer .ecos-footer-columns{grid-template-columns:minmax(0,1fr) minmax(150px,1fr);padding:57px 0 48px;gap:36px 24px}
 .ecos-universal-footer .ecos-footer-identity{grid-column:1 / -1}
}
@media(max-width:480px){
 .ecos-universal-footer .ecos-footer-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:17px}
 .ecos-universal-footer .ecos-footer-wordmark{font-size:16px}
 .ecos-universal-footer .ecos-footer-links a{font-size:12px}
 .ecos-universal-footer .ecos-footer-links h2{font-size:10px}
 .ecos-universal-footer .ecos-footer-end{flex-direction:column;align-items:flex-start;gap:9px;font-size:9px}
}

/* ECOS v0.5.2 — observed-only status strip; no structural header changes */
.ecos-universal-footer .ecos-status-strip{display:flex;align-items:center;flex-wrap:wrap;gap:9px 20px;border-top:1px solid #30485a;padding:18px 0;color:#9eb4c2;font-size:12px;line-height:1.55}
.ecos-universal-footer .ecos-status-link{color:#deebf2;text-decoration:none;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:650}
.ecos-universal-footer .ecos-status-link:hover,.ecos-universal-footer .ecos-status-link:focus-visible{text-decoration:underline;text-underline-offset:4px}
.ecos-universal-footer .ecos-status-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:#8095a3;box-shadow:0 0 0 2px #8095a31e}
.ecos-universal-footer .ecos-status-dot[data-state="operational"]{background:#4dc39e;box-shadow:0 0 0 3px #4dc39e20}
.ecos-universal-footer .ecos-status-dot[data-state="degraded"]{background:#f2b95f}
.ecos-universal-footer .ecos-status-dot[data-state="outage"]{background:#ef8178}
.ecos-universal-footer .ecos-status-summary{font-size:11px;color:#9bb4c4;letter-spacing:.02em}
@media(max-width:480px){.ecos-universal-footer .ecos-status-strip{align-items:flex-start;flex-direction:column;gap:8px}}
