/* Hallmark · genre: editorial · macrostructure: Index / Reading / Catalogue / Forms
 * design-system: design.md · designed-as-app · The Plumbing Exchange
 * One network palette and shared masthead, controls and footer across routes.
 * Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V4.
 */
body.af-exchange-design,
body.af-exchange-design [data-af-palette] {
  --color-publication-paper: var(--color-ex-paper);
  --color-publication-surface: var(--color-ex-paper);
  --color-publication-soft: var(--color-ex-porcelain);
  --color-publication-ink: var(--color-ex-ink);
  --color-publication-ink-2: var(--color-ex-secondary);
  --color-publication-muted: var(--color-ex-secondary);
  --color-publication-rule: var(--color-ex-rule);
  --color-publication-rule-strong: var(--color-ex-field);
  --color-publication-accent: var(--color-ex-copper);
  --color-publication-accent-hover: var(--color-ex-copper-pressed);
  --color-publication-accent-soft: var(--color-ex-porcelain);
  --color-publication-reverse-muted: var(--color-ex-reverse);
  --color-plumbing-signal: var(--color-ex-copper-light);
  --color-plumbing-signal-hover: var(--color-ex-reverse);
  --color-plumbing-thread-rule: var(--color-ex-row-rule);
  --color-scrim: color-mix(in oklch, var(--color-ex-deep) 50%, var(--color-ex-clear));
  --color-shadow: color-mix(in oklch, var(--color-ex-deep) 12%, var(--color-ex-clear));
  --font-plumbing-display: var(--font-ex-display);
  --text-plumbing-title: clamp(var(--text-ex-intro-mobile), 3.6vw, var(--text-ex-intro));
  --text-plumbing-section: var(--text-ex-chapter);
  --text-plumbing-hero: var(--text-plumbing-title);
  --text-publication-discovery: var(--text-plumbing-title);
  --radius-xs: var(--radius-ex-control);
  --radius-sm: var(--radius-ex-control);
  --radius-md: var(--radius-ex-control);
}

body.af-exchange-design { background: var(--color-ex-paper); }

body.af-exchange-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.aigenforums-directory {
  color: var(--color-ex-ink);
  background: var(--color-ex-paper);

  /* Both existing shells use the same masthead geometry and inverse colors. */
  :is(.af-publication-header,.af-publication-masthead,.af-dir-appbar,.af-publication-nav,.af-dir-primary-nav) {
    --color-ink: var(--color-ex-paper);
    --color-ink-2: var(--color-ex-reverse);
    --color-muted: var(--color-ex-reverse);
    --color-accent: var(--color-ex-paper);
    --color-focus: var(--color-ex-paper);
    color: var(--color-ex-paper); background: var(--color-ex-deep);
  }
  :is(.af-publication-masthead__inner,.af-dir-appbar__inner) { width: 100%; max-width: var(--layout-ex-width); margin-inline: auto; padding: var(--space-ex-sm) var(--space-ex-xl) 0; min-height: 64px; }
  :is(.af-brand__name,.af-dir-brand__name) { font: 500 var(--text-ex-wordmark)/1 var(--font-ex-display); letter-spacing: -.04em; color: var(--color-ex-paper); white-space: nowrap; }
  .af-exchange-descriptor { margin: var(--space-ex-2xs) var(--space-ex-md) 0; text-align: center; color: var(--color-ex-reverse); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  :is(.af-publication-nav,.af-dir-primary-nav) { min-height: var(--control-ex-height); padding-block: 0; }
  :is(.af-publication-nav,.af-dir-primary-nav) a { min-height: var(--control-ex-height); color: var(--color-ex-reverse); }
  :is(.af-new-topic,.af-dir-business-link) { background: var(--color-ex-paper); color: var(--color-ex-deep); border-color: var(--color-ex-paper); }
  :is(.af-publication-header,.af-dir-appbar) :is(a,button):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-paper) !important; outline-offset: var(--space-ex-2xs); }

  /* Repeated headings and conversation titles share the homepage type scale. */
  :is(.af-view-header,.af-thread-header,.af-route-header,.af-auth-header,.af-profile-head,.af-dir-page-head,.af-platform-market-header,.af-dir-profile-hero,.af-dir-form-header) h1,
  #wpforo-title {
    font: 500 var(--text-plumbing-title)/1.1 var(--font-ex-display); letter-spacing: -.025em; color: var(--color-ex-ink); max-width: 30ch;
  }
  :is(.af-conversation h3,.af-conversation h3 a,.af-index-discussion__title,.af-index-discussion__title > a,.af-search-result h3,.af-search-result h3 a,.af-related-list a) {
    font: 550 var(--text-ex-topic)/1.4 var(--font-ex-body) !important; letter-spacing: normal;
  }
  :is(.af-view-header,.af-thread-header,.af-route-header,.af-auth-header,.af-platform-market-header,.af-dir-page-head,.af-dir-profile-hero--text) {
    position: relative; border-top: var(--rule-ex-fine) solid var(--color-ex-rule); padding-top: var(--space-ex-lg);
  }
  :is(.af-view-header,.af-thread-header,.af-route-header,.af-auth-header,.af-platform-market-header,.af-dir-page-head,.af-dir-profile-hero--text)::before {
    content: ""; position: absolute; top: calc(-1 * var(--rule-ex-fine)); left: 0; width: var(--space-ex-lg); height: var(--space-ex-xs); 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-topic-feed { padding-inline: 0; background: var(--color-ex-paper); }
  .af-workspace--thread .wpf-navi-wrap { grid-template-columns: minmax(0,1fr); }
  .af-workspace--thread .wpf-forum-jump { min-width: 0; max-width: 100%; }
  .af-workspace--thread .wpf-forum-jump select { min-width: 0; max-width: 100%; width: 100%; }
  .af-index-discussion.wpf-thread { border-color: var(--color-ex-row-rule); }
  .af-topic-feed__head :is(h2,h3) { font: 600 var(--text-ex-body)/1.4 var(--font-ex-body) !important; }
  .af-conversation { background: var(--color-ex-clear); border-color: var(--color-ex-row-rule); }
  .af-conversation:hover { background: var(--color-ex-porcelain); }
  .af-conversation:hover h3 a { color: var(--color-ex-copper); }
  .af-forum-directory__name { font-family: var(--font-ex-body); font-size: var(--text-ex-subforum); }
  :is(.af-post--starter,.af-workspace--thread :is(.wpfl-2,.wpfl-4) .af-post--starter) { background: var(--color-ex-paper); border-top: var(--rule-ex-fine) solid var(--color-ex-rule); padding: var(--space-ex-lg) 0; }
  .af-workspace--thread :is(.wpfl-2,.wpfl-4) .af-replies-separator.wpf-replies-sep { font-size: var(--text-ex-chapter); }
  :is(.af-reply-composer,.af-provider-finder,.af-auth-context,.af-member-browser__tools,.af-results-search,.af-dir-profile-facts,.af-platform-provider-filters,.af-platform-market-header aside) {
    background: var(--color-ex-porcelain); border-color: var(--color-ex-rule); box-shadow: none;
  }
  :is(.af-post,.af-auth-view,.af-profile-head,.af-member-card,.af-dir-basic,.af-dir-premium-card,.af-dir-profile-hero--text,.af-dir-billing,.af-dir-checkout,.af-dir-waitlist) { background-color: var(--color-ex-paper); }
  .af-auth-main { padding: var(--space-ex-xl); }
  .af-auth-context { padding: var(--space-ex-xl); }
  .af-auth-context h2 { font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); }

  /* Directory openings use the same compact, light composition as the forum. */
  :is(.af-platform-directory-hero,.af-dir-upgrade-hero) {
    position: relative; margin-block: var(--space-ex-md) var(--space-ex-2xl); padding: var(--space-ex-xl) 0; gap: var(--space-ex-2xl);
    background: var(--color-ex-paper); color: var(--color-ex-ink); border-bottom: 0; border-top: var(--rule-ex-fine) solid var(--color-ex-rule);
  }
  :is(.af-platform-directory-hero,.af-dir-upgrade-hero)::before { content: ""; position: absolute; top: calc(-1 * var(--rule-ex-fine)); left: 0; width: var(--space-ex-lg); height: var(--space-ex-xs); border-top: var(--rule-ex-focus) solid var(--color-ex-copper); border-left: var(--rule-ex-focus) solid var(--color-ex-copper); }
  :is(.af-platform-directory-hero,.af-dir-upgrade-hero) h1 { max-width: 25ch; color: var(--color-ex-ink); font: 500 var(--text-plumbing-title)/1.1 var(--font-ex-display); letter-spacing: -.025em; }
  :is(.af-platform-directory-hero,.af-dir-upgrade-hero) > div > p { color: var(--color-ex-secondary); font-size: var(--text-ex-body); line-height: 1.6; }
  :is(.af-platform-directory-hero > div > .af-plumbing-kicker,.af-dir-upgrade-hero .af-dir-upgrade-hero__label) { color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); letter-spacing: normal; text-transform: none; }
  :is(.af-platform-directory-hero .af-platform-directory-actions,.af-dir-upgrade-actions) a { color: var(--color-ex-copper); font-size: var(--text-ex-meta); }
  :is(.af-platform-directory-hero .af-platform-directory-actions,.af-dir-upgrade-actions) a:focus-visible { outline-color: var(--color-ex-copper) !important; }
  .af-dir-upgrade-hero .af-dir-price { padding: var(--space-ex-xl); border: 0; background: var(--color-ex-porcelain); }
  .af-dir-upgrade-hero .af-dir-price strong { font: 500 var(--text-ex-price)/1 var(--font-ex-display); color: var(--color-ex-copper); }
  .af-dir-upgrade-hero .af-dir-price p { font-size: var(--text-ex-body); color: var(--color-ex-secondary); }
  :is(.af-platform-section-head,.af-dir-section-head) h2 { font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); color: var(--color-ex-ink); }
  .af-platform-country-select { border-color: var(--color-ex-rule); }
  .af-platform-country-select a { padding: var(--space-ex-md); }
  .af-platform-country-select strong { font-size: var(--text-ex-chapter); }
  .af-platform-region-grid h4, .af-platform-region-grid h4 a { color: var(--color-ex-ink); }
  .af-platform-provider-grid { gap: var(--space-ex-xl); }
  .af-dir-premium-card { border: var(--rule-ex-fine) solid var(--color-ex-rule); border-top-color: var(--color-ex-copper); }
  .af-dir-premium-card__body h3 { font: 500 var(--text-ex-section)/1.25 var(--font-ex-body); letter-spacing: normal; }
  .af-dir-profile-hero--text { padding: var(--space-ex-xl) 0; border-bottom: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-dir-profile-main h2 { font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); }

  /* Existing non-platform directories retain their native catalog and filters. */
  .af-dir-hero { position: relative; margin-block: var(--space-ex-md) var(--space-ex-2xl); padding: var(--space-ex-lg) 0; background: var(--color-ex-paper); color: var(--color-ex-ink); border: 0; border-top: var(--rule-ex-fine) solid var(--color-ex-rule); box-shadow: none; }
  .af-dir-hero::before { content: ""; position: absolute; top: calc(-1 * var(--rule-ex-fine)); left: 0; width: var(--space-ex-lg); height: var(--space-ex-xs); border-top: var(--rule-ex-focus) solid var(--color-ex-copper); border-left: var(--rule-ex-focus) solid var(--color-ex-copper); }
  .af-dir-hero h1 { max-width: 30ch; font: 500 var(--text-plumbing-title)/1.1 var(--font-ex-display); color: var(--color-ex-ink); letter-spacing: -.025em; }
  .af-dir-hero p { color: var(--color-ex-secondary); font-size: var(--text-ex-body); }
  .af-dir-hero .af-dir-eyebrow { color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); text-transform: none; letter-spacing: normal; }
  :is(.af-dir-country,.af-dir-market-index,.af-dir-place-list,.af-dir-basic) { background: var(--color-ex-paper); border-color: var(--color-ex-row-rule); box-shadow: none; }
  .af-dir-country { padding: var(--space-ex-lg) 0; }
  .af-dir-country strong { font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); }
  :is(.af-dir-country-grid,.af-dir-premium-grid) { gap: var(--space-ex-xl); }
  :is(.af-dir-filters,.af-dir-market-scope,.af-dir-finder) { background: var(--color-ex-porcelain); border-color: var(--color-ex-rule); }
  .af-dir-filters :is(input,select,button) { min-height: var(--control-ex-height); }
  .af-dir-filters :is(input,select) { background-color: var(--color-ex-paper); color: var(--color-ex-ink); border-color: var(--color-ex-field); }

  /* Real controls retain their handlers, form actions, and semantic states. */
  .af-market-preference button[data-af-market-detect] { min-height: var(--control-ex-height); padding: var(--space-ex-2xs) 0; border: 0 !important; border-radius: 0; background: var(--color-ex-clear) !important; color: var(--color-ex-copper) !important; font: 500 var(--text-ex-meta)/1.5 var(--font-ex-body); text-decoration: underline; text-underline-offset: .15em; box-shadow: none; }
  .af-market-preference button[data-af-market-detect]:is(:hover,:active) { color: var(--color-ex-copper-pressed) !important; }
  :is(.af-provider-finder button,.af-results-search button,.wpf-member-search,.af-primary-submit,.wpforo-login-content input[type="submit"],.af-command-search__submit,.af-auth-form input.af-auth-submit,.af-dir-button:not(.af-dir-button--secondary):not(.af-dir-button--quiet),.af-forum-directory__action,.af-view-header__actions .wpf-button,.af-reply-composer input[type="submit"],.wpf-add-topic-wrap input[type="submit"]) {
    min-height: var(--control-ex-height); border-radius: var(--radius-ex-control); border-color: var(--color-ex-copper) !important; background: var(--color-ex-copper) !important; color: var(--color-ex-paper) !important; font-family: var(--font-ex-body);
  }
  :is(.af-provider-finder button,.af-results-search button,.wpf-member-search,.af-primary-submit,.wpforo-login-content input[type="submit"],.af-command-search__submit,.af-auth-form input.af-auth-submit,.af-dir-button:not(.af-dir-button--secondary):not(.af-dir-button--quiet),.af-forum-directory__action,.af-view-header__actions .wpf-button,.af-reply-composer input[type="submit"],.wpf-add-topic-wrap input[type="submit"]):is(:hover,:active):not(:disabled) { background: var(--color-ex-copper-pressed) !important; border-color: var(--color-ex-copper-pressed) !important; color: var(--color-ex-paper) !important; }
  :is(.af-auth-form,.af-provider-finder,.af-results-search,.af-dir-field,.af-dir-command__field) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),textarea,select) { min-height: var(--control-ex-height); background-color: var(--color-ex-paper); color: var(--color-ex-ink); border-color: var(--color-ex-field); border-radius: var(--radius-ex-control); }
  :is(.af-auth-form,.af-provider-finder,.af-results-search,.af-dir-field) :is(input,textarea)::placeholder { color: var(--color-ex-secondary); opacity: 1; }
  :is(.af-route-view,.af-workspace,.af-dir,.af-dir-dialog,.af-market-preference) :is(a,button,input,textarea,select):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }

  .af-profile-form input[type="file"] { min-height: var(--control-ex-height); color: var(--color-ex-ink); }
  .af-profile-form input[type="file"]::file-selector-button { min-height: var(--control-ex-height); padding-inline: var(--space-ex-sm); font: inherit; background: var(--color-ex-paper); color: var(--color-ex-ink); border: var(--rule-ex-fine) solid var(--color-ex-field); border-radius: var(--radius-ex-control); }
  .wpf-profile-section:has(.wpforo-login-wrap) { max-width: 32rem; margin-inline: auto; border: 0; }
  .wpforo-login-wrap { padding: var(--space-ex-lg) 0; border: 0; box-shadow: none; }
  :is(.wpforo-login-wrap,.wpforo-login-table,.wpforo-login-table .wpf-field) { background: var(--color-ex-paper) !important; color: var(--color-ex-secondary); border: 0; }
  .wpforo-login-content h3 { text-align: left; color: var(--color-ex-ink); font: 500 var(--text-ex-section)/1.3 var(--font-ex-display); }
  .wpforo-login-table :is(.wpf-tr,.wpf-td,.wpf-field-wrap) { border: 0; color: var(--color-ex-secondary); }
  .wpforo-login-table .wpf-field-wrap { text-align: left !important; }
  .wpforo-login-table label { text-align: left; color: var(--color-ex-ink); }
  .wpforo-login-table input { border-radius: var(--radius-ex-control); }
  .wpforo-login-table input:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }

  /* A restrained closing invitation and identical footer on every page family. */
  .af-plumbing-footer { background: var(--color-ex-deep); color: var(--color-ex-paper); }
  .af-plumbing-footer__inner { max-width: var(--layout-ex-width); padding: var(--space-ex-2xl) var(--space-ex-xl) var(--space-ex-xl); }
  .af-plumbing-membership { padding-bottom: var(--space-ex-xl); gap: var(--space-ex-xl); }
  .af-plumbing-membership h2 { max-width: none; font-size: var(--text-ex-chapter); line-height: 1.15; color: var(--color-ex-paper); }
  .af-plumbing-membership p { max-width: none; margin-top: var(--space-ex-sm); color: var(--color-ex-reverse); font-size: var(--text-ex-city); }
  .af-plumbing-membership__actions { gap: var(--space-ex-xs); }
  .af-plumbing-membership__actions p { font-size: var(--text-ex-meta); }
  .af-plumbing-footer__directory { padding-block: var(--space-ex-xl); }
  .af-plumbing-footer__identity > a { font-size: var(--text-ex-chapter); }
  :is(.af-plumbing-membership,.af-plumbing-footer__bottom) { border-color: var(--color-ex-inverse-rule); }
  .af-plumbing-footer__bottom { padding-top: var(--space-ex-lg); }
  .af-plumbing-footer__note { padding-top: var(--space-ex-sm); }
  .af-plumbing-footer :is(a,button):focus-visible { outline-color: var(--color-ex-paper) !important; }
}

@media (max-width: 67.99rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.aigenforums-directory {
    :is(.af-publication-masthead__inner,.af-dir-appbar__inner) { min-height: 64px; padding: var(--space-ex-xs) var(--space-ex-md) 0; }
    :is(.af-brand,.af-dir-brand) { width: 100%; container-type: inline-size; }
    :is(.af-brand__name,.af-dir-brand__name) { font-size: clamp(var(--text-ex-body),calc(100cqi / var(--af-brand-measure, 10)),var(--text-ex-wordmark-mobile)); letter-spacing: -.035em; overflow: visible; text-overflow: clip; }
    .af-exchange-descriptor { margin-top: 0; padding-bottom: var(--space-ex-xs); font-size: var(--text-ex-caption); }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.aigenforums-directory {
    :is(.af-platform-directory-hero,.af-dir-upgrade-hero) { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-xl); padding: var(--space-ex-lg) 0; }
    :is(.af-platform-directory-hero,.af-dir-upgrade-hero) h1 { font-size: var(--text-ex-intro-mobile); }
    .af-dir-upgrade-hero .af-dir-price { padding: var(--space-ex-lg); }
    :is(.af-auth-main,.af-auth-context) { padding: var(--space-ex-lg); }
    .af-plumbing-footer__inner { padding: var(--space-ex-xl) var(--space-ex-md); }
    .af-plumbing-membership { grid-template-columns: minmax(0,1fr); }
    .af-plumbing-membership h2 { font-size: var(--text-ex-footer-mobile); }
  }
}
@media (prefers-reduced-motion: reduce) {
  body.af-exchange-design :is(a,button,input,textarea,select) { transition: none; scroll-behavior: auto; }
}

/* Hallmark · component: related reading · genre: editorial · theme: Exchange
 * Native navigation; hover, keyboard focus and pressed feedback. No spatial motion.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .aigenforums-related {
  position: relative;
  min-width: 0;
  margin-block: var(--space-ex-2xl);
  padding-top: var(--space-ex-lg);
  border-top: var(--rule-ex-fine) solid var(--color-ex-rule);
  color: var(--color-ex-ink);

  &::before {
    content: "";
    position: absolute;
    top: calc(-1 * var(--rule-ex-fine));
    left: 0;
    width: var(--space-ex-lg);
    height: var(--space-ex-xs);
    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;
  }
  .aigenforums-related__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-ex-md) var(--space-ex-xl);
    margin-bottom: var(--space-ex-lg);
  }
  .aigenforums-related__head > div { min-width: 0; }
  .aigenforums-related__head h2 {
    margin: 0;
    padding: 0;
    color: var(--color-ex-ink);
    font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display);
    font-style: normal;
    letter-spacing: -.025em;
    overflow-wrap: anywhere;
  }
  .aigenforums-related__context {
    margin: var(--space-ex-xs) 0 0;
    color: var(--color-ex-secondary);
    font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body);
  }
  .aigenforums-related__browse {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    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);
    white-space: nowrap;
    text-decoration: none;
  }
  .aigenforums-related__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-ex-xl);
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .aigenforums-related__item {
    display: flex;
    min-width: 0;
    margin: 0;
    padding: 0;
    border-bottom: var(--rule-ex-fine) solid var(--color-ex-row-rule);
  }
  .aigenforums-related__link {
    display: flex;
    flex-direction: column;
    gap: var(--space-ex-xs);
    width: 100%;
    min-width: 0;
    min-height: var(--control-ex-height);
    padding: var(--space-ex-lg) var(--space-ex-sm);
    background: var(--color-ex-paper);
    color: var(--color-ex-ink);
    text-decoration: none;
  }
  .aigenforums-related__title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-ex-md);
  }
  .aigenforums-related__title-row h3 {
    min-width: 0;
    margin: 0;
    padding: 0;
    color: inherit;
    font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body);
    font-family: var(--font-ex-body) !important;
    font-style: normal;
    letter-spacing: normal;
    overflow-wrap: anywhere;
  }
  .aigenforums-related__arrow {
    flex: 0 0 var(--text-ex-section);
    width: var(--text-ex-section);
    height: var(--text-ex-section);
    margin-top: var(--space-ex-2xs);
    color: var(--color-ex-copper);
  }
  .aigenforums-related__arrow path { fill: none; }
  .aigenforums-related__preview {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin: 0;
    color: var(--color-ex-secondary);
    font: 400 var(--text-ex-meta)/1.6 var(--font-ex-body);
    overflow-wrap: anywhere;
  }
  :is(.aigenforums-related__browse, .aigenforums-related__link):focus-visible {
    outline: var(--rule-ex-focus) solid var(--color-ex-copper);
    outline-offset: var(--space-ex-2xs);
  }
  .aigenforums-related__link:focus-visible { background: var(--color-ex-porcelain); }
  :is(.aigenforums-related__browse, .aigenforums-related__link):active { color: var(--color-ex-copper-pressed); }
  .aigenforums-related__link:active { background: var(--color-ex-porcelain); }
}
@media (hover: hover) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .aigenforums-related {
    .aigenforums-related__link:hover { background: var(--color-ex-porcelain); color: var(--color-ex-copper); }
    .aigenforums-related__browse:hover { color: var(--color-ex-copper-pressed); text-decoration: underline; text-underline-offset: .2em; }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .aigenforums-related {
    margin-block: var(--space-ex-xl);
    .aigenforums-related__head { flex-direction: column; align-items: flex-start; gap: var(--space-ex-xs); margin-bottom: var(--space-ex-xs); }
    .aigenforums-related__list { grid-template-columns: minmax(0, 1fr); }
  }
}

/* Local membership examples reuse the production directory components and tokens. */
body.af-exchange-design.aigenforums-directory {
  .af-dir-premium-preview { margin-block: var(--space-ex-xl); min-width: 0; }
  .af-dir-premium-preview > h2 { margin: 0 0 var(--space-ex-xs); font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); }
  .af-dir-premium-preview > p { color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.6 var(--font-ex-body); }
  .af-dir-premium-preview .af-platform-provider-filters { margin-top: var(--space-ex-md); padding: var(--space-ex-lg); align-items: end; gap: var(--space-ex-md); }
  .af-dir-premium-preview .af-platform-provider-filters > div { flex-basis: 24rem; }
  .af-dir-premium-preview .af-platform-provider-filters :is(button,a) { min-height: var(--control-ex-height); display: inline-flex; align-items: center; white-space: nowrap; }
  .af-dir-premium-preview .af-platform-provider-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .af-dir-gallery figcaption { padding: var(--space-ex-sm); color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.aigenforums-directory .af-dir-premium-preview .af-platform-provider-grid { grid-template-columns: minmax(0,1fr); }
}

