/* ═══════════════════════════════════════════════════════════════
   LAWRYSE — DIRECTORY (W4)

   Search results, firm pages and attorney profile pages. Loaded alongside
   home.css, which carries the shared .lw-shell/.lw-grid/.lw-card system, and
   reuses archive.css's page-head, chip and empty-state classes rather than a
   fourth heading style (same discipline as archive.css itself).

   No colour, size or spacing literals: everything comes from the tokens in
   style.css, so a brand revision stays a one-file change (MASTER §24.1).
   ═══════════════════════════════════════════════════════════════ */

/* The search control itself lives in components.css (.lw-attsearch) — it is
   shared with the dark header banner, so it cannot live in a stylesheet that
   only loads on directory views. */

/* ── Firm result card ───────────────────────────────────────────────
   Alice, 2026-08-06: searching a FIRM must return the firm — "there needs
   to be a logo and name of firm" — not just an attorney who happens to
   share the name. Logo leads, firm name beside it, then where it is and
   who practises there. */

/* Deep Teal, same treatment as the Public Voices question cards (Alice,
   2026-08-07: "same teal colour we did for the questions in Public
   Voices" — the FIRM result cards specifically, not the sidebar). Still
   confined to a deliberately widened set of feature areas, never sitewide
   (style.css §2: "occasional splash only"). */
.lw-firm-card {
  position: relative;
  padding: var(--lw-s5);
  border: 1px solid var(--lw-teal);
  border-radius: var(--lw-radius);
  background: var(--lw-teal);
  color: #fff;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.lw-firm-card:hover {
  border-color: rgba(255, 255, 255, 0.5);
  box-shadow: var(--lw-shadow-soft);
}

/* DIRECTORY_FEATURED (W6) — a real paid boost, so the label reads
   distinctly from teal (which every result card already carries) rather
   than blending in as ordinary styling. A gold ribbon, not another chip in
   the same family as the "LAW FIRM" kicker. */
