/* Public components + block layout. Styled entirely through the token custom
   properties compileTokens() emits: no hardcoded brand color, no off-scale
   spacing. Editing a token restyles every block at once, which is the whole
   point of the design system screen.

   Authored once, shipped to every dealer. Page CSS may add to it; nothing here
   is per-dealer. */

/* ------------------------------------------------------------------ layout */

.bz-container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--container-pad, var(--space-4));
  box-sizing: border-box;
}
@media (max-width: 1100px) {
  .bz-container { padding-inline: var(--container-pad-tablet, var(--container-pad, var(--space-4))); }
}
@media (max-width: 640px) {
  .bz-container { padding-inline: var(--container-pad-mobile, var(--container-pad, var(--space-4))); }
}

.bz-container--wide { max-width: min(1600px, 96vw); }

/* --------------------------------------------------------- layout nodes ---
   Section, row and column are the structure the editor manipulates directly.
   Everything here is driven by custom properties the renderer sets per node, so
   the same stylesheet serves every arrangement without a class per variant. */

.bz-section {
  padding-block: var(--bz-pad, var(--space-7));
  position: relative;
}
.bz-section--bg-paper { background: var(--paper); }
.bz-section--bg-card { background: var(--card); }
.bz-section--bg-ink { background: var(--ink); color: #fff; }
.bz-section--bg-accent { background: var(--accent); color: var(--ink-dark); }
.bz-section--bg-ink :is(h1, h2, h3, h4, h5, h6) { color: #fff; }
.bz-section--h-half { min-height: 50vh; display: flex; flex-direction: column; }
.bz-section--h-full { min-height: 100vh; display: flex; flex-direction: column; }
.bz-section--v-center { justify-content: center; }
.bz-section--v-end { justify-content: flex-end; }
.bz-section--h-half > *, .bz-section--h-full > * { width: 100%; }

/* A twelve-column grid. `--bz-span` on each column is the only thing that
   changes between a half/half and a two-thirds/third row, which is what lets a
   column be resized by dragging without touching its markup. */
.bz-row {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--bz-gap, var(--space-6));
  align-items: stretch;
}
.bz-row--v-start { align-items: start; }
.bz-row--v-center { align-items: center; }
.bz-row--v-end { align-items: end; }

.bz-col {
  grid-column: span var(--bz-span, 12) / span var(--bz-span, 12);
  min-width: 0;
  padding: var(--bz-col-pad, 0);
  box-sizing: border-box;
}
.bz-col--v-start { align-self: start; }
.bz-col--v-center { align-self: center; }
.bz-col--v-end { align-self: end; }
.bz-col--bg-paper { background: var(--paper); }
.bz-col--bg-card { background: var(--card); }
.bz-col--bg-ink { background: var(--ink); color: #fff; }
.bz-col--bg-accent { background: var(--accent); color: var(--ink-dark); }

/* Columns stack rather than shrink. Which width they stack at is a per-row
   choice, because a two-column hero and a four-column feature grid do not want
   the same answer. */
@media (max-width: 640px) {
  .bz-row--stack-tablet > .bz-col,
  .bz-row--stack-mobile > .bz-col { grid-column: 1 / -1; }
  .bz-row--stack-tablet.bz-row--rev,
  .bz-row--stack-mobile.bz-row--rev { display: flex; flex-direction: column-reverse; }
}
@media (min-width: 641px) and (max-width: 1100px) {
  .bz-row--stack-tablet > .bz-col { grid-column: 1 / -1; }
  .bz-row--stack-tablet.bz-row--rev { display: flex; flex-direction: column-reverse; }
}

/* The content area. Only ever visible in the editor — the published page has the
   page's own nodes here instead. */
.bz-contentarea {
  min-height: 160px;
  border: 2px dashed var(--accent);
  border-radius: var(--radius-card);
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--accent) 6%, transparent);
}
.bz-contentarea__label {
  font: 700 var(--text-small) / 1 var(--font-body);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-dark);
}

/* A shared section carries no styling of its own — it expands to real nodes and
   must look identical to the same tree placed directly, or "reuse this" would
   change the design. Only the two editor states below draw anything. */
[data-bz-opaque] { position: relative; }
[data-bz-opaque]::after {
  content: '';
  position: absolute;
  inset: 0;
  outline: 1px dashed color-mix(in srgb, var(--accent) 50%, transparent);
  outline-offset: -1px;
  pointer-events: none;
}
.bz-sharedsection--missing {
  min-height: 120px;
  border: 2px dashed var(--warn, #b45309);
  border-radius: var(--radius-card);
  display: grid;
  place-items: center;
}
.bz-sharedsection__label {
  font: 700 var(--text-small) / 1 var(--font-body);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--warn, #b45309);
}

/* Widgets sit closer together than sections do; a heading followed by a
   paragraph should not read as two separate bands. */
.bz-block { padding-block: var(--space-4); }
.bz-block--spacer, .bz-block--divider { padding-block: 0; }
.bz-block + .bz-block { padding-block-start: 0; }

/* A widget inside a section or a column is already inside a container — it must
   not open a second one, or the copy indents once per nesting level. */
.bz-col .bz-container,
.bz-section .bz-container { max-width: none; padding-inline: 0; }
.bz-section > .bz-container { max-width: var(--container); padding-inline: var(--space-4); }
.bz-section > .bz-container.bz-container--wide { max-width: min(1600px, 96vw); }

/* Half-bleed: one side stays on the page grid, the other runs to the screen
   edge — the split-section pattern (copy on the grid, photo bleeding). The
   grid-side padding is the distance from the screen edge to where the boxed
   container would start, so text lines up with every boxed section above it. */
.bz-section > .bz-container.bz-container--bleed-left,
.bz-section > .bz-container.bz-container--bleed-right { max-width: none; }
.bz-section > .bz-container.bz-container--bleed-left {
  padding-left: 0;
  padding-right: max(var(--container-pad, var(--space-4)), calc((100% - var(--container)) / 2 + var(--container-pad, var(--space-4))));
}
.bz-section > .bz-container.bz-container--bleed-right {
  padding-right: 0;
  padding-left: max(var(--container-pad, var(--space-4)), calc((100% - var(--container)) / 2 + var(--container-pad, var(--space-4))));
}
@media (max-width: 1100px) {
  /* Below the grid width the bleed reads as clutter; behave like boxed. */
  .bz-section > .bz-container.bz-container--bleed-left,
  .bz-section > .bz-container.bz-container--bleed-right {
    padding-inline: var(--container-pad-tablet, var(--container-pad, var(--space-4)));
  }
}

/* Latest posts: category-grid cards plus a description line. */
.bz-post { text-align: left; }
.bz-post__d {
  display: block;
  margin-top: 4px;
  font: 400 var(--text-small) / 1.5 var(--font-body);
  color: var(--muted);
}

.bz-block--hero, .bz-block--statBand, .bz-block--serviceGrid, .bz-block--footer {
  padding-block: var(--space-8);
  background: var(--ink);
  color: #fff;
}
.bz-block--splitHero { background: var(--card); }

.bz-center { text-align: center; }
.bz-center .bz-btns { justify-content: center; }
.bz-prose { max-width: 68ch; }
.bz-bare { list-style: none; margin: 0; padding: 0; }
.bz-sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
}
.bz-hr { border: 0; border-top: 1px solid var(--line); margin: 0; }

.bz-grid { display: grid; gap: var(--space-5); }

@media (min-width: 641px) {
  .bz-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .bz-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .bz-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1101px) {
  .bz-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .bz-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* ------------------------------------------------------------ typography */

.bz-block h1 { font: 800 var(--text-h1) / 1.08 var(--font-heading); letter-spacing: -0.01em; margin: 0 0 var(--space-4); }
.bz-block h2 { font: 800 var(--text-h2) / 1.15 var(--font-heading); letter-spacing: -0.01em; margin: 0 0 var(--space-4); }
.bz-block h3 { font: 700 var(--text-h3) / 1.25 var(--font-heading); margin: 0 0 var(--space-3); }
.bz-block h4, .bz-block h5, .bz-block h6 { font: 700 var(--text-body) / 1.3 var(--font-heading); margin: 0 0 var(--space-2); }
.bz-block p { margin: 0 0 var(--space-4); font-size: var(--text-body); line-height: 1.6; }
.bz-block p:last-child { margin-bottom: 0; }

.bz-eyebrow {
  font: 700 var(--text-eyebrow) / 1.4 var(--font-heading);
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--accent); margin: 0 0 var(--space-3);
}
.bz-lede { font-size: var(--text-body); line-height: 1.6; color: var(--muted); max-width: 58ch; }
.bz-lede--on-dark { color: rgba(255, 255, 255, 0.78); }
.bz-badge {
  display: inline-block; font: 700 var(--text-small) / 1 var(--font-heading);
  background: var(--paper); color: var(--ink);
  border-radius: var(--radius-chip); padding: var(--space-2) var(--space-4);
  margin: 0 0 var(--space-4);
}
.bz-stars { color: var(--accent); letter-spacing: 2px; margin: 0 0 var(--space-2); }
.bz-sechead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-4); }

/* --------------------------------------------------------------- buttons */

.bz-btns { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-block: var(--space-5); }
.bz-btn {
  display: inline-flex; align-items: center; justify-content: center;
  font: 700 var(--text-small) / 1 var(--font-heading);
  padding: var(--space-3) var(--space-5); border-radius: var(--radius-input);
  text-decoration: none; border: 1.5px solid transparent; cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.bz-btn--primary { background: var(--accent); color: var(--ink-dark); }
.bz-btn--primary:hover { background: var(--accent-dark); }
.bz-btn--secondary { background: var(--card); color: var(--ink); border-color: var(--line); }
.bz-btn--secondary:hover { border-color: var(--muted); }
.bz-btn--link { background: none; color: var(--accent); padding-inline: 0; text-decoration: underline; }
.bz-btn--on-dark.bz-btn--secondary { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.6); }
.bz-btn--on-dark.bz-btn--link { color: var(--accent); }

/* Focus is always visible — a keyboard user must be able to see where they are. */
.bz-block a:focus-visible,
.bz-block button:focus-visible,
.bz-block summary:focus-visible,
.bz-input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ----------------------------------------------------------------- media */

