/* Liberty Partners — Journal article (single post) */
  .art-head { padding: clamp(48px, 7vw, 96px) var(--gutter) clamp(32px, 4vw, 56px); }
  .art-head .inner { max-width: 1200px; margin: 0 auto; }
  .art-head .crumb { display: flex; align-items: center; gap: 14px; }
  .art-head .crumb a { font-family: var(--font-display); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft); }
  .art-head .crumb a:hover { color: var(--accent); }
  .art-head .crumb .cat { font-family: var(--font-display); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--mark); }
  .art-head h1 {
    font-family: var(--font-body); font-weight: 300;
    font-size: clamp(34px, 4.2vw, 58px); line-height: 1.05; letter-spacing: -0.025em;
    margin: 22px 0 0; text-wrap: balance;
  }
  .art-head h1 em { color: var(--accent); font-style: italic; }
  .art-head .standfirst {
    font-family: var(--font-body); font-style: italic; font-weight: 300;
    font-size: clamp(20px, 2vw, 27px); line-height: 1.4; color: var(--ink-soft);
    margin: 28px 0 0; max-width: 1000px; text-wrap: pretty;
  }
  .art-head .byline {
    display: flex; flex-wrap: wrap; gap: 10px 24px; align-items: baseline;
    margin-top: 36px; padding-top: 22px; border-top: 1px solid var(--rule);
    font-family: var(--font-display); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft);
  }
  .art-head .byline .who { color: var(--ink); }
  .art-head .byline .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--rule); }

  .art-hero { max-width: 1200px; margin: 0 auto; padding: 0 var(--gutter); }
  .art-hero figure { margin: 0; position: relative; overflow: hidden; }
  .art-hero img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
  .art-hero figcaption {
    font-family: var(--font-display); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--muted); margin-top: 12px;
  }

  .art-body { padding: clamp(40px, 6vw, 80px) var(--gutter) var(--s-9); }
  .art-body .measure { max-width: 1200px; margin: 0 auto; }
  .art-body p {
    font-family: var(--font-body); font-size: clamp(18px, 1.45vw, 21px); line-height: 1.62;
    margin: 0 0 1.25em; color: var(--ink); text-wrap: pretty;
  }
  .art-body p .lead-cap { float: left; font-family: var(--font-body); font-weight: 300; font-size: 4.4em; line-height: 0.78; padding: 6px 12px 0 0; color: var(--accent); }
  .art-body h2 {
    font-family: var(--font-body); font-weight: 400; font-size: clamp(26px, 2.6vw, 36px);
    line-height: 1.15; letter-spacing: -0.015em; margin: 1.6em 0 0.5em; color: var(--ink);
  }
  .art-body blockquote {
    font-family: var(--font-body); font-weight: 300; font-style: italic;
    font-size: clamp(24px, 2.6vw, 34px); line-height: 1.32; letter-spacing: -0.015em;
    border: 0; margin: 1.2em 0; padding: 0; color: var(--ink);
  }
  .art-body blockquote::before { content: "“"; color: var(--accent); }
  .art-body blockquote::after { content: "”"; color: var(--accent); }
  .art-body .endmark { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; color: var(--muted); margin-top: 40px; }
  .art-body .kicker { font-family: var(--font-display); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--mark); margin: 2em 0 0.3em; }

  /* Studio sign-off card */
  .art-signoff { max-width: 1200px; margin: 48px auto 0; padding: 32px; border: 1px solid var(--rule); background: var(--paper-2); }
  .art-signoff .k { font-family: var(--font-display); font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink-soft); }
  .art-signoff p { font-family: var(--font-body); font-size: 17px; line-height: 1.55; color: var(--ink-soft); margin: 12px 0 0; }
  .art-signoff .meta { margin-top: 16px; font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--muted); line-height: 1.7; }
  .art-signoff a { color: var(--accent); }

  /* Inline article figures */
  .art-body figure { margin: clamp(36px,5vw,56px) 0; }
  .art-body figure img { width: 100%; height: auto; display: block; }
  .art-body figcaption { font-family: var(--font-display); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); margin-top: 12px; }
  .art-body .fig-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: clamp(36px,5vw,56px) 0; }
  .art-body .fig-row figure { margin: 0; }
  @media (max-width: 640px) { .art-body .fig-row { grid-template-columns: 1fr; } }

  /* More from the studio */
  .art-more { background: var(--ink); color: var(--paper); padding: var(--s-9) 0; }
  .am-inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--gutter); }
  .am-inner .eyebrow { color: var(--paper-3); }
  .am-inner h2 { font-family: var(--font-body); font-weight: 300; font-size: clamp(32px, 4vw, 56px); line-height: 1.0; letter-spacing: -0.02em; margin: 12px 0 40px; }
  .am-inner h2 em { color: var(--sky); font-style: italic; }
  .am-list { display: grid; grid-template-columns: 1fr; }
  .am-row {
    display: grid; grid-template-columns: 1fr 200px auto; gap: 32px; align-items: baseline;
    padding: 26px 0; border-top: 1px solid color-mix(in oklab, var(--paper) 16%, transparent);
    text-decoration: none; transition: padding .25s var(--ease);
  }
  .am-row:last-child { border-bottom: 1px solid color-mix(in oklab, var(--paper) 16%, transparent); }
  .am-row:hover { padding-left: 12px; }
  .am-row .t { font-family: var(--font-body); font-size: clamp(20px, 2vw, 27px); line-height: 1.15; color: var(--paper); }
  .am-row:hover .t { color: var(--sky); }
  .am-row .c { font-family: var(--font-display); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--paper-3); }
  .am-row .ar { font-family: var(--font-body); font-size: 24px; color: var(--sky); transition: transform .2s var(--ease); }
  .am-row:hover .ar { transform: translateX(6px); }

  @media (max-width: 760px) {
    .am-row { grid-template-columns: 1fr; gap: 6px; }
    .am-row .c { order: -1; }
    .am-row .ar { display: none; }
  }

