/* ============================================================
   NAVIGATION — mega menus, grouped mobile nav, site map, pager,
   in-page section nav
   ============================================================ */

/* ---------- top bar tweaks ---------- */
.nav__links{display:flex; align-items:center; gap:.05rem; margin-left:auto}
.nav__item--mega{position:static}
.nav__link{border:0; background:none; cursor:pointer; font-family:var(--font-body)}
.nav__map{
  display:grid; place-items:center; width:34px; height:34px; margin-left:.5rem; cursor:pointer;
  border:1px solid var(--line); border-radius:9px; background:transparent; color:var(--ink-3);
  transition:.35s var(--ease);
}
.nav__map svg{width:15px; height:15px}
.nav__map:hover{color:var(--cyan); border-color:rgba(58,214,245,.5); background:rgba(58,214,245,.07)}

/* ---------- mega panel ---------- */
.mega{
  position:absolute; top:100%; left:0; right:0; z-index:105;
  opacity:0; visibility:hidden; transform:translateY(-10px);
  transition:opacity .34s var(--ease), transform .34s var(--ease), visibility .34s;
  padding-top:10px;
}
.nav__item--mega:hover .mega,
.nav__item--mega:focus-within .mega,
.nav__item--mega.is-open .mega{opacity:1; visibility:visible; transform:translateY(0)}
.mega__in{
  width:var(--shell); margin-inline:auto; display:grid; grid-template-columns:.85fr 2.15fr;
  gap:clamp(1.4rem,3vw,2.8rem); padding:clamp(1.5rem,2.6vw,2.2rem);
  border-radius:16px; border:1px solid var(--line-strong);
  background:rgba(7,13,26,.975); backdrop-filter:blur(24px) saturate(140%);
  -webkit-backdrop-filter:blur(24px) saturate(140%);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9);
}
.mega__in--two{grid-template-columns:1fr 1fr}
.mega__in--slim{grid-template-columns:1fr; max-width:820px; margin-inline:auto}
.mega__eyebrow{font-family:var(--font-mono); font-size:.58rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold)}
.mega__lead h4,.mega__in h4{font-family:var(--font-display); font-size:1.05rem; color:#fff; margin:.7rem 0 .6rem}
.mega__lead p{font-size:.83rem; color:var(--ink-3); line-height:1.66}
.mega__all{display:inline-flex; align-items:center; gap:.5rem; margin-top:1rem; font-family:var(--font-mono);
  font-size:.63rem; letter-spacing:.16em; text-transform:uppercase; color:var(--cyan)}
.mega__all .arw{transition:transform .4s var(--ease)}
.mega__all:hover .arw{transform:translateX(5px)}

.mega__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:.55rem}
.mega__grid--3{grid-template-columns:repeat(3,1fr)}
.mcard{
  position:relative; display:block; padding:.95rem 1rem 1rem 1.5rem; border-radius:11px;
  border:1px solid transparent; transition:.4s var(--ease);
}
.mcard__dot{position:absolute; left:.85rem; top:1.25rem; width:7px; height:7px; border-radius:2px;
  background:var(--k); box-shadow:0 0 10px var(--k)}
.mcard:hover{background:rgba(120,190,255,.07); border-color:color-mix(in srgb, var(--k) 40%, transparent); transform:translateY(-2px)}
.mcard.is-active{background:rgba(120,190,255,.09); border-color:color-mix(in srgb, var(--k) 55%, transparent)}
.mcard__b{display:block; font-family:var(--font-display); font-weight:600; font-size:.87rem; color:#fff}
.mcard__t{display:block; font-family:var(--font-mono); font-size:.55rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--k); margin-top:.3rem}
.mcard__o{display:block; font-size:.76rem; color:var(--ink-3); margin-top:.4rem; line-height:1.5}

.mega__list{display:grid; gap:.2rem; margin-top:.3rem}
.mega__list a{display:flex; align-items:flex-start; gap:.7rem; padding:.62rem .8rem; border-radius:9px;
  font-size:.83rem; color:var(--ink-2); transition:.3s var(--ease)}