/* Hallmark · genre: editorial · macrostructure: Local directory / reading rail
 * design-system: design.md · Newsreader / Figtree · copper · no spatial motion
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. */
body.af-exchange-design.aigenforums-directory .af-market-page {
  min-width: 0;
  .af-platform-market-header { grid-template-columns: minmax(0,1fr) 17rem; gap: var(--space-ex-2xl); padding-block: var(--space-ex-xl); align-items: center; }
  .af-market-location { margin: 0 0 var(--space-ex-xs); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-platform-market-header h1 { margin: 0; max-width: 25ch; }
  .af-platform-market-header > div > p:not(.af-market-location) { margin-top: var(--space-ex-sm); font: 400 var(--text-ex-body)/1.6 var(--font-ex-body); max-width: 60ch; }
  .af-market-city { min-width: 0; padding-left: var(--space-ex-lg); border-left: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-market-jumps { display: flex; flex-wrap: wrap; gap: var(--space-ex-xs) var(--space-ex-xl); margin-top: var(--space-ex-md); }
  .af-market-jumps a { display: inline-flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-ink); text-decoration: none; white-space: nowrap; }
  .af-market-jumps span { color: var(--color-ex-secondary); font-weight: 400; font-variant-numeric: tabular-nums; }
  .af-market-layout { display: grid; grid-template-columns: minmax(0,1fr) 17rem; gap: var(--space-ex-2xl); align-items: start; }
  .af-market-main { min-width: 0; }
  .af-platform-provider-inventory { margin-top: 0; }
  .af-market-results-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-md); padding-bottom: var(--space-ex-sm); }
  .af-market-results-head h2 { margin: 0; font: 600 var(--text-ex-subforum)/1.4 var(--font-ex-body); }
  .af-market-results-head p { margin: 0; font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-platform-provider-filters { padding: var(--space-ex-lg); margin: 0 0 var(--space-ex-xl); border: 0; border-radius: var(--radius-ex-control); gap: var(--space-ex-md); }
  .af-platform-provider-filters > div { flex-basis: 12rem; }
  .af-platform-provider-filters :is(button,a) { white-space: nowrap; }
  .af-market-section-head { display: flex; justify-content: space-between; align-items: center; gap: var(--space-ex-md); margin-bottom: var(--space-ex-lg); }
  .af-market-section-head h2 { margin: 0; font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); }
  .af-market-section-head p { margin: var(--space-ex-xs) 0 0; font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-market-section-head > :is(a,span) { flex-shrink: 0; font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-platform-market-providers { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-ex-md); }
  .af-market-basic { margin-top: var(--space-ex-2xl); }
  .af-dir-basic-list { gap: 0; border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-dir-basic { grid-template-columns: minmax(0,1fr) auto; gap: var(--space-ex-lg); align-items: center; padding: var(--space-ex-md) var(--space-ex-xs); border: 0; border-bottom: var(--rule-ex-fine) solid var(--color-ex-row-rule); border-radius: 0; }
  .af-dir-basic h3 { font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body); margin: 0; }
  .af-dir-basic .af-dir-location { font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); margin: var(--space-ex-2xs) 0 0; }
  .af-dir-basic__specialties { margin: var(--space-ex-2xs) 0 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-dir-basic__claim { min-width: 0; padding: 0; border: 0; background: var(--color-ex-clear); }
  .af-dir-basic__claim span { font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-market-aside { min-width: 0; padding-left: var(--space-ex-lg); border-left: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-market-aside section + section { margin-top: var(--space-ex-xl); padding-top: var(--space-ex-xl); border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-market-aside h2 { font: 600 var(--text-ex-subforum)/1.4 var(--font-ex-body); margin: 0 0 var(--space-ex-sm); }
  .af-market-aside p { font: 400 var(--text-ex-meta)/1.6 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-market-area { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-ex-xs) var(--space-ex-sm); list-style: none; margin: var(--space-ex-lg) 0; padding: 0; font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-market-area li { margin: 0; }
  .af-market-business .af-dir-button { margin-top: var(--space-ex-md); }
  .af-dir-related { padding: var(--space-ex-xl) 0; margin: var(--space-ex-xl) 0 0; border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-dir-related__list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 var(--space-ex-xl); }
  .af-dir-related__list a { padding-block: var(--space-ex-md); }
  .af-dir-related__list a > span { font: 500 var(--text-ex-topic)/1.4 var(--font-ex-body); }
  .af-dir-categories .af-dir-related__list { display: grid; }
  .af-dir-categories .af-dir-related__list li > a { grid-template-columns: minmax(0,1fr) auto; }
  .af-market-more { margin-top: var(--space-ex-xl); border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-market-more > details { border-bottom: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-market-more summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-md); min-height: var(--control-ex-height); padding-block: var(--space-ex-lg); list-style: none; cursor: pointer; font: 600 var(--text-ex-body)/1.4 var(--font-ex-body); }
  .af-market-more summary::after { content: '+'; color: var(--color-ex-copper); font-size: var(--text-ex-section); }
  .af-market-more details[open] > summary::after { content: '−'; }
  .af-market-more summary::-webkit-details-marker { display: none; }
  .af-market-more summary:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  .af-market-more summary:active { color: var(--color-ex-copper-pressed); }
  .af-market-more__content { padding-bottom: var(--space-ex-xl); }
  .af-market-more .af-dir-disclosure { margin: var(--space-ex-lg) 0 0; }
}
body.af-exchange-design :is(.af-market-page,.af-discussion-premium) .af-market-preference--compact {
  margin: 0; padding: 0; border: 0; background: var(--color-ex-clear);
  > p { margin: var(--space-ex-xs) 0; font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  label { font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-ink); }
  select { min-height: var(--control-ex-height); width: 100%; min-width: 0; font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); border: var(--rule-ex-fine) solid var(--color-ex-field); border-radius: var(--radius-ex-control); color: var(--color-ex-ink); background: var(--color-ex-paper); }
  .af-market-preference__actions { margin-top: var(--space-ex-xs); }
  [data-af-market-link] { display: none; }
  small { font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
}
body.af-exchange-design :is(.af-market-page,.af-discussion-premium) :is(.af-dir-premium-card--directory,.af-dir-premium-card--rail) {
  .af-dir-premium-card__media { height: 5rem; width: 5rem; aspect-ratio: 1; margin: var(--space-ex-lg) var(--space-ex-lg) 0; border: 0; border-radius: var(--radius-ex-control); display: grid; }
  .af-dir-premium-card__media:has(.af-provider-monogram) { display: grid; }
  .af-dir-premium-card__logo { display: none; }
  .af-provider-monogram { font: 500 var(--text-ex-chapter)/1 var(--font-ex-display); color: var(--color-ex-copper); }
  .af-dir-premium-card__body { padding: var(--space-ex-lg); gap: var(--space-ex-sm); }
  .af-dir-premium-card__body h3 { font: 600 var(--text-ex-topic)/1.35 var(--font-ex-body); font-family: var(--font-ex-body) !important; margin: 0; }
  .af-dir-premium-card__body h3 a { font-family: var(--font-ex-body) !important; }
  .af-dir-premium-card__description { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
  .af-provider-coverage { display: none; }
  .af-dir-location { font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-dir-specialties { display: flex; flex-wrap: wrap; gap: var(--space-ex-2xs) var(--space-ex-sm); }
  .af-dir-specialties li { padding: 0; border: 0; background: var(--color-ex-clear); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-dir-actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: var(--space-ex-xs); border-top: var(--rule-ex-fine) solid var(--color-ex-row-rule); padding-top: var(--space-ex-sm); }
  .af-dir-actions a { min-height: var(--control-ex-height); white-space: nowrap; font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-dir-actions .af-dir-button { padding: var(--space-ex-xs) var(--space-ex-sm); }
  .af-dir-actions .af-dir-button:not(.af-dir-button--primary) { background: var(--color-ex-porcelain) !important; color: var(--color-ex-ink) !important; border-color: var(--color-ex-rule) !important; }
  .af-dir-actions .af-dir-text-link { margin-left: auto; }
}
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-discussion-premium {
  border-top: var(--rule-ex-focus) solid var(--color-ex-copper); background: var(--color-ex-porcelain); padding: var(--space-ex-lg); margin-bottom: var(--space-ex-xl); min-width: 0;
  header h2 { margin: 0; font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); font-family: var(--font-ex-display) !important; letter-spacing: -.025em; }
  .af-forum-providers__disclosure { font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); margin-top: var(--space-ex-xs); color: var(--color-ex-secondary); }
  .af-forum-providers__cards { margin-top: var(--space-ex-md); gap: var(--space-ex-md); }
  .af-dir-premium-card--rail { position: relative; }
  .af-dir-premium-card--rail .af-dir-premium-card__media { width: var(--space-ex-3xl); height: var(--space-ex-3xl); margin: var(--space-ex-md) var(--space-ex-md) 0; }
  .af-dir-premium-card--rail .af-dir-premium-card__body { padding: var(--space-ex-md); }
  .af-dir-premium-card--rail .af-dir-specialties { margin: 0; }
  .af-discussion-premium__status { margin: var(--space-ex-lg) 0; font: 400 var(--text-ex-meta)/1.6 var(--font-ex-body); color: var(--color-ex-secondary); }
  > .af-dir-text-link { display: flex; align-items: center; min-height: var(--control-ex-height); margin-top: var(--space-ex-md); gap: var(--space-ex-xs); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); text-decoration: none; }
  .af-discussion-premium__business { display: flex; align-items: center; justify-content: space-between; min-height: var(--control-ex-height); border-top: var(--rule-ex-fine) solid var(--color-ex-rule); margin-top: var(--space-ex-xs); color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); text-decoration: none; }
  [hidden] { display: none !important; }
}
@media (hover: hover) {
  body.af-exchange-design :is(.af-market-page,.af-discussion-premium) :is(h3 a,.af-dir-text-link,.af-market-jumps a,summary):hover { color: var(--color-ex-copper); text-decoration: underline; text-underline-offset: .2em; }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.aigenforums-directory .af-market-page {
    .af-market-layout { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-xl); }
    .af-market-aside { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-ex-xl); padding: var(--space-ex-xl) 0 0; border-left: 0; border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
    .af-market-aside section + section { margin: 0; padding: 0; border: 0; }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.aigenforums-directory .af-market-page {
    .af-platform-market-header { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-lg); }
    .af-market-city { padding: 0; border: 0; }
    .af-market-section-head { flex-direction: column; align-items: flex-start; }
    .af-platform-market-providers,.af-dir-related__list,.af-market-aside { grid-template-columns: minmax(0,1fr); }
    .af-market-aside section + section { margin-top: var(--space-ex-lg); }
    .af-platform-provider-filters > div { flex-basis: 100%; }
    .af-dir-basic { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-xs); }
    .af-dir-basic__claim { justify-content: flex-start; text-align: left; }
  }
}

/* Normalize legacy card variants and keep the complete Premium rail in page flow. */
body.af-exchange-design.aigenforums-directory .af-market-page .af-dir-premium-card.af-dir-premium-card--directory,
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-discussion-premium .af-dir-premium-card.af-dir-premium-card--rail {
  display: flex; flex-direction: column; position: relative; min-width: 0; padding: 0; overflow: clip;
  .af-dir-premium-card__media { display: grid; position: absolute; inset: var(--space-ex-md) var(--space-ex-md) auto auto; width: var(--space-ex-3xl); height: var(--space-ex-3xl); aspect-ratio: 1; margin: 0; padding: 0; border: 0; background: var(--color-ex-porcelain); }
  .af-dir-premium-card__body { display: flex; flex-direction: column; min-width: 0; flex: 1; margin: 0; padding: var(--space-ex-md); gap: var(--space-ex-xs); }
  .af-dir-label-row { display: flex; align-items: center; min-height: var(--space-ex-3xl); padding-right: calc(var(--space-ex-3xl) + var(--space-ex-xs)); }
  .af-dir-premium-card__body h3,.af-dir-premium-card__body h3 a { font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body) !important; letter-spacing: normal; margin: 0; padding: 0; }
  .af-dir-premium-card__logo { display: none; }
  .af-dir-specialties { display: flex; flex-wrap: wrap; gap: var(--space-ex-2xs) var(--space-ex-xs); list-style: none; padding: 0; margin: 0; }
  .af-dir-specialties li { list-style: none; display: inline; margin: 0; padding: 0; border: 0; background: var(--color-ex-clear); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
  .af-dir-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-ex-xs); padding-top: var(--space-ex-sm); margin-top: var(--space-ex-md); }
  .af-dir-actions a { display: inline-flex; align-items: center; flex: 0 0 auto; width: auto; min-height: var(--control-ex-height); white-space: nowrap; font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-dir-actions .af-dir-button { padding: var(--space-ex-xs) var(--space-ex-sm); }
  .af-dir-sponsored { font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); white-space: nowrap; }
}
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread > .af-workspace__context:has(.af-discussion-premium) { position: static; max-height: none; overflow: visible; align-content: start; }
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-discussion-premium {
  padding: var(--space-ex-md);
  .af-dir-premium-card--rail .af-dir-premium-card__media { width: var(--space-ex-2xl); height: var(--space-ex-2xl); }
  .af-dir-premium-card--rail .af-dir-label-row { min-height: var(--space-ex-2xl); }
  .af-dir-premium-card--rail .af-dir-location { margin: 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
  .af-dir-premium-card--rail .af-dir-actions .af-dir-text-link { margin-left: auto; }
  .af-market-preference__actions button { min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-sm); border: var(--rule-ex-fine) solid var(--color-ex-field); border-radius: var(--radius-ex-control); color: var(--color-ex-copper); background: var(--color-ex-paper); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-market-preference__actions button:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  .af-market-preference__actions button:active { background: var(--color-ex-porcelain); color: var(--color-ex-copper-pressed); }
}
body.af-exchange-design.aigenforums-directory .af-market-page .af-dir-related__list { display: grid; }
@media (hover: hover) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-discussion-premium .af-market-preference__actions button:hover { background: var(--color-ex-porcelain); }
}
body.af-exchange-design.aigenforums-directory .af-market-page .af-dir-premium-card--directory,
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-discussion-premium .af-dir-premium-card--rail {
  .af-dir-premium-card__media { float: none; }
  .af-dir-premium-card__body > div:has(h3) { min-height: 0; }
  .af-dir-label-row { margin-bottom: 0; }
}
body.af-exchange-design.aigenforums-directory .af-market-page .af-dir-basic h3 { font-family: var(--font-ex-body) !important; }

/* Hallmark · component: shared site navigation · theme: Exchange
 * Consistent destinations, active context and immediate native navigation feedback.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-publication-header,
body.af-exchange-design.aigenforums-directory .af-dir-appbar {
  view-transition-name: site-header;
  :is(.af-publication-nav,.af-dir-primary-nav) { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--space-ex-xs); padding: var(--space-ex-xs) var(--space-ex-md); }
  :is(.af-publication-nav,.af-dir-primary-nav) a { display: inline-flex; align-items: center; justify-content: center; min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border: var(--rule-ex-fine) solid var(--color-ex-clear); border-radius: var(--radius-ex-control); color: var(--color-ex-reverse); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); text-decoration: none; white-space: nowrap; }
  :is(.af-publication-nav,.af-dir-primary-nav) a[aria-current="page"] { color: var(--color-ex-paper); border-color: var(--color-ex-inverse-rule); background: var(--color-ex-inverse-rule); font-weight: 600; }
  :is(.af-publication-nav,.af-dir-primary-nav) a::after { display: none; }
  :is(.af-new-topic,.af-dir-business-link) { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border: var(--rule-ex-fine) solid var(--color-ex-paper); border-radius: var(--radius-ex-control); background: var(--color-ex-paper); color: var(--color-ex-deep); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); text-decoration: none; white-space: nowrap; }
  :is(.af-new-topic,.af-dir-business-link) svg { width: var(--text-ex-subforum); height: var(--text-ex-subforum); fill: none; stroke: currentColor; }
  :is(.af-account-link,.af-dir-account-link) { display: inline-flex; align-items: center; min-height: var(--control-ex-height); color: var(--color-ex-reverse); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); text-decoration: none; white-space: nowrap; }
  .af-navigation-status { position: absolute; bottom: 0; right: var(--space-ex-md); width: 1px; height: 1px; overflow: clip; clip-path: inset(50%); white-space: nowrap; }
  &[data-navigating] { box-shadow: inset 0 calc(-1 * var(--rule-ex-focus)) 0 var(--color-ex-copper-light); }
}
body.af-exchange-design :is(.af-publication-breadcrumb,.af-dir-breadcrumbs) { font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
body.af-exchange-design .af-publication-breadcrumb .wpf-breadcrumb { flex-wrap: wrap; min-height: var(--control-ex-height); max-width: var(--layout-ex-width); padding-block: var(--space-ex-xs); }
body.af-exchange-design .af-publication-breadcrumb .wpf-root a { min-height: var(--control-ex-height); display: inline-flex; align-items: center; }
body.af-exchange-design .af-publication-breadcrumb .wpf-root [itemprop="name"] { display: inline !important; }
body.af-exchange-design .af-publication-breadcrumb .wpf-root i { display: none; }
body.af-exchange-design .af-dir-breadcrumbs ol { align-items: center; min-height: var(--control-ex-height); gap: var(--space-ex-xs); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
body.af-exchange-design .af-dir-breadcrumbs a { display: inline-flex; align-items: center; min-height: var(--control-ex-height); text-decoration: none; }
body.af-exchange-design .af-dir-breadcrumbs :is(li,a,span) { font-family: var(--font-ex-body); }
@media (hover: hover) {
  body.af-exchange-design :is(.af-publication-header,.af-dir-appbar) :is(.af-publication-nav a,.af-dir-primary-nav a,.af-account-link,.af-dir-account-link):hover { color: var(--color-ex-paper); background: var(--color-ex-inverse-rule); }
  body.af-exchange-design :is(.af-publication-header,.af-dir-appbar) :is(.af-new-topic,.af-dir-business-link):hover { background: var(--color-ex-porcelain); }
  body.af-exchange-design :is(.af-publication-breadcrumb,.af-dir-breadcrumbs) a:hover { color: var(--color-ex-copper); text-decoration: underline; text-underline-offset: .2em; }
}
@view-transition { navigation: auto; }
::view-transition-group(site-header) { animation: none; }
::view-transition-old(site-header) { animation: none; opacity: 0; }
::view-transition-new(site-header) { animation: none; }
::view-transition-old(root),::view-transition-new(root) { animation-duration: 120ms; animation-timing-function: linear; }
@media (prefers-reduced-motion: reduce) {
  @view-transition { navigation: none; }
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation: none; }
}
body.af-exchange-design .af-mobile-home-link { display: none; }
@media (max-width: 67.99rem) {
  html.af-mobile-ready body.af-exchange-design .af-mobile-home-link { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-ex-2xs); min-width: var(--control-ex-height); min-height: var(--control-ex-height); color: var(--color-ex-reverse); font: 500 .625rem/1 var(--font-ex-body); text-decoration: none; }
  body.af-exchange-design .af-mobile-home-link svg { width: var(--text-ex-section); height: var(--text-ex-section); fill: none; stroke: currentColor; }
  body.af-exchange-design .af-mobile-home-link svg path { fill: none; }
}
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-mobile-home-link span,
body.af-exchange-design.aigenforums-directory .af-mobile-home-link span { font: inherit; }
@media (hover: hover) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-publication-header,
  body.af-exchange-design.aigenforums-directory .af-dir-appbar {
    :is(.af-publication-nav,.af-dir-primary-nav) a:hover { color: var(--color-ex-paper); background: var(--color-ex-inverse-rule); }
  }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-publication-header :is(.af-account-link,.af-new-topic),
  body.af-exchange-design.aigenforums-directory .af-dir-appbar :is(.af-dir-account-link,.af-dir-business-link) { display: none !important; }
  html.af-mobile-ready body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-mobile-home-link,
  html.af-mobile-ready body.af-exchange-design.aigenforums-directory .af-mobile-home-link { font: 500 .625rem/1 var(--font-ex-body); }
}

/* Hallmark · component: Premium business cards · theme: Exchange
 * Full-width business names, contained identity images and visible website domains.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-dir-premium-card[data-af-premium-card]:is(.af-dir-premium-card),
body.af-exchange-design.aigenforums-directory .af-dir-premium-card[data-af-premium-card]:is(.af-dir-premium-card) {
  display: flex; flex-direction: column; min-width: 0; padding: 0 !important; border: var(--rule-ex-fine) solid var(--color-ex-rule); border-top-color: var(--color-ex-copper); background: var(--color-ex-paper); overflow: visible;
  .af-dir-premium-card__body { display: flex; flex-direction: column; flex: 1; gap: var(--space-ex-sm); min-width: 0; margin: 0; padding: var(--space-ex-md); }
  .af-dir-premium-card__identity { display: flex; align-items: center; gap: var(--space-ex-md); min-width: 0; }
  .af-dir-premium-card__media { position: relative; inset: auto; display: grid; place-items: center; flex: 0 0 var(--space-ex-3xl); float: none; width: var(--space-ex-3xl); height: var(--space-ex-3xl); min-height: 0; aspect-ratio: 1; margin: 0; padding: 0; border: var(--rule-ex-fine) solid var(--color-ex-rule); border-radius: var(--radius-ex-control); background: var(--color-ex-porcelain); overflow: clip; }
  .af-dir-premium-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
  .af-dir-premium-card__media--logo img { object-fit: contain; padding: var(--space-ex-xs); }
  .af-provider-monogram { display: grid; place-items: center; width: 100%; height: 100%; font: 600 var(--text-ex-section)/1 var(--font-ex-body); color: var(--color-ex-copper); }
  .af-dir-label-row { display: flex; flex-wrap: wrap; align-items: center; flex: 1; gap: var(--space-ex-xs); min-height: 0; min-width: 0; padding: 0; margin: 0; }
  .af-dir-sponsored { font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-dir-premium-card__body > div:has(h3) { min-height: 0; }
  .af-dir-premium-card__body h3,.af-dir-premium-card__body h3 a { font: 600 var(--text-ex-subforum)/1.35 var(--font-ex-body) !important; letter-spacing: normal; margin: 0; padding: 0; min-width: 0; overflow-wrap: anywhere; color: var(--color-ex-ink); }
  .af-dir-location { font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); margin: var(--space-ex-2xs) 0 0; }
  .af-dir-premium-card__description { display: block; margin: 0; font: 400 var(--text-ex-meta)/1.6 var(--font-ex-body); color: var(--color-ex-secondary); overflow: visible; -webkit-line-clamp: unset; }
  .af-provider-coverage { display: block; margin: 0; font: 400 var(--text-ex-caption)/1.6 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-dir-specialties { display: flex; flex-wrap: wrap; gap: var(--space-ex-2xs) var(--space-ex-sm); list-style: none; padding: 0; margin: 0; }
  .af-dir-specialties li { display: inline; list-style: none; margin: 0; padding: 0; border: 0; background: var(--color-ex-clear); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-dir-specialties li + li::before { content: none; }
  .af-dir-premium-card__contact { margin-top: auto; padding-top: var(--space-ex-md); }
  .af-dir-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-ex-xs); padding: 0; margin: var(--space-ex-xs) 0 0; border: 0; }
  .af-dir-actions a { display: inline-flex; align-items: center; flex: 0 0 auto; width: auto; min-height: var(--control-ex-height); white-space: nowrap; font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-dir-actions .af-dir-button { padding: var(--space-ex-xs) var(--space-ex-sm); background: var(--color-ex-porcelain) !important; color: var(--color-ex-ink) !important; border: var(--rule-ex-fine) solid var(--color-ex-rule) !important; }
  .af-dir-actions .af-provider-phone { flex: 1 1 100%; width: 100%; justify-content: space-between; gap: var(--space-ex-sm); }
  .af-provider-phone__number { font-variant-numeric: tabular-nums; }
  .af-provider-phone-note { margin: var(--space-ex-xs) 0 0; font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-dir-actions .af-dir-text-link { margin-left: auto; color: var(--color-ex-copper); text-decoration: none; }
  [hidden] { display: none !important; }
}

/* Hallmark · component: under-discussion Premium placement · existing Exchange tokens.
 * Compact ruled rows, text contacts, no imagery or descriptive copy. P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-discussion-inline-premium {
  margin: var(--space-ex-xl) 0; padding: var(--space-ex-lg) 0; border-block: var(--rule-ex-fine) solid var(--color-ex-rule); color: var(--color-ex-ink);
  .af-discussion-inline-premium__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-md); margin-bottom: var(--space-ex-md); }
  .af-discussion-inline-premium__head > div { min-width: 0; }
  h2 { margin: 0; padding: 0 !important; color: var(--color-ex-ink); font: 500 var(--text-ex-section)/1.2 var(--font-ex-display); scroll-margin-top: calc(var(--space-ex-3xl) * 2); }
  .af-discussion-inline-premium__head p { margin: var(--space-ex-xs) 0 0; font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-discussion-inline-premium__head > a { display: inline-flex; align-items: center; flex-shrink: 0; gap: var(--space-ex-xs); min-height: var(--control-ex-height); color: var(--color-ex-copper); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-discussion-inline-premium__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-ex-xl); }
  .af-inline-premium-card { display: flex; flex-direction: column; min-width: 0; padding: var(--space-ex-sm) 0; border: 0; border-top: var(--rule-ex-fine) solid var(--color-ex-rule); background: var(--color-ex-clear); }
  .af-inline-premium-card__label { margin-bottom: var(--space-ex-xs); color: var(--color-ex-copper); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-inline-premium-card h3, .af-inline-premium-card h3 a { margin: 0; padding: 0; color: var(--color-ex-ink); font: 600 var(--text-ex-body)/1.4 var(--font-ex-body) !important; letter-spacing: normal; }
  .af-inline-premium-card h3 a { display: flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); overflow-wrap: anywhere; text-decoration: none; }
  .af-inline-premium-card h3 a > span { color: var(--color-ex-copper); white-space: nowrap; }
  .af-inline-premium-card__location { margin: var(--space-ex-xs) 0 var(--space-ex-sm); color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
  .af-inline-premium-card__contact { display: flex; align-items: center; flex-wrap: wrap; gap: 0 var(--space-ex-md); margin: 0; }
  .af-inline-premium-card__contact a { display: flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); padding: var(--space-ex-xs) 0; color: var(--color-ex-copper); background: var(--color-ex-clear); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); text-decoration: none; }
  .af-inline-premium-card__website span:first-child { min-width: 0; overflow-wrap: anywhere; }
  .af-inline-premium-card__phone { flex-wrap: wrap; font-variant-numeric: tabular-nums; }
  .af-inline-premium-card__sample { color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
  .af-discussion-inline-premium__status { margin: var(--space-ex-md) 0 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-discussion-inline-premium__choose { display: inline-flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); margin-top: var(--space-ex-xs); color: var(--color-ex-copper); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  :is(a, button):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  a:active { color: var(--color-ex-copper-pressed); }
  [hidden] { display: none !important; }
}
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-discussion-premium [data-af-market-select] { scroll-margin-top: calc(var(--space-ex-3xl) * 2); }
@media (hover: hover) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-discussion-inline-premium a:hover { color: var(--color-ex-copper-pressed); text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-discussion-inline-premium {
    .af-discussion-inline-premium__head { flex-direction: column; align-items: start; gap: var(--space-ex-xs); }
    .af-discussion-inline-premium__cards { grid-template-columns: minmax(0, 1fr); gap: var(--space-ex-sm); }
  }
}

/* Hallmark · Plumbing directory index: task-first search / compact cities / geographic register.
 * Existing navy, water-blue, Newsreader and Figtree tokens. P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-plumber-index,
body.af-exchange-design.aigenforums-directory .af-plumber-index {
  color: var(--color-ex-ink);
  .af-plumber-index__hero { display: grid; grid-template-columns: minmax(0, 2.5fr) minmax(0, 1fr); gap: var(--space-ex-3xl); align-items: start; padding: var(--space-ex-xl) 0 var(--space-ex-2xl); border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-plumber-index__search { min-width: 0; }
  .af-plumber-index__kicker { margin: 0 0 var(--space-ex-sm); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  h1 { margin: 0; max-width: none; font: 500 var(--text-ex-intro)/1.1 var(--font-ex-display); letter-spacing: -.025em; overflow-wrap: anywhere; }
  .af-plumber-index__intro { max-width: 65ch; margin: var(--space-ex-md) 0 var(--space-ex-xl); font: 400 var(--text-ex-body)/1.6 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-provider-finder { padding: 0; margin: 0; border: 0; background: var(--color-ex-clear); }
  .af-provider-finder__controls { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: var(--space-ex-sm); align-items: end; }
  .af-provider-finder__controls > div { min-width: 0; }
  .af-provider-finder label { margin: 0 0 var(--space-ex-xs); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-ink); }
  .af-provider-finder :is(input, select, button) { width: 100%; min-width: 0; margin: 0; min-height: var(--control-ex-height); height: var(--control-ex-height); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-provider-finder button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-ex-md); padding: var(--space-ex-xs) var(--space-ex-md); white-space: nowrap; font-weight: 600; }
  .af-provider-finder button:disabled { opacity: .55; cursor: not-allowed; }
  .af-provider-finder :is(input, select):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  .af-market-preference { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-ex-xs) var(--space-ex-md); margin: var(--space-ex-md) 0 0; padding: 0; border: 0; background: var(--color-ex-clear); }
  .af-market-preference p { flex: 1 1 auto; margin: 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-market-preference__actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-ex-sm); }
  .af-provider-finder .af-market-preference__actions button { width: auto; background: var(--color-ex-porcelain) !important; border: var(--rule-ex-fine) solid var(--color-ex-rule) !important; padding: var(--space-ex-xs) var(--space-ex-sm); color: var(--color-ex-copper) !important; }
  .af-provider-finder .af-market-preference__actions button:is(:hover, :active):not(:disabled) { background: var(--color-ex-paper) !important; border-color: var(--color-ex-copper) !important; }
  .af-market-preference small { flex: 1 1 100%; font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-plumber-index__browse { display: inline-flex; align-items: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); margin-top: var(--space-ex-xs); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-copper); }
  .af-plumber-index__guide { padding-left: var(--space-ex-xl); border-left: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-plumber-index__guide h2 { margin: 0 0 var(--space-ex-lg); font: 500 var(--text-ex-section)/1.2 var(--font-ex-display); }
  .af-plumber-index__guide ol { margin: 0; padding-left: var(--space-ex-lg); }
  .af-plumber-index__guide li { margin: 0 0 var(--space-ex-md); padding-left: var(--space-ex-xs); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-plumber-index__guide li::marker { color: var(--color-ex-copper); font-weight: 600; }
  .af-plumber-index__guide strong { font-weight: 600; }
  .af-plumber-index__guide p { margin: var(--space-ex-2xs) 0 0; color: var(--color-ex-secondary); }
  > :is(section, aside, details) { margin: 0 0 var(--space-ex-2xl); }
  .af-plumber-index__section-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-ex-md); margin-bottom: var(--space-ex-lg); }
  .af-plumber-index__section-head h2 { margin: 0; font: 500 var(--text-ex-chapter)/1.2 var(--font-ex-display); }
  .af-plumber-index__section-head p { margin: var(--space-ex-xs) 0 0; max-width: 65ch; color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-plumber-index__section-head > a { display: inline-flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); white-space: nowrap; color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-plumber-index__city-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-ex-md); list-style: none; margin: 0; padding: 0; }
  .af-plumber-index__city-list li { min-width: 0; list-style: none; margin: 0; padding: 0; }
  .af-plumber-index__city-list a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-md); min-height: var(--space-ex-3xl); height: 100%; padding: var(--space-ex-md); background: var(--color-ex-porcelain); border: var(--rule-ex-fine) solid var(--color-ex-rule); color: var(--color-ex-ink); text-decoration: none; }
  .af-plumber-index__city-list a > span:first-child { min-width: 0; }
  .af-plumber-index__city-list strong { display: block; font: 600 var(--text-ex-body)/1.4 var(--font-ex-body); overflow-wrap: anywhere; }
  .af-plumber-index__city-list small { display: block; margin-top: var(--space-ex-2xs); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-plumber-index__city-status { flex-shrink: 0; font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); color: var(--color-ex-copper); }
  .af-plumber-index__results .af-plumber-index__city-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .af-plumber-index__postal-note { max-width: 75ch; margin: var(--space-ex-md) 0 0; font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-platform-providers { padding-block: var(--space-ex-xl); border-block: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-platform-providers[data-load-state="empty"] { display: none; }
  .af-platform-providers .af-platform-provider-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-ex-md); }
  .af-platform-providers .af-dir-premium-card[data-af-premium-card] :is(.af-dir-premium-card__description, .af-provider-coverage) { display: none; }
  .af-plumber-index__country { margin-top: var(--space-ex-xl); border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-plumber-index__country h3 { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-ex-md); margin: 0; padding: var(--space-ex-md) 0; font: 500 var(--text-ex-section)/1.3 var(--font-ex-display); }
  .af-plumber-index__country h3 a { display: inline-flex; align-items: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); color: var(--color-ex-ink); }
  .af-plumber-index__country h3 small { color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  summary { cursor: pointer; min-height: var(--control-ex-height); color: var(--color-ex-ink); }
  summary small { margin-left: var(--space-ex-md); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-secondary); white-space: nowrap; }
  .af-plumber-index__regions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: 0 var(--space-ex-xl); padding: 0; }
  .af-plumber-index__region { min-width: 0; border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-plumber-index__region > summary { padding: var(--space-ex-sm) 0; font: 600 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-plumber-index__region nav { padding: 0 0 var(--space-ex-md) var(--space-ex-md); }
  .af-plumber-index__region ul { list-style: none; padding: 0; margin: 0; }
  .af-plumber-index__region li { list-style: none; padding: 0; margin: 0; }
  .af-plumber-index__region a { display: flex; flex-direction: column; justify-content: center; min-height: var(--control-ex-height); padding: var(--space-ex-xs) 0; color: var(--color-ex-copper); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); overflow-wrap: anywhere; }
  .af-plumber-index__region a small { color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-plumber-index__region .af-plumber-index__state-link { display: block; padding: var(--space-ex-sm) 0; font-weight: 600; }
  .af-plumber-index__advice { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-lg); padding: var(--space-ex-xl); background: var(--color-ex-porcelain); }
  .af-plumber-index__advice h2 { margin: 0; font: 500 var(--text-ex-section)/1.2 var(--font-ex-display); }
  .af-plumber-index__advice p { margin: var(--space-ex-xs) 0 0; font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-plumber-index__advice > a { display: inline-flex; align-items: center; flex-shrink: 0; min-height: var(--control-ex-height); gap: var(--space-ex-sm); white-space: nowrap; font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-copper); }
  .af-plumber-index__about { border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-plumber-index__about > summary { padding: var(--space-ex-md) 0; font: 600 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-plumber-index__about .af-dir-disclosure { margin: 0; padding: var(--space-ex-md) 0; border: 0; }
  .af-plumber-index__about > p { margin: var(--space-ex-md) 0 0; }
  :is(a, button, summary):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  :is(a, summary):active { color: var(--color-ex-copper-pressed); }
  [hidden] { display: none !important; }
}
@media (hover: hover) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-plumber-index,
  body.af-exchange-design.aigenforums-directory .af-plumber-index {
    :is(.af-plumber-index__region, .af-plumber-index__about) > summary:hover { color: var(--color-ex-copper); background: var(--color-ex-porcelain); }
    .af-plumber-index__city-list a:hover { border-color: var(--color-ex-copper); background: var(--color-ex-paper); }
  }
}
@media (max-width: 59.99rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-plumber-index,
  body.af-exchange-design.aigenforums-directory .af-plumber-index {
    .af-plumber-index__hero { grid-template-columns: minmax(0, 1fr); gap: var(--space-ex-xl); }
    .af-plumber-index__guide { padding: var(--space-ex-lg) 0 0; border-left: 0; border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
    .af-plumber-index__guide ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-ex-xl); }
    .af-plumber-index__regions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-plumber-index,
  body.af-exchange-design.aigenforums-directory .af-plumber-index {
    h1 { font-size: var(--text-ex-intro-mobile); }
    .af-provider-finder__controls { grid-template-columns: minmax(0, 1fr); gap: var(--space-ex-md); }
    .af-plumber-index__guide ol { display: block; }
    .af-plumber-index__city-list, .af-plumber-index__results .af-plumber-index__city-list, .af-platform-providers .af-platform-provider-grid, .af-plumber-index__regions { grid-template-columns: minmax(0, 1fr); }
    .af-plumber-index__section-head { flex-direction: column; align-items: start; }
    .af-plumber-index__advice { flex-direction: column; align-items: start; padding: var(--space-ex-lg); }
    summary small { margin-left: var(--space-ex-xs); font-size: var(--text-ex-caption); }
    .af-plumber-index__city-status { font-size: var(--text-ex-caption); }
    .af-plumber-index__results .af-plumber-index__city-list a { align-items: start; }
  }
}
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-provider-website,
body.af-exchange-design.aigenforums-directory .af-provider-website {
  display: flex; flex-direction: column; gap: var(--space-ex-2xs); width: 100%; min-width: 0; min-height: var(--control-ex-height); padding: var(--space-ex-sm) var(--space-ex-md); border: var(--rule-ex-fine) solid var(--color-ex-copper); border-radius: var(--radius-ex-control); background: var(--color-ex-copper); color: var(--color-ex-paper) !important; text-decoration: none;
  .af-provider-website__label { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-sm); font: 600 var(--text-ex-body)/1.4 var(--font-ex-body); color: inherit; white-space: nowrap; }
  .af-provider-website__label svg { width: var(--text-ex-subforum); height: var(--text-ex-subforum); flex-shrink: 0; fill: none; stroke: currentColor; }
  .af-provider-website__domain { font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); color: inherit; overflow-wrap: anywhere; min-width: 0; }
  &:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  &:active { background: var(--color-ex-copper-pressed); border-color: var(--color-ex-copper-pressed); }
}
body.af-exchange-design.aigenforums-directory .af-dir-profile-logo {
  display: grid; place-items: center; overflow: clip; padding: var(--space-ex-xs); color: var(--color-ex-copper); font: 600 var(--text-ex-section)/1 var(--font-ex-body);
  img { width: 100%; height: 100%; object-fit: contain; }
  [hidden] { display: none !important; }
}
body.af-exchange-design.aigenforums-directory :is(.af-dir-premium-preview .af-platform-provider-grid,.af-platform-market-providers) { grid-template-columns: repeat(auto-fit,minmax(min(100%,calc(var(--layout-ex-rail) + var(--space-ex-xl))),1fr)); }
@media (hover: hover) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-provider-website:hover,
  body.af-exchange-design.aigenforums-directory .af-provider-website:hover { background: var(--color-ex-copper-pressed); border-color: var(--color-ex-copper-pressed); }
}
@media (min-width: 80rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread:has(.af-discussion-premium),
  body.af-exchange-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-ex-layout:has([data-af-local-cards]) { grid-template-columns: minmax(0,1fr) calc(var(--layout-ex-rail) + var(--space-ex-xl)); }
}

/* Plumbing highlights share the water-blue accent across actions and editorial details. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  --color-publication-accent-soft: var(--color-plumbing-accent-soft);
  .af-dir-sponsored,.af-dir-profile-logo { color: var(--color-plumbing-accent); }
  :is(.af-post,.af-post--starter,.af-auth-view) { background-color: var(--color-plumbing-surface); }
  :is(.af-view-header,.af-thread-header,.af-route-header,.af-auth-header,.af-platform-market-header,.af-dir-page-head,.af-dir-profile-hero--text,.af-platform-directory-hero,.af-dir-upgrade-hero)::before { border-top-color: var(--color-plumbing-accent); border-left-color: var(--color-plumbing-accent); }
  .af-discussion-premium { border-top-color: var(--color-plumbing-accent); }
  .af-market-preference select { background: var(--color-plumbing-surface); color: var(--color-plumbing-ink); border: var(--rule-ex-fine) solid var(--color-plumbing-rule-strong); border-radius: var(--radius-ex-control); }
  .af-market-preference__actions button { min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-sm); border: var(--rule-ex-fine) solid var(--color-plumbing-rule-strong); border-radius: var(--radius-ex-control); background: var(--color-plumbing-accent-soft); color: var(--color-plumbing-accent) !important; font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-market-preference__actions button:focus-visible { outline: var(--rule-ex-focus) solid var(--color-plumbing-accent); outline-offset: var(--space-ex-2xs); }
  .af-market-preference__actions button:active { background: var(--color-plumbing-soft); color: var(--color-plumbing-accent-hover) !important; }
}
body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
  .af-ex-opening,.af-ex-forum-head { border-top-color: var(--color-plumbing-rule); }
  .af-ex-junction::before { border-top-color: var(--color-plumbing-accent); border-left-color: var(--color-plumbing-accent); }
}

/* Hallmark · component: Plumbing Premium listings · existing navy / water-blue system
 * Pre-emit critique: P5 H5 E5 S5 R5 V4.
 * Matte navy identity, filled slate service labels and a pale blue-grey contact area.
 * Native loading / empty / error / retry states remain owned by the location widget. */
