/* mega menu — shared across v3 pages */
:root{--ez:cubic-bezier(.16,.84,.3,1)}
.nv .mi{position:static;display:flex;align-items:center}
.nv .mt{white-space:nowrap;background:none;border:0;cursor:pointer;font-family:'Karla',sans-serif;font-size:15px;font-weight:500;color:var(--mu);padding:0;display:inline-flex;align-items:center;gap:6px;transition:color .18s}
.nv .mt:hover,.nv .mi.on .mt,.nv .mt[aria-current]{color:var(--ink)}
.nv .mt i{width:5px;height:5px;border-right:1.3px solid currentColor;border-bottom:1.3px solid currentColor;transform:rotate(45deg) translateY(-1px);opacity:.5;transition:transform .3s var(--ez),opacity .18s}
.nv .mi.on .mt i{transform:rotate(225deg) translateY(-2px);opacity:1}
.nv>a{color:var(--mu)}
.nv>a[aria-current],.nv>a:hover{color:var(--ink)}
/* the drawer's phone and CTA block is appended to .nv on every page, so it has
   to stay out of the desktop row */
.nvfoot{display:none}
.mscrim{position:fixed;inset:74px 0 0;background:rgba(6,28,37,.22);opacity:0;pointer-events:none;transition:opacity .3s var(--ez);z-index:70}
.mscrim.on{opacity:1}
.mpan{position:absolute;top:74px;left:0;right:0;background:var(--pp);border-bottom:1px solid var(--ink);box-shadow:0 24px 48px -28px rgba(6,28,37,.35);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .26s var(--ez),transform .34s var(--ez),visibility .26s;z-index:75}
.mpan::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--tl2);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ez)}
.mpan.on{opacity:1;visibility:visible;transform:none}
.mpan.on::before{transform:none}
.mpan .in{max-width:1500px;margin:0 auto;padding:clamp(22px,2.6vw,38px) clamp(16px,2.6vw,44px);display:grid;gap:clamp(20px,3vw,52px)}
.mpan .col h5{font-family:'Karla',sans-serif;font-size:12px;letter-spacing:.01em;color:var(--mu);font-weight:400;padding-bottom:9px;border-bottom:1px solid var(--ln);margin-bottom:6px}
.mpan .lk{display:block;padding:9px 0;border-bottom:1px solid var(--ln2);opacity:0;transform:translateY(5px);transition:opacity .34s var(--ez),transform .34s var(--ez),color .16s}
.mpan.on .lk{opacity:1;transform:none}
.mpan .lk b{display:block;font-size:15.5px;font-weight:600;letter-spacing:-.03em}
.mpan .lk span{display:block;color:var(--mu);font-size:13px;margin-top:2px}
.mpan .lk:hover b{color:var(--or)}
.mpan .city{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--ln2);opacity:0;transform:translateY(5px);transition:opacity .34s var(--ez),transform .34s var(--ez)}
.mpan.on .city{opacity:1;transform:none}
.mpan .city>b{font-size:15px;font-weight:600;letter-spacing:-.03em}
.mpan .city .two2{display:flex;gap:12px}
.mpan .city a{font-family:'Karla',sans-serif;font-weight:600;font-size:12px;letter-spacing:.01em;color:var(--tl);padding:3px 0}
.mpan .city a:hover{color:var(--or)}
.mpan .promo{background:var(--pp2);border:1px solid var(--ln);padding:clamp(16px,1.8vw,24px);display:flex;flex-direction:column;gap:10px;opacity:0;transform:translateY(5px);transition:opacity .38s var(--ez) .1s,transform .38s var(--ez) .1s}
.mpan.on .promo{opacity:1;transform:none}
.mpan .promo .mo{color:var(--mu)}
.mpan .promo strong{font-size:clamp(17px,1.7vw,21px);letter-spacing:-.04em;line-height:1.15}
.mpan .promo p{color:var(--mu);font-size:14px}
.mpan .promo .btn2{align-self:flex-start;padding:10px 16px;font-size:14px}
.tapromo{display:grid;gap:8px;margin:2px 0 4px}
.tapromo div{display:grid;grid-template-columns:66px 1fr auto;gap:9px;align-items:center}
.tapromo b{font-size:12.5px;font-weight:600;letter-spacing:-.02em}
.tapromo i{height:7px;background:var(--tl);display:block}
.tapromo div:nth-child(2) i{background:var(--tl2)}
.tapromo div:nth-child(3) i{background:rgba(6,28,37,.28)}
.tapromo span{font-family:'Karla',sans-serif;font-weight:600;font-size:12.5px;color:var(--mu);white-space:nowrap}
@media(prefers-reduced-motion:reduce){.mpan,.mpan .lk,.mpan .city,.mpan .promo,.mpan::before,.nv .mt i{transition:none}}
@media(min-width:1025px){
.nv{position:static}
.nv{gap:clamp(14px,1.8vw,26px)}
.mpan .in{grid-template-columns:repeat(4,minmax(0,1fr))}
.mpan.wide .in{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,.9fr)}
.mpan.duo .in{grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.05fr)}
}
@media(max-width:1024px){
/* ── mobile drawer ────────────────────────────────────────────────────────
   Fixed beneath the sticky header rather than absolute, so it covers the page
   instead of letting it show through and scrolling away with it. Dark, so it
   reads as its own surface. Scrolls internally once the accordions open. */
.nv{position:fixed;inset:74px 0 0;z-index:85;background:var(--ink);color:var(--pp);
 /* the header bar is a grid and .nv carries justify-self:start for the desktop
    row; left on, it shrink-to-fits the fixed panel instead of filling */
 justify-self:stretch;align-self:stretch;width:100%;
 display:flex;flex-direction:column;align-items:stretch;gap:0;
 padding:clamp(12px,4vw,22px) clamp(16px,5vw,30px) 0;
 overflow-y:auto;overscroll-behavior:contain;
 opacity:0;visibility:hidden;transform:translateY(-8px);
 transition:opacity .26s var(--ez),transform .32s var(--ez),visibility .26s}
.nv.on{opacity:1;visibility:visible;transform:none}
/* rows arrive in sequence rather than all at once */
.nv>*{opacity:0;transform:translateY(12px);transition:opacity .38s var(--ez),transform .38s var(--ez)}
.nv.on>*{opacity:1;transform:none}
.nv.on>*:nth-child(1){transition-delay:.05s}
.nv.on>*:nth-child(2){transition-delay:.09s}
.nv.on>*:nth-child(3){transition-delay:.13s}
.nv.on>*:nth-child(4){transition-delay:.17s}
.nv.on>*:nth-child(5){transition-delay:.21s}
.nv.on>*:nth-child(6){transition-delay:.25s}
.nv.on>*:nth-child(7){transition-delay:.29s}
.nv.on>*:nth-child(8){transition-delay:.33s}
/* top level rows, sized for a thumb */
.nv>a,.nv .mt{display:flex;width:100%;align-items:center;justify-content:space-between;gap:14px;
 padding:clamp(12px,3.2vw,17px) 0;border:0;border-bottom:1px solid var(--lnD);
 font-family:inherit;font-size:clamp(23px,6.4vw,30px);font-weight:700;letter-spacing:-.035em;
 line-height:1.12;color:var(--pp);background:none;text-align:left;cursor:pointer;white-space:normal}
.nv>a:hover,.nv .mt:hover,.nv .mi.on .mt{color:var(--tl2)}
/* by id, so a page-level .nv a[aria-current]{color:var(--ink)} cannot win on
   source order and paint the current page ink-on-ink inside a dark drawer */
#nv>a[aria-current],#nv .mt[aria-current]{color:var(--tl2);box-shadow:none}
/* the drawer is out of flow, so the header bar is down to two children and
   its third column was leaving dead space on the right */
.bar{grid-template-columns:1fr auto}
.nv .mi{display:block;width:100%}
.nv .mt i{width:9px;height:9px;border-width:2px;opacity:.55;flex:0 0 auto}
/* accordion: 0fr to 1fr animates a height the browser can actually interpolate */
.nv .mpan{position:static;display:grid;grid-template-rows:0fr;background:none;border:0;
 box-shadow:none;opacity:1;visibility:visible;transform:none;
 transition:grid-template-rows .32s var(--ez)}
.nv .mpan.on{grid-template-rows:1fr}
.nv .mpan::before{display:none}
/* padding lives inside the clipped area, or a collapsed accordion still
   reserves its own bottom padding and leaves a gap under every closed row */
.nv .mpan .in{display:block;overflow:hidden;min-height:0;max-width:none;padding:0}
.nv .mpan .promo{display:none}
.nv .mpan .col{padding-bottom:10px}
.nv .mpan .col+.col{margin-top:14px}
.nv .mpan .col h5{color:var(--muD);border-color:var(--lnD)}
.nv .mpan .lk{border-color:var(--lnD)}
.nv .mpan .lk b{color:var(--pp);font-size:16.5px}
.nv .mpan .lk span{color:var(--muD)}
.nv .mpan .city{border-color:var(--lnD)}
.nv .mpan .city>b{color:var(--pp);font-size:16.5px}
.nv .mpan .city a{color:var(--tl2);white-space:nowrap;font-size:13px}
/* phone and CTA, pinned to the bottom of the drawer by the script */
.nvfoot{display:flex;margin-top:auto;flex-direction:column;gap:12px;
 padding:clamp(18px,5vw,26px) 0 clamp(26px,8vw,40px);border-top:1px solid var(--lnD)}
.nvfoot .nvtel{color:var(--muD);font-size:15.5px;font-weight:600;text-align:center}
.nvfoot .nvtel:hover{color:var(--tl2)}
.mscrim{display:none}
/* hamburger becomes a close mark */
.bg{position:relative;z-index:86}
.bg span{transition:transform .3s var(--ez),opacity .18s}
/* 2px bar on a 5px gap puts the outer bars 7px from the middle one */
.bg.on span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.bg.on span:nth-child(2){opacity:0}
.bg.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.navlock{overflow:hidden}
}
@media(max-width:1024px) and (prefers-reduced-motion:reduce){
.nv,.nv>*,.nv .mpan,.bg span{transition:none}
}
/* Wordmark, audit button and trigger want roughly 406px of header between them.
   Below that the button starts getting clipped, so the lockup drops to the mark
   alone rather than the call to action coming off. */
@media(max-width:405px){
.lg span{display:none}
.lg{gap:0}
}
