/* Partners page (partners.html only). Steady on purpose: one list, the same rhythm on every row, no glow and
   no motion beyond a hover tint. The projects are presented as partners; nothing here speaks for how they
   take payments. The old .prt-* rules in styles.css are no longer used by any page. */
.pt-head { max-width: 720px; padding: 54px 0 30px; }
.pt-head h1 { font-size: 42px; font-weight: 800; letter-spacing: -1.2px; line-height: 1.08; }
.pt-lede { margin-top: 14px; max-width: 600px; font-size: 16.5px; line-height: 1.65; color: var(--muted); }

.pt-list { overflow: hidden; border-radius: 22px; background: var(--glass-strong); border: 1px solid var(--glass-line);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .85) inset, 0 14px 40px -22px rgba(20, 40, 80, .28), 0 2px 8px rgba(20, 40, 80, .04); }
.pt-item { display: grid; grid-template-columns: 52px minmax(170px, 230px) minmax(0, 1fr) auto;
  grid-template-areas: "logo title desc link"; align-items: center; gap: 0 24px; padding: 22px 28px;
  color: inherit; text-decoration: none; transition: background-color .18s ease; }
.pt-item + .pt-item { border-top: 1px solid var(--hairline); }
.pt-item:hover { background-color: rgba(10, 132, 255, .035); }
.pt-item:focus-visible { outline: 2px solid var(--accent-2); outline-offset: -2px; }

.pt-logo { grid-area: logo; width: 52px; height: 52px; border-radius: 14px; overflow: hidden; display: grid; place-items: center;
  box-shadow: 0 0 0 1px rgba(11, 18, 32, .06), 0 4px 10px -6px rgba(20, 40, 80, .35); }
.pt-logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pt-logo.pad img { width: 62%; height: 62%; object-fit: contain; }
.pt-logo.l-prm { background: linear-gradient(160deg, #1f3b2c, #0b1810 82%); }
.pt-logo.l-te { background: linear-gradient(160deg, #55c1f2, #1493d3 82%); }

.pt-title { grid-area: title; min-width: 0; }
.pt-name { font-size: 16.5px; font-weight: 750; letter-spacing: -.25px; line-height: 1.25; }
.pt-cat { display: block; margin-top: 3px; font-size: 12.5px; font-weight: 600; color: var(--faint); }
.pt-desc { grid-area: desc; font-size: 14px; line-height: 1.6; color: var(--muted); }
.pt-link { grid-area: link; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  font-size: 13.5px; font-weight: 650; color: var(--muted); transition: color .18s ease; }
.pt-link svg { width: 13px; height: 13px; flex: none; transition: transform .18s ease; }
.pt-item:hover .pt-link { color: var(--accent); }
.pt-item:hover .pt-link svg { transform: translate(2px, -2px); }

.pt-join { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 26px 0 8px;
  padding: 26px 28px; border-radius: 22px; background: var(--glass); border: 1px solid var(--glass-line); }
.pt-join h2 { font-size: 19px; font-weight: 800; letter-spacing: -.3px; }
.pt-join p { margin-top: 6px; max-width: 56ch; font-size: 14.5px; line-height: 1.6; color: var(--muted); }
.pt-join .ghost-btn { flex: none; text-decoration: none; }

/* tablets: the description moves under the name, the link stays on the first line */
@media (max-width: 900px) {
  .pt-item { grid-template-columns: 52px minmax(0, 1fr) auto; grid-template-areas: "logo title link" ". desc desc"; gap: 10px 18px; }
}
/* phones: logo and name, then the description, then the link */
@media (max-width: 600px) {
  .pt-head { padding: 34px 0 22px; }
  .pt-head h1 { font-size: 32px; letter-spacing: -.8px; }
  .pt-lede { font-size: 15.5px; }
  .pt-item { grid-template-columns: 44px minmax(0, 1fr); grid-template-areas: "logo title" "desc desc" "link link";
    gap: 12px 14px; padding: 18px 18px 20px; }
  .pt-logo { width: 44px; height: 44px; border-radius: 12px; }
  .pt-link { min-height: 32px; }
  .pt-join { flex-direction: column; align-items: flex-start; gap: 16px; padding: 22px 20px; }
}
:root[data-theme="dark"] .pt-list { box-shadow: 0 14px 40px -22px rgba(0, 0, 0, .6); }
:root[data-theme="dark"] .pt-item:hover { background-color: rgba(10, 132, 255, .08); }