body.af-exchange-design.af-plumbing-design {
  --color-premium-surface: var(--color-plumbing-ink);
  --color-premium-text: var(--color-plumbing-paper);
  --color-premium-muted: var(--color-plumbing-reverse-muted);
  --color-premium-rule: color-mix(in oklch, var(--color-premium-muted) 35%, var(--color-premium-surface));
  --color-premium-contact: var(--color-plumbing-paper);
  --color-premium-inline: var(--color-plumbing-accent-soft);
  --color-premium-card-contact: var(--color-plumbing-soft);
  --color-premium-service-surface: color-mix(in oklch, var(--color-premium-muted) 20%, var(--color-premium-surface));
  --text-premium-name: 1.75rem;
  --radius-premium-card: 1rem;
  --radius-premium-button: .5rem;
  --shadow-premium-action: 0 2px 4px color-mix(in oklch, var(--color-premium-surface) 16%, var(--color-ex-clear));
  --shadow-premium-action-pressed: 0 1px 2px color-mix(in oklch, var(--color-premium-surface) 12%, var(--color-ex-clear));
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-dir-premium-card[data-af-premium-card]:is(.af-dir-premium-card),
body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-dir-premium-card[data-af-premium-card]:is(.af-dir-premium-card) {
  /* Nested & retains the shared shell specificity on directory routes too. */
  & { display: flex; flex-direction: column; background: var(--color-premium-card-contact); color: var(--color-premium-text); border: 0; border-radius: var(--radius-premium-card); overflow: clip; }
  .af-dir-premium-card__body { gap: 0; padding: 0; }
  .af-dir-premium-card__summary { display: flex; flex-direction: column; flex: 1; min-width: 0; gap: var(--space-ex-md); padding: var(--space-ex-lg); background: var(--color-premium-surface); }
  .af-dir-premium-card__identity { padding-bottom: var(--space-ex-xs); border: 0; }
  .af-dir-premium-card__title-row { display: flex; align-items: flex-start; gap: var(--space-ex-sm); min-width: 0; }
  .af-dir-premium-card__title-row h3 { flex: 1; min-width: 0; }
  .af-dir-premium-card__media { border: 0; background: var(--color-premium-contact); border-radius: var(--radius-ex-control); }
  .af-dir-premium-card__media--badge { flex: 0 0 var(--space-ex-3xl); background: var(--color-ex-clear); border-radius: 0; overflow: visible; }
  .af-dir-premium-card__media--badge img { object-fit: contain; padding: 0; }
  .af-provider-monogram { font: 500 var(--text-ex-chapter)/1 var(--font-ex-display) !important; color: var(--color-premium-surface); }
  .af-dir-sponsored { color: var(--color-premium-muted); font-weight: 600; letter-spacing: .02em; }
  .af-dir-premium-card__body h3, .af-dir-premium-card__body h3 a {
    color: var(--color-premium-text) !important; font: 500 var(--text-premium-name)/1.12 var(--font-ex-display) !important; letter-spacing: -.015em;
  }
  .af-dir-premium-card__body h3 a { display: block; min-height: var(--control-ex-height); }
  .af-dir-location { margin-top: var(--space-ex-xs); color: var(--color-premium-muted); }
  .af-dir-premium-card__description, .af-provider-coverage { color: var(--color-premium-muted); }
  .af-dir-specialties { gap: var(--space-ex-xs); margin: 0; }
  .af-dir-specialties li { padding: var(--space-ex-2xs) var(--space-ex-xs); border: 0; border-radius: var(--radius-ex-control); color: var(--color-premium-muted); background: var(--color-premium-service-surface); }
  .af-dir-premium-card__contact { margin: 0; padding: var(--space-ex-lg); background: var(--color-premium-card-contact); border-radius: 0; }
  .af-provider-website { border-radius: var(--radius-premium-button); box-shadow: var(--shadow-premium-action); }
  .af-provider-website:active { box-shadow: var(--shadow-premium-action-pressed); }
  .af-dir-actions { margin-top: var(--space-ex-sm); gap: var(--space-ex-sm); }
  .af-provider-website__label { white-space: normal; overflow-wrap: anywhere; }
  .af-dir-actions .af-provider-phone { flex-wrap: wrap; padding: var(--space-ex-sm) var(--space-ex-md); border: 0 !important; background: var(--color-premium-contact) !important; border-radius: var(--radius-premium-button); box-shadow: var(--shadow-premium-action); }
  .af-dir-actions .af-provider-phone__number { font-weight: 600; }
  .af-dir-actions .af-dir-text-link { justify-content: space-between; width: 100%; margin: 0; padding: var(--space-ex-sm) var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-premium-contact); box-shadow: var(--shadow-premium-action); font-weight: 600; }
  a:focus-visible { outline: var(--rule-ex-focus) solid var(--color-premium-muted); outline-offset: var(--space-ex-2xs); }
  .af-dir-premium-card__contact a:focus-visible { outline-color: var(--color-ex-copper); }
  h3 a:hover, h3 a:active { text-decoration: underline; text-decoration-thickness: var(--rule-ex-fine); text-underline-offset: var(--space-ex-2xs); }
  .af-dir-actions a:hover { background: var(--color-premium-inline) !important; text-decoration: none; }
  .af-dir-actions a:active { background: var(--color-premium-inline) !important; color: var(--color-ex-copper-pressed) !important; box-shadow: var(--shadow-premium-action-pressed); }
}

