/* Shared public shell. Page-specific styles live in css/pages/. */
.site-nav-host{position:relative;z-index:1000}
.site-nav{top:0;width:100%;z-index:1000;transition:.35s;background:transparent}
.site-nav:not(.solid){position:fixed}
.site-nav.solid{position:fixed;background:rgba(20,38,30,.97);box-shadow:0 2px 20px rgba(0,0,0,.25)}
.site-nav.solid.sticky{position:sticky}
.site-nav.scrolled{background:rgba(20,38,30,.97);box-shadow:0 2px 20px rgba(0,0,0,.25);backdrop-filter:blur(12px)}
/* A sticky bar is part of the page flow, and backdrop-filter makes it the
   positioning box for the slide-out phone menu inside it. Parked off-screen to
   the right, that menu then widened the whole page and it scrolled sideways.
   Without the filter the menu is positioned against the screen, as intended. */
.site-nav.solid.sticky{backdrop-filter:none;-webkit-backdrop-filter:none}
/* A sticky element only stays put while its parent is on screen, and the host
   is no taller than the bar, so the bar scrolled away with it. The host is what
   has to stick. */
.site-nav-host[data-nav-mode="sticky"]{position:sticky;top:0}
.site-nav .ctn{max-width:1200px;margin:0 auto;padding:.8rem 2rem;display:flex;align-items:center;justify-content:space-between;position:relative}
.site-nav .nav-brand{display:flex;align-items:center;text-decoration:none}
.site-nav .nav-brand span{font-family:var(--heading,'Cormorant Garamond',Georgia,serif);font-size:1.05rem;font-weight:700;color:#fff;line-height:1.2}
.site-nav .nav-links{display:flex;align-items:center;list-style:none;gap:.15rem;margin:0;padding:0}
.site-nav .nav-links>li{position:relative}
.site-nav .nav-links a{display:block;color:rgba(255,255,255,.82);font-size:.86rem;font-weight:500;padding:.45rem .7rem;border-radius:5px;text-decoration:none;white-space:nowrap}
.site-nav .nav-links a:hover,.site-nav .nav-links a.active{color:#fff;background:rgba(255,255,255,.11)}
.site-nav .nav-links .btn-nav{background:var(--gold,#c8a64a);color:var(--forest,#14261e);padding:.5rem 1.1rem;font-weight:700;margin-left:.35rem}
.site-nav .nav-links .btn-nav:hover{background:var(--gold-lt,#e2cc7e);color:var(--forest,#14261e)}
.site-nav .sub{display:none;position:absolute;top:100%;left:0;min-width:180px;padding:.45rem;background:var(--forest,#14261e);border-radius:0 0 7px 7px;list-style:none;box-shadow:0 10px 25px rgba(0,0,0,.28)}
.site-nav .has-sub:hover>.sub,.site-nav .has-sub:focus-within>.sub{display:block}
.site-nav .hamburger,.site-nav .nav-close{display:none;background:none;border:0;color:#fff;cursor:pointer}
.site-nav .hamburger span{display:block;width:24px;height:2px;background:#fff;margin:5px 0}
.site-nav .nav-mobile-close{display:none}

.site-footer{background:var(--forest,#14261e);color:rgba(255,255,255,.72);padding:3.5rem 0 1.25rem}
.site-footer .ctn{max-width:1160px;margin:0 auto;padding:0 2rem}
.site-footer .footer-g{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:2.5rem;margin-bottom:2.5rem}
.site-footer h4{color:#fff;margin:0 0 .8rem;font-family:var(--heading,'Cormorant Garamond',Georgia,serif)}
.site-footer .footer-brand .nav-brand span{color:var(--gold-lt,#e2cc7e);font-family:var(--heading,'Cormorant Garamond',Georgia,serif);font-weight:700}
.site-footer .footer-brand p{font-size:.86rem;line-height:1.7;margin-top:.7rem}
.site-footer .footer-links{list-style:none;margin:0;padding:0}
.site-footer .footer-links li{margin:.4rem 0;font-size:.85rem}
.site-footer a{color:rgba(255,255,255,.74);text-decoration:none}
.site-footer a:hover{color:var(--gold-lt,#e2cc7e)}
.site-footer .footer-bot{border-top:1px solid rgba(255,255,255,.1);padding-top:1.1rem;display:flex;justify-content:space-between;gap:1rem;font-size:.78rem}
.site-footer .footer-bot p{margin:0}
.site-footer-minimal{text-align:center;padding:1.5rem 1rem;font-size:.82rem}
.site-footer-minimal p{margin:.25rem 0}

/* The full menu needs about 1080px beside the site name; below that the name
   was squeezed onto four lines, so narrower screens get the slide-out menu. */
@media(max-width:1080px){
  .site-nav .hamburger{display:block}
  .site-nav .nav-links{position:fixed;top:0;right:-100%;width:min(82vw,290px);height:100vh;background:var(--forest,#14261e);flex-direction:column;align-items:stretch;padding:4.5rem 1.5rem 2rem;gap:0;transition:right .35s;box-shadow:-4px 0 30px rgba(0,0,0,.4);overflow-y:auto}
  .site-nav .nav-links.open{right:0}
  .site-nav .nav-links>li{display:block}
  .site-nav .nav-links a{padding:.8rem 0;font-size:1rem;border-bottom:1px solid rgba(255,255,255,.08);border-radius:0;white-space:normal}
  .site-nav .nav-links .btn-nav{margin:1rem 0 0;text-align:center;border-radius:5px}
  /* Not positioned, so the close button anchors to the panel's top corner
     rather than to this empty row, where it sat underneath the Home link. */
  .site-nav .nav-links>li.nav-mobile-close{display:block;position:static}
  .site-nav .nav-close{display:block;position:absolute;top:.8rem;right:1rem;font-size:2rem}
  .site-nav .sub{display:block;position:static;padding:0 0 0 1rem;background:none;box-shadow:none}
}
@media(max-width:980px){
  .site-footer .footer-g{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .site-nav .ctn,.site-footer .ctn{padding-left:1.2rem;padding-right:1.2rem}
  .site-footer .footer-g{grid-template-columns:1fr;gap:1.4rem}
  .site-footer .footer-bot{display:block}.site-footer .footer-bot a{display:inline-block;margin-top:.5rem}
}
