/* Microsite2026 Programme */
.programme .pp-tabs { gap: .5rem; }
.programme .pp-tabs .nav-link { border: 1px solid var(--bs-border-color); color: var(--bs-body-color); text-align: left; line-height: 1.3; }
.programme .pp-tabs .nav-link.active { background: var(--primary, #0d6efd); border-color: var(--primary, #0d6efd); color: var(--header-text, #fff); }

.programme .pp-category { margin-top: 1.5rem; padding: .5rem 1rem; background: var(--bs-tertiary-bg, #f8f9fa); border-left: 4px solid var(--secondary, #fd7e14);
  font-weight: 700; font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; }

.programme .pp-session { display: grid; grid-template-columns: 170px 1fr; gap: 1.25rem; padding: 1.25rem 0; border-bottom: 1px dashed var(--bs-border-color); }
.programme .pp-time { font-weight: 600; color: var(--primary, #0d6efd); white-space: nowrap; }
.programme .pp-title { font-size: 1.1rem; font-weight: 700; margin-bottom: .5rem; }
.programme .pp-desc { color: var(--bs-secondary-color, #6c757d); margin-bottom: .75rem; }
.programme .pp-desc p:last-child { margin-bottom: 0; }

.programme .pp-badge { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 600; }
.programme .pp-hall { background: var(--bs-secondary-bg, #e9ecef); color: var(--bs-body-color); }
.programme .pp-venue-red { background: #fde2e1; color: #b42318; }
.programme .pp-venue-green { background: #dcfae6; color: #067647; }
.programme .pp-venue-blue { background: #d1e9ff; color: #175cd3; }

.programme .pp-group + .pp-group { margin-top: .75rem; }
.programme .pp-role { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--bs-secondary-color, #6c757d); margin-bottom: .4rem; }
/* Speaker photos large enough to recognise faces at a glance; top-anchored so heads are not cropped. */
.programme .pp-speakers { display: grid; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 1.25rem 2rem; }
.programme .pp-speaker { display: flex; align-items: center; gap: 1.25rem; }
.programme .pp-speaker img { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; object-position: center top; flex: none; border: 3px solid #fff; box-shadow: 0 0 0 1px var(--bs-border-color), 0 2px 8px rgba(0,0,0,.1); }
.programme .pp-speaker-name { font-weight: 600; font-size: 1.15rem; margin-bottom: .2rem; }
@media (max-width: 575.98px) {
  .programme .pp-speakers { grid-template-columns: 1fr; }
  .programme .pp-speaker { gap: 1rem; }
  .programme .pp-speaker img { width: 100px; height: 100px; }
}
.programme .pp-speaker-meta { font-size: .9rem; color: var(--bs-secondary-color, #6c757d); line-height: 1.4; }
.programme .pp-speaker.has-profile { cursor: pointer; border-radius: .5rem; }
.programme .pp-speaker.has-profile:hover .pp-speaker-name,
.programme .pp-speaker.has-profile:focus-visible .pp-speaker-name { color: var(--primary, #0d6efd); text-decoration: underline; }

.programme .pp-session-tools { display: flex; gap: .5rem; margin-top: .75rem; }
.pp-profile-photo { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; object-position: center top; }

/* Editor */
.pp-modal .pp-color { width: 26px; height: 26px; border-radius: 50%; border: 2px solid transparent; padding: 0; }
.pp-modal .pp-color.pp-venue-red { background: #dc3545; }
.pp-modal .pp-color.pp-venue-green { background: #3c9a5f; }
.pp-modal .pp-color.pp-venue-blue { background: #0d6efd; }
.pp-modal .pp-color.selected { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--bs-body-color); }
.pp-modal .pp-speaker-head { font-size: .95rem; margin-bottom: .25rem; }
.pp-modal .pp-speaker-row { padding: .4rem 0; }
.pp-modal .pp-speaker-row + .pp-speaker-row { border-top: 1px solid var(--bs-border-color); }

@media (max-width: 767.98px) {
  .programme .pp-session { grid-template-columns: 1fr; gap: .4rem; }
  .pp-modal .pp-speaker-row { border: 1px solid var(--bs-border-color); border-radius: .5rem; padding: .5rem; margin-bottom: .5rem; }
}