/* Hallmark · component: compact Premium conversation cards · P5 H5 E5 S5 R5 V4.
 * The same borderless navy identity and tonal contact area as the larger cards. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-discussion-inline-premium {
  .af-discussion-inline-premium__cards { gap: var(--space-ex-md); }
  .af-inline-premium-card { padding: 0; border: 0; background: var(--color-premium-card-contact); border-radius: var(--radius-premium-card); overflow: clip; }
  .af-inline-premium-card__summary { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: var(--space-ex-md); background: var(--color-premium-surface); }
  .af-inline-premium-card__title-row { display: flex; align-items: flex-start; gap: var(--space-ex-sm); min-width: 0; }
  .af-inline-premium-card__title-row h3 { flex: 1; min-width: 0; }
  .af-inline-premium-card__badge { display: block; flex: 0 0 var(--space-ex-2xl); width: var(--space-ex-2xl); height: var(--space-ex-2xl); object-fit: contain; }
  .af-inline-premium-card__label { color: var(--color-premium-muted); margin-bottom: var(--space-ex-2xs); }
  .af-inline-premium-card h3, .af-inline-premium-card h3 a { color: var(--color-premium-text) !important; font: 500 var(--text-ex-section)/1.15 var(--font-ex-display) !important; letter-spacing: -.01em; }
  .af-inline-premium-card h3 a > span { color: var(--color-premium-muted); }
  .af-inline-premium-card__location { color: var(--color-premium-muted); margin: var(--space-ex-2xs) 0 var(--space-ex-sm); }
  .af-inline-premium-card__contact { margin: 0; padding: var(--space-ex-2xs) var(--space-ex-md); border: 0; background: var(--color-premium-card-contact); border-radius: 0; }
  .af-inline-premium-card__contact a { max-width: 100%; }
  .af-inline-premium-card__sample { flex-basis: 100%; padding-bottom: var(--space-ex-xs); }
  .af-inline-premium-card h3 a:focus-visible { outline-color: var(--color-premium-muted); }
  .af-inline-premium-card h3 a:hover, .af-inline-premium-card h3 a:active { color: var(--color-premium-text) !important; }
}

/* Profiles carry the same navy identity into the destination, with genuine media intact. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-dir-profile-hero,
body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-dir-profile-hero {
  & { background: var(--color-premium-surface); border: var(--rule-ex-fine) solid var(--color-premium-surface); border-radius: var(--radius-premium-card); padding: var(--space-ex-xl); gap: var(--space-ex-xl); color: var(--color-premium-muted); }
  &::before { content: none; }
  .af-dir-profile-hero__panel { grid-template-columns: minmax(0, 1fr); background: var(--color-ex-clear); color: var(--color-premium-muted); }
  h1 { min-width: 0; overflow-wrap: anywhere; color: var(--color-premium-text) !important; }
  p, .af-dir-location, .af-dir-sponsored { color: var(--color-premium-muted); }
  .af-dir-profile-logo { background: var(--color-premium-contact); color: var(--color-premium-surface); border-color: var(--color-premium-rule); font-family: var(--font-ex-display); }
  .af-provider-website__label { white-space: normal; overflow-wrap: anywhere; }
  .af-provider-website { margin-top: var(--space-ex-md); background: var(--color-premium-contact); border-color: var(--color-premium-contact); color: var(--color-premium-surface) !important; }
  .af-provider-website:hover, .af-provider-website:active { background: var(--color-premium-inline); border-color: var(--color-premium-inline); }
  .af-dir-actions a { min-height: var(--control-ex-height); color: var(--color-premium-text) !important; }
  .af-dir-actions .af-dir-button { background: var(--color-ex-clear) !important; border-color: var(--color-premium-rule); }
  a:focus-visible { outline: var(--rule-ex-focus) solid var(--color-premium-muted); outline-offset: var(--space-ex-2xs); }
  .af-platform-profile-summary { border-left: var(--rule-ex-fine) solid var(--color-premium-rule); }
  .af-platform-profile-summary h2, .af-platform-profile-summary h3 { color: var(--color-premium-text); }
  .af-platform-profile-summary li { color: var(--color-premium-muted); border-color: var(--color-premium-rule); }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-dir-profile-hero,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-dir-profile-hero {
    & { padding: var(--space-ex-lg); gap: var(--space-ex-lg); }
    .af-platform-profile-summary { border-left: 0; border-top: var(--rule-ex-fine) solid var(--color-premium-rule); padding: var(--space-ex-lg) 0 0; }
  }
}

/* Hallmark · genre: editorial · macrostructure: location-led Premium catalogue
 * design-system: design.md · designed-as-app · P5 H5 E5 S5 R5 V4.
 * Existing native search / country disclosures / location-state ownership. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-plumber-index,
body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-plumber-index {
  & { min-width: 0; }
  --text-premium-directory-hero: clamp(var(--text-ex-intro-mobile), 4.8vw, var(--space-ex-3xl));
  --text-premium-directory-section: clamp(var(--text-ex-chapter), 3vw, var(--text-ex-directory));
  .af-plumber-index__hero { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: stretch; gap: 0; padding: 0; margin-bottom: var(--space-ex-xl); border: var(--rule-ex-fine) solid var(--color-premium-surface); border-radius: var(--radius-premium-card); background: var(--color-premium-surface); }
  .af-plumber-index__search { padding: var(--space-ex-xl) var(--space-ex-2xl); }
  .af-plumber-index__kicker { color: var(--color-premium-muted); font-weight: 500; }
  h1 { max-width: 15ch; color: var(--color-premium-text); font: 500 var(--text-premium-directory-hero)/1.03 var(--font-ex-display); letter-spacing: -.035em; }
  h1 span { display: inline-block; max-width: 100%; }
  .af-plumber-index__intro { max-width: 48ch; margin-block: var(--space-ex-lg); color: var(--color-premium-muted); }
  .af-plumber-index__hero-image { position: relative; min-width: 0; min-height: 0; margin: 0; border-radius: 0 var(--radius-premium-card) var(--radius-premium-card) 0; overflow: clip; }
  .af-plumber-index__hero-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 52% center; }
  .af-plumber-index__finder-panel { padding: var(--space-ex-lg); background: var(--color-premium-contact); border-radius: var(--radius-ex-control); color: var(--color-ex-ink); }
  .af-provider-finder__controls { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) auto; gap: var(--space-ex-sm); }
  .af-provider-finder .af-provider-finder__controls :is(input, select, button) { height: auto; min-height: calc(var(--control-ex-height) + var(--space-ex-xs)); }
  /* Astra dark-mode sets search text to white with !important on production. */
  .af-provider-finder :is(input, select) { padding: var(--space-ex-xs); border-radius: var(--radius-ex-control); background: var(--color-ex-porcelain); color: var(--color-ex-ink) !important; caret-color: var(--color-ex-ink); }
  .af-provider-finder input::placeholder { color: var(--color-ex-secondary); opacity: 1; }
  .af-provider-finder button[type="submit"] { padding-inline: var(--space-ex-sm); gap: var(--space-ex-xs); background: var(--color-ex-copper); color: var(--color-ex-paper) !important; border-color: var(--color-ex-copper); }
  .af-provider-finder button[type="submit"]:active { background: var(--color-ex-copper-pressed); }
  .af-provider-finder :is(input, select):disabled { opacity: .55; cursor: not-allowed; }
  .af-provider-finder [aria-invalid="true"] { border-color: var(--color-error); }
  .af-plumber-index__browse { margin-top: var(--space-ex-sm); color: var(--color-premium-text); font-weight: 500; }
  .af-plumber-index__hero > div > a:focus-visible { outline-color: var(--color-premium-muted); }
  .af-plumber-index__hero > div > a:active { color: var(--color-premium-text); }
  .af-plumber-index__country-nav { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-ex-lg); padding: 0 0 var(--space-ex-xl); margin-bottom: var(--space-ex-2xl); border-bottom: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-plumber-index__country-nav p { margin: 0 auto 0 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-plumber-index__country-nav a { display: inline-flex; align-items: center; flex-wrap: wrap; gap: var(--space-ex-sm); min-height: var(--control-ex-height); color: var(--color-ex-ink); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); text-decoration: none; }
  .af-plumber-index__country-nav a strong { flex: 0 0 auto; white-space: nowrap; word-break: normal; overflow-wrap: normal; }
  .af-plumber-index__country-nav a span { color: var(--color-ex-secondary); }
  .af-plumber-index__country-nav a span:last-child { color: var(--color-ex-copper); }
  .af-plumber-index__section-head h2, .af-platform-section-head h2 { font: 500 var(--text-premium-directory-section)/1.1 var(--font-ex-display); letter-spacing: -.02em; }
  .af-plumber-index__city-list { gap: 0 var(--space-ex-xl); }
  .af-plumber-index__city-list a { padding: var(--space-ex-lg) 0; background: var(--color-ex-clear); border: 0; border-bottom: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-plumber-index__city-list strong { font: 500 var(--text-ex-section)/1.2 var(--font-ex-display); }
  .af-plumber-index__city-list a > span:last-child { color: var(--color-ex-copper); }
  .af-plumber-index__results { padding: var(--space-ex-xl); background: var(--color-premium-contact); border: var(--rule-ex-fine) solid var(--color-ex-rule); border-radius: var(--radius-premium-card); }
  .af-platform-providers { padding: var(--space-ex-xl) 0 var(--space-ex-2xl); border: 0; }
  .af-platform-section-head { margin-bottom: var(--space-ex-lg); }
  .af-platform-provider-grid { gap: var(--space-ex-lg); }
  .af-plumber-index__guide { padding: var(--space-ex-xl); background: var(--color-ex-porcelain); border: var(--rule-ex-fine) solid var(--color-ex-rule); border-radius: var(--radius-premium-card); }
  .af-plumber-index__guide h2 { margin-bottom: var(--space-ex-lg); font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); }
  .af-plumber-index__guide ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-ex-xl); margin: 0; padding-left: var(--space-ex-lg); }
  .af-plumber-index__guide li { margin: 0; }
  .af-plumber-index__country { padding: var(--space-ex-xl); background: var(--color-premium-contact); border: var(--rule-ex-fine) solid var(--color-ex-rule); border-radius: var(--radius-premium-card); scroll-margin-top: calc(var(--space-ex-3xl) * 2); }
  .af-plumber-index__country h3 a { min-width: 0; max-width: 100%; flex-wrap: wrap; }
  .af-plumber-index__country-name { flex: 0 1 auto; min-width: 0; white-space: normal; word-break: normal; overflow-wrap: normal; }
  .af-plumber-index__country h3 { justify-content: space-between; padding: 0 0 var(--space-ex-lg); font-size: var(--text-ex-chapter); }
  .af-plumber-index__regions { gap: 0 var(--space-ex-xl); }
  .af-plumber-index__region > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: var(--space-ex-xs); padding: var(--space-ex-md) 0; list-style: none; font-weight: 500; }
  .af-plumber-index__region > summary::marker { content: ''; }
  .af-plumber-index__region > summary::-webkit-details-marker { display: none; }
  .af-plumber-index__region > summary::after { content: '+'; color: var(--color-ex-copper); font: 400 var(--text-ex-section)/1 var(--font-ex-body); }
  .af-plumber-index__region[open] > summary::after { content: '−'; }
  .af-plumber-index__region > summary small { margin: 0; font-size: var(--text-ex-caption); }
  .af-plumber-index__region nav { padding-left: 0; }
  .af-plumber-index__advice { padding: var(--space-ex-xl); background: var(--color-premium-surface); border-radius: var(--radius-premium-card); }
  .af-plumber-index__advice h2 { color: var(--color-premium-text); font-size: var(--text-ex-chapter); }
  .af-plumber-index__advice p { color: var(--color-premium-muted); }
  .af-plumber-index__advice > a { color: var(--color-premium-text); }
  .af-plumber-index__advice > a:focus-visible { outline-color: var(--color-premium-muted); }
  .af-plumber-index__advice > a:active { color: var(--color-premium-text); }
  .af-plumber-index__about { margin-bottom: var(--space-ex-xl); }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-plumber-index,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-plumber-index {
    .af-provider-finder button[type="submit"]:hover { background: var(--color-ex-copper-pressed); }
    .af-provider-finder :is(input, select):hover { background: var(--color-ex-paper); }
    .af-plumber-index__city-list a:hover { background: var(--color-ex-clear); border-color: var(--color-ex-copper); }
    .af-plumber-index__country-nav a:hover { color: var(--color-ex-copper); text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
    .af-plumber-index__hero > div > a:hover, .af-plumber-index__advice > a:hover { color: var(--color-premium-text); text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
  }
}
@media (max-width: 59.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-plumber-index,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-plumber-index {
    .af-plumber-index__hero { grid-template-columns: minmax(0, 1fr); }
    .af-plumber-index__hero-image { display: none; }
    .af-plumber-index__search { padding: var(--space-ex-xl); }
    .af-plumber-index__guide ol { gap: var(--space-ex-lg); }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-plumber-index,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-plumber-index {
    .af-plumber-index__search { padding: var(--space-ex-md); }
    h1 { font-size: var(--text-ex-intro-mobile); }
    .af-plumber-index__finder-panel { padding: var(--space-ex-md); }
    .af-provider-finder__controls { grid-template-columns: minmax(0, 1fr); }
    .af-provider-finder button[type="submit"] { white-space: normal; }
    .af-plumber-index__country-nav { gap: var(--space-ex-xs); }
    .af-plumber-index__country-nav p { flex-basis: 100%; }
    .af-plumber-index__country-nav a { width: 100%; justify-content: space-between; }
    .af-plumber-index__guide, .af-plumber-index__country, .af-plumber-index__results { padding: var(--space-ex-md); }
    .af-plumber-index__guide ol { grid-template-columns: minmax(0, 1fr); gap: var(--space-ex-lg); }
    .af-plumber-index__country h3 { font-size: var(--text-ex-section); flex-direction: column; align-items: start; gap: var(--space-ex-xs); }
    .af-plumber-index__advice { padding: var(--space-ex-lg); }
  }
}

/* Keep tonal cards and country controls inside narrow screens at enlarged text sizes. */
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-plumber-index,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-plumber-index {
    :is(h2, h3, p, strong, small, label) { min-width: 0; overflow-wrap: anywhere; }
    .af-plumber-index__finder-panel { padding: var(--space-ex-xs); }
    .af-provider-finder button[type="submit"] { flex-wrap: wrap; padding-inline: var(--space-ex-xs); }
    .af-market-preference__actions { min-width: 0; width: 100%; flex-direction: column; align-items: stretch; }
    .af-market-preference__actions :is(a, button) { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
    .af-dir-premium-card__identity { flex-wrap: wrap; }
    .af-dir-premium-card .af-dir-label-row { flex-basis: max-content; }
    .af-dir-premium-card .af-dir-sponsored { white-space: normal; }
    .af-provider-phone__number { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
    .af-dir-actions .af-dir-text-link, .af-plumber-index__advice > a { max-width: 100%; flex-wrap: wrap; white-space: normal; }
    .af-plumber-index__country-nav a strong { overflow-wrap: normal; }
  }
}

/* Hallmark · component: five-across Premium inventory and membership examples · P5 H5 E5 S5 R5 V4.
 * Shared compact cards across the directory, city pages and membership previews. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples),
body.af-exchange-design.af-plumbing-design.aigenforums-directory :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples) {
  .af-market-layout { grid-template-columns: minmax(0, 1fr); }
  .af-market-aside { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-ex-lg); }
  :is(.af-platform-market-providers,.af-platform-provider-grid) { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-md); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-premium-card__summary,
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-premium-card__contact { padding: var(--space-ex-md); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-premium-card__summary { gap: var(--space-ex-sm); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-premium-card__title-row { gap: var(--space-ex-xs); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-premium-card__media--badge { flex-basis: var(--control-ex-height); width: var(--control-ex-height); height: var(--control-ex-height); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-premium-card__body h3,
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-premium-card__body h3 a { font-size: var(--text-ex-section) !important; line-height: 1.2 !important; }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-location { margin: 0; font-size: var(--text-ex-caption); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-specialties { gap: var(--space-ex-2xs); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-specialties li { font-size: var(--text-ex-caption); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-provider-website { padding: var(--space-ex-xs) var(--space-ex-sm); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-provider-website__domain { font-size: var(--text-ex-caption); }
  .af-dir-premium-card--directory[data-af-premium-card]:is(.af-dir-premium-card) .af-dir-actions :is(.af-provider-phone,.af-dir-text-link) { padding: var(--space-ex-xs) var(--space-ex-sm); gap: var(--space-ex-xs); font-size: var(--text-ex-caption); }
}
@media (min-width: 37.5rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples),
body.af-exchange-design.af-plumbing-design.aigenforums-directory :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples) { :is(.af-platform-market-providers,.af-platform-provider-grid) { grid-template-columns: repeat(2,minmax(0,1fr)); } }
}
@media (min-width: 48rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples),
body.af-exchange-design.af-plumbing-design.aigenforums-directory :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples) { :is(.af-platform-market-providers,.af-platform-provider-grid) { grid-template-columns: repeat(3,minmax(0,1fr)); } }
}
@media (min-width: 64rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples),
body.af-exchange-design.af-plumbing-design.aigenforums-directory :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples) { :is(.af-platform-market-providers,.af-platform-provider-grid) { grid-template-columns: repeat(4,minmax(0,1fr)); } }
}
@media (min-width: 75rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples),
body.af-exchange-design.af-plumbing-design.aigenforums-directory :is(.af-market-page,.af-plumber-index,.af-premium-provider-examples) { :is(.af-platform-market-providers,.af-platform-provider-grid) { grid-template-columns: repeat(5,minmax(0,1fr)); } }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap :is(.af-market-page,.af-plumber-index),
body.af-exchange-design.af-plumbing-design.aigenforums-directory :is(.af-market-page,.af-plumber-index) { .af-market-aside { grid-template-columns: minmax(0,1fr); } }
}

/* Desktop navigation omits Discussions; the native mobile menu keeps it. */
@media (min-width: 68rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    :is(.af-publication-nav,.af-dir-primary-nav) [data-af-nav-item="forum"] { display: none; }
  }
}

/* Hallmark · component: category destination hero · shared homepage photograph.
 * Integrated porcelain panel, roman type, native actions. P5 H5 E5 S5 R5 V4. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
  .af-view-header:has(.af-forum-hero-photo) { display: grid; grid-template-columns: minmax(0,1fr) var(--size-forum-hero-photo); grid-template-areas: "copy photo" "actions photo"; align-items: center; gap: var(--space-ex-sm) var(--space-ex-lg); padding: var(--space-ex-lg); border: 0; border-radius: var(--radius-premium-card); background: var(--color-ex-porcelain); color: var(--color-ex-ink); }
  .af-view-header:has(.af-forum-hero-photo)::before { content: none; }
  .af-view-header:has(.af-forum-hero-photo) > div:first-child { grid-area: copy; min-width: 0; }
  .af-view-header:has(.af-forum-hero-photo) > :is(.af-view-header__actions,.af-category-section__actions) { grid-area: actions; justify-content: flex-start; }
  .af-forum-hero-photo { grid-area: photo; width: 100%; min-width: 0; margin: 0; aspect-ratio: 3/2; border-radius: var(--radius-premium-button); overflow: clip; background: var(--color-ex-paper); }
  .af-forum-hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-view-header:has(.af-forum-hero-photo) { grid-template-columns: minmax(0,1fr); grid-template-areas: "photo" "copy" "actions"; gap: var(--space-ex-md); padding: var(--space-ex-md); }
}

/* Hallmark · component: Premium membership hero · editorial · navy / water / porcelain.
 * Clear offer hierarchy; price, terms and action share a surface. P5 H5 E5 S5 R5 V4. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-dir-upgrade-hero--premium,
body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-dir-upgrade-hero--premium {
  --size-premium-offer: 38rem;
  --text-premium-hero-title: 5rem;
  /* Nested & matches the shared shell's selector specificity on directory pages. */
  & { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,var(--size-premium-offer)); align-items: center; gap: var(--space-ex-3xl); margin-block: 0 var(--space-ex-2xl); padding: var(--space-ex-2xl) 0 var(--space-ex-3xl); border: 0; border-block: 0; background: var(--color-ex-paper); }
  &::before { content: none; }
  .af-premium-intro { display: block; min-width: 0; }
  .af-dir-upgrade-hero__label { margin: 0 0 var(--space-ex-md); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  h1 { max-width: 14ch; min-width: 0; margin: 0; font: 600 clamp(var(--text-ex-directory),5.6vw,var(--text-premium-hero-title))/1.04 var(--font-ex-display); font-style: normal; letter-spacing: -.035em; overflow-wrap: anywhere; text-wrap: balance; color: var(--color-ex-ink); }
  .af-premium-intro__lead { max-width: 46ch; margin-top: var(--space-ex-lg); font: 400 var(--text-ex-subforum)/1.6 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-dir-upgrade-actions { margin-top: var(--space-ex-lg); }
  .af-premium-secondary { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); background: var(--color-ex-porcelain); color: var(--color-ex-copper); border: 0; border-radius: var(--radius-premium-button); box-shadow: var(--shadow-premium-action); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); text-decoration: none; white-space: nowrap; }
  .af-premium-secondary:hover { background: var(--color-ex-hover); }
  .af-premium-secondary:active { box-shadow: var(--shadow-premium-action-pressed); }
  .af-premium-secondary:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  .af-premium-offer { min-width: 0; padding: var(--space-ex-xl); border: 0; border-radius: var(--radius-premium-card); background: var(--color-premium-surface); color: var(--color-premium-text); }
  .af-premium-offer__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-md); }
  .af-premium-offer__head h2 { min-width: 0; margin: 0; font: 600 var(--text-ex-body)/1.4 var(--font-ex-body); color: var(--color-premium-text); }
  .af-premium-offer__head img { flex: 0 0 var(--space-ex-2xl); width: var(--space-ex-2xl); height: var(--space-ex-2xl); object-fit: contain; }
  .af-premium-offer__amount { display: flex; align-items: baseline; gap: var(--space-ex-sm); margin-top: var(--space-ex-md); }
  .af-premium-offer__amount strong { display: inline-flex; align-items: baseline; margin: 0; font: 500 var(--text-ex-price)/1 var(--font-ex-display); font-style: normal; letter-spacing: -.04em; color: var(--color-premium-text); }
  .af-premium-offer__amount strong span { font: 500 var(--text-ex-chapter)/1 var(--font-ex-display); letter-spacing: normal; }
  .af-premium-offer__amount p { margin: 0; font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-premium-muted); }
  .af-premium-offer__term { margin-top: var(--space-ex-xs); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); color: var(--color-premium-muted); }
  .af-premium-offer__features { margin: var(--space-ex-md) 0; padding: var(--space-ex-md) 0 0 var(--space-ex-md); border-top: var(--rule-ex-fine) solid var(--color-premium-rule); color: var(--color-premium-text); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-premium-offer__features li { margin: 0; padding: 0; }
  .af-premium-offer__features li + li { margin-top: var(--space-ex-xs); }
  .af-premium-offer__action { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-sm); min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-premium-text); color: var(--color-premium-surface); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); text-decoration: none; white-space: nowrap; box-shadow: var(--shadow-premium-action); }
  .af-premium-offer__action:hover { background: var(--color-ex-porcelain); }
  .af-premium-offer__action:active { background: var(--color-premium-card-contact); box-shadow: var(--shadow-premium-action-pressed); }
  .af-premium-offer__action:focus-visible { outline: var(--rule-ex-focus) solid var(--color-premium-text); outline-offset: var(--space-ex-2xs); }
  .af-premium-offer__terms { display: flex; align-items: center; justify-content: center; min-height: var(--control-ex-height); margin-top: var(--space-ex-2xs); color: var(--color-premium-muted); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); text-decoration: underline; text-underline-offset: .2em; white-space: nowrap; }
  .af-premium-offer__terms:hover { color: var(--color-premium-text); }
  .af-premium-offer__terms:active { color: var(--color-premium-text); }
  .af-premium-offer__terms:focus-visible { outline: var(--rule-ex-focus) solid var(--color-premium-text); outline-offset: var(--space-ex-2xs); }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-dir-upgrade-hero--premium,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-dir-upgrade-hero--premium {
    & { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-xl); padding-block: var(--space-ex-xl) var(--space-ex-2xl); }
    .af-premium-offer { padding: var(--space-ex-lg); }
  }
}
@media (max-width: 23.5rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-dir-upgrade-hero--premium,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-dir-upgrade-hero--premium {
    .af-premium-secondary,.af-premium-offer__action { padding-inline: var(--space-ex-2xs); }
    .af-premium-secondary .af-icon,.af-premium-offer__action > span { display: none; }
  }
}

/* Hallmark · component: native scroll-to-top control · water blue · P5 H5 E5 S5 R5 V4. */
body.af-exchange-design.af-plumbing-design #ast-scroll-top {
  --size-scroll-top-control: 3rem;
  --size-scroll-top-icon: 1.25rem;
  --shadow-scroll-top: 0 4px 14px color-mix(in oklch, var(--color-ex-deep) 20%, var(--color-ex-clear));
  width: var(--size-scroll-top-control); height: var(--size-scroll-top-control); padding: 0; border: 0; border-radius: 50%;
  bottom: calc(var(--space-ex-md) + env(safe-area-inset-bottom, 0px)); background: var(--color-ex-copper); color: var(--color-ex-paper);
  box-shadow: var(--shadow-scroll-top); opacity: 1; line-height: 1; cursor: pointer; transition: none;
  &.ast-scroll-to-top-right { right: max(var(--space-ex-md), env(safe-area-inset-right, 0px)); left: auto; }
  &.ast-scroll-to-top-left { left: max(var(--space-ex-md), env(safe-area-inset-left, 0px)); right: auto; }
  &::before { content: none; }
  .ast-icon { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; margin: 0; }
  .ast-icon.icon-arrow svg { display: block; width: var(--size-scroll-top-icon); height: var(--size-scroll-top-icon); margin: 0; transform: none; fill: none; }
  &:hover { background: var(--color-ex-copper-pressed); color: var(--color-ex-paper); }
  &:active { box-shadow: var(--shadow-premium-action-pressed); }
  &:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); box-shadow: 0 0 0 var(--space-ex-2xs) var(--color-ex-paper), var(--shadow-scroll-top); }
}

