/* John Bramley v45 — unified desktop shell + first-screen containment */
:root{
  --jb45-rail:1320px;
  --jb45-edge:64px;
  --jb45-nav-h:76px;
  --jb45-nav-gap:14px;
  --jb45-shell:#edf3f7;
}

@media (min-width:981px){
  html{background:var(--jb45-shell)!important;}
  body{
    background:var(--jb45-shell)!important;
  }

  /* One desktop rail everywhere. */
  .jb31-nav-inner,
  .site-container,
  .section-inner,
  .contact-stage-inner{
    width:min(var(--jb45-rail),calc(100% - var(--jb45-edge)))!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    box-sizing:border-box!important;
  }

  /* Remove the white / secondary header slab on every desktop page. */
  header.site-nav,
  header.site-header,
  .site-nav.jb31-site-nav,
  .jb31-site-nav{
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }

  /* The visible navbar is the pill itself — nothing behind it. */
  .jb31-nav-inner{
    height:var(--jb45-nav-h)!important;
    min-height:var(--jb45-nav-h)!important;
    padding:0 28px!important;
    background:linear-gradient(90deg,rgba(6,25,43,.985) 0%,rgba(10,41,71,.985) 58%,rgba(18,58,95,.985) 100%)!important;
    border:1px solid rgba(143,197,245,.18)!important;
    box-shadow:0 14px 38px rgba(2,14,25,.18)!important;
    box-sizing:border-box!important;
  }

  /* Non-home pages: the space around the nav uses the same shell color as the page. */
  body:not(.page-home) .jb31-site-nav{
    padding:14px 0!important;
    margin:0!important;
  }

  body:not(.page-home) main{
    background:var(--jb45-shell)!important;
  }

  /* HOME — one continuous image canvas from top edge through the first viewport. */
  body.page-home{
    background:#06192b!important;
  }
  body.page-home .jb31-site-nav{
    position:absolute!important;
    top:var(--jb45-nav-gap)!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    height:var(--jb45-nav-h)!important;
    min-height:var(--jb45-nav-h)!important;
    margin:0!important;
    padding:0!important;
    z-index:5000!important;
  }
  body.page-home main,
  body.page-home main.page{
    margin:0!important;
    padding:0!important;
    background:#06192b!important;
  }
  body.page-home .hero-shell,
  body.page-home .hero-v31,
  body.page-home .hero-art{
    height:100svh!important;
    min-height:100svh!important;
    max-height:100svh!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  body.page-home .hero-v31 .hero-art{
    background-position:center 48%!important;
  }
  body.page-home .hero-v31-inner{
    height:100svh!important;
    min-height:0!important;
    max-height:100svh!important;
    padding-top:calc(var(--jb45-nav-gap) + var(--jb45-nav-h) + 24px)!important;
    padding-bottom:0!important;
    display:grid!important;
    grid-template-rows:minmax(0,1fr) 70px!important;
    overflow:hidden!important;
  }
  body.page-home .hero-v31-main{
    min-height:0!important;
    height:auto!important;
    align-self:center!important;
    padding-top:0!important;
    padding-bottom:18px!important;
    box-sizing:border-box!important;
  }
  body.page-home .hero-v31-copy{
    align-self:center!important;
  }
  body.page-home .hero-v31-stats{
    position:static!important;
    inset:auto!important;
    width:100%!important;
    height:70px!important;
    min-height:70px!important;
    margin:0!important;
    align-self:end!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  body.page-home .hero-v31-stats > div{
    min-height:70px!important;
    padding-top:13px!important;
    padding-bottom:10px!important;
    box-sizing:border-box!important;
  }
  body.page-home .hero-v31-stats dt{
    margin:0!important;
    line-height:1.05!important;
  }
  body.page-home .hero-v31-stats dd{
    margin-top:5px!important;
    line-height:1.1!important;
  }

  /* CONTACT — exact same rail as the navbar pill, while staying in one desktop viewport. */
  body.page-contact{
    background:var(--jb45-shell)!important;
  }
  body.page-contact .contact-stage{
    width:100%!important;
    min-height:calc(100svh - 104px)!important;
    padding:0 0 14px!important;
    margin:0!important;
    background:var(--jb45-shell)!important;
    display:flex!important;
    align-items:stretch!important;
    box-sizing:border-box!important;
  }
  body.page-contact .contact-stage-inner{
    width:min(var(--jb45-rail),calc(100% - var(--jb45-edge)))!important;
    max-width:none!important;
    height:calc(100svh - 118px)!important;
    min-height:590px!important;
    max-height:760px!important;
    margin:0 auto!important;
    grid-template-columns:minmax(300px,.84fr) minmax(340px,1fr) minmax(420px,1.18fr)!important;
    align-items:stretch!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  body.page-contact .contact-intro-panel,
  body.page-contact .contact-photo,
  body.page-contact .contact-form-panel{
    min-width:0!important;
    height:100%!important;
    box-sizing:border-box!important;
  }
  body.page-contact .contact-form-panel{
    overflow:auto!important;
  }
}

/* Preserve the locked mobile shell. */
@media (max-width:980px){
  .jb31-nav-inner,
  .site-container,
  .section-inner,
  .contact-stage-inner{
    box-sizing:border-box!important;
  }
}
