/* =====================================================================
   BayfordBridge — Elementor page kit (New Jersey + county pages)
   Loaded only on pages using the "BB — Elementor" templates.
   Elementor lays the page out; these classes (set in each element's
   Advanced → CSS Classes) give it the site's design system: same tokens,
   fonts, blueprint textures and motion as the coded pages.
   ===================================================================== */

/* ---- Metric-matched fallback fonts ----
   Sized from the real Archivo / Inter / IBM Plex Mono files so text keeps the
   same line breaks while the web fonts load — no layout shift on swap. */
@font-face { font-family: "Archivo Fallback"; src: local("Arial"), local("ArialMT"), local("Helvetica"); size-adjust: 101.11%; ascent-override: 86.84%; descent-override: 20.77%; line-gap-override: 0%; }
@font-face { font-family: "Inter Fallback"; src: local("Arial"), local("ArialMT"), local("Helvetica"); size-adjust: 104.10%; ascent-override: 93.06%; descent-override: 23.17%; line-gap-override: 0%; }
@font-face { font-family: "Plex Mono Fallback"; src: local("Courier New"), local("CourierNewPSMT"), local("Courier"); size-adjust: 100%; ascent-override: 102.5%; descent-override: 27.5%; line-gap-override: 0%; }
:root {
  --font-sans: "Inter", "Inter Fallback", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display: "Archivo", "Archivo Fallback", "Inter", "Inter Fallback", sans-serif;
  --font-mono: "IBM Plex Mono", "Plex Mono Fallback", ui-monospace, "SFMono-Regular", Menlo, monospace;
}

/* ---- Elementor base (replaces Elementor's front-end CSS for visitors) ----
   Wrapped in :where() so these have zero specificity: every layout rule
   below (grids, rows, stacks) always wins. */