/* Hallmark · genre: editorial · macrostructure: Local Catalogue
 * design-system: design.md · designed-as-app · anchor hue: water blue
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. City → businesses → optional exploration. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-nearby-directory,
body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-nearby-directory {
  .af-nearby-hero { display: grid; grid-template-columns: minmax(0,1fr) var(--size-nearby-owner); align-items: center; gap: var(--space-ex-3xl); padding-block: var(--space-ex-2xl) var(--space-ex-3xl); }
  .af-nearby-hero__copy { min-width: 0; }
  .af-nearby-kicker { margin: 0 0 var(--space-ex-lg); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-nearby-hero h1 { max-width: 20ch; min-width: 0; margin: 0; font: 600 clamp(var(--text-ex-intro-mobile),6.2vw,var(--text-nearby-hero))/1.04 var(--font-ex-display); font-style: normal; letter-spacing: -.035em; overflow-wrap: anywhere; color: var(--color-ex-ink); }
  .af-nearby-hero h1 > span { display: block; }
  .af-nearby-hero h1 .af-nearby-hero__city { color: var(--color-ex-copper); }
  .af-nearby-hero__intro { max-width: 48ch; margin: var(--space-ex-lg) 0 var(--space-ex-xl); color: var(--color-ex-secondary); font: 400 var(--text-ex-subforum)/1.55 var(--font-ex-body); }
  .af-nearby-location { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-ex-xs) var(--space-ex-lg); }
  .af-nearby-location p { margin: 0; font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-nearby-country-flag { display: inline-block; width: var(--space-ex-lg); height: auto; margin-left: var(--space-ex-xs); border: var(--rule-ex-fine) solid var(--color-ex-rule); border-radius: var(--radius-ex-control); vertical-align: middle; }
  .af-nearby-location a { display: inline-flex; gap: var(--space-ex-xs); align-items: center; min-height: var(--control-ex-height); color: var(--color-ex-copper); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-nearby-location-note { max-width: 65ch; margin: var(--space-ex-2xs) 0 0; font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-nearby-location-note [data-af-nearby-auto] { display: inline-flex; align-items: center; min-height: var(--control-ex-height); margin-left: var(--space-ex-sm); padding: 0; background: var(--color-ex-clear); border: 0; border-radius: 0; color: var(--color-ex-copper); font: inherit; text-decoration: underline; text-underline-offset: var(--space-ex-2xs); cursor: pointer; white-space: nowrap; }
  .af-nearby-owner { min-width: 0; padding: var(--space-ex-xl); border: 0; border-radius: var(--radius-premium-card); background: var(--color-premium-surface); color: var(--color-premium-text); }
  .af-nearby-owner .af-nearby-kicker { color: var(--color-premium-muted); margin-bottom: var(--space-ex-md); }
  .af-nearby-owner h2 { margin: 0; font: 500 var(--text-ex-chapter)/1.12 var(--font-ex-display); color: var(--color-premium-text); letter-spacing: -.02em; }
  .af-nearby-owner > p:not(.af-nearby-kicker) { margin: var(--space-ex-md) 0 var(--space-ex-lg); color: var(--color-premium-muted); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-nearby-owner .af-dir-button { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-md); min-height: var(--control-ex-height); width: 100%; padding: var(--space-ex-sm) var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-premium-text) !important; color: var(--color-premium-surface) !important; box-shadow: var(--shadow-premium-action); font: 600 var(--text-ex-meta)/1.3 var(--font-ex-body); white-space: nowrap; }
  .af-nearby-owner small { display: block; margin-top: var(--space-ex-md); color: var(--color-premium-muted); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
  .af-nearby-inventory { padding-block: var(--space-ex-xl); border-top: var(--rule-ex-fine) solid var(--color-ex-rule); }
  .af-nearby-toolbar { display: flex; justify-content: space-between; align-items: center; gap: var(--space-ex-lg); margin-bottom: var(--space-ex-xl); }
  .af-nearby-toolbar h2 { margin: 0; font: 500 var(--text-ex-chapter)/1.2 var(--font-ex-display); letter-spacing: -.025em; }
  .af-nearby-toolbar p { margin: var(--space-ex-xs) 0 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-nearby-service { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-ex-sm); min-width: 0; margin: 0; }
  .af-nearby-service .af-dir-button { border-radius: var(--radius-premium-button); }
  .af-nearby-service label { font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-nearby-service select { min-height: var(--control-ex-height); min-width: 0; max-width: 100%; padding-inline: var(--space-ex-md) var(--space-ex-xl); background-color: var(--color-ex-paper); border-color: var(--color-ex-rule); border-radius: var(--radius-premium-button); color: var(--color-ex-ink); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-nearby-section-head { margin-bottom: var(--space-ex-lg); }
  .af-nearby-section-head h3 { margin: 0; font: 600 var(--text-ex-section)/1.3 var(--font-ex-body); }
  .af-nearby-section-head p { margin: var(--space-ex-xs) 0 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-nearby-premium .af-platform-provider-grid { display: grid; }
  .af-nearby-businesses { margin-top: var(--space-ex-2xl); }
  .af-nearby-business-list { display: grid; gap: var(--space-ex-xs); }
  .af-nearby-business { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr); align-items: center; gap: var(--space-ex-xl); padding: var(--space-ex-lg) var(--space-ex-xl); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); }
  .af-nearby-business:nth-child(even) { background: var(--color-ex-paper); }
  .af-nearby-business > div { min-width: 0; }
  .af-nearby-business h4 { margin: 0; font: 600 var(--text-ex-subforum)/1.35 var(--font-ex-body); color: var(--color-ex-ink); overflow-wrap: anywhere; }
  .af-nearby-business p { margin: var(--space-ex-xs) 0 0; font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); color: var(--color-ex-secondary); }
  .af-nearby-business small { display: block; margin-top: var(--space-ex-2xs); color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
  .af-nearby-business__services p { margin-top: 0; color: var(--color-ex-ink); }
  .af-nearby-business__contact { display: flex; flex-wrap: wrap; gap: var(--space-ex-xs) var(--space-ex-md); align-items: center; justify-content: flex-end; }
  .af-nearby-business__contact a { min-height: var(--control-ex-height); display: inline-flex; align-items: center; gap: var(--space-ex-xs); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-nearby-business__website { width: 100%; justify-content: flex-end; overflow-wrap: anywhere; }
  .af-nearby-business__website > span:first-child { min-width: 0; }
  .af-nearby-business__phone { padding: var(--space-ex-xs) var(--space-ex-sm); border-radius: var(--radius-premium-button); background: var(--color-ex-paper); box-shadow: var(--shadow-premium-action); white-space: nowrap; }
  .af-nearby-business__claim { font-weight: 400; white-space: nowrap; }
  .af-nearby-empty { padding: var(--space-ex-xl); background: var(--color-ex-porcelain); border-radius: var(--radius-premium-card); }
  .af-nearby-empty h3 { margin: 0; font: 500 var(--text-ex-chapter)/1.2 var(--font-ex-display); }
  .af-nearby-empty p { color: var(--color-ex-secondary); margin: var(--space-ex-md) 0; }
  .af-nearby-empty .af-dir-button { margin-right: var(--space-ex-sm); }
  :is(.af-nearby-city-picker,.af-nearby-location-index) { margin-block: var(--space-ex-lg); }
  :is(.af-nearby-city-picker,.af-nearby-location-index) > :is(summary,details > summary) { display: flex; align-items: center; min-height: var(--control-ex-height); gap: var(--space-ex-lg); color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); cursor: pointer; }
  .af-nearby-location-index > summary::after { content: '+'; margin-left: auto; }
  .af-nearby-location-index[open] > summary::after { content: '−'; }
  .af-nearby-community { display: flex; justify-content: space-between; align-items: center; gap: var(--space-ex-lg); padding-block: var(--space-ex-2xl); }
  .af-nearby-community h2 { margin: 0; font: 500 var(--text-ex-chapter)/1.2 var(--font-ex-display); }
  .af-nearby-community p { margin-top: var(--space-ex-xs); color: var(--color-ex-secondary); }
  .af-dir-button { white-space: nowrap; }
  a:focus-visible,button:focus-visible,select:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  .af-nearby-owner a:focus-visible { outline-color: var(--color-premium-muted); }
  [hidden] { display: none !important; }
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-nearby-city-dialog,
body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-nearby-city-dialog {
  & { max-width: min(calc(100% - var(--space-ex-xl)),var(--size-nearby-chooser)); width: 100%; max-height: calc(100dvh - var(--space-ex-xl)); padding: var(--space-ex-xl); border: 0; border-radius: var(--radius-premium-card); background: var(--color-ex-paper); color: var(--color-ex-ink); overflow-y: auto; }
  .af-nearby-dialog-head { display: flex; align-items: start; gap: var(--space-ex-lg); margin-bottom: var(--space-ex-xl); }
  .af-nearby-dialog-head h2 { margin: 0; flex: 1; font: 500 var(--text-ex-chapter)/1.1 var(--font-ex-display); }
  .af-dir-dialog__close { flex: 0 0 var(--control-ex-height); width: var(--control-ex-height); height: var(--control-ex-height); min-height: var(--control-ex-height); padding: 0; border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); color: var(--color-ex-ink); font-size: var(--text-ex-section); }
  .af-provider-finder { padding: 0; border: 0; background: var(--color-ex-paper); margin: 0; }
  .af-provider-finder__controls { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--space-ex-lg); }
  .af-provider-finder__city,.af-provider-finder__service { display: grid; gap: var(--space-ex-xs); }
  .af-provider-finder__controls input,.af-provider-finder__controls select { width: 100%; min-width: 0; min-height: var(--control-ex-height); background: var(--color-ex-paper); border-radius: var(--radius-premium-button); border-color: var(--color-ex-field); }
  .af-provider-finder__controls button { min-height: var(--control-ex-height); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-deep); color: var(--color-ex-paper); font-weight: 600; }
  .af-nearby-picker-note { color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); margin-block: var(--space-ex-lg); }
  [data-af-nearby-detect] { margin-block: var(--space-ex-lg) 0; }
  :is(a,button,input,select):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-nearby-directory,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-nearby-directory {
    .af-nearby-hero { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-xl); }
    .af-nearby-owner { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-ex-xs) var(--space-ex-lg); align-items: center; padding: var(--space-ex-lg); }
    .af-nearby-owner .af-nearby-kicker { grid-column: 1; margin: 0; }
    .af-nearby-owner h2 { grid-column: 1; font-size: var(--text-ex-section); }
    .af-nearby-owner .af-dir-button { grid-column: 2; grid-row: 1 / span 2; width: auto; }
    .af-nearby-owner > p:not(.af-nearby-kicker),.af-nearby-owner small { display: none; }
    .af-nearby-business { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--space-ex-md); }
    .af-nearby-business__contact { grid-column: 1 / -1; justify-content: flex-start; }
    .af-nearby-business__website { width: auto; justify-content: flex-start; }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-nearby-directory,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-nearby-directory {
    .af-nearby-hero { padding-block: var(--space-ex-xl) var(--space-ex-2xl); }
    .af-nearby-hero h1 { font-size: clamp(var(--text-ex-intro),10vw,var(--text-ex-price)); }
    .af-nearby-hero__intro { font-size: var(--text-ex-body); margin-block: var(--space-ex-md); }
    .af-nearby-owner { grid-template-columns: minmax(0,1fr); }
    .af-nearby-owner .af-dir-button { grid-column: 1; grid-row: auto; justify-self: start; margin-top: var(--space-ex-sm); }
    .af-nearby-toolbar { flex-direction: column; align-items: stretch; }
    .af-nearby-service select { flex: 1; }
    .af-nearby-business { grid-template-columns: minmax(0,1fr); padding: var(--space-ex-lg); }
    .af-nearby-business__website { width: 100%; }
    .af-nearby-community { flex-direction: column; align-items: start; }
  }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-nearby-directory,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-nearby-directory {
    .af-nearby-location a:hover,.af-nearby-business__website:hover,.af-nearby-business__claim:hover { text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
    .af-nearby-owner .af-dir-button:hover { background: var(--color-premium-muted) !important; }
    .af-nearby-business__phone:hover { background: var(--color-ex-hover); }
  }
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-nearby-directory,
body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-nearby-directory {
  :is(.af-nearby-owner .af-dir-button,.af-nearby-business__phone):active { box-shadow: var(--shadow-premium-action-pressed); }
}

/* Hallmark · homepage local catalogue · existing navy / water / porcelain.
 * City → compact comparable providers → secondary city browser/search.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. Native loading, empty, error and retry states. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-home-directory { min-width: 0; background: var(--color-ex-paper); color: var(--color-ex-ink); border-radius: var(--radius-premium-card); }
  .af-home-city { padding: var(--space-ex-lg); background: var(--color-premium-surface); border-radius: var(--radius-premium-card); color: var(--color-premium-text) !important; }
  .af-home-eyebrow { margin: 0 0 var(--space-ex-md); color: var(--color-premium-muted) !important; font: 500 var(--text-ex-meta)/1.5 var(--font-ex-body) !important; }
  .af-home-city h2 { min-width: 0; margin: 0; color: var(--color-premium-text) !important; font: 500 var(--text-ex-directory)/1.05 var(--font-ex-display) !important; font-style: normal; letter-spacing: -.025em; overflow-wrap: anywhere; }
  .af-home-region { display: flex; align-items: center; gap: var(--space-ex-xs); margin: var(--space-ex-sm) 0 0; font: 500 var(--text-ex-meta)/1.5 var(--font-ex-body) !important; color: var(--color-premium-text) !important; }
  .af-home-region img { flex: 0 0 var(--space-ex-lg); width: var(--space-ex-lg); height: auto; }
  .af-home-location-note { margin: var(--space-ex-sm) 0 0; color: var(--color-premium-muted) !important; font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body) !important; }
  .af-home-detect { display: inline-flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); margin-top: var(--space-ex-xs); padding: 0; border: 0; background: var(--color-ex-clear); color: var(--color-premium-text) !important; font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); cursor: pointer; }
  .af-home-providers { margin-top: var(--space-ex-lg); }
  .af-home-provider-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-sm); margin-bottom: var(--space-ex-sm); }
  :is(.af-home-provider-head,.af-home-cities) h3 { margin: 0; color: var(--color-ex-ink); font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body); }
  .af-home-provider-head > span { color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body) !important; white-space: nowrap; }
  .af-home-provider-list { display: grid; gap: var(--space-ex-sm); min-width: 0; }
  .af-home-provider { min-width: 0; padding: var(--space-ex-sm) var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); }
  .af-home-provider--premium { background: var(--color-premium-inline); }
  .af-home-provider-title { display: flex; align-items: start; gap: var(--space-ex-sm); }
  .af-home-provider-title h4 { flex: 1; min-width: 0; margin: 0; color: var(--color-ex-ink); font: 600 var(--text-ex-topic)/1.3 var(--font-ex-body); overflow-wrap: anywhere; }
  .af-home-provider-title h4 a { display: inline; color: var(--color-ex-ink); font: inherit !important; text-decoration: none; }
  .af-home-provider-badge { width: calc(var(--space-ex-xl) + var(--space-ex-xs)); height: calc(var(--space-ex-xl) + var(--space-ex-xs)); flex: 0 0 calc(var(--space-ex-xl) + var(--space-ex-xs)); }
  .af-home-provider-services { margin: var(--space-ex-2xs) 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body) !important; }
  .af-home-provider-website { display: flex; align-items: center; justify-content: space-between; 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); text-decoration: none; }
  .af-home-provider-website > span:first-child { min-width: 0; overflow-wrap: anywhere; }
  .af-home-provider-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-ex-xs); }
  .af-home-provider-actions:empty { display: none; }
  .af-home-provider-actions a { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); color: var(--color-ex-copper); white-space: nowrap !important; text-decoration: none; }
  .af-home-provider-call { flex: 1; padding-inline: var(--space-ex-xs); background: var(--color-ex-paper); border-radius: var(--radius-premium-button); box-shadow: var(--shadow-premium-action); }
  .af-home-provider-profile { padding-inline: 0; }
  .af-home-provider-label { display: block; margin-top: var(--space-ex-2xs); color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body) !important; }
  .af-home-disclosure { margin: var(--space-ex-sm) 0 0; color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body) !important; }
  :is(.af-home-view-all,.af-home-business-link) { display: flex; align-items: center; justify-content: space-between; 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); white-space: nowrap; text-decoration: none; }
  .af-home-view-all { margin-top: var(--space-ex-sm); padding-inline: var(--space-ex-md); background: var(--color-ex-hover); border-radius: var(--radius-premium-button); }
  .af-home-business-link { font-size: var(--text-ex-caption); font-weight: 400; }
  .af-home-empty { padding: var(--space-ex-md); background: var(--color-ex-porcelain); border-radius: var(--radius-premium-button); color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body) !important; }
  .af-home-cities { margin-top: var(--space-ex-md); padding: var(--space-ex-md); background: var(--color-ex-porcelain); border-radius: var(--radius-premium-card); }
  .af-home-cities > p { margin: var(--space-ex-xs) 0 var(--space-ex-sm); color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body) !important; }
  .af-home-city-index { margin-bottom: var(--space-ex-md); }
  .af-home-city-index summary { display: flex; align-items: center; justify-content: space-between; min-height: var(--control-ex-height); cursor: pointer; font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); color: var(--color-ex-ink); }
  .af-home-city-index summary::after { content: '+'; color: var(--color-ex-copper); }
  .af-home-city-index details[open] > summary::after { content: '−'; }
  .af-home-country { padding-inline: var(--space-ex-sm); border-radius: var(--radius-premium-button); background: var(--color-ex-paper); margin-bottom: var(--space-ex-xs); }
  .af-home-state summary { color: var(--color-ex-secondary); font-weight: 400; }
  .af-home-state ul { list-style: none; padding: 0; margin: 0; }
  .af-home-state li a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-sm); min-height: var(--control-ex-height); color: var(--color-ex-copper); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-home-state li small { display: block; color: var(--color-ex-secondary); font-size: var(--text-ex-caption); }
  .af-home-cities .af-ex-city-search { margin: 0; }
  .af-home-cities .af-ex-city-search label { font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-home-cities .af-ex-search-field { margin-top: var(--space-ex-xs); border-radius: var(--radius-premium-button); background: var(--color-ex-paper); }
  .af-home-cities .af-ex-search-field input { padding-left: var(--space-ex-sm); font-size: var(--text-ex-meta); }
  .af-home-cities .af-ex-search-field button { border-radius: 0 var(--radius-premium-button) var(--radius-premium-button) 0; }
  .af-home-directory :is(a,button,summary,input):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  .af-home-city :is(a,button):focus-visible { outline-color: var(--color-premium-muted) !important; }
  .af-home-directory button:disabled { cursor: wait; opacity: .6; }
  .af-home-directory[data-state="error"] .af-home-empty { color: var(--color-ex-ink); }
  .af-home-directory [hidden] { display: none !important; }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-home-directory :is(.af-home-provider-title a,.af-home-provider-website,.af-home-business-link,.af-home-state a):hover { text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
    .af-home-directory :is(.af-home-provider-call,.af-home-provider-profile,.af-home-view-all):hover { background: var(--color-ex-paper); box-shadow: var(--shadow-premium-action); }
    .af-home-detect:hover { text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
  }
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-home-directory :is(.af-home-provider-call,.af-home-view-all):active { box-shadow: var(--shadow-premium-action-pressed); background: var(--color-ex-hover); }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-ex-directory:has(> [data-af-home-directory]) { margin-top: 0; }
    .af-ex-directory:empty { display: none; }
    .af-mobile-premium-slot .af-home-directory { margin-block: var(--space-ex-sm) var(--space-ex-xl); }
    .af-mobile-premium-slot .af-home-directory [data-af-local-cards] { display: flex; gap: var(--space-ex-sm); }
    .af-mobile-premium-slot .af-home-provider { flex: 0 0 min(22rem,calc(100% - var(--space-ex-md))); scroll-snap-align: start; }
    .af-home-city { padding: var(--space-ex-md); }
    .af-home-city h2 { font-size: var(--text-ex-chapter) !important; }
    .af-home-directory .af-mobile-premium-hint { font-size: var(--text-ex-caption); }
    .af-home-cities { padding: var(--space-ex-md); }
  }
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-home-city h2:focus-visible { outline: var(--rule-ex-focus) solid var(--color-premium-muted); outline-offset: var(--space-ex-2xs); }
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-home-city-shortlist a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-sm); min-height: var(--control-ex-height); color: var(--color-ex-copper); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-home-all-cities { margin-block: var(--space-ex-xs) var(--space-ex-md); }
  .af-home-all-cities > summary { display: flex; align-items: center; justify-content: space-between; min-height: var(--control-ex-height); color: var(--color-ex-secondary); font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); cursor: pointer; }
  .af-home-all-cities > summary::after { content: '+'; }
  .af-home-all-cities[open] > summary::after { content: '−'; }
  .af-home-city-shortlist a:hover { text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
}

/* Hallmark · Premium sidebar spotlight · existing Plumbing / Newsreader / Figtree.
 * Break uniform row weighting: larger names, matte navy, bright direct website action.
 * City remains first; strongest enclosure and contrast belong to the provider.
 * Pre-emit critique: P5 H5 E5 S5 R4 V5. No invented ratings, endorsements or urgency. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-home-city { padding: 0; background: var(--color-ex-clear); border-radius: 0; }
  .af-home-eyebrow { margin-bottom: var(--space-ex-xs); color: var(--color-ex-secondary) !important; }
  .af-home-city h2 { color: var(--color-ex-ink) !important; }
  .af-home-region { color: var(--color-ex-ink) !important; }
  .af-home-location-note { color: var(--color-ex-secondary) !important; margin-top: var(--space-ex-2xs); }
  .af-home-detect { color: var(--color-ex-copper) !important; margin: 0; }
  .af-home-provider-head { margin-bottom: var(--space-ex-md); }
  .af-home-provider-list { gap: var(--space-ex-md); }
  .af-home-provider { padding: var(--space-ex-lg); border-radius: var(--radius-premium-card); }
  .af-home-provider-title { gap: var(--space-ex-md); align-items: center; }
  .af-home-provider-title h4 { font-size: var(--text-ex-subforum); }
  .af-home-provider-website { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-ex-2xs); min-height: calc(var(--control-ex-height) + var(--space-ex-lg)); margin-block: var(--space-ex-md) var(--space-ex-sm); padding: var(--space-ex-sm) var(--space-ex-md); border-radius: var(--radius-premium-button); background: var(--color-ex-copper); color: var(--color-ex-paper) !important; box-shadow: var(--shadow-premium-action); }
  .af-home-provider-website-label { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-md); font: 600 var(--text-ex-body)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-home-provider-domain { min-width: 0; font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); overflow-wrap: anywhere; }
  .af-home-provider-actions { gap: var(--space-ex-sm); }
  .af-home-provider-actions a { font-size: var(--text-ex-meta); }
  .af-home-provider-call { flex: 0 1 auto; padding-inline: var(--space-ex-sm); }
  .af-home-provider-profile { margin-left: auto; }
  .af-home-provider--premium { color: var(--color-premium-text); background: var(--color-premium-surface); box-shadow: var(--shadow-home-premium); }
  .af-home-provider--premium .af-home-provider-title h4 { color: var(--color-premium-text) !important; font: 500 var(--text-home-premium-name)/1.1 var(--font-ex-display) !important; letter-spacing: -.015em; }
  .af-home-provider--premium .af-home-provider-title h4 a { color: var(--color-premium-text) !important; }
  .af-home-provider--premium .af-home-provider-badge { flex: 0 0 var(--size-home-premium-badge); width: var(--size-home-premium-badge); height: var(--size-home-premium-badge); }
  .af-home-provider--premium .af-home-provider-services { margin: var(--space-ex-sm) 0 0; color: var(--color-premium-muted) !important; font-size: var(--text-ex-meta) !important; }
  .af-home-provider--premium .af-home-provider-website { background: var(--color-ex-paper); color: var(--color-ex-ink) !important; box-shadow: var(--shadow-premium-action); }
  .af-home-provider--premium .af-home-provider-domain { color: var(--color-ex-copper) !important; }
  .af-home-provider--premium .af-home-provider-call { background: var(--color-premium-service-surface); color: var(--color-premium-text) !important; box-shadow: none; }
  .af-home-provider--premium .af-home-provider-profile { color: var(--color-premium-text) !important; }
  .af-home-provider--premium .af-home-provider-label { margin-top: var(--space-ex-xs); color: var(--color-premium-muted) !important; }
  .af-home-provider--premium .af-dir-verification { color: var(--color-premium-muted); }
  .af-home-provider--premium :is(a,.af-dir-verification):focus-visible { outline-color: var(--color-premium-muted); }
  .af-home-city h2:focus-visible { outline-color: var(--color-ex-copper); }
  .af-home-directory .af-home-provider-website:active { background: var(--color-ex-copper-pressed); color: var(--color-ex-paper) !important; box-shadow: var(--shadow-premium-action-pressed); }
  .af-home-directory .af-home-provider--premium .af-home-provider-website:active { background: var(--color-premium-inline); color: var(--color-ex-ink) !important; }
  .af-home-directory .af-home-provider--premium .af-home-provider-call:active { background: var(--color-premium-service-surface); color: var(--color-premium-text) !important; }
}
@media (min-width: 80rem) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    .af-ex-layout:has([data-af-home-directory]) { grid-template-columns: minmax(0,1fr) var(--size-home-provider-rail); }
    .af-ex-directory:has([data-af-home-directory]) { padding-left: var(--space-ex-md); border-left: 0; }
  }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-home-directory .af-home-provider-website:hover { background: var(--color-ex-copper-pressed); color: var(--color-ex-paper) !important; text-decoration: none; }
    .af-home-directory .af-home-provider--premium .af-home-provider-website:hover { background: var(--color-premium-inline); color: var(--color-ex-ink) !important; }
    .af-home-directory .af-home-provider--premium :is(.af-home-provider-call,.af-home-provider-profile):hover { background: var(--color-premium-service-surface); color: var(--color-premium-text) !important; box-shadow: none; }
    .af-home-directory .af-home-provider-profile:hover { text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
  }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-home-city { padding: 0; }
    .af-mobile-premium-slot .af-home-directory [data-af-local-cards] { gap: var(--space-ex-md); padding-block: var(--space-ex-xs) var(--space-ex-md); }
    .af-mobile-premium-slot .af-home-provider { flex-basis: min(24rem,calc(100% - var(--space-ex-md))); padding: var(--space-ex-md); }
    .af-home-provider--premium .af-home-provider-title { gap: var(--space-ex-sm); align-items: start; }
    .af-home-provider--premium .af-home-provider-title h4 { font-size: var(--text-ex-section) !important; line-height: 1.15 !important; }
    .af-home-provider--premium .af-home-provider-badge { width: var(--space-ex-2xl); height: var(--space-ex-2xl); flex-basis: var(--space-ex-2xl); }
    .af-home-provider-actions { flex-wrap: wrap; gap: var(--space-ex-xs); }
    .af-home-provider-actions a { font-size: var(--text-ex-caption); }
    .af-home-provider-call { padding-inline: var(--space-ex-xs); }
  }
}

/* Hallmark · sidebar polish · P5 H5 E5 S5 R5 V4.
 * Explicit eyebrow spacing; one rounded search frame owns border and input focus. */
body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
  .af-home-city .af-home-eyebrow { margin: 0 0 var(--space-ex-sm) !important; }
  .af-home-cities .af-ex-search-field { border: var(--rule-ex-fine) solid var(--color-ex-field) !important; border-radius: var(--radius-premium-button); background: var(--color-ex-paper); overflow: clip; outline: none !important; box-shadow: none !important; }
  .af-home-cities .af-ex-search-field:focus-within { border-color: var(--color-ex-copper) !important; outline: var(--rule-ex-focus) solid var(--color-ex-copper) !important; outline-offset: 0; }
  .af-home-cities .af-ex-search-field input { flex: 1 1 0%; width: 0 !important; min-width: 0; margin: 0; border: 0 !important; border-radius: 0 !important; background: var(--color-ex-clear) !important; outline: none !important; outline-offset: 0 !important; box-shadow: none !important; appearance: none; }
  .af-home-cities .af-ex-search-field button { flex: 0 0 var(--control-ex-height); align-self: stretch; margin: 0; border: 0 !important; border-radius: 0 !important; background: var(--color-ex-copper); color: var(--color-ex-paper); outline: none !important; box-shadow: none !important; }
  .af-home-cities .af-ex-search-field button:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-paper) !important; outline-offset: calc(-1 * var(--space-ex-xs)) !important; }
  .af-home-cities .af-ex-search-field button:hover { background: var(--color-ex-copper-pressed); }
}

/* Complete city register: flat USA / Canada sections, no disclosure controls. P5 H5 E5 S5 R5 V4. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-city-register { margin-block: var(--space-ex-lg); }
  .af-city-register-country + .af-city-register-country { margin-top: var(--space-ex-xl); }
  .af-city-register-country :is(h3,h4) { display: flex; align-items: center; gap: var(--space-ex-xs); margin: 0 0 var(--space-ex-sm); color: var(--color-ex-ink); font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body) !important; }
  .af-city-register-country :is(h3,h4) img { flex: 0 0 var(--space-ex-lg); width: var(--space-ex-lg); height: auto; }
  .af-city-register ul { margin: 0; padding: 0; list-style: none; }
  .af-city-register li a { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-sm); min-height: var(--control-ex-height); padding-block: var(--space-ex-xs); color: var(--color-ex-copper); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-city-register li a > span:first-child { min-width: 0; overflow-wrap: anywhere; }
  .af-city-register li small { display: block; margin-top: var(--space-ex-2xs); color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-city-register li a:hover { text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
  .af-city-register a:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
  .af-nearby-location-index > h2 { margin-bottom: var(--space-ex-lg); font: 500 var(--text-ex-chapter)/1.2 var(--font-ex-display); }
  .af-home-cities { scroll-margin-top: var(--space-ex-2xl); }
}
@media (min-width: 48rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-nearby-location-index .af-city-register-country ul { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-ex-xs) var(--space-ex-xl); }
  }
}

/* Hallmark · all Plumbing listing presentations · existing navy / Newsreader / Figtree.
 * Basic and sample records share the polished surface; tier badges remain data-owned.
 * P5 H5 E5 S5 R5 V4. Full published contacts, rounded corners and clear action hierarchy. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-home-provider { color: var(--color-premium-text); background: var(--color-premium-surface); box-shadow: var(--shadow-home-premium); }
  .af-home-provider .af-home-provider-title h4 { color: var(--color-premium-text) !important; font: 500 var(--text-home-premium-name)/1.1 var(--font-ex-display) !important; letter-spacing: -.015em; }
  .af-home-provider .af-home-provider-title h4 a { color: var(--color-premium-text) !important; }
  .af-home-provider .af-home-provider-services { margin: var(--space-ex-sm) 0 0; color: var(--color-premium-muted) !important; font-size: var(--text-ex-meta) !important; }
  .af-home-provider .af-home-provider-website { background: var(--color-ex-paper); color: var(--color-ex-ink) !important; }
  .af-home-provider .af-home-provider-domain { color: var(--color-ex-copper) !important; }
  .af-home-provider .af-home-provider-call { background: var(--color-premium-service-surface); color: var(--color-premium-text) !important; box-shadow: none; }
  .af-home-provider .af-home-provider-label { margin-top: var(--space-ex-xs); color: var(--color-premium-muted) !important; }
  .af-home-provider .af-dir-verification { color: var(--color-premium-muted); border-color: var(--color-premium-muted); }
  .af-home-provider :is(a,.af-dir-verification):focus-visible { outline-color: var(--color-premium-muted); }
  .af-home-directory .af-home-provider .af-home-provider-website:active { background: var(--color-premium-inline); color: var(--color-ex-ink) !important; }
  .af-home-directory .af-home-provider .af-home-provider-call:active { background: var(--color-premium-service-surface); color: var(--color-premium-text) !important; }
  .af-nearby-directory .af-nearby-business-list { grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-ex-md); }
  .af-market-page .af-dir-basic-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-ex-md); border: 0; }
  :is(.af-nearby-directory .af-nearby-business,.af-market-page .af-dir-basic) { display: flex; flex-direction: column; align-items: stretch; min-width: 0; gap: var(--space-ex-md); padding: var(--space-ex-lg); border: 0; border-radius: var(--radius-premium-card); background: var(--color-premium-surface); color: var(--color-premium-text); box-shadow: var(--shadow-home-premium); }
  .af-nearby-directory .af-nearby-business:nth-child(even) { background: var(--color-premium-surface); }
  .af-nearby-directory .af-nearby-business h4,.af-market-page .af-dir-basic h3 { margin: 0; font: 500 var(--text-home-premium-name)/1.1 var(--font-ex-display) !important; color: var(--color-premium-text) !important; letter-spacing: -.015em; overflow-wrap: anywhere; }
  :is(.af-nearby-directory .af-nearby-business,.af-market-page .af-dir-basic) :is(p,small,.af-dir-basic__claim span) { color: var(--color-premium-muted) !important; }
  :is(.af-nearby-directory .af-nearby-business,.af-market-page .af-dir-basic) .af-dir-verification { color: var(--color-premium-muted); border-color: var(--color-premium-muted); }
  .af-market-page .af-dir-basic__specialties { font-size: var(--text-ex-meta); }
  .af-nearby-directory .af-nearby-business__contact,.af-market-page .af-dir-basic__contact { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-ex-sm); margin-top: auto; }
  :is(.af-nearby-directory .af-nearby-business__website,.af-market-page .af-listing-website) { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: var(--space-ex-2xs); min-height: calc(var(--control-ex-height) + var(--space-ex-lg)); width: 100%; padding: var(--space-ex-sm) var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-paper); color: var(--color-ex-ink) !important; text-decoration: none; }
  :is(.af-listing-website-label,.af-market-page .af-listing-website > span) { display: flex; justify-content: space-between; align-items: center; gap: var(--space-ex-sm); font: 600 var(--text-ex-body)/1.4 var(--font-ex-body); }
  .af-nearby-directory .af-nearby-business .af-listing-domain,.af-market-page .af-dir-basic .af-listing-website small { margin: 0; color: var(--color-ex-copper) !important; font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); overflow-wrap: anywhere; }
  :is(.af-nearby-directory .af-nearby-business__phone,.af-market-page .af-listing-call) { display: flex; align-items: center; justify-content: center; min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-sm); border-radius: var(--radius-premium-button); background: var(--color-premium-service-surface); color: var(--color-premium-text) !important; font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); text-decoration: none; box-shadow: none; overflow-wrap: anywhere; white-space: normal; }
  .af-nearby-directory .af-nearby-business__claim,.af-market-page .af-dir-basic__claim a { display: inline-flex; align-items: center; min-height: var(--control-ex-height); color: var(--color-premium-text) !important; font: 400 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  :is(.af-nearby-directory .af-nearby-business,.af-market-page .af-dir-basic) :is(a,.af-dir-verification):focus-visible { outline: var(--rule-ex-focus) solid var(--color-premium-muted); outline-offset: var(--space-ex-2xs); }
  .af-market-page .af-dir-basic__title-row { display: flex; flex-direction: column; align-items: start; gap: var(--space-ex-xs); }
  .af-market-page .af-dir-basic__claim { margin-top: auto; text-align: left; }
  .af-market-page .af-dir-basic__claim > span { display: block; }
  .af-market-page .af-dir-basic__claim a { margin: 0; }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-home-directory .af-home-provider .af-home-provider-website:hover,
    :is(.af-nearby-directory .af-nearby-business__website,.af-market-page .af-listing-website):hover { background: var(--color-premium-inline); color: var(--color-ex-ink) !important; text-decoration: none; }
    .af-home-directory .af-home-provider .af-home-provider-call:hover,.af-nearby-directory .af-nearby-business__phone:hover { background: var(--color-premium-service-surface); color: var(--color-premium-text) !important; box-shadow: none; }
    .af-nearby-directory .af-nearby-business__claim:hover,.af-market-page .af-dir-basic__claim a:hover { text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
  }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-home-provider .af-home-provider-title h4 { font-size: var(--text-ex-section) !important; line-height: 1.15 !important; }
    .af-nearby-directory .af-nearby-business-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-nearby-directory .af-nearby-business-list,.af-market-page .af-dir-basic-list { grid-template-columns: minmax(0,1fr); }
  }
}

/* Hallmark · component: Plumbing magazine cover · genre: editorial · design-system: design.md
 * Existing navy / Newsreader / Figtree; real HTML type over a purpose-composed photograph.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. Photo contrast, native routes and mobile provider order.
 */
