/* Moozonian SERP Stability v1.0.2 -- scoped to SITE results only.
   Deterministic layout built in PHP. Never depend on post-load measurements. */
body.moo-search-page.moo-ux-sites:has(#mooSerpLayoutV102) {
  --moo102-rail: clamp(272px, 23vw, 336px);
  --moo102-gap: clamp(20px, 2.6vw, 42px);
}
body.moo-search-page.moo-ux-sites #mainContent:has(#mooSerpLayoutV102),
body.moo-search-page.moo-ux-sites .moo-main:has(#mooSerpLayoutV102) {
  width:100%!important;max-width:1620px!important;
  min-width:0!important;box-sizing:border-box!important;
  padding:clamp(14px,1.5vw,24px) clamp(14px,2.5vw,40px) 65px!important;
  margin:0 auto!important;
}
/* Prepaint gate: only unexpected nodes inserted BEFORE the server-rendered
   SERP layout are hidden. They are moved into the knowledge rail by JS.
   The main results column is never hidden. */
body.moo-search-page.moo-ux-sites #mainContent > :has(~ #mooSerpLayoutV102) {
  display:none!important;
}
body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 {
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) var(--moo102-rail)!important;
  grid-auto-flow:row!important;
  column-gap:var(--moo102-gap)!important;
  align-items:start!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;padding:0!important;
  position:relative!important;
  isolation:isolate!important;
}
body.moo-search-page.moo-ux-sites #mooSerpPrimaryV102 {
  box-sizing:border-box!important;
  grid-column:1!important;grid-row:1!important;
  min-width:0!important;max-width:100%!important;
  position:relative!important;
  margin:0!important;padding:0!important;
}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 {
  box-sizing:border-box!important;
  grid-column:2!important;grid-row:1!important;
  display:flex!important;flex-direction:column!important;
  gap:14px!important;
  position:relative!important;
  float:none!important;
  inset:auto!important;transform:none!important;
  z-index:1!important;
  min-width:0!important;max-width:100%!important;width:100%!important;
  margin:0!important;padding:0!important;
  align-self:start!important;
}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102:empty {min-height:0!important;}
body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 :is(.moo-page-heading,.moo-toolbar) {
  box-sizing:border-box!important;max-width:100%!important;
}
body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 .moo-page-heading {
  margin:0 0 7px!important;min-height:35px!important;align-items:center!important;
}
body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 .moo-toolbar {
  width:100%!important;margin:0 0 16px!important;
}
body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 #mooUxSiteLayout {
  display:block!important;grid-template-columns:none!important;
  position:static!important;width:100%!important;max-width:100%!important;
  min-width:0!important;height:auto!important;margin:0!important;
  padding:0!important;overflow:visible!important;
}
body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 #searchResults {
  position:relative!important;inset:auto!important;
  grid-column:auto!important;grid-row:auto!important;
  box-sizing:border-box!important;width:100%!important;
  min-width:0!important;max-width:100%!important;
  margin:0!important;float:none!important;
  overflow-wrap:anywhere!important;
}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 > :is(.moo102-panel,.moo-ux-wiki,.moo-ux-legacy-rail,#mooUxWiki) {
  position:relative!important;inset:auto!important;float:none!important;
  transform:none!important;z-index:auto!important;
  display:block;
  width:100%!important;max-width:100%!important;min-width:0!important;
  height:auto!important;max-height:none!important;
  margin:0!important;padding:0;
  box-sizing:border-box!important;
}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 > [hidden] {display:none!important;}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 :is(img,video,iframe){max-width:100%!important;height:auto;}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 :is(p,h2,h3,h4,a){overflow-wrap:anywhere;}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 .moo102-panel {
  border:1px solid var(--ux-border,#e1e8f0)!important;
  border-radius:16px!important;
  background:var(--ux-paper,#fff)!important;
  color:var(--ux-fg,#17233a)!important;
  padding:16px!important;
  box-shadow:0 5px 22px rgba(25,48,85,.045)!important;
}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 .moo102-panel h2,
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 .moo102-panel h3,
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 .moo102-panel h4 {margin:0 0 9px;font-size:17px;line-height:1.45;}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 .moo102-panel p {margin:7px 0;font-size:13px;line-height:1.6;color:var(--ux-sub,#56657b);}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 .moo102-panel a {color:var(--ux-blue,#155bd4);}
body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 #mooUxWiki {
  padding:0!important;border:1px solid var(--ux-border,#e1e8f0)!important;
  border-radius:16px!important;overflow:hidden!important;
}
/* Legacy provider rail must remain INSIDE the web-result column. */
body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 #searchResults .moo102-public-rail {
  box-sizing:border-box!important;position:relative!important;
  top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
  transform:none!important;float:none!important;clear:both!important;
  min-width:0!important;max-width:100%!important;width:100%!important;
  height:auto!important;min-height:0!important;margin:12px 0 18px!important;
}
body.moo-search-page.moo-ux-sites #searchResults .moo102-public-parent {
  max-width:100%!important;min-width:0!important;
  grid-template-columns:minmax(0,1fr)!important;
}
body.moo-search-page.moo-ux-sites #mooSerpPrimaryV102 #searchResults > * {max-width:100%;}
/* A sidebar is a separate stacked row on narrower devices, never an overlay.
   Layout is media-query based; it does not change when AJAX finishes. */
@media(max-width:1199px){
 body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 {
   grid-template-columns:minmax(0,1fr)!important;
   row-gap:22px!important;
 }
 body.moo-search-page.moo-ux-sites #mooSerpPrimaryV102 {grid-column:1!important;grid-row:1!important;}
 body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 {
   grid-column:1!important;grid-row:2!important;
   width:100%!important;max-width:770px!important;
   justify-self:start!important;
 }
}
@media(max-width:640px){
 body.moo-search-page.moo-ux-sites #mainContent:has(#mooSerpLayoutV102),
 body.moo-search-page.moo-ux-sites .moo-main:has(#mooSerpLayoutV102){
   padding:12px 12px 42px!important;
 }
 body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 .moo-page-heading {flex-wrap:wrap!important;}
 body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 .moo-toolbar {flex-wrap:wrap!important;gap:8px!important;}
 body.moo-search-page.moo-ux-sites #mooSerpSidebarV102{max-width:100%!important;gap:12px!important;}
 body.moo-search-page.moo-ux-sites #mooSerpSidebarV102 .moo102-panel{padding:14px!important;}
}
@media (prefers-reduced-motion:reduce){
 body.moo-search-page.moo-ux-sites #mooSerpLayoutV102 *{scroll-behavior:auto!important;}
}
@media print{
 body.moo-search-page.moo-ux-sites #mooSerpLayoutV102{display:block!important;}
 body.moo-search-page.moo-ux-sites #mooSerpSidebarV102{display:block!important;margin-top:20px!important;}
}