:where(.bb-elementor-full .elementor .e-con) { display: flex; flex-direction: column; position: relative; min-width: 0; width: 100%; }
:where(.bb-elementor-full .elementor-element) { position: relative; min-width: 0; }
:where(.bb-elementor-full .elementor-heading-title) { margin: 0; padding: 0; }
:where(.bb-elementor-full .elementor-button) { display: inline-block; text-decoration: none; cursor: pointer; }
:where(.bb-elementor-full .elementor-button-content-wrapper) { display: flex; align-items: center; justify-content: center; }
.bb-elementor-full .elementor-tab-content:not(.elementor-active) { display: none; }
:where(.bb-elementor-full .elementor-screen-only) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---- Elementor resets inside our pages ---- */
.bb-elementor-full .elementor .e-con { --gap: 0px; --row-gap: 0px; --column-gap: 0px; --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.bb-elementor-full .elementor-widget:not(:last-child) { margin-block-end: 0; }
.bb-elementor-full .elementor-heading-title { line-height: inherit; color: inherit; }
.bb-elementor-full .elementor-widget-text-editor p { margin: 0; }
.bb-elementor-full .elementor-widget-text-editor p + p { margin-top: 1rem; }

/* ---- Sections ---- */
.e-con.bbx-sec { position: relative; padding-block: 5rem; padding-inline: 1.25rem; }
@media (min-width: 640px)  { .e-con.bbx-sec { padding-inline: 2rem; } }
@media (min-width: 1024px) { .e-con.bbx-sec { padding-block: 7.5rem; padding-inline: 2.5rem; } }
.e-con.bbx-sec--surface { background: var(--color-surface); }
.e-con.bbx-sec--paper { background: var(--color-paper); }
.e-con.bbx-sec--dark { isolation: isolate; overflow: hidden; background: var(--color-ink); color: #fff; border-top: 1px solid color-mix(in srgb, var(--color-brand) 55%, transparent); }
/* Same "dark sheet" as the footer: two-scale grid fading out from the upper
   left, one brand glow, and a soft vignette. */
.e-con.bbx-hero::before, .e-con.bbx-sec--dark::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  width: auto; height: auto; opacity: 1; mix-blend-mode: normal; border-radius: 0; background-color: transparent;
  background-image:
    linear-gradient(rgba(255,255,255,.085) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.085) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 280px 280px, 280px 280px, 56px 56px, 56px 56px;
  -webkit-mask-image: radial-gradient(140% 120% at 20% 0%, #000 30%, transparent 100%);
  mask-image: radial-gradient(140% 120% at 20% 0%, #000 30%, transparent 100%);
}
.e-con.bbx-hero::after, .e-con.bbx-sec--dark::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(900px 520px at 8% 0%, color-mix(in srgb, var(--color-brand) 22%, transparent), transparent 70%),
    radial-gradient(1200px 800px at 100% 100%, rgba(0,0,0,.35), transparent 70%);
}
.e-con.bbx-line { border-bottom: 1px solid var(--color-line); }
.e-con.bbx-wrap { width: 100%; max-width: calc(var(--maxw) - 5rem); margin-inline: auto; }
.e-con.bbx-split { display: grid; gap: 3rem; align-items: start; }
@media (min-width: 1024px) {
  .e-con.bbx-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; }
  .e-con.bbx-split--wide { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
  .e-con.bbx-split--center { align-items: center; }
}
.e-con.bbx-stack { display: flex; flex-direction: column; }
.e-con.bbx-sticky { position: sticky; top: calc(var(--header-h) + 2rem); }

/* ---- Hero ---- */
.e-con.bbx-hero {
  position: relative; overflow: hidden; isolation: isolate;
  margin-top: calc(-1 * var(--header-h));
  padding: calc(var(--header-h) + 3.5rem) 1.25rem 4rem;
  background: var(--color-ink); color: #fff;
  border-bottom: 1px solid color-mix(in srgb, var(--color-brand) 55%, transparent);
}
@media (min-width: 640px)  { .e-con.bbx-hero { padding-inline: 2rem; } }
@media (min-width: 1024px) { .e-con.bbx-hero { padding: calc(var(--header-h) + 4.5rem) 2.5rem 5.5rem; } }
.e-con.bbx-hero-grid { display: grid; gap: 2.5rem; align-items: start; }
@media (min-width: 1024px) { .e-con.bbx-hero-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: 3.5rem; } }
.bbx-hero-map { max-width: 440px; width: 100%; margin-inline: auto; align-self: start; }
@media (min-width: 1024px) { .bbx-hero-map { margin-top: 1.5rem; } }
@media (max-width: 1023px) { .bbx-hero-map { max-width: 300px; } }

.bbx-crumbs { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .18em; color: rgba(255,255,255,.45); }
.bbx-crumbs a { color: rgba(255,255,255,.7); text-decoration: underline; text-decoration-color: rgba(255,255,255,.3); text-underline-offset: 3px; transition: color .2s; }
.bbx-crumbs a:hover { color: #fff; }
.bbx-crumbs .sep { margin-inline: .6rem; color: var(--color-brand-bright); }

/* ---- Type ---- */
.bbx-kicker { margin-top: 1.25rem; font-family: var(--font-mono); font-size: 13px; text-transform: uppercase; letter-spacing: .22em; color: var(--color-brand); }
.bbx-kicker:first-child { margin-top: 0; }
.bbx-sec--dark .bbx-kicker, .bbx-hero .bbx-kicker { color: var(--color-brand); }
.bbx-kicker .num { color: var(--color-muted); }
.bbx-sec--dark .bbx-kicker .num, .bbx-hero .bbx-kicker .num { color: rgba(255,255,255,.45); }

.bbx-h1 { margin-top: 1.25rem; }
.bbx-h1 .elementor-heading-title { font-family: var(--font-display); font-size: clamp(2.3rem, 5.4vw, 4.4rem); font-weight: 600; line-height: 1.02; letter-spacing: -.03em; color: #fff; text-wrap: balance; }
.bbx-h2 { margin-top: 1.25rem; }
.bbx-h2 .elementor-heading-title { max-width: 52rem; font-family: var(--font-display); font-size: clamp(1.85rem, 4vw, 3.4rem); font-weight: 600; line-height: 1.05; letter-spacing: -.025em; text-wrap: balance; }
.bbx-h3 .elementor-heading-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; line-height: 1.15; letter-spacing: -.02em; }
.bbx-h1 .hl, .bbx-sec--dark .bbx-h2 .hl, .bbx-sec--dark .bbx-h3 .hl { color: var(--color-brand); }
.bbx-h2 .hl, .bbx-h3 .hl { color: var(--color-brand); }

.bbx-lede { margin-top: 1.5rem; max-width: 40rem; font-size: clamp(1.05rem, 2.4vw, 1.2rem); line-height: 1.7; color: var(--color-muted); }
.bbx-hero .bbx-lede, .bbx-sec--dark .bbx-lede { color: rgba(255,255,255,.72); }
.bbx-body { margin-top: 1.5rem; max-width: 44rem; font-size: 1.0625rem; line-height: 1.8; color: var(--color-muted); }
.bbx-sec--dark .bbx-body { color: rgba(255,255,255,.7); }
.bbx-body strong { color: var(--color-ink); font-weight: 600; }
.bbx-sec--dark .bbx-body strong { color: #fff; }
.bbx-small { margin-top: .75rem; font-size: 15px; line-height: 1.7; color: var(--color-muted); }
.bbx-sec--dark .bbx-small { color: rgba(255,255,255,.62); }
.bbx-mono { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .16em; color: var(--color-muted); }
.bbx-sec--dark .bbx-mono, .bbx-hero .bbx-mono { color: rgba(255,255,255,.5); }
.bbx-mono--brand { color: var(--color-brand); }
.bbx-sec--dark .bbx-mono--brand { color: var(--color-brand); }

.bbx-pull { margin-top: 3rem; max-width: 52rem; border-left: 2px solid var(--color-brand); padding-left: 1.5rem; font-family: var(--font-display); font-size: clamp(1.3rem, 2.6vw, 1.75rem); font-weight: 500; line-height: 1.35; letter-spacing: -.01em; }
.bbx-sec--dark .bbx-pull { border-color: var(--color-brand); }

/* ---- Buttons (Elementor Button widget) ---- */
.e-con.bbx-actions { display: flex; flex-flow: row wrap; gap: .75rem; margin-top: 2.25rem; }
.bbx-btn .elementor-button {
  display: inline-flex; align-items: center; gap: .75rem;
  padding: 1rem 1.75rem; border-radius: 0; border: 1px solid transparent;
  background: var(--color-brand); color: #fff; fill: #fff;
  font-family: var(--font-mono); font-size: 13px; font-weight: 400; line-height: 1.2;
  text-transform: uppercase; letter-spacing: .18em;
  transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}
.bbx-btn .elementor-button:hover, .bbx-btn .elementor-button:focus-visible { background: var(--color-brand-bright); color: #fff; }
.bbx-btn .elementor-button-text::after { content: "→"; display: inline-block; margin-left: .7rem; transition: transform .25s cubic-bezier(.16,1,.3,1); }
.bbx-btn .elementor-button:hover .elementor-button-text::after { transform: translateX(4px); }
.bbx-btn--ghost .elementor-button { background: transparent; color: var(--color-ink); border-color: rgba(12,17,31,.2); }
.bbx-btn--ghost .elementor-button:hover { background: transparent; color: var(--color-ink); border-color: var(--color-ink); }
.bbx-btn--ghost-dark .elementor-button { background: rgba(12,17,31,.45); color: rgba(255,255,255,.88); border-color: var(--color-line-dark); }
.bbx-btn--ghost-dark .elementor-button:hover { background: rgba(12,17,31,.45); color: #fff; border-color: rgba(255,255,255,.45); }
.bbx-btn--ghost .elementor-button-text::after, .bbx-btn--ghost-dark .elementor-button-text::after { content: none; }
@media (max-width: 479px) { .bbx-actions .bbx-btn, .bbx-actions .bbx-btn .elementor-button { width: 100%; justify-content: center; } }

.bbx-link { margin-top: 1.5rem; }
.bbx-link a, a.bbx-link-a { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .15em; color: var(--color-brand); border-bottom: 1px solid color-mix(in srgb, var(--color-brand) 35%, transparent); padding-bottom: .2rem; transition: border-color .2s; }
.bbx-link a:hover { border-color: var(--color-brand); }
.bbx-sec--dark .bbx-link a { color: var(--color-brand); }

/* Hero trust strip */
.bbx-trust { margin-top: 3rem; border-top: 1px solid var(--color-line-dark); padding-top: 1.25rem; }
.bbx-trust ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.75rem; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .16em; color: rgba(255,255,255,.55); }
.bbx-trust li::before { content: "■"; margin-right: .6rem; font-size: 7px; vertical-align: 2px; color: var(--color-brand); }
.bbx-phone { color: inherit; border-bottom: 1px solid currentColor; }

/* ---- Stat band (HTML widget reuses .trust-builders / .bb-stat) ---- */
.e-con.bbx-band { padding: 3.5rem 1.25rem; }
@media (min-width: 640px) { .e-con.bbx-band { padding-inline: 2rem; } }
@media (min-width: 1024px) { .e-con.bbx-band { padding: 4rem 2.5rem; } .bbx-band .trust-builders { grid-template-columns: repeat(4, minmax(0,1fr)); } }

/* ---- Card grids ---- */
.e-con.bbx-cards { display: grid; gap: 1px; margin-top: 3rem; border: 1px solid var(--color-line); background: var(--color-line); counter-reset: bbx; }
@media (min-width: 640px)  { .e-con.bbx-cards { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1024px) { .e-con.bbx-cards--4 { grid-template-columns: repeat(4, minmax(0,1fr)); } .e-con.bbx-cards--3 { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.e-con.bbx-card { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 100%; background: var(--color-surface); padding: 2rem 1.5rem; transition: background-color .3s; counter-increment: bbx; }
@media (min-width: 640px) { .e-con.bbx-card { padding: 2.25rem 2rem; } }
.e-con.bbx-card::before { content: counter(bbx, decimal-leading-zero); position: absolute; inset: auto; left: auto; right: -.5rem; top: -1.6rem; width: auto; height: auto; opacity: 1; mix-blend-mode: normal; background: none; border-radius: 0; font-family: var(--font-display); font-size: 7.5rem; font-weight: 600; line-height: 1; letter-spacing: -.03em; color: rgba(12,17,31,.045); pointer-events: none; transition: color .4s, transform .6s cubic-bezier(.16,1,.3,1); }
.e-con.bbx-card:hover { background: var(--color-paper); }
.e-con.bbx-card:hover::before { color: color-mix(in srgb, var(--color-brand) 14%, transparent); transform: translateY(6px); }
.bbx-card .bbx-h3 { margin-top: .9rem; }
.bbx-card .bbx-small { flex: 1 1 auto; }
.bbx-card .bbx-go { margin-top: 1.75rem; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .15em; color: var(--color-muted); }
.bbx-card .bbx-go .glyph { display: inline-block; margin-left: .4rem; color: var(--color-brand); transition: transform .3s; }
a.e-con.bbx-card:hover .bbx-go .glyph { transform: translateX(5px); }
a.e-con.bbx-card:hover .bbx-go { color: var(--color-ink); }

/* live county cards */
.e-con.bbx-card.is-live { box-shadow: inset 0 3px 0 var(--color-brand); }
.bbx-status { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .16em; color: var(--color-muted); }
.bbx-status .pip { width: 7px; height: 7px; border: 1px solid currentColor; }
.bbx-status.is-live { color: var(--color-brand); }
.bbx-status .pip { position: relative; }
.bbx-status.is-live .pip { background: var(--color-brand); border-color: var(--color-brand); }
.bbx-status.is-live .pip::after { content: ""; position: absolute; inset: -1px; background: var(--color-brand); animation: bbx-pip 2.4s ease-out 4; will-change: transform, opacity; }
@keyframes bbx-pip { 0% { transform: scale(1); opacity: .6; } 100% { transform: scale(3.2); opacity: 0; } }

.bbx-chips { margin-top: 2rem; }
.bbx-chips .county-chips { margin-top: .9rem; }
.bbx-chips .county-chips a { display: block; }

/* ---- Buyer comparison ---- */
.e-con.bbx-card.is-us { background: var(--color-ink); color: #fff; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-brand) 70%, transparent); background-image: radial-gradient(90% 60% at 100% 0%, color-mix(in srgb, var(--color-brand) 28%, transparent), transparent 70%); }
.e-con.bbx-card.is-us::before { color: rgba(255,255,255,.05); }
.e-con.bbx-card.is-us:hover { background-color: var(--color-ink-2); }
.bbx-card.is-us .bbx-small, .bbx-card.is-us .bbx-ticks { color: rgba(255,255,255,.7); }
.bbx-card.is-us .bbx-mono { color: var(--color-brand); }
.bbx-ticks { margin-top: 1.5rem; flex: 1 1 auto; }
.bbx-ticks ul { list-style: none; margin: 0; padding: 1.25rem 0 0; border-top: 1px solid var(--color-line); display: grid; gap: .7rem; font-size: 15px; line-height: 1.5; color: var(--color-muted); }
.bbx-card.is-us .bbx-ticks ul { border-color: var(--color-line-dark); }
.bbx-ticks li { display: flex; gap: .75rem; }
.bbx-ticks li::before { content: "—"; flex: 0 0 auto; font-family: var(--font-mono); color: rgba(12,17,31,.35); }
.bbx-card.is-us .bbx-ticks li::before { content: "→"; color: var(--color-brand); }
.bbx-badge { align-self: flex-start; margin-bottom: 1rem; padding: .35rem .6rem; background: var(--color-brand); font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .18em; color: #fff; }

/* ---- Checklist ("What we buy") ---- */
.bbx-check { margin-top: 2.5rem; }
.bbx-check ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--color-line); counter-reset: chk; }
.bbx-check li { counter-increment: chk; display: grid; grid-template-columns: 3rem minmax(0,1fr) auto; align-items: baseline; gap: 1rem; padding-block: 1.3rem; border-bottom: 1px solid var(--color-line); font-family: var(--font-display); font-size: clamp(1.1rem, 2vw, 1.35rem); font-weight: 500; letter-spacing: -.01em; line-height: 1.35; transition: padding .35s cubic-bezier(.16,1,.3,1), color .3s; }
.bbx-check li::before { content: counter(chk, decimal-leading-zero); font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em; color: var(--color-brand); }
.bbx-check li::after { content: "→"; font-family: var(--font-mono); font-size: 14px; color: var(--color-line); transition: color .3s, transform .3s; }
.bbx-check li:hover { padding-left: .5rem; color: var(--color-brand); }
.bbx-check li:hover::after { color: var(--color-brand); transform: translateX(4px); }

.e-con.bbx-note { background: var(--color-ink); color: #fff; padding: 2.25rem 2rem; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 28px 28px; border-top: 3px solid var(--color-brand); }
.bbx-note .bbx-h3 { margin-top: .75rem; }
.bbx-note .bbx-small { color: rgba(255,255,255,.7); }

/* ---- Steps ---- */
.e-con.bbx-steps { position: relative; display: grid; gap: 1px; margin-top: 3rem; border: 1px solid var(--color-line); background: var(--color-line); counter-reset: step; }
@media (min-width: 900px) { .e-con.bbx-steps { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.e-con.bbx-step { position: relative; background: var(--color-surface); padding: 2.25rem 2rem 2.5rem; counter-increment: step; }
.e-con.bbx-step::before { content: counter(step, decimal-leading-zero); position: static; inset: auto; width: auto; height: auto; opacity: 1; mix-blend-mode: normal; background: none; display: block; font-family: var(--font-display); font-size: 3.5rem; font-weight: 600; line-height: 1; letter-spacing: -.03em; color: transparent; -webkit-text-stroke: 1px color-mix(in srgb, var(--color-brand) 70%, transparent); margin-bottom: 1.5rem; }
.e-con.bbx-step::after { content: ""; position: absolute; inset: auto; left: 0; top: -1px; opacity: 1; mix-blend-mode: normal; height: 3px; width: 0; background: var(--color-brand); transition: width 1.1s cubic-bezier(.16,1,.3,1) var(--d, 0ms); }
.e-con.bbx-step.is-in::after { width: 100%; }
.no-js .e-con.bbx-step::after { width: 100%; }

/* ---- Office card ---- */
.bbx-office { position: relative; background: var(--color-paper); color: var(--color-ink); padding: 2rem; border-top: 3px solid var(--color-brand); }
@media (min-width: 640px) { .bbx-office { padding: 2.5rem; } }
.bbx-office__eyebrow { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .16em; color: var(--color-brand); }
.bbx-office__addr { margin-top: .75rem; font-family: var(--font-display); font-size: 1.4rem; font-weight: 600; line-height: 1.3; letter-spacing: -.015em; }
.bbx-office__rows { margin: 1.75rem 0 0; border-top: 1px solid var(--color-line); }
.bbx-office__rows > div { display: grid; grid-template-columns: 5rem minmax(0,1fr); gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--color-line); }
.bbx-office__rows dt { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .14em; color: var(--color-muted); padding-top: .2rem; }
.bbx-office__rows dd { margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.bbx-office__rows a { border-bottom: 1px solid color-mix(in srgb, var(--color-brand) 35%, transparent); }
.bbx-office__rows a:hover { color: var(--color-brand); }
.bbx-office__cta { display: block; margin-top: 1.75rem; padding: 1rem 1.5rem; background: var(--color-brand); color: #fff; text-align: center; font-family: var(--font-mono); font-size: 13px; text-transform: uppercase; letter-spacing: .18em; transition: background-color .2s; }
.bbx-office__cta:hover { background: var(--color-brand-bright); }

/* ---- FAQ (Elementor Accordion widget) ---- */
.bbx-faq { margin-top: 3rem; }
.bbx-faq .elementor-accordion { border-bottom: 1px solid var(--color-line); }
.bbx-faq .elementor-accordion .elementor-accordion-item { border: 0; border-top: 1px solid var(--color-line); }
.bbx-faq .elementor-accordion .elementor-accordion-item + .elementor-accordion-item { border-top: 1px solid var(--color-line); }
.bbx-faq .elementor-accordion .elementor-tab-title { position: relative; display: flex; align-items: center; justify-content: flex-start; gap: 1.5rem; padding: 1.75rem 2.5rem 1.75rem 0; border: 0; text-align: left; font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; letter-spacing: -.02em; line-height: 1.3; color: var(--color-ink); cursor: pointer; transition: color .3s; }
.bbx-faq .elementor-accordion .elementor-tab-title a { color: inherit; }
.bbx-faq .elementor-accordion .elementor-tab-title:hover, .bbx-faq .elementor-accordion .elementor-tab-title.elementor-active { color: var(--color-brand); }
.bbx-faq .elementor-accordion .elementor-tab-title .elementor-accordion-icon { display: none; }
.bbx-faq .elementor-tab-title::before, .bbx-faq .elementor-tab-title::after { content: ""; position: absolute; right: 0; top: 50%; background: var(--color-ink); transition: transform .3s, opacity .3s, background-color .3s; }
.bbx-faq .elementor-tab-title::before { width: 18px; height: 2px; margin-top: -1px; }
.bbx-faq .elementor-tab-title::after { width: 2px; height: 18px; margin-top: -9px; right: 8px; }
.bbx-faq .elementor-tab-title.elementor-active::after { transform: scaleY(0); opacity: 0; }
.bbx-faq .elementor-tab-title.elementor-active::before { background: var(--color-brand); }
.bbx-faq .elementor-accordion .elementor-tab-content.elementor-active { display: block; }
.bbx-faq .elementor-accordion .elementor-tab-content[hidden] { display: none; }
.bbx-faq .elementor-accordion .elementor-tab-content { border: 0; padding: 0 0 1.75rem; max-width: 52rem; font-size: 1.0625rem; line-height: 1.8; color: var(--color-muted); }

/* ---- Offer form card ---- */
.bbx-form { background: var(--color-paper); color: var(--color-ink); padding: 2rem; }
@media (min-width: 640px) { .bbx-form { padding: 2.5rem; } }
.bbx-form__eyebrow { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .15em; color: var(--color-brand); }
.bbx-form__title { margin: .5rem 0 1.5rem; font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; letter-spacing: -.02em; }

/* ---- NJ county map ---- */
.nj-map { position: relative; margin: 0; }
.nj-map svg { display: block; width: 100%; height: auto; overflow: visible; }
.nj-c { fill: #141b30; stroke: rgba(246,246,242,.26); stroke-width: .8; stroke-linejoin: round; transition: fill .35s, stroke .35s; }
.nj-c.is-core { fill: url(#nj-hatch); stroke: color-mix(in srgb, var(--color-brand) 55%, transparent); }
.nj-c.is-page { fill: color-mix(in srgb, var(--color-brand) 75%, #0c111f); stroke: rgba(255,255,255,.6); }
.nj-map--focus .nj-c { fill: #141b30; stroke: rgba(246,246,242,.2); }
.nj-map--focus .nj-c.is-page { fill: #141b30; stroke: color-mix(in srgb, var(--color-brand) 60%, transparent); }
.nj-map--focus .nj-c.is-focus { fill: var(--color-brand); stroke: #fff; stroke-width: 1.2; }
a.nj-link { cursor: pointer; outline: none; }
a.nj-link:hover .nj-c, a.nj-link:focus-visible .nj-c { fill: var(--color-brand); stroke: #fff; }
.nj-map__outline { fill: none; stroke: rgba(246,246,242,.55); stroke-width: 1.1; pointer-events: none; }
.nj-label { font-family: var(--font-mono); font-size: 8.5px; letter-spacing: .12em; fill: rgba(246,246,242,.55); text-anchor: middle; pointer-events: none; }
.nj-label.is-strong { font-size: 9.5px; fill: #fff; }
.nj-map--focus .nj-label.is-strong { font-size: 12px; }
.nj-hq__dot { fill: #fff; }
.nj-hq__lead { stroke: rgba(255,255,255,.55); stroke-width: .8; }
.nj-hq__text { font-family: var(--font-mono); font-size: 10px; letter-spacing: .15em; fill: #fff; }
.nj-hq__sub { font-family: var(--font-mono); font-size: 8px; letter-spacing: .15em; fill: rgba(255,255,255,.6); }
.nj-hq__pulse { transform-box: fill-box; transform-origin: center; animation: nj-pulse 2.6s ease-out 1.6s 3 both; }
@keyframes nj-pulse { 0% { transform: scale(.35); opacity: 1; } 100% { transform: scale(1.6); opacity: 0; } }
.nj-map__legend { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.25rem; margin-top: 1.25rem; font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .15em; color: rgba(255,255,255,.55); }
.nj-map__legend span { display: inline-flex; align-items: center; gap: .5rem; white-space: nowrap; }
.nj-map__legend .k { display: inline-block; width: 12px; height: 12px; border: 1px solid color-mix(in srgb, var(--color-brand) 80%, transparent); }
.nj-map__legend .k--page { background: color-mix(in srgb, var(--color-brand) 75%, #0c111f); }
.nj-map__legend .k--core { background: repeating-linear-gradient(45deg, color-mix(in srgb, var(--color-brand) 60%, transparent) 0 1px, rgba(51,85,204,.12) 1px 4px); }
.nj-map__legend .k--buy { background: #141b30; border-color: rgba(246,246,242,.35); }
.nj-map__legend--coords { justify-content: flex-start; }
.nj-map__tip { position: absolute; z-index: 3; pointer-events: none; transform: translate(-50%, calc(-100% - 12px)); white-space: nowrap; padding: .5rem .7rem; background: var(--color-paper); color: var(--color-ink); font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; box-shadow: 0 10px 30px rgba(0,0,0,.35); }
.nj-map__tip b { display: block; font-family: var(--font-display); font-size: 13px; font-weight: 600; letter-spacing: -.01em; text-transform: none; }
/* draw-in */
.js .nj-c { stroke-dasharray: 1; animation: nj-draw 1.5s cubic-bezier(.65,0,.35,1) both; animation-delay: calc(var(--i) * 45ms); }
.js .nj-map__outline { stroke-dasharray: 1; animation: nj-stroke 2.2s cubic-bezier(.65,0,.35,1) both .2s; }
.js .nj-map__labels, .js .nj-map__hq { animation: nj-fade .8s ease both 1.3s; }
@keyframes nj-draw { 0% { stroke-dashoffset: 1; fill-opacity: 0; } 60% { stroke-dashoffset: 0; fill-opacity: 0; } 100% { stroke-dashoffset: 0; fill-opacity: 1; } }
@keyframes nj-stroke { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes nj-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---- Regulation layers ---- */
.bbx-layers { display: grid; gap: 1.5rem; }
.bbx-layers__stage { position: relative; height: 300px; perspective: 1400px; transform-style: preserve-3d; }
@media (min-width: 1024px) { .bbx-layers__stage { height: 360px; } }
.bbx-layer { position: absolute; left: 50%; top: 58%; width: 250px; height: 165px; margin: -82px 0 0 -125px; border: 1px solid color-mix(in srgb, var(--color-brand) 55%, transparent); background-color: rgba(20,27,48,.55); transform: rotateX(58deg) rotateZ(-40deg) translateZ(calc(var(--i) * 12px)); transition: transform 1.3s cubic-bezier(.16,1,.3,1) calc(var(--i) * 90ms), border-color .3s, background-color .3s; }
@media (min-width: 1024px) { .bbx-layer { width: 300px; height: 200px; margin: -100px 0 0 -150px; } }
.bbx-layers.is-in .bbx-layer { transform: rotateX(58deg) rotateZ(-40deg) translateZ(calc(var(--i) * 44px + 10px)); }
.bbx-layer.is-hot { border-color: #fff; background-color: rgba(51,85,204,.45); }
.bbx-layer__tag { position: absolute; left: .5rem; top: .4rem; font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; color: rgba(255,255,255,.75); }
.bbx-layer--parcel { background: rgba(246,246,242,.08); border-color: rgba(246,246,242,.35); transform: rotateX(58deg) rotateZ(-40deg) translateZ(-14px); }
.bbx-layers.is-in .bbx-layer--parcel { transform: rotateX(58deg) rotateZ(-40deg) translateZ(-14px); }
.bbx-parcel { position: absolute; left: 30%; top: 26%; width: 38%; height: 44%; background: var(--color-brand); clip-path: polygon(0 12%, 72% 0, 100% 58%, 34% 100%, 6% 78%); box-shadow: 0 0 40px var(--color-brand); }
.bbx-layer--zoning, .swatch--zoning { background-image: linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.22) 1px, transparent 1px); background-size: 18px 18px; }
.bbx-layer--wetlands, .swatch--wetlands { background-image: repeating-linear-gradient(0deg, color-mix(in srgb, var(--color-brand) 55%, transparent) 0 1px, transparent 1px 7px); }
.bbx-layer--pinelands, .swatch--pinelands { background-image: radial-gradient(circle, rgba(255,255,255,.55) 1.1px, transparent 1.6px); background-size: 9px 9px; }
.bbx-layer--cafra, .swatch--cafra { background-image: repeating-linear-gradient(45deg, color-mix(in srgb, var(--color-brand) 60%, transparent) 0 1px, transparent 1px 7px); }
.bbx-layer--highlands, .swatch--highlands { background-image: repeating-radial-gradient(circle at 30% 70%, rgba(255,255,255,.35) 0 1px, transparent 1px 9px); }
.bbx-layer--flood, .swatch--flood { background-image: repeating-linear-gradient(-45deg, rgba(255,255,255,.3) 0 1px, transparent 1px 5px), linear-gradient(rgba(51,85,204,.25), rgba(51,85,204,.25)); }
.bbx-layer--county, .swatch--county { background-image: linear-gradient(90deg, rgba(255,255,255,.25) 1px, transparent 1px); background-size: 14px 14px; }
.bbx-layer--cluster, .swatch--cluster { background-image: radial-gradient(circle, color-mix(in srgb, var(--color-brand) 80%, transparent) 2px, transparent 2.6px); background-size: 22px 22px; }
.bbx-layer--farmland, .swatch--farmland { background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.28) 0 1px, transparent 1px 10px), repeating-linear-gradient(0deg, rgba(255,255,255,.12) 0 1px, transparent 1px 30px); }
.bbx-layers__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--color-line-dark); }
.bbx-layers__head { padding: .9rem 0; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .16em; color: var(--color-brand); border-bottom: 1px solid var(--color-line-dark); }
.bbx-layers__list li:not(.bbx-layers__head) { display: grid; grid-template-columns: 2rem 1.75rem minmax(0,1fr); align-items: center; gap: .75rem; padding: .85rem 0; border-bottom: 1px solid var(--color-line-dark); cursor: default; transition: background-color .3s; }
.bbx-layers__list li:not(.bbx-layers__head):hover { background: rgba(255,255,255,.03); }
.bbx-layers__list .num { font-family: var(--font-mono); font-size: 11px; color: rgba(255,255,255,.45); }
.bbx-layers__list .swatch { width: 1.75rem; height: 1.25rem; border: 1px solid color-mix(in srgb, var(--color-brand) 60%, transparent); background-color: rgba(20,27,48,.8); }
.bbx-layers__list strong { display: block; font-family: var(--font-display); font-size: 1.05rem; font-weight: 600; letter-spacing: -.01em; color: #fff; }
.bbx-layers__list em { display: block; margin-top: .15rem; font-style: normal; font-size: 13.5px; color: rgba(255,255,255,.55); }

/* ---- Reveal on scroll (never leaves content hidden without JS) ---- */
.bbx-reveal { transition: opacity .9s cubic-bezier(.16,1,.3,1) var(--d, 0ms), transform 1s cubic-bezier(.16,1,.3,1) var(--d, 0ms); }
.bbx-anim .bbx-reveal:not(.is-in) { opacity: 0; transform: translateY(28px); }
.elementor-editor-active .bbx-reveal, .elementor-editor-preview .bbx-reveal { opacity: 1 !important; transform: none !important; }

@media (prefers-reduced-motion: reduce) {
  .bbx-reveal, .bbx-layer, .e-con.bbx-step::after { transition: none !important; }
  .bbx-anim .bbx-reveal:not(.is-in) { opacity: 1; transform: none; }
  .js .nj-c, .js .nj-map__outline, .js .nj-map__labels, .js .nj-map__hq, .nj-hq__pulse, .bbx-status.is-live .pip::after { animation: none !important; }
}

/* Editing in Elementor: keep the site's landowner prompt out of the way. */
.elementor-editor-active .landowner-modal,
.elementor-editor-active .landowner-bar,
.elementor-editor-active .landowner-spacer,
.elementor-editor-active .sticky-call { display: none !important; }

/* Team inside "Who you're dealing with": the site's team cards, compact
   (no bios) and adapted to the dark section. */
.bbx-team-inline .acq-block { margin-top: 3.5rem; }
.bbx-team-inline .acq-block__label { color: #fff; }
.bbx-team-inline .acq-block__count { color: rgba(255,255,255,.5); }
.bbx-team-inline .acq-block__rule { background: var(--color-line-dark); }
.bbx-team-inline .acq-card { background: var(--color-ink-2); border-color: var(--color-line-dark); }
@media (min-width: 1024px) { .bbx-team-inline .acq-card { flex-basis: calc(25% - 18px); } }
.bbx-team-inline .acq-card__media { border-bottom-color: var(--color-line-dark); }
.bbx-team-inline .acq-card__ghost { display: none; }
.bbx-team-inline .acq-card__body { padding: 1.25rem; }
.bbx-team-inline .acq-card__name { color: #fff; font-size: 1.1rem; }
.bbx-team-inline .acq-card__title { color: var(--color-brand); font-size: 10.5px; }
.bbx-team-inline .acq-card__bio { display: none; }
.bbx-team-inline .acq-card__cta { margin-top: 1.25rem; padding: .75rem 1rem; font-size: 12px; }
@media (hover: hover) and (pointer: fine) {
  .bbx-team-inline .acq-card:hover { border-color: color-mix(in srgb, var(--color-brand) 70%, transparent); }
  .bbx-team-inline .acq-card:hover .acq-card__name { color: #fff; }
}
.bbx-team-inline .acq-carousel__arrow { border-color: var(--color-line-dark); color: #fff; }
.bbx-team-inline .acq-carousel__arrow:hover:not(:disabled) { border-color: #fff; background: #fff; color: var(--color-ink); }
.bbx-team-inline .acq-carousel__track { background: var(--color-line-dark); }
.bbx-team-inline .acq-carousel__dot::after { border-color: rgba(255,255,255,.3); }
.bbx-team-inline .acq-carousel__dot:hover::after { border-color: rgba(255,255,255,.7); }
@media (max-width: 479px) {
  .bbx-office__rows > div { grid-template-columns: 1fr; gap: .2rem; }
  .bbx-office__rows dd { overflow-wrap: normal; }
}
