.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. */

/* 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); }
[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;
}
