/* Prop firms: the deals page and each firm's page (built by firms.mjs). Shared parts are in ui.css. */

.pf-code { color: var(--amber); padding: 2px 8px; border-radius: 6px; background: var(--amber-fill); box-shadow: 0 0 0 1px var(--amber-line) inset; }
.pf-note { margin-top: 24px; text-align: center; font-size: 13px; color: var(--text-3); }

/* ---------- deal cards ---------- */
.deals { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; margin-top: 48px; }
.deal {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0) 50%), var(--l1);
  box-shadow: 0 0 0 1px var(--line-card) inset;
  transition: box-shadow var(--dur) var(--ease);
}
.deal:hover { box-shadow: 0 0 0 1px var(--card-glow-line) inset, var(--card-glow); }
.deal-top { display: flex; align-items: center; gap: 14px; }
.deal-name { font-size: 16px; font-weight: var(--w-semibold); color: var(--text-1); letter-spacing: -0.01em; }
.deal-sub { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.deal-off { font-size: 22px; font-weight: var(--w-medium); letter-spacing: -0.02em; color: var(--amber); }
.deal-code {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 44px;
  padding: 0 6px 0 14px;
  border-radius: 12px;
  border: 1px dashed var(--amber-line);
  background: var(--amber-fill);
}
.deal-code-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-3); }
.deal-code-value { flex: 1; font-size: 15px; color: var(--text-1); letter-spacing: 0.06em; }
.deal-copy {
  height: 32px;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: var(--w-medium);
  color: var(--text-1);
  background: var(--btn-s-fill);
  box-shadow: 0 0 0 1px var(--line-field) inset;
  transition: background var(--dur) var(--ease);
}
.deal-copy:hover { background: var(--btn-s-fill-hover); }
.deal-copy.is-done { color: var(--ok-text); }
.deal-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; }
.deal-actions .link-arrow { font-size: 13px; }

.firm-mark {
  display: grid;
  place-items: center;
  flex: none;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  color: var(--text-1);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03));
  box-shadow: 0 0 0 1px var(--line-hover) inset, 0 1px 0 rgba(255, 255, 255, 0.08) inset;
}
.firm-mark .logo-mark { width: 30px; height: 30px; max-width: none; }
.firm-mark.is-text { font-size: 15px; font-weight: var(--w-semibold); letter-spacing: 0.02em; color: var(--text-2); }
.firm-mark.is-img { overflow: hidden; background: none; box-shadow: 0 0 0 1px var(--line-card) inset; }
.firm-mark.is-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.firm-mark.is-small { width: 24px; height: 24px; border-radius: 7px; font-size: 10px; }
.firm-cell { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.firm-word { display: block; width: 180px; height: 44px; color: var(--text-1); }
.firm-word .logo-mark { max-width: none; width: 100%; height: 100%; -webkit-mask-position: left center; mask-position: left center; }
.firm-word:empty, .firm-title-row:empty { display: none; }
.firm-mark.is-big { width: 64px; height: 64px; border-radius: 18px; }
.firm-mark.is-big .logo-mark { width: 40px; height: 40px; }

/* ---------- rules table ---------- */
.pf-table { margin-top: 48px; }
.pf-table > * + * { margin-top: 20px; }
.pg-search { max-width: 420px; }
.pg-firms { min-width: 880px; }
.pg-firms td { vertical-align: top; line-height: 1.5; font-family: var(--font-sans); font-size: 14px; }
.pg-firms th { font-family: var(--font-sans); }
.pg-firms td:first-child { white-space: nowrap; }
.pg-firms td:first-child a { color: var(--text-1); }
.pg-firms td:nth-child(2) { max-width: 220px; color: var(--text-3); }
.pg-firms td:nth-child(3) { white-space: nowrap; }
.pg-firms td:nth-child(4) { max-width: 360px; color: var(--text-2); }
.pg-firms td:last-child { position: relative; }
.pg-firms a { color: var(--text-3); }
.pg-firms a:hover { color: var(--amber); }

.pf-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 48px; }
.pf-cards.is-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pf-card { padding: 24px; border-radius: 18px; background: var(--l1); box-shadow: 0 0 0 1px var(--line-card) inset; }
.pf-card > * + * { margin-top: 8px; }

/* ---------- a firm's page ---------- */
.firm-hero { position: relative; padding: 72px 0 88px; overflow: hidden; }
.firm-hero .container { position: relative; }
.firm-hero-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: center; }
.firm-hero-text > * + * { margin-top: 20px; }
.firm-title-row { display: flex; align-items: center; gap: 18px; }
.firm-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-top: 32px !important; }
.firm-actions .hero-note { font-size: 13px; color: var(--text-3); }
.firm-deal {
  display: grid;
  gap: 16px;
  padding: 28px;
  border-radius: 22px;
  background:
    radial-gradient(90% 70% at 100% 0%, rgba(255, 181, 71, 0.18), rgba(255, 181, 71, 0) 70%),
    var(--l1);
  box-shadow: 0 0 0 1px var(--card-glow-line) inset, 0 30px 80px -30px rgba(255, 181, 71, 0.3);
}
.firm-deal .btn { justify-self: start; }
.deal-note { font-size: 12px; color: var(--text-3); }
.firm-split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.firm-split > div > * + * { margin-top: 16px; }
.firm-split .eyebrow + .h2 { margin-top: 18px; }
.firm-facts { display: grid; gap: 0; border-radius: 18px; background: var(--l1); box-shadow: 0 0 0 1px var(--line-card) inset; }
.firm-facts > div { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 18px 22px; }
.firm-facts > div + div { border-top: 1px solid var(--line-row); }
.firm-facts dt { color: var(--text-3); font-size: 14px; }
.firm-facts dd { margin: 0; color: var(--text-2); font-size: 15px; line-height: 1.5; }
.firm-setup { max-width: 760px; margin: 48px auto 0; }
.firm-setup .lead { text-align: center; }
.setup-steps { list-style: none; padding: 0; display: grid; gap: 12px; }
.setup-steps li { display: grid; grid-template-columns: 40px 1fr; gap: 16px; padding: 22px; border-radius: 18px; background: var(--l1); box-shadow: 0 0 0 1px var(--line-card) inset; }
.setup-steps li > div > * + * { margin-top: 6px; }
.setup-n { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; font-family: var(--font-mono); font-weight: 500; color: var(--amber); background: var(--amber-fill); box-shadow: 0 0 0 1px var(--amber-line) inset; }

@media (max-width: 900px) {
  .pf-cards, .pf-cards.is-four { grid-template-columns: 1fr; }
  .firm-hero { padding: 48px 0 64px; }
  .firm-hero-grid, .firm-split { grid-template-columns: 1fr; gap: 32px; }
  .firm-facts > div { grid-template-columns: 1fr; gap: 4px; }
  .firm-title-row .h1 { font-size: 36px; }
}

.af-actions { margin-top: 32px; display: flex; justify-content: center; }
.pr-hero .hero-note { margin-top: 14px; font-size: 13px; color: var(--text-3); }
