/* Belay Partners — shared layer on top of the Industry design system stylesheet. */
html { scroll-behavior: smooth; }
  body { -webkit-font-smoothing: antialiased; }
  a { color: var(--color-accent-700); }
  a:hover { color: var(--color-accent-800); }
  .lp-nav-link { cursor: pointer; background: none; border: 0; font: inherit; font-size: 14px; color: inherit; padding: 4px 0; }
  .lp-nav-link:hover { color: var(--color-accent-700); }
  .lp-nav-link[aria-current="page"] { color: var(--color-accent-700); box-shadow: inset 0 -1px 0 var(--color-accent-700); }
  .btn { white-space: nowrap; }
  .lp-menu-btn { display: none; align-items: center; gap: 9px; cursor: pointer; background: none; border: 1px solid var(--color-divider); font: inherit; font-family: var(--font-heading); font-size: 14px; color: inherit; padding: 8px 12px; min-height: 40px; }
  .lp-menu-btn:hover { border-color: var(--color-accent-700); color: var(--color-accent-700); }
  .lp-menu-bars { display: grid; gap: 4px; width: 16px; }
  .lp-menu-bars > span { display: block; height: 1.5px; background: currentColor; }
  .lp-nav-cta-short { display: none; }
  .lp-menu-item { text-align: left; font-size: 15px; min-height: 36px; display: flex; align-items: center; }
  .lp-badge-sub { white-space: nowrap; }
  @media (max-width: 1080px) { .lp-badge-sub { white-space: normal } }
  .lp-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
  .lp-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 34px; }
  @media (max-width: 900px) { .lp-grid-3, .lp-grid-2 { grid-template-columns: 1fr; } }
  /* Mobile: collapse every inline multi-column grid, wrap the nav, shrink display type.
     Inline styles win over the cascade, hence !important here. */
  @media (max-width: 760px) {
    body { overflow-x: hidden; }
    [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
    header nav { flex-wrap: wrap !important; gap: 12px 16px !important; row-gap: 8px !important; }
    header > div { flex-wrap: wrap !important; gap: 12px !important; padding-left: 20px !important; padding-right: 20px !important; }
    h1 { font-size: 34px !important; line-height: 1.1 !important; }
    h2 { font-size: 25px !important; }
    h3 { font-size: 20px !important; }
    main, section { padding-left: 20px !important; padding-right: 20px !important; }
    [style*="21 / 9"] { aspect-ratio: 4 / 3 !important; }
    .table { font-size: 13px; }
    .table th, .table td { padding: 6px 4px; }
    /* Legible body copy on a phone — cards, bios and footer text all come up to 15px. */
    .card-body { font-size: 15px; }
    .card-title { font-size: 19px; }
    .lp-nav-primary { display: none; }
    .lp-menu-btn { display: inline-flex; }
    .lp-nav-cta { min-height: 44px; padding-inline: 14px; }
    .lp-nav-cta-long { display: none; }
    .lp-nav-cta-short { display: inline; }
    .lp-menu-item { min-height: 44px; padding-block: 4px; }
    p[style*="font-size: 13px"], p[style*="font-size: 14px"], div[style*="font-size: 13px"]:not([style*="letter-spacing"]) { font-size: 15px !important; }
    .lp-menu-btn { min-height: 44px; }
  }
  /* Tablet / small laptop: the tight editorial splits get too narrow before 760px. */
  @media (min-width: 761px) and (max-width: 1000px) {
    [style*="0.8fr 1.2fr"],
    [style*="0.9fr 1.1fr"],
    [style*="0.95fr 1.05fr"],
    [style*="1.15fr 0.85fr"],
    [style*="1fr 1.4fr"],
    [style*="1fr 1.1fr"],
    [style*="1fr 0.8fr"] { grid-template-columns: 1fr !important; gap: 36px !important; }
    h1 { font-size: 44px !important; }
  }
  details > summary { cursor: pointer; list-style: none; }
  details > summary::-webkit-details-marker { display: none; }

a.btn, a.lp-nav-link { text-decoration: none; }
