/* GOXA Shell Manager · public layout geometry · V4.6.2
   Rail contract: Header is an overlay layer. Body + Footer own document flow. */

.goxa-shell-site-layout{
  position:relative;
  min-height:100vh;
  min-height:100dvh;
  display:block;
  isolation:isolate;
  --goxa-shell-rail-clearance:0px;
}

/* In rail modes the Header source owns its rail width and visual geometry.
   Shell deliberately removes it from page-flow sizing so Body stays aligned
   to the real viewport rather than to "viewport minus rail". */
.goxa-shell-site-layout__header{
  position:relative;
  z-index:30;
  width:0;
  height:0;
  min-width:0;
  min-height:0;
}

.goxa-shell-site-layout__body{
  position:relative;
  z-index:10;
  width:100%;
  min-width:0;
}

.goxa-shell-site-layout__footer{
  position:relative;
  z-index:20;
  width:100%;
  min-width:0;
  box-sizing:border-box;
}

.goxa-shell-site-layout--rail-left .goxa-shell-site-layout__footer{
  padding-left:var(--goxa-shell-rail-clearance);
}
.goxa-shell-site-layout--rail-right .goxa-shell-site-layout__footer{
  padding-right:var(--goxa-shell-rail-clearance);
}

/* Explicit layer contract. A fixed/sticky rail authored inside Header remains
   above Footer when the two occupy the same screen coordinates. */
.goxa-shell-site-layout__header > *{
  z-index:30;
}

@media(max-width:782px){
  .goxa-shell-site-layout__header{
    width:0;
    height:0;
  }
}