/* ── WordPress adaptations ──────────────────────────────────────────────
 * The single-post template (templates/single.html) rebuilds the prototype
 * DOM with core blocks, whose wrappers differ slightly from article.html.
 * Everything above is verbatim from the prototype; the rules below map the
 * block wrappers onto the same design. */

/* Category eyebrow: wp:post-terms renders a div with links inside .crumb. */
.art-head .crumb .cat,
.art-head .crumb .cat a { color: var(--mark); text-decoration: none; }
.art-head .crumb .cat a:hover { color: var(--mark); }

/* Standfirst: wp:post-excerpt renders a div wrapping a p. */
.art-head .standfirst p {
  font-family: var(--font-body); font-style: italic; font-weight: 300;
  font-size: clamp(20px, 2vw, 27px); line-height: 1.4; color: var(--ink-soft);
  margin: 0; text-wrap: pretty;
}

/* Byline date: wp:post-date renders a div wrapping a time element. */
.art-head .byline .wp-block-post-date { color: inherit; }
.art-head .byline .wp-block-post-date time { font: inherit; }

/* Hero figure ships as the first block of post content (per-post image). */
.art-body figure.art-hero-fig { margin: 0 0 clamp(36px, 5vw, 56px); }
.art-body figure.art-hero-fig img { aspect-ratio: 16/9; object-fit: cover; }

/* "More from the studio": core Query Loop renders ul.wp-block-post-template
 * with li rows; each row holds a post-title link and post-terms instead of a
 * single wrapping anchor. */
.am-list ul.wp-block-post-template { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; }
.am-list li.wp-block-post { margin: 0; }
.am-row { grid-template-columns: 1fr 200px; }
.am-list li.wp-block-post:last-child .am-row { border-bottom: 1px solid color-mix(in oklab, var(--paper) 16%, transparent); }
.am-row .t { font-weight: 300; margin: 0; letter-spacing: normal; }
.am-row .t a { color: inherit; text-decoration: none; }
.am-row .c, .am-row .c a { color: var(--paper-3); text-decoration: none; }

/* Hero figure: in the prototype the hero band sits outside the body column,
   flush under the article header (56px from the byline). In WordPress it is
   the first block of post content, so remove the body column's top padding
   and let the figure own the 80px gap down to the text. */
.art-body { padding-top: 0; }
.art-body figure.art-hero-fig { margin: 0 0 80px; }
