/* BayfordBridge land guides (single post). Same tokens + "dark sheet" as the county pages. */
.bbp { background: var(--color-surface); color: var(--color-ink); font-family: var(--font-sans); }
.bbp-wrap { width: 100%; max-width: calc(var(--maxw) - 5rem); margin-inline: auto; padding-inline: 1.25rem; }
.bbp-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--color-ink); color: #fff; padding: calc(var(--header-h) + 3.5rem) 0 5rem; border-bottom: 1px solid color-mix(in srgb, var(--color-brand) 55%, transparent); }
.bbp-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  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%); }
.bbp-hero::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%); }
.bbp-crumbs { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .18em; color: rgba(255,255,255,.45); }
.bbp-crumbs a { color: rgba(255,255,255,.7); border-bottom: 1px solid rgba(255,255,255,.25); text-decoration: none; }
.bbp-crumbs span { margin: 0 .35rem; }
.bbp-kicker { margin-top: 1.5rem; font-family: var(--font-mono); font-size: 13px; text-transform: uppercase; letter-spacing: .22em; color: var(--color-brand); }
.bbp-title { margin-top: 1rem; max-width: 20ch; font-family: var(--font-display); font-weight: 700; font-size: clamp(2.2rem, 6vw, 4.2rem); line-height: 1.02; letter-spacing: -.03em; color: #fff; }
.bbp-lede { margin-top: 1.5rem; max-width: 42rem; font-size: clamp(1.05rem, 2.4vw, 1.25rem); line-height: 1.7; color: rgba(255,255,255,.75); }
.bbp-meta { margin-top: 1.75rem; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .16em; color: rgba(255,255,255,.45); }

.bbp-cover { margin-top: -2rem; position: relative; z-index: 2; }
.bbp-cover img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; border: 1px solid var(--color-line); box-shadow: 0 30px 60px -30px rgba(12,17,31,.5); }

