/* PHN Catalog: deliberately plain. Identity v2.2: all type PHN Black (#333132),
   gray only for hairline rules, no filled boxes, no reversed type. */
.phn-cat-item { max-width: 52rem; }
.phn-cat-labels,
.phn-cat-card-meta { font-size: 0.875em; letter-spacing: 0.02em; color: #333132; margin: 0 0 0.5em; }
.phn-cat-labels a { color: inherit; }
.phn-cat-title { margin: 0 0 0.35em; }
.phn-cat-byline { color: #333132; margin: 0 0 1.5em; }
.phn-cat-video { position: relative; aspect-ratio: 16 / 9; margin: 0 0 1.5em; background: #000; }
.phn-cat-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.phn-cat-premium { border: 1px solid #a6a6a6; padding: 1.25em 1.5em; margin: 0 0 1.5em; }
.phn-cat-premium p { margin: 0 0 1em; }
.phn-cat-summary { font-size: 1.125em; margin: 0 0 1.25em; }
.phn-cat-h2 { font-size: 1.25em; margin: 1.75em 0 0.6em; }
.phn-cat-points { margin: 0 0 1.5em 1.25em; }
.phn-cat-points li { margin: 0 0 0.4em; }
.phn-cat-credit { border: 1px solid #a6a6a6; padding: 1em 1.5em 1.25em; margin: 1.75em 0; }
.phn-cat-credit .phn-cat-h2 { margin-top: 0.25em; }
.phn-cat-credit dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.3em 1.25em; margin: 0 0 1em; }
.phn-cat-credit dt { font-weight: 600; }
.phn-cat-credit dd { margin: 0; }
.phn-cat-note { color: #333132; margin: 0 0 0.9em; }
.phn-cat-button { display: inline-block; padding: 0.65em 1.35em; border: 2px solid #333132; background: transparent; color: #333132 !important; text-decoration: none !important; font-weight: 700; border-radius: 0; }
.phn-cat-button:hover,
.phn-cat-button:focus { text-decoration: underline !important; text-underline-offset: 0.2em; }
.phn-cat-transcript { border-top: 1px solid #d9d9d9; margin-top: 2em; padding-top: 1em; }
.phn-cat-transcript summary { cursor: pointer; color: #333132; }
.phn-cat-transcript[open] summary { margin-bottom: 1em; }
.phn-cat-topics { margin: 2em 0 0; }
.phn-cat-topics span { font-weight: 600; }
.phn-cat-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1rem; }
.phn-cat-card { border: 1px solid #d9d9d9; padding: 1em 1.25em; margin: 0; }
.phn-cat-card-title { font-size: 1.05em; margin: 0 0 0.4em; line-height: 1.3; }
.phn-cat-card-by { color: #333132; font-size: 0.9em; margin: 0; }
.phn-cat-card-flag { font-size: 0.8em; letter-spacing: 0.02em; color: #333132; margin: 0.6em 0 0; }
.phn-cat-count { font-weight: 400; color: #333132; font-size: 0.8em; }
.phn-cat-catalog .phn-cat-list { margin: 0 0 2.25em; }
.phn-cat-posts { margin: 0 0 1.5em 1.25em; }
.phn-cat-posts span { color: #333132; font-size: 0.9em; }
.phn-cat-topic { max-width: 60rem; }
.phn-cat-photo { margin: 0.5em 0 1.5em; }
.phn-cat-page-photo .phn-cat-photo { margin: 0 0 1em; }
.phn-cat-photo-img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; }
.phn-cat-photo figcaption { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 0.75em; color: #333132; margin-top: 0.5em; }
@media (max-width: 640px) { .phn-cat-photo-img { aspect-ratio: 4 / 3; } }
.phn-cat-card-title a,
.phn-cat-topics a,
.phn-cat-posts a { color: #333132 !important; text-decoration: none; }
.phn-cat-card-title a:hover,
.phn-cat-card-title a:focus,
.phn-cat-topics a:hover,
.phn-cat-posts a:hover { text-decoration: underline; text-underline-offset: 0.15em; }
/* "On this page" (0.2.1): as on Policy and Conferences, red links (the site's link color) between gray rules. */
.phn-cat-jump { font-size: 0.95em; border-top: 1px solid #a6a6a6; border-bottom: 1px solid #a6a6a6; padding: 0.6em 0; margin: 0 0 2em; }
.phn-cat-jump .phn-cat-count { font-size: 0.9em; }
.phn-cat-catalog .phn-cat-list[id] { scroll-margin-top: 140px; }
/* Side photo beside a page intro (0.2.1). */
.phn-cat-side-photo .phn-cat-photo { margin: 0; }
.phn-cat-side-photo .phn-cat-photo-img { aspect-ratio: 3 / 2; }
@media (max-width: 640px) { .phn-cat-side-photo .phn-cat-photo-img { aspect-ratio: 3 / 2; } .phn-cat-side-photo { margin-top: 1em; } }
/* Intro beside the side photo: the lede, as on Policy. */
.phn-cat-lede { font-size: 1.15em; }
.phn-cat-hub-list { margin: 0 0 1.5em 1.25em; }
.phn-cat-hub-list li { margin: 0 0 0.5em; }
.phn-cat-hub h2 { scroll-margin-top: 140px; margin: 1.6em 0 0.5em; }
/* The four groups within an area (0.2.3, styles 0.2.4): Courses, Premium sessions, Sessions for credit, Free sessions.
   The group heading is a small label under the area's heading; Avada styles h3 and h4 itself, so these carry the
   element in the selector to win. Cards in a group take h4 titles, drawn as the h3 card titles are elsewhere. */
.phn-cat-group { margin: 0 0 1.75em; }
.phn-cat-catalog h3.phn-cat-h3 { font-family: var(--h3_typography-font-family, inherit); font-size: 0.875rem; font-weight: 700; line-height: 1.3; letter-spacing: 0.08em; text-transform: uppercase; color: #333132; margin: 0 0 0.75em; padding-top: 0.9em; border-top: 1px solid #d9d9d9; }
.phn-cat-catalog .phn-cat-group:first-of-type h3.phn-cat-h3 { border-top: 0; padding-top: 0; }
.phn-cat-group-note { font-size: 0.9em; color: #333132; margin: -0.35em 0 0.9em; }
.phn-cat-catalog h4.phn-cat-card-title { font-family: var(--h3_typography-font-family, inherit); font-size: var(--h3_typography-font-size, 1.5rem); font-weight: var(--h3_typography-font-weight, 700); line-height: var(--h3_typography-line-height, 1.2); letter-spacing: var(--h3_typography-letter-spacing, 0); text-transform: none; margin: 0 0 0.4em; }
.phn-cat-catalog h4.phn-cat-card-title a { font: inherit; }