.mega__list a:hover{background:rgba(120,190,255,.08); color:#fff}
.mega__list i{width:7px; height:7px; border-radius:2px; background:var(--k); margin-top:.42rem;
  box-shadow:0 0 9px var(--k); flex-shrink:0}
.mega__list b{display:block; font-weight:600; color:#fff; font-size:.84rem}
.mega__list em{display:block; font-style:normal; font-size:.72rem; color:var(--ink-4); margin-top:.15rem}

/* ---------- site map overlay ---------- */
.sitemap{
  position:fixed; inset:0; z-index:130; display:grid; place-items:center; padding:1.5rem;
  background:rgba(3,6,14,.86); backdrop-filter:blur(14px);
  opacity:0; visibility:hidden; transition:.42s var(--ease);
}
.sitemap.is-open{opacity:1; visibility:visible}
.sitemap__in{
  width:min(1080px,96vw); max-height:88vh; overflow-y:auto; padding:clamp(1.6rem,3vw,2.6rem);
  border-radius:20px; border:1px solid var(--line-strong); background:rgba(8,14,28,.99);
  transform:translateY(16px) scale(.98); transition:.42s var(--ease);
  box-shadow:0 50px 120px -40px rgba(0,0,0,.95);
}
.sitemap.is-open .sitemap__in{transform:none}
.sitemap__head{display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; margin-bottom:1.8rem}
.sitemap__head h3{font-size:1.35rem; color:#fff; margin-top:.5rem}
.sitemap__x{width:38px; height:38px; border-radius:10px; border:1px solid var(--line); background:transparent;
  color:var(--ink-2); font-size:1.5rem; line-height:1; cursor:pointer; transition:.35s var(--ease)}
.sitemap__x:hover{color:#fff; border-color:rgba(58,214,245,.5); background:rgba(58,214,245,.08)}
.sitemap__cols{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.4vw,2.2rem)}
.sitemap__c h4{font-family:var(--font-mono); font-size:.6rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--ink-4); font-weight:500; margin-bottom:.9rem; padding-bottom:.7rem; border-bottom:1px solid var(--line)}
.sitemap__c a{display:flex; align-items:center; gap:.7rem; padding:.62rem .7rem; border-radius:9px;
  font-size:.86rem; color:var(--ink-2); transition:.3s var(--ease)}
.sitemap__c a:hover{background:rgba(120,190,255,.08); color:#fff; transform:translateX(4px)}
.sitemap__c a.is-active{color:#fff; background:rgba(120,190,255,.1)}
.sitemap__c em{font-style:normal; font-family:var(--font-mono); font-size:.6rem; color:var(--ink-4); min-width:1.4rem}
.sitemap__c i{width:7px; height:7px; border-radius:2px; background:var(--k); box-shadow:0 0 9px var(--k); flex-shrink:0}

/* ---------- mobile grouped nav ---------- */
.mnav{display:flex; flex-direction:column}
.mnav__top{padding:.9rem .2rem; border-bottom:1px solid rgba(120,190,255,.09); font-size:.98rem; color:var(--ink-2)}
.mnav__top.is-active{color:var(--cyan)}
.mnav__g{border-bottom:1px solid rgba(120,190,255,.09)}
.mnav__h{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1rem .2rem; background:none; border:0; cursor:pointer; text-align:left;
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
}
.mnav__h svg{width:12px; height:12px; transition:transform .4s var(--ease)}
.mnav__h[aria-expanded="true"] svg{transform:rotate(180deg)}
.mnav__p{display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--ease)}
.mnav__h[aria-expanded="true"] + .mnav__p{grid-template-rows:1fr}
.mnav__p > *{overflow:hidden}
.mnav__l{display:flex; align-items:flex-start; gap:.75rem; padding:.72rem .3rem .72rem .2rem; font-size:.9rem; color:var(--ink-2)}
.mnav__l i{width:7px; height:7px; border-radius:2px; background:var(--k,var(--cyan)); margin-top:.45rem;
  box-shadow:0 0 9px var(--k,var(--cyan)); flex-shrink:0}
.mnav__l b{display:block; font-weight:600; color:var(--ink)}
.mnav__l em{display:block; font-style:normal; font-size:.72rem; color:var(--ink-4); margin-top:.15rem}
.mnav__l.is-active,.mnav__l.is-active b{color:var(--cyan)}

/* ---------- forward / back pager ---------- */
.pager{position:relative; z-index:2; border-top:1px solid var(--line); background:rgba(5,10,20,.6);
  padding:clamp(1.4rem,2.6vw,2rem) 0}
.pager__row{display:grid; grid-template-columns:1fr auto 1fr; gap:clamp(.7rem,1.6vw,1.4rem); align-items:stretch}
.pager__i{display:flex; flex-direction:column; gap:.28rem; padding:1.1rem 1.3rem; border-radius:13px;
  border:1px solid var(--line); background:linear-gradient(180deg, rgba(13,27,51,.5), rgba(6,11,24,.3));
  transition:.5s var(--ease)}
.pager__i--next{text-align:right; align-items:flex-end}
.pager__i:hover{border-color:rgba(58,214,245,.45); transform:translateY(-4px);
  box-shadow:0 22px 46px -30px rgba(58,214,245,.5)}
.pager__i--empty{border:1px dashed var(--line); background:none; opacity:.35}
.pager__d{font-family:var(--font-mono); font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--cyan)}
.pager__n{font-family:var(--font-display); font-weight:600; font-size:1rem; color:#fff}
.pager__g{font-family:var(--font-mono); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-4)}
.pager__mid{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.3rem;
  padding:1.1rem 1.4rem; border-radius:13px; border:1px solid var(--line); transition:.5s var(--ease)}
.pager__mid:hover{border-color:rgba(230,183,86,.5); background:rgba(230,183,86,.06)}
.pager__pos{font-family:var(--font-display); font-weight:700; font-size:1.1rem; color:var(--gold-lite)}
.pager__pos em{font-style:normal; font-weight:400; font-size:.8rem; color:var(--ink-4)}
.pager__all{font-family:var(--font-mono); font-size:.55rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-4)}

/* ---------- in-page section nav ---------- */
.secnav{position:sticky; top:var(--nav-h); z-index:60; border-bottom:1px solid var(--line);
  background:rgba(6,11,22,.9); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px)}
