/* STLBEAST V230 — GLOBAL HEADER + FOOTER LOGO HARD LOCK
   Scope: public STLBEAST header/footer/logo containment only.
   Purpose: stop mobile/right-side header falloff, restore visible logo, and prevent footer logo cropping.
   This file must load last. */

html,
body{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:hidden!important;
}

@supports (overflow-x:clip){
  html,body{overflow-x:clip!important;}
}

*,*::before,*::after{box-sizing:border-box!important;}

body{margin-left:0!important;margin-right:0!important;}
img,svg,video,canvas{max-width:100%!important;height:auto;}

/* Page shells: keep everything inside the parent, not the raw viewport. */
.v114-shell,
.stlb125-shell,
.stlb159-shell,
.sb-shell,
.shell,
.site-shell,
.container,
.wrapper,
.main,
main{
  width:100%!important;
  max-width:1240px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  overflow:visible!important;
}

@media(max-width:760px){
  .v114-shell,
  .stlb125-shell,
  .stlb159-shell,
  .sb-shell,
  .shell,
  .site-shell,
  .container,
  .wrapper{
    max-width:100%!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
}

/* Top bars cannot force width with long status copy. */
.v114-topbar,
.stlb125-topbar,
.stlb159-topbar,
.topbar,
[class*="topbar"]{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  align-items:center!important;
  gap:6px 10px!important;
  padding-left:8px!important;
  padding-right:8px!important;
  overflow:hidden!important;
  text-align:center!important;
}
.v114-topbar *,
.stlb125-topbar *,
.stlb159-topbar *,
.topbar *{min-width:0!important;max-width:100%!important;white-space:normal!important;}

/* Header outer frames: use the parent width. Do not use 100vw inside padded wrappers. */
.v114-nav,
.v114-nav.stlb147-premium-nav,
header.stlb125-nav,
.stlb125-nav,
header.nav.stlb159-nav,
.stlb159-nav,
.site-header,
.sb-header,
.seo-nav,
header[class*="nav"],
header[class*="header"]{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
  float:none!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  overflow:visible!important;
}

/* Header interiors: stacked by default on public pages. */
.v114-nav .stlb147-nav-shell,
.stlb125-nav .stlb147-nav-shell,
.stlb159-nav,
.stlb159-nav .stlb147-nav-shell,
.sb-header .sb-nav,
.seo-nav,
.header-inner,
.nav-inner,
nav[class*="shell"]{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-areas:
    "brand"
    "links"
    "search"!important;
  justify-items:center!important;
  align-items:center!important;
  gap:12px!important;
  padding:14px 12px!important;
  overflow:visible!important;
}

/* Brand link / logo plate: never max-content, never wider than parent. */
a.v114-logo,
a.v114-logo.clean-wordmark,
a.stlb125-brand,
a.stlb159-brand,
a.stlb147-logo-frame,
.v114-logo,
.stlb125-brand,
.stlb159-brand,
.stlb147-logo-frame,
.logo,
.site-logo,
.brand,
.sb-logo,
.seo-nav .logo{
  grid-area:brand!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:min(340px,100%)!important;
  max-width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  margin:0 auto!important;
  padding:0!important;
  overflow:visible!important;
  flex:0 1 auto!important;
  text-decoration:none!important;
}

/* Actual logo component. */
.stlb161-logo,
header .stlb161-logo,
footer .stlb161-logo,
.v114-footer .stlb161-logo,
.stlb159-footer .stlb161-logo,
.footer .stlb161-logo{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  visibility:visible!important;
  opacity:1!important;
  width:min(320px,100%)!important;
  max-width:100%!important;
  min-width:0!important;
  height:76px!important;
  max-height:76px!important;
  overflow:visible!important;
  flex:0 1 auto!important;
  background:transparent!important;
  border-radius:0!important;
}

.stlb161-logo img,
header .stlb161-logo img,
footer .stlb161-logo img,
img[src*="stlbeast-nav-logo"]{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  max-height:72px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0 auto!important;
  padding:0!important;
  border:0!important;
  transform:none!important;
  clip-path:none!important;
  filter:drop-shadow(0 0 16px rgba(30,163,255,.30))!important;
}

/* Keep text fallback available only if image is missing/hidden by the browser. */
.stlb161-logo-fallback{
  display:none!important;
  pointer-events:none!important;
}
.stlb161-logo img:not([src]),
.stlb161-logo img[src=""]{display:none!important;}
.stlb161-logo img:not([src]) + .stlb161-logo-fallback,
.stlb161-logo img[src=""] + .stlb161-logo-fallback{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  color:#fff!important;
}

/* Link rows: contained grid buttons instead of one long row. */
.v114-links,
.stlb125-links,
.stlb159-links,
.stlb147-link-row,
.navlinks,
.header-links,
.menu,
header nav[aria-label="Primary navigation"]{
  grid-area:links!important;
  width:100%!important;
  max-width:760px!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:8px!important;
  overflow:visible!important;
}

.v114-links a,
.stlb125-links a,
.stlb159-links a,
.stlb147-link-row a,
.navlinks a,
.header-links a,
.menu a,
header nav[aria-label="Primary navigation"] a{
  min-width:0!important;
  max-width:100%!important;
  width:100%!important;
  min-height:36px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  line-height:1.08!important;
  font-size:clamp(9.5px,2.55vw,11.5px)!important;
  padding:7px 6px!important;
}

/* Search pill: never forces a wider page. */
.v114-search,
.stlb125-search,
.stlb159-search,
.stlb147-searchbox,
.search,
.searchbox,
header a[href*="search"]{
  grid-area:search!important;
  width:min(340px,100%)!important;
  max-width:100%!important;
  min-width:0!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  overflow:hidden!important;
  text-align:center!important;
  flex:0 1 auto!important;
}
.stlb147-searchtext,
.stlb159-search b,
.v114-search span,
.stlb125-search span,
.stlb159-search span,
.search span,
.searchbox span{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* Desktop row only when there is truly enough room. */
@media(min-width:1180px){
  .v114-nav .stlb147-nav-shell,
  .stlb125-nav .stlb147-nav-shell,
  .stlb159-nav,
  .stlb159-nav .stlb147-nav-shell,
  .sb-header .sb-nav,
  .seo-nav{
    grid-template-columns:minmax(230px,320px) minmax(0,1fr) minmax(190px,280px)!important;
    grid-template-areas:"brand links search"!important;
    justify-items:stretch!important;
    gap:14px!important;
  }
  a.v114-logo,
  a.v114-logo.clean-wordmark,
  a.stlb125-brand,
  a.stlb159-brand,
  a.stlb147-logo-frame,
  .logo,.brand,.site-logo{justify-self:start!important;width:100%!important;max-width:320px!important;}
  .v114-links,
  .stlb125-links,
  .stlb159-links,
  .stlb147-link-row,
  .navlinks,
  header nav[aria-label="Primary navigation"]{max-width:100%!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;}
  .v114-search,
  .stlb125-search,
  .stlb159-search,
  .stlb147-searchbox,
  header a[href*="search"]{justify-self:end!important;width:100%!important;max-width:280px!important;}
}

@media(max-width:720px){
  .v114-nav .stlb147-nav-shell,
  .stlb125-nav .stlb147-nav-shell,
  .stlb159-nav,
  .stlb159-nav .stlb147-nav-shell,
  .header-inner,
  .nav-inner{
    padding:12px 9px!important;
    gap:10px!important;
  }
  a.v114-logo,
  a.v114-logo.clean-wordmark,
  a.stlb125-brand,
  a.stlb159-brand,
  a.stlb147-logo-frame,
  .logo,.brand,.site-logo{width:min(310px,100%)!important;max-width:100%!important;}
  .stlb161-logo{width:min(300px,100%)!important;height:68px!important;max-height:68px!important;}
  .stlb161-logo img{max-height:64px!important;}
  .v114-links,
  .stlb125-links,
  .stlb159-links,
  .stlb147-link-row,
  .navlinks,
  header nav[aria-label="Primary navigation"]{
    max-width:360px!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:390px){
  .v114-links,
  .stlb125-links,
  .stlb159-links,
  .stlb147-link-row,
  .navlinks,
  header nav[aria-label="Primary navigation"]{gap:7px!important;}
  .v114-links a,
  .stlb125-links a,
  .stlb159-links a,
  .stlb147-link-row a,
  .navlinks a,
  header nav[aria-label="Primary navigation"] a{font-size:9.4px!important;padding-left:4px!important;padding-right:4px!important;}
}

/* Footer hard containment. */
.v114-footer,
.footer,
.stlb159-footer,
.stlb125-footer,
footer{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
.v114-footer > *,
.footer > *,
.stlb159-footer > *,
footer > *{min-width:0!important;max-width:100%!important;}
footer a.v114-logo,
footer a.logo,
.v114-footer a.v114-logo,
.footer a.logo,
.stlb159-footer a.logo{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  width:min(300px,100%)!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0 auto 14px!important;
  overflow:visible!important;
}
footer .stlb161-logo,
.v114-footer .stlb161-logo,
.footer .stlb161-logo,
.stlb159-footer .stlb161-logo{
  width:min(280px,100%)!important;
  height:64px!important;
  max-height:64px!important;
}
footer .stlb161-logo img,
.v114-footer .stlb161-logo img,
.footer .stlb161-logo img,
.stlb159-footer .stlb161-logo img{max-height:60px!important;}