.bz-block img { max-width: 100%; height: auto; display: block; }
.bz-figure { margin: 0; }
.bz-figure img { border-radius: var(--radius-card); }
.bz-figure figcaption { font-size: var(--text-small); color: var(--muted); margin-top: var(--space-2); }
.bz-photo {
  border: 1px dashed var(--line); border-radius: var(--radius-card);
  background: var(--paper); color: var(--muted);
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 4 / 3; font-size: var(--text-small);
}

/* Both kinds reserve 16/9 before anything loads, so the page does not jump when
   a file's metadata arrives or an embed's iframe paints. */
.bz-video { position: relative; aspect-ratio: 16 / 9; background: var(--ink); border-radius: var(--radius-card); overflow: hidden; }
.bz-video > video,
.bz-video > iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.bz-video > video { object-fit: cover; }

/* Background video. The poster is painted on the section itself, so the band
   reads identically before the file loads, under reduced motion, and on the
   editing canvas — which never plays media. */
.bz-section--bgvideo {
  position: relative; overflow: hidden;
  background-image: var(--bz-bgvideo-poster, none);
  background-size: cover; background-position: center;
}
.bz-section__bgvideo {
  position: absolute; inset: 0; z-index: 0;
  width: 100%; height: 100%; object-fit: cover;
  pointer-events: none;
}
.bz-section--bgvideo > .bz-container,
.bz-section--bgvideo > .bz-block { position: relative; z-index: 1; }

@media (prefers-reduced-motion: reduce) {
  .bz-section__bgvideo { display: none; }
}

/* ------------------------------------------------------------------ hero */

.bz-block--hero { position: relative; overflow: hidden; }
.bz-hero__bg { position: absolute; inset: 0; z-index: 0; }
.bz-hero__img { width: 100%; height: 100%; object-fit: cover; opacity: 0.35; }
.bz-block--hero .bz-container { position: relative; z-index: 1; }
.bz-hero__copy { max-width: 46rem; }
.bz-hero__sub { font-size: var(--text-body); line-height: 1.6; color: rgba(255, 255, 255, 0.82); max-width: 34rem; }
.bz-herosearch {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3);
  background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius-card); padding: var(--space-4); margin-top: var(--space-5);
}
.bz-herosearch__l { font: 700 var(--text-eyebrow) / 1 var(--font-heading); letter-spacing: 0.06em; text-transform: uppercase; }
.bz-herosearch .bz-input { flex: 1 1 12rem; }

.bz-split { display: grid; gap: var(--space-6); align-items: center; }
@media (min-width: 641px) { .bz-split { grid-template-columns: 1fr 1fr; } }

/* ----------------------------------------------------------------- stats */

.bz-stats { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); margin: 0; }
.bz-stats--inline { border-top: 1px solid var(--line); padding-top: var(--space-4); }
.bz-block--statBand .bz-stat { border-left: 1px solid rgba(255, 255, 255, 0.2); padding-left: var(--space-4); }
.bz-stat__v { font: 800 var(--text-h3) / 1 var(--font-heading); color: var(--accent); }
.bz-block--splitHero .bz-stat__v { color: var(--ink); }
.bz-stat__l { font-size: var(--text-small); color: var(--muted); margin: var(--space-1) 0 0; }
.bz-block--statBand .bz-stat__l { color: rgba(255, 255, 255, 0.7); }
.bz-band { display: grid; gap: var(--space-6); align-items: center; }
@media (min-width: 641px) { .bz-band { grid-template-columns: 1.3fr 1fr; } }
.bz-band__b { color: rgba(255, 255, 255, 0.78); max-width: 34rem; }

/* --------------------------------------------------------------- content */

.bz-quick { display: block; border-top: 3px solid var(--ink); padding-top: var(--space-4); text-decoration: none; color: inherit; }
.bz-quick__t { font: 700 var(--text-body) / 1.3 var(--font-heading); margin: 0 0 var(--space-2); }
.bz-quick__d { font-size: var(--text-small); color: var(--muted); line-height: 1.5; margin: 0; }
a.bz-quick:hover .bz-quick__t { color: var(--accent-dark); }

.bz-card {
  display: block; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius-card); overflow: hidden; text-decoration: none; color: inherit;
}
.bz-card img, .bz-card .bz-photo { border-radius: 0; width: 100%; }
.bz-card__body { padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-1); }
.bz-card__t { font: 700 var(--text-small) / 1.3 var(--font-heading); color: var(--ink); }
.bz-card__m { font-size: var(--text-small); color: var(--muted); }
.bz-card__facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-1); margin: var(--space-2) 0 0; }
.bz-card__facts dt { font-size: 0.68rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
.bz-card__facts dd { margin: 0.1rem 0 0; font-size: 0.82rem; font-weight: 700; color: var(--ink); }
a.bz-card:hover { border-color: var(--muted); }
.bz-searchbar__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.bz-chip {
  display: inline-flex; align-items: center; min-height: 36px;
  padding: 0.3rem 0.85rem; border-radius: 999px;
  border: 1px solid var(--line); background: var(--card); color: var(--ink);
  text-decoration: none; font: 600 var(--text-small) / 1 var(--font-heading);
}
.bz-chip:hover { border-color: var(--muted); }

.bz-feature__t { font: 700 var(--text-body) / 1.3 var(--font-heading); margin: 0 0 var(--space-2); }
.bz-feature__d { font-size: var(--text-small); color: var(--muted); line-height: 1.5; margin: 0; }

.bz-service { background: rgba(255, 255, 255, 0.06); border-radius: var(--radius-card); padding: var(--space-5); }
.bz-service__t { color: #fff; margin: 0 0 var(--space-2); }
.bz-service__d { font-size: var(--text-small); color: rgba(255, 255, 255, 0.75); line-height: 1.5; }

.bz-quote { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-card); padding: var(--space-5); margin: 0; }
.bz-quote blockquote { margin: 0 0 var(--space-3); font-size: var(--text-small); line-height: 1.55; color: var(--ink); }
.bz-quote figcaption { display: flex; flex-direction: column; gap: 2px; }
.bz-quote__n { font: 700 var(--text-small) / 1.2 var(--font-heading); color: var(--ink); }
.bz-quote__r { font-size: var(--text-small); color: var(--muted); }

.bz-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-5); border-block: 1px solid var(--line); padding-block: var(--space-4); }
.bz-logo { display: inline-flex; align-items: center; text-decoration: none; }
.bz-logo__t { font: 700 var(--text-small) / 1 var(--font-heading); letter-spacing: 0.03em; color: var(--muted); }

.bz-loclist { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: var(--space-4); }
.bz-loc { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-card); padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); }
.bz-loc__c { font: 700 var(--text-small) / 1.2 var(--font-heading); color: var(--ink); text-decoration: none; }
a.bz-loc__c:hover { color: var(--accent); }
.bz-loc__a { font-size: var(--text-small); color: var(--muted); font-style: normal; }
.bz-loc__p, .bz-person__p { font-size: var(--text-small); color: var(--accent-dark); }
.bz-loc__s { font-size: var(--text-small); color: var(--muted); }

.bz-footerblock { display: grid; gap: var(--space-6); }
@media (min-width: 641px) { .bz-footerblock { grid-template-columns: 1.4fr repeat(auto-fit, minmax(8rem, 1fr)); } }
.bz-fbrand__n { font: 800 var(--text-h3) / 1.2 var(--font-heading); color: #fff; margin: 0 0 var(--space-2); }
.bz-fbrand__t { font-size: var(--text-small); color: rgba(255, 255, 255, 0.7); }
.bz-fcol__h { font: 700 var(--text-eyebrow) / 1 var(--font-heading); letter-spacing: 0.04em; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); margin: 0 0 var(--space-3); }
.bz-fcol a { font-size: var(--text-small); color: rgba(255, 255, 255, 0.85); text-decoration: none; display: inline-block; padding-block: var(--space-1); }
.bz-fcol a:hover { color: #fff; text-decoration: underline; }
.bz-flegal { font-size: var(--text-small); color: rgba(255, 255, 255, 0.55); margin-top: var(--space-5); }

/* ----------------------------------------------------------------- forms */

.bz-input {
  width: 100%; box-sizing: border-box;
  font: 400 var(--text-body) / 1.4 var(--font-body);
  color: var(--ink); background: var(--card);
  border: 1px solid var(--line); border-radius: var(--radius-input);
  padding: var(--space-3) var(--space-4); min-height: 44px;
}
.bz-input::placeholder { color: var(--muted); }
.bz-form { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-card); padding: var(--space-5); display: flex; flex-wrap: wrap; gap: var(--space-4); max-width: 34rem; }
.bz-form > * { flex: 1 1 100%; min-width: 0; }
.bz-form__t { font: 700 var(--text-h3) / 1.2 var(--font-heading); margin: 0; }
.bz-field { display: flex; flex-direction: column; gap: var(--space-2); }
.bz-field[hidden] { display: none; }
/* Two adjacent halves make a pair. One on its own still fills the row, so
   deleting the field beside it cannot leave a gap nobody notices. */
.bz-field--half { flex: 1 1 calc(50% - (var(--space-4) / 2)); min-width: 11rem; }
.bz-field--hp { position: absolute; left: -9999px; }
.bz-label { font: 700 var(--text-small) / 1.2 var(--font-heading); color: var(--ink); }
.bz-req { color: var(--bad); }
.bz-help { font-size: var(--text-small); color: var(--muted); margin: 0; }
.bz-choices { display: flex; flex-direction: column; gap: var(--space-2); }
.bz-choice { display: flex; align-items: flex-start; gap: var(--space-2); font-size: var(--text-small); line-height: 1.4; }
.bz-choice input { margin-top: 3px; width: 18px; height: 18px; }
.bz-form__status { font-size: var(--text-small); margin: 0; }
.bz-form__status[data-state='error'] { color: var(--bad); }
.bz-form__status[data-state='ok'] { color: var(--ok); }
.bz-form[data-state='sent'] > *:not(.bz-form__status):not(.bz-form__t) { display: none; }

/* --------------------------------------------------------------- widgets */