.lw-firm-card--featured {
  border-color: #E8B84B;
  box-shadow: 0 0 0 1px #E8B84B;
}
.lw-firm-card__featured-badge {
  position: absolute;
  top: -1px;
  right: var(--lw-s4);
  padding: 2px 10px;
  background: #E8B84B;
  color: var(--lw-ink);
  font-size: var(--lw-fs-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 0 0 6px 6px;
}

.lw-firm-card__head {
  display: flex;
  align-items: center;
  gap: var(--lw-s4);
  text-decoration: none;
  color: inherit;
}

.lw-firm-card__logo {
  flex: none;
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: var(--lw-radius-sm);
  background: #fff;
  color: var(--lw-muted);
}
.lw-firm-card__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.lw-firm-card__logo svg { width: 28px; height: 28px; }

.lw-firm-card__id { min-width: 0; }

.lw-firm-card__kicker {
  display: block;
  margin-bottom: 2px;
  font-size: var(--lw-fs-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
}

.lw-firm-card__head .lw-card__title { margin: 0; color: #fff; }
.lw-firm-card__head:hover .lw-card__title { color: #fff; text-decoration: underline; }

.lw-firm-card__where {
  margin: var(--lw-s3) 0 0;
  font-size: var(--lw-fs-sm);
  color: rgba(255, 255, 255, 0.75);
}

.lw-firm-card__people {
  margin: var(--lw-s4) 0 0;
  padding: var(--lw-s3) 0 0;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  list-style: none;
  font-size: var(--lw-fs-sm);
}
.lw-firm-card__people li {
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--lw-s2);
  margin-bottom: var(--lw-s1);
}
.lw-firm-card__people a { color: #fff; }
.lw-firm-card__people a:hover { color: #fff; text-decoration: underline; }
.lw-firm-card__people span { color: rgba(255, 255, 255, 0.75); }

.lw-firm-card__more {
  margin: var(--lw-s2) 0 0;
  font-size: var(--lw-fs-xs);
  color: rgba(255, 255, 255, 0.75);
}

/* ── Attorney result card ───────────────────────────────────────── */

.lw-att-card__grid {
  margin-bottom: var(--lw-s6);
}

.lw-att-card {
  display: flex;
  flex-direction: column;
}

.lw-att-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.lw-att-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--lw-ink);
  border-radius: var(--lw-radius-sm);
  margin-bottom: var(--lw-s3);
}

.lw-att-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.lw-att-card__job {
  margin: 0 0 var(--lw-s2);
  font-size: var(--lw-fs-sm);
  color: var(--lw-muted);
}

.lw-att-card__areas {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lw-s2);
  margin: var(--lw-s3) 0 0;
  padding: 0;
  list-style: none;
}

.lw-att-card__areas li {
  padding: 2px var(--lw-s2);
  border: 1px solid var(--lw-border);
  border-radius: 999px;
  font-size: var(--lw-fs-xs);
  color: var(--lw-body);
}

/* ── Contact block (firm + attorney pages) ──────────────────────── */

.lw-directory-contact {
  margin: var(--lw-s4) 0 0;
  padding: 0;
  list-style: none;
  font-size: var(--lw-fs-sm);
  color: var(--lw-body);
}

.lw-directory-contact li {
  margin-bottom: var(--lw-s2);
}

/* ── Firm / attorney profile heads ──────────────────────────────── */

.lw-directory-profile__head {
  padding-bottom: var(--lw-s5);
  margin-bottom: var(--lw-s6);
  border-bottom: 3px solid var(--lw-ink);
}

/* Firm branding strip atop an attorney's profile (Alice, 2026-08-06) — the
   firm's own mark, so landing on any attorney reads at a glance as "this
   attorney, at this firm" rather than requiring the badge line to be read. */
.lw-directory-firm-strip {
  display: flex;
  align-items: center;
  gap: var(--lw-s3);
  margin-bottom: var(--lw-s5);
  text-decoration: none;
}

.lw-directory-firm-strip__logo {
  max-height: 40px;
  width: auto;
}

.lw-directory-firm-strip__name {
  font-family: var(--lw-font-head);
  font-size: var(--lw-fs-sm);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--lw-ink);
}

.lw-directory-firm-strip:hover .lw-directory-firm-strip__name {
  color: var(--lw-red);
}

.lw-directory-profile__logo {
  max-height: 64px;
  width: auto;
  margin-bottom: var(--lw-s3);
}

.lw-directory-profile__head--attorney {
  display: flex;
  align-items: flex-start;
  gap: var(--lw-s5);
}

.lw-directory-profile__head--attorney .lw-att-card__media {
  flex: 0 0 140px;
  width: 140px;
  aspect-ratio: 1 / 1;
  margin-bottom: 0;
}

@media (max-width: 560px) {
  .lw-directory-profile__head--attorney {
    flex-direction: column;
  }
  .lw-directory-profile__head--attorney .lw-att-card__media {
    width: 96px;
    flex-basis: 96px;
  }
}

.lw-directory-profile__subhead {
  margin: var(--lw-s6) 0 var(--lw-s4);
  font-size: var(--lw-fs-lg);
  font-weight: 600;
}

.lw-directory-profile__bio {
  max-width: 46rem;
  font-size: var(--lw-fs-md);
  line-height: var(--lw-lh-snug);
  color: var(--lw-body);
}

.lw-directory-profile__chips {
  margin: 0;
}

.lw-directory-profile__languages {
  margin: var(--lw-s3) 0 0;
  font-size: var(--lw-fs-sm);
  color: var(--lw-muted);
}

/* ── "More about this firm" — labelled stubs (Alice, 2026-08-06) ─── */

.lw-firm-more {
  margin-bottom: var(--lw-s6);
}

.lw-firm-more__item .lw-widget__title { font-size: var(--lw-fs-base); }

