/* Hallmark · macrostructure: Ecosystem Index · tone: editorial · anchor hue: copper
 * The Plumbing Exchange. Homepage only; tokens loaded as a stylesheet dependency.
 * Newsreader / Figtree. One copper junction, numbered chapters, conversation lines,
 * complete directory register. Feedback only; no spatial animation.
 */
body.af-exchange-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
  color: var(--color-ex-ink);
  background: var(--color-ex-paper);
  .af-workspace--edition { width: 100%; max-width: none; padding: 0; }

  .af-exchange { max-width: var(--layout-ex-width); padding: var(--space-ex-xl) var(--space-ex-xl) var(--space-ex-3xl); margin-inline: auto; font: 400 var(--text-ex-body)/1.5 var(--font-ex-body); }
  .af-exchange * { box-sizing: border-box; }
  .af-exchange :is(h1,h2,h3,h4,h5,h6,p,figure,ul) { margin: 0; padding: 0; }
  .af-exchange :is(h1,h2,h3,h4,h5,h6) { color: var(--color-ex-ink); text-transform: none; font-style: normal; }
  .af-exchange :is(h1,h2) { font-family: var(--font-ex-display) !important; font-weight: 500; letter-spacing: -.025em; }
  .af-exchange :is(h3,h4,h5,h6) { font-family: var(--font-ex-body) !important; letter-spacing: 0; }
  .af-exchange p { font: 400 var(--text-ex-body)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-exchange ul { list-style: none; }
  .af-exchange a { color: inherit; text-decoration: none; white-space: normal; overflow-wrap: anywhere; transition: none; }
  .af-exchange :is(a,button,input):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper) !important; outline-offset: var(--space-ex-2xs); }
  .af-exchange :is(a,button):active { color: var(--color-ex-copper-pressed); }
  .af-exchange [hidden] { display: none !important; }
  .af-exchange :is(section,aside,[id]) { scroll-margin-top: var(--layout-ex-anchor); }
  .af-ex-layout { display: grid; grid-template-columns: minmax(0,1fr) var(--layout-ex-rail); column-gap: var(--space-ex-xl); align-items: stretch; }
  .af-ex-layout--community { grid-template-columns: minmax(0,1fr); max-width: 72rem; margin-inline: auto; }
  .af-ex-main { min-width: 0; }
  .af-ex-shortcuts { display: none; }

  /* A single, deliberately small construction detail at each structural opening. */
  .af-ex-junction { position: relative; border-top: var(--rule-ex-fine) solid var(--color-ex-rule); padding-top: var(--space-ex-lg); }
  .af-ex-junction::before { content: ''; position: absolute; top: calc(-1 * var(--rule-ex-fine)); left: 0; width: 28px; height: 12px; border-top: var(--rule-ex-focus) solid var(--color-ex-copper); border-left: var(--rule-ex-focus) solid var(--color-ex-copper); pointer-events: none; }
  .af-ex-intro { display: grid; grid-template-columns: minmax(0,1fr) var(--layout-ex-image); gap: var(--space-ex-lg); }
  .af-ex-intro-copy { min-width: 0; }
  .af-ex-intro h1 { min-width: 0; max-width: none; font-size: var(--text-ex-intro); line-height: 1.06; text-wrap: balance; overflow-wrap: anywhere; }
  .af-ex-intro-copy > p { max-width: 58ch; margin-top: var(--space-ex-sm); }
  .af-ex-image { position: relative; width: var(--layout-ex-chapter-image); flex-shrink: 0; align-self: center; }
  .af-ex-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
  .af-ex-image figcaption { padding-top: var(--space-ex-2xs); text-align: right; color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-ex-image--lead { width: var(--layout-ex-image); align-self: start; }
  .af-ex-image--lead img { height: 240px; min-height: 228px; aspect-ratio: auto; object-position: 50% 54%; }
  .af-ex-image--lead figcaption { position: absolute; right: 0; bottom: 0; padding: var(--space-ex-2xs) var(--space-ex-xs); background: var(--color-ex-deep); color: var(--color-ex-paper); }
  .af-ex-search { margin-top: var(--space-ex-md); }
  .af-ex-search label, .af-ex-search-label { display: block; margin-bottom: var(--space-ex-xs); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-ink); }
  /* Hallmark · component: shared discussion-search launcher · P5 H5 E5 S5 R5 V4.
   * One native dialog and results flow for the masthead and homepage. */
  .af-ex-discussion-trigger { display: flex; align-items: stretch; width: 100%; min-width: 0; min-height: var(--control-ex-height); border: var(--rule-ex-fine) solid var(--color-ex-field); border-radius: var(--radius-city-dropdown); background: var(--color-ex-paper); color: var(--color-ex-secondary); cursor: pointer; }
  .af-ex-discussion-hint { align-self: center; min-width: 0; flex: 1; padding: var(--space-ex-xs) var(--space-ex-sm); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font: 400 var(--text-ex-body)/1.4 var(--font-ex-body); }
  .af-ex-discussion-icon { display: grid; place-items: center; flex: 0 0 var(--control-ex-height); min-height: var(--control-ex-height); background: var(--color-ex-copper); color: var(--color-ex-paper); border-radius: 0 var(--radius-city-dropdown) var(--radius-city-dropdown) 0; }
  .af-ex-discussion-trigger:active { background: var(--color-ex-porcelain); color: var(--color-ex-copper-pressed); }
  .af-ex-discussion-trigger:active .af-ex-discussion-icon { background: var(--color-ex-copper-pressed); color: var(--color-ex-paper); }
  @media (hover: hover) { .af-ex-discussion-trigger:hover { border-color: var(--color-ex-copper); background: var(--color-ex-porcelain); color: var(--color-ex-ink); } }
  .af-ex-search-field { display: flex; align-items: stretch; gap: 0; border: var(--rule-ex-fine) solid var(--color-ex-field); border-radius: var(--radius-ex-control); background: var(--color-ex-paper); }
  .af-ex-search-field input { width: 100%; min-width: 0; min-height: var(--control-ex-height); height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-sm); border: 0 !important; border-radius: 0; background: var(--color-ex-clear); color: var(--color-ex-ink); box-shadow: none; font: 400 var(--text-ex-body)/1.4 var(--font-ex-body); }
  .af-ex-search-field input::placeholder { color: var(--color-ex-secondary); opacity: 1; }
  .af-ex-search-field button { display: grid; place-items: center; flex: 0 0 var(--control-ex-height); min-width: var(--control-ex-height); min-height: var(--control-ex-height); padding: 0; border: 0; border-radius: 0; background: var(--color-ex-copper); color: var(--color-ex-paper); }
  .af-ex-search-field svg { width: 20px; height: 20px; }
  .af-ex-search .af-ex-search-status { min-height: 1.4em; margin-top: var(--space-ex-2xs); font-size: var(--text-ex-meta); color: var(--color-ex-copper); }
  .af-ex-search-status:empty { visibility: hidden; }
  .af-ex-search-field:has(input[aria-invalid="true"]) { border-color: var(--color-ex-copper); }
  .af-exchange :is(input,button):disabled { opacity: .55; cursor: not-allowed; }
  .af-ex-intro-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-ex-xs) var(--space-ex-md); padding-block: var(--space-ex-sm) var(--space-ex-md); }
  .af-ex-intro-bottom .af-ex-scale { font-size: var(--text-ex-meta); font-variant-numeric: tabular-nums; }
  .af-exchange .af-ex-action { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-ex-lg); min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border-radius: var(--radius-ex-control); background: var(--color-ex-copper); color: var(--color-ex-paper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-ex-section-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-md); min-height: var(--control-ex-height); margin-bottom: var(--space-ex-xs); }
  .af-ex-section-head h2 { font: 600 var(--text-ex-section)/1.2 var(--font-ex-body) !important; letter-spacing: -.015em; }
  .af-exchange .af-ex-text-action { display: inline-flex; align-items: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }

  /* Conversation typography is the same in the opening and the complete index. */
  .af-ex-row { display: grid; grid-template-columns: 28px minmax(0,1fr) 16px; align-items: center; gap: var(--space-ex-sm); min-height: 72px; padding: var(--space-ex-sm) var(--space-ex-xs); border-bottom: var(--rule-ex-fine) solid var(--color-ex-row-rule); }
  .af-ex-row:last-child { border-bottom: 0; }
  .af-ex-initial { display: grid; place-items: center; width: 28px; height: 28px; background: var(--color-ex-porcelain); border-radius: 50%; color: var(--color-ex-secondary); font: 500 var(--text-ex-meta)/1 var(--font-ex-body); }
  .af-ex-row-copy { min-width: 0; }
  .af-ex-topic { display: inline; color: var(--color-ex-ink); font: 500 var(--text-ex-topic)/1.4 var(--font-ex-body) !important; overflow-wrap: anywhere; }
  .af-ex-byline { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: var(--space-ex-xs); margin-top: var(--space-ex-2xs); color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.35 var(--font-ex-body); }
  .af-ex-byline > a { color: var(--color-ex-secondary); }
  .af-ex-replies { display: flex; flex-direction: column; align-items: end; color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.25 var(--font-ex-body); font-variant-numeric: tabular-nums; }
  .af-ex-replies strong { color: var(--color-ex-ink); font-weight: 500; }
  .af-ex-row-arrow { color: var(--color-ex-secondary); font-size: var(--text-ex-body); }
  .af-ex-recent + .af-ex-recent { margin-top: var(--space-ex-xl); }
  .af-ex-rows--recent .af-ex-row { min-height: 80px; }
  .af-ex-rows--recent .af-ex-row:first-child .af-ex-topic { font-weight: 600 !important; }
  .af-ex-row:focus-within { background: var(--color-ex-hover); }
  .af-ex-row:focus-within .af-ex-topic { color: var(--color-ex-copper); text-decoration: underline; text-underline-offset: .2em; }

  .af-ex-index { padding: var(--space-ex-lg); margin-block: var(--space-ex-xl) var(--space-ex-2xl); background: var(--color-ex-porcelain); }
  .af-ex-index-note { color: var(--color-ex-secondary); font-size: var(--text-ex-meta); }
  .af-ex-contents { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: var(--space-ex-xl); }
  .af-ex-contents a { display: grid; grid-template-columns: 24px minmax(0,1fr) 12px; align-items: center; gap: var(--space-ex-sm); min-height: 52px; padding-block: var(--space-ex-xs); font: 500 var(--text-ex-city)/1.4 var(--font-ex-body); }
  .af-ex-contents-number { color: var(--color-ex-copper); font: 500 var(--text-ex-meta)/1 var(--font-ex-body); font-variant-numeric: tabular-nums; }
  .af-ex-contents-arrow { color: var(--color-ex-secondary); }
  .af-ex-chapter + .af-ex-chapter { margin-top: var(--space-ex-2xl); }
  .af-ex-chapter-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-lg); padding-top: var(--space-ex-md); padding-bottom: var(--space-ex-lg); }
  .af-ex-chapter-head .af-ex-image figcaption { position: absolute; top: 100%; right: 0; }
  .af-ex-chapter-copy { min-width: 0; }
  .af-ex-ordinal { display: block; margin-bottom: var(--space-ex-xs); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1 var(--font-ex-body); font-variant-numeric: tabular-nums; }
  .af-ex-chapter h2 { font-size: var(--text-ex-chapter); line-height: 1.1; text-wrap: balance; }
  .af-ex-chapter-copy > p { margin-top: var(--space-ex-xs); font-size: var(--text-ex-city); }
  .af-ex-chapter-body { padding-left: var(--space-ex-md); }
  .af-ex-forum + .af-ex-forum { margin-top: var(--space-ex-lg); }
  .af-ex-forum .af-ex-forum { margin-top: var(--space-ex-lg); margin-left: var(--space-ex-md); }
  .af-ex-forum-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-ex-md); padding: var(--space-ex-xs) 0; }
  .af-ex-forum-head :is(h3,h4,h5,h6), .af-ex-forum-head :is(h3,h4,h5,h6) a { font: 600 var(--text-ex-subforum)/1.3 var(--font-ex-body) !important; }
  .af-ex-forum-count { flex-shrink: 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); font-variant-numeric: tabular-nums; }
  .af-ex-forum .af-ex-rows { margin-left: var(--space-ex-xs); }
  .af-ex-empty { padding: var(--space-ex-sm) var(--space-ex-xs); }
  .af-ex-empty a { color: var(--color-ex-copper); text-decoration: underline; text-underline-offset: .2em; }
  .af-ex-chapter-end { display: flex; justify-content: space-between; gap: var(--space-ex-md); margin-top: var(--space-ex-lg); padding-left: var(--space-ex-md); }
  .af-ex-chapter-end a, .af-ex-back { display: inline-flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-copper); }

  .af-ex-directory { min-width: 0; padding-left: var(--space-ex-lg); border-left: var(--rule-ex-fine) solid var(--color-ex-row-rule); }
  .af-ex-directory-intro .af-ex-kicker { margin-bottom: var(--space-ex-xs); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-ex-directory-intro h2 { font-size: var(--text-ex-directory); line-height: 1.05; }
  .af-ex-directory-intro > p:last-child { margin-top: var(--space-ex-sm); font-size: var(--text-ex-city); }
  .af-ex-country-jumps { display: flex; gap: var(--space-ex-lg); padding-block: var(--space-ex-xs); }
  .af-ex-country-jumps a { display: inline-flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); font-size: var(--text-ex-meta); color: var(--color-ex-copper); }
  /* Hallmark · component: city combobox · editorial · Plumbing water/navy.
   * Anchored suggestions, native links, no layout shift. P5 H5 E5 S5 R5 V4. */
  .af-ex-city-control { position: relative; }
  .af-ex-city-dropdown { position: absolute; inset: calc(100% + var(--space-ex-2xs)) 0 auto; z-index: var(--z-city-dropdown); box-sizing: border-box; margin: 0; padding: 0; max-height: var(--size-city-dropdown); display: flex; flex-direction: column; overflow: clip; background: var(--color-ex-paper); color: var(--color-ex-ink); border: var(--rule-ex-fine) solid var(--color-ex-rule); border-radius: var(--radius-city-dropdown); box-shadow: var(--shadow-city-dropdown); }
  .af-ex-city-dropdown[data-positioned] { position: fixed; inset: auto; top: var(--city-dropdown-top); left: var(--city-dropdown-left); width: var(--city-dropdown-width); max-height: min(var(--size-city-dropdown), var(--city-dropdown-height)); }
  .af-ex-city-dropdown[hidden], .af-ex-city-dropdown[popover]:not(:popover-open) { display: none; }
  .af-ex-city-feedback { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: var(--space-ex-xs); padding: var(--space-ex-2xs) var(--space-ex-sm); background: var(--color-ex-porcelain); color: var(--color-ex-secondary); }
  .af-ex-city-feedback p { font-size: var(--text-ex-meta); }
  .af-ex-city-results { list-style: none; min-height: 0; margin: 0; padding: 0; overflow-y: auto; overscroll-behavior: contain; }
  .af-ex-city-results li + li { border-top: var(--rule-ex-fine) solid var(--color-ex-row-rule); }
  .af-ex-city-results a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-xs); min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-sm); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-ex-city-results a[aria-selected="true"] { background: var(--color-ex-porcelain); color: var(--color-ex-copper-pressed); }
  .af-ex-city-results a:active { background: var(--color-ex-hover); color: var(--color-ex-copper-pressed); }
  .af-ex-city-results a:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: calc(-1 * var(--rule-ex-focus)); }
  .af-ex-city-control:focus-within .af-ex-search-field { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  .af-ex-city-control:has(input:disabled) { opacity: .55; }
  .af-ex-city-control:has(input[aria-busy="true"]) .af-ex-search-field { border-style: dashed; }
  .af-ex-city-control:has(input[aria-invalid="true"]) .af-ex-search-field { border-color: var(--color-ex-copper-pressed); }
  .af-ex-city-dropdown[data-state="empty"] .af-ex-city-feedback { align-items: start; padding-block: var(--space-ex-sm); }
  @media (hover: hover) { .af-ex-city-results a:hover { background: var(--color-ex-porcelain); color: var(--color-ex-copper-pressed); } }
  .af-ex-city-results small { display: block; color: var(--color-ex-secondary); font-weight: 400; }
  .af-ex-reset { flex-shrink: 0; min-height: var(--control-ex-height); border: 0; padding: 0 var(--space-ex-2xs); background: var(--color-ex-clear); color: var(--color-ex-copper); text-decoration: underline; font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-ex-business { margin: 0 0 var(--space-ex-lg); padding: var(--space-ex-md); background: var(--color-ex-porcelain); border-left: var(--rule-ex-focus) solid var(--color-ex-copper); }
  .af-ex-business h3 { font: 600 var(--text-ex-body)/1.3 var(--font-ex-body) !important; }
  .af-ex-business p { margin-top: var(--space-ex-xs); font-size: var(--text-ex-meta); }
  .af-ex-business .af-ex-text-action { margin-top: var(--space-ex-2xs); }
  .af-ex-country + .af-ex-country { margin-top: var(--space-ex-xl); padding-top: var(--space-ex-lg); border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-ex-country h3 { margin-bottom: var(--space-ex-xs); }
  .af-ex-country h3, .af-ex-country h3 a { font: 600 var(--text-ex-subforum)/1.3 var(--font-ex-body) !important; }
  .af-ex-country h3 > a { display: flex; align-items: center; justify-content: space-between; min-height: var(--control-ex-height); }
  .af-ex-country h3 > a span { color: var(--color-ex-copper); font-size: var(--text-ex-body); }
  .af-ex-state + .af-ex-state { margin-top: var(--space-ex-md); }
  .af-ex-state h4, .af-ex-state h4 a { font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body) !important; }
  .af-ex-state h4 a { display: flex; align-items: center; min-height: var(--control-ex-height); }
  .af-ex-state li > a { display: flex; justify-content: space-between; align-items: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); padding: var(--space-ex-xs); font: 400 var(--text-ex-city)/1.35 var(--font-ex-body); }
  .af-ex-state li small { display: block; color: var(--color-ex-secondary); font-size: var(--text-ex-caption); line-height: 1.4; margin-top: var(--space-ex-2xs); }
  .af-ex-city-arrow { color: var(--color-ex-secondary); }
  .af-ex-back { margin-top: var(--space-ex-lg); }
  .af-ex-return { position: sticky; top: var(--space-ex-xl); display: grid; grid-template-columns: minmax(0,1fr); margin-top: var(--space-ex-xl); padding-top: var(--space-ex-sm); border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-ex-return a { display: flex; align-items: center; justify-content: space-between; min-height: var(--control-ex-height); color: var(--color-ex-secondary); font-size: var(--text-ex-meta); }


}

@media (hover: hover) {
  body.af-exchange-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    .af-exchange a:hover { color: var(--color-ex-copper); text-decoration: underline; text-underline-offset: .2em; }
    .af-ex-row:hover, .af-ex-state li a:hover { background: var(--color-ex-hover); }
    .af-ex-row:hover .af-ex-topic { color: var(--color-ex-copper); text-decoration: underline; text-underline-offset: .2em; }
    .af-exchange .af-ex-action:hover, .af-ex-search-field button:hover { background: var(--color-ex-copper-pressed); color: var(--color-ex-paper); text-decoration: none; }
  }
}
@media (max-width: 75rem) and (min-width: 68rem) {
  body.af-exchange-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    .af-ex-intro { grid-template-columns: minmax(0,1fr); }
    .af-ex-image--lead { display: none; }
  }
}
@media (max-width: 67.99rem) {
  body.af-exchange-home { --layout-ex-anchor: var(--space-ex-md); }
  body.af-exchange-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    .af-ex-layout { grid-template-columns: minmax(0,1fr); }
    .af-ex-topic, .af-ex-chapter h2 a { display: flex; align-items: center; min-height: var(--control-ex-height); }
    .af-exchange { padding: 0 var(--space-ex-lg) var(--space-ex-2xl); }
    .af-ex-shortcuts { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-xs); padding-block: var(--space-ex-xs); }
    .af-ex-shortcuts a { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
    .af-ex-directory { border: 0; padding: 0; margin-top: var(--space-ex-3xl); }
    .af-ex-return { display: none; }
    .af-ex-register { max-width: 40rem; }
    .af-ex-country-jumps { justify-content: start; }
  }
}
@media (max-width: 37.49rem) {
  body.af-exchange-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    .af-exchange { padding-inline: var(--space-ex-md); }
    .af-ex-intro { grid-template-columns: minmax(0,1fr); }
    .af-ex-intro h1 { font-size: var(--text-ex-intro-mobile); line-height: 1.08; }
    .af-ex-image--lead { display: none; }
    .af-ex-intro-bottom { gap: var(--space-ex-xs); padding-block: var(--space-ex-md); }
    .af-ex-intro-bottom .af-ex-scale { width: 100%; }
    .af-ex-action { width: 100%; }
    .af-ex-section-head { flex-wrap: wrap; gap: var(--space-ex-2xs) var(--space-ex-sm); }
    .af-ex-section-head h2 { font-size: var(--text-ex-subforum) !important; }
    .af-ex-section-head .af-ex-text-action { font-size: var(--text-ex-meta); }
    .af-ex-row { grid-template-columns: 24px minmax(0,1fr); gap: 0 var(--space-ex-xs); padding: var(--space-ex-sm) 0; }
    .af-ex-initial { grid-row: 1; width: 24px; height: 24px; align-self: start; margin-top: var(--space-ex-xs); }
    .af-ex-row-copy { display: contents; }
    .af-ex-topic { grid-column: 2 / -1; grid-row: 1; display: flex; align-items: center; min-height: var(--control-ex-height); }
    .af-ex-byline { grid-column: 2; grid-row: 2; column-gap: var(--space-ex-xs); margin-top: 0; font-size: var(--text-ex-meta); }
    .af-ex-byline a { display: inline-flex; align-items: center; min-height: 24px; }
    .af-ex-byline .af-ex-row-forum { flex-basis: 100%; }
    .af-ex-byline:has(.af-ex-row-forum) .af-ex-byline-dot { display: none; }
    .af-ex-replies { grid-column: 3; grid-row: 2; align-self: start; flex-direction: column; align-items: end; padding-top: var(--space-ex-2xs); }
    .af-ex-row-arrow { display: none; }
    .af-ex-index { padding: var(--space-ex-md); margin-top: var(--space-ex-lg); margin-bottom: var(--space-ex-xl); }
    .af-ex-index-note { font-size: var(--text-ex-meta); }
    .af-ex-contents { grid-template-columns: minmax(0,1fr); }
    .af-ex-contents a { min-height: 56px; }
    .af-ex-chapter-head { flex-wrap: wrap; align-items: start; gap: var(--space-ex-md); }
    .af-ex-chapter h2 { font-size: 1.75rem; line-height: 1.12; }
    .af-ex-chapter-head .af-ex-image { width: 112px; }
    .af-ex-chapter-head:has(.af-ex-image) .af-ex-chapter-copy { flex: 1 1 15rem; }
    .af-ex-chapter-head .af-ex-image figcaption { text-align: left; }
    .af-ex-chapter-body, .af-ex-chapter-end { padding-left: 0; }
    .af-ex-forum .af-ex-rows { margin-left: 0; }
    .af-ex-forum-head { flex-wrap: wrap; align-items: start; gap: 0 var(--space-ex-xs); }
    .af-ex-forum-head :is(h3,h4,h5,h6) a { display: inline-flex; align-items: center; min-height: var(--control-ex-height); }
    .af-ex-forum-count { padding-bottom: var(--space-ex-xs); }
    .af-ex-chapter + .af-ex-chapter { margin-top: var(--space-ex-xl); }
    .af-ex-chapter-end { flex-wrap: wrap; gap: 0 var(--space-ex-md); }
    .af-ex-directory-intro h2 { font-size: var(--text-ex-directory); }
    .af-ex-directory-intro > p:last-child { max-width: 36ch; }
    .af-ex-business { margin-top: var(--space-ex-xs); padding: var(--space-ex-lg); }
  }
}
@media (prefers-reduced-motion: reduce) {
  body.af-exchange-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange * { scroll-behavior: auto; animation: none; transition: none; }
}
/* Keep the realistic Plumbing hero's faucet complete within the existing image slot. */
body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-ex-image--plumbing-hero img { object-position: 50% 0%; }

