.container{width:min(var(--container),calc(100% - 2*var(--space-5)));margin-inline:auto}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 var(--space-6);border-radius:var(--radius-chip);font-weight:700;border:1.5px solid transparent;cursor:pointer;transition:transform .12s ease,background .16s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{color:#fff;background:var(--ink)}
.btn-primary:hover{background:var(--ink-dark)}

.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-4) 0}
.topnav{display:flex;gap:var(--space-5);margin-left:auto;font-weight:600}
.topnav a{color:var(--ink);border-radius:var(--radius-nav);padding:var(--space-1) var(--space-2)}
.topnav a:hover{color:var(--accent)}
.topnav a[aria-current="page"]{color:var(--accent)}

.nav-toggle{display:none;margin-left:auto;flex-direction:column;gap:4px;background:none;border:0;padding:var(--space-2);cursor:pointer;border-radius:var(--radius-nav)}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink)}
.mobilenav{display:none;flex-direction:column;padding:var(--space-3) var(--space-5) var(--space-5);border-top:1px solid var(--line);background:var(--card)}
.mobilenav a{padding:var(--space-3) 0;font-weight:600;border-bottom:1px solid var(--line)}
.mobilenav[hidden]{display:none}

.site-footer{margin-top:var(--space-7);background:var(--ink);color:var(--line)}
.footer-inner{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-6);align-items:center;padding:var(--space-7) 0}
.footer-brand{font-family:var(--font-heading);font-weight:800;margin:0}
.footer-nav{display:flex;gap:var(--space-5);margin-left:auto}
.footer-nav a:hover{color:#fff}
.footer-legal{width:100%;color:var(--muted);font-size:var(--text-small);margin:var(--space-4) 0 0}

@media (max-width:820px){
  .topnav{display:none}
  .header-inner .btn-primary{display:none}
  .nav-toggle{display:flex}
  .mobilenav:not([hidden]){display:flex}
}


/* Chrome — the utility bar, the header and the footer.
   Scoped to the template's own node ids so a page section can never inherit it. */

/* The utility bar and the header are full-bleed with the page gutter, not
   boxed: the handoff runs the logo to 48px from the screen edge and the phone
   button to 48px from the other, at every width. */
[data-bz-node="utility-bar"] > .bz-row,
[data-bz-node="site-header"] > .bz-row { padding-inline: var(--container-pad); }
@media (max-width: 1100px) {
  [data-bz-node="utility-bar"] > .bz-row,
  [data-bz-node="site-header"] > .bz-row { padding-inline: var(--container-pad-tablet); }
}
@media (max-width: 640px) {
  [data-bz-node="utility-bar"] > .bz-row,
  [data-bz-node="site-header"] > .bz-row { padding-inline: var(--container-pad-mobile); }
}
/* Chrome blocks carry no vertical padding of their own; the bar's own padding
   is the whole of its height. */
[data-bz-node="utility-bar"] .bz-block,
[data-bz-node="site-header"] .bz-block { padding-block: 0; }

/* A parent item in the bar keeps the handoff's chevron. */
[data-bz-node="site-header"] .bz-menu--mega .bz-nav > .bz-navitem--has-sub > a::after {
  content: "\25BE";
  font-size: 10px;
  margin-left: 5px;
  display: inline-block;
}

/* Utility bar: red band, socials pinned left, location links right. */
[data-bz-node="utility-bar"] { border-bottom: 0; }
[data-bz-node="utility-bar"] .bz-navitem > a {
  font-size: 12px; font-weight: 600; color: #fff; font-family: var(--font-body);
}
[data-bz-node="utility-bar"] .bz-navitem > a:hover { color: #fff; text-decoration: underline; }
[data-bz-node="utility-bar"] .bz-block { padding-block: 0; }
@media (max-width: 640px) {
  [data-bz-node="utility-links"] { display: none; }
  [data-bz-node="utility-social"] { justify-content: center; }
  [data-bz-node="utility-social"] .ss-social { justify-content: center; }
}

/* Header: near-black chrome, 64px logo, nav pushed right, red phone button. */
[data-bz-node="site-header"] { border-bottom: 1px solid var(--line); border-color: #333; }
[data-bz-node="site-header"] .bz-logo__img { height: 64px; width: auto; }
[data-bz-node="site-header"] .bz-navitem > a,
[data-bz-node="site-header"] .bz-menu-toggle { color: #EDEDED; font-size: 14px; font-weight: 600; }
[data-bz-node="site-header"] .bz-navitem > a:hover { color: #fff; }
[data-bz-node="site-header"] .bz-navitem > a[aria-current="page"] { color: var(--accent); font-weight: 700; }
[data-bz-node="site-header"] .bz-subnav { background: #fff; border: 1px solid var(--line); padding: 24px 32px; }
[data-bz-node="site-header"] .bz-subnav .bz-navitem > a { color: var(--ink); font-size: 14px; }
[data-bz-node="site-header"] .bz-subnav .bz-navitem > a:hover { color: var(--accent); }
[data-bz-node="site-header"] .bz-btns { margin-block: 0; }
[data-bz-node="header-phone"] .bz-btn { white-space: nowrap; }
/* A mega panel is absolutely positioned and viewport-wide, so nothing above it
   may clip overflow. Stated here because it is easy to add later and hard to
   diagnose once added. */
[data-bz-node="site-header"], [data-bz-node="header-row"] { overflow: visible; }
@media (max-width: 640px) {
  [data-bz-node="site-header"] .bz-logo__img { height: 40px; }
}

/* The footer band is the "Site footer" component; its rules travel with it.
   Only the legal strip below the content area is styled here. */
[data-bz-node="footer-legal"] { border-top: 1px solid #333; }
[data-bz-node="footer-legal"] p,
[data-bz-node="footer-legal"] .bz-navitem > a { color: #8A8A8A; font-size: 12px; }

/* --- Chrome on small screens ---------------------------------------------
   The header and utility rows are set to never stack, so their twelve grid
   tracks stay in force at every width. Below the nav's collapse breakpoint
   they become a simple flex row instead: logo left, phone button and the
   hamburger right, which is what the handoff draws. */
@media (max-width: 1100px) {
  [data-bz-node="header-row"] { display: flex; align-items: center; gap: 12px; }
  [data-bz-node="header-brand"] { flex: 1 1 auto; }
  [data-bz-node="header-cta"] { flex: 0 0 auto; order: 2; }
  [data-bz-node="header-nav"] { flex: 0 0 auto; order: 3; }
  [data-bz-node="utility-row"] { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
  [data-bz-node="utility-social"] { flex: 0 0 auto; }
  [data-bz-node="utility-links"] { flex: 1 1 auto; }
  [data-bz-node="site-header"] .bz-menu-wrap[data-open] > .bz-menu { background: #fff; }
  [data-bz-node="site-header"] .bz-menu-wrap[data-open] .bz-navitem > a { color: var(--ink); }
  [data-bz-node="site-header"] .bz-menu-toggle { border-color: #444; color: #EDEDED; }
}
@media (max-width: 640px) {
  [data-bz-node="utility-links"] { display: none; }
  [data-bz-node="utility-social"] { flex: 1 1 auto; }
  [data-bz-node="utility-social"] .ss-social { justify-content: center; }
  [data-bz-node="header-cta"] .bz-btn { min-height: 40px; padding: 0 12px; font-size: 13px; }
}

/* The collapsed nav panel is positioned against the header section, so it needs
   to sit above the hero that follows it. */
@media (max-width: 1100px) {
  [data-bz-node="site-header"] { z-index: 40; }
  [data-bz-node="site-header"] .bz-menu-wrap[data-open] > .bz-menu {
    z-index: 40; max-height: 70vh; overflow-y: auto;
  }
}
/* A mega panel is viewport-wide; align its columns to the page gutter. */
[data-bz-node="site-header"] .bz-menu--mega .bz-nav > .bz-navitem--has-sub > .bz-subnav {
  padding-inline: max(var(--container-pad), calc((100vw - var(--container)) / 2 + var(--container-pad)));
  padding-block: 36px 40px;
  gap: 48px;
}

/* The legal strip and the "Built by BuzzNerd" line that close the footer. */
[data-bz-node="footer-legal"] { background: var(--chrome); padding-block: 0 48px; }
[data-bz-node="footer-legal-row"] { border-top: 1px solid var(--chrome-line); padding-top: 24px; }
[data-bz-node="footer-copy"] p { font-size: 12px; line-height: 1.6; color: var(--chrome-label); margin: 0; }
[data-bz-node="footer-legal-nav"] .bz-nav { gap: 20px; }
[data-bz-node="footer-legal-nav"] .bz-navitem,
[data-bz-node="footer-legal-nav"] .bz-navitem > a { font-size: 12px; line-height: 1.6; font-weight: 400; color: var(--chrome-label); padding: 0; }
[data-bz-node="footer-built-row"] { margin-top: 36px; }
[data-bz-node="footer-built"] .bz-block { padding-block: 0; }
[data-bz-node="footer-built"] { display: flex; align-items: center; justify-content: center; gap: 8px; }
[data-bz-node="footer-built"] .bz-block { padding-block: 0; width: auto; }
[data-bz-node="footer-built-t"] p { color: #8A8A8A; font-size: 12px; margin: 0; }
[data-bz-node="footer-built-logo"] .bz-figure { margin: 0; }
[data-bz-node="footer-built-logo"] img { height: 16px; width: auto; }
[data-bz-node="footer-legal-row"] { align-items: center; }

/* The header is a flex row at every width: logo left, the nav pushed right and
   the phone button after it, which is how the handoff lays it out. */
[data-bz-node="header-row"] { display: flex; align-items: center; gap: 40px; }
[data-bz-node="header-brand"] { flex: 0 0 auto; }
[data-bz-node="header-nav"] { flex: 1 1 auto; min-width: 0; }
[data-bz-node="header-cta"] { flex: 0 0 auto; margin-left: -28px; }
[data-bz-node="utility-row"] { display: flex; align-items: center; gap: 22px; }
[data-bz-node="utility-social"] { flex: 0 0 auto; margin-right: auto; }
[data-bz-node="utility-links"] { flex: 0 0 auto; }
/* The bars own their height; the links inside them add none. */
[data-bz-node="utility-bar"] .bz-navitem > a,
[data-bz-node="site-header"] .bz-navitem > a { padding-block: 0; }
[data-bz-node="utility-bar"] .bz-nav { gap: 22px; }
[data-bz-node="site-header"] .bz-nav { gap: 4px; }
[data-bz-node="site-header"] .bz-menu--mega .bz-nav > .bz-navitem > a { padding: 8px 10px; }

/* Fine geometry, measured against the handoff: the utility bar is 39px tall,
   the header 109, the nav right-aligned against the phone button. */
[data-bz-node="utility-bar"] .bz-navitem,
[data-bz-node="utility-bar"] .bz-navitem > a { font-size: 12px; font-weight: 600; line-height: 1.6; }
[data-bz-node="header-brand"] .bz-brand { display: flex; line-height: 0; }
[data-bz-node="main-nav"] .bz-menu { flex: 1 1 auto; }
[data-bz-node="header-row"] { gap: 12px; }
[data-bz-node="header-brand"] { margin-right: 28px; }
[data-bz-node="header-cta"] { margin-left: 0; }

/* The header's phone button: the handoff's is 44px tall and set in the body
   face, which is 12px narrower than the display face at the same size. */
[data-bz-node="header-cta"] .bz-btn {
  min-height: 44px;
  padding: 0 18px;
  gap: 8px;
  font: 700 14px/22px var(--font-body);
}