body.af-exchange-design.af-plumbing-design.af-exchange-home {
  --space-cover-gutter: var(--space-ex-xl);
  --space-cover-inset: clamp(var(--space-ex-xl),4.5vw,var(--space-ex-3xl));
  --text-cover-title: clamp(3.25rem,5.8vw,6rem);
  --text-cover-intro: 1.125rem;
  --size-cover-height: clamp(32rem,42vw,38rem);
  --size-cover-photo-mobile: clamp(12rem,45vw,16rem);
  --color-cover-scrim: color-mix(in oklch,var(--color-ex-deep) 55%,var(--color-ex-clear));
}
body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
  .af-plumbing-cover { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0,1fr); min-height: var(--size-cover-height); gap: 0; margin: calc(-1 * var(--space-ex-xl)) calc(-1 * var(--space-cover-gutter)) var(--space-ex-2xl); padding: 0; border: 0; background: var(--color-ex-deep); }
  .af-plumbing-cover > .af-ex-image { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; min-width: 0; align-self: stretch; }
  .af-plumbing-cover .af-ex-image img { display: block; width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; object-fit: cover; object-position: center; }
  .af-plumbing-cover::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg,var(--color-cover-scrim) 38%,var(--color-ex-clear) 78%); }
  .af-plumbing-cover-copy { display: flex; flex-direction: column; align-items: start; justify-content: center; gap: var(--space-ex-lg); width: 60%; min-width: 0; padding: var(--space-cover-inset); }
  .af-plumbing-cover-copy .af-plumbing-cover-eyebrow { margin: 0; color: var(--color-ex-reverse); font: 600 var(--text-ex-caption)/1.5 var(--font-ex-body); letter-spacing: .12em; text-transform: uppercase; }
  .af-plumbing-cover h1 { max-width: 12ch; margin: 0; color: var(--color-ex-paper) !important; font: 450 var(--text-cover-title)/.99 var(--font-ex-display) !important; font-style: normal; letter-spacing: -.04em; text-wrap: initial; overflow-wrap: anywhere; }
  .af-plumbing-cover h1 > span { display: block; font: inherit; color: inherit; }
  .af-plumbing-cover-copy .af-plumbing-cover-intro { max-width: 42ch; margin: 0; color: var(--color-ex-paper); font: 400 var(--text-cover-intro)/1.55 var(--font-ex-body); }
  .af-plumbing-cover-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-ex-xs) var(--space-ex-lg); width: 100%; margin-top: var(--space-ex-xs); }
  .af-plumbing-cover-actions .af-ex-action { width: auto; min-height: 3.25rem; padding: var(--space-ex-sm) var(--space-ex-lg); gap: var(--space-ex-lg); background: var(--color-ex-paper); color: var(--color-ex-deep) !important; font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-plumbing-cover-explore { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-ex-sm); min-height: 3.25rem; color: var(--color-ex-paper) !important; font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-plumbing-cover-actions a:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-paper) !important; outline-offset: var(--space-ex-2xs); }
  .af-plumbing-cover-actions .af-ex-action:active { background: var(--color-ex-reverse); color: var(--color-ex-deep) !important; }
  .af-plumbing-cover-explore:active { color: var(--color-ex-reverse) !important; text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
  .af-mobile-premium-slot:empty { display: none; }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    .af-plumbing-cover-actions .af-ex-action:hover { background: var(--color-ex-reverse); color: var(--color-ex-deep) !important; text-decoration: none; }
    .af-plumbing-cover-explore:hover { color: var(--color-ex-paper) !important; text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
  }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home { --space-cover-gutter: var(--space-ex-lg); }
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    .af-plumbing-cover { margin-top: 0; }
    .af-mobile-premium-slot:not(:empty) { margin-bottom: var(--space-ex-2xl); }
    .af-mobile-premium-slot .af-home-directory { margin: 0; }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home { --text-cover-title: clamp(2.75rem,9vw,4.75rem); --text-cover-intro: var(--text-ex-body); }
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    .af-plumbing-cover { grid-template-rows: var(--size-cover-photo-mobile) auto; min-height: 0; }
    .af-plumbing-cover > .af-ex-image { position: relative; grid-row: 1; z-index: 0; height: var(--size-cover-photo-mobile); }
    .af-plumbing-cover .af-ex-image img { object-position: 84% 50%; }
    .af-plumbing-cover::before { content: none; }
    .af-plumbing-cover-copy { grid-row: 2; width: 100%; padding: var(--space-ex-xl) var(--space-ex-lg); gap: var(--space-ex-md); background: var(--color-ex-deep); }
    .af-plumbing-cover h1 { max-width: none; line-height: 1.04 !important; }
    .af-plumbing-cover-actions { gap: var(--space-ex-xs) var(--space-ex-md); margin-top: var(--space-ex-xs); }
    .af-plumbing-cover-actions .af-ex-action { min-height: var(--control-ex-height); padding-inline: var(--space-ex-md); gap: var(--space-ex-sm); }
    .af-plumbing-cover-explore { min-height: var(--control-ex-height); }
  }
}
@media (max-width: 37.49rem) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home { --space-cover-gutter: var(--space-ex-md); }
}

/* Hallmark · component: compact category covers · genre: editorial · design-system: design.md
 * A smaller magazine opening using each category's own photograph; native topics stay below.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. Shared edge, upright type and clear category hierarchy.
 */
body.af-exchange-design.af-plumbing-design.af-exchange-home {
  --text-category-cover: clamp(1.75rem,2.6vw,2.5rem);
  --size-category-cover: 13rem;
  --size-category-cover-phone-photo: 8rem;
}
body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange {
  .af-ex-category-cover { display: grid; grid-template-columns: minmax(0,1fr); align-items: stretch; min-height: var(--size-category-cover); padding: 0; gap: 0; margin-bottom: var(--space-ex-xl); border: 0; border-radius: var(--radius-premium-card); background: var(--color-ex-deep); overflow: clip; }
  .af-ex-category-cover:has(> .af-ex-image) { grid-template-columns: minmax(0,1fr) minmax(0,.58fr); }
  .af-ex-category-cover .af-ex-chapter-copy { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; justify-content: center; align-items: start; gap: var(--space-ex-sm); min-width: 0; padding: var(--space-ex-xl); }
  .af-ex-category-cover .af-ex-ordinal { margin: 0; color: var(--color-ex-reverse); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); letter-spacing: .12em; }
  .af-ex-category-cover :is(h2,h2 a) { margin: 0; color: var(--color-ex-paper) !important; font: 450 var(--text-category-cover)/1.08 var(--font-ex-display) !important; font-style: normal; letter-spacing: -.025em; overflow-wrap: anywhere; }
  .af-ex-category-cover h2 { max-width: 25ch; }
  .af-ex-category-cover h2 a { display: flex; align-items: center; min-height: var(--control-ex-height); text-decoration: none; }
  .af-ex-category-cover .af-ex-chapter-copy > p { margin: 0; max-width: 54ch; color: var(--color-ex-reverse); font: 400 var(--text-ex-city)/1.55 var(--font-ex-body); }
  .af-ex-category-cover > .af-ex-image { grid-column: 2; grid-row: 1; position: relative; width: 100%; min-width: 0; height: 100%; min-height: var(--size-category-cover); margin: 0; align-self: stretch; border-radius: 0; background: var(--color-ex-deep); overflow: clip; }
  .af-ex-category-cover > .af-ex-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; object-fit: cover; object-position: center; }
  .af-ex-category-cover h2 a:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-paper) !important; outline-offset: var(--space-ex-2xs); }
  .af-ex-category-cover h2 a:active { color: var(--color-ex-reverse) !important; text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange {
    .af-ex-category-cover h2 a:hover { color: var(--color-ex-paper) !important; text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
  }
}
@media (max-width: 37.49rem) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home { --text-category-cover: 1.75rem; }
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap .af-exchange {
    .af-ex-category-cover { min-height: 0; margin-bottom: var(--space-ex-lg); }
    .af-ex-category-cover:has(> .af-ex-image) { grid-template-columns: minmax(0,1fr); }
    .af-ex-category-cover .af-ex-chapter-copy { grid-column: 1; grid-row: 2; padding: var(--space-ex-lg); }
    .af-ex-category-cover:not(:has(> .af-ex-image)) .af-ex-chapter-copy { grid-row: 1; }
    .af-ex-category-cover > .af-ex-image { grid-column: 1; grid-row: 1; min-height: 0; height: var(--size-category-cover-phone-photo); }
  }
}

/* Hallmark · component: editorial footer · genre: editorial · design-system: design.md
 * Masthead-style close: a useful owner invitation, legible routes and restrained native credits.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. Existing colors/type and all native destinations retained.
 */
body.af-exchange-design.af-plumbing-design {
  --text-footer-invitation: clamp(2.125rem,4.5vw,4.5rem);
  --text-footer-wordmark: clamp(2.75rem,5.8vw,5.75rem);
  --space-footer-gutter: var(--space-ex-xl);
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-plumbing-footer--editorial { margin-top: var(--space-ex-2xl); padding: 0; border: 0; background: var(--color-ex-deep); color: var(--color-ex-paper); }
  .af-plumbing-footer--editorial :is(h2,h3,p) { margin: 0; padding: 0; }
  .af-footer-business { background: var(--color-ex-porcelain); color: var(--color-ex-ink); }
  .af-footer-business__inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(18rem,.45fr); align-items: center; gap: var(--space-ex-3xl); max-width: var(--layout-ex-width); margin-inline: auto; padding: var(--space-ex-3xl) var(--space-footer-gutter); }
  .af-footer-business__copy { min-width: 0; }
  .af-footer-business .af-footer-eyebrow { margin-bottom: var(--space-ex-md); color: var(--color-ex-copper); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); letter-spacing: .1em; text-transform: uppercase; }
  .af-footer-business h2 { max-width: 18ch; color: var(--color-ex-ink) !important; font: 450 var(--text-footer-invitation)/1.04 var(--font-ex-display) !important; letter-spacing: -.035em; font-style: normal; overflow-wrap: anywhere; }
  .af-footer-business h2 > span { display: block; color: inherit; font: inherit; }
  .af-footer-business .af-footer-business__intro { max-width: 49ch; margin-top: var(--space-ex-lg); color: var(--color-ex-secondary); font: 400 var(--text-ex-subforum)/1.55 var(--font-ex-body); }
  .af-footer-business__actions { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-ex-sm); min-width: 0; }
  .af-footer-business__actions .af-footer-action { display: flex; justify-content: space-between; align-items: center; gap: var(--space-ex-lg); width: 100%; min-height: 3.25rem; padding: var(--space-ex-sm) var(--space-ex-lg); border: 0; border-radius: var(--radius-premium-button); box-shadow: var(--shadow-premium-action); font: 600 var(--text-ex-body)/1.4 var(--font-ex-body); text-decoration: none; white-space: nowrap; }
  .af-footer-business__actions .af-footer-action--primary { background: var(--color-ex-copper); color: var(--color-ex-paper) !important; }
  .af-footer-business__actions .af-footer-action--secondary { background: var(--color-ex-paper); color: var(--color-ex-ink) !important; }
  .af-footer-business__actions > p { color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
  .af-footer-business__actions .af-footer-action:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper) !important; outline-offset: var(--space-ex-2xs); }
  .af-footer-business__actions .af-footer-action--primary:active { background: var(--color-ex-copper-pressed); box-shadow: var(--shadow-premium-action-pressed); }
  .af-footer-business__actions .af-footer-action--secondary:active { background: var(--color-ex-hover); box-shadow: var(--shadow-premium-action-pressed); }
  .af-plumbing-footer--editorial > .af-plumbing-footer__inner { max-width: var(--layout-ex-width); margin-inline: auto; padding: var(--space-ex-3xl) var(--space-footer-gutter) var(--space-ex-xl); }
  .af-footer-navigation { display: grid; grid-template-columns: minmax(0,1.75fr) repeat(2,minmax(0,.625fr)); gap: var(--space-ex-xl); align-items: start; padding-bottom: var(--space-ex-3xl); }
  .af-footer-brand { min-width: 0; }
  .af-footer-brand > a { display: inline-flex; align-items: center; min-height: var(--control-ex-height); color: var(--color-ex-paper) !important; font: 450 var(--text-footer-wordmark)/1.06 var(--font-ex-display) !important; letter-spacing: -.045em; white-space: nowrap; text-decoration: none; }
  .af-footer-brand > p { max-width: 32ch; margin-top: var(--space-ex-md); color: var(--color-ex-reverse); font: 400 var(--text-ex-body)/1.5 var(--font-ex-body); }
  .af-footer-navigation nav { min-width: 0; }
  .af-footer-navigation nav h3 { margin-bottom: var(--space-ex-md); color: var(--color-ex-reverse); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body) !important; letter-spacing: .08em; text-transform: uppercase; }
  .af-footer-navigation nav a { display: flex; align-items: center; min-height: var(--control-ex-height); color: var(--color-ex-paper) !important; font: 400 var(--text-ex-body)/1.4 var(--font-ex-body); white-space: nowrap; text-decoration: none; }
  .af-footer-colophon { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-ex-xs) var(--space-ex-xl); border-top: var(--rule-ex-fine) solid var(--color-ex-inverse-rule); padding-top: var(--space-ex-lg); }
  .af-footer-colophon .af-information-links { display: flex; flex-wrap: wrap; flex-basis: 100%; align-items: center; gap: 0 var(--space-ex-lg); margin: 0; padding: 0; }
  .af-footer-colophon .af-information-links a { display: inline-flex; align-items: center; min-height: var(--control-ex-height); color: var(--color-ex-paper) !important; font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); white-space: nowrap; text-decoration: none; }
  .af-footer-colophon :is(p,.af-footer-credit) { color: var(--color-ex-reverse); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
  .af-footer-credit [id="wpforo-poweredby"] { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: var(--color-ex-clear); text-align: left !important; font: inherit !important; color: inherit; }
  .af-footer-credit .wpf-by { border: 0 !important; margin: 0 !important; padding: 0 !important; text-align: left !important; font: inherit !important; }
  .af-footer-credit :is(span,a) { color: var(--color-ex-reverse) !important; font: inherit !important; }
  .af-footer-credit a { display: inline-flex; align-items: center; min-height: var(--control-ex-height); text-decoration: none; vertical-align: middle; }
  .af-footer-top { display: inline-flex; justify-content: space-between; align-items: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); color: var(--color-ex-paper) !important; font: 500 var(--text-ex-caption)/1.4 var(--font-ex-body); white-space: nowrap; text-decoration: none; }
  .af-plumbing-footer--editorial .af-footer-disclaimer { max-width: 92ch; margin-top: var(--space-ex-md); color: var(--color-ex-reverse); font: 400 var(--text-ex-caption)/1.6 var(--font-ex-body); }
  .af-plumbing-footer--editorial:has(.af-footer-disclaimer) > .af-plumbing-footer__inner { padding-bottom: calc(var(--space-ex-xl) + var(--control-ex-height)); }
  .af-plumbing-footer--editorial :is(a,button):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-paper) !important; outline-offset: var(--space-ex-2xs); }
  .af-footer-top:active,.af-footer-navigation nav a:active { color: var(--color-ex-reverse) !important; text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-footer-business__actions .af-footer-action--primary:hover { background: var(--color-ex-copper-pressed); color: var(--color-ex-paper) !important; text-decoration: none; }
    .af-footer-business__actions .af-footer-action--secondary:hover { background: var(--color-ex-hover); color: var(--color-ex-ink) !important; text-decoration: none; }
    :is(.af-footer-top,.af-footer-navigation nav a,.af-footer-credit a,.af-footer-colophon .af-information-links a):hover { color: var(--color-ex-paper) !important; text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
    .af-footer-brand > a:hover { text-decoration: none; }
  }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design {
    --space-footer-gutter: var(--space-ex-lg);
    --text-footer-wordmark: clamp(2.5rem,7.5vw,5rem);
  }
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-footer-business__inner { gap: var(--space-ex-xl); }
    .af-footer-navigation { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-ex-xl); }
    .af-footer-brand { grid-column: 1 / -1; }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design { --text-footer-wordmark: clamp(2.25rem,11vw,3.75rem); }
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-footer-business__inner { grid-template-columns: minmax(0,1fr); padding-block: var(--space-ex-xl); gap: var(--space-ex-lg); }
    .af-footer-business h2 { max-width: none; }
    .af-footer-business .af-footer-business__intro { font-size: var(--text-ex-body); margin-top: var(--space-ex-md); }
    .af-plumbing-footer--editorial > .af-plumbing-footer__inner { padding-top: var(--space-ex-xl); }
    .af-footer-navigation { gap: var(--space-ex-lg); padding-bottom: var(--space-ex-xl); }
    .af-footer-navigation nav a { font-size: var(--text-ex-meta); }
    .af-footer-navigation nav h3 { margin-bottom: var(--space-ex-xs); letter-spacing: .04em; }
    .af-footer-colophon { column-gap: var(--space-ex-md); }
    .af-footer-credit { order: 3; flex-basis: 100%; }
  }
}

/* Hallmark · component: category destination covers · genre: editorial · design-system: design.md
 * Same navy/photo edge as homepage chapters, scaled for a page title and native discussion actions.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. Component scope; existing type/palette/routes retained.
 */
body.af-exchange-design.af-plumbing-design {
  --text-forum-cover: clamp(2rem,3.5vw,3.5rem);
  --size-forum-cover: 17rem;
  --size-forum-cover-phone-photo: 10rem;
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
  .af-view-header.af-view-header--cover { display: grid; grid-template-columns: minmax(0,1fr); grid-template-areas: "copy" "actions"; align-items: stretch; gap: 0; min-height: var(--size-forum-cover); margin-bottom: var(--space-ex-xl); padding: 0; border: 0; border-radius: var(--radius-premium-card); background: var(--color-ex-deep); color: var(--color-ex-paper); overflow: clip; }
  .af-view-header.af-view-header--cover:has(> .af-forum-hero-photo) { grid-template-columns: minmax(0,1fr) minmax(0,.58fr); grid-template-areas: "copy photo" "actions photo"; }
  .af-view-header.af-view-header--cover::before { content: none; }
  .af-view-header.af-view-header--cover > div:first-child { grid-area: copy; display: flex; flex-direction: column; justify-content: center; align-items: start; gap: var(--space-ex-sm); min-width: 0; padding: var(--space-ex-xl) var(--space-ex-xl) var(--space-ex-md); }
  .af-view-header.af-view-header--cover .af-forum-cover__eyebrow { margin: 0; color: var(--color-ex-reverse); font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); letter-spacing: .12em; text-transform: uppercase; }
  .af-view-header.af-view-header--cover h1 { max-width: 25ch; min-width: 0; margin: 0; color: var(--color-ex-paper) !important; font: 450 var(--text-forum-cover)/1.06 var(--font-ex-display) !important; font-style: normal; letter-spacing: -.03em; overflow-wrap: anywhere; }
  .af-view-header.af-view-header--cover :is(.af-view-description,.af-view-description p,.af-view-description__full) { max-width: 54ch; margin: 0 !important; color: var(--color-ex-reverse) !important; font: 400 var(--text-ex-city)/1.55 var(--font-ex-body) !important; }
  .af-view-header.af-view-header--cover .af-view-description :is(a,summary) { color: var(--color-ex-paper); }
  .af-view-header.af-view-header--cover .af-view-description summary { min-height: var(--control-ex-height); align-content: center; font: 500 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-view-header.af-view-header--cover > :is(.af-view-header__actions,.af-category-section__actions) { grid-area: actions; justify-content: flex-start; align-items: center; flex-wrap: wrap; gap: var(--space-ex-sm); min-width: 0; margin: 0; padding: 0 var(--space-ex-xl) var(--space-ex-xl); }
  .af-view-header.af-view-header--cover > :is(.af-view-header__actions,.af-category-section__actions):empty { display: none; }
  .af-view-header.af-view-header--cover > :is(.af-view-header__actions,.af-category-section__actions) :is(a,button,input[type="button"]) { min-height: var(--control-ex-height); border-radius: var(--radius-premium-button); white-space: nowrap; }
  .af-view-header.af-view-header--cover :is(.wpf-button,.wpf-button-outlined) { background: var(--color-ex-copper) !important; border-color: var(--color-ex-copper) !important; color: var(--color-ex-paper) !important; box-shadow: var(--shadow-premium-action); }
  .af-view-header.af-view-header--cover .af-forum-hero-photo { grid-area: photo; position: relative; width: 100%; height: 100%; min-width: 0; min-height: var(--size-forum-cover); margin: 0; aspect-ratio: auto; border-radius: 0; background: var(--color-ex-deep); overflow: clip; }
  .af-view-header.af-view-header--cover .af-forum-hero-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
  .af-view-header.af-view-header--cover :is(a,button,input,summary):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-paper) !important; outline-offset: var(--space-ex-2xs); }
  .af-view-header.af-view-header--cover :is(.wpf-button,.wpf-button-outlined):is(:hover,:active) { background: var(--color-ex-copper-pressed) !important; border-color: var(--color-ex-copper-pressed) !important; color: var(--color-ex-paper) !important; }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
    .af-view-header.af-view-header--cover { min-height: 0; }
    .af-view-header.af-view-header--cover:has(> .af-forum-hero-photo) { grid-template-columns: minmax(0,1fr); grid-template-areas: "photo" "copy" "actions"; }
    .af-view-header.af-view-header--cover > div:first-child { padding: var(--space-ex-lg) var(--space-ex-lg) var(--space-ex-md); }
    .af-view-header.af-view-header--cover > :is(.af-view-header__actions,.af-category-section__actions) { padding: 0 var(--space-ex-lg) var(--space-ex-lg); }
    .af-view-header.af-view-header--cover .af-forum-hero-photo { height: var(--size-forum-cover-phone-photo); min-height: 0; }
  }
}

/* Hallmark · component: responsive authentication · design-system: design.md
 * The native login cap must not compress a two-column form. Size columns by available space.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. Native fields, account actions and validation retained.
 */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
  .af-route-frame:has(> .af-auth-view),.wpf-profile-body:has(> .af-auth-view) { container: af-auth-frame / inline-size; }
  :is(.af-route-frame--login,.af-route-frame--register) .wpf-profile-section:has(.af-auth-view) { width: 100%; max-width: none; }
  .af-auth-view { width: 100% !important; max-width: none !important; grid-template-columns: minmax(0,1fr) !important; }
  .af-auth-main { min-width: 0; padding: var(--space-ex-lg); }
  .af-auth-context { justify-content: flex-start; gap: var(--space-ex-lg); padding: var(--space-ex-lg); border: 0; }
  .af-auth-form :is(.wpforo-login-wrap,.wpforo-register-wrap) { margin: 0; padding: 0; }
  .af-auth-form :is(input[type="text"],input[type="email"],input[type="password"]) { width: 100%; min-width: 0; }
  .af-auth-options,.af-auth-alternate { flex-wrap: wrap; }
  .af-auth-options :is(.af-checkbox,.wpf-forgot-pass),.af-auth-alternate__link { min-height: var(--control-ex-height); }
  .af-auth-options .af-checkbox > span,.af-auth-options .wpf-forgot-pass,.af-auth-alternate__link { white-space: nowrap; }
}
@container af-auth-frame (min-width: 48rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
    .af-auth-view { grid-template-columns: minmax(0,1.12fr) minmax(0,.88fr) !important; }
    .af-auth-main,.af-auth-context { padding: var(--space-ex-xl); }
    .af-auth-context { gap: var(--space-ex-xl); }
  }
}

/* Hallmark · component: integrated authentication surfaces · design-system: design.md
 * A continuous page surface with a form and an editorial aside, separated by space.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. Existing palette, type and native controls retained.
 */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
  :is(.af-route-frame--login,.af-route-frame--register) {
    :is(.wpforo-profile-content,.wpf-profile-section,.wpf-profile-body,.af-auth-view,.af-auth-main,.af-auth-context) { border: 0; border-radius: 0; background: var(--color-ex-clear) !important; box-shadow: none; }
    .af-auth-view { gap: var(--space-ex-2xl); overflow: visible; }
    .af-auth-main,.af-auth-context { padding: 0; }
    .af-auth-context { gap: var(--space-ex-lg); }
    .af-auth-form :is(.wpforo-login-wrap,.wpforo-register-wrap,.wpforo-login-content,.wpforo-register-content,.af-generated-fields) { background: var(--color-ex-clear) !important; box-shadow: none; }
  }
}
@container af-auth-frame (min-width: 48rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
    :is(.af-route-frame--login,.af-route-frame--register) .af-auth-view { column-gap: var(--space-ex-3xl); }
  }
}

/* Hallmark · component: Basic listing distinction · design-system: design.md
 * Premium presentation belongs to eligible Premium/preview cards; Basic records stay quiet.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. Existing contacts, tier selection and badges retained.
 */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-home-provider:not(.af-home-provider--premium) { padding: var(--space-ex-md); background: var(--color-ex-porcelain); color: var(--color-ex-ink); box-shadow: none; border-radius: var(--radius-premium-button); }
  .af-home-provider:not(.af-home-provider--premium) .af-home-provider-title h4 { color: var(--color-ex-ink) !important; font: 600 var(--text-ex-subforum)/1.35 var(--font-ex-body) !important; letter-spacing: normal; }
  .af-home-provider:not(.af-home-provider--premium) .af-home-provider-services { margin: var(--space-ex-xs) 0; color: var(--color-ex-secondary) !important; }
  .af-home-provider:not(.af-home-provider--premium) .af-home-provider-website { min-height: var(--control-ex-height); margin-block: var(--space-ex-sm); padding: var(--space-ex-xs) 0; background: var(--color-ex-clear); color: var(--color-ex-copper) !important; border-radius: 0; box-shadow: none; }
  .af-home-provider:not(.af-home-provider--premium) .af-home-provider-website-label { font-size: var(--text-ex-meta); }
  .af-home-provider:not(.af-home-provider--premium) .af-home-provider-call { background: var(--color-ex-paper); color: var(--color-ex-copper) !important; box-shadow: none; }
  .af-home-provider:not(.af-home-provider--premium) :is(.af-home-provider-label,.af-dir-verification) { color: var(--color-ex-secondary) !important; border-color: var(--color-ex-rule); }
  .af-home-provider:not(.af-home-provider--premium) :is(a,.af-dir-verification):focus-visible { outline-color: var(--color-ex-copper); }
  .af-nearby-directory .af-nearby-business-list,.af-market-page .af-dir-basic-list { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-sm); }
  :is(.af-nearby-directory .af-nearby-business,.af-market-page .af-dir-basic) { display: grid; align-items: center; gap: var(--space-ex-md) var(--space-ex-xl); padding: var(--space-ex-lg); border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); color: var(--color-ex-ink); box-shadow: none; }
  .af-nearby-directory .af-nearby-business { grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr); }
  .af-nearby-directory .af-nearby-business:nth-child(even) { background: var(--color-ex-porcelain); }
  .af-market-page .af-dir-basic { grid-template-columns: minmax(0,1fr) minmax(0,.6fr); }
  .af-nearby-directory .af-nearby-business h4,.af-market-page .af-dir-basic h3 { color: var(--color-ex-ink) !important; font: 600 var(--text-ex-subforum)/1.35 var(--font-ex-body) !important; letter-spacing: normal; }
  :is(.af-nearby-directory .af-nearby-business,.af-market-page .af-dir-basic) :is(p,small,.af-dir-basic__claim span,.af-dir-verification) { color: var(--color-ex-secondary) !important; border-color: var(--color-ex-rule); }
  .af-nearby-directory .af-nearby-business__contact,.af-market-page .af-dir-basic__contact { margin-top: 0; }
  :is(.af-nearby-directory .af-nearby-business__website,.af-market-page .af-listing-website) { min-height: var(--control-ex-height); padding: var(--space-ex-xs) 0; border-radius: 0; background: var(--color-ex-clear); color: var(--color-ex-copper) !important; }
  :is(.af-listing-website-label,.af-market-page .af-listing-website > span) { font-size: var(--text-ex-meta); }
  .af-nearby-directory .af-nearby-business .af-listing-domain,.af-market-page .af-dir-basic .af-listing-website small { color: var(--color-ex-copper) !important; }
  :is(.af-nearby-directory .af-nearby-business__phone,.af-market-page .af-listing-call) { background: var(--color-ex-paper); color: var(--color-ex-copper) !important; }
  .af-nearby-directory .af-nearby-business__claim,.af-market-page .af-dir-basic__claim a { color: var(--color-ex-copper) !important; }
  .af-market-page .af-dir-basic__claim { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-ex-xs) var(--space-ex-md); margin-top: 0; }
  :is(.af-nearby-directory .af-nearby-business,.af-market-page .af-dir-basic) :is(a,.af-dir-verification):focus-visible { outline-color: var(--color-ex-copper); }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-nearby-directory .af-nearby-business { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
    .af-nearby-directory .af-nearby-business__contact { grid-column: 1 / -1; }
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-nearby-directory .af-nearby-business,.af-market-page .af-dir-basic { grid-template-columns: minmax(0,1fr); }
  }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-home-directory .af-home-provider:not(.af-home-provider--premium) :is(.af-home-provider-website,.af-home-provider-call):hover,
    .af-nearby-directory .af-nearby-business :is(.af-nearby-business__website,.af-nearby-business__phone):hover,
    .af-market-page .af-dir-basic .af-listing-website:hover { background: var(--color-ex-hover); color: var(--color-ex-copper) !important; box-shadow: none; }
  }
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-home-directory .af-home-provider:not(.af-home-provider--premium) :is(.af-home-provider-website,.af-home-provider-call):active { background: var(--color-ex-hover); color: var(--color-ex-copper) !important; }
}

