/* Schedule of Events — uses the PWBI theme's colours and type (with fallbacks). */
.soe-schedule { --soe-navy: var(--navy, #0e2a47); --soe-green: var(--green, #1b6e4a); --soe-line: var(--line, #dfe5ec); --soe-muted: var(--muted, #56616e); --soe-live: var(--live, #c62828); }
.soe-schedule h2 { margin-top: 0; }
.soe-upcoming + .soe-past { margin-top: 56px; }
.soe-tz-note { color: var(--soe-muted); font-size: .95rem; margin-bottom: 1.4em; }
.soe-empty { font-size: 1.1rem; }
.soe-list { display: grid; gap: 18px; }
.soe-item { display: grid; grid-template-columns: 76px minmax(0, 1fr) 140px; gap: 20px; align-items: start; background: #fff; border: 1px solid var(--soe-line); border-radius: var(--radius, 10px); padding: 20px; box-shadow: 0 1px 2px rgba(0, 0, 0, .03); }
.soe-item--compact { grid-template-columns: 64px minmax(0, 1fr); padding: 14px 18px; }
.soe-datebox { display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 8px; background: var(--soe-navy); color: #fff; padding: 10px 4px; line-height: 1.1; text-align: center; }
.soe-mon { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold, #d9a21b); }
.soe-day { font-size: 1.9rem; font-weight: 700; font-family: var(--font-head, Georgia, serif); }
.soe-item--compact .soe-datebox { background: #eef3f8; color: var(--soe-navy); }
.soe-item--compact .soe-day { font-size: 1.5rem; }
.soe-item h3 { margin: 0 0 .25em; font-size: 1.3rem; }
.soe-item h3 a { text-decoration: none; }
.soe-item h3 a:hover { text-decoration: underline; }
.soe-item p { margin: 0 0 .35em; }
.soe-eyebrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--soe-green); }
.soe-topic { color: var(--ink, #1c2530); }
.soe-when { color: var(--soe-navy); font-weight: 600; font-size: .98rem; }
.soe-local { color: var(--soe-green); font-size: .95rem; font-weight: 600; }
.soe-speaker { color: var(--soe-muted); font-size: .95rem; }
.soe-item-thumb img { width: 140px; height: 140px; object-fit: cover; border-radius: 8px; }
.soe-badge { display: inline-block; border-radius: 999px; padding: 2px 10px; font-size: .72rem; letter-spacing: .08em; }
.soe-badge--cancelled { background: #fdecea; color: var(--soe-live); border: 1px solid #f3b8b3; }
.soe-badge--now { background: var(--soe-live); color: #fff; }
.soe-item--cancelled h3 a { text-decoration: line-through; text-decoration-thickness: 2px; color: var(--soe-muted); }
.soe-more { margin-top: 40px; text-align: center; }

/* The event's own page */
.soe-event { --soe-navy: var(--navy, #0e2a47); --soe-green: var(--green, #1b6e4a); --soe-line: var(--line, #dfe5ec); --soe-muted: var(--muted, #56616e); --soe-live: var(--live, #c62828); }
.soe-event h2 { font-size: 1.45rem; margin-top: 0; }
.soe-lead { font-size: 1.25rem; color: var(--soe-muted); }
.soe-box { border: 1px solid var(--soe-line); border-radius: var(--radius, 10px); padding: 22px 24px; margin: 0 0 26px; background: #fff; }
.soe-when-box { background: #f4f6f9; }
.soe-date { font-family: var(--font-head, Georgia, serif); font-size: 1.45rem; font-weight: 700; color: var(--soe-navy); margin: 0 0 .2em; }
.soe-time { font-weight: 600; font-size: 1.1rem; margin: 0 0 .4em; }
.soe-zones { border-collapse: collapse; margin: 12px 0 6px; min-width: 260px; }
.soe-zones caption { text-align: left; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--soe-muted); padding-bottom: 4px; }
.soe-zones th, .soe-zones td { text-align: left; padding: 4px 18px 4px 0; border-bottom: 1px solid var(--soe-line); font-size: .98rem; }
.soe-zones th { font-weight: 600; }
.soe-abbr { color: var(--soe-muted); font-size: .85rem; }
.soe-ics { margin: 10px 0 0; font-size: .95rem; }
.soe-join .btn { margin: 0; }
.soe-zoom-ids { margin: 10px 0 0; }
.soe-other { margin-top: 12px; }
.soe-flyer { margin: 0 0 26px; text-align: center; }
.soe-flyer img { max-width: 420px; width: 100%; margin: 0 auto; border-radius: 8px; box-shadow: var(--shadow, 0 6px 24px rgba(14, 42, 71, .08)); }
.soe-flyer figcaption { margin-top: 8px; font-size: .95rem; }
.soe-speaker-box { display: flex; gap: 20px; align-items: center; }
.soe-speaker-photo { width: 112px; height: 112px; object-fit: cover; border-radius: 50%; margin: 0 !important; flex: none; }
.soe-kicker { font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--soe-green); margin: 0 0 .2em; }
.soe-speaker-name { margin: 0 0 .15em; }
.soe-speaker-box .soe-speaker-title { margin: 0; color: var(--soe-muted); }
.soe-program, .soe-description, .soe-photos { margin: 0 0 30px; }
.soe-segments { list-style: none; padding: 0; margin: 0; }
.soe-segments li { padding: 9px 0; border-bottom: 1px solid var(--soe-line); }
.soe-seg-time { display: inline-block; min-width: 6.5em; font-weight: 700; color: var(--soe-navy); }
.soe-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.soe-photo-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; margin: 0 !important; }
.soe-notice--cancelled { border-left-color: var(--soe-live); background: #fdecea; }
.soe-back { margin-top: 30px; }
.soe-event .pv-gate { margin-top: 12px; }

@media (max-width: 760px) {
	.soe-item { grid-template-columns: 60px minmax(0, 1fr); gap: 14px; padding: 16px; }
	.soe-item-thumb { display: none; }
	.soe-day { font-size: 1.5rem; }
	.soe-speaker-box { flex-direction: column; align-items: flex-start; }
	.soe-box { padding: 18px; }
}