/* Hallmark · component: Plumbing homepage text-only discussion rows · P5 H5 E5 S5 R5 V4. */
body.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange {
  .af-ex-row { grid-template-columns: minmax(0, 1fr) 16px; }
}
@media (max-width: 37.49rem) {
  body.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange {
    .af-ex-row { grid-template-columns: minmax(0, 1fr); }
    .af-ex-topic { grid-column: 1 / -1; }
    .af-ex-byline { grid-column: 1; }
    .af-ex-replies { grid-column: 2; }
  }
}

/* Hallmark · component: integrated category photography · P5 H5 E5 S5 R5 V4.
 * Shared region, close title/photo grouping and consistent crops; no decorative frames. */
body.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange {
  --size-category-photo: 7rem;
  --size-category-photo-primary: 9rem;
  :is(.af-ex-chapter-head,.af-ex-forum-head) { display: grid; grid-template-columns: var(--size-category-photo) minmax(0,1fr); align-items: center; gap: var(--space-ex-md); padding: var(--space-ex-md); background: var(--color-ex-porcelain); border: 0; border-radius: var(--radius-premium-card); }
  .af-ex-chapter-head { grid-template-columns: var(--size-category-photo-primary) minmax(0,1fr); gap: var(--space-ex-lg); padding: var(--space-ex-lg); margin-bottom: var(--space-ex-lg); }
  .af-ex-chapter-head::before { content: none; }
  :is(.af-ex-chapter-copy,.af-ex-forum-heading) { grid-column: 2; grid-row: 1; min-width: 0; }
  .af-ex-forum-heading { display: flex; flex-direction: column; gap: var(--space-ex-2xs); }
  .af-ex-forum-heading :is(h3,h4,h5,h6) { min-width: 0; overflow-wrap: anywhere; }
  :is(.af-ex-chapter-head,.af-ex-forum-head) .af-ex-image { grid-column: 1; grid-row: 1; width: 100%; min-width: 0; margin: 0; align-self: center; border-radius: var(--radius-premium-button); overflow: clip; background: var(--color-ex-paper); }
  :is(.af-ex-chapter-head,.af-ex-forum-head) .af-ex-image img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; object-position: center; }
}
@media (max-width: 37.49rem) {
  body.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange {
    --size-category-photo: 4.5rem;
    --size-category-photo-primary: 5rem;
    :is(.af-ex-chapter-head,.af-ex-forum-head) { padding: var(--space-ex-sm); gap: var(--space-ex-sm); }
    .af-ex-chapter-head { margin-bottom: var(--space-ex-md); }
    .af-ex-forum-count { padding-bottom: 0; }
  }
}