/* Hallmark · component: compact mobile local-provider carousel · design.md
 * States: native loading/error/empty; ready, hover, focus, active and end-disabled.
 * Native swipe and immediate arrow steps; full contacts and tier distinction retained.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-home-provider-controls { display: none; }
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
    .af-mobile-premium-slot .af-home-provider-controls:not([hidden]) { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-xs); margin-bottom: var(--space-ex-xs); color: var(--color-ex-secondary); }
    .af-home-provider-swipe,.af-home-provider-position { font: 500 var(--text-ex-caption)/1.4 var(--font-ex-body); white-space: nowrap; }
    .af-home-provider-navigation { display: flex; align-items: center; gap: var(--space-ex-xs); }
    .af-home-provider-position { min-width: var(--space-ex-xl); text-align: center; font-variant-numeric: tabular-nums; }
    .af-home-directory .af-home-provider-navigation button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 var(--control-ex-height); width: var(--control-ex-height); height: var(--control-ex-height); min-height: var(--control-ex-height); padding: 0; border: 0; border-radius: 50%; background: var(--color-ex-copper); color: var(--color-ex-paper); box-shadow: var(--shadow-premium-action); cursor: pointer; }
    .af-home-provider-navigation [data-af-provider-previous] .af-icon { transform: rotate(180deg); }
    .af-home-directory .af-home-provider-navigation button:focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
    .af-home-directory .af-home-provider-navigation button:active:not(:disabled) { background: var(--color-ex-copper-pressed); color: var(--color-ex-paper); box-shadow: var(--shadow-premium-action-pressed); }
    .af-home-directory .af-home-provider-navigation button:disabled { opacity: 1; background: var(--color-ex-porcelain); color: var(--color-ex-secondary); box-shadow: none; cursor: default; }
    .af-mobile-premium-slot .af-home-directory [data-af-local-cards] { gap: var(--space-ex-sm); align-items: flex-start; padding-block: var(--space-ex-2xs) var(--space-ex-sm); }
    .af-mobile-premium-slot .af-home-directory .af-home-provider { flex-basis: min(20rem,calc(100% - var(--space-ex-xl))); padding: var(--space-ex-sm); }
    .af-mobile-premium-slot .af-home-directory .af-home-provider-title { align-items: center; gap: var(--space-ex-xs); }
    .af-mobile-premium-slot .af-home-directory .af-home-provider-title h4 { font-size: var(--text-ex-section) !important; line-height: 1.15 !important; }
    .af-mobile-premium-slot .af-home-directory .af-home-provider:not(.af-home-provider--premium) .af-home-provider-title h4 { font-size: var(--text-ex-topic) !important; line-height: 1.3 !important; }
    .af-mobile-premium-slot .af-home-directory .af-home-provider-badge { width: var(--space-ex-xl); height: var(--space-ex-xl); flex-basis: var(--space-ex-xl); }
    .af-mobile-premium-slot .af-home-directory .af-home-provider-services { margin: var(--space-ex-xs) 0 0; font-size: var(--text-ex-caption) !important; }
    .af-mobile-premium-slot .af-home-directory .af-home-provider-website { min-height: var(--control-ex-height); margin-block: var(--space-ex-xs); padding: var(--space-ex-xs) var(--space-ex-sm); }
    .af-mobile-premium-slot .af-home-directory .af-home-provider:not(.af-home-provider--premium) .af-home-provider-website { padding-inline: 0; }
    .af-mobile-premium-slot .af-home-directory :is(.af-home-provider-website-label,.af-home-provider-domain) { font-size: var(--text-ex-caption); }
    .af-mobile-premium-slot .af-home-directory .af-home-provider-actions { gap: var(--space-ex-xs); }
    .af-mobile-premium-slot .af-home-directory .af-home-provider-label { margin-top: var(--space-ex-xs); }
  }
}
@media (max-width: 67.99rem) and (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-home-directory .af-home-provider-navigation button:hover:not(:disabled) { background: var(--color-ex-copper-pressed); color: var(--color-ex-paper); }
}

/* Hallmark · utility page family · editorial · design-system: design.md
 * Native recovery, member/search forms, business steps and publication rules stay owned.
 * Ready, loading, empty, error, success and focus/hover/active/disabled states retained.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. Locked Newsreader/Figtree and Plumbing palette. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
  .af-route-frame:has(> :is(.af-members-view,.af-profile-view,.af-search-view,.af-recent-view,.af-tags-view,.af-recovery-view)),.af-route-frame:has(.af-recovery-view) { max-width: none; width: 100%; padding: 0; background: var(--color-ex-clear); }
  .af-utility-cover { --color-ex-ink: var(--color-premium-text); --text-publication-discovery: var(--text-ex-directory); --color-ink: var(--color-premium-text); --color-muted: var(--color-premium-muted); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--space-ex-md); margin: 0 0 var(--space-ex-lg); padding: var(--space-ex-xl); border: 0; border-radius: var(--radius-premium-button); background: var(--color-premium-surface); color: var(--color-premium-text); }
  .af-utility-cover::before { display: none; }
  .af-utility-cover :is(h1,label) { margin: 0; color: var(--color-premium-text) !important; }
  .af-utility-cover h1 { font: 500 var(--text-ex-directory)/1.15 var(--font-ex-display) !important; letter-spacing: -.025em; max-width: 26ch; }
  .af-utility-cover p { margin: var(--space-ex-xs) 0 0; color: var(--color-premium-muted); font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-search-view > .af-utility-cover { display: block; }
  .af-utility-cover .af-route-header__actions a { display: inline-flex; align-items: center; min-height: var(--control-ex-height); color: var(--color-premium-text) !important; }
  .af-search-view,.af-recent-view,.af-tags-view { max-width: var(--layout-ex-width); }
  :is(.af-results-search,.af-member-browser__tools,.af-tag-search,.af-route-toolbar) { padding: var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); color: var(--color-ex-ink); box-shadow: none; }
  .af-results-search { margin: 0 0 var(--space-ex-lg); }
  .af-results-search__row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-ex-xs); align-items: end; }
  .af-results-search__status { margin: var(--space-ex-xs) 0 0; }
  .af-search-filters { margin-top: var(--space-ex-xs); padding-top: 0; border: 0; }
  .af-search-filters > summary { display: inline-flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); padding: 0 var(--space-ex-sm); border-radius: var(--radius-premium-button); background: var(--color-ex-paper); color: var(--color-ex-copper); }
  .af-search-filters[open] > summary { margin-bottom: var(--space-ex-md); }
  .af-search-filters__grid { gap: var(--space-ex-md); }
  .af-search-results__count { margin: 0 0 var(--space-ex-sm); color: var(--color-ex-secondary); font: 500 var(--text-ex-meta)/1.5 var(--font-ex-body); }
  .af-search-result { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: var(--space-ex-md); padding: var(--space-ex-lg) 0; border-bottom: var(--rule-ex-fine) solid var(--color-ex-row-rule); }
  .af-search-result__main { min-width: 0; }
  .af-search-result :is(h3,h3 a) { font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body) !important; }
  .af-search-result__meta { gap: var(--space-ex-xs); font-size: var(--text-ex-caption); }
  .af-search-result__excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: var(--space-ex-xs) 0 0; color: var(--color-ex-secondary); font-size: var(--text-ex-meta); line-height: 1.6; }
  .af-search-result__open { display: inline-flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); margin: 0; color: var(--color-ex-copper); white-space: nowrap; }
  .af-route-toolbar { margin-block: var(--space-ex-md); gap: var(--space-ex-sm); }
  .af-route-toolbar__label { font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-activity-record { align-items: start; gap: var(--space-ex-md); padding-block: var(--space-ex-md); border-color: var(--color-ex-row-rule); }
  .af-activity-record__body { min-width: 0; }
  .af-activity-record h2,.af-activity-record h2 a { color: var(--color-ex-ink); font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body) !important; }
  .af-activity-record__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: var(--space-ex-xs); color: var(--color-ex-secondary); font-size: var(--text-ex-meta); }
  .af-tag-directory ul { display: flex; flex-wrap: wrap; gap: var(--space-ex-sm); }
  .af-tag-directory li { padding: 0; border: 0; }
  .af-tag-directory li a { display: inline-flex; align-items: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); color: var(--color-ex-copper); }
  :is(.af-results-search,.af-directory-search,.af-tag-search) :is(input:not([type="hidden"]),select) { min-height: var(--control-ex-height); background: var(--color-ex-paper) !important; color: var(--color-ex-ink) !important; border-radius: var(--radius-premium-button) !important; border-color: var(--color-ex-field) !important; }
  :is(.af-results-search,.af-directory-search,.af-tag-search,.af-profile-form,.af-recovery-form) :is(button[type="submit"],input[type="submit"]) { min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md) !important; border: 0 !important; border-radius: var(--radius-premium-button) !important; background: var(--color-ex-copper) !important; color: var(--color-ex-paper) !important; box-shadow: var(--shadow-premium-action); }
  .af-directory-search form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: var(--space-ex-md); }
  .af-directory-search form > :is(.wpf-tr,.wpf-table) { min-width: 0; }
  .af-directory-search .wpf-field-type-submit { display: flex; align-items: center; gap: var(--space-ex-xs); flex-wrap: wrap; }
  .af-directory-search .wpf-field-type-submit > a { min-height: var(--control-ex-height); border-radius: var(--radius-premium-button) !important; }
  .af-member-browser__count { margin-top: var(--space-ex-sm); color: var(--color-ex-secondary); }
  .af-member-card { grid-template-columns: var(--space-ex-2xl) minmax(0,1fr) var(--control-ex-height); padding: var(--space-ex-md) 0 !important; column-gap: var(--space-ex-md); border-color: var(--color-ex-row-rule); }
  .af-member-card__identity h2 { font: 500 var(--text-ex-section)/1.2 var(--font-ex-display); }
  .af-member-card__role { margin-top: var(--space-ex-2xs); font-size: var(--text-ex-caption); }
  .af-member-card__open { height: var(--control-ex-height); border-radius: 50%; background: var(--color-ex-porcelain); color: var(--color-ex-copper) !important; }
  .af-member-card__stats { gap: var(--space-ex-md); font-variant-numeric: tabular-nums; }
  .af-profile-head { --color-ex-ink: var(--color-premium-text); --text-publication-discovery: var(--text-ex-chapter); --color-ink: var(--color-premium-text); --color-ink-2: var(--color-premium-muted); --color-muted: var(--color-premium-muted); --color-accent: var(--color-premium-text); padding: 0; overflow: visible; border-radius: var(--radius-premium-button); background-color: var(--color-premium-surface) !important; color: var(--color-premium-text); }
  .af-profile-head__body { grid-template-columns: var(--space-ex-3xl) minmax(0,1fr); gap: var(--space-ex-md); padding: var(--space-ex-xl); border-radius: inherit; background: var(--color-premium-surface); color: var(--color-premium-text); }
  .af-profile-head__identity h1 { font-size: var(--text-ex-chapter) !important; }
  .af-profile-head__role :is(.wpf-member-title,.wpf-member-title-box,.wpf-member-badge i,.author-rating-full) { color: var(--color-premium-muted) !important; border-color: var(--color-premium-muted) !important; }
  .af-profile-head__avatar,.af-profile-head__avatar :is(.af-avatar,img,.af-avatar__fallback) { width: var(--space-ex-3xl); height: var(--space-ex-3xl); }
  .af-profile-head__tools { grid-column: 1 / -1; margin: 0; }
  .af-profile-head__meta { padding-inline: var(--space-ex-xl); padding-bottom: var(--space-ex-md); }
  .af-profile-head__meta:empty { display: none; }
  .af-profile-head :is(.wpf-follow-button,button) { min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border-radius: var(--radius-premium-button); background: var(--color-ex-paper); color: var(--color-premium-surface) !important; border: 0; }
  .af-profile-tabs { margin-block: var(--space-ex-md); border: 0; }
  .af-profile-tabs a { min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border: 0 !important; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); color: var(--color-ex-secondary) !important; }
  .af-profile-tabs a:is(.wpforo-active,[aria-current="page"]) { background: var(--color-ex-copper); color: var(--color-ex-paper) !important; }
  .af-profile-overview { gap: var(--space-ex-lg); }
  .af-profile-section,.af-profile-module { padding: 0; border: 0; background: var(--color-ex-clear); }
  .af-profile-section__head,.af-profile-module__head { margin-bottom: var(--space-ex-md); }
  .wpforo-profile-home .af-profile-stats { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: var(--space-ex-md); margin: 0; padding: var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); }
  .af-profile-stats .af-profile-stat { display: flex; flex-direction: column; gap: var(--space-ex-2xs); padding: 0; border: 0; min-width: 0; background: var(--color-ex-clear); }
  .af-profile-stat dd { order: -1; margin: 0; font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); color: var(--color-ex-ink); }
  .af-profile-stat dt { color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-profile-fields :is(.wpf-field,.wpf-tr,.wpf-td) { border: 0; background: var(--color-ex-clear); }
  .af-profile-fields :is(p,.wpf-field-value) { text-align: left !important; }
  .af-profile-module__controls { display: flex; flex-wrap: wrap; gap: var(--space-ex-sm); padding: var(--space-ex-sm); border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); }
  .af-profile-record { padding-block: var(--space-ex-md); gap: var(--space-ex-md); border-color: var(--color-ex-row-rule); }
  .af-profile-record__main h3 { font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body); }
  .af-profile-form__fields { padding: var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); }
  .af-profile-form .wpf-tr { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--space-ex-xs); padding-block: var(--space-ex-sm); border: 0; }
  .af-profile-form :is(.wpf-td,.wpf-field-wrap) { width: 100%; min-width: 0; border: 0; }
  .af-profile-form :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select) { max-width: 100%; min-height: var(--control-ex-height); border-radius: var(--radius-premium-button) !important; }
  .af-profile-form input[type="file"] { white-space: normal; }
  .af-connection-card { padding: var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); }
  .af-recovery-view { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.85fr); gap: var(--space-ex-3xl); padding-block: var(--space-ex-lg); color: var(--color-ex-ink); }
  .af-recovery-header h1 { margin: 0 0 var(--space-ex-md); font: 500 var(--text-ex-directory)/1.15 var(--font-ex-display); letter-spacing: -.025em; }
  .af-recovery-header p { color: var(--color-ex-secondary); font-size: var(--text-ex-body); max-width: 42ch; }
  .af-recovery-context { padding-top: var(--space-ex-xs); }
  .af-recovery-context h2 { margin: 0 0 var(--space-ex-md); font: 500 var(--text-ex-chapter)/1.15 var(--font-ex-display); max-width: 16ch; }
  .af-recovery-context p { max-width: 38ch; color: var(--color-ex-secondary); font-size: var(--text-ex-meta); }
  .af-recovery-form { margin-top: var(--space-ex-xl); }
  .af-recovery-form [id="wpforo-title"],.af-recovery-form .wpforo-login-content > h3 { display: none; }
  .af-recovery-form :is(.wpforo-login-wrap,.wpforo-login-content,.wpforo-table,.wpforo-login-table,.wpf-tr,.wpf-td,.wpf-field-wrap) { width: 100% !important; max-width: none !important; margin: 0; padding: 0; border: 0; background: var(--color-ex-clear) !important; text-align: left !important; }
  .af-recovery-form label { display: block; text-align: left !important; padding-bottom: var(--space-ex-xs); color: var(--color-ex-ink); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-recovery-form .wpf-field-wrap > div { text-align: left !important; color: var(--color-ex-secondary); }
  .af-recovery-form input:not([type="hidden"]):not([type="submit"]) { width: 100% !important; max-width: none !important; min-height: var(--control-ex-height); margin: 0; border-radius: var(--radius-premium-button); }
  .af-recovery-form input[type="submit"] { margin-top: var(--space-ex-md); width: auto !important; }
  .af-recovery-back { display: inline-flex; align-items: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); margin-top: var(--space-ex-md); color: var(--color-ex-copper); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-recovery-state { --color-ex-ink: var(--color-premium-text); display: grid; justify-items: start; align-content: start; gap: var(--space-ex-md); min-height: 0; margin: 0; padding: var(--space-ex-xl); border: 0; border-radius: var(--radius-premium-button); background: var(--color-premium-surface) !important; color: var(--color-premium-text) !important; text-align: left; }
  .af-recovery-state :is(h1,h2,h3) { margin: 0; color: var(--color-premium-text) !important; font: 500 var(--text-ex-directory)/1.15 var(--font-ex-display); }
  .af-recovery-state p { max-width: 56ch; margin: 0; color: var(--color-premium-muted); }
  .af-recovery-state > .af-icon { color: var(--color-premium-muted); font-size: var(--text-ex-chapter); }
  .af-recovery-state :is(.af-primary-action,.af-secondary-action) { min-height: var(--control-ex-height); background: var(--color-ex-paper); color: var(--color-ex-copper) !important; border: 0; border-radius: var(--radius-premium-button); }
  .af-not-found-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-ex-md); width: 100%; }
  .af-not-found-actions form { display: flex; flex-wrap: wrap; gap: var(--space-ex-xs); }
  .af-not-found-actions input { min-width: 0; flex: 1 1 12rem; min-height: var(--control-ex-height); border-radius: var(--radius-premium-button); background: var(--color-ex-paper); color: var(--color-ex-ink); }
  .af-not-found-actions button { min-height: var(--control-ex-height); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-paper); color: var(--color-ex-copper); }
  :is(.af-search-view,.af-recent-view,.af-tags-view,.af-members-view,.af-profile-view,.af-recovery-view,.af-recovery-state) :is(a,button,input,select,textarea,summary):focus-visible { outline: var(--rule-ex-focus) solid var(--color-ex-copper) !important; outline-offset: var(--space-ex-2xs); }
  :is(.af-utility-cover,.af-profile-head,.af-recovery-state) :is(a,button,input):focus-visible { outline-color: var(--color-premium-muted) !important; }
}

body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  :is(.af-dir-flow-head,.af-dir-region-cover) { --color-ink: var(--color-premium-text); --color-ink-2: var(--color-premium-muted); --color-muted: var(--color-premium-muted); margin: 0 0 var(--space-ex-lg); padding: var(--space-ex-xl); border: 0; border-radius: var(--radius-premium-button); background: var(--color-premium-surface); color: var(--color-premium-text); }
  :is(.af-dir-flow-head,.af-dir-region-cover)::before { display: none; }
  :is(.af-dir-flow-head,.af-dir-region-cover) h1 { max-width: 28ch; margin: 0; color: var(--color-premium-text); font: 500 var(--text-ex-directory)/1.15 var(--font-ex-display); letter-spacing: -.025em; }
  :is(.af-dir-flow-head,.af-dir-region-cover) p { margin: var(--space-ex-sm) 0 0; color: var(--color-premium-muted); font-size: var(--text-ex-meta); line-height: 1.5; }
  .af-dir-flow-head__promise { padding: 0; border: 0; background: var(--color-ex-clear); }
  .af-utility-kicker,.af-dir-flow-head__free { font: 600 var(--text-ex-caption)/1.4 var(--font-ex-body); margin: 0 0 var(--space-ex-md) !important; padding: 0; border: 0; }
  .af-dir-flow-layout { grid-template-columns: minmax(0,1fr) minmax(0,.45fr); align-items: start; gap: var(--space-ex-lg); }
  :is(.af-dir-flow-card,.af-dir-review-state,.af-dir-flow-aside,.af-dir-account-section) { min-width: 0; padding: var(--space-ex-lg); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); color: var(--color-ex-ink); box-shadow: none; }
  .af-dir-flow-card--narrow { width: min(100%,46rem); }
  .af-dir-flow-aside { background: var(--color-ex-clear); padding: var(--space-ex-sm) var(--space-ex-md); }
  :is(.af-dir-flow-card,.af-dir-flow-aside,.af-dir-review-state,.af-dir-account-section) h2 { margin: 0; font: 500 var(--text-ex-chapter)/1.2 var(--font-ex-display); color: var(--color-ex-ink); }
  :is(.af-dir-flow-card,.af-dir-flow-aside,.af-dir-review-state,.af-dir-account-section) p { font-size: var(--text-ex-meta); color: var(--color-ex-secondary); line-height: 1.6; }
  .af-flow-stage { margin: 0 0 var(--space-ex-sm); color: var(--color-ex-ink); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-dir-progress { padding: var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); margin-bottom: var(--space-ex-lg); }
  .af-dir-progress ol { gap: var(--space-ex-xs); }
  .af-dir-progress li { display: flex; flex-direction: column; align-items: start; gap: var(--space-ex-xs); padding: var(--space-ex-xs); border: 0; color: var(--color-ex-secondary); min-width: 0; }
  .af-dir-progress li > span { display: flex; align-items: center; justify-content: center; width: var(--space-ex-xl); height: var(--space-ex-xl); border-radius: 50%; background: var(--color-ex-paper); color: var(--color-ex-secondary); font-variant-numeric: tabular-nums; }
  .af-dir-progress li.is-current > span { background: var(--color-ex-copper); color: var(--color-ex-paper); }
  .af-dir-progress li.is-complete > span { background: var(--color-ex-hover); color: var(--color-ex-copper); }
  .af-dir-progress li > strong { font: 500 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-dir-account-nav { display: flex; flex-wrap: wrap; gap: var(--space-ex-xs); margin-block: var(--space-ex-md) var(--space-ex-lg); padding: 0; border: 0; }
  .af-dir-account-nav a { display: inline-flex; align-items: center; min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-hover); color: var(--color-ex-copper); }
  .af-dir-account-section { margin-bottom: var(--space-ex-lg); }
  .af-dir-account-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-ex-lg); }
  .af-dir-profile-records { gap: var(--space-ex-sm); }
  .af-dir-profile-record { padding: var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-paper); color: var(--color-ex-ink); }
  .af-dir-profile-record h3 { font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body); }
  .af-dir-profile-record dl { display: flex; flex-wrap: wrap; gap: var(--space-ex-md); margin: 0; }
  .af-dir-profile-record dd { margin: 0; font: 500 var(--text-ex-chapter)/1.2 var(--font-ex-display); font-variant-numeric: tabular-nums; }
  .af-dir-state-label { padding: var(--space-ex-2xs) var(--space-ex-xs); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-hover); color: var(--color-ex-ink); }
  :is(.af-dir-flow-card,.af-dir-onboarding) .af-dir-field :is(input:not([type="file"]),textarea,select) { width: 100%; min-width: 0; min-height: var(--control-ex-height); background: var(--color-ex-paper); color: var(--color-ex-ink); border-radius: var(--radius-premium-button); border-color: var(--color-ex-field); }
  .af-dir-field input[type="file"] { width: 100%; min-height: var(--control-ex-height); max-width: 100%; padding: var(--space-ex-sm); border: 0; background: var(--color-ex-paper); color: var(--color-ex-secondary); border-radius: var(--radius-premium-button); }
  .af-dir-field input[type="file"]::file-selector-button { min-height: var(--control-ex-height); margin-right: var(--space-ex-xs); padding: var(--space-ex-xs) var(--space-ex-sm); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-hover); color: var(--color-ex-copper); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-dir-choice-list label { padding: var(--space-ex-sm); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-paper); color: var(--color-ex-ink); }
  .af-dir-choice-list label:has(input:checked) { background: var(--color-ex-hover); color: var(--color-ex-ink); outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: 0; }
  .af-dir-field-grid,.af-dir-upload-grid { gap: var(--space-ex-md); }
  .af-dir-field__help:empty { display: none; }
  :is(.af-dir-flow-card,.af-dir-flow-aside,.af-dir-review-state,.af-dir-account-section) .af-dir-empty { padding: var(--space-ex-md) 0; border: 0; background: var(--color-ex-clear); color: var(--color-ex-ink); }
  .af-dir-place-list { padding: 0; border: 0; background: var(--color-ex-clear); }
  .af-dir-place-list ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-ex-sm); }
  .af-dir-place-list li { min-width: 0; border: 0; }
  .af-dir-place-list li a { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: var(--space-ex-xs); padding: var(--space-ex-md); min-height: calc(var(--control-ex-height) + var(--space-ex-lg)); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); color: var(--color-ex-ink); }
  .af-dir-place-list li a > span:first-child { grid-column: 1; font: 600 var(--text-ex-topic)/1.4 var(--font-ex-body); }
  .af-dir-place-list li a > small { grid-column: 1; color: var(--color-ex-secondary); }
  .af-dir-place-list li a > span:last-child { grid-column: 2; grid-row: 1 / 4; display: flex; align-items: center; justify-content: center; min-width: var(--control-ex-height); min-height: var(--control-ex-height); color: var(--color-ex-copper); }
  .af-dir-place-list .af-dir-readiness { grid-column: 1; justify-self: start; border: 0; background: var(--color-ex-paper); color: var(--color-ex-secondary); }
  .af-dir-region-cover + .af-provider-finder { padding: var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain); margin-bottom: var(--space-ex-xl); }
  .af-provider-finder--compact .af-market-preference { padding: 0 0 var(--space-ex-sm); border: 0; border-radius: 0; background: var(--color-ex-clear); }
  .af-dir-not-found.af-recovery-state { --color-ex-ink: var(--color-premium-text); display: grid; justify-items: start; align-content: start; gap: var(--space-ex-md); padding: var(--space-ex-xl); min-height: 0; border: 0; border-radius: var(--radius-premium-button); background: var(--color-premium-surface); color: var(--color-premium-text); text-align: left; }
  .af-dir-not-found.af-recovery-state :is(h1,h2) { max-width: 24ch; margin: 0; color: var(--color-premium-text); font: 500 var(--text-ex-directory)/1.15 var(--font-ex-display); }
  .af-dir-not-found.af-recovery-state p { max-width: 52ch; margin: 0; color: var(--color-premium-muted); }
  .af-dir-not-found__code { font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-dir-not-found .af-dir-button { background: var(--color-ex-paper); color: var(--color-ex-copper); }
  .af-dir-not-found .af-dir-text-link { color: var(--color-premium-text); }
  :is(.af-dir-flow-head,.af-dir-not-found) :is(a,button):focus-visible { outline-color: var(--color-premium-muted); }
}

@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
    .af-utility-cover { --text-publication-discovery: var(--text-ex-chapter); padding: var(--space-ex-lg); align-items: start; flex-direction: column; }
    .af-utility-cover h1 { font-size: var(--text-ex-chapter) !important; }
    .af-directory-search form { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-sm); }
    .af-member-browser__tools { padding: var(--space-ex-md); }
    .af-profile-head__body { padding: var(--space-ex-lg); }
    .af-profile-head__meta { padding-inline: var(--space-ex-lg); }
    .wpforo-profile-home .af-profile-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .af-profile-stat dd { font-size: var(--text-ex-section); }
    .af-search-result { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-xs); padding-block: var(--space-ex-md); }
    .af-results-search__row { gap: var(--space-ex-xs); }
    .af-activity-record__avatar { display: none; }
    .af-activity-record { grid-template-columns: minmax(0,1fr) var(--control-ex-height); }
    .af-recovery-view { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-xl); }
    .af-recovery-context h2 { font-size: var(--text-ex-section); max-width: none; }
    .af-recovery-state { padding: var(--space-ex-lg); }
    .af-recovery-state :is(h1,h2,h3) { font-size: var(--text-ex-chapter); }
    .af-not-found-actions { align-items: stretch; flex-direction: column; }
    .af-not-found-actions form { width: 100%; }
  }
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    :is(.af-dir-flow-head,.af-dir-region-cover) { padding: var(--space-ex-lg); }
    :is(.af-dir-flow-head,.af-dir-region-cover) h1 { font-size: var(--text-ex-chapter); }
    .af-dir-flow-layout,.af-dir-account-grid { grid-template-columns: minmax(0,1fr); gap: var(--space-ex-md); }
    :is(.af-dir-flow-card,.af-dir-review-state,.af-dir-account-section) { padding: var(--space-ex-md); }
    :is(.af-dir-flow-card,.af-dir-flow-aside,.af-dir-review-state,.af-dir-account-section) h2 { font-size: var(--text-ex-section); }
    .af-dir-progress ol { grid-template-columns: repeat(8,minmax(0,1fr)); gap: var(--space-ex-2xs); }
    .af-dir-progress--six ol { grid-template-columns: repeat(6,minmax(0,1fr)); }
    .af-dir-progress li { align-items: center; padding: 0; }
    .af-dir-progress li > span { width: var(--space-ex-lg); height: var(--space-ex-lg); }
    .af-dir-progress li > strong { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    .af-dir-place-list ol { grid-template-columns: minmax(0,1fr); }
    .af-dir-not-found.af-recovery-state { padding: var(--space-ex-lg); }
    .af-dir-not-found.af-recovery-state h1 { font-size: var(--text-ex-chapter); }
  }
}
@media (min-width: 48rem) and (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-dir-place-list ol { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
    :is(.af-results-search,.af-directory-search,.af-tag-search,.af-profile-form,.af-recovery-form) :is(button[type="submit"],input[type="submit"]):hover:not(:disabled) { background: var(--color-ex-copper-pressed) !important; color: var(--color-ex-paper) !important; }
    .af-profile-tabs a:hover,.af-member-card__open:hover { background: var(--color-ex-hover); color: var(--color-ex-copper) !important; }
  }
  body.af-exchange-design.af-plumbing-design.aigenforums-directory .af-dir-place-list li a:hover { background: var(--color-ex-hover); color: var(--color-ex-ink); }
}

/* Utility refinement: keep native selected tabs and search actions readable. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
  .af-profile-view .af-profile-tabs a { display: inline-flex; align-items: center; background: var(--color-ex-porcelain) !important; }
  .af-profile-view .af-profile-tabs a:is(.wpforo-active,[aria-current="page"]) { background: var(--color-ex-copper) !important; color: var(--color-ex-paper) !important; }
  .af-not-found-actions input { color: var(--color-premium-surface); }
  .af-profile-view :is(.wpf-profile-section,.wpf-profile-body) { width: 100%; max-width: none; }
  .af-profile-form .wpf-field-wrap :is(input[type="text"],input[type="email"],input[type="url"],input[type="password"],input[type="tel"],textarea,select) { width: 100% !important; max-width: 100%; }
  .af-profile-form .wpf-field-wrap input[type="file"] { display: block; width: 100% !important; max-width: 100% !important; min-height: var(--control-ex-height); margin-top: var(--space-ex-xs); }
  .af-profile-form input[type="file"]::file-selector-button { min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-sm); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-hover); color: var(--color-ex-copper); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-recovery-form input:not([type="hidden"]):not([type="submit"]) { background: var(--color-ex-paper) !important; color: var(--color-ex-ink) !important; border-color: var(--color-ex-field); }
  :is(.af-tags-view,.af-recent-view,.af-profile-view) .af-empty-state { display: grid; justify-items: start; align-content: start; gap: var(--space-ex-sm); min-height: 0; padding: var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain) !important; color: var(--color-ex-ink) !important; text-align: left; }
  :is(.af-tags-view,.af-recent-view,.af-profile-view) .af-empty-state :is(h2,h3) { margin: 0; color: var(--color-ex-ink); font: 500 var(--text-ex-section)/1.3 var(--font-ex-display); }
  :is(.af-tags-view,.af-recent-view,.af-profile-view) .af-empty-state .af-secondary-action { min-height: var(--control-ex-height); border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-paper) !important; color: var(--color-ex-copper) !important; }
  :is(.af-tags-view,.af-recent-view,.af-profile-view) .af-empty-state .af-secondary-action span { color: inherit !important; }
  .af-profile-head .wpforo-follow-user { display: inline-flex; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border: 0 !important; border-radius: var(--radius-premium-button); background: var(--color-ex-paper) !important; color: var(--color-premium-surface) !important; }
  .af-profile-head .wpforo-follow-user svg { fill: currentColor; }
  .af-profile-edit { display: inline-flex; align-items: center; gap: var(--space-ex-sm); min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-md); border-radius: var(--radius-premium-button); background: var(--color-ex-paper); color: var(--color-premium-surface) !important; font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-member-card { grid-template-areas: "avatar identity open" "avatar stats open" "meta meta meta"; }
  .af-member-card__open-label { display: none !important; }
  .af-member-card__open { display: flex; align-items: center; justify-content: center; width: var(--control-ex-height); padding: 0; }
  .af-utility-cover .af-route-header__actions a { padding-inline: var(--space-ex-sm); border: 0; border-radius: var(--radius-premium-button); background: var(--color-premium-service-surface) !important; color: var(--color-premium-text) !important; }
  .af-utility-cover .af-route-header__actions a span { background: var(--color-ex-clear) !important; color: var(--color-premium-text) !important; }
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
body.af-exchange-design.af-plumbing-design.aigenforums-directory {
  .af-dir-region-cover + .af-provider-finder .af-provider-finder__controls { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: var(--space-ex-sm); }
  .af-dir-region-cover + .af-provider-finder .af-provider-finder__controls input { width: 100%; }
  .af-dir-region-cover + .af-provider-finder .af-market-preference__actions { justify-content: start; gap: var(--space-ex-md); }
  .af-dir-region-cover + .af-provider-finder .af-market-preference__actions :is(button,a) { flex: 0 0 auto; min-height: var(--control-ex-height); width: auto; padding: var(--space-ex-xs) var(--space-ex-md); border-radius: var(--radius-premium-button); }
  .af-dir-not-found .af-dir-actions .af-dir-text-link { background: var(--color-ex-clear) !important; color: var(--color-premium-text) !important; }
  .af-dir-not-found .af-dir-text-link span { background: var(--color-ex-clear) !important; color: inherit !important; }
  .af-dir-status { padding: var(--space-ex-md); border: 0; border-radius: var(--radius-premium-button); }
  .af-dir-status > strong { font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-dir-status p { margin-top: var(--space-ex-xs); font-size: var(--text-ex-meta); line-height: 1.6; }
  :is(.af-dir-flow-card,.af-dir-onboarding,.af-dir-account-section,.af-dir-review-state,.af-dir-not-found) .af-dir-button { min-height: var(--control-ex-height); border: 0 !important; border-radius: var(--radius-premium-button) !important; background: var(--color-ex-paper) !important; color: var(--color-ex-copper) !important; box-shadow: var(--shadow-premium-action); }
  :is(.af-dir-flow-card,.af-dir-onboarding,.af-dir-account-section,.af-dir-review-state) .af-dir-button--primary { background: var(--color-ex-copper) !important; color: var(--color-ex-paper) !important; }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap,
  body.af-exchange-design.af-plumbing-design.aigenforums-directory {
    .af-dir-region-cover + .af-provider-finder .af-provider-finder__controls { grid-template-columns: minmax(0,1fr); }
    .af-dir-region-cover + .af-provider-finder .af-provider-finder__controls button { justify-content: space-between; }
  }
}

/* Hallmark · component: integrated city title · design-system: design.md.
 * Smaller upright Newsreader heading; P5 H5 E5 S5 R5 V4. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
  .af-home-directory .af-home-providers { margin-top: 0; }
  .af-home-directory .af-home-provider-head { display: block; margin-bottom: var(--space-ex-sm); }
  .af-home-directory h2.af-home-city {
    min-width: 0; margin: 0; padding: 0; border: 0; border-radius: 0;
    background: var(--color-ex-clear); color: var(--color-ex-ink) !important;
    font: 500 var(--text-ex-section)/1.3 var(--font-ex-display) !important;
    font-style: normal; letter-spacing: 0; overflow-wrap: anywhere;
  }
  .af-home-directory h2.af-home-city:focus-visible {
    outline: var(--rule-ex-focus) solid var(--color-ex-copper);
    outline-offset: var(--space-ex-2xs);
  }
}

/* Mobile local listings sit between category groups. */
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    .af-ex-chapters > #af-mobile-premium-home { margin-block: var(--space-ex-2xl); }
  }
}

