/* The program introduction sits beside a two-by-two schedule. */
.homepage .program-slide { display: grid; grid-template-columns: minmax(115px, .7fr) minmax(0, 3fr); gap: 24px; align-items: center; }
.homepage .program-slide .panel-intro { align-self: center; min-width: 0; }
.homepage .program-slide .panel-heading-line { flex-wrap: wrap; gap: 8px; }
.homepage .program-slide .panel-intro h2 { font-size: clamp(21px, 1.7vw, 27px); line-height: 1.5; }
.homepage .program-context { flex-wrap: wrap; }
.homepage .program-board { margin: 0; min-width: 0; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.homepage .program-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; grid-auto-rows: 1fr; }
.homepage .program-row { padding: 16px; gap: 12px; border: 1px solid #e1e7f1; border-radius: 10px; background: #fff; box-shadow: 0 2px 8px #122d6104; transition: border-color .2s, box-shadow .2s, background .2s; }
.homepage .program-row:not(.program-hover-reset):hover { border-color: #5c83b7; background: #fbfdff; box-shadow: 0 6px 20px #122d611a; }
.program-card-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.homepage .program-card-heading .program-session { margin: 0; font-size: 10px; color: #365d93; font-weight: 750; letter-spacing: 0; white-space: nowrap; }
.program-card-heading time { color: #71809a; font-size: 9px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.homepage .program-card-body { display: flex; flex-direction: column; flex: 1; margin: 0; gap: 10px; min-width: 0; }
.homepage .program-row h3 { margin: 0; font-size: 14px; line-height: 1.55; letter-spacing: -.025em; height: 3.1em; min-height: 3.1em; flex-shrink: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.homepage .program-description { margin: 0; color: #75839a; font-size: 10px; line-height: 1.65; }
.homepage .program-row .speaker-profile { display: flex; flex-direction: row; align-items: center; gap: 12px; min-height: 72px; margin: auto 0 0; padding-top: 8px; }
.homepage .program-row .speaker-avatar { flex: 0 0 58px; width: 58px; height: 72px; border-radius: 8px; position: relative; }
.homepage .program-speaker { flex: 1; text-align: right; font-size: 13px; line-height: 1.5; }
.program-speaker-name { font-weight: inherit; }
.homepage .program-row .program-speaker-name { display: block; }
.homepage .program-speaker > span { font-size: 10px; margin-top: 4px; color: #73839b; }
.speaker-silhouette { width: 25px; height: 25px; border-radius: 50%; background: #afc1d9; position: relative; transform: translateY(-12px); }
.speaker-silhouette::after { content: ''; position: absolute; top: 31px; left: -11px; width: 47px; height: 35px; border-radius: 24px 24px 0 0; background: #afc1d9; }
.homepage .discussion-card { background: #eaf0f9; border-color: #d2deef; }
.homepage .discussion-card:not(.program-hover-reset):hover { background: #e1eaf8; border-color: #5c83b7; }
.discussion-roster { margin-top: auto; padding-top: 8px; border-top: 1px solid #cad8ec; }
.homepage .discussion-card .discussion-roster { margin-top: 0; }
.discussion-roster-label { display: block; color: #53709a; font-size: 9px; font-weight: 650; margin-bottom: 5px; }
.homepage .discussion-card .program-participants li { display: grid; gap: 6px 0; padding: 3px 0; border: 0; align-items: baseline; }
.participant-role { text-align: justify; text-align-last: justify; text-justify: inter-character; }
.homepage .discussion-card .participant-role { grid-column: 1; color: #57759e; font-size: 9px; white-space: nowrap; }
.homepage .discussion-card .program-participants strong { grid-column: 2; min-width: 0; font-size: 11px; line-height: 1.4; }
.homepage .discussion-card .program-participants small { font-size: 9px; font-weight: 450; }
.homepage .discussion-card .participant-organization { grid-column: 3; font-size: 9px; line-height: 1.4; color: #7484a0; overflow-wrap: anywhere; }
.discussion-pending { margin: 0; color: #73839b; font-size: 10px; }
.program-type-control { margin: 14px 0; max-width: 260px; }
.program-editor-row[data-program-type="discussion"] { background: #f3f6fb; border-color: #cbd8ec; }
.program-editor-row [hidden] { display: none !important; }
@media (min-width: 901px) {
  .homepage.compact-stage .program-slide { gap: 16px; padding: 22px; }
  .homepage.compact-stage .program-slide .panel-intro h2 { font-size: 23px; }
  .homepage.compact-stage .program-board { margin-top: 0; }
  .homepage.compact-stage .program-board-heading { padding-bottom: 4px; }
  .homepage.compact-stage .program-row { padding: 12px; gap: 10px; }
  .homepage.compact-stage .program-row h3 { font-size: 12px; }
  .homepage:is(.compact-stage, .tight-stage) .program-card-body { margin: 0; }
  .homepage.compact-stage .program-card-body { gap: 6px; }
  .homepage.compact-stage .program-row .speaker-profile { margin: auto 0 0; min-height: 58px; gap: 8px; }
  .homepage.compact-stage .program-row .speaker-avatar { flex-basis: 46px; width: 46px; height: 58px; }
  .homepage.compact-stage .discussion-roster { padding-top: 4px; }
  .homepage.compact-stage .discussion-roster-label { margin-bottom: 3px; }
  .homepage.compact-stage .discussion-card .program-participants li { padding: 0; }
  .homepage.tight-stage .program-slide { padding: 16px; gap: 14px; }
  .homepage.tight-stage .program-slide .panel-intro h2 { font-size: 20px; }
  .homepage.tight-stage .program-board-heading { padding-bottom: 4px; }
  .homepage.tight-stage .program-list { gap: 16px; }
  .homepage.tight-stage .program-row { padding: 10px; gap: 8px; }
  .homepage.tight-stage .program-row h3 { font-size: 11px; }
  .homepage.tight-stage .program-card-body { gap: 6px; }
  .homepage.tight-stage .discussion-roster { padding-top: 4px; }
  .homepage.tight-stage .discussion-roster-label { margin-bottom: 3px; }
  .homepage.tight-stage .discussion-card .program-participants li { padding: 0; }
}
@media (max-width: 1100px) and (min-width: 901px) {
  .homepage .program-slide { grid-template-columns: 1fr; gap: 12px; }
  .homepage .program-slide .panel-intro > p, .homepage .program-slide .sample-note { display: none; }
  .homepage .program-slide .panel-intro h2 { margin: 6px 0; font-size: 21px; }
  .homepage .program-slide .program-context { margin-top: 4px; }
}
@media (max-width: 900px) {
  .homepage .program-slide { grid-template-columns: 1fr; gap: 20px; }
  .homepage .program-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .homepage .program-list { grid-template-columns: 1fr; grid-auto-rows: auto; gap: 18px; }
  .homepage .program-row { padding: 18px; }
  .homepage .program-row h3 { font-size: 15px; }
  .homepage .discussion-card .program-participants li { padding: 3px 0; }
  .homepage .discussion-card .program-participants strong { font-size: 13px; }
  .homepage .discussion-card .participant-role, .homepage .discussion-card .participant-organization { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .homepage .program-row { transition: none; } }
.homepage .program-row { position: relative; cursor: pointer; }
.homepage .program-row:focus-visible { outline: 2px solid #5c83b7; outline-offset: 3px; }
.homepage .program-row .speaker-profile,
.homepage:is(.compact-stage, .tight-stage) .program-row .speaker-profile { margin: 4px 0 0; padding-top: 0; }
.program-card-note { margin-top: 0; border-top: 1px solid #dce5f1; padding-top: 8px; min-height: 1px; }
.program-card-note > span { display: block; font-size: 9px; color: #607ea8; margin-bottom: 3px; }
.program-card-note > p { font-size: 10px; line-height: 1.6; color: #7d8da7; white-space: pre-line; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0; }
.homepage.tight-stage .program-card-note { padding-top: 6px; }
.homepage.tight-stage .program-card-note > span { display: none; }
.program-hover-overlay { position: absolute; inset: 0; display: grid; place-items: center; border-radius: inherit; background: #ffffff88; backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); z-index: 2; opacity: 0; pointer-events: none; transition: opacity .18s; }
.program-hover-label { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; background: #122d61; color: #fff; font-size: 12px; font-weight: 650; line-height: 1.5; padding: 10px 20px; border-radius: 8px; box-shadow: 0 7px 24px #122d6130; opacity: 0; transition: opacity .18s; }
.program-row:not(.program-hover-reset):focus-visible :is(.program-hover-overlay,.program-hover-label) { opacity: 1; }
@media (hover: hover) and (pointer: fine) { .program-row:not(.program-hover-reset):hover :is(.program-hover-overlay,.program-hover-label) { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .program-hover-overlay, .program-hover-label { transition: none; } }
.program-detail-session { color: #6888b2; font-size: 10px; }
.program-dialog h2 { word-break: keep-all; overflow-wrap: anywhere; }
.homepage .program-dialog .program-speaker { text-align: left; font-size: 19px; }
.homepage .program-dialog .program-speaker > span { font-size: 12px; }
.program-dialog .discussion-roster { margin-top: 24px; padding-top: 18px; }
@media (max-width: 600px) {
  .program-dialog .program-participants li { row-gap: 8px; }
  .program-dialog .participant-organization { grid-column: 2; }
}
.program-participants { --role-name-gap: 24px; --name-organization-gap: 14px; display: grid; grid-template-columns: max-content max-content minmax(0, 1fr); }
.program-participants li, .homepage .discussion-card .program-participants li { grid-column: 1 / -1; grid-template-columns: subgrid; column-gap: 0; }
.participant-role { padding-right: var(--role-name-gap); letter-spacing: 0; }
.program-participants strong { padding-right: var(--name-organization-gap); }
.homepage .discussion-card .program-participants { --role-name-gap: 18px; --name-organization-gap: 10px; }
@media (max-width: 600px) { .program-dialog .program-participants { grid-template-columns: max-content minmax(0, 1fr); } }
@media (max-width: 600px) { .program-card-note > p { font-size: 11px; } }
@media (min-width: 901px) {
  .homepage .home-swiper .program-slide { height: var(--stage-min-height); min-height: 0; }
  .homepage .program-slide { grid-template-rows: minmax(0, 1fr); }
  .homepage .program-board { min-height: 0; }
  .homepage .program-list { flex: 1; min-height: 0; grid-template-rows: repeat(2, minmax(0, 1fr)); }
  .homepage .program-row, .homepage .program-card-body { min-height: 0; }
  .homepage .program-card-note:empty { padding-top: 0; }
  .homepage .program-card-note > p { -webkit-line-clamp: 2; }
  .homepage #program-intro { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
  .homepage .discussion-card .program-description { display: none; }
  .homepage .discussion-card .participant-organization { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
@media (min-width: 901px) and (max-height: 680px) {
  .homepage:is(.compact-stage,.tight-stage) .program-slide { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr); }
  .homepage:is(.compact-stage,.tight-stage) .program-slide .panel-intro { display: none; }
  .homepage:is(.compact-stage,.tight-stage) .program-row { padding: 6px; gap: 6px; }
  .homepage:is(.compact-stage,.tight-stage) .program-card-body { gap: 4px; }
  .homepage:is(.compact-stage,.tight-stage) .program-row .speaker-profile { min-height: 40px; }
  .homepage:is(.compact-stage,.tight-stage) .program-row .speaker-avatar { width: 32px; height: 40px; flex-basis: 32px; }
  .homepage:is(.compact-stage,.tight-stage) .program-card-note { padding-top: 4px; }
  .homepage:is(.compact-stage,.tight-stage) .program-card-note > span, .homepage:is(.compact-stage,.tight-stage) .discussion-roster-label { display: none; }
  .homepage:is(.compact-stage,.tight-stage) .program-card-note > p { -webkit-line-clamp: 1; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-card .program-participants li { padding: 0; }
  .homepage:is(.compact-stage,.tight-stage) .program-row h3 { font-size: 10px; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-roster { padding-top: 2px; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-card .program-participants strong { font-size: 10px; line-height: 1.3; }
  .homepage:is(.compact-stage,.tight-stage) .program-card-heading { line-height: 1.3; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-card .participant-role { line-height: 1.3; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-card .participant-organization { -webkit-line-clamp: 1; }
}
@media (min-width: 901px) and (max-width: 1100px) and (min-height: 681px) {
  .homepage .program-slide { grid-template-rows: auto minmax(0, 1fr); gap: 10px; }
  .homepage .program-slide .panel-intro .panel-heading-line, .homepage .program-slide .program-context { display: none; }
  .homepage .home-swiper .program-slide .panel-intro :is(.panel-heading-line,p,.program-context) { display: none; }
  .homepage .home-swiper .program-slide .panel-intro h2 { margin: 0; font-size: 18px; }
  .homepage:is(.compact-stage,.tight-stage) .program-row { padding: 10px; gap: 8px; }
  .homepage:is(.compact-stage,.tight-stage) .program-card-body { gap: 5px; }
  .homepage:is(.compact-stage,.tight-stage) .program-row .speaker-avatar { width: 40px; height: 48px; flex-basis: 40px; }
  .homepage:is(.compact-stage,.tight-stage) .program-row .speaker-profile { min-height: 48px; }
  .homepage:is(.compact-stage,.tight-stage) .program-row h3 { font-size: 11px; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-card .program-participants li { padding: 0; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-card .program-participants strong { font-size: 10px; line-height: 1.3; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-roster-label, .homepage:is(.compact-stage,.tight-stage) .program-card-note > span { display: none; }
  .homepage:is(.compact-stage,.tight-stage) .program-card-note { padding-top: 4px; }
  .homepage:is(.compact-stage,.tight-stage) .program-card-note > p { -webkit-line-clamp: 1; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-card .participant-role { line-height: 1.3; }
  .homepage:is(.compact-stage,.tight-stage) .discussion-card .participant-organization { -webkit-line-clamp: 1; }
}

/* Larger portraits, with less space between the topic and speaker. */
.homepage .presentation-card .program-card-body { gap: 4px; }
.homepage .presentation-card .speaker-profile { margin-top: 0; min-height: 94px; }
.homepage .presentation-card .speaker-avatar { width: 76px; height: 94px; flex-basis: 76px; }
@media (min-width: 901px) {
  .homepage:is(.compact-stage, .tight-stage) .presentation-card .program-card-body { gap: 2px; }
  .homepage:is(.compact-stage, .tight-stage) .presentation-card .speaker-profile { margin-top: 0; min-height: 74px; }
  .homepage:is(.compact-stage, .tight-stage) .presentation-card .speaker-avatar { width: 60px; height: 74px; flex-basis: 60px; }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .homepage:is(.compact-stage, .tight-stage) .presentation-card .speaker-profile { min-height: 64px; }
  .homepage:is(.compact-stage, .tight-stage) .presentation-card .speaker-avatar { width: 52px; height: 64px; flex-basis: 52px; }
}
@media (min-width: 901px) and (max-height: 680px) {
  .homepage:is(.compact-stage, .tight-stage) .presentation-card .speaker-profile { min-height: 50px; }
  .homepage:is(.compact-stage, .tight-stage) .presentation-card .speaker-avatar { width: 40px; height: 50px; flex-basis: 40px; }
}
.program-detail-header { display: grid; grid-template-columns: 180px minmax(0, 1fr); align-items: start; gap: 32px; margin-top: 14px; }
.program-detail-header .speaker-avatar { width: 180px; height: 224px; }
.program-detail-heading { min-width: 0; }
.program-detail-heading h2 { margin: 0 0 20px; font-size: 28px; line-height: 1.45; }
.program-detail-speaker { margin: 0; font-size: 21px; font-weight: 650; line-height: 1.5; }
.program-detail-organization { margin: 8px 0 0; font-size: 15px; color: #73839b; line-height: 1.6; }
@media (max-width: 600px) {
  .program-detail-header { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; }
  .program-detail-header .speaker-avatar { width: 96px; height: 120px; }
  .program-detail-heading h2 { font-size: 20px; margin-bottom: 14px; }
  .program-detail-speaker { font-size: 17px; }
  .program-detail-organization { font-size: 12px; }
}

/* Detail headings and schedule remain separate from the card titles. */
.homepage .program-dialog-toolbar .eyebrow { font-size: 16px; letter-spacing: 0; font-weight: 650; }
.program-detail-session { font-size: 18px; font-weight: 650; }
.program-detail-heading h2 { font-size: 30px; margin-bottom: 0; }
.program-detail-time { margin: 12px 0 0; font-size: 16px; font-weight: 600; line-height: 1.5; color: #6888b2; font-variant-numeric: tabular-nums; }
.program-detail-speaker { margin-top: 32px; }
@media (max-width: 600px) {
  .program-detail-session { font-size: 16px; }
  .program-detail-heading h2 { font-size: 22px; }
  .program-detail-time { font-size: 14px; }
  .program-detail-speaker { margin-top: 24px; }
}

.program-card-meta { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; }
.program-detail-badge { display: none; }
@media (max-width: 600px) {
  .program-detail-badge { display: inline-flex; align-items: center; padding: 2px 6px; border: 1px solid #cbd8ec; border-radius: 5px; background: #f3f6fb; color: #365d93; font-size: 9px; font-weight: 600; line-height: 1.4; white-space: nowrap; }
}
