/* Entity profile + hub pages (V0FUN-1429)
 *
 * Built on design-tokens.css. No new colours, fonts or spacing values are
 * introduced here — every value is a token, so a change to the site palette
 * reaches these pages without anyone remembering they exist.
 *
 * Loaded by public/entities/<type>/<slug>.html and the hub pages beside them.
 */

/* ---- shared layout ---- */

/* The +60px clears the fixed site header. Same figure the glossary breadcrumb
 * uses — if the header height changes, both move together. */
.entity-breadcrumb {
    max-width: var(--container-max-width-narrow);
    margin: 0 auto;
    padding: calc(var(--space-2xl) + 60px) var(--container-padding) var(--space-sm);
    font-size: var(--font-size-small);
    color: var(--color-text-muted);
}

.entity-breadcrumb ol {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2xs);
    margin: 0;
    padding: 0;
}

.entity-breadcrumb li + li::before {
    content: "/";
    margin-right: var(--space-2xs);
    color: var(--color-text-muted);
}

.entity-breadcrumb a { color: var(--color-text-secondary); text-decoration: none; }
.entity-breadcrumb a:hover { color: var(--color-secondary-light); }

/* ---- entity page ---- */

.entity-profile {
    max-width: var(--container-max-width-narrow);
    margin: 0 auto;
    padding: 0 var(--container-padding) var(--space-3xl);
}

.entity-header {
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--color-border);
}

.entity-type-label {
    font-size: var(--font-size-micro);
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-secondary-light);
    margin: 0 0 var(--space-2xs);
}

.entity-name {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    line-height: 1.15;
    margin: 0;
    color: var(--color-text);
}

.entity-legal-name {
    font-size: var(--font-size-small);
    color: var(--color-text-muted);
    margin: var(--space-2xs) 0 0;
}

.entity-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--space-sm);
    margin: var(--space-lg) 0 0;
}

.entity-fact { margin: 0; }

.entity-fact-label {
    font-size: var(--font-size-micro);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin: 0 0 var(--space-3xs);
}

.entity-fact-value {
    font-size: var(--font-size-body);
    color: var(--color-text);
    margin: 0;
    overflow-wrap: anywhere;
}

.entity-fact-value a { color: var(--color-secondary-light); text-decoration: none; }
.entity-fact-value a:hover { text-decoration: underline; }

.entity-section { margin-top: var(--space-2xl); }

.entity-section-title {
    font-size: var(--font-size-h4);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin: 0 0 var(--space-md);
}

.entity-prose p {
    font-size: var(--font-size-body);
    line-height: 1.7;
    color: var(--color-text-secondary);
    margin: 0 0 var(--space-md);
}

/* ---- AUM table ---- */

.entity-table-wrap { overflow-x: auto; }

.entity-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-size-small);
}

.entity-table th {
    text-align: left;
    font-size: var(--font-size-micro);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    font-weight: var(--font-weight-medium);
    padding: 0 var(--space-sm) var(--space-2xs) 0;
    border-bottom: 1px solid var(--color-border);
}

.entity-table td {
    padding: var(--space-xs) var(--space-sm) var(--space-xs) 0;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text-secondary);
}

.entity-aum-value {
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.entity-aum-latest {
    display: inline-block;
    margin-left: var(--space-2xs);
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 0.6875rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: var(--color-primary-10);
    color: var(--color-secondary-light);
}

/* ---- asset class allocation ---- */

.entity-alloc-list { list-style: none; margin: 0; padding: 0; }

.entity-alloc {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) minmax(80px, 2fr) auto;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-xs) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--font-size-small);
    color: var(--color-text-secondary);
}

.entity-alloc-primary .entity-alloc-name {
    color: var(--color-text);
    font-weight: var(--font-weight-medium);
}

.entity-alloc-bar {
    display: block;
    height: 6px;
    border-radius: 3px;
    background: var(--color-primary-10);
    overflow: hidden;
}

.entity-alloc-fill {
    display: block;
    height: 100%;
    background: var(--color-secondary);
    border-radius: 3px;
}

