/* Shared public enhancements */
html, body { min-height: 100%; }
body.public-page{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
main.page-shell{
  flex:1;
  display:block;
}
.nav-shell{ position:relative; }
.nav-toggle{
  display:none;
  width:46px;
  height:46px;
  align-items:center;
  justify-content:center;
  background:rgba(240,237,232,.04);
  border:1px solid rgba(240,237,232,.12);
  color:var(--smoke);
  cursor:none;
  transition:background .25s,border-color .25s,transform .25s, box-shadow .25s;
}
.nav-toggle:hover{ 
  background:rgba(240,237,232,.08); 
  border-color:rgba(240,237,232,.24);
  box-shadow: 0 10px 26px rgba(0,0,0,.24);
}
.nav-toggle-lines{ display:flex; flex-direction:column; gap:5px; }
.nav-toggle-lines span{
  display:block;
  width:20px;
  height:2px;
  background:var(--smoke);
  transition:transform .3s ease, opacity .3s ease;
}
.nav-open .nav-toggle-lines span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-open .nav-toggle-lines span:nth-child(2){ opacity:0; }
.nav-open .nav-toggle-lines span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.nav-backdrop{
  position:fixed;
  inset:0;
  background:rgba(10,10,10,.56);
  backdrop-filter:blur(10px);
  opacity:0;
  visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
  z-index:90;
}
.nav-open .nav-backdrop{ opacity:1; visibility:visible; }

body.public-page footer{
  margin-top:auto;
  box-shadow: inset 0 1px 0 rgba(240,237,232,.06);
}
body.public-page .btn-primary,
body.public-page .nav-cta{
  box-shadow: 0 12px 28px rgba(230,59,46,.16);
}
body.public-page .btn-primary:hover,
body.public-page .nav-cta:hover{
  transform: translateY(-2px);
}

@media (max-width: 900px){
  nav{
    padding:18px 20px !important;
    gap:14px;
  }
  .nav-cta, .nav-back{ display:none !important; }

  .nav-links{
    display: flex !important;
    position:fixed !important;
    top:0;
    right:-100%;
    width:min(86vw,380px);
    height:100vh;
    padding:120px 30px 40px;
    gap: 26px !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start;
    gap:18px !important;
    list-style: none;
    background:linear-gradient(180deg, rgba(10,10,10,.98), rgba(17,17,17,.97));
    border-left:1px solid rgba(240,237,232,.08);
    backdrop-filter:blur(14px);
    transition:right .35s ease;
    z-index:100;
    box-shadow: -30px 0 60px rgba(0,0,0,.28);
  }

  .nav-links li{
    display: block !important;
    width: 100%;
  }
  .nav-links a{
    padding: 10px 0;
    display: block !important;
    width: 100%;
    opacity: 1 !important;
    visibility: visible !important;
    color: var(--smoke) !important;
    font-size:.9rem !important;
    letter-spacing:.16em !important;
    border-bottom: 1px solid rgba(240,237,232,.08);
    text-transform: uppercase;
    text-decoration: none;
  }

  .nav-links li:last-child a{
    border-bottom: none;
  }

  .nav-logo{
    position: relative;
    z-index: 101;
  }

  .nav-open .nav-links{ 
    right:0 !important; 
  }

  .nav-toggle{
    width: 44px;
    height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(240,237,232,.02);
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(10px);
  position: relative;
  z-index: 101;
  -webkit-backdrop-filter:blur(10px);
  border-radius: 50%;

}

.nav-toggle span{
  width: 20px;
}

.nav-backdrop{
  z-index: 90;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.nav-links::before{
  content: "Menu";
  display: block;
  font-family: var(--font-mono);
  font-size: 1rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 8px;
}
}
