/*
  UP1851 — Mobile Public Layout + Font Polish Emergency Fix
  Scope: public mobile job/company detail and company directory readability.
  Guardrail: CSS-only public hotfix; no payment/email/AI/Premium HR unlock.
*/

@media (max-width: 860px) {
  :root {
    --fij-mobile-appbar-height: 82px;
  }

  html,
  body.fij-public-shell,
  body.fj-public {
    max-width: 100% !important;
    overflow-x: hidden !important;
    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
  }

  body.fij-public-shell,
  body.fj-public {
    padding-bottom: calc(var(--fij-mobile-appbar-height) + env(safe-area-inset-bottom, 0px) + 18px) !important;
  }

  .fij-public-shell main,
  .fj-public main,
  .fij-page,
  .container {
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: clip !important;
  }

  .fij-public-shell .container {
    width: min(100% - 28px, 1180px) !important;
  }

  /* Mobile typography reset: the previous mobile pass was too heavy and too letter-spaced. */
  .fij-public-shell h1,
  .fij-public-shell h2,
  .fij-public-shell h3,
  .fij-public-shell .card h1,
  .fij-public-shell .card h2,
  .fij-public-shell .card h3 {
    font-weight: 760 !important;
    letter-spacing: -0.035em !important;
    text-wrap: balance !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .fij-public-shell h1 {
    font-size: clamp(30px, 8.2vw, 42px) !important;
    line-height: 1.08 !important;
  }

  .fij-public-shell h2,
  .fij-job-facts-card h2,
  .fij-job-action-card h2,
  .fij-company-detail h2,
  .fij-company-open-jobs h2 {
    font-size: clamp(24px, 6.6vw, 32px) !important;
    line-height: 1.14 !important;
  }

  .fij-public-shell h3,
  .fij-company-content h3 {
    font-size: clamp(22px, 6vw, 29px) !important;
    line-height: 1.16 !important;
    font-weight: 740 !important;
  }

  .fij-public-shell p,
  .fij-public-shell li,
  .fij-company-description,
  .fij-job-copy,
  .fij-job-copy p,
  .fij-job-description-card p,
  .fij-company-content p {
    font-size: 15px !important;
    line-height: 1.58 !important;
    font-weight: 430 !important;
    letter-spacing: -0.005em !important;
    color: #4f5d70 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .fij-public-shell .eyebrow,
  .fij-public-shell .fij-kicker,
  .fij-company-kicker {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    max-width: 100% !important;
    width: auto !important;
    font-size: 11px !important;
    line-height: 1.22 !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-wrap: auto !important;
  }

  .fij-public-shell .btn,
  .fij-public-shell .button,
  .fij-list-action,
  .fij-list-cta {
    font-weight: 780 !important;
    letter-spacing: -0.01em !important;
  }

  /* Company directory: force a real one-column mobile card and prevent word-by-word collapse. */
  .fij-companies-index-context .fij-companies-list-section,
  .fij-companies-list-section {
    padding-top: 22px !important;
    padding-bottom: calc(40px + var(--fij-mobile-appbar-height)) !important;
  }

  .fij-companies-index-context .fij-company-list,
  .fij-company-list,
  .company-card-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .fij-companies-index-context .fij-company-list-item,
  .fij-company-list-item,
  a.fij-company-list-item,
  .company-card.polished-company-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 18px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    text-decoration: none !important;
  }

  .fij-company-list-item .fij-company-logo,
  .fij-company-list-item > .fij-company-logo {
    display: none !important;
  }

  .fij-company-list-item .fij-company-content,
  .fij-company-list-item .fij-list-content,
  .fij-company-content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
  }

  .fij-company-list-item .fij-company-content .eyebrow,
  .fij-company-content .eyebrow {
    display: inline-flex !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #087462 !important;
    font-size: 10.5px !important;
    line-height: 1.22 !important;
    font-weight: 820 !important;
    letter-spacing: .075em !important;
    word-spacing: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .fij-company-content h3,
  .fij-company-list-item h3 {
    display: block !important;
    margin: 0 !important;
    max-width: 100% !important;
    color: #101322 !important;
    font-size: clamp(24px, 6.7vw, 32px) !important;
    line-height: 1.15 !important;
    font-weight: 740 !important;
    letter-spacing: -0.035em !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .fij-company-meta,
  .fij-company-content .card-meta,
  .fij-company-list-item .card-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 7px 9px !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 2px 0 0 !important;
  }

  .fij-company-meta .meta-token,
  .fij-company-content .meta-token,
  .fij-company-list-item .meta-token {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 5px 8px !important;
    border-radius: 999px !important;
    border: 1px solid #dfeae6 !important;
    background: #f8fffd !important;
    color: #526174 !important;
    font-size: 12px !important;
    line-height: 1.22 !important;
    font-weight: 650 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .fij-source-badge {
    display: inline-flex !important;
    width: fit-content !important;
    max-width: 100% !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: #f1f5f9 !important;
    color: #475467 !important;
    font-size: 11.5px !important;
    line-height: 1.2 !important;
    font-weight: 720 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .fij-company-action,
  .fij-company-list-item .fij-list-action,
  .fij-company-list-item .fij-company-action {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: stretch !important;
    width: 100% !important;
    min-height: 44px !important;
    margin: 4px 0 0 !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    box-shadow: none !important;
  }

  /* Job and company facts: compact, readable, not heavy. */
  .fij-job-detail-context .fij-job-detail-grid,
  .fij-company-detail-context .fij-company-profile-grid-v1767,
  .fij-company-profile-grid-v1767 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
    min-width: 0 !important;
  }

  .fij-job-description-card,
  .fij-job-facts-card,
  .fij-job-action-card,
  .fij-job-notes-card,
  .fij-company-profile-main-v1767,
  .fij-company-facts-card-v1767,
  .fij-empty-company-jobs-v1767 {
    padding: 18px !important;
    border-radius: 16px !important;
    box-shadow: 4px 4px 0 #edf8f5 !important;
  }

  .fij-job-facts-card h2,
  .fij-company-facts-card-v1767 .fij-company-kicker {
    margin-bottom: 14px !important;
  }

  .fij-job-facts-card dl,
  .fij-company-facts-card-v1767 dl,
  .fij-company-facts-card dl {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .fij-job-facts-card dl div,
  .fij-company-facts-card-v1767 dl div,
  .fij-company-facts-card dl div,
  .fij-fact-row-v1813 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 5px !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid #e5ecea !important;
  }

  .fij-job-facts-card dl div:first-child,
  .fij-company-facts-card-v1767 dl div:first-child {
    padding-top: 0 !important;
  }

  .fij-job-facts-card dl div:last-child,
  .fij-company-facts-card-v1767 dl div:last-child,
  .fij-company-facts-card dl div:last-child {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  .fij-job-facts-card dt,
  .fij-company-facts-card-v1767 dt,
  .fij-company-facts-card dt,
  .fij-fact-row-v1813 dt {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #687386 !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    font-weight: 760 !important;
    letter-spacing: .075em !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-indent: 0 !important;
  }

  .fij-job-facts-card dd,
  .fij-company-facts-card-v1767 dd,
  .fij-company-facts-card dd,
  .fij-fact-row-v1813 dd {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #171b27 !important;
    font-size: 16px !important;
    line-height: 1.44 !important;
    font-weight: 610 !important;
    letter-spacing: -0.012em !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: none !important;
    text-indent: 0 !important;
  }

  .fij-mini-icon-v1813,
  .fij-heading-icon-v1813 {
    flex: 0 0 auto !important;
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    color: #7bbfaf !important;
  }

  .fij-job-facts-card dd:has(+ *) {
    overflow-wrap: break-word !important;
  }

  /* Salary/source values can be long; keep them readable instead of black-heavy blocks. */
  .fij-job-facts-card dd,
  .fij-company-facts-card-v1767 dd {
    font-variation-settings: normal !important;
  }

  .fij-job-action-card .btn.full,
  .fij-job-action-card .btn.secondary.full,
  .fij-company-actions .btn,
  .button-row .btn {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 46px !important;
    justify-content: center !important;
  }

  .fij-company-actions,
  .button-row.fij-company-actions,
  .button-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
  }

  .fij-company-job-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    padding: 14px !important;
    border-radius: 14px !important;
  }

  .fij-company-job-main strong {
    font-size: 18px !important;
    line-height: 1.18 !important;
    font-weight: 730 !important;
    letter-spacing: -0.025em !important;
  }

  .fij-company-job-main small,
  .fij-company-job-meta span {
    word-break: normal !important;
    overflow-wrap: break-word !important;
  }

  /* Mobile bottom app bar: never cover the last company cards or search results. */
  .fij-mobile-bottom-nav,
  .fij-public-shell .fij-mobile-bottom-nav {
    min-height: calc(var(--fij-mobile-appbar-height) + env(safe-area-inset-bottom, 0px)) !important;
    max-height: none !important;
    padding-bottom: env(safe-area-inset-bottom, 0px) !important;
    background: rgba(255,255,255,.98) !important;
    border-top: 1px solid rgba(15,23,42,.10) !important;
    box-shadow: 0 -12px 34px rgba(15,23,42,.10) !important;
  }

  .fij-mobile-bottom-nav__grid {
    height: var(--fij-mobile-appbar-height) !important;
    align-items: center !important;
  }

  .fij-mobile-bottom-nav__item {
    min-width: 0 !important;
    padding: 8px 4px !important;
    gap: 4px !important;
    font-weight: 720 !important;
  }

  .fij-mobile-bottom-nav__item span,
  .fij-mobile-bottom-nav__item small {
    display: block !important;
    max-width: 100% !important;
    font-size: 11px !important;
    line-height: 1.12 !important;
    font-weight: 760 !important;
    letter-spacing: -0.01em !important;
    white-space: nowrap !important;
  }

  .fij-companies-index-context .fij-public-footer,
  .fij-company-detail-context .fij-public-footer,
  .fij-job-detail-context .fij-public-footer {
    padding-bottom: calc(34px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 420px) {
  .fij-public-shell .container {
    width: min(100% - 24px, 1180px) !important;
  }

  .fij-public-shell h1 {
    font-size: clamp(29px, 8.8vw, 38px) !important;
  }

  .fij-company-content h3,
  .fij-company-list-item h3 {
    font-size: clamp(23px, 7vw, 30px) !important;
  }

  .fij-job-facts-card dd,
  .fij-company-facts-card-v1767 dd,
  .fij-company-facts-card dd {
    font-size: 15.5px !important;
    font-weight: 600 !important;
  }
}

@supports not (overflow: clip) {
  @media (max-width: 860px) {
    .fij-public-shell main,
    .fj-public main,
    .fij-page,
    .container {
      overflow-x: hidden !important;
    }
  }
}