.entity-alloc-pct {
    font-variant-numeric: tabular-nums;
    color: var(--color-text);
    white-space: nowrap;
}

/* ---- related ---- */

.entity-related-list { list-style: none; margin: 0; padding: 0; }

.entity-related-list li {
    padding: var(--space-xs) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--font-size-small);
}

.entity-related-list a { color: var(--color-secondary-light); text-decoration: none; }
.entity-related-list a:hover { text-decoration: underline; }

.entity-related-kind {
    margin-left: var(--space-2xs);
    font-size: var(--font-size-micro);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
}

/* ---- CTA + provenance ---- */

.entity-cta {
    margin-top: var(--space-2xl);
    padding: var(--space-lg);
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-md, 8px);
    background: var(--color-background-secondary);
}

.entity-cta-title {
    font-size: var(--font-size-h5);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin: 0 0 var(--space-2xs);
}

.entity-cta p {
    font-size: var(--font-size-small);
    color: var(--color-text-secondary);
    margin: 0 0 var(--space-md);
}

.entity-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    align-items: center;
}

.entity-cta-button {
    display: inline-block;
    padding: var(--space-2xs) var(--space-md);
    border-radius: var(--radius-sm, 4px);
    background: var(--color-secondary);
    color: var(--color-primary);
    font-size: var(--font-size-small);
    font-weight: var(--font-weight-medium);
    text-decoration: none;
}

.entity-cta-button:hover { background: var(--color-secondary-light); color: var(--color-primary-hover); }

.entity-cta-link {
    font-size: var(--font-size-small);
    color: var(--color-secondary-light);
    text-decoration: none;
}

.entity-cta-link:hover { text-decoration: underline; }

/* Provenance. Visible on purpose: these pages make factual claims about named
 * firms, so when the data was last checked is part of the claim. */
.entity-updated {
    margin-top: var(--space-lg);
    font-size: var(--font-size-micro);
    color: var(--color-text-muted);
}

.entity-updated a { color: var(--color-text-secondary); }

/* ---- hub pages ---- */

.hub {
    max-width: var(--container-max-width-narrow);
    margin: 0 auto;
    padding: 0 var(--container-padding) var(--space-3xl);
}

.hub-header {
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--color-border);
}

.hub-title {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    line-height: 1.15;
    margin: 0;
    color: var(--color-text);
}

.hub-intro {
    font-size: var(--font-size-body-lg);
    line-height: 1.6;
    color: var(--color-text-secondary);
    margin: var(--space-sm) 0 0;
}

.hub-count {
    font-size: var(--font-size-micro);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin: var(--space-sm) 0 0;
}

.hub-list {
    list-style: none;
    margin: var(--space-lg) 0 0;
    padding: 0;
    display: grid;
    gap: var(--space-md);
}

.hub-card {
    padding-bottom: var(--space-md);
    border-bottom: 1px solid var(--color-border);
}

.hub-card-link {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-2xs);
    text-decoration: none;
}

.hub-card-name {
    font-size: var(--font-size-h5);
    font-weight: var(--font-weight-medium);
    color: var(--color-text);
}

.hub-card-link:hover .hub-card-name { color: var(--color-secondary-light); }

.hub-card-meta {
    font-size: var(--font-size-micro);
    color: var(--color-text-muted);
    display: flex;
    gap: var(--space-sm);
}

.hub-card-aum { font-variant-numeric: tabular-nums; color: var(--color-text-secondary); }

.hub-card-summary {
    font-size: var(--font-size-small);
    line-height: 1.6;
    color: var(--color-text-secondary);
    margin: var(--space-3xs) 0 0;
}

/* ---- responsive ---- */

@media (max-width: 767px) {
    .entity-name, .hub-title { font-size: var(--font-size-h3); }
    .entity-alloc { grid-template-columns: 1fr auto; }
    .entity-alloc-bar { display: none; }
    .hub-card-link { flex-direction: column; }
}
