
:root{
  --pm-nav-height:72px;
  --pm-nav-bg:#17120d;
  --pm-nav-text:#f4efe7;
  --pm-nav-muted:#dfc39a;
  --pm-nav-line:rgba(223,195,154,.28);
  --pm-nav-panel:#17120d;
}

/* Shared navigation hardening: retain the existing horizontal-overflow guard. */
html{
  overflow-x:hidden;
}

.pm-nav{
  position:sticky;
  top:0;
  z-index:10000;
  min-height:var(--pm-nav-height);
  width:100%;
  max-width:100vw;
  padding-top:env(safe-area-inset-top);
  overflow:visible;
  background:var(--pm-nav-bg);
  color:var(--pm-nav-text);
  border-bottom:1px solid var(--pm-nav-line);
  box-shadow:0 10px 28px rgba(23,18,13,.16);
  font-family:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;
  transition:none;
}

.pm-nav__bar{
  width:min(1600px,100%);
  min-height:var(--pm-nav-height);
  margin-inline:auto;
  padding:10px clamp(14px,3vw,42px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(150px,.68fr) auto;
  align-items:center;
  gap:20px;
}

.pm-nav__page,
.pm-nav__section{
  min-width:0;
  display:flex;
  flex-direction:column;
  line-height:1.15;
}

.pm-nav__page span,
.pm-nav__section span,
.pm-nav__group-title{
  color:var(--pm-nav-muted);
  font-size:.67rem;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.pm-nav__page strong,
.pm-nav__page-top{
  overflow:hidden;
  color:#fff;
  font:400 1rem/1.25 Georgia,"Times New Roman",serif;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.pm-nav__section strong{
  overflow:hidden;
  color:#fff;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.05em;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}

.pm-nav__toggle{
  min-width:96px;
  min-height:46px;
  padding:0;
  position:relative;
  display:block;
  border:1px solid rgba(223,195,154,.62);
  background:transparent;
  color:#fff;
  cursor:pointer;
  font:800 0/1 "Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;
  letter-spacing:.1em;
  text-align:center;
  text-transform:uppercase;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  animation:none;
  transition:none;
}

.pm-nav__toggle::after{
  content:"+";
  position:absolute;
  left:50%;
  top:50%;
  display:block;
  margin:0;
  padding:0;
  line-height:1;
  color:var(--pm-nav-muted);
  font-size:1.2rem;
  font-weight:400;
  text-align:center;
  transform:translate(-50%,-50%);
  transform-origin:center;
}

.pm-nav__toggle[aria-expanded="true"]::after{
  content:"−";
}

.pm-nav__panel{
  position:absolute;
  top:100%;
  left:0;
  right:0;
  display:none;
  width:100%;
  max-width:100%;
  height:auto;
  max-height:calc(100vh - var(--pm-nav-height));
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  background:var(--pm-nav-panel);
  color:var(--pm-nav-text);
  border-top:1px solid var(--pm-nav-line);
  box-shadow:0 22px 42px rgba(0,0,0,.34);
  contain:none;
  transform:none;
  animation:none;
  transition:none;
}

.pm-nav.is-open .pm-nav__panel{
  display:block;
}

.pm-nav__panel-inner{
  width:min(1100px,100%);
  margin-inline:auto;
  padding:24px clamp(16px,4vw,48px) 30px;
  display:grid;
  grid-template-columns:minmax(230px,.65fr) minmax(0,1.35fr);
  gap:clamp(24px,5vw,64px);
}

.pm-nav__group-title{
  display:block;
  margin-bottom:10px;
}

.pm-nav__links{
  display:grid;
}

.pm-nav__links a{
  min-height:48px;
  padding:12px 13px;
  display:flex;
  align-items:center;
  gap:12px;
  color:#e8ded0;
  background:transparent;
  border-bottom:1px solid rgba(223,195,154,.14);
  text-decoration:none;
  font-size:.9rem;
  font-weight:700;
  animation:none;
  transition:none;
}

.pm-nav__links a span{
  flex:none;
  color:#c7a36b;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.08em;
}

/* Navigation metadata uses ordinary uppercase glyphs, never small-cap features. */
.pm-nav,
.pm-nav *{
  font-variant:normal;
  font-variant-caps:normal;
  font-feature-settings:normal;
  font-synthesis:none;
}

.pm-nav__links a[aria-current]{
  box-shadow:inset 3px 0 0 #dfc39a;
  font-weight:850;
}

.pm-nav__toggle:hover,
.pm-nav__toggle:active,
.pm-nav__toggle[aria-expanded="true"],
.pm-nav__links a:hover,
.pm-nav__links a:active,
.pm-nav__links a:focus,
.pm-nav__links a[aria-current]{
  background:transparent;
  color:inherit;
}

.pm-nav button:focus-visible,
.pm-nav a:focus-visible{
  outline:3px solid #fff;
  outline-offset:-3px;
}

.pm-nav__progress{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  overflow:hidden;
  background:rgba(255,255,255,.1);
}

.pm-nav__progress i{
  display:block;
  width:100%;
  height:100%;
  background:#dfc39a;
  transform:scaleX(0);
  transform-origin:left center;
}

main [id],
section[id],
header[id]{
  scroll-margin-top:calc(var(--pm-nav-height) + 18px);
}

@media (max-width:700px){
  :root{
    --pm-nav-height:64px;
  }

  .pm-nav__bar{
    min-height:64px;
    padding:8px 12px;
    grid-template-columns:minmax(0,1fr) minmax(76px,28vw) 50px;
    gap:9px;
  }

  .pm-nav__page span,
  .pm-nav__section span{
    font-size:.56rem;
  }

  .pm-nav__page strong,
  .pm-nav__page-top{
    font-size:.88rem;
  }

  .pm-nav__section strong{
    font-size:.72rem;
  }

  .pm-nav__toggle{
    width:50px;
    min-width:50px;
    min-height:46px;
    padding:0;
    z-index:2;
    flex:none;
    pointer-events:auto;
    align-self:center;
    margin-block:0;
    top:auto;
    transform:none;
  }

  .pm-nav__toggle::after{
    font-size:1.4rem;
  }

  .pm-nav__panel-inner{
    padding:16px 12px 24px;
    grid-template-columns:1fr;
    gap:22px;
  }

  .pm-nav__links a{
    min-height:50px;
    font-size:.92rem;
    width:100%;
    box-sizing:border-box;
    overflow-wrap:anywhere;
  }
}

@media (prefers-reduced-motion:reduce){
  .pm-nav__progress i{
    transition:none;
  }
}

/* Authoritative shared orientation and presentation rules. */
.pm-nav__page strong,
.pm-nav__section strong{
  min-height:1em;
}

.pm-nav__bar,
.pm-nav__page,
.pm-nav__section,
.pm-nav__panel,
.pm-nav__panel-inner,
.pm-nav__group,
.pm-nav__links{
  min-width:0;
  max-width:100%;
}

.pm-nav__panel-inner{
  padding-bottom:calc(30px + env(safe-area-inset-bottom));
}

.pm-nav__links a,
.pm-nav__links a:hover,
.pm-nav__links a:active,
.pm-nav__links a:focus,
.pm-nav__links a[aria-current="location"],
.pm-nav__links a[aria-current="page"]{
  background:transparent;
  color:#e8ded0;
}

/* Interface labels use normal caps in the established Avenir system. */
.pm-nav__page span,
.pm-nav__section span,
.pm-nav__group-title,
.pm-nav__section strong,
.pm-nav__toggle,
.pm-nav__links a,
.pm-nav__links a span{
  font-variant:normal;
  font-variant-caps:normal;
}

.pm-nav__progress{
  display:none;
}

.pm-nav__page-top{
  color:inherit;
  font:inherit;
  line-height:inherit;
  text-decoration:none;
  text-underline-offset:.18em;
  cursor:pointer;
}
.pm-nav__page-top:hover{
  text-decoration:underline;
  text-decoration-thickness:1px;
}
.pm-nav__page-top:focus-visible{
  outline:2px solid currentColor;
  outline-offset:4px;
}

/* Mobile orientation alignment — keep page, section, and menu control on one optical centerline. */
@media (max-width:700px){
  .pm-nav__page,
  .pm-nav__section{
    align-self:center;
    justify-content:center;
  }

  .pm-nav__page strong,
  .pm-nav__section strong{
    display:block;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .pm-nav__panel-inner{
    width:100%;
    box-sizing:border-box;
  }
}

/* On short screens the open panel owns the available space and scrolls itself. */
@media (max-height:700px){
  .pm-nav__panel{
    height:calc(100dvh - var(--pm-nav-height) - env(safe-area-inset-top));
    max-height:calc(100dvh - var(--pm-nav-height) - env(safe-area-inset-top));
    overflow-y:auto;
  }
}
