/* Ledger (accountants): one grotesk, a visible column grid, black rules, Swiss red, tabular figures. */
.p-ledger {
  --fs-base: 1rem;
  --fs-hero: clamp(2.8rem, 1.2rem + 5.6vw, 6.2rem);
  --grid-line: color-mix(in oklab, var(--line) 70%, transparent);
  font-variant-numeric: tabular-nums;
}
.p-ledger :is(.section-title, .cat-index__name, .district__name, .lcard__title, .acard__title, .prose h2, .biz-sec__title) { font-weight: 600; letter-spacing: -.035em; }

/* Wordmark: bold, light, and a red full stop */
.p-ledger .wm-a { font-family: var(--font-display); font-weight: 700; letter-spacing: -.05em; }
.p-ledger .wm-b { font-weight: 350; color: var(--ink); letter-spacing: -.04em; }
.p-ledger .wm-b::after { content: "."; color: var(--accent); font-weight: 800; }
.p-ledger .site-footer .wm-b { color: inherit; }
.p-ledger .site-footer .wm-b::after { color: #FF5A50; }

.p-ledger .site-header, .p-ledger .site-header.is-scrolled { background: var(--surface); border-bottom-color: var(--ink); backdrop-filter: none; -webkit-backdrop-filter: none; }
.p-ledger .nav-list .is-current > a::after { height: 3px; border-radius: 0; bottom: 0; background: var(--accent); }

.p-ledger .btn { font-weight: 560; letter-spacing: -.01em; }
.p-ledger .btn--line { --b: var(--ink); }
.p-ledger .chip { border-radius: 0; }
.p-ledger .chip--active { background: var(--accent); border-color: var(--accent); color: #fff; }
.p-ledger .kicker, .p-ledger .lcard__kicker, .p-ledger .hero__kicker { font-weight: 560; }
.p-ledger .stars { --accent-2: var(--ink); }

/* Hero on a twelve-column grid; the photo is registered with a red bar and crop marks */
.p-ledger .hero { background-image: linear-gradient(90deg, var(--grid-line) 1px, transparent 1px); background-size: calc(100% / 12) 100%; background-position: -1px 0; border-bottom: 1px solid var(--ink); }
.p-ledger .hero__title { font-weight: 620; letter-spacing: -.055em; line-height: .92; max-width: 11ch; }
.p-ledger .hero__intro { color: var(--ink); max-width: 44ch; }
.p-ledger .hero__frame { box-shadow: 0 0 0 1px var(--ink); }
.p-ledger .hero__media::before { content: ""; position: absolute; z-index: 2; top: -10px; left: 0; width: 41.66%; height: 10px; background: var(--accent); }
.p-ledger .hero__media::after {
  content: ""; position: absolute; z-index: 0; inset: -28px;
  background:
    linear-gradient(var(--ink), var(--ink)) left 0 top 28px / 16px 1px,
    linear-gradient(var(--ink), var(--ink)) left 28px top 0 / 1px 16px,
    linear-gradient(var(--ink), var(--ink)) right 0 bottom 28px / 16px 1px,
    linear-gradient(var(--ink), var(--ink)) right 28px bottom 0 / 1px 16px,
    linear-gradient(var(--ink), var(--ink)) right 0 top 28px / 16px 1px,
    linear-gradient(var(--ink), var(--ink)) right 28px top 0 / 1px 16px,
    linear-gradient(var(--ink), var(--ink)) left 0 bottom 28px / 16px 1px,
    linear-gradient(var(--ink), var(--ink)) left 28px bottom 0 / 1px 16px;
  background-repeat: no-repeat;
}
.p-ledger .hero__spot { border-radius: 0; box-shadow: 0 0 0 1px var(--ink); left: -28px; }
.p-ledger .hero__spot-label { color: var(--accent); font-weight: 600; }
.p-ledger .ai-search__box { border: 1.5px solid var(--ink); border-radius: 0; box-shadow: none; }
.p-ledger .ai-search__box:focus-within { box-shadow: 4px 4px 0 var(--accent); border-color: var(--ink); }
.p-ledger .ai-search__icon { color: var(--accent); }
.p-ledger .ai-search__examples .chip { background: var(--surface); }
@media (max-width: 900px) {
  .p-ledger .hero { background-size: calc(100% / 6) 100%; }
  .p-ledger .hero__frame { aspect-ratio: 4 / 3; }
  .p-ledger .hero__media::after { inset: -16px; }
  .p-ledger .hero__spot { left: 12px; }
}

/* Sections open with a heavy black rule */
.p-ledger .section-head { border-top: 3px solid var(--ink); padding-top: 18px; }
.p-ledger .section-head .more-link { color: var(--ink); text-decoration-color: var(--accent); text-decoration-thickness: 2px; }

/* Categories as a ruled table with the counts as figures */
.p-ledger .cat-index { gap: 0 clamp(16px, 2vw, 32px); }
.p-ledger .cat-index__item { border-top-color: var(--ink); padding: 16px 0 20px; }
.p-ledger .cat-index__name { font-size: var(--fs-md); }
.p-ledger .cat-index__count { font-size: var(--fs-sm); color: var(--ink); font-weight: 500; }
.p-ledger .cat-index__link:hover .cat-index__name { color: var(--accent); }

.p-ledger .section--areas { background: var(--surface); border-block: 1px solid var(--ink); }
.p-ledger .district { border-top-color: var(--ink); }
.p-ledger .district:last-child { border-bottom-color: var(--ink); }
.p-ledger .district__count { color: var(--ink); font-weight: 500; }
.p-ledger .cy-map__ring { fill: color-mix(in oklab, var(--accent) 10%, transparent); }

/* Cards: hairline boxes; a red bar marks the one you're on */
.p-ledger .lcard { border-radius: 0; }
.p-ledger .lcard:has(.lcard__link:hover) { transform: none; box-shadow: 0 0 0 1px var(--ink), inset 0 4px 0 var(--accent); }
.p-ledger .lcard__media img { filter: saturate(.85); }
.p-ledger .logo-tile { border-radius: 0; box-shadow: 0 0 0 3px var(--surface), 0 0 0 4px var(--ink); }
.p-ledger .logo-tile--mono { background: var(--ink); color: #fff; font-weight: 650; letter-spacing: -.02em; }
.p-ledger .badge { border-radius: 0; }
.p-ledger .badge--featured { background: var(--accent); color: #fff; }
.p-ledger .acard__media { border-radius: 0; }
.p-ledger .acard__meta { color: var(--ink); }

/* Owners band: black, with red step numbers */
.p-ledger .owners { border-radius: 0; background: var(--ink); color: #fff; background-image: linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px); background-size: calc(100% / 12) 100%; }
.p-ledger .owners .btn--on-accent { background: #fff; color: var(--ink); --b: #fff; }
.p-ledger .owners .btn--on-accent:hover { background: var(--accent); color: #fff; --b: var(--accent); }
.p-ledger .owners__steps li::before { border-radius: 0; border: 0; background: var(--accent); color: #fff; font-weight: 650; }

/* Business page and articles */
.p-ledger .biz-cover, .p-ledger .article-hero__img { border-radius: 0; }
.p-ledger .biz-tabs a:hover { color: var(--ink); }
.p-ledger .facts div, .p-ledger .panel, .p-ledger .review-source, .p-ledger .branch { border-radius: 0; }
.p-ledger .facts dd { font-size: var(--fs-md); }
.p-ledger .hours div { border-radius: 0; }
.p-ledger .hours .is-today { background: transparent; box-shadow: inset 3px 0 0 var(--accent); }
.p-ledger .standfirst { font-weight: 500; letter-spacing: -.02em; }
.p-ledger .article-title { font-weight: 620; letter-spacing: -.05em; }
.p-ledger .article-dek { color: var(--ink); }
.p-ledger .byline { border-top: 3px solid var(--ink); }
.p-ledger .byline__avatar { border-radius: 0; background: var(--ink); }
.p-ledger .prose h2 { padding-top: 14px; border-top: 1px solid var(--ink); }
.p-ledger .prose ul { list-style: square; }
.p-ledger .prose li::marker { color: var(--accent); }
.p-ledger .editor-note { border-radius: 0; background: transparent; border: 1px solid var(--ink); }
.p-ledger .map-pin span { border-radius: 0; transform: none; }
.p-ledger .pagination a, .p-ledger .pagination span, .p-ledger .view-toggle, .p-ledger .view-toggle a { border-radius: 0; }