.bz-widget { display: block; }
.bz-widget__h { font: 700 var(--text-h3) / 1.25 var(--font-heading); margin: 0 0 var(--space-4); }
.bz-widget__empty { font-size: var(--text-small); color: var(--muted); }
.bz-widget--behaviour { display: none; }
.bz-map { aspect-ratio: 16 / 9; border-radius: var(--radius-card); background: var(--paper); border: 1px solid var(--line); margin-bottom: var(--space-4); overflow: hidden; position: relative; }
/* The `static` provider: OSM tiles as images, so there is no iframe for a sandboxed
   Preview to refuse. The grid is deliberately larger than the box and centred, so the
   point of interest sits in the middle whatever the container's shape. */
.bz-map__g { display: grid; grid-template-columns: repeat(var(--bz-map-cols, 4), 1fr); position: absolute; inset: 0; margin: auto; width: 100%; height: 100%; }
.bz-map__t { display: block; width: 100%; height: 100%; object-fit: cover; }
.bz-map__a { position: absolute; right: 4px; bottom: 4px; font-size: 10px; line-height: 1.4; padding: 1px 5px; border-radius: 3px; background: rgb(255 255 255 / .8); color: #333; text-decoration: none; }

/* The dealer's own map art with a pin per rooftop. No aspect-ratio of its own: the
   artwork sets it, because the pins are placed at percentages of this box and a box
   that is not the artwork's shape puts every one of them somewhere else. */
.bz-pinmap { position: relative; }
.bz-pinmap__art { display: block; width: 100%; height: auto; }
/* No artwork yet. A zero-height box cannot be selected on the canvas, so the
   dealer never reaches the upload that would fill it. */
.bz-pinmap__empty {
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  text-align: center;
  background: var(--paper);
  border: 1px dashed var(--line);
  color: var(--muted);
  font-size: var(--text-small);
}
.bz-pins { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; }
/* Positioned by the widget's inline left/top, then pulled back by half its own size
   so the dot's centre lands on the coordinate rather than its top-left corner. */
.bz-pin { position: absolute; transform: translate(-50%, -50%); }
.bz-pin__a { display: flex; flex-direction: column; align-items: center; gap: var(--space-1); text-decoration: none; color: inherit; }
.bz-pin__dot { display: block; width: var(--bz-pin-size, 14px); height: var(--bz-pin-size, 14px); border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--card); }
.bz-pin__l { font-size: var(--text-small); white-space: nowrap; }
/* Dimmed, never removed — see `data-bz-reveal` in client/widgets.js. A map that drops
   a pin when a chip is pressed has lost the comparison the map is there to make. */
.bz-pin[data-bz-match='0'] { opacity: .28; }
.bz-pin[data-bz-match='1'] { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .bz-pin { transition: opacity 200ms ease; }
}

/* A rooftop with no photograph yet. Holds the design's shape and says nothing:
   published copy explaining that an image is missing is worse than the gap. */
.bz-locphoto__empty { aspect-ratio: 4 / 3; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-card); }
.bz-widget--location-photo img { display: block; width: 100%; height: auto; border-radius: var(--radius-card); }
.bz-people { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: var(--space-5); }
.bz-person { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); text-align: center; }
.bz-person img, .bz-person .bz-photo { width: 96px; height: 96px; border-radius: var(--radius-chip); object-fit: cover; aspect-ratio: 1; }
.bz-person__n { font: 700 var(--text-small) / 1.2 var(--font-heading); }
.bz-person__t { font-size: var(--text-small); color: var(--muted); }
.bz-phones { display: flex; flex-direction: column; gap: var(--space-2); }
.bz-phone { display: flex; justify-content: space-between; gap: var(--space-4); border-bottom: 1px solid var(--line); padding-block: var(--space-2); font-size: var(--text-small); }
.bz-phone__l { color: var(--muted); }
.bz-widget--hours { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: var(--space-6); }
.bz-hours { width: 100%; border-collapse: collapse; font-size: var(--text-small); }
.bz-hours caption { text-align: left; font: 700 var(--text-body) / 1.3 var(--font-heading); margin-bottom: var(--space-3); }
.bz-hours th, .bz-hours td { text-align: left; padding: var(--space-2) 0; border-bottom: 1px solid var(--line); }
.bz-hours td { color: var(--muted); }
.bz-faqs { display: flex; flex-direction: column; gap: var(--space-2); }
.bz-faq { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-card); padding: var(--space-3) var(--space-4); }
.bz-faq summary { font: 700 var(--text-small) / 1.4 var(--font-heading); cursor: pointer; }
.bz-faq__a { font-size: var(--text-small); color: var(--muted); line-height: 1.55; margin-top: var(--space-2); }
.bz-searchbar { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.bz-searchbar .bz-input { flex: 1 1 12rem; }

/* ------------------------------------------------------------------- nav */

.bz-nav { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-4); margin: 0; padding: 0; }
.bz-navitem { position: relative; }
.bz-navitem > a { text-decoration: none; color: inherit; font: 600 var(--text-small) / 1 var(--font-heading); }
.bz-subnav { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }

/* --------------------------------------------------------------- motion */

@media (prefers-reduced-motion: reduce) {
  .bz-btn, .bz-card, .bz-quick { transition: none; }
}

/* ------------------------------------------------------------------ chrome */
/* Header and footer are templates built from these, edited in the same canvas a
   page is. Nothing here is per-dealer: the look comes from the tokens. */

.bz-bar { background: var(--card); color: var(--ink); }
.bz-bar--paper { background: var(--paper); }
.bz-bar--transparent { background: transparent; }
.bz-bar--ink { background: var(--ink); color: #fff; }
.bz-bar--divider { border-bottom: 1px solid var(--line); }
.bz-bar--ink.bz-bar--divider { border-bottom-color: rgba(255, 255, 255, 0.15); }
.bz-bar--sticky { position: sticky; top: 0; z-index: 20; }

.bz-bar__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-4);
}
.bz-bar--compact .bz-bar__inner { padding-block: var(--space-2); }
.bz-bar__cell { display: flex; align-items: center; gap: var(--space-4); min-width: 0; }
.bz-bar__cell:nth-child(2) { flex: 1 1 auto; }
.bz-bar__cell:last-child { justify-content: flex-end; }
.bz-bar__cell .bz-btns { margin-block: 0; }
.bz-bar__cell .bz-block { padding-block: 0; }
.bz-bar__cell .bz-container { max-width: none; padding-inline: 0; }
.bz-bar--ink .bz-block p { color: rgba(255, 255, 255, 0.75); font-size: var(--text-small); }

/* A footer stacks on a phone; a header does not, because the menu collapses. */
@media (max-width: 640px) {
  .bz-bar--ink .bz-bar__inner { flex-direction: column; align-items: flex-start; }
  .bz-bar--ink .bz-bar__cell { width: 100%; justify-content: flex-start; }
}

.bz-brand { display: inline-flex; align-items: center; gap: var(--space-2); text-decoration: none; color: inherit; }
.bz-logo__img { height: var(--bz-logo-h, 34px); width: auto; }
.bz-logo__word { font: 800 var(--text-h3) / 1 var(--font-heading); letter-spacing: -0.01em; }

