/* Hallmark · pre-emit critique: P4 H5 E4 S4 R5 V4
 * Hallmark · macrostructure: Ecosystem Index / Long Document / Index-First / Catalogue / Narrative Workflow
 * genre: editorial · design-system: design.md · designed-as-app
 * Shared mobile publication: compact masthead, reading-first pages, navigation sheet.
 * Existing Newsreader/Figtree and topic palettes; desktop N6 / Ft1 retained.
 */
html { --af-mobile-header-height: 0px; }
html.af-mobile-ready { scroll-padding-top: calc(var(--af-mobile-header-height) + var(--space-sm)); }
body.af-modal-locked { position: fixed; top: var(--af-scroll-top); width: 100%; }
.af-mobile-scroll-region { max-width: 100%; overflow: auto; overscroll-behavior-x: contain; }
.af-mobile-scroll-region:focus-visible { outline: var(--rule-strong) solid var(--color-focus); outline-offset: var(--rule-strong); }
.af-formatting-toggle { display: none; }

#wpforo.af-publication #wpforo-wrap,
body.aigenforums-directory {
  .af-mobile-menu {
    position: fixed; inset: 0; margin: 0 0 0 auto; padding: 0;
    width: min(100%, 28rem); max-width: 100%; height: 100dvh; max-height: 100dvh;
    border: 0; border-radius: 0; overflow: clip;
    background: var(--color-publication-paper); color: var(--color-publication-ink);
  }
  .af-mobile-menu:not([open]) { display: none; }
  .af-mobile-menu[open] { display: block; }
  .af-mobile-menu::backdrop { background: var(--color-scrim); }
  .af-mobile-menu :is(a, button) { transition: none !important; }
  .af-mobile-menu__surface { display: flex; flex-direction: column; height: 100%; min-height: 0; }
  .af-mobile-menu__head {
    display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm);
    padding: max(var(--space-sm), env(safe-area-inset-top)) max(var(--space-md), env(safe-area-inset-right)) var(--space-sm) max(var(--space-md), env(safe-area-inset-left));
    flex-shrink: 0; background: var(--color-publication-ink); color: var(--color-publication-paper);
  }
  .af-mobile-menu__head > div { min-width: 0; }
  .af-mobile-menu__head h2 { margin: 0; padding: 0; font: 600 1.75rem/1.1 var(--font-publication-display); color: inherit; }
  .af-mobile-menu__head p { margin: var(--space-3xs) 0 0; font: 400 var(--text-sm)/1.4 var(--font-publication-body); color: var(--color-publication-reverse-muted); overflow-wrap: anywhere; }
  .af-mobile-menu svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
  .af-mobile-menu__close {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-3xs);
    width: 48px; height: 48px; min-height: 48px !important; flex: 0 0 48px; padding: 0; margin: 0;
    border: 0; border-radius: 0; background: var(--color-transparent); color: var(--color-publication-paper);
    font: 500 var(--text-xs)/1 var(--font-publication-body); cursor: pointer;
  }
  .af-mobile-menu__body {
    min-height: 0; overflow-y: auto; overscroll-behavior-y: contain; flex: 1 1 auto;
    padding: var(--space-sm) max(var(--space-md), env(safe-area-inset-right)) var(--space-sm) max(var(--space-md), env(safe-area-inset-left));
  }
  .af-mobile-menu nav { display: grid; gap: 0; margin: 0; padding: 0; }
  .af-mobile-menu nav a {
    display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm);
    margin: 0; padding: var(--space-xs) var(--space-2xs); min-height: 56px; min-width: 0;
    border: 0; border-bottom: var(--rule-hair) solid var(--color-publication-rule); border-radius: 0;
    color: var(--color-publication-ink) !important; background: var(--color-transparent);
    font: 600 1.5rem/1.2 var(--font-publication-display); text-decoration: none; white-space: normal; overflow-wrap: anywhere;
  }
  .af-mobile-menu nav a[aria-current] { background: var(--color-publication-accent-soft); border-inline-start: 3px solid var(--color-publication-accent); padding-inline-start: var(--space-xs); }
  .af-mobile-menu__primary a, .af-mobile-menu__primary a span { font-family: var(--font-publication-display) !important; font-weight: 600; }
  .af-mobile-menu .af-mobile-menu__secondary { margin-top: var(--space-md); }
  .af-mobile-menu .af-mobile-menu__secondary a { min-height: 44px; padding-block: var(--space-2xs); border: 0; font: 500 var(--text-md)/1.4 var(--font-publication-body); }
  .af-mobile-menu__account {
    display: grid; flex: 0 0 auto; gap: var(--space-2xs);
    border-top: var(--rule-hair) solid var(--color-publication-rule);
    padding: var(--space-sm) max(var(--space-md), env(safe-area-inset-right)) max(var(--space-sm), env(safe-area-inset-bottom)) max(var(--space-md), env(safe-area-inset-left));
  }
  .af-mobile-menu__account a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: var(--space-xs) var(--space-sm); border-radius: 0; font: 600 var(--text-md)/1.4 var(--font-publication-body); text-decoration: none; }
  .af-mobile-menu__account a.af-mobile-menu__compose { justify-content: space-between; gap: var(--space-sm); background: var(--color-publication-ink); color: var(--color-publication-paper) !important; }
  .af-mobile-menu__account a.af-mobile-menu__signin { color: var(--color-publication-ink) !important; gap: var(--space-2xs); padding-block: var(--space-2xs); }
  .af-mobile-menu :is(a, button):focus-visible { outline: var(--rule-strong) solid var(--color-publication-ink) !important; outline-offset: var(--rule-strong); }
  .af-mobile-menu__head button:focus-visible { outline-color: var(--color-publication-paper) !important; }
  .af-mobile-menu__close:is(:hover, :focus, :active) { background: var(--color-publication-ink-2); color: var(--color-publication-paper) !important; box-shadow: none; }
  .af-mobile-menu nav a:active, .af-mobile-menu__signin:active { background: var(--color-publication-accent-soft); }
  .af-mobile-menu__compose:active { opacity: .85; }
}

