/* Scoped styles; accent values follow the existing header market switcher. */
.pl-page { --pl-accent:var(--beam-color,#d4af37); --pl-rgb:var(--apf-market-rgb,212,175,55); color:#f2f2f4; background:#070709; font-family:"Cairo",sans-serif; padding:44px 0 60px; }
.pl-page * { box-sizing:border-box; }
.pl-shell { width:min(calc(100% - 36px),1180px); margin-inline:auto; }
.pl-shell--detail { max-width:1000px; }
.pl-kicker { color:var(--pl-accent); font-size:12px; font-weight:700; }
.pl-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.pl-card { display:flex; flex-direction:column; min-width:0; padding:20px; color:inherit; text-decoration:none; border:1px solid #ffffff17; border-radius:16px; background:linear-gradient(145deg,#111114,#0b0b0e); transition:border-color .18s,background .18s; }
.pl-card:hover { border-color:rgba(var(--pl-rgb),.5); background:color-mix(in srgb,var(--pl-accent) 7%,#0b0b0e); }
.pl-card-top { display:flex; align-items:center; gap:13px; }
.pl-logo { display:inline-flex; flex:0 0 56px; width:56px; height:56px; align-items:center; justify-content:center; border:1px solid #ffffff16; border-radius:12px; background:#070709; color:var(--pl-accent); font-size:28px; overflow:hidden; }
.pl-logo img { display:block; width:100%; height:100%; padding:5px; object-fit:contain; }
.pl-card h2 { margin:0; font-size:17px; line-height:1.6; overflow-wrap:anywhere; }
.pl-card p { color:#b6b6be; margin:15px 0 18px; font-size:13px; line-height:1.9; overflow-wrap:anywhere; }
.pl-card-link { display:flex; gap:12px; align-items:center; justify-content:space-between; margin-top:auto; padding-top:13px; border-top:1px solid #ffffff0d; color:var(--pl-accent); font-size:12px; font-weight:700; }
.pl-card-top + .pl-card-link { margin-top:18px; }
.pl-back { display:inline-block; margin-bottom:28px; color:#aaaab3; text-decoration:none; font-size:13px; }
.pl-back:hover { color:var(--pl-accent); }
.pl-company-heading { display:flex; align-items:center; gap:18px; }
.pl-company-heading h1 { margin:4px 0 0; font-size:clamp(25px,4vw,34px); line-height:1.55; overflow-wrap:anywhere; }
.pl-logo--large { width:72px; height:72px; flex-basis:72px; border-radius:16px; }
.pl-description { margin-top:22px; color:#b6b6bf; font-size:14px; line-height:2; overflow-wrap:anywhere; }
.pl-section { margin-top:32px; }
.pl-section h2 { margin:0 0 15px; color:#f7f7f8; font-size:19px; }
.pl-table-wrap { overflow:auto; border:1px solid rgba(var(--pl-rgb),.24); border-radius:13px; scrollbar-color:rgba(var(--pl-rgb),.6) #111115; }
.pl-table { border-collapse:separate; border-spacing:0; width:100%; text-align:center; font-size:14px; }
.pl-table th,.pl-table td { min-width:150px; max-width:330px; padding:16px 18px; border-inline-end:1px solid #ffffff09; border-bottom:1px solid #ffffff0e; overflow-wrap:anywhere; }
.pl-table thead th { background:color-mix(in srgb,var(--pl-accent) 8%,#0e0e12); color:color-mix(in srgb,var(--pl-accent) 72%,#fff); font-weight:700; font-size:12px; }
.pl-table tbody td,.pl-table tbody th { background:#0e0e12; }
.pl-table tbody tr:nth-child(even) td,.pl-table tbody tr:nth-child(even) th { background:#121216; }
.pl-table th:first-child { position:sticky; inset-inline-start:0; z-index:1; border-inline-end:1px solid rgba(var(--pl-rgb),.16); }
.pl-table tbody tr:last-child > * { border-bottom:0; }
.pl-table bdi { white-space:pre-line; }
.pl-scroll-hint { margin:-5px 0 10px; color:#94949f; font-size:11px; }
.pl-rules { border-top:1px solid #ffffff12; padding-top:25px; }
.pl-rules ul { margin:0; padding-inline-start:22px; color:#c7c7ce; }
.pl-rules li { padding-inline-start:5px; margin:0 0 10px; line-height:1.9; font-size:14px; overflow-wrap:anywhere; }
.pl-rules li::marker { color:var(--pl-accent); }
.pl-cta { margin-top:30px; }
.pl-button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:22px; padding:10px 28px; border-radius:10px; background:var(--pl-accent); color:#090909; font-weight:900; text-decoration:none; font-size:14px; }
.pl-button:hover { background:color-mix(in srgb,var(--pl-accent) 85%,#fff); }
.pl-empty { padding:30px 20px; border:1px solid #ffffff14; border-radius:14px; background:#0e0e12; color:#aaaab3; line-height:2; font-size:14px; }
.pl-empty h1 { font-size:25px; color:#eee; }
.pl-page a:focus-visible,.pl-table-wrap:focus-visible { outline:2px solid var(--pl-accent); outline-offset:4px; }
@media(max-width:960px) { .pl-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:580px) {
 .pl-page { padding:28px 0 40px; }
 .pl-shell { width:calc(100% - 28px); }
 .pl-grid { grid-template-columns:1fr; gap:12px; }
 .pl-card { padding:16px; }
 .pl-card p { margin:10px 0 13px; }
 .pl-company-heading { gap:13px; }
 .pl-table th,.pl-table td { min-width:128px; padding:14px 12px; }
 .pl-table th:first-child { min-width:112px; max-width:150px; }
 .pl-button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { .pl-card { transition:none; } }

/* Directory introduction follows the centered hero used across APF directories.
   Scoped to the listing: company detail pages retain their compact layout. */
.pl-page.pl-page--directory { padding:0; }
.pl-hero {
    position:relative;
    overflow:hidden;
    padding:42px 0 36px;
    border-bottom:1px solid rgba(var(--pl-rgb),.16);
    background:
        radial-gradient(ellipse at 50% 0,rgba(var(--pl-rgb),.13),transparent 68%),
        linear-gradient(180deg,#0d0d11 0%,#08080a 100%);
}
.pl-hero-content { display:flex; flex-direction:column; align-items:center; text-align:center; }
.pl-hero .pl-kicker {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    max-width:100%;
    padding:5px 12px;
    border:1px solid rgba(var(--pl-rgb),.32);
    border-radius:999px;
    background:rgba(var(--pl-rgb),.055);
    font-size:11px;
    font-weight:900;
    line-height:1.7;
}
.pl-hero h1 { margin:15px 0 12px; color:#fff; font-size:clamp(32px,4vw,48px); font-weight:900; line-height:1.3; }
.pl-hero h1 span { color:var(--pl-accent); text-shadow:0 0 30px rgba(var(--pl-rgb),.16); }
.pl-hero p { max-width:720px; margin:0; color:#a5a5af; font-size:14px; line-height:1.9; }
.pl-directory { padding-block:30px 60px; }
.pl-directory > .pl-empty { margin:0; text-align:center; }
@media(max-width:580px) {
    .pl-hero { padding:32px 0 28px; }
    .pl-hero h1 { margin:13px 0 10px; font-size:32px; line-height:1.4; }
    .pl-hero .pl-kicker { font-size:10px; }
    .pl-hero p { max-width:400px; font-size:13px; line-height:1.9; }
    .pl-directory { padding-block:24px 40px; }
}
