/*
 * The public site's own styling.
 *
 * Buttons, cards, tables and fields are NOT here any more: they live in
 * resources/views/partials/chrome.blade.php, which layouts/site includes
 * along with every other shell. Four copies of a look drift, and the copy
 * that drifts is always the one nobody is looking at — which for months was
 * this one, on the pages a customer sees before they are a customer.
 *
 * What stays here is what only the public site has: its sections, its prose
 * blocks, its hero. Anything defined in both wins here, since this file is
 * linked after the shared layer — so add to it only what genuinely differs.
 */



.bh-card + .bh-card { margin-top: calc(var(--bh-space-unit) * 4); }






/* th as well as td — a two-column detail table otherwise carries a rule under
   the label column that stops halfway and reads as a rendering fault. */
.bh-table tr:last-child td,
.bh-table tr:last-child th { border-bottom: 0; }


/*
 * A label element is inline by default, so without this the caption sits on
 * the same line as its input and the form wraps into a paragraph with boxes in
 * it. That is exactly what the public signing page was doing.
 */

/* See the console layout: a row label must be a flex container. */






@media (max-width: 720px) {
  .bh-grid-2, .bh-grid-3 { grid-template-columns: 1fr; }
}



/*
 * Rich text somebody wrote in an editor.
 *
 * Announcement bodies and procedure text arrive as sanitised HTML, so the
 * headings, lists and links inside them are real elements with no classes of
 * their own. Without this they inherit the page defaults and a procedure's
 * numbered steps read as one run-on paragraph.
 *
 * The class was used on two screens and defined on neither.
 */
.bh-prose > :first-child { margin-top: 0; }
.bh-prose > :last-child { margin-bottom: 0; }
.bh-prose p, .bh-prose ul, .bh-prose ol { margin: 0 0 calc(var(--bh-space-unit) * 3); }
.bh-prose ul, .bh-prose ol { padding-left: calc(var(--bh-space-unit) * 5); }
.bh-prose li { margin-bottom: calc(var(--bh-space-unit) * 1.5); }
.bh-prose h1, .bh-prose h2, .bh-prose h3, .bh-prose h4 {
  margin: calc(var(--bh-space-unit) * 5) 0 calc(var(--bh-space-unit) * 2);
  font-weight: var(--bh-weight-bold);
  line-height: 1.25;
}
.bh-prose h1 { font-size: var(--bh-size-scale-xl); }
.bh-prose h2 { font-size: var(--bh-size-scale-lg); }
.bh-prose h3, .bh-prose h4 { font-size: var(--bh-size-scale-md); }
.bh-prose blockquote {
  margin: 0 0 calc(var(--bh-space-unit) * 3);
  padding-left: calc(var(--bh-space-unit) * 4);
  border-left: 3px solid var(--bh-colour-border);
  color: var(--bh-colour-text-muted);
}
.bh-prose code {
  font-family: var(--bh-font-mono);
  font-size: .9em;
  background: var(--bh-colour-surface-sunk, var(--bh-colour-surface-alt));
  padding: .1em .35em;
  border-radius: var(--bh-radius-sm);
}
.bh-prose table { width: 100%; border-collapse: collapse; margin: 0 0 calc(var(--bh-space-unit) * 3); }
.bh-prose th, .bh-prose td {
  text-align: left;
  padding: calc(var(--bh-space-unit) * 2);
  border-bottom: var(--bh-border-width) solid var(--bh-colour-border);
}
.bh-prose img { max-width: 100%; height: auto; }
