/* People & Society / Arts & Culture hubs. Palette and rules follow the site
   design tokens: slate ink, cyan accent, flat surfaces, 1px borders. */
.pp-page { --pp-ink:#0f172a; --pp-body:#334155; --pp-muted:#64748b; --pp-line:#e2e8f0; --pp-bg:#f8fafc;
  --pp-accent:#0e7490; --pp-accent-soft:#ecfeff; --pp-accent-line:#a5f3fc; --pp-radius:.75rem; color:var(--pp-body); }
.pp-page--arts { --pp-accent:#7c2d12; --pp-accent-soft:#fff7ed; --pp-accent-line:#fed7aa; }
.pp-page a { color:var(--pp-accent); }
.pp-page a:focus-visible, .pp-page button:focus-visible { outline:3px solid #22d3ee; outline-offset:2px; }
.pp-page--arts a:focus-visible, .pp-page--arts button:focus-visible { outline-color:#fb923c; }

/* Header */
.pp-header { background:var(--pp-bg); border-bottom:1px solid var(--pp-line); padding:2.5rem 0 2rem; }
.pp-kicker { font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--pp-accent); font-weight:700; margin-bottom:.5rem; }
.pp-title { font-size:clamp(2rem,5vw,3rem); font-weight:800; line-height:1.1; letter-spacing:-.02em; color:var(--pp-ink); margin:0 0 .75rem; }
.pp-intro { font-size:1.05rem; line-height:1.65; max-width:64ch; color:var(--pp-body); margin:0; }
.pp-back { display:inline-flex; align-items:center; gap:.35rem; font-size:.9rem; text-decoration:none; margin-bottom:.75rem; }
.pp-chips { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.25rem; }
.pp-chip { display:inline-flex; align-items:center; gap:.4rem; padding:.4rem .8rem; border:1px solid var(--pp-line); border-radius:2rem; background:#fff; color:var(--pp-ink); text-decoration:none; font-size:.85rem; font-weight:600; }
.pp-chip:hover, .pp-chip[aria-current="page"] { border-color:var(--pp-accent); color:var(--pp-accent); }
.pp-chip__count { color:var(--pp-muted); font-weight:500; }

/* Sections */
.pp-section { padding:2.5rem 0; }
.pp-section--alt { background:var(--pp-bg); border-top:1px solid var(--pp-line); border-bottom:1px solid var(--pp-line); }
.pp-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; flex-wrap:wrap; }
.pp-label { display:inline-block; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--pp-accent); font-weight:700; margin-bottom:.35rem; }
.pp-h2 { font-size:clamp(1.4rem,3.5vw,1.9rem); font-weight:800; line-height:1.15; letter-spacing:-.02em; color:var(--pp-ink); margin:0; }
.pp-more { font-size:.9rem; font-weight:600; text-decoration:none; white-space:nowrap; }
.pp-empty { border:1px dashed var(--pp-line); border-radius:var(--pp-radius); padding:1.25rem; color:var(--pp-muted); background:#fff; }

/* Category cards */
.pp-cats { display:grid; gap:.75rem; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); }
.pp-cat { display:flex; gap:.85rem; align-items:flex-start; padding:1rem; border:1px solid var(--pp-line); border-radius:var(--pp-radius); background:#fff; text-decoration:none; color:var(--pp-ink); }
.pp-cat:hover { border-color:var(--pp-accent); }
.pp-cat i { font-size:1.35rem; color:var(--pp-accent); line-height:1; margin-top:.1rem; }
.pp-cat__name { font-weight:700; display:block; }
.pp-cat__count { font-size:.82rem; color:var(--pp-muted); }

/* People carousel */
.pp-carousel { position:relative; }
/* The track, arrows and progress bar are the shared rail (static/css/rail.css). */

/* Person card */
.pp-person { display:flex; flex-direction:column; height:100%; border:1px solid var(--pp-line); border-radius:var(--pp-radius); background:#fff; overflow:hidden; }
.pp-person__link { text-decoration:none; color:inherit; display:block; }
.pp-person__link:hover .pp-person__name { color:var(--pp-accent); }
.pp-portrait { position:relative; aspect-ratio:3/4; background:#e2e8f0; overflow:hidden; }
.pp-portrait img { display:block; width:100%; height:100%; object-fit:cover; }
.pp-portrait--placeholder { display:flex; align-items:center; justify-content:center; background:#cbd5e1; color:#0f172a; font-size:2.25rem; font-weight:800; letter-spacing:.05em; }
.pp-portrait--placeholder small { position:absolute; bottom:.5rem; left:.5rem; right:.5rem; font-size:.68rem; font-weight:500; letter-spacing:0; color:#334155; text-align:center; }
.pp-person__body { padding:.85rem .9rem .5rem; }
.pp-person__cat { font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--pp-accent); font-weight:700; }
.pp-person__name { font-size:1.05rem; font-weight:800; color:var(--pp-ink); margin:.15rem 0 .25rem; line-height:1.2; }
.pp-person__desc { font-size:.85rem; color:var(--pp-body); line-height:1.45; margin:0; }
.pp-person__note { font-size:.75rem; color:var(--pp-muted); margin:.35rem 0 0; }
.pp-credit { margin-top:auto; padding:.4rem .9rem .7rem; font-size:.7rem; color:var(--pp-muted); line-height:1.35; }
.pp-credit a { color:var(--pp-muted); text-decoration:underline; text-underline-offset:2px; }
.pp-credit a:hover { color:var(--pp-accent); }

/* Person card in a rail: full-bleed 4:5 portrait, category pill, name and role on the scrim, credit under the photo. */
/* The shared card paints --rail-card-bg; the credit under the photo sits on the same dark ground. */
.rail-person { --rail-card-bg:#0f172a; background:#0f172a; color:#fff; }
.rail-person .pp-person__link { position:relative; color:#fff; }
.rail-person .pp-portrait { aspect-ratio:4/5; }
.rail-person .pp-portrait--placeholder { align-items:flex-start; padding-top:22%; }
.rail-person .pp-portrait--placeholder small { top:.6rem; bottom:auto; }
.rail-person .pp-person__body { padding-top:3.5rem; }
.rail-person .pp-person__cat { margin-bottom:.4rem; }
.rail-person .pp-person__name { color:#fff; font-size:1.12rem; margin:0 0 .2rem; }
.rail-person .pp-person__desc { color:rgba(255,255,255,.88); font-size:.82rem; line-height:1.4; }
.rail-person .pp-person__note { color:rgba(255,255,255,.75); font-size:.72rem; }
.rail-person .pp-person__link:hover .pp-person__name { color:#a5f3fc; }
.rail-person .pp-credit { margin-top:0; padding:.5rem .9rem .65rem; color:rgba(255,255,255,.7); }
.rail-person .pp-credit a { color:rgba(255,255,255,.85); }
.rail-person .pp-credit a:hover { color:#a5f3fc; }

/* People grid (list alternative) */
.pp-people-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); list-style:none; padding:0; margin:0; }
.pp-people-grid .pp-person__desc { font-size:.8rem; }
.pp-toggle { background:none; border:1px solid var(--pp-line); border-radius:2rem; padding:.4rem .9rem; font-size:.85rem; font-weight:600; color:var(--pp-ink); cursor:pointer; }
.pp-toggle[aria-expanded="true"], .pp-toggle:hover { border-color:var(--pp-accent); color:var(--pp-accent); }

/* Credits disclosure */
.pp-credits { margin-top:1rem; font-size:.8rem; color:var(--pp-muted); }
.pp-credits summary { cursor:pointer; font-weight:600; color:var(--pp-ink); padding:.4rem 0; }
.pp-credits ul { margin:.5rem 0 0; padding-left:1.1rem; }
.pp-credits li { margin-bottom:.35rem; }

/* Article cards */
.pp-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); list-style:none; padding:0; margin:0; }
.pp-card { display:flex; flex-direction:column; height:100%; border:1px solid var(--pp-line); border-radius:var(--pp-radius); background:#fff; overflow:hidden; }
.pp-card__img { aspect-ratio:16/10; background:#e2e8f0; overflow:hidden; }
.pp-card__img img { width:100%; height:100%; object-fit:cover; display:block; }
.pp-card__body { padding:.9rem 1rem 1rem; display:flex; flex-direction:column; gap:.4rem; flex:1; }
.pp-card__meta { font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--pp-accent); font-weight:700; }
.pp-card__meta a { text-decoration:none; }
.pp-card__title { font-size:1.02rem; font-weight:700; line-height:1.3; margin:0; color:var(--pp-ink); }
.pp-card__title a { color:inherit; text-decoration:none; }
.pp-card__title a:hover { color:var(--pp-accent); }
.pp-card__foot { margin-top:auto; font-size:.78rem; color:var(--pp-muted); display:flex; gap:.6rem; flex-wrap:wrap; }
.pp-card__people { font-size:.78rem; color:var(--pp-muted); }
.pp-card__people a { color:var(--pp-body); text-decoration:none; }
.pp-card__people a:hover { color:var(--pp-accent); }
.pp-card--featured .pp-card__img { aspect-ratio:16/9; }
.pp-featured-lead { display:grid; gap:1rem; grid-template-columns:2fr 1fr; }
@media (max-width:900px) { .pp-featured-lead { grid-template-columns:1fr; } }
.pp-featured-lead .pp-card--lead .pp-card__title { font-size:1.5rem; }
.pp-featured-lead .pp-card--lead .pp-card__img { aspect-ratio:16/9; }
.pp-stack { display:grid; gap:.75rem; }
.pp-stack .pp-card { flex-direction:row; }
.pp-stack .pp-card__img { flex:0 0 110px; aspect-ratio:1; }
.pp-stack .pp-card__title { font-size:.95rem; }

/* Cross-link banner */
.pp-cross { display:flex; align-items:center; gap:1.25rem; padding:1.5rem; border:1px solid var(--pp-accent-line); background:var(--pp-accent-soft); border-radius:var(--pp-radius); text-decoration:none; color:var(--pp-ink); flex-wrap:wrap; }
.pp-cross i { font-size:2rem; color:var(--pp-accent); }
.pp-cross__title { font-size:1.25rem; font-weight:800; margin:0; }
.pp-cross__text { margin:.2rem 0 0; color:var(--pp-body); }
.pp-cross__cta { margin-left:auto; font-weight:700; color:var(--pp-accent); white-space:nowrap; }

/* Archive toolbar */
.pp-toolbar { display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; margin-bottom:1rem; }
.pp-search { flex:1 1 240px; display:flex; align-items:center; gap:.5rem; border:1px solid var(--pp-line); border-radius:2rem; padding:.45rem .9rem; background:#fff; }
.pp-search input { border:0; outline:0; width:100%; font-size:.95rem; background:transparent; color:var(--pp-ink); }
.pp-select { border:1px solid var(--pp-line); border-radius:2rem; padding:.45rem .9rem; background:#fff; font-size:.9rem; color:var(--pp-ink); }
.pp-filters { display:flex; gap:.4rem; flex-wrap:wrap; }
.pp-filter { border:1px solid var(--pp-line); background:#fff; color:var(--pp-ink); border-radius:2rem; padding:.35rem .8rem; font-size:.82rem; font-weight:600; cursor:pointer; }
.pp-filter[aria-pressed="true"] { background:var(--pp-accent); border-color:var(--pp-accent); color:#fff; }
.pp-status { font-size:.85rem; color:var(--pp-muted); margin:.25rem 0 .75rem; }
.pp-grid > li[hidden] { display:none; }

/* Article page strip */
.pp-strip { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:0 0 1rem; font-size:.85rem; }
.pp-strip__hub { display:inline-flex; align-items:center; gap:.35rem; padding:.35rem .75rem; border-radius:2rem; background:#ecfeff; border:1px solid #a5f3fc; color:#155e75; text-decoration:none; font-weight:600; }
.pp-strip__sep { color:#94a3b8; }
.pp-strip .pp-chip { padding:.3rem .7rem; font-size:.8rem; }
.pp-strip__people { display:inline-flex; align-items:center; gap:.4rem; flex-wrap:wrap; color:#64748b; }
.pp-related { margin-top:2.5rem; }
.pp-related .pp-h2 { font-size:1.35rem; margin-bottom:1rem; }

/* Person page */
.pp-profile { display:grid; gap:2rem; grid-template-columns:minmax(220px,300px) 1fr; align-items:start; }
@media (max-width:760px) { .pp-profile { grid-template-columns:1fr; } .pp-profile .pp-portrait { max-width:280px; } }
.pp-profile__intro { font-size:1.05rem; line-height:1.7; }
.pp-profile__source { font-size:.85rem; color:var(--pp-muted); }
.pp-profile__main { display:block; padding:1rem 1.25rem; border:1px solid var(--pp-accent-line); background:var(--pp-accent-soft); border-radius:var(--pp-radius); text-decoration:none; color:var(--pp-ink); margin:1.25rem 0; }
.pp-profile__main strong { display:block; color:var(--pp-accent); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:.25rem; }
.pp-notice { border-left:3px solid #94a3b8; padding:.5rem .9rem; background:#f8fafc; font-size:.85rem; color:var(--pp-body); margin:0 0 1rem; }
