/* ---------------------------------------------------------------------------
   WordPress-only additions to the v7 "Ledger" design system.

   styles.css is v7/styles.css, byte for byte. Everything WordPress needs that
   the static preview never had lives here, so the delta is one short file:
   contact-form status notices, the <h1> sub-page titles, article/legacy body
   content (headings, lists, images the preview's plain paragraphs never had),
   the JS-off menu button, and the admin-bar offset.
   ------------------------------------------------------------------------- */

/* ── Contact form status, after the admin-post round trip ────────────────── */
.contact__notice{
  margin:0 0 1.5rem;padding:.95rem 1.15rem;
  background:var(--field-2);border-left:3px solid var(--rule);
  font-size:.95rem;line-height:1.55;color:var(--ink);max-width:52ch;
}
.contact__notice--ok{border-left-color:var(--a-teal)}
.contact__notice--bad{border-left-color:var(--mark)}

/* ── The menu button ships `hidden`; main.js reveals it ──────────────────── */
.menu-btn[hidden]{display:none !important}

/* ── Sub-page titles: v7 set these as h2; WordPress pages need one h1 ────── */
.ch-head .ch-title{
  font-family:var(--display);font-weight:400;
  font-size:clamp(2rem, 1.1rem + 3.4vw, 4rem);
  line-height:1.04;letter-spacing:-.015em;max-width:22ch;
}
.ch-head .ch-title em{font-style:italic;position:relative}

/* ── Article and legacy page bodies ──────────────────────────────────────── */
.legacy__body :where(h2,h3,h4){font-family:var(--display);font-weight:400;
  color:var(--ink);line-height:1.15;margin-top:1rem;letter-spacing:-.01em}
.legacy__body :where(h2){font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}
.legacy__body :where(h3){font-size:1.4rem}
.legacy__body :where(ul,ol){margin:0;padding-left:1.3rem;color:var(--ink-2)}
.legacy__body li{margin-bottom:.4rem}
.legacy__body a{color:var(--mark);text-decoration:underline;
  text-underline-offset:.22em;text-decoration-thickness:1px}
.legacy__body :where(img,iframe,video){max-width:100%;height:auto}
.legacy__body :where(figure){margin:1rem 0}
.legacy__body :where(table){width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.legacy__body :where(th,td){border:1px solid var(--rule);padding:.5rem .7rem;text-align:left}
.legacy__body blockquote{margin:1rem 0;padding-left:1.1rem;
  border-left:3px solid var(--mark);color:var(--ink);font-style:italic}
.legacy__body :where(strong,b){color:var(--ink);font-weight:600}

/* The WordPress admin bar is fixed-position and sits over the fixed masthead
   for logged-in users. Only ever visible to Harry and Ian, never to a visitor. */
body.admin-bar .mast{top:32px}
@media screen and (max-width:782px){ body.admin-bar .mast{top:46px} }

/* ── v7 defect, fixed here rather than in styles.css ─────────────────────────
   Below 940px v7 sets the hero copy's wrap to `margin-inline: 0 auto`, so the
   eyebrow, headline and lede sat flush against the left edge of a phone (h1 at
   x=0 on the static preview too). Centre it like every other .wrap. */
@media (max-width:939px){ .hero-copy > .wrap{ margin-inline:auto } }
