/* Site header navigation (mn-*). Markup is generated by scripts/build-nav.py. */

.mn { display: none; }
@media (min-width: 1024px) { .mn { display: flex; align-items: center; gap: .15rem; } }
.mn-item { position: relative; }
.mn-item.mn-wide { position: static; }
.mn-btn { display: inline-flex; align-items: center; gap: .3rem; padding: .55rem .8rem; border-radius: .6rem; font-size: .9rem; font-weight: 500; color: hsl(var(--muted-foreground)); background: none; border: 0; cursor: pointer; transition: color .15s, background .15s; }
@media (min-width: 1280px) { .mn-btn { font-size: .95rem; padding: .55rem .95rem; } }
.mn-btn:hover, .mn-item.is-open > .mn-btn, .mn-btn[aria-current="true"] { color: hsl(var(--foreground)); background: hsl(var(--muted)); }
.mn-btn svg { width: .9rem; height: .9rem; transition: transform .2s; }
.mn-item.is-open > .mn-btn svg { transform: rotate(180deg); }
.mn-btn[aria-current="true"] { color: hsl(var(--primary)); }

.mn-panel { position: absolute; top: calc(100% + .35rem); left: 0; z-index: 60; min-width: 18.5rem; padding: .5rem; border-radius: 1rem; background: hsl(var(--background)); border: 1px solid hsl(var(--border)); box-shadow: 0 24px 48px -20px hsl(var(--foreground) / .28); opacity: 0; visibility: hidden; transform: translateY(.35rem); transition: opacity .15s ease, transform .15s ease, visibility .15s; }
.mn-item.is-open > .mn-panel { opacity: 1; visibility: visible; transform: none; }
@media (hover: hover) { .mn-item:hover > .mn-panel { opacity: 1; visibility: visible; transform: none; } .mn-item:hover > .mn-btn svg { transform: rotate(180deg); } }
.mn-panel::before { content: ""; position: absolute; left: 0; right: 0; top: -.6rem; height: .6rem; } /* hover bridge */

.mn-link { display: flex; gap: .8rem; align-items: flex-start; padding: .65rem .75rem; border-radius: .7rem; color: hsl(var(--foreground)); transition: background .12s; }
.mn-link:hover, .mn-link:focus-visible { background: hsl(var(--muted)); }
.mn-link[aria-current="page"] { background: hsl(var(--accent)); }
.mn-ico { flex: none; width: 2.1rem; height: 2.1rem; border-radius: .6rem; display: grid; place-items: center; background: hsl(var(--accent)); color: hsl(var(--primary)); }
.mn-ico svg { width: 1.05rem; height: 1.05rem; }
.mn-t { display: block; font-size: .9rem; font-weight: 600; line-height: 1.3; }
.mn-d { display: block; font-size: .8rem; line-height: 1.4; color: hsl(var(--muted-foreground)); margin-top: .15rem; }

/* services mega panel */
.mn-mega { left: 50%; transform: translate(-50%, .35rem); width: min(1080px, calc(100vw - 2rem)); padding: 1.5rem 1.5rem 1rem; }
.mn-item.is-open > .mn-mega { transform: translate(-50%, 0); }
@media (hover: hover) { .mn-item:hover > .mn-mega { transform: translate(-50%, 0); } }
.mn-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.mn-h { font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: hsl(var(--muted-foreground)); margin: 0 0 .5rem .6rem; }
.mn-sl { display: block; padding: .45rem .6rem; border-radius: .55rem; font-size: .9rem; color: hsl(var(--foreground)); line-height: 1.35; transition: background .12s, color .12s; }
.mn-sl:hover, .mn-sl:focus-visible { background: hsl(var(--muted)); color: hsl(var(--primary)); }
.mn-sl[aria-current="page"] { color: hsl(var(--primary)); font-weight: 600; background: hsl(var(--accent)); }
.mn-sl small { display: block; font-size: .76rem; color: hsl(var(--muted-foreground)); margin-top: .1rem; }
.mn-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1.1rem; padding: .9rem .6rem 0; border-top: 1px solid hsl(var(--border)); font-size: .875rem; color: hsl(var(--muted-foreground)); }
.mn-foot a.mn-more { font-weight: 600; color: hsl(var(--primary)); }
.mn-foot a.mn-more:hover { text-decoration: underline; }
.mn-cta { display: inline-flex; align-items: center; gap: .4rem; padding: .55rem 1rem; border-radius: .6rem; background: hsl(var(--accent)); color: hsl(var(--primary)); font-weight: 600; }
.mn-cta:hover { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }

/* locations list */
.mn-office { display: flex; justify-content: space-between; align-items: baseline; gap: 1.5rem; }
.mn-office .mn-d { margin: 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mn-panel-foot { margin: .35rem .25rem .15rem; padding: .6rem .5rem .2rem; border-top: 1px solid hsl(var(--border)); font-size: .85rem; }
.mn-panel-foot a { font-weight: 600; color: hsl(var(--primary)); }
.mn-panel-foot a:hover { text-decoration: underline; }

/* right side of the header */
.mn-tel { display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; font-weight: 600; color: hsl(var(--foreground)); }
.mn-tel svg { width: 1.05rem; height: 1.05rem; color: hsl(var(--primary)); }
.mn-tel span { display: none; }
@media (min-width: 640px) and (max-width: 1023px), (min-width: 1280px) { .mn-tel span { display: inline; } }

/* mobile drawer */
.mm-panel { width: min(100%, 22rem) !important; max-width: 100vw !important; padding: 1rem 1.25rem 1.5rem !important; gap: 0 !important; }
.mm-top { display: flex; justify-content: space-between; align-items: center; padding-bottom: .75rem; margin-bottom: .25rem; border-bottom: 1px solid hsl(var(--border)); }
.mm-top img { height: 2.25rem; width: auto; }
.mm-group { border-bottom: 1px solid hsl(var(--border)); }
.mm-toggle { display: flex; width: 100%; justify-content: space-between; align-items: center; padding: .95rem .25rem; font-size: 1rem; font-weight: 600; color: hsl(var(--foreground)); background: none; border: 0; cursor: pointer; }
.mm-toggle svg { width: 1.1rem; height: 1.1rem; transition: transform .2s; color: hsl(var(--muted-foreground)); }
.mm-list { padding: 0 0 .75rem; gap: .1rem; }
.mm-sub { font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: hsl(var(--muted-foreground)); margin: .6rem .5rem .2rem; }
.mm-link { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem .5rem; border-radius: .55rem; font-size: .95rem; color: hsl(var(--foreground)); }
.mm-link:hover { background: hsl(var(--muted)); }
.mm-link[aria-current="page"] { background: hsl(var(--accent)); color: hsl(var(--primary)); font-weight: 600; }
.mm-link small { font-size: .82rem; color: hsl(var(--muted-foreground)); font-variant-numeric: tabular-nums; }
.mm-actions { display: grid; gap: .6rem; margin-top: 1.25rem; }
.mm-btn { display: flex; justify-content: center; align-items: center; gap: .5rem; padding: .85rem 1rem; border-radius: .7rem; font-weight: 600; font-size: .95rem; }
.mm-btn-primary { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.mm-btn-ghost { border: 1px solid hsl(var(--border)); color: hsl(var(--foreground)); }
.mm-btn svg { width: 1.05rem; height: 1.05rem; }
.mm-hours { margin-top: .9rem; text-align: center; font-size: .8rem; color: hsl(var(--muted-foreground)); }
#mobile-menu-overlay { background: hsl(var(--foreground) / .5); }
#mobile-menu-panel.mm-panel { position: absolute; top: 0; right: 0; left: auto; height: 100%; box-shadow: -16px 0 40px -12px hsl(var(--foreground) / .35); }