@media (hover: hover) {
  :is(#wpforo.af-publication #wpforo-wrap, body.aigenforums-directory) .af-mobile-menu nav a:hover { background: var(--color-publication-soft); }
  :is(#wpforo.af-publication #wpforo-wrap, body.aigenforums-directory) .af-mobile-menu__signin:hover { text-decoration: underline; }
}

/* One row leaves the first screen to the discussion. Navigation remains visible
 * until JavaScript can open the native menu (including no-JavaScript visits). */
@media (max-width: 67.99rem) {
  html:has(#wpforo.af-publication), html:has(body.aigenforums-directory) { font-size: 100%; }
  #wpforo.af-publication #wpforo-wrap,
  body.aigenforums-directory {
    :is(.af-publication-masthead__inner, .af-dir-appbar__inner) {
      display: grid; grid-template-areas: "brand search actions"; grid-template-columns: minmax(0, 1fr) auto auto;
      align-items: center; gap: var(--space-2xs); min-height: 72px;
      padding: var(--space-2xs) max(var(--space-sm), env(safe-area-inset-right)) var(--space-2xs) max(var(--space-sm), env(safe-area-inset-left));
    }
    :is(.af-brand, .af-dir-brand) { width: fit-content; margin: 0; min-height: 44px; display: flex; flex-direction: column; justify-content: center; align-items: stretch; text-align: start; }
    :is(.af-brand__name, .af-dir-brand__name) { font-size: clamp(1.375rem, 3.8vw, 1.75rem); line-height: 1.06; text-align: start; }
    :is(.af-brand__descriptor, .af-dir-brand__descriptor) { font-size: 10px; line-height: 1; margin-top: var(--space-3xs); text-align: start; }
    :is(.af-appbar__actions, .af-dir-appbar__actions) { gap: var(--space-3xs); }
    :is(.af-search-trigger, .af-dir-search-trigger, .af-mobile-nav-trigger, .af-dir-mobile-trigger) {
      display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-3xs);
      width: 44px; min-width: 44px; height: 48px; padding: 0; border: 0; border-radius: 0;
      background: var(--color-transparent); color: var(--color-publication-paper); font: 500 11px/1 var(--font-publication-body);
    }
    :is(.af-search-trigger, .af-dir-search-trigger, .af-mobile-nav-trigger, .af-dir-mobile-trigger) :is(i, svg) { font-size: 18px; width: 20px; height: 20px; line-height: 20px; }
    :is(.af-search-trigger, .af-dir-search-trigger) > span { display: block; }
    :is(.af-account-link, .af-new-topic, .af-dir-account-link, .af-dir-business-link) { display: none; }
    .af-masthead__notifications { flex-basis: 44px; }
    .af-masthead__notifications > .wpf-alerts { border: 0; }
    :is(.af-publication-header, .af-dir-appbar) { z-index: var(--z-overlay); }
    :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea) { font-size: max(1rem, 16px); max-width: 100%; min-width: 0; }
    :is(input[type="text"], input[type="email"], input[type="search"], input[type="password"], input[type="tel"], input[type="url"], select) { min-height: 44px; }
    textarea { resize: vertical; }
    :is(.af-search-dialog, .af-dir-command) { max-height: calc(100dvh - var(--space-lg)); overflow-y: auto; overscroll-behavior-y: contain; }
    :is(.af-forum-footer__routes, .af-dir-site-footer__nav) { gap: var(--space-2xs) var(--space-sm); }
  }
  html.af-mobile-ready :is(.af-publication-nav, .af-dir-primary-nav) { display: none !important; }
  html:not(.af-mobile-ready) :is(.af-mobile-nav-trigger, .af-dir-mobile-trigger) { display: none !important; }
  html.af-mobile-ready :is(.af-publication-header, .af-dir-appbar) { position: sticky; top: 0; }
  html.af-mobile-header-tall :is(.af-publication-header, .af-dir-appbar) { position: static; }
  body.admin-bar .af-dir-appbar { top: 0; }
  #wpforo.af-publication #wpforo-wrap {
    .af-publication-breadcrumb { padding-block: var(--space-3xs); }
    :is(.af-workspace--thread, .af-route-frame, .af-workspace--index) { padding-top: var(--space-md); }
    .af-search-result__meta { gap: 0 var(--space-xs); }
    .af-search-result__meta a { display: inline-flex; align-items: center; min-height: 44px; }
    .af-search-view .af-search-result__excerpt { font-size: max(1rem, 16px); line-height: 1.6; }
    .af-post__body { overflow-wrap: anywhere; }
    .af-post__body :is(img, video, iframe) { max-width: 100%; }
    .af-post__body pre { max-width: 100%; overflow: auto; }
    :is(.mce-toolbar, .mce-toolbar-grp) { max-width: 100%; }
    .mce-toolbar .mce-btn button { min-width: 44px; min-height: 44px; }
    .af-mobile-compose { border: var(--rule-hair) solid var(--color-rule-strong) !important; box-shadow: none; }
    .mce-edit-area iframe { min-height: 12rem; }
    .af-mobile-compose:not(.af-formatting-open) .mce-toolbar-grp { display: none; }
    .af-formatting-toggle {
      display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm);
      width: 100%; min-height: 44px; margin: 0; padding: var(--space-2xs) var(--space-xs);
      border: var(--rule-hair) solid var(--color-rule-strong); border-bottom: 0; border-radius: 0;
      background: var(--color-surface-subtle); color: var(--color-ink); font: 500 var(--text-sm)/1.4 var(--font-body);
    }
    .af-formatting-toggle::after { content: '+'; font-size: var(--text-xl); }
    .af-formatting-toggle[aria-expanded="true"]::after { content: '−'; }
    .af-formatting-toggle:active { background: var(--color-accent-soft); }
    .af-profile-tabs { gap: var(--space-2xs); }
    .af-member-card { padding: var(--space-sm); }
  }
  body.af-platform #wpforo.af-publication #wpforo-wrap,
  body.af-platform.aigenforums-directory {
    .af-workspace--edition:has(.af-platform-home) { padding: 0; }
    .af-platform-home { padding-inline: 0; }
    .af-platform-positioning { padding-block: var(--space-sm); gap: var(--space-2xs); }
    .af-platform-positioning h1 { padding: 0; }
    .af-platform-major-markets a, .af-platform-geography li a { min-height: 44px; display: inline-flex; align-items: center; padding-block: var(--space-2xs); }
    .af-platform-feed-row { padding-block: var(--space-sm); gap: var(--space-2xs); }
    .af-platform-feed-row h3 a { display: block; min-height: 44px; align-content: center; }
    .af-platform-story p { font-size: max(1rem, 16px); }
    .af-platform-story--lead .af-story-image img { height: auto; max-height: 16rem; object-fit: cover; aspect-ratio: 16 / 9; }
    .af-dir-premium-card h3 a { display: inline-flex; align-items: center; min-height: 44px; }
  }
  body.aigenforums-directory {
    .af-dir-field-grid, .af-dir-upload-grid { grid-template-columns: minmax(0, 1fr); }
    .af-dir-form-actions { gap: var(--space-xs); flex-wrap: wrap; }
    .af-dir-form-actions > :is(button, a) { flex: 1 1 auto; }
    .af-dir-field label:has(input[type="checkbox"], input[type="radio"]) { display: flex; align-items: start; gap: var(--space-xs); min-height: 44px; padding-block: var(--space-2xs); }
    .af-dir-progress--six ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2xs); }
    .af-dir-progress--six li { min-width: 0; padding: var(--space-2xs); gap: var(--space-2xs); }
    .af-dir-progress--six li strong { overflow-wrap: anywhere; }
    .af-dir-market-index li a { min-height: 44px; }
  }
}
@media (max-width: 39.99rem) {
  #wpforo.af-publication #wpforo-wrap .af-publication-breadcrumb {
    .wpf-breadcrumb { flex-wrap: nowrap; }
    .wpf-item-element:not(.wpf-root):has(~ .wpf-item-element:not(.active, .wpf-root)) { display: none; }
    .wpf-item-element:not(.wpf-root), .wpf-item-element a { min-width: 0; }
    .wpf-item-element:not(.wpf-root) span[itemprop="name"] { display: block; overflow: hidden; text-overflow: ellipsis; line-height: 44px; }
  }
}
@media (min-width: 37.5625rem) and (max-width: 48.875rem) {
  html.af-mobile-ready body.admin-bar :is(.af-publication-header, .af-dir-appbar) { top: 46px; }
}
@media (min-width: 48.9375rem) and (max-width: 67.99rem) {
  html.af-mobile-ready body.admin-bar :is(.af-publication-header, .af-dir-appbar) { top: 32px; }
}
@media (max-height: 30rem) {
  html.af-mobile-ready :is(.af-publication-header, .af-dir-appbar) { position: static; }
  :is(#wpforo.af-publication #wpforo-wrap, body.aigenforums-directory) .af-mobile-menu__account { grid-template-columns: minmax(0, 1fr) auto; }
}