.bbp-main { display: grid; gap: 3rem; padding-block: 3.5rem 4.5rem; }
@media (min-width: 1024px) { .bbp-main { grid-template-columns: 17rem minmax(0, 1fr); gap: 5rem; align-items: start; } .bbp-side { position: sticky; top: calc(var(--header-h) + 1.5rem); } }
.bbp-label { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .18em; color: var(--color-brand); }
.bbp-toc ol { margin: .9rem 0 0; padding: 0; list-style: none; counter-reset: t; border-top: 1px solid var(--color-line); }
.bbp-toc li { counter-increment: t; border-bottom: 1px solid var(--color-line); }
.bbp-toc a { display: grid; grid-template-columns: 2rem 1fr; gap: .25rem; padding: .7rem 0; font-size: 14px; line-height: 1.4; color: var(--color-ink); text-decoration: none; }
.bbp-toc a::before { content: counter(t, decimal-leading-zero); font-family: var(--font-mono); font-size: 11px; color: var(--color-brand); padding-top: .15rem; }
.bbp-toc a:hover { color: var(--color-brand); }
.bbp-card { margin-top: 2rem; padding: 1.4rem; background: var(--color-ink); color: #fff; border-top: 3px solid var(--color-brand); }
.bbp-card__t { margin: .6rem 0 1rem; font-family: var(--font-display); font-weight: 600; font-size: 1.2rem; line-height: 1.2; }
.bbp-btn { display: block; padding: .85rem 1rem; background: var(--color-brand); color: #fff; font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .14em; text-align: center; text-decoration: none; }
.bbp-tel { display: inline-block; margin-top: .9rem; font-family: var(--font-mono); font-size: 13px; letter-spacing: .08em; color: inherit; border-bottom: 1px solid currentColor; text-decoration: none; }

.bbp-body { max-width: 44rem; font-size: 1.0625rem; line-height: 1.85; color: #2b3040; }
.bbp-body > p:first-child { font-size: 1.25rem; line-height: 1.7; color: var(--color-ink); }
.bbp-body p { margin: 0 0 1.35rem; }
.bbp-body h2 { margin: 3.2rem 0 1rem; scroll-margin-top: calc(var(--header-h) + 1rem); font-family: var(--font-display); font-weight: 700; font-size: clamp(1.6rem, 3.4vw, 2.2rem); line-height: 1.12; letter-spacing: -.02em; color: var(--color-ink); }
.bbp-body h3 { margin: 2rem 0 .6rem; font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; color: var(--color-ink); }
.bbp-body a { color: var(--color-brand); text-decoration: underline; text-underline-offset: 3px; }
.bbp-body ul, .bbp-body ol { margin: 0 0 1.5rem; padding-left: 1.3rem; }
.bbp-body li { margin-bottom: .55rem; padding-left: .25rem; }
.bbp-body li::marker { color: var(--color-brand); }
.bbp-body strong { color: var(--color-ink); }
.bbp-body blockquote { margin: 2rem 0; padding: .4rem 0 .4rem 1.4rem; border-left: 2px solid var(--color-brand); font-family: var(--font-display); font-size: 1.3rem; font-weight: 500; line-height: 1.4; color: var(--color-ink); }
.bbp-body blockquote p { margin: 0; }
.bbp-body table { width: 100%; margin: 0 0 1.75rem; border-collapse: collapse; font-size: .95rem; }
.bbp-body th { text-align: left; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .14em; color: var(--color-brand); }
.bbp-body th, .bbp-body td { padding: .75rem .6rem; border-bottom: 1px solid var(--color-line); vertical-align: top; }

.bbp-faq { margin-top: 3.5rem; }
.bbp-faq h2 { margin-top: 0; }
.bbp-faq details { border-bottom: 1px solid var(--color-line); }
.bbp-faq details:first-of-type { border-top: 1px solid var(--color-line); }
.bbp-faq summary { cursor: pointer; list-style: none; padding: 1.1rem 2rem 1.1rem 0; position: relative; font-family: var(--font-display); font-weight: 600; font-size: 1.1rem; color: var(--color-ink); }
.bbp-faq summary::-webkit-details-marker { display: none; }
.bbp-faq summary::after { content: "+"; position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); font-family: var(--font-mono); color: var(--color-brand); }
.bbp-faq details[open] summary::after { content: "–"; }
.bbp-faq details p { margin: 0 0 1.25rem; }

.bbp-cta { position: relative; isolation: isolate; overflow: hidden; background: var(--color-ink); color: #fff; padding: 5rem 0; border-top: 1px solid color-mix(in srgb, var(--color-brand) 55%, transparent); }
.bbp-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(900px 520px at 8% 0%, color-mix(in srgb, var(--color-brand) 22%, transparent), transparent 70%); }
.bbp-cta__in { display: grid; gap: 3rem; align-items: start; }
@media (min-width: 1024px) { .bbp-cta__in { grid-template-columns: 1fr 1fr; gap: 5rem; } }
.bbp-cta h2 { margin-top: 1rem; font-family: var(--font-display); font-weight: 700; font-size: clamp(2rem, 4.4vw, 3.2rem); line-height: 1.05; letter-spacing: -.025em; }
.bbp-cta h2 span { color: var(--color-brand); }
.bbp-cta p { color: rgba(255,255,255,.72); line-height: 1.75; max-width: 34rem; }
.bbp-cta .bbp-kicker { margin-top: 0; }
.bbp-tel--light { color: #fff; }

.bbp-more { padding-block: 4rem 5rem; }
.bbp-more__grid { display: grid; gap: 1px; margin-top: 1rem; background: var(--color-line); border: 1px solid var(--color-line); }
@media (min-width: 800px) { .bbp-more__grid { grid-template-columns: repeat(3, 1fr); } }
.bbp-tile { display: flex; flex-direction: column; gap: .6rem; padding: 1.6rem; background: var(--color-surface); text-decoration: none; color: var(--color-ink); transition: background .2s; }
.bbp-tile:hover { background: var(--color-paper); }
.bbp-tile__k { font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .16em; color: var(--color-brand); }
.bbp-tile__t { font-family: var(--font-display); font-weight: 600; font-size: 1.25rem; line-height: 1.2; }
.bbp-tile__go { margin-top: auto; padding-top: 1rem; font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .14em; }

.bbp-author { margin-top: 3.5rem; padding: 1.6rem 1.75rem; background: var(--color-paper); border-top: 3px solid var(--color-brand); }
.bbp-author p:last-child { margin: .6rem 0 0; font-size: .95rem; line-height: 1.7; color: var(--color-muted); }

/* contrast: label on the dark sidebar card */
.bbp-card .bbp-label { color: rgba(255,255,255,.78); }
.bbp-cta .bbp-kicker { color: rgba(255,255,255,.78); }