.secnav__row{display:flex; align-items:center; gap:1.2rem; height:52px; overflow-x:auto; scrollbar-width:none}
.secnav__row::-webkit-scrollbar{display:none}
.secnav__l{font-family:var(--font-mono); font-size:.55rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-4); white-space:nowrap; flex-shrink:0}
.secnav__links{display:flex; gap:.2rem}
.secnav__links a{position:relative; padding:.4rem .8rem; border-radius:7px; white-space:nowrap;
  font-size:.79rem; color:var(--ink-3); transition:.3s var(--ease)}
.secnav__links a:hover{color:var(--ink); background:rgba(120,190,255,.07)}
.secnav__links a.is-current{color:#fff; background:rgba(58,214,245,.12)}

/* ---------- responsive ---------- */
@media (max-width:1240px){
  .mega__in{width:96vw}
  .mega__grid{grid-template-columns:repeat(2,1fr)}
}
/* Labelled menu button — an unlabelled icon was being missed entirely */
.burger{gap:.5rem; width:auto; padding:0 .8rem; height:40px}
.burger em{font-style:normal; font-family:var(--font-mono); font-size:.62rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--ink-2)}
.burger.is-open em{color:var(--cyan)}

@media (max-width:1080px){
  /* this file loads after site.css, so the mobile hide must be restated here
     or the base .nav__links{display:flex} above wins */
  .nav__links{display:none}
  .burger{display:flex}
  /* keep the brand from crowding the menu button on small screens */
  .nav__in{gap:.75rem}
  .brand__txt{max-width:150px}
  .nav__map{display:none}
  /* comfortable tap targets in the drawer */
  .mnav__l{padding:.85rem .3rem; min-height:48px; align-items:center}
  .mnav__top{padding:1.05rem .2rem; min-height:48px; display:flex; align-items:center}
  .mnav__h{min-height:52px}
  .sitemap__cols{grid-template-columns:1fr 1fr}
  .pager__row{grid-template-columns:1fr}
  .pager__i--next{text-align:left; align-items:flex-start}
  .pager__i--empty{display:none}
  .pager__mid{order:3}
}
@media (max-width:640px){
  .sitemap__cols{grid-template-columns:1fr}
  .sitemap__in{padding:1.3rem}
  .secnav__row{height:46px}
}
@media (prefers-reduced-motion:reduce){
  .mega,.sitemap,.sitemap__in{transition-duration:.001ms !important}
}