.bz-menu { display: flex; min-width: 0; }
.bz-menu--center { justify-content: center; }
.bz-menu--end { justify-content: flex-end; }
.bz-menu--horizontal .bz-nav { flex-direction: row; align-items: center; }
.bz-menu--vertical .bz-nav { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
.bz-nav { display: flex; flex-wrap: wrap; gap: var(--space-5); }
.bz-navitem > a,
.bz-navlabel {
  display: inline-block;
  padding-block: var(--space-1);
  font: 600 var(--text-small) / 1.2 var(--font-heading);
  color: inherit;
  text-decoration: none;
}
.bz-bar--ink .bz-navitem > a { color: rgba(255, 255, 255, 0.85); }
.bz-navitem > a:hover { color: var(--accent-dark); }
.bz-bar--ink .bz-navitem > a:hover { color: #fff; }
.bz-navlabel { color: var(--muted); font-weight: 700; }
.bz-navitem > a[aria-current='page'] { color: var(--accent-dark); }

/* One level of dropdown, opened on hover and on focus so it is reachable from a
   keyboard. The chrome script adds a click fallback on touch. */
.bz-navitem--has-sub { position: relative; }
.bz-subnav {
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 30;
  display: none;
  min-width: 12rem;
  flex-direction: column;
  gap: var(--space-1);
  margin: 0;
  padding: var(--space-3);
  list-style: none;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-md);
}
.bz-navitem--has-sub:hover > .bz-subnav,
.bz-navitem--has-sub:focus-within > .bz-subnav,
.bz-navitem--has-sub[data-open] > .bz-subnav { display: flex; }
.bz-subnav .bz-navitem > a { color: var(--ink); }
.bz-menu--vertical .bz-subnav { position: static; display: flex; border: 0; padding: var(--space-2) 0 0 var(--space-3); background: none; box-shadow: none; }

/* Mega nav: the same menu data, drawn as a full-width panel.
   A three-level menu is already the right shape for this — item > column
   heading > links — so nothing about the model changes; only where the panel
   sits and how its children flow. Level two becomes the columns, level three
   the links under each, and a `label` item is a column heading that is
   deliberately not a link. Centred on the trigger with a viewport-wide panel,
   which needs no JS and no wrapper: the only requirement is that no ancestor
   clips overflow. */
.bz-menu--mega .bz-nav > .bz-navitem--has-sub > .bz-subnav {
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  max-width: 100vw;
  flex-direction: row;
  align-items: flex-start;
  justify-content: center;
  gap: var(--space-8);
  padding: var(--space-7) var(--space-5);
  border-radius: 0;
  border-left: 0;
  border-right: 0;
}
/* Each column: a heading plus its links, stacked and static inside the panel. */
.bz-menu--mega .bz-nav > .bz-navitem--has-sub > .bz-subnav > .bz-navitem {
  min-width: 9rem;
}
.bz-menu--mega .bz-subnav .bz-subnav {
  position: static;
  display: flex;
  flex-direction: column;
  width: auto;
  min-width: 0;
  transform: none;
  gap: var(--space-2);
  margin-top: var(--space-3);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.bz-menu--mega .bz-subnav > .bz-navitem > .bz-navlabel {
  display: block;
  font: 700 var(--text-eyebrow) / 1 var(--font-body);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}
/* Below the grid width a full-viewport panel is unusable; it becomes the
   ordinary stacked disclosure the collapse behaviour already handles. */
@media (max-width: 1100px) {
  .bz-menu--mega .bz-nav > .bz-navitem--has-sub > .bz-subnav {
    position: static;
    width: auto;
    max-width: none;
    transform: none;
    flex-direction: column;
    gap: var(--space-4);
    padding: var(--space-3);
  }
}

.bz-menu-wrap { display: flex; align-items: center; gap: var(--space-3); min-width: 0; flex: 1 1 auto; }
.bz-menu-toggle {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: var(--space-2);
  background: none;
  border: 1px solid var(--line);
  border-radius: var(--radius-input);
  cursor: pointer;
}
.bz-menu-toggle span { display: block; width: 18px; height: 2px; background: currentColor; }

/* -------------------------------------------------------------- behaviours */
/* The presentation half of the behaviour contract in renderer/client/widgets.js.
   Selectors key off data attributes, never class names, so a dealer or the AI
   can restyle a carousel to look like anything without breaking how it works.

   Note which attributes appear here: `data-bz-carousel`, `data-bz-dropdown` and
   `data-bz-drawer` are set by the script, not by the markup. So a panel is only
   ever hidden once something is there to open it — with JavaScript off, a mega
   menu renders as a plain expanded list of links, which is unstyled but
   navigable and crawlable. Hiding it unconditionally would strand it. */

[data-bz-carousel] { position: relative; }
[data-bz-track] {
  display: flex;
  gap: var(--bz-slide-gap, var(--space-5));
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  padding-bottom: var(--space-2);
}
[data-bz-track]::-webkit-scrollbar { height: 6px; }
[data-bz-track]::-webkit-scrollbar-thumb { background: var(--line); border-radius: var(--radius-chip); }
[data-bz-track] > [data-bz-part='slide'] {
  flex: 0 0 var(--bz-slide, 320px);
  scroll-snap-align: start;
  min-width: 0;
}
[data-bz-carousel] [data-bz-part='prev'],
[data-bz-carousel] [data-bz-part='next'] {
  cursor: pointer;
}
[data-bz-carousel] [data-bz-part='prev']:disabled,
[data-bz-carousel] [data-bz-part='next']:disabled {
  opacity: 0.35;
  cursor: default;
}
[data-bz-part='dots'] { display: flex; gap: var(--space-2); align-items: center; }
.bz-dot {
  width: 8px; height: 8px; padding: 0;
  border: 0; border-radius: var(--radius-chip);
  background: var(--line); cursor: pointer;
}
.bz-dot[aria-current='true'] { background: var(--accent); width: 22px; }

/* Filtered-out items and inactive rotator slides. `hidden` is the mechanism in
   both cases, so one rule covers them and nothing needs a class toggled. */
[data-bz-part='item'][hidden],
[data-bz-part='slide'][hidden],
[data-bz-part='empty'][hidden] { display: none; }

[data-bz-part='control'] { cursor: pointer; }
[data-bz-part='control'][data-bz-active] { border-color: var(--accent); color: var(--accent-dark); }

[data-bz-dropdown] { position: relative; }
[data-bz-dropdown] [data-bz-part='panel'] { display: none; }
[data-bz-dropdown] [data-bz-part='panel'][data-open] { display: block; }

[data-bz-drawer] [data-bz-part='panel'] { display: none; }
[data-bz-drawer][data-open] [data-bz-part='panel'] { display: block; }

[data-bz-behavior~='scrollstate'] [data-bz-part='totop'] {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
[data-bz-behavior~='scrollstate'][data-bz-scrolled] [data-bz-part='totop'] {
  opacity: 1;
  pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
  [data-bz-track] { scroll-behavior: auto; }
  [data-bz-behavior~='scrollstate'] [data-bz-part='totop'] { transition: none; }
}

@media (max-width: 1100px) {
  .bz-menu-toggle { display: inline-flex; }
  .bz-menu-wrap > .bz-menu { display: none; }
  .bz-menu-wrap[data-open] > .bz-menu {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    padding: var(--space-4);
    background: var(--card);
    border-bottom: 1px solid var(--line);
  }
  .bz-menu-wrap[data-open] .bz-nav { flex-direction: column; align-items: flex-start; gap: var(--space-3); }
  .bz-bar__inner { position: relative; }
}

.bz-block--glance-table .ss-gl{border:1px solid var(--line);border-top:4px solid var(--accent);padding:30px 28px}
.bz-block--glance-table .ss-gl__t{font:700 11px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:20px}
.bz-block--glance-table .ss-gl__rows{display:flex;flex-direction:column}
.bz-block--glance-table .ss-gl__r{display:grid;grid-template-columns:190px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}
.bz-block--glance-table .ss-gl__l{font:700 10px/1.6 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bz-block--glance-table .ss-gl__v{font-size:15px;line-height:1.65;color:var(--ink)}
@media (max-width:640px){.bz-block--glance-table .ss-gl__r{grid-template-columns:1fr;gap:4px}}
@media (max-width:640px){.bz-block--glance-table .ss-gl__l{font-size:12px}}
.bz-block--card-lists .ss-cl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.bz-block--card-lists .ss-cl--compare{margin:8px 0 24px}
.bz-block--card-lists .ss-cl--group{margin-bottom:8px}
.bz-block--card-lists .ss-cl__card{border:1px solid var(--line)}
.bz-block--card-lists .ss-cl--compare .ss-cl__card{padding:24px}
.bz-block--card-lists .ss-cl--group .ss-cl__card{padding:22px 24px;margin-bottom:16px}
.bz-block--card-lists .ss-cl__t{font:800 19px/1.3 var(--font-heading);color:var(--ink);text-transform:none;margin:30px 0 12px}
.bz-block--card-lists .ss-cl--group .ss-cl__t{margin:0 0 12px}
.bz-block--card-lists .ss-cl__p{font-size:15px;line-height:1.8;color:var(--body-text);margin:0 0 12px}
.bz-block--card-lists .ss-cl__list{margin:0 0 20px;padding-left:20px}
.bz-block--card-lists .ss-cl__list li{font-size:16px;line-height:1.75;color:var(--body-text);margin-bottom:6px}
.bz-block--card-lists .ss-cl--interval{grid-template-columns:repeat(4,minmax(0,1fr));margin:8px 0 24px}
.bz-block--card-lists .ss-cl--interval .ss-cl__card{padding:22px}
.bz-block--card-lists .ss-cl--interval .ss-cl__t{font:700 11px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.bz-block--card-lists .ss-cl--interval .ss-cl__list{margin:0;padding-left:18px}
.bz-block--card-lists .ss-cl--feature{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}
.bz-block--card-lists .ss-cl--feature2{margin-bottom:20px}
.bz-block--card-lists .ss-cl--feature .ss-cl__card, .bz-block--card-lists .ss-cl--feature2 .ss-cl__card{padding:22px}
.bz-block--card-lists .ss-cl--feature .ss-cl__t, .bz-block--card-lists .ss-cl--feature2 .ss-cl__t{margin:0 0 12px}
.bz-block--card-lists .ss-cl--feature .ss-cl__p, .bz-block--card-lists .ss-cl--feature2 .ss-cl__p{margin:0}
.bz-block--card-lists .ss-cl__p a{color:var(--accent)}
.bz-block--card-lists .ss-cl--spec{margin-bottom:20px}
.bz-block--card-lists .ss-cl--spec .ss-cl__card{padding:22px}
.bz-block--card-lists .ss-cl--spec .ss-cl__t{margin:0 0 12px}
.bz-block--card-lists .ss-cl--spec .ss-cl__list{margin:0;padding-left:18px}
.bz-block--card-lists .ss-cl--spec .ss-cl__list li{font-size:15px}
.bz-block--card-lists .ss-cl--spec .ss-cl__list li:last-child{margin-bottom:0}
.bz-block--card-lists .ss-cl__list strong{color:var(--ink)}
.bz-block--card-lists .ss-cl--series, .bz-block--card-lists .ss-cl--numbered{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}
.bz-block--card-lists .ss-cl--series2{margin-bottom:20px}
.bz-block--card-lists .ss-cl--series .ss-cl__card, .bz-block--card-lists .ss-cl--series2 .ss-cl__card, .bz-block--card-lists .ss-cl--numbered .ss-cl__card{padding:20px}
.bz-block--card-lists .ss-cl--series .ss-cl__t, .bz-block--card-lists .ss-cl--series2 .ss-cl__t, .bz-block--card-lists .ss-cl--numbered .ss-cl__t{font:700 11px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}
.bz-block--card-lists .ss-cl--series .ss-cl__p, .bz-block--card-lists .ss-cl--series2 .ss-cl__p, .bz-block--card-lists .ss-cl--numbered .ss-cl__p{margin:0}
.bz-block--card-lists .ss-cl--numbered .ss-cl__p{font:800 17px/1.3 var(--font-heading);color:var(--ink);text-transform:none}
@media (max-width:1100px){.bz-block--card-lists .ss-cl--feature, .bz-block--card-lists .ss-cl--series, .bz-block--card-lists .ss-cl--numbered{grid-template-columns:repeat(2,minmax(0,1fr))}
.bz-block--card-lists .ss-cl{grid-template-columns:minmax(0,1fr)}
.bz-block--card-lists .ss-cl--interval{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bz-block--card-lists .ss-cl--interval, .bz-block--card-lists .ss-cl--feature, .bz-block--card-lists .ss-cl--series, .bz-block--card-lists .ss-cl--feature2, .bz-block--card-lists .ss-cl--series2, .bz-block--card-lists .ss-cl--numbered{grid-template-columns:minmax(0,1fr)}}
.bz-block--card-lists .ss-cl--type, .bz-block--card-lists .ss-cl--option{margin:0 0 20px}
.bz-block--card-lists .ss-cl--option{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.bz-block--card-lists .ss-cl--type .ss-cl__card, .bz-block--card-lists .ss-cl--option .ss-cl__card{padding:26px;margin:0}
.bz-block--card-lists .ss-cl--type .ss-cl__t{margin:0 0 12px}
.bz-block--card-lists .ss-cl--option .ss-cl__t{margin:0 0 10px}
.bz-block--card-lists .ss-cl--type .ss-cl__p, .bz-block--card-lists .ss-cl--option .ss-cl__p{font-size:15px;line-height:1.7;margin:0 0 14px}
.bz-block--card-lists .ss-cl--type .ss-cl__lead{font:700 14px/1.6 var(--font-body);color:var(--ink);margin:0 0 8px}
.bz-block--card-lists .ss-cl--option .ss-cl__lead{font:700 10px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}
.bz-block--card-lists .ss-cl--type .ss-cl__list{margin:0 0 16px;padding-left:18px}
.bz-block--card-lists .ss-cl--option .ss-cl__list{margin:0;padding-left:18px}
.bz-block--card-lists .ss-cl--type .ss-cl__list li{font-size:15px}
.bz-block--card-lists .ss-cl--option .ss-cl__list li{font-size:14px}
@media (max-width:1100px){.bz-block--card-lists .ss-cl--type{grid-template-columns:repeat(2,minmax(0,1fr))}
.bz-block--card-lists .ss-cl--option{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bz-block--card-lists .ss-cl--type, .bz-block--card-lists .ss-cl--option{grid-template-columns:minmax(0,1fr)}}
.bz-block--card-lists .ss-cl--type3{grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 20px}
.bz-block--card-lists .ss-cl--type3 .ss-cl__card{padding:24px}
.bz-block--card-lists .ss-cl--type3 .ss-cl__t{margin:0 0 10px}
.bz-block--card-lists .ss-cl--type3 .ss-cl__p{font-size:15px;line-height:1.65;margin:0}
.bz-block--card-lists .ss-cl--cost{grid-template-columns:minmax(0,1fr);gap:8px;margin:0 0 20px}
.bz-block--card-lists .ss-cl--cost .ss-cl__card{padding:24px}
.bz-block--card-lists .ss-cl--cost .ss-cl__t{margin:0 0 10px}
.bz-block--card-lists .ss-cl--cost .ss-cl__p{font-size:15px;line-height:1.8;margin:0 0 10px}
.bz-block--card-lists .ss-cl--cost .ss-cl__list{margin:0;padding-left:18px}
.bz-block--card-lists .ss-cl--cost .ss-cl__list li{font-size:15px}
.bz-block--card-lists .ss-cl__o{font-size:14px;line-height:1.8;color:var(--body-text);margin:10px 0 0}
.bz-block--card-lists .ss-cl--num, .bz-block--card-lists .ss-cl--num-wide{margin:0 0 20px}
.bz-block--card-lists .ss-cl--num-wide{grid-template-columns:minmax(0,1fr)}
.bz-block--card-lists .ss-cl--num .ss-cl__card, .bz-block--card-lists .ss-cl--num-wide .ss-cl__card{padding:24px}
.bz-block--card-lists .ss-cl__n{display:block;font:800 22px/1 var(--font-heading);color:var(--accent);margin-bottom:10px}
.bz-block--card-lists .ss-cl--num .ss-cl__t, .bz-block--card-lists .ss-cl--num-wide .ss-cl__t{margin:0 0 10px}
.bz-block--card-lists .ss-cl--num .ss-cl__p, .bz-block--card-lists .ss-cl--num-wide .ss-cl__p{font-size:14px;line-height:1.8;margin:0}
.bz-block--card-lists .ss-cl--num-wide .ss-cl__p{margin:0 0 8px}
.bz-block--card-lists .ss-cl--num .ss-cl__list, .bz-block--card-lists .ss-cl--num-wide .ss-cl__list{margin:0;padding-left:18px}
.bz-block--card-lists .ss-cl--num .ss-cl__list li, .bz-block--card-lists .ss-cl--num-wide .ss-cl__list li{font-size:14px}
@media (max-width:1100px){.bz-block--card-lists .ss-cl--type3{grid-template-columns:repeat(2,minmax(0,1fr))}
.bz-block--card-lists .ss-cl--num{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bz-block--card-lists .ss-cl--type3, .bz-block--card-lists .ss-cl--num{grid-template-columns:minmax(0,1fr)}}
.bz-block--card-lists .ss-cl--num3{grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 20px}
.bz-block--card-lists .ss-cl--num3 .ss-cl__card{padding:24px}
.bz-block--card-lists .ss-cl--num3 .ss-cl__t{margin:0 0 10px}
.bz-block--card-lists .ss-cl--num3 .ss-cl__p{font-size:14px;line-height:1.8;margin:0}
.bz-block--card-lists .ss-cl--num3 .ss-cl__list{margin:0;padding-left:18px}
.bz-block--card-lists .ss-cl--num3 .ss-cl__list li{font-size:14px}
@media (max-width:1100px){.bz-block--card-lists .ss-cl--num3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bz-block--card-lists .ss-cl--num3{grid-template-columns:minmax(0,1fr)}}
.bz-block--card-lists .ss-cl__l{font:700 10px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.bz-block--card-lists .ss-cl__tag{font:700 10px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:auto 0 0}
.bz-block--card-lists .ss-cl--stack{grid-template-columns:minmax(0,1fr);gap:0;margin:0}
.bz-block--card-lists .ss-cl--stack2{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:0}
.bz-block--card-lists .ss-cl--stack .ss-cl__card, .bz-block--card-lists .ss-cl--stack2 .ss-cl__card{padding:22px}
.bz-block--card-lists .ss-cl--stack .ss-cl__t, .bz-block--card-lists .ss-cl--stack2 .ss-cl__t{margin:30px 0 12px}
.bz-block--card-lists .ss-cl--stack .ss-cl__p, .bz-block--card-lists .ss-cl--stack2 .ss-cl__p, .bz-block--card-lists .ss-cl--stack .ss-cl__o{font-size:17px;line-height:1.8;margin:0 0 18px}
.bz-block--card-lists .ss-cl--stack .ss-cl__o{margin-top:8px}
.bz-block--card-lists .ss-cl--stack .ss-cl__list{margin:0;padding-left:20px}
.bz-block--card-lists .ss-cl--type4{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0}
.bz-block--card-lists .ss-cl--type4 .ss-cl__card{padding:24px;display:flex;flex-direction:column}
.bz-block--card-lists .ss-cl--type4 .ss-cl__t{margin:0 0 10px}
.bz-block--card-lists .ss-cl--type4 .ss-cl__p{font-size:17px;line-height:1.8;margin:0 0 18px}
.bz-block--card-lists .ss-cl--decide{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:0}
.bz-block--card-lists .ss-cl--decide .ss-cl__card{padding:22px 24px}
.bz-block--card-lists .ss-cl--decide .ss-cl__t{font-size:15.5px;margin:0 0 8px}
.bz-block--card-lists .ss-cl--decide .ss-cl__p{font-size:14.5px;line-height:1.65;margin:0}
.bz-block--card-lists .ss-cl--compare4{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0}
.bz-block--card-lists .ss-cl--compare4 .ss-cl__card{padding:22px 20px}
.bz-block--card-lists .ss-cl--compare4 .ss-cl__t{font-size:15px;margin:0 0 8px}
.bz-block--card-lists .ss-cl--compare4 .ss-cl__p{font-size:13.5px;line-height:1.6;margin:0}
@media (max-width:1100px){.bz-block--card-lists .ss-cl--type4, .bz-block--card-lists .ss-cl--compare4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bz-block--card-lists .ss-cl--stack2, .bz-block--card-lists .ss-cl--type4, .bz-block--card-lists .ss-cl--decide, .bz-block--card-lists .ss-cl--compare4{grid-template-columns:minmax(0,1fr)}}
.bz-block--card-lists .ss-cl--brief, .bz-block--card-lists .ss-cl--use, .bz-block--card-lists .ss-cl--chip{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:0}
.bz-block--card-lists .ss-cl--brief .ss-cl__card{padding:22px}
.bz-block--card-lists .ss-cl--brief .ss-cl__t{font-size:15.5px;margin:0 0 8px}
.bz-block--card-lists .ss-cl--brief .ss-cl__p{font-size:14px;line-height:1.6;margin:0}
.bz-block--card-lists .ss-cl--use .ss-cl__card{padding:20px}
.bz-block--card-lists .ss-cl--use .ss-cl__t{font-size:14.5px;margin:0 0 8px}
.bz-block--card-lists .ss-cl--use .ss-cl__p{font-size:13.5px;line-height:1.6;margin:0}
.bz-block--card-lists .ss-cl--chip .ss-cl__card{padding:12px 8px;text-align:center}
.bz-block--card-lists .ss-cl--chip .ss-cl__t{font:600 13px/1.7 var(--font-body);color:var(--ink);text-transform:none;margin:0}
.bz-block--card-lists /* Across: the column count and the gap the design gives that many. */
.ss-cl.ss-cl--x2{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.bz-block--card-lists .ss-cl.ss-cl--x3{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.bz-block--card-lists .ss-cl.ss-cl--x4{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.bz-block--card-lists .ss-cl.ss-cl--x5{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
@media (max-width:1100px){.bz-block--card-lists .ss-cl.ss-cl--x3, .bz-block--card-lists .ss-cl.ss-cl--x4{grid-template-columns:repeat(2,minmax(0,1fr))}
.bz-block--card-lists .ss-cl.ss-cl--x5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.bz-block--card-lists .ss-cl.ss-cl--x2, .bz-block--card-lists .ss-cl.ss-cl--x3, .bz-block--card-lists .ss-cl.ss-cl--x4, .bz-block--card-lists .ss-cl--brief, .bz-block--card-lists .ss-cl--use{grid-template-columns:minmax(0,1fr)}
.bz-block--card-lists .ss-cl.ss-cl--x5, .bz-block--card-lists .ss-cl--chip{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bz-block--card-lists .ss-cl__card--wide{grid-column:1/-1}
.bz-block--card-lists .ss-cl__ta{color:inherit;text-decoration:none}
.bz-block--card-lists .ss-cl__ta:hover{color:var(--accent)}
.bz-block--card-lists .ss-cl__card--rule-ink{border-top:3px solid var(--ink)}
.bz-block--card-lists .ss-cl__card--rule-accent{border-top:3px solid var(--accent)}
.bz-block--card-lists .ss-cl--stack .ss-cl__l, .bz-block--card-lists .ss-cl--stack2 .ss-cl__l{font-size:11px;letter-spacing:.14em;color:var(--ink);margin:0 0 10px}
.bz-block--card-lists .ss-cl--brief .ss-cl__l{color:var(--ink);margin:0 0 8px}
.bz-block--card-lists .ss-cl--note, .bz-block--card-lists .ss-cl--brand{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:0}
.bz-block--card-lists .ss-cl--note .ss-cl__card{padding:24px}
.bz-block--card-lists .ss-cl--note .ss-cl__t{font:700 11px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
.bz-block--card-lists .ss-cl--note .ss-cl__p{font-size:17px;line-height:1.8;margin:0 0 18px}
.bz-block--card-lists .ss-cl--brand .ss-cl__card{padding:26px}
.bz-block--card-lists .ss-cl--brand .ss-cl__t{margin:0 0 10px}
.bz-block--card-lists .ss-cl--brand .ss-cl__p{font-size:14.5px;line-height:1.65;margin:0}
@media (max-width:640px){.bz-block--card-lists .ss-cl--note, .bz-block--card-lists .ss-cl--brand{grid-template-columns:minmax(0,1fr)}}
.bz-block--check-list .ss-check{list-style:none;margin:8px 0 20px;padding:0}
.bz-block--check-list .ss-check__i{display:grid;grid-template-columns:41px minmax(0,1fr);border-bottom:1px solid var(--line)}
.bz-block--check-list .ss-check__m{padding:12px 0 12px 14px;color:var(--accent);font-weight:800;font-size:15px;line-height:1.7}
.bz-block--check-list .ss-check__t{padding:12px 14px;font-size:15px;line-height:1.7;color:var(--body-text)}
.bz-block--check-list .ss-check__h{display:block;color:var(--ink);font-size:15px;margin-bottom:2px}
.bz-block--check-list .ss-check__m::before{content:"\2713"}
.bz-block--check-list .ss-check--cross .ss-check__m{color:var(--bad)}
.bz-block--check-list .ss-check--cross .ss-check__m::before{content:"\2715"}
.bz-block--check-list .ss-check--bullet .ss-check__m::before{content:"\2022"}
.bz-block--check-list .ss-check--dot-ink, .bz-block--check-list .ss-check--dot{margin:0 0 20px}
.bz-block--check-list .ss-check--dot-ink .ss-check__i, .bz-block--check-list .ss-check--dot .ss-check__i{grid-template-columns:26px minmax(0,1fr);column-gap:14px;align-items:start;padding:18px 0;border-bottom:0;border-top:1px solid var(--line)}
.bz-block--check-list .ss-check--dot-ink .ss-check__i:last-child, .bz-block--check-list .ss-check--dot .ss-check__i:last-child{border-bottom:1px solid var(--line)}
.bz-block--check-list .ss-check--dot-ink .ss-check__m, .bz-block--check-list .ss-check--dot .ss-check__m{width:26px;height:26px;padding:0;border-radius:999px;background:var(--accent);color:var(--card);font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}
.bz-block--check-list .ss-check--dot-ink .ss-check__t, .bz-block--check-list .ss-check--dot .ss-check__t{padding:0;font-size:15.5px;line-height:1.6;font-weight:600}
.bz-block--check-list .ss-check--xdot .ss-check__m::before, .bz-block--check-list .ss-check--xdot-ink .ss-check__m::before{content:"\2715"}
.bz-block--check-list .ss-check--xdot, .bz-block--check-list .ss-check--xdot-ink{margin:0 0 20px}
.bz-block--check-list .ss-check--xdot .ss-check__i, .bz-block--check-list .ss-check--xdot-ink .ss-check__i{grid-template-columns:26px minmax(0,1fr);column-gap:14px;align-items:start;padding:18px 0;border-bottom:0;border-top:1px solid var(--line)}
.bz-block--check-list .ss-check--xdot .ss-check__i:last-child, .bz-block--check-list .ss-check--xdot-ink .ss-check__i:last-child{border-bottom:1px solid var(--line)}
.bz-block--check-list .ss-check--xdot .ss-check__m, .bz-block--check-list .ss-check--xdot-ink .ss-check__m{width:26px;height:26px;margin-top:2px;padding:0;border-radius:999px;background:var(--accent);color:var(--card);font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}
.bz-block--check-list .ss-check--xdot-ink .ss-check__m{background:var(--ink)}
.bz-block--check-list .ss-check--xdot .ss-check__t, .bz-block--check-list .ss-check--xdot-ink .ss-check__t{padding:0;font-size:14.5px;line-height:1.65}
.bz-block--check-list .ss-check--xdot .ss-check__h, .bz-block--check-list .ss-check--xdot-ink .ss-check__h{font:800 15.5px/1.3 var(--font-heading);margin:0 0 4px}
.bz-block--check-list .ss-check--tick-ink{margin:0}
.bz-block--check-list .ss-check--tick-ink .ss-check__i{grid-template-columns:22px minmax(0,1fr);column-gap:12px;align-items:start;padding:14px 0;border-bottom:0;border-top:1px solid var(--line)}
.bz-block--check-list .ss-check--tick-ink .ss-check__m{width:22px;height:22px;margin-top:2px;padding:0;border-radius:999px;background:var(--ink);color:var(--card);font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center}
.bz-block--check-list .ss-check--tick-ink .ss-check__t{padding:0;font-size:13.5px;line-height:1.6}
.bz-block--check-list .ss-check--tick-ink .ss-check__h{font:700 14.5px/1.7 var(--font-heading);margin:0 0 3px}
.bz-block--check-list .ss-check--run .ss-check__h{display:inline;font-size:inherit;margin:0 .25em 0 0}
.bz-block--check-list .ss-check--num{counter-reset:ss-check}
.bz-block--check-list .ss-check--num .ss-check__m::before{counter-increment:ss-check;content:counter(ss-check,decimal-leading-zero)}
.bz-block--check-list .ss-check--dot-ink .ss-check__m{background:var(--ink);margin-top:2px}
.bz-block--compare-table .ss-cmp__w{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0 28px}
.bz-block--compare-table .ss-cmp{width:100%;border-collapse:collapse;margin:0}
.bz-block--compare-table .ss-cmp th, .bz-block--compare-table .ss-cmp td{padding:12px 14px;border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.7;text-align:left;vertical-align:top;color:var(--body-text)}
.bz-block--compare-table .ss-cmp thead th{font:700 11px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.bz-block--compare-table .ss-cmp tbody th{width:30%;font-weight:700;color:var(--ink)}
@media (max-width:640px){.bz-block--compare-table .ss-cmp th, .bz-block--compare-table .ss-cmp td{padding:8px;font-size:13px}}
.bz-block--contact-cards .ss-cc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.bz-block--contact-cards .ss-cc__c{background:var(--ink);padding:32px 28px;container-type:inline-size}
.bz-block--contact-cards .ss-cc__l{font:700 11px/1.4 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:#A0A0A0;margin-bottom:12px}
.bz-block--contact-cards .ss-cc__v{font-family:var(--font-heading);font-weight:800;font-size:30px;line-height:1.15;color:#fff;display:inline-block;word-break:break-word;text-decoration:none}
.bz-block--contact-cards /* An address is one word: it scales down to its card rather than breaking mid-address. */
.ss-cc__v[href^="mailto:"]{white-space:nowrap;word-break:normal;font-size:min(var(--ss-cc-size,22px),5.2cqi)!important}
.bz-block--contact-cards .ss-cc__v:hover{text-decoration:underline}
.bz-block--contact-cards .ss-cc__n{font-size:13px;line-height:1.6;color:var(--chrome-body, #C7C1B4);margin-top:10px}
@media (max-width:1100px){.bz-block--contact-cards .ss-cc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bz-block--contact-cards .ss-cc{grid-template-columns:minmax(0,1fr)}}
.bz-block--def-rows .ss-def{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.bz-block--def-rows .ss-def__r{display:grid;grid-template-columns:220px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}
.bz-block--def-rows .ss-def__l{font-size:14px;line-height:1.5;font-weight:700;color:var(--ink)}
.bz-block--def-rows .ss-def__t{font-size:15px;line-height:1.7;color:var(--body-text, #3f3f3f)}
@media (max-width:640px){.bz-block--def-rows .ss-def__r{grid-template-columns:1fr;gap:6px}}
.bz-block--detail-cards .ss-dc__card{border:1px solid var(--line);padding:24px;margin-bottom:20px}
.bz-block--detail-cards .ss-dc__t{font:800 19px/1.3 var(--font-heading);color:var(--ink);text-transform:none;margin:0 0 12px}
.bz-block--detail-cards .ss-dc__p{font-size:17px;line-height:1.8;color:var(--body-text);margin:0}
.bz-block--detail-cards .ss-dc__l{font:700 11px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.bz-block--detail-cards .ss-dc__n{font-size:17px;line-height:1.8;color:var(--body-text)}
.bz-block--detail-cards .ss-dc--stacked .ss-dc__note{display:flex;flex-direction:column}
.bz-block--detail-cards .ss-dc--stacked .ss-dc__l{margin:14px 0 8px}
.bz-block--detail-cards .ss-dc--inline .ss-dc__note{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.bz-block--detail-cards .ss-dc--inline .ss-dc__l{font-size:11px;line-height:1.4;letter-spacing:.06em;flex-shrink:0;padding-top:3px}
.bz-block--detail-cards .ss-dc--inline .ss-dc__n{font-size:15px;line-height:1.7}
.bz-block--doc-group .ss-docs{border:1px solid var(--line);background:var(--card);height:100%}
.bz-block--doc-group .ss-docs__h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px;padding:22px 24px;border-bottom:1px solid var(--line)}
.bz-block--doc-group .ss-docs__t{font-family:var(--font-heading);font-weight:800;font-size:19px;margin:0}
.bz-block--doc-group .ss-docs__m{font:700 10px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bz-block--doc-group .ss-docs__l{list-style:none;margin:0;padding:0}
.bz-block--doc-group .ss-docs__l li+li{border-top:1px solid var(--line)}
.bz-block--doc-group .ss-docs__l a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 24px;font-size:14px;font-weight:600;color:var(--ink);text-decoration:none}
.bz-block--doc-group .ss-docs__l a:hover{background:var(--paper);color:var(--accent)}
.bz-block--doc-group .ss-docs__k{font:700 10px/1 var(--font-body);letter-spacing:.08em;color:var(--accent);white-space:nowrap}
.bz-block--doc-group .ss-docs--grid{border:0;background:none;height:auto}
.bz-block--doc-group .ss-docs--grid .ss-docs__h{padding:0 0 18px;border-bottom:0}
.bz-block--doc-group .ss-docs--grid .ss-docs__l{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:16px}
.bz-block--doc-group .ss-docs--grid .ss-docs__l li{border:1px solid var(--line);background:var(--card)}
.bz-block--doc-group .ss-docs--grid .ss-docs__l a{padding:20px 22px}
.bz-block--doc-group .ss-docs--dark .ss-docs__t{color:#EDEDED}
.bz-block--doc-group .ss-docs--dark .ss-docs__m{color:#A0A0A0}
.bz-block--doc-group .ss-docs--dark.ss-docs--grid .ss-docs__l li{background:transparent;border-color:rgba(255,255,255,.22)}
.bz-block--doc-group .ss-docs--dark .ss-docs__l a{color:#EDEDED}
.bz-block--doc-group .ss-docs--dark .ss-docs__l a:hover{background:rgba(255,255,255,.06);color:#fff}
@media (max-width:640px){.bz-block--doc-group .ss-docs__k, .bz-block--doc-group .ss-docs__m{font-size:12px}}
.bz-block--filter-pills .ss-filter{display:flex;align-items:center;gap:20px;flex-wrap:nowrap}
.bz-block--filter-pills .ss-filter__l{flex:0 0 68px;font:700 11px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bz-block--filter-pills .ss-filter__pills{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;padding-bottom:4px;gap:10px;flex:1 1 auto;min-width:0}
.bz-block--filter-pills .ss-pill{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;background:var(--card);color:var(--ink);border:1.5px solid var(--line);font:700 13px/1.6 var(--font-body);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;cursor:pointer}
.bz-block--filter-pills .ss-pill[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:transparent}
.bz-block--filter-pills .ss-pill[aria-pressed="true"] .ss-pill__dot{display:none}
.bz-block--filter-pills .ss-pill__dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.bz-block--filter-pills .ss-pill:hover{border-color:var(--muted)}
.bz-block--link-cards .ss-lc{display:grid;gap:16px}
.bz-block--link-cards .ss-lc--2{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:20px}
.bz-block--link-cards .ss-lc--3{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}
.bz-block--link-cards .ss-lc__card{display:block;border:1px solid var(--line);padding:20px;color:var(--ink);text-decoration:none;transition:border-color .18s ease}
.bz-block--link-cards .ss-lc__card:hover{border-color:var(--ink)}
.bz-block--link-cards .ss-lc__l{display:block;font:700 11px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.bz-block--link-cards .ss-lc__t{display:block;font:800 19px/1.3 var(--font-heading);color:var(--ink)}
.bz-block--link-cards .ss-lc--3 .ss-lc__t{font-size:18px}
@media (max-width:1100px){.bz-block--link-cards .ss-lc--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.bz-block--link-cards .ss-lc--2, .bz-block--link-cards .ss-lc--3{grid-template-columns:minmax(0,1fr)}}
.bz-block--location-cards .ss-locrail__track{display:flex;gap:20px;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;padding-bottom:4px}
.bz-block--location-cards .ss-locrail__track::-webkit-scrollbar{height:6px}
.bz-block--location-cards .ss-locrail__track::-webkit-scrollbar-thumb{background:var(--line)}
.bz-block--location-cards .ss-loc{flex:0 0 320px;scroll-snap-align:start;border:1px solid var(--line);background:var(--card);padding:28px}
.bz-block--location-cards .ss-loc[hidden]{display:none}
.bz-block--location-cards .ss-loc__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px}
.bz-block--location-cards .ss-loc__c{font-family:var(--font-heading);font-weight:700;font-size:19px;line-height:1.6;margin:0}
.bz-block--location-cards .ss-loc__n{font-weight:700;font-size:13px;color:var(--muted);margin-right:8px}
.bz-block--location-cards .ss-loc__s{font:700 11px/1 var(--font-body);color:var(--muted)}
.bz-block--location-cards .ss-loc__name{font-size:13px;font-weight:600;line-height:1.6;color:var(--muted);margin:0 0 10px}
.bz-block--location-cards .ss-loc__phone{font-size:14px;line-height:1.6;color:var(--muted);margin:0 0 16px}
.bz-block--location-cards .ss-loc__phone a{color:inherit;text-decoration:none}
.bz-block--location-cards .ss-loc__phone a:hover{color:var(--accent)}
.bz-block--location-cards .ss-loc__dir{margin:0 0 16px}
.bz-block--location-cards .ss-loc__dir a{display:inline-block;padding:4px 0;font:700 13px/1.6 var(--font-body);color:var(--accent);text-decoration:none}
.bz-block--location-cards .ss-loc__dir a:hover{text-decoration:underline}
.bz-block--location-cards .ss-loc__tags{display:flex;flex-wrap:wrap;gap:6px}
.bz-block--location-cards .ss-loc__tags span{border:1px solid var(--line);padding:5px 8px;font:700 10px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
@media (max-width:640px){.bz-block--location-cards .ss-loc{flex-basis:82vw}}
.bz-block--location-cards .ss-loc{position:relative}
.bz-block--location-cards .ss-loc__l{color:inherit;text-decoration:none}
.bz-block--location-cards .ss-loc__l::after{content:"";position:absolute;inset:0}
.bz-block--location-cards .ss-loc:hover .ss-loc__l{color:var(--accent)}
.bz-block--location-cards .ss-loc__l:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.bz-block--location-cards .ss-loc__phone, .bz-block--location-cards .ss-loc__dir{position:relative;z-index:1}
@media (max-width:640px){.bz-block--location-cards .ss-loc__tags span{font-size:12px}
.bz-block--location-cards .ss-loc__phone a, .bz-block--location-cards .ss-loc__dir a, .bz-block--location-cards .ss-loc__l{display:inline-block;padding-block:11px;margin-block:-11px}}
.bz-block--location-cards .ss-loc__addr{ font-size: 13px; line-height: 1.6; color: var(--muted); margin: 0 0 6px }
.bz-block--step-list .ss-steps{list-style:none;margin:0;padding:0}
.bz-block--step-list .ss-step{display:flex;gap:18px;margin-bottom:24px}
.bz-block--step-list .ss-step__n{flex-shrink:0;width:40px;height:40px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font:800 16px/1 var(--font-heading)}
.bz-block--step-list .ss-step__t{font:800 19px/1.3 var(--font-heading);color:var(--ink);text-transform:none;margin:0 0 6px}
.bz-block--step-list .ss-step__p{font-size:17px;line-height:1.8;color:var(--body-text);margin:0}
.bz-block--post-cards .ss-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.bz-block--post-cards .ss-post{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);position:relative;transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease,border-color .28s ease}
.bz-block--post-cards /* Hover: the card lifts on a soft shadow, .bz-block--post-cards an accent rule draws in along its foot, .bz-block--post-cards the photo eases in, .bz-block--post-cards the title takes the accent and "Read more" steps forward.
   :focus-within gives a keyboard user the same card a mouse user sees. */
.ss-post::after{content:"";position:absolute;left:-1px;right:-1px;bottom:-1px;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.bz-block--post-cards .ss-post:hover, .bz-block--post-cards .ss-post:focus-within{transform:translateY(-6px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 22px 44px -22px color-mix(in srgb,var(--ink) 45%,transparent),0 6px 14px -8px color-mix(in srgb,var(--ink) 20%,transparent)}
.bz-block--post-cards .ss-post:hover::after, .bz-block--post-cards .ss-post:focus-within::after{transform:scaleX(1)}
.bz-block--post-cards .ss-post__media img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.bz-block--post-cards .ss-post:hover .ss-post__media img, .bz-block--post-cards .ss-post:focus-within .ss-post__media img{transform:scale(1.06)}
.bz-block--post-cards .ss-post:hover .ss-post__title a, .bz-block--post-cards .ss-post:focus-within .ss-post__title a{color:var(--accent)}
.bz-block--post-cards .ss-post__more{align-self:flex-start;transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.bz-block--post-cards .ss-post:hover .ss-post__more, .bz-block--post-cards .ss-post:focus-within .ss-post__more{transform:translateX(5px)}
.bz-block--post-cards /* The whole card is the link: the title's link is stretched over it, .bz-block--post-cards so the
   photo, .bz-block--post-cards the excerpt and the gutters all click through to the post. */
.ss-post__title a::before{content:"";position:absolute;inset:0;z-index:1}
.bz-block--post-cards .ss-post__title a:focus-visible{outline:none}
.bz-block--post-cards .ss-post:has(.ss-post__title a:focus-visible){outline:2px solid var(--accent);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.bz-block--post-cards .ss-post, .bz-block--post-cards .ss-post::after, .bz-block--post-cards .ss-post__media img, .bz-block--post-cards .ss-post__more{transition:none}
.bz-block--post-cards .ss-post:hover, .bz-block--post-cards .ss-post:focus-within{transform:none}
.bz-block--post-cards .ss-post:hover .ss-post__media img, .bz-block--post-cards .ss-post:focus-within .ss-post__media img{transform:none}
.bz-block--post-cards .ss-post:hover .ss-post__more, .bz-block--post-cards .ss-post:focus-within .ss-post__more{transform:none}}
.bz-block--post-cards .ss-post[hidden]{display:none}
.bz-block--post-cards .ss-post__media{display:block;position:relative;height:190px;background:var(--paper);overflow:hidden}
.bz-block--post-cards .ss-post__media img, .bz-block--post-cards .ss-post__media .bz-photo{width:100%;height:100%;object-fit:cover;display:block}
.bz-block--post-cards .ss-post__body{display:flex;flex-direction:column;flex:1;padding:24px 22px 26px}
.bz-block--post-cards .ss-post__meta{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:12px}
.bz-block--post-cards .ss-post__topic{font:700 10px/1.3 var(--font-body);letter-spacing:.14em;color:var(--accent)}
.bz-block--post-cards .ss-post__date{font-size:12px;color:var(--muted)}
.bz-block--post-cards .ss-post__title{font:800 19px/1.3 var(--font-heading);margin:0 0 12px}
.bz-block--post-cards .ss-post__title a{color:var(--ink);text-decoration:none}
.bz-block--post-cards .ss-post__title a:hover{color:var(--accent)}
.bz-block--post-cards .ss-post__excerpt{font-size:14px;line-height:1.7;color:var(--body-text);margin:0 0 18px}
.bz-block--post-cards .ss-post__more{font-size:14px;font-weight:700;color:var(--accent);text-decoration:none;margin-top:auto}
.bz-block--post-cards .ss-post__more:hover{text-decoration:underline}
.bz-block--post-cards .ss-posts__empty{font-size:15px;color:var(--muted);border-top:1px solid var(--line);padding-top:22px;margin:24px 0 0}
.bz-block--post-cards .ss-posts__empty[hidden]{display:none}
@media (max-width:1100px){.bz-block--post-cards .ss-posts{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.bz-block--post-cards .ss-posts{grid-template-columns:1fr}}
.bz-block--post-cards .ss-post__ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--paper);border:1px dashed var(--line);box-sizing:border-box}
.bz-block--post-cards .ss-post__ph-l{font:700 10px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bz-block--post-cards .ss-post__media:hover .ss-post__ph{border-color:var(--muted)}
@media (max-width:640px){.bz-block--post-cards .ss-post__topic, .bz-block--post-cards .ss-post__ph-l{font-size:12px}
.bz-block--post-cards .ss-post__more{padding-block:10px;margin-block:-10px}}
.bz-block--post-toc /* The rail itself is in normal flow: what sticks is the column that places it, .bz-block--post-toc because anything else in that column — a promo card under the list — has to
   travel with it rather than be slid over. */
.ss-toc{position:relative}
.bz-block--post-toc .ss-toc__l{font:700 var(--text-eyebrow)/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
.bz-block--post-toc .ss-toc__list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.bz-block--post-toc .ss-toc__link{font-size:13px;font-weight:600;line-height:1.45;color:var(--body-text);border-bottom:1px solid var(--line);padding:11px 0;text-decoration:none}
.bz-block--post-toc .ss-toc__link:hover{color:var(--accent)}
.bz-block--post-toc /* The script adds .is-current; until it runs — and forever on the Design
   canvas, .bz-block--post-toc which runs no site JS — the rail is a plain list of links. */
.ss-toc__link.is-current{color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);padding-left:10px}
@media (max-width:1100px){.bz-block--post-toc .ss-toc__link{padding:13px 0}}
.bz-block--prose-list .ss-prose-list{margin:0 0 24px;padding-left:22px;max-width:70ch}
.bz-block--prose-list .ss-prose-list li{font-size:16px;line-height:1.7;color:var(--body-text);margin:0 0 8px}
.bz-block--prose-list .ss-prose-list li::marker{color:var(--accent)}
.bz-block--prose-list .ss-prose-list--num{list-style:decimal}
.bz-block--prose-list .ss-prose-list a{color:var(--accent)}
.bz-block--qa-list .ss-qa__i{border-bottom:1px solid var(--line);padding:20px 0}
.bz-block--qa-list .ss-qa__q{font:800 17px/1.3 var(--font-heading);color:var(--ink);text-transform:none;margin:0 0 8px}
.bz-block--qa-list .ss-qa__a{font-size:15.5px;line-height:1.8;color:var(--body-text);margin:0}
.bz-block--result-count .ss-count{display:inline-block;font:700 11px/1.5 var(--font-body);letter-spacing:.12em;color:var(--muted)}
.bz-block--rule-list .ss-rl{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.bz-block--rule-list .ss-rl__i{font-size:15px;line-height:1.7;color:var(--body-text, #3f3f3f);border-top:1px solid var(--line);padding-top:10px}
.bz-block--post-share .ss-share{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:44px;padding-top:22px}
.bz-block--post-share .ss-share__l{font:700 var(--text-eyebrow)/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bz-block--post-share .ss-share__a{font-size:13px;font-weight:700;color:var(--body-text);border:1px solid var(--line);padding:8px 14px;text-decoration:none}
.bz-block--post-share .ss-share__a:hover{border-color:var(--accent);color:var(--accent)}
.bz-block--social-links .ss-social{display:flex;align-items:center;gap:14px;margin:0;padding:0;list-style:none}
.bz-block--social-links .ss-social__i{display:flex}
.bz-block--social-links .ss-social__a{display:flex;line-height:1}
.bz-block--social-links .ss-social__a img{width:14px;height:14px;display:block}
.bz-block--social-links .ss-social--light .ss-social__a img{filter:brightness(0) invert(1)}
.bz-block--social-links .ss-social--dark .ss-social__a img{filter:none}
.bz-block--social-links .ss-social__a:hover{opacity:.75}
.bz-block--social-links /* Labelled variant: the handoff's official-channel pills — icon, .bz-block--social-links name and a
   hairline box, .bz-block--social-links on a card rather than on the dark chrome. */
.ss-social--pills{flex-wrap:wrap;gap:12px}
.bz-block--social-links .ss-social--pills .ss-social__a{align-items:center;gap:8px;border:1px solid var(--line);padding:10px 16px;font:700 14px/1 var(--font-body);color:var(--ink)}
.bz-block--social-links .ss-social--pills .ss-social__a:hover{opacity:1;background:var(--paper)}
.bz-block--social-links .ss-social--pills.ss-social--light .ss-social__a{border-color:rgba(255,255,255,.35);color:#fff}
@media (max-width:640px){.bz-block--social-links .ss-social{gap:4px;flex-wrap:wrap}
.bz-block--social-links .ss-social__a{min-width:44px;min-height:44px;align-items:center;justify-content:center}
.bz-block--social-links .ss-social--pills .ss-social__a{min-width:0;padding:13px 16px}}
.bz-block--stage-list .ss-stages{margin-bottom:20px}
.bz-block--stage-list .ss-stage{display:grid;grid-template-columns:90px minmax(0,1fr);gap:4px 22px;border-top:1px solid var(--line);padding:20px 0}
.bz-block--stage-list .ss-stage:last-child{border-bottom:1px solid var(--line)}
.bz-block--stage-list .ss-stage__l{font:800 15px/1.3 var(--font-heading);color:var(--accent)}
.bz-block--stage-list .ss-stage__t{font:800 19px/1.3 var(--font-heading);color:var(--ink);text-transform:none;margin:0 0 6px}
.bz-block--stage-list .ss-stage__p{font-size:15px;line-height:1.7;color:var(--body-text);margin:0}
@media (max-width:640px){.bz-block--stage-list .ss-stage{grid-template-columns:minmax(0,1fr);gap:6px}}
.bz-block--stage-list .ss-stages--timeline{margin-bottom:0}
.bz-block--stage-list .ss-stages--timeline .ss-stage{grid-template-columns:68px minmax(0,1fr);gap:6px 20px;padding:22px 0}
.bz-block--stage-list .ss-stages--timeline .ss-stage:first-child{border-top:0}
.bz-block--stage-list .ss-stages--timeline .ss-stage__l{font:800 18px/1.7 var(--font-heading);color:var(--ink)}
.bz-block--stage-list .ss-stages--timeline .ss-stage__p{font-size:15.5px;line-height:1.65}
@media (max-width:640px){.bz-block--stage-list .ss-stages--timeline .ss-stage{grid-template-columns:minmax(0,1fr)}}
.bz-block--team-cards .ss-team{display:grid;grid-template-columns:repeat(4,1fr);gap:34px 20px;margin:0;padding:0;list-style:none}
.bz-block--team-cards .ss-team__i{margin:0}
.bz-block--team-cards .ss-team__i[hidden]{display:none}
.bz-block--team-cards .ss-team__m{position:relative;aspect-ratio:4/5;background:var(--ink);overflow:hidden}
.bz-block--team-cards .ss-team__m img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}
.bz-block--team-cards .ss-team__ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 30px/1 var(--font-heading);letter-spacing:.06em;color:#fff}
.bz-block--team-cards .ss-team__b{position:absolute;left:0;bottom:14px;padding:5px 9px;background:var(--accent);color:#fff;font:700 9px/1 var(--font-body);letter-spacing:.14em;text-transform:uppercase}
.bz-block--team-cards .ss-team__n{margin:14px 0 0;padding-top:13px;border-top:2px solid var(--ink);font:700 13px/1.3 var(--font-heading);letter-spacing:.02em;text-transform:uppercase;color:var(--ink)}
.bz-block--team-cards .ss-team__t{margin:6px 0 0;font:400 12px/1.5 var(--font-body);color:var(--muted)}
@media (max-width:1100px){.bz-block--team-cards .ss-team{grid-template-columns:repeat(3,1fr)}}
@media (max-width:820px){.bz-block--team-cards .ss-team{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.bz-block--team-cards .ss-team{grid-template-columns:1fr;gap:28px}}
@media (max-width:640px){.bz-block--team-cards .ss-team__b{font-size:11px}}
.bz-block--spec-table .ss-tbl{display:flex;flex-direction:column;border:1px solid var(--line);border-bottom:none}
.bz-block--spec-table .ss-tbl__hr, .bz-block--spec-table .ss-tbl__r{display:grid;grid-template-columns:var(--ss-tbl-cols, 1fr 1.3fr);gap:0}
.bz-block--spec-table .ss-tbl__hr{background:var(--ink)}
.bz-block--spec-table .ss-tbl__h{font:700 10px/1.4 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:#fff;padding:14px 16px}
.bz-block--spec-table .ss-tbl__r{border-bottom:1px solid var(--line)}
.bz-block--spec-table .ss-tbl__a{font-size:14px;line-height:1.6;font-weight:700;color:var(--ink);padding:16px;border-right:1px solid var(--line)}
.bz-block--spec-table .ss-tbl__b{font-size:14px;line-height:1.6;color:var(--body-text, #3f3f3f);padding:16px}
@media (max-width:640px){.bz-block--spec-table .ss-tbl__hr, .bz-block--spec-table .ss-tbl__r{grid-template-columns:1fr}
.bz-block--spec-table .ss-tbl__a{border-right:0;border-bottom:1px solid var(--line)}}
@media (max-width:640px){.bz-block--spec-table .ss-tbl__h{font-size:12px}}
