/* Hallmark · component: inline plumber carousel · editorial · existing Plumbing tokens
 * States: default, hover, focus, active, disabled, loading, error, ready.
 * P5 H5 E5 S5 R5 V4 · contrast: pass (40–41) · mobile: pass (320/375/414/768).
 * Native scrolling, next-card preview, no auto-advance. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap {
  --size-provider-deferred: 20rem;
  --size-provider-card: 18rem;
  [data-af-home-listing-slot][data-af-deferred] { display: block !important; min-block-size: var(--size-provider-deferred); }
  .af-ex-chapter-body > [data-af-home-listing-slot] { grid-column: 1 / -1; margin-block: var(--space-ex-xl) var(--space-ex-2xl); }
}
@media (max-width: 67.99rem) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-mobile-premium-slot .af-home-directory {
    .af-home-providers { margin: 0; }
    .af-home-provider-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-xs); margin: 0 0 var(--space-ex-xs); }
    h2.af-home-city { min-width: 0; margin: 0; font: 500 var(--text-ex-subforum)/1.3 var(--font-ex-display) !important; }
    .af-home-provider-controls:not([hidden]) { flex: 0 0 auto; margin: 0; }
    .af-home-provider-swipe { display: none; }
    .af-home-provider-navigation { gap: 0; }
    .af-home-provider-navigation button { background: var(--color-ex-clear); color: var(--color-ex-copper); box-shadow: none; }
    .af-home-provider-navigation button:disabled { background: var(--color-ex-clear); color: var(--color-ex-field); box-shadow: none; cursor: default; }
    .af-home-provider-navigation button:active:not(:disabled),
    .af-home-provider-navigation button.is-active { background: var(--color-ex-hover); color: var(--color-ex-copper-pressed); box-shadow: none; }
    [data-af-local-cards] { gap: var(--space-ex-sm); padding: var(--space-ex-2xs) 0 var(--space-ex-xs); scroll-padding-inline: 0; scroll-snap-type: x proximity; overscroll-behavior-inline: contain; scrollbar-width: none; }
    [data-af-local-cards]::-webkit-scrollbar { display: none; }
    .af-home-provider { box-sizing: border-box; display: flex; flex-direction: column; flex: 0 0 min(var(--size-provider-card),calc(100% - var(--space-ex-xl))); min-block-size: 11rem; padding: var(--space-ex-md); border: var(--rule-ex-fine) solid var(--color-ex-rule); border-radius: var(--radius-premium-button); box-shadow: none; }
    .af-home-provider--premium { border-color: var(--color-ex-clear); }
    .af-home-provider-title { min-height: var(--control-ex-height); align-items: center; gap: var(--space-ex-xs); }
    .af-home-provider-title h4,
    .af-home-provider:not(.af-home-provider--premium) .af-home-provider-title h4 { font: 600 var(--text-ex-body)/1.3 var(--font-ex-body) !important; }
    .af-home-provider-title h4 a { display: inline-flex; align-items: center; min-height: var(--control-ex-height); }
    .af-home-provider-badge { flex: 0 0 var(--space-ex-lg); width: var(--space-ex-lg); height: var(--space-ex-lg); }
    .af-home-provider-services { margin: var(--space-ex-xs) 0; font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body) !important; }
    .af-home-provider-website { display: flex !important; flex-direction: row; justify-content: flex-start; align-items: center; gap: var(--space-ex-xs); min-height: var(--control-ex-height); margin: 0; padding: 0; border-radius: 0; background: var(--color-ex-clear); box-shadow: none; color: var(--color-ex-copper) !important; }
    .af-home-provider--premium .af-home-provider-website { background: var(--color-ex-clear); color: var(--color-premium-text) !important; }
    .af-home-provider-website-label { display: contents; font-size: 0; }
    .af-home-provider-website-label > span { order: 2; flex: 0 0 auto; margin-inline-start: auto; color: inherit !important; font: 500 var(--text-ex-body)/1 var(--font-ex-body); }
    .af-home-provider-domain { order: 1; min-width: 0; color: inherit !important; font: 500 var(--text-ex-caption)/1.4 var(--font-ex-body); overflow-wrap: anywhere; }
    .af-home-provider-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-ex-xs); margin-top: auto; padding-top: var(--space-ex-xs); }
    .af-home-provider-call { min-height: var(--control-ex-height); padding: var(--space-ex-xs); box-shadow: none; white-space: nowrap; }
    .af-home-provider-profile { min-height: var(--control-ex-height); white-space: nowrap; }
    .af-home-provider-label { margin-top: var(--space-ex-xs); font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); }
    .af-home-disclosure { margin: var(--space-ex-xs) 0 0; padding: 0; font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); }
    :is(.af-home-view-all,.af-home-business-link) { display: inline-flex; align-items: center; justify-content: flex-start; gap: var(--space-ex-xs); width: auto; min-height: var(--control-ex-height); margin: var(--space-ex-xs) var(--space-ex-md) 0 0; padding: 0; background: var(--color-ex-clear); font: 500 var(--text-ex-caption)/1.4 var(--font-ex-body); white-space: nowrap; }
    :is(a,button,[tabindex]):focus-visible,
    :is(a,button).is-focus { outline: var(--rule-ex-focus) solid var(--color-ex-copper); outline-offset: var(--space-ex-2xs); }
    .af-home-provider--premium a:focus-visible { outline-color: var(--color-premium-text); }
    &[data-state="loading"] .af-home-empty,
    [data-load-state="loading"] .af-home-empty { padding-block: var(--space-ex-xl); color: var(--color-ex-secondary); }
    &[data-state="error"] .af-home-empty { padding-block: var(--space-ex-md); color: var(--color-ex-ink); }
    &[data-state="ready"] .af-home-empty { display: none; }
  }
}
@media (max-width: 67.99rem) and (hover: hover) {
  body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-mobile-premium-slot .af-home-directory {
    .af-home-provider-navigation button:hover:not(:disabled),
    .af-home-provider-navigation button.is-hover { background: var(--color-ex-hover); color: var(--color-ex-copper-pressed); box-shadow: none; }
    .af-home-provider-website:hover { background: var(--color-ex-clear); text-decoration: underline; text-underline-offset: var(--space-ex-2xs); }
  }
}
@media (prefers-reduced-motion: reduce) {
  body.af-exchange-design.af-plumbing-design .af-mobile-premium-slot [data-af-local-cards] { scroll-behavior: auto; }
}

/* The footer occupies one control row; secondary utilities open on demand. */
body.af-exchange-design.af-plumbing-design #wpforo.af-publication #wpforo-wrap .af-mobile-premium-slot .af-home-directory {
  .af-provider-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--space-ex-sm); min-height: var(--control-ex-height); margin: 0; padding: 0; }
  .af-provider-footer > .af-home-view-all { display: inline-flex; align-items: center; justify-content: flex-start; gap: var(--space-ex-xs); width: auto; min-height: var(--control-ex-height); margin: 0; padding: 0; background: var(--color-ex-clear); font: 500 var(--text-ex-caption)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-provider-tools { position: relative; flex: 0 0 auto; margin: 0; padding: 0; border: 0; background: var(--color-ex-clear); }
  .af-provider-tools > summary { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-ex-xs); min-width: var(--control-ex-height); min-height: var(--control-ex-height); margin: 0; padding: 0; list-style: none; color: var(--color-ex-copper); font: 500 var(--text-ex-caption)/1.4 var(--font-ex-body); cursor: pointer; }
  .af-provider-tools > summary::-webkit-details-marker { display: none; }
  .af-provider-tools > summary::after { content: none; }
  .af-provider-tools[open] > summary { color: var(--color-ex-copper-pressed); }
  .af-provider-tools-panel { position: absolute; inset-inline-end: 0; inset-block-end: calc(100% + var(--space-ex-2xs)); z-index: var(--z-overlay); display: grid; gap: var(--space-ex-xs); width: min(var(--size-provider-card),calc(100vw - var(--space-ex-xl))); box-sizing: border-box; padding: var(--space-ex-md); border: var(--rule-ex-fine) solid var(--color-ex-rule); border-radius: var(--radius-premium-button); background: var(--color-ex-paper); color: var(--color-ex-ink); box-shadow: var(--shadow-premium-action); }
  .af-provider-tools-panel > .af-home-business-link { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: var(--control-ex-height); margin: 0; padding: 0; background: var(--color-ex-clear); font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); white-space: nowrap; }
  .af-provider-tools-panel > .af-home-disclosure { margin: 0; padding: 0; font: 400 var(--text-ex-caption)/1.4 var(--font-ex-body); }
  .af-provider-tools-panel > .af-thread-provider-city { margin: 0; padding: 0; border: 0; background: var(--color-ex-clear); }
  .af-provider-tools-panel .af-thread-provider-city > summary { min-height: var(--control-ex-height); margin: 0; padding: 0; font: 500 var(--text-ex-meta)/1.4 var(--font-ex-body); }
  .af-provider-tools-panel .af-market-preference { margin: 0; padding: var(--space-ex-xs) 0 0; }
  .af-provider-tools-panel select { box-sizing: border-box; max-width: 100%; }
}
