/* Site menu (27 Oct 2026): one "Menu" button in every header opens a side panel with every section.
   Built by /assets/site-nav.js; the button is static markup in each page (scripts/beems_site_nav.py). */
.sn-toggle{display:inline-flex;align-items:center;gap:10px;margin-left:12px;padding:9px 14px;border:1px solid var(--border,rgba(201,168,76,.25));border-radius:var(--radius,8px);background:transparent;color:var(--text,var(--ink,#f4efe3));font:500 12px/1 var(--font-sans,system-ui,sans-serif);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,background .2s;flex-shrink:0}
.sn-toggle:hover,.sn-toggle:focus-visible{border-color:var(--accent,#c9a84c);background:rgba(201,168,76,.08);outline:none}
.sn-bars,.sn-bars::before,.sn-bars::after{display:block;width:16px;height:1.5px;background:currentColor;border-radius:1px}
.sn-bars{position:relative}.sn-bars::before,.sn-bars::after{content:'';position:absolute;left:0}
.sn-bars::before{top:-5px}.sn-bars::after{top:5px}
.sn-overlay{position:fixed;inset:0;z-index:9000;background:rgba(5,8,16,.62);opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}
.sn-drawer{position:fixed;top:0;right:0;bottom:0;z-index:9001;width:min(360px,88vw);display:flex;flex-direction:column;background:var(--bg-card,#111829);border-left:1px solid var(--border,rgba(201,168,76,.25));box-shadow:-24px 0 64px -24px rgba(0,0,0,.6);transform:translateX(100%);visibility:hidden;transition:transform .28s cubic-bezier(.2,.7,.2,1),visibility 0s .28s;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.sn-open .sn-overlay{opacity:1;visibility:visible;transition:opacity .25s}
.sn-open .sn-drawer{transform:none;visibility:visible;transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.sn-open{overflow:hidden}
.sn-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border,rgba(201,168,76,.25))}
.sn-title{font:600 20px/1 var(--font-serif,Georgia,serif);letter-spacing:.08em;color:var(--accent,#c9a84c)}
.sn-close{width:40px;height:40px;display:grid;place-items:center;border:none;border-radius:var(--radius,8px);background:transparent;color:var(--text,#f4efe3);font-size:26px;line-height:1;cursor:pointer}
.sn-close:hover,.sn-close:focus-visible{background:rgba(255,255,255,.06);outline:none}
.sn-group{padding:18px 22px 6px}
.sn-group h2{margin:0 0 8px;font:500 11px/1 var(--font-sans,system-ui,sans-serif);letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim,#a9a49a)}
.sn-group a{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 12px;margin:0 -12px;border-radius:var(--radius,8px);color:var(--text,#f4efe3);font:400 16px/1.2 var(--font-sans,system-ui,sans-serif);text-decoration:none}
.sn-group a::after{content:'\2192';color:var(--accent,#c9a84c);opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s}
.sn-group a:hover,.sn-group a:focus-visible{background:rgba(201,168,76,.08);outline:none}
.sn-group a:hover::after,.sn-group a:focus-visible::after{opacity:1;transform:none}
.sn-group a[aria-current="page"]{color:var(--accent,#c9a84c)}
.sn-langs{display:flex;flex-wrap:wrap;gap:8px}
.sn-langs a{min-height:36px;margin:0;padding:0 12px;border:1px solid var(--border,rgba(201,168,76,.25));font-size:13px}
.sn-langs a::after{display:none}
.sn-cta{position:sticky;bottom:0;margin-top:auto;padding:14px 22px 20px;background:linear-gradient(180deg,transparent,var(--bg-card,#111829) 30%)}
.sn-cta a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:var(--radius,8px);background:var(--accent,#c9a84c);color:#0a0f1e;font:600 13px/1 var(--font-sans,system-ui,sans-serif);letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.sn-cta a:hover,.sn-cta a:focus-visible{filter:brightness(1.08);outline:none}
/* Phones: the header is the logo and the Menu button only; every link and the page's call to action are in the panel */
/* Where the button sits INSIDE .nav-links (property trades pages) hide its siblings, not the list itself (1 Nov 2026) */
@media(max-width:760px){.nav .nav-links:not(:has(.sn-toggle)),.nav .nav-note{display:none!important}.nav .nav-links:has(.sn-toggle)>:not(.sn-toggle){display:none!important}.sn-toggle{margin-left:auto}}
@media(max-width:560px){.sn-toggle{padding:9px 12px}}
@media(max-width:380px){.sn-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@media(prefers-reduced-motion:reduce){.sn-overlay,.sn-drawer,.sn-group a::after{transition:none}}
.sn-search{padding:16px 22px 4px}.sn-slabel{display:block;margin-bottom:8px;font:500 11px/1 var(--font-sans,system-ui,sans-serif);letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim,#a9a49a)}
.sn-search input{width:100%;padding:12px 14px;border-radius:var(--radius,8px);border:1px solid var(--border,rgba(201,168,76,.25));background:rgba(255,255,255,.03);color:var(--text,#f4efe3);font:400 16px var(--font-sans,system-ui,sans-serif)}
.sn-search input:focus{outline:2px solid var(--accent,#c9a84c);outline-offset:1px}
.sn-results{margin-top:8px;font-size:13px;color:var(--text-dim,#a9a49a)}
.sn-hit{display:block;padding:10px 0;border-bottom:1px solid var(--border,rgba(201,168,76,.15));text-decoration:none;color:var(--text,#f4efe3)}
.sn-hit b{display:block;font-weight:600;margin-bottom:3px}.sn-hit span{display:block;color:var(--text-dim,#a9a49a);line-height:1.5}
.sn-hit:hover b,.sn-hit:focus-visible b{color:var(--accent,#c9a84c)}

/* Links inside running text are underlined, not told apart by colour alone (WCAG 1.4.1; axe link-in-text-block, 1 Nov 2026) */
:is(main,section,article) :is(p,li)>a:not([class]),footer>a:not([class]),:is(.nav-note,.tax-note) a:not([class]){text-decoration:underline;text-underline-offset:.15em}
