/* ============================================================
   NILS shared site chrome — nav refinements + footer.
   Loaded on every public page alongside the page's own styles.
   ============================================================ */

/* ---- Announcement bar ---- */
.nils-bar{
  position:fixed;top:0;left:0;right:0;z-index:600;
  background:#1B1A18;color:#E9E4DC;
  font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;
  text-align:center;padding:.55rem 1rem;
}
.nils-bar span{color:#C9AD79;margin:0 .5rem}
body.has-bar nav#nav,body.has-bar nav{top:var(--bar-h,33px)}

/* ---- Mobile nav: keep the menu reachable (was hidden) ---- */
@media(max-width:900px){
  nav#nav{grid-template-columns:auto 1fr !important;padding:1.1rem 1.5rem}
  nav#nav .nav-left{display:none}
  nav#nav .nav-right{display:flex !important;justify-content:flex-end}
  nav#nav .nav-right > li:not(:last-child){display:none}
  nav#nav .nav-right .menu-btn{display:flex}
  nav#nav .nav-logo{text-align:left}
}

/* ---- Menu overlay: relate to the right-side trigger ---- */
.menu-body{justify-content:flex-end}
@media(max-width:900px){
  .menu-cols{grid-template-columns:1fr;gap:1.6rem;max-width:100%}
  .menu-body{justify-content:flex-start;padding:2rem 1.5rem}
}

/* ---- Footer: center on small screens ---- */
@media(max-width:600px){
  .nf-top{grid-template-columns:1fr;text-align:center;gap:2.2rem}
  .nf-col a{margin-left:auto;margin-right:auto}
  .nf-col a:hover{padding-left:0}
  .nf-news{max-width:300px;margin-left:auto;margin-right:auto}
  .nf-social{justify-content:center}
}

/* ---- Nav refinements (no markup change) ---- */
.nav-logo .wordmark{position:relative;display:inline-block}
.nav-logo .wordmark::before{
  content:'\2726';position:absolute;top:-.95rem;left:50%;transform:translateX(-50%);
  font-size:.62rem;color:var(--gold);opacity:.85;
}
.nav-left a,.nav-right a:not(.nav-fb){position:relative}
.nav-left a::after,.nav-right a:not(.nav-fb):not(.menu-btn)::after{
  content:'';position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--gold);transition:width .35s cubic-bezier(.4,0,.2,1);
}
.nav-left a:hover::after{width:100%}

/* ---- Footer ---- */
footer.nils-footer{display:block;background:#1B1A18;color:#E9E4DC;padding:5rem 5.5rem 2.4rem;border:0;margin:0}
.nils-footer *{box-sizing:border-box}
.nf-top{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.5fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(233,228,220,.12)}
.nf-spark{color:#C9AD79;font-size:1.1rem;line-height:1;margin-bottom:.7rem}
.nf-wordmark{font-family:'Cormorant Garamond','Times New Roman',serif;font-size:2rem;letter-spacing:.26em;color:#F7F3EC;margin-bottom:1rem;font-weight:400}
.nf-tag{font-size:.82rem;line-height:1.85;color:rgba(233,228,220,.6);max-width:300px;margin:0}
.nf-h{font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:#C9AD79;margin:0 0 1.2rem}
.nf-col a{display:block;font-size:.84rem;color:rgba(233,228,220,.78);text-decoration:none;margin-bottom:.72rem;transition:color .3s,padding-left .3s;width:fit-content}
.nf-col a:hover{color:#fff;padding-left:5px}
.nf-sub{font-size:.78rem;color:rgba(233,228,220,.55);line-height:1.7;margin:0 0 1rem}
.nf-news{display:flex;border:1px solid rgba(233,228,220,.22);margin-bottom:1.5rem;background:rgba(233,228,220,.04)}
.nf-news input{flex:1;background:none;border:none;padding:.72rem .9rem;color:#F7F3EC;font-family:'Jost','Helvetica Neue',sans-serif;font-size:.82rem;outline:none;min-width:0}
.nf-news input::placeholder{color:rgba(233,228,220,.42)}
.nf-news button{background:#C9AD79;color:#1B1A18;border:none;padding:0 1.1rem;cursor:pointer;font-size:1.05rem;transition:background .3s}
.nf-news button:hover{background:#E5C98A}
.nf-news.done{border-color:#C9AD79}
.nf-social{display:inline-flex;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(233,228,220,.7);text-decoration:none;transition:color .3s}
.nf-social:hover{color:#C9AD79}
.nf-social svg{width:13px;height:13px}
.nf-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:1.8rem;font-size:.66rem;letter-spacing:.12em;color:rgba(233,228,220,.42);flex-wrap:wrap;gap:.8rem}
.nf-badges{letter-spacing:.18em;text-transform:uppercase}
.nf-badges span{color:rgba(201,173,121,.6);margin:0 .45rem}
@media(max-width:900px){
  footer.nils-footer{padding:3.5rem 1.5rem 2rem}
  .nf-top{grid-template-columns:1fr 1fr;gap:2.2rem 1.5rem}
  .nf-brand{grid-column:1/-1}
  .nf-bottom{flex-direction:column;text-align:center}
}