/* Hallmark · component: local discussion list accents · genre: editorial · design-system: design.md
 * Existing conversation rows, activity counts and chronological labels. P5 H5 E5 S5 R5 V4. */
body.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange {
  .af-ex-feed .af-ex-feed-head { min-width: 0; padding: var(--space-ex-xs) var(--space-ex-sm); border-radius: var(--radius-feed-header); }
  .af-ex-feed--trending .af-ex-feed-head { background: var(--color-feed-activity-header); }
  .af-ex-feed--newest .af-ex-feed-head { background: var(--color-feed-newest-header); }
  .af-ex-feed .af-ex-feed-head h2 { display: flex; align-items: center; gap: var(--space-ex-xs); min-width: 0; }
  .af-ex-feed-head h2 .af-icon { color: var(--color-ex-copper); font-family: var(--fa-style-family-classic) !important; font-size: var(--text-ex-body); }
  .af-ex-feed-heading { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-ex-xs) var(--space-ex-sm); min-width: 0; }
  .af-ex-feed .af-ex-topic { display: inline-flex; align-items: center; min-height: var(--control-ex-height); }
  .af-ex-feed .af-ex-replies { align-items: center; text-align: center; }
  .af-ex-row--trending .af-ex-replies strong { color: var(--color-ex-copper); font-weight: 600; }
  .af-ex-feed-people { display: inline-flex; align-items: center; gap: var(--space-ex-2xs); color: var(--color-ex-secondary); }
  .af-ex-feed-people .af-icon { font-size: var(--text-ex-caption); }
  .af-ex-feed-unanswered { color: var(--color-ex-copper); font-weight: 500; }
}
@media (max-width: 47.99rem) {
  body.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange {
    .af-ex-feed .af-ex-feed-head { flex-direction: column; align-items: start; gap: 0; }
    .af-ex-feed-heading { flex-direction: column; align-items: start; gap: var(--space-ex-2xs); }
    .af-ex-feed .af-ex-feed-head h2 { min-height: var(--control-ex-height); }
    .af-ex-feed .af-ex-text-action { white-space: nowrap; }
  }
}