/* Mobile feed: one real local listing in each occupied alternating gap. */
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    [data-af-home-listing-slot] { margin-block: var(--space-ex-2xl); }
    [data-af-home-directory][hidden] { display: none !important; }
    [data-af-home-listing-slot] .af-home-city { margin-bottom: var(--space-ex-sm); }
    [data-af-home-listing-slot] .af-home-provider-list { display: grid; overflow: visible; }
    [data-af-home-listing-slot] .af-home-provider { width: 100%; box-sizing: border-box; }
    [data-af-home-listing-slot] .af-home-disclosure { margin-top: var(--space-ex-sm); }
  }
}

/* Repeated mobile placements retain a single horizontally scrollable card row. */
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap {
    [data-af-home-listing-slot] .af-home-provider-list {
      display: flex; flex-wrap: nowrap; align-items: flex-start; gap: var(--space-ex-sm);
      min-width: 0; max-width: 100%; overflow-x: auto; overflow-y: hidden;
      padding-block: var(--space-ex-2xs) var(--space-ex-sm);
      scroll-snap-type: x proximity;
    }
    [data-af-home-listing-slot] .af-home-provider {
      flex: 0 0 min(20rem,calc(100% - var(--space-ex-xl))); width: auto;
      scroll-snap-align: start;
    }
  }
}

/* The mobile header already provides the homepage navigation. */
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design.af-exchange-home #wpforo.af-publication #wpforo-wrap nav.af-ex-shortcuts { display: none; }
}

/* Hallmark · component: discussion opening · design-system: design.md.
 * Reddit reference: community/author → title → original content → discussion actions.
 * Existing Newsreader/Figtree and topic palette; P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread {
  --text-op-title: clamp(var(--text-ex-chapter), 3vw, var(--text-ex-directory));
  --text-op-body: var(--text-ex-subforum);
  .af-thread-header--integrated { margin: 0; padding: 0; border: 0; background: var(--color-ex-clear); }
  .af-thread-header--integrated::before { display: none; }
  .af-thread-header--integrated:not(:has(.af-thread-header__actions > *)) { display: none; }
  .af-thread-header--integrated .af-thread-header__actions { margin: 0 0 var(--space-ex-sm); }
  .af-post-list :is(.wpfl-2,.wpfl-4) { min-width: 0; }
  :is(.wpfl-2,.wpfl-4) .af-post.af-post--op-feature {
    min-width: 0; margin: 0; padding: var(--space-ex-xl);
    border: 0; border-radius: var(--radius-premium-card);
    background: var(--color-ex-porcelain); box-shadow: none;
  }
  .af-post--op-feature .af-op-context { margin: 0 0 var(--space-ex-xs); }
  .af-post--op-feature .af-op-context a {
    display: inline-flex; align-items: center; min-height: var(--control-ex-height);
    color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body);
    text-decoration: none;
  }
  .af-post--op-feature :is(.af-starter-head-shell,.af-thread-tools--integrated) {
    margin: 0; padding: 0; border: 0; background: var(--color-ex-clear);
  }
  :is(.wpfl-2,.wpfl-4) .af-post--op-feature .af-post__header {
    display: grid; grid-template-columns: var(--control-ex-height) minmax(0,1fr) auto;
    align-items: center; gap: var(--space-ex-sm); margin: 0 0 var(--space-ex-lg);
    padding: 0; background: var(--color-ex-clear);
  }
  .af-post--op-feature .af-post__identity { min-width: 0; }
  .af-post--op-feature .wpf-author-name {
    display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-ex-xs);
    color: var(--color-ex-ink); font: 600 var(--text-ex-meta)/1.5 var(--font-ex-body);
  }
  .af-post--op-feature .wpf-author-name a { color: var(--color-ex-ink) !important; font: inherit; }
  .af-post--op-feature .af-post__role {
    display: inline-flex; align-items: center; padding: var(--space-ex-2xs) var(--space-ex-xs);
    border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-copper);
    color: var(--color-ex-paper) !important; font: 600 var(--text-ex-caption)/1 var(--font-ex-body);
  }
  .af-post--op-feature .af-post__member-meta { color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
  .af-post--op-feature .af-post__member-meta:not(:has(*)) { display: none; }
  .af-post--op-feature #wpforo-title.af-op-title {
    max-width: 32ch; margin: 0 0 var(--space-ex-lg); padding: 0 !important;
    color: var(--color-ex-ink) !important; font: 600 var(--text-op-title)/1.15 var(--font-ex-display) !important;
    font-style: normal; letter-spacing: -.02em; overflow-wrap: anywhere; text-wrap: initial;
  }
  :is(.wpfl-2,.wpfl-4) .af-post--op-feature .wpforo-post-content {
    min-width: 0; max-width: var(--content-reading); padding: 0;
    color: var(--color-ex-ink) !important; font: 400 var(--text-op-body)/1.7 var(--font-ex-body) !important;
  }
  .af-post--op-feature .wpforo-post-content > :is(p,ul,ol) { margin-block: 0 var(--space-ex-md); }
  .af-post--op-feature .wpforo-post-content > :last-child { margin-bottom: 0; }
  :is(.wpfl-2,.wpfl-4) .af-post--op-feature .af-post__footer {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start;
    gap: var(--space-ex-xs); margin-top: var(--space-ex-lg); padding: 0; border: 0;
  }
  .af-post--op-feature .af-op-discussion-link {
    display: inline-flex; align-items: center; justify-content: center; gap: var(--space-ex-xs);
    min-height: var(--control-ex-height); padding: var(--space-ex-xs) var(--space-ex-sm);
    border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-paper);
    color: var(--color-ex-ink); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body);
    text-decoration: none; white-space: nowrap;
  }
  .af-post--op-feature .af-op-discussion-link .af-icon { color: inherit; }
  .af-post--op-feature :is(a,button,summary):focus-visible {
    outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs);
  }
  :is(.wpfl-2,.wpfl-4) .af-replies-separator.wpf-replies-sep {
    margin: var(--space-ex-xl) 0 var(--space-ex-sm); padding: var(--space-ex-md) 0 0;
    border-top: var(--rule-ex-fine) solid var(--color-ex-rule);
    color: var(--color-ex-ink); font: 600 var(--text-ex-section)/1.4 var(--font-ex-body);
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread {
    --text-op-title: var(--text-ex-chapter);
    :is(.wpfl-2,.wpfl-4) .af-post.af-post--op-feature { padding: var(--space-ex-md); }
    .af-post--op-feature #wpforo-title.af-op-title { margin-bottom: var(--space-ex-md); }
  }
}
@media (hover: hover) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread .af-post--op-feature {
    .af-op-context a:hover { text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
    .af-op-discussion-link:hover { background: var(--color-ex-hover); color: var(--color-ex-copper); }
  }
}
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread .af-post--op-feature .af-op-discussion-link:active {
  background: var(--color-ex-hover); color: var(--color-ex-ink);
}

/* Author names retain a comfortable touch target within the compact OP byline. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread .af-post--op-feature .wpf-author-name a {
  display: inline-flex; align-items: center; min-height: var(--control-ex-height);
}

/* Hallmark · component: replies · design-system: design.md.
 * Open conversation rhythm: attribution and spacing carry the grouping.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread :is(.wpfl-2,.wpfl-4) {
  .af-replies-separator.wpf-replies-sep {
    margin: var(--space-ex-xl) 0 var(--space-ex-lg); padding: 0; border: 0;
    background: var(--color-ex-clear);
  }
  .reply-wrap:not(.wpfp-first) {
    margin-block: 0 var(--space-ex-xl); padding-block: 0; border: 0;
    background: var(--color-ex-clear); box-shadow: none;
  }
  .reply-wrap + .reply-wrap:not(.wpfp-first) { border: 0; }
  .af-post:not(.af-post--starter) {
    border: 0; border-radius: 0; background: var(--color-ex-clear); box-shadow: none;
    .af-post__header {
      grid-template-columns: var(--control-ex-height) minmax(0,1fr) auto;
      gap: var(--space-ex-sm); margin: 0 0 var(--space-ex-xs); padding: 0;
      border: 0; background: var(--color-ex-clear);
    }
    .af-post__identity { min-width: 0; }
    .wpf-author-name {
      color: var(--color-ex-ink); font: 600 var(--text-ex-meta)/1.5 var(--font-ex-body);
    }
    .af-post__member-meta { color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body); }
    .af-post__body {
      width: auto; margin: 0; padding: 0;
      margin-inline-start: calc(var(--control-ex-height) + var(--space-ex-sm));
      border: 0; background: var(--color-ex-clear);
    }
    .af-post__footer {
      justify-content: flex-start; gap: var(--space-ex-xs);
      margin: var(--space-ex-xs) 0 0; padding: 0; border: 0;
      background: var(--color-ex-clear);
    }
  }
}

/* Reply first, then one continuous discussion with an explicit batch control.
 * Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread {
  .af-reply-composer {
    margin: var(--space-ex-lg) 0; padding: var(--space-ex-lg);
    border: 0; border-radius: var(--radius-premium-card);
    background: var(--color-ex-porcelain);
  }
  .af-reply-composer__intro h2 {
    margin: 0 0 var(--space-ex-xs); color: var(--color-ex-ink);
    font: 600 var(--text-ex-section)/1.4 var(--font-ex-body) !important;
  }
  .af-reply-composer__intro p {
    margin: 0; color: var(--color-ex-secondary);
    font: 400 var(--text-ex-meta)/1.6 var(--font-ex-body);
  }
  .af-thread-load-more {
    display: flex; flex-direction: column; align-items: center;
    gap: var(--space-ex-xs); margin: var(--space-ex-lg) 0 var(--space-ex-xl);
  }
  .af-thread-load-more__button {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: var(--control-ex-height); padding: var(--space-ex-sm) var(--space-ex-xl);
    border: 0; border-radius: var(--radius-premium-button);
    background: var(--color-ex-porcelain); color: var(--color-ex-ink);
    font: 600 var(--text-ex-body)/1.4 var(--font-ex-body);
    text-decoration: none; white-space: nowrap; cursor: pointer;
  }
  .af-thread-load-more__button:active { background: var(--color-ex-hover); }
  .af-thread-load-more__button:disabled { cursor: wait; color: var(--color-ex-secondary); }
  .af-thread-load-more__status {
    margin: 0; color: var(--color-ex-secondary);
    font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body); text-align: center;
  }
  .af-thread-load-more__status:empty { display: none; }
  :is(.af-thread-earlier,.af-thread-load-more__fallback) {
    display: inline-flex; align-items: center; min-height: var(--control-ex-height);
    color: var(--color-ex-copper); font: 600 var(--text-ex-meta)/1.5 var(--font-ex-body);
  }
  .af-thread-load-more [hidden] { display: none; }
  :is(.af-thread-load-more__button,.af-thread-earlier,.af-thread-load-more__fallback,.af-post):focus-visible {
    outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs);
  }
}
@media (hover: hover) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread .af-thread-load-more__button:hover:not(:disabled) {
    background: var(--color-ex-hover); color: var(--color-ex-copper);
  }
}
@media (max-width: 47.99rem) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread .af-reply-composer { padding: var(--space-ex-md); }
}

/* Hallmark · component: discussion providers · design-system: design.md.
 * Reuse the homepage catalogue cards and compact city title. P5 H5 E5 S5 R5 V4. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-discussion-premium.af-home-directory {
  margin: 0 0 var(--space-ex-xl); padding: 0; border: 0;
  border-radius: 0; background: var(--color-ex-clear);
  .af-home-providers { margin-top: 0; }
  .af-home-provider-list { margin-top: 0; }
  .af-thread-provider-city summary {
    display: flex; align-items: center; justify-content: space-between;
    min-height: var(--control-ex-height); gap: var(--space-ex-xs);
    color: var(--color-ex-ink); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body); cursor: pointer;
  }
  .af-thread-provider-city summary::after { content: '+'; color: var(--color-ex-copper); }
  .af-thread-provider-city[open] summary::after { content: '−'; }
  .af-market-preference { margin: var(--space-ex-xs) 0 0; padding: 0; border: 0; background: var(--color-ex-clear); }
  .af-market-preference select {
    width: 100%; max-width: 100%; min-width: 0; min-height: var(--control-ex-height);
    padding: var(--space-ex-xs); font: 400 var(--text-ex-body)/1.4 var(--font-ex-body);
    color: var(--color-ex-ink); background: var(--color-ex-paper);
    border: var(--rule-ex-fine) solid var(--color-ex-field); border-radius: var(--radius-premium-button);
  }
}

/* Hallmark · component: discussion context · design-system: design.md.
 * Quiet participant disclosure; category → title → replies for related reading.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread {
  > .af-workspace__context { row-gap: var(--space-ex-md); }
  .af-thread-participants {
    min-width: 0; grid-column: 1 / -1; align-self: start;
    padding: var(--space-ex-xs) var(--space-ex-sm);
    border: 0; border-radius: var(--radius-premium-button); background: var(--color-ex-porcelain);
  }
  .af-thread-participants__toggle {
    display: flex; align-items: center; gap: var(--space-ex-xs);
    min-height: var(--control-ex-height); list-style: none; cursor: pointer;
    color: var(--color-ex-ink); font: 600 var(--text-ex-meta)/1.4 var(--font-ex-body);
  }
  .af-thread-participants__toggle::-webkit-details-marker { display: none; }
  .af-thread-participants__count {
    margin-inline-start: auto; color: var(--color-ex-secondary);
    font: 500 var(--text-ex-caption)/1.4 var(--font-ex-body);
  }
  .af-thread-participants__toggle .af-icon { flex-shrink: 0; width: var(--space-ex-md); height: var(--space-ex-md); transform: rotate(90deg); }
  .af-thread-participants[open] .af-thread-participants__toggle .af-icon { transform: rotate(-90deg); }
  .af-thread-participants .af-participant-grid { gap: var(--space-ex-xs); margin-top: var(--space-ex-sm); }
  .af-thread-participants .af-participant > div {
    display: flex; align-items: center; justify-content: space-between;
    flex: 1; gap: var(--space-ex-xs);
  }
  .af-thread-participants .af-participant > div > span { margin: 0; flex-shrink: 0; white-space: nowrap; }
  .af-thread-related.af-context-panel {
    min-width: 0; grid-column: 1 / -1; padding: var(--space-ex-md); border: 0;
    border-radius: var(--radius-premium-card); background: var(--color-ex-porcelain);
  }
  .af-thread-related .af-context-panel__head { margin: 0 0 var(--space-ex-xs); }
  .af-thread-related .af-context-panel__head h2 {
    color: var(--color-ex-ink); font: 600 var(--text-ex-body)/1.4 var(--font-ex-body) !important;
  }
  .af-thread-related .af-related-list { display: grid; gap: var(--space-ex-xs); list-style: none; }
  .af-thread-related .af-related-list li { display: block; border: 0; }
  .af-thread-related .af-related-list a.af-related-post {
    display: flex; flex-direction: column; align-items: stretch; gap: var(--space-ex-xs);
    min-width: 0; min-height: var(--control-ex-height); padding: var(--space-ex-sm);
    border: 0; border-radius: var(--radius-premium-button);
    background: var(--color-ex-clear); color: var(--color-ex-ink) !important;
    font: 400 var(--text-ex-meta)/1.5 var(--font-ex-body) !important;
    text-decoration: none !important;
  }
  .af-thread-related .af-related-post__title {
    margin: 0; padding: 0; overflow-wrap: anywhere;
    color: var(--color-ex-ink); font: 650 var(--text-ex-topic)/1.4 var(--font-ex-body) !important;
    letter-spacing: normal;
  }
  .af-thread-related :is(.af-related-post__context,.af-related-post__context span,.af-related-post__activity) {
    color: var(--color-ex-secondary); font: 400 var(--text-ex-caption)/1.5 var(--font-ex-body);
  }
  .af-thread-related .af-related-post__activity { display: flex; align-items: center; gap: var(--space-ex-xs); }
  .af-thread-related .af-related-post__activity .af-icon { width: var(--space-ex-md); height: var(--space-ex-md); color: inherit; }
  :is(.af-thread-participants__toggle,.af-related-post):focus-visible {
    outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs);
  }
  .af-thread-related .af-related-post:active { background: var(--color-ex-hover); }
}
@media (hover: hover) {
  body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread {
    .af-thread-participants__toggle:hover { color: var(--color-ex-copper); }
    .af-thread-related .af-related-post:hover { background: var(--color-ex-paper); }
  }
}

/* Hallmark · component: cohesive discussion rail · design-system: design.md.
 * Listing utilities stay together; people and related reading share one surface.
 * Pre-emit critique: P5 H5 E5 S5 R5 V4. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread {
  > .af-workspace__context { row-gap: var(--space-ex-md); }
  .af-thread-community {
    display: grid; gap: var(--space-ex-md); grid-column: 1 / -1;
    min-width: 0; padding: var(--space-ex-md);
    border: 0; border-radius: var(--radius-premium-card); background: var(--color-ex-porcelain);
  }
  .af-thread-community :is(.af-thread-participants,.af-thread-related.af-context-panel) {
    padding: 0; border: 0; border-radius: 0; background: var(--color-ex-clear);
  }
  .af-thread-community .af-related-list a.af-related-post { padding-inline: 0; }
  .af-thread-community .af-thread-participants__toggle { font-weight: 600; }
}
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-discussion-premium.af-home-directory {
  margin-bottom: 0;
  .af-home-disclosure { padding-inline: var(--space-ex-md); }
  :is(.af-home-view-all,.af-home-business-link) { padding-inline: var(--space-ex-md); }
  .af-home-view-all { margin-top: var(--space-ex-xs); background: var(--color-ex-clear); }
  .af-thread-provider-city {
    margin-top: 0; padding: 0 var(--space-ex-md);
    border: 0; border-radius: 0; background: var(--color-ex-clear);
  }
  .af-thread-provider-city summary { font-weight: 600; }
  .af-thread-provider-city .af-market-preference { margin-bottom: var(--space-ex-sm); }
}

/* Legacy image sizing exceeded the author column on desktop. Keep every layer square. */
body.af-exchange-design #wpforo.af-publication #wpforo-wrap .af-workspace--thread :is(.wpfl-2,.wpfl-4) {
  .af-post__avatar,
  .af-post__avatar :is(.wpf-author-avatar,.avatar) {
    width: var(--control-ex-height) !important; min-width: var(--control-ex-height);
    max-width: var(--control-ex-height); height: var(--control-ex-height) !important;
    max-height: var(--control-ex-height); margin: 0; padding: 0; border: 0;
  }
  .af-post__avatar { display: flex; align-items: center; justify-content: center; align-self: center; }
  .af-post__avatar :is(.wpf-author-avatar,.avatar) { display: block; }
  .af-post__avatar .avatar { object-fit: cover; object-position: center; }
}
