/*
 * IDRA Congress Program
 *
 * Every color, size and shape below reads a CSS variable set from Congress,
 * Appearance. Scoped under .wc-programme, .wc-single and .wc-page so theme
 * styles are not affected and theme resets are less likely to reach in.
 */

.wc-programme,
.wc-single,
.wc-page {
	--wc-font: inherit;
	--wc-font-head: inherit;
	--wc-size: 15px;
	--wc-size-card: 18px;
	--wc-size-block: 13px;
	--wc-size-hero: 28px;
	--wc-label-case: uppercase;
	--wc-label-track: .06em;
	--wc-ink: #10222E;
	--wc-ink-2: #46606F;
	--wc-muted: #7C8F9A;
	--wc-line: #DCE5E9;
	--wc-line-2: #C3D2D9;
	--wc-paper: #FFFFFF;
	--wc-wash: #F3F6F7;
	--wc-link: #1F6E8C;
	--wc-heading: #10222E;
	--wc-tab-bg: #10222E;
	--wc-tab-text: #FFFFFF;
	--wc-accent: #1F6E8C;
	--wc-size-dayhead: 19px;
	--wc-radius: 12px;
	--wc-spine: 4px;
	--wc-lane-min: 150px;
	--wc-avatar: 72px;
	--wc-avatar-r: 50%;
	--wc-portrait: 220px;
	--wc-portrait-r: 14px;
	--wc-portrait-ar: 1 / 1;
	--wc-measure: 68ch;
	--wc-max: 1180px;
	--wc-shadow: none;
	--wc-border: 1px;
	--wc-pad: 18px;
	--wc-gap: 10px;
	--wc-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--wc-time-font: var(--wc-font);
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
	font-family: var(--wc-font);
	font-size: var(--wc-size);
	line-height: 1.55;
	color: var(--wc-ink);
}

.wc-programme *,
.wc-single *,
.wc-page * { box-sizing: border-box; }

/* Full bleed sections in a page builder let the program run edge to edge,
   which leaves a paragraph set to a readable measure stranded on the left of a
   very wide card. Centring the whole thing fixes the cause rather than the
   symptom. */
.wc-programme { max-width: var(--wc-max); margin-left: auto; margin-right: auto; }

.wc-programme h1, .wc-programme h2, .wc-programme h3,
.wc-page h1, .wc-page h2, .wc-page h3 { font-family: var(--wc-font-head); }

/* ------------------------------------------------------------------ shared */

.wc-badge {
	font-size: 11px;
	padding: 4px 10px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-weight: 600;
	line-height: 1.3;
}
.wc-empty {
	background: var(--wc-paper);
	border: 1px dashed var(--wc-line-2);
	border-radius: var(--wc-radius);
	padding: 32px;
	text-align: center;
	color: var(--wc-muted);
}
.wc-hidden { display: none !important; }
.wc-dim { opacity: .22; }
.wc-programme .dashicons,
.wc-single .dashicons,
.wc-page .dashicons { font-size: 15px; width: 15px; height: 15px; line-height: 1; vertical-align: -2px; }

/* --------------------------------------------------------------- day tabs */

.wc-programme .wc-days {
	display: flex;
	gap: 2px;
	background: var(--wc-paper);
	border: 1px solid var(--wc-line);
	border-radius: calc(var(--wc-radius) - 2px);
	padding: 4px;
	overflow-x: auto;
	margin: 0 0 14px;
	box-shadow: var(--wc-shadow);
}
.wc-programme .wc-day {
	flex: 1 0 auto;
	min-width: 112px;
	text-align: left;
	background: none;
	border: 0;
	border-radius: calc(var(--wc-radius) - 5px);
	padding: 9px 12px;
	cursor: pointer;
	color: var(--wc-ink-2);
	font: inherit;
	line-height: 1.3;
	transition: background .12s ease;
}
.wc-programme .wc-day:hover { background: var(--wc-wash); }
.wc-programme .wc-day .d { font-family: var(--wc-time-font, var(--wc-mono)); font-size: 12px; display: block; }
.wc-programme .wc-day .l { display: block; font-size: var(--wc-size); font-weight: 600; color: var(--wc-ink); font-family: var(--wc-font-head); }
.wc-programme .wc-day[aria-selected="true"] { background: var(--wc-ink); }
.wc-programme .wc-day[aria-selected="true"] .l,
.wc-programme .wc-day[aria-selected="true"] .d { color: var(--wc-paper); }
.wc-programme .wc-day:focus-visible { outline: 2px solid var(--wc-link); outline-offset: 2px; }

/* Underline tabs: date above, day name below, colored rule and pointer. */
.wc-programme .wc-days.wc-tabs-underline,
.wc-programme .wc-days.wc-tabs-plain {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	gap: 10px;
	margin-bottom: 22px;
	overflow: visible;
	overflow-x: auto;
}
.wc-tabs-underline .wc-day,
.wc-tabs-plain .wc-day {
	text-align: center;
	border-radius: 0;
	padding: 6px 14px 10px;
	background: transparent;
	position: relative;
	border-bottom: 3px solid transparent;
	transition: border-color .14s ease;
}
.wc-tabs-underline .wc-day:hover,
.wc-tabs-plain .wc-day:hover { background: transparent; }
.wc-tabs-underline .wc-day .d,
.wc-tabs-plain .wc-day .d {
	font-family: var(--wc-font-head);
	font-size: calc(var(--wc-size) + 3px);
	font-weight: 600;
	letter-spacing: -.01em;
	line-height: 1.2;
}
.wc-tabs-underline .wc-day .l,
.wc-tabs-plain .wc-day .l {
	font-size: calc(var(--wc-size) - 1px);
	font-weight: 500;
	margin-top: 3px;
	line-height: 1.3;
}
.wc-tabs-underline .wc-day::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -6px;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 6px solid transparent;
	border-right: 6px solid transparent;
	border-top: 6px solid transparent;
	pointer-events: none;
}
.wc-tabs-plain .wc-day { border-bottom-color: transparent !important; }
.wc-tabs-plain .wc-day[aria-selected="true"] .d,
.wc-tabs-plain .wc-day[aria-selected="true"] .l { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }

/* --------------------------------------------------------------- controls */

.wc-programme .wc-controls { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 14px; }
.wc-programme .wc-toggle { display: inline-flex; background: var(--wc-paper); border: 1px solid var(--wc-line); border-radius: calc(var(--wc-radius) - 4px); padding: 3px; }
.wc-programme .wc-toggle button { border: 0; background: none; padding: 6px 14px; border-radius: calc(var(--wc-radius) - 6px); cursor: pointer; font: inherit; font-size: 13px; color: var(--wc-ink-2); }
.wc-programme .wc-toggle button[aria-pressed="true"] { background: var(--wc-ink); color: var(--wc-paper); }
.wc-programme .wc-search { flex: 1; min-width: 200px; }
.wc-programme .wc-q { width: 100%; height: 38px; border: 1px solid var(--wc-line); border-radius: calc(var(--wc-radius) - 4px); background: var(--wc-paper); padding: 0 12px; font: inherit; font-size: 14px; color: var(--wc-ink); }
.wc-programme .wc-q:focus { outline: 2px solid var(--wc-link); outline-offset: -1px; }

.wc-programme .wc-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 16px; }
.wc-programme .wc-chips .lab { font-size: 12px; color: var(--wc-muted); text-transform: var(--wc-label-case); letter-spacing: var(--wc-label-track); }
.wc-programme .wc-chip { border: 1px solid var(--wc-line); background: var(--wc-paper); border-radius: 999px; padding: 4px 11px; font: inherit; font-size: 12.5px; cursor: pointer; color: var(--wc-ink); display: inline-flex; align-items: center; gap: 6px; }
.wc-programme .wc-chip .dot { width: 8px; height: 8px; border-radius: 50%; }
.wc-programme .wc-chip[aria-pressed="false"] { opacity: .42; }
.wc-programme .wc-linkbtn { background: none; border: 0; color: var(--wc-ink-2); font: inherit; font-size: 12.5px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

.wc-programme .wc-daylabel { display: none; }
.wc-programme .wc-searchsummary { display: none; }

/* Search mode: every day is revealed, list view is forced, day headings appear. */
.wc-programme.wc-searching .wc-daypanel[hidden] { display: block; }
.wc-programme.wc-searching .wc-view-grid { display: none !important; }
.wc-programme.wc-searching .wc-view-list { display: block !important; }
.wc-programme.wc-searching .wc-chips { display: none; }
.wc-programme.wc-searching .wc-toggle { opacity: .45; pointer-events: none; }
.wc-programme.wc-programme.wc-searching .wc-daylabel,
.wc-programme.wc-programme.wc-agenda-on .wc-daylabel {
	display: flex;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
	margin: 30px 0 14px;
	padding: 0 0 9px;
	border-bottom: 1px solid var(--wc-line-2);
	font-family: var(--wc-font-head);
	font-size: var(--wc-size-dayhead);
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: -.005em;
	color: var(--wc-heading);
	text-transform: none;
}
.wc-programme.wc-programme .wc-daylabel-text { color: var(--wc-heading); }
.wc-programme.wc-programme .wc-daylabel-hits {
	margin-left: auto;
	font-family: var(--wc-font);
	font-size: 12px;
	font-weight: 400;
	color: var(--wc-muted);
	letter-spacing: normal;
}
.wc-programme.wc-searching .wc-searchsummary {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	background: var(--wc-wash);
	border: 1px solid var(--wc-line);
	border-radius: calc(var(--wc-radius) - 4px);
	padding: 10px 14px;
	margin: 0 0 6px;
	font-size: 13.5px;
	color: var(--wc-ink-2);
}
.wc-programme .wc-clearsearch {
	margin-left: auto;
	background: var(--wc-paper);
	border: 1px solid var(--wc-line);
	border-radius: 999px;
	padding: 5px 13px;
	font: inherit;
	font-size: 12.5px;
	color: var(--wc-ink);
	cursor: pointer;
}
.wc-programme .wc-clearsearch:hover { border-color: var(--wc-line-2); }
.wc-programme .wc-noresults {
	display: none;
	background: var(--wc-paper);
	border: 1px dashed var(--wc-line-2);
	border-radius: var(--wc-radius);
	padding: 34px;
	text-align: center;
	color: var(--wc-muted);
}
.wc-programme.wc-noneleft .wc-noresults { display: block; }

.wc-programme .wc-view { display: none; }
.wc-programme[data-view="grid"] .wc-view-grid { display: block; }
.wc-programme[data-view="list"] .wc-view-list { display: block; }
.wc-programme .wc-gridnote { display: none; font-size: 13px; color: var(--wc-ink-2); background: var(--wc-paper); border: 1px solid var(--wc-line); border-radius: calc(var(--wc-radius) - 4px); padding: 10px 14px; margin: 0 0 12px; }

/* ------------------------------------------------------------------- grid */

.wc-programme .wc-gridscroll {
	overflow-x: auto;
	background: var(--wc-paper);
	border: var(--wc-border) solid var(--wc-line);
	border-radius: var(--wc-radius);
	padding: 14px 16px 18px;
	box-shadow: var(--wc-shadow);
}
.wc-programme .wc-grid { display: grid; gap: 0 6px; min-width: 860px; }
.wc-programme .wc-lane-band {
	border-radius: 5px;
	padding: 5px 10px;
	font-size: 11.5px;
	font-weight: 600;
	font-family: var(--wc-font-head);
	margin-bottom: 5px;
	display: flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
	overflow: hidden;
	text-transform: var(--wc-label-case);
	letter-spacing: var(--wc-label-track);
}
.wc-programme .wc-lane-name { font-size: 12px; color: var(--wc-ink-2); padding: 0 0 8px 2px; }
.wc-programme .wc-hourline { border-top: 1px solid var(--wc-line); pointer-events: none; }
.wc-programme .wc-halfline { border-top: 1px dashed var(--wc-line); opacity: .5; pointer-events: none; }
/* The time column pins to the left so times stay visible while scrolling wide grids. */
.wc-programme .wc-time {
	font-family: var(--wc-time-font, var(--wc-mono));
	font-size: 11px;
	color: var(--wc-muted);
	padding-top: 1px;
	font-variant-numeric: tabular-nums;
	position: sticky;
	left: 0;
	z-index: 3;
	background: var(--wc-paper);
	padding-right: 4px;
}
.wc-programme .wc-time.hr { color: var(--wc-ink-2); font-weight: 500; }

.wc-programme .wc-block {
	position: relative;
	border: 0;
	border-left: var(--wc-spine) solid;
	border-radius: 0 calc(var(--wc-radius) - 5px) calc(var(--wc-radius) - 5px) 0;
	padding: 6px 9px;
	overflow: hidden;
	text-decoration: none;
	display: block;
	box-shadow: none;
	transition: transform .12s ease, filter .12s ease;
}
.wc-programme .wc-block:hover { filter: brightness(.96); transform: translateY(-1px); }
.wc-programme .wc-block-link { display: block; height: 100%; color: inherit; text-decoration: none; }
.wc-programme .wc-block-link:hover { text-decoration: none; }
.wc-programme .wc-block-link:focus-visible { outline: 2px solid var(--wc-ink); outline-offset: 1px; }
.wc-programme .wc-block .t { font-family: var(--wc-time-font, var(--wc-mono)); font-size: 10.5px; opacity: .85; display: block; font-variant-numeric: tabular-nums; }
.wc-programme .wc-block .n { font-size: var(--wc-size-block); font-weight: 600; line-height: 1.3; margin: 2px 0 5px; display: block; color: var(--wc-ink); font-family: var(--wc-font-head); }
.wc-programme .wc-block.short .n { margin-bottom: 0; }
.wc-programme .wc-block.tiny { padding: 3px 8px; display: flex; align-items: center; }
.wc-programme .wc-block.tiny .n { margin: 0; font-size: calc(var(--wc-size-block) - 1.5px); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; }
.wc-programme .wc-av { display: flex; gap: 3px; align-items: center; flex-wrap: wrap; }
.wc-programme .wc-more { font-size: 10.5px; opacity: .8; }

.wc-programme .wc-clash {
	background: #FBF0E6;
	border: 1px solid #EBD3BC;
	border-radius: calc(var(--wc-radius) - 4px);
	padding: 10px 14px;
	margin: 0 0 12px;
	font-size: 13.5px;
	color: #7A4A1C;
}

/* A run of very short sessions, drawn as one block listing each item. */
.wc-programme .wc-block.wc-group { padding: 6px 9px; display: flex; flex-direction: column; }
.wc-programme .wc-group-list {
	display: flex;
	flex-direction: column;
	gap: 1px;
	margin-top: 4px;
	overflow: hidden;
	min-height: 0;
}
.wc-programme .wc-group-item {
	display: flex;
	gap: 7px;
	align-items: baseline;
	font-size: 11.5px;
	line-height: 1.35;
	color: var(--wc-ink);
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	border-radius: 3px;
	padding: 0 2px;
}
.wc-programme .wc-group-item:hover { background: rgba(255, 255, 255, .55); text-decoration: none; }
.wc-programme .wc-group-time {
	font-family: var(--wc-time-font, var(--wc-mono));
	font-size: 10px;
	opacity: .75;
	flex: 0 0 auto;
	font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------- personal agenda */

.wc-programme .wc-agenda-toggle {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: var(--wc-paper);
	border: 1px solid var(--wc-line);
	border-radius: calc(var(--wc-radius) - 4px);
	padding: 8px 14px;
	font: inherit;
	font-size: 13px;
	color: var(--wc-ink-2);
	cursor: pointer;
}
.wc-programme .wc-agenda-toggle .dashicons { color: var(--wc-muted); }
.wc-programme .wc-agenda-toggle[aria-pressed="true"] { background: var(--wc-ink); color: var(--wc-paper); border-color: var(--wc-ink); }
.wc-programme .wc-agenda-toggle[aria-pressed="true"] .dashicons { color: #F5C518; }
.wc-programme .wc-agenda-count {
	background: var(--wc-wash);
	color: var(--wc-ink);
	border-radius: 999px;
	padding: 1px 8px;
	font-size: 11.5px;
	font-weight: 600;
}
.wc-programme .wc-agenda-toggle[aria-pressed="true"] .wc-agenda-count { background: rgba(255,255,255,.2); color: #fff; }

.wc-programme .wc-agendabar {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	background: var(--wc-wash);
	border: 1px solid var(--wc-line);
	border-radius: calc(var(--wc-radius) - 4px);
	padding: 10px 14px;
	margin: 0 0 12px;
	font-size: 13.5px;
	color: var(--wc-ink-2);
}
.wc-programme .wc-agenda-ics {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--wc-paper);
	border: 1px solid var(--wc-line-2);
	border-radius: 999px;
	padding: 6px 14px;
	font-size: 13px;
	color: var(--wc-ink);
	text-decoration: none;
}
.wc-programme .wc-agenda-ics:hover { background: var(--wc-ink); color: var(--wc-paper); }
.wc-programme .wc-agenda-clear { background: none; border: 0; font: inherit; font-size: 12.5px; color: var(--wc-ink-2); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.wc-programme .wc-agenda-empty {
	background: var(--wc-paper);
	border: 1px dashed var(--wc-line-2);
	border-radius: var(--wc-radius);
	padding: 28px;
	text-align: center;
	color: var(--wc-muted);
	font-size: 13.5px;
	margin: 0 0 12px;
}
.wc-programme.wc-agenda-on .wc-chips { display: none; }

.wc-star {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 1px solid transparent;
	background: transparent;
	color: var(--wc-muted);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity .12s ease, background .12s ease;
}
.wc-card, .wc-block { position: relative; }
.wc-card:hover .wc-star,
.wc-block:hover .wc-star,
.wc-star:focus-visible,
.wc-star[aria-pressed="true"] { opacity: 1; }
.wc-star:hover { background: var(--wc-wash); border-color: var(--wc-line); }
.wc-star[aria-pressed="true"] { color: #E0A800; }
.wc-block .wc-star { top: 4px; right: 4px; width: 24px; height: 24px; }
.wc-block .wc-star .dashicons { font-size: 14px; width: 14px; height: 14px; }
@media (hover: none) {
	.wc-star { opacity: 1; }
}

/* ------------------------------------------------------------------- list */

.wc-programme .wc-slot { margin-bottom: 26px; }
.wc-programme .wc-slothead { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.wc-programme .wc-slothead .h { font-family: var(--wc-time-font, var(--wc-mono)); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.wc-programme .wc-slothead .r { flex: 1; height: 1px; background: var(--wc-line-2); }
.wc-programme .wc-slothead .c { font-size: 12px; color: var(--wc-muted); }

.wc-programme .wc-card {
	background: var(--wc-paper);
	border: var(--wc-border) solid var(--wc-line);
	border-left: var(--wc-spine) solid;
	border-radius: 0 var(--wc-radius) var(--wc-radius) 0;
	padding: var(--wc-pad);
	margin-bottom: var(--wc-gap);
	box-shadow: var(--wc-shadow);
	transition: transform .12s ease;
}
.wc-programme .wc-card:hover { transform: translateX(2px); }
/* Breaks are a rule with a label, not a full card, so a lunch does not carry
   the same visual weight as a ninety minute panel. */
.wc-programme .wc-break {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 2px 0 10px;
	padding: 0 4px;
}
.wc-programme .wc-break-rule { flex: 1; height: 1px; background: var(--wc-line); }
.wc-programme .wc-break-label {
	font-size: 12.5px;
	color: var(--wc-muted);
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
}
.wc-programme .wc-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 7px; }
.wc-programme .wc-room { font-size: 12.5px; color: var(--wc-ink-2); display: inline-flex; align-items: center; gap: 3px; }
.wc-programme .wc-theme { font-size: 12.5px; color: var(--wc-muted); }
.wc-programme .wc-card-title { font-size: var(--wc-size-card); font-weight: 600; margin: 0 0 5px; line-height: 1.3; font-family: var(--wc-font-head); }
.wc-programme .wc-card-title a { color: var(--wc-ink); text-decoration: none; }
.wc-programme .wc-card-title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.wc-programme .wc-desc { color: var(--wc-ink-2); font-size: calc(var(--wc-size) - .5px); margin: 0 0 10px; max-width: none; }
.wc-programme .wc-orgs { font-size: 13px; color: var(--wc-muted); margin: 0 0 10px; }

/* --------------------------------------------------------- speaker cards */

.wc-people {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(calc(var(--wc-avatar) + 56px), 1fr));
	gap: 18px;
	padding-top: 14px;
	border-top: 1px solid var(--wc-line);
	margin-top: 4px;
}
.wc-person { text-align: center; text-decoration: none; display: block; color: inherit; }
.wc-person .nm { font-size: 13.5px; font-weight: 600; display: block; margin-top: 9px; color: var(--wc-ink); font-family: var(--wc-font-head); }
.wc-person .rl { font-size: 12.5px; color: var(--wc-ink-2); line-height: 1.4; display: block; }
.wc-person .rx {
	font-family: var(--wc-time-font, var(--wc-mono));
	font-size: 10px;
	letter-spacing: var(--wc-label-track);
	text-transform: var(--wc-label-case);
	color: var(--wc-muted);
	display: block;
	margin-top: 4px;
}
.wc-person:hover .nm { text-decoration: underline; text-underline-offset: 3px; }
.wc-ava { border-radius: var(--wc-avatar-r); object-fit: cover; display: block; margin: 0 auto; }
.wc-init {
	border-radius: var(--wc-avatar-r);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
	background: var(--wc-wash);
	color: var(--wc-ink-2);
	font-weight: 600;
	font-family: var(--wc-font-head);
}

/* ---------------------------------------------------- session and speaker */

.wc-page { max-width: var(--wc-max); margin: 0 auto; padding: 32px 20px 64px; }
.wc-sheet {
	background: var(--wc-paper);
	border: var(--wc-border) solid var(--wc-line);
	border-radius: var(--wc-radius);
	overflow: hidden;
	box-shadow: var(--wc-shadow);
}

.wc-hero { padding: 30px 32px 32px; border-left: calc(var(--wc-spine) + 2px) solid var(--wc-track, var(--wc-ink)); }
.wc-hero-tinted .wc-hero { background: var(--wc-track-tint, var(--wc-wash)); }
.wc-hero-plain .wc-hero { background: var(--wc-paper); }
.wc-hero-bold .wc-hero { background: var(--wc-track, var(--wc-ink)); }
.wc-hero-bold .wc-hero-title,
.wc-hero-bold .wc-hero-lede,
.wc-hero-bold .wc-hero-lane,
.wc-hero-bold .wc-hero-code { color: #fff; }
.wc-hero-bold .wc-badge-hero { background: rgba(255,255,255,.22); color: #fff; }

.wc-hero-top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.wc-hero-lane { font-size: 12.5px; color: var(--wc-ink-2); }
.wc-hero-code { margin-left: auto; font-family: var(--wc-time-font, var(--wc-mono)); font-size: 12px; color: var(--wc-muted); }
.wc-badge-hero { background: var(--wc-paper); color: var(--wc-track, var(--wc-ink)); }
.wc-hero-title {
	font-size: clamp(24px, var(--wc-size-hero), 44px);
	font-weight: 600;
	line-height: 1.12;
	letter-spacing: -.02em;
	margin: 0 0 12px;
	color: var(--wc-ink);
	max-width: 38ch;
	text-wrap: balance;
}
.wc-hero-lede { font-size: calc(var(--wc-size) + 3px); line-height: 1.6; color: var(--wc-ink-2); margin: 0; max-width: var(--wc-measure); text-wrap: pretty; }

.wc-factstrip { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); border-top: 1px solid var(--wc-line); }
.wc-fact { padding: 14px 20px; border-right: 1px solid var(--wc-line); }
.wc-fact:last-child { border-right: 0; }
.wc-fact-wide { grid-column: span 2; }
.wc-fact-label {
	display: block;
	font-size: 11px;
	letter-spacing: var(--wc-label-track);
	text-transform: var(--wc-label-case);
	color: var(--wc-muted);
	margin-bottom: 5px;
}
.wc-fact-main { display: block; font-size: 14px; color: var(--wc-ink); }
.wc-fact-big { display: block; font-size: 18px; font-weight: 600; color: var(--wc-ink); font-variant-numeric: tabular-nums; font-family: var(--wc-font-head); }
.wc-fact-sub { display: block; font-size: 13px; color: var(--wc-ink-2); }

.wc-body { padding: 26px 32px; border-top: 1px solid var(--wc-line); color: var(--wc-ink-2); }
.wc-body p { margin: 0 0 1em; max-width: var(--wc-measure); font-size: calc(var(--wc-size) + 1px); line-height: 1.7; }
.wc-body p:last-child { margin-bottom: 0; }

.wc-section { padding: 26px 32px; border-top: 1px solid var(--wc-line); }
.wc-section-label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--wc-label-track);
	text-transform: var(--wc-label-case);
	color: var(--wc-muted);
	margin: 0 0 14px;
}
.wc-section .wc-people { border-top: 0; padding-top: 0; margin-top: 0; }

.wc-prognav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	padding: 18px 28px;
	border-top: 1px solid var(--wc-line);
	background: var(--wc-wash);
}
.wc-prognav-item {
	text-decoration: none;
	border: 1px solid var(--wc-line);
	background: var(--wc-paper);
	border-radius: calc(var(--wc-radius) - 4px);
	padding: 11px 14px;
	display: block;
	transition: border-color .12s ease;
}
.wc-prognav-item:hover { border-color: var(--wc-line-2); }
.wc-prognav-next { text-align: right; }
.wc-prognav-label { display: block; font-size: 11px; color: var(--wc-muted); margin-bottom: 3px; }
.wc-prognav-title { display: block; font-size: 13.5px; font-weight: 600; color: var(--wc-ink); line-height: 1.35; }

.wc-page-actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	padding: 16px 28px;
	border-top: 1px solid var(--wc-line);
}
.wc-star-inline {
	position: static;
	width: auto;
	height: auto;
	border-radius: 999px;
	border: 1px solid var(--wc-line-2);
	background: var(--wc-paper);
	padding: 8px 16px;
	gap: 7px;
	opacity: 1;
	font: inherit;
	font-size: 13.5px;
	color: var(--wc-ink);
}
.wc-star-inline[aria-pressed="true"] { border-color: #E0A800; color: #8a6400; }
.wc-cal {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	border: 1px solid var(--wc-line-2);
	border-radius: 999px;
	padding: 8px 16px;
	font-size: 13.5px;
	color: var(--wc-ink);
	text-decoration: none;
	background: var(--wc-paper);
}
.wc-cal:hover { background: var(--wc-ink); color: var(--wc-paper); }

.wc-backlink { padding: 14px 28px; border-top: 1px solid var(--wc-line); margin: 0; }
.wc-backlink a { font-size: 13.5px; color: var(--wc-accent); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.wc-backlink a:hover { text-decoration: underline; text-underline-offset: 3px; }

.wc-profile {
	display: grid;
	grid-template-columns: var(--wc-portrait) minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	padding: 32px;
}
.wc-profile-banner .wc-profile {
	background: var(--wc-track-tint, var(--wc-wash));
	border-left: calc(var(--wc-spine) + 2px) solid var(--wc-track, var(--wc-ink));
}
.wc-profile-side .wc-profile { background: var(--wc-paper); border-bottom: 1px solid var(--wc-line); }
.wc-profile-center .wc-profile {
	grid-template-columns: minmax(0, 1fr);
	justify-items: center;
	text-align: center;
	background: var(--wc-track-tint, var(--wc-wash));
	padding: 40px 32px 34px;
}
.wc-profile-center .wc-profile-links { justify-content: center; }
.wc-profile-center .wc-profile-country { justify-content: center; }
.wc-profile-photo { width: var(--wc-portrait); }
.wc-profile-photo img,
.wc-profile-initials {
	width: var(--wc-portrait);
	aspect-ratio: var(--wc-portrait-ar);
	height: auto;
	border-radius: var(--wc-portrait-r);
	object-fit: cover;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wc-wash);
	color: var(--wc-ink-2);
	font-size: calc(var(--wc-portrait) / 4);
	font-weight: 600;
	box-shadow: 0 1px 2px rgba(16,34,46,.08), 0 10px 26px rgba(16,34,46,.10);
}
.wc-profile-text { min-width: 0; }
.wc-profile-billing {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--wc-label-track);
	text-transform: var(--wc-label-case);
	color: var(--wc-track, var(--wc-ink-2));
	margin: 0 0 6px;
}
.wc-profile-name {
	font-size: clamp(26px, calc(var(--wc-size-hero) + 6px), 46px);
	font-weight: 600;
	margin: 0 0 8px;
	line-height: 1.08;
	letter-spacing: -.02em;
	text-wrap: balance;
}
.wc-profile-country { font-size: 13.5px; color: var(--wc-ink-2); margin: 6px 0 0; display: flex; align-items: center; gap: 5px; }
.wc-profile-role { font-size: calc(var(--wc-size) + 3px); color: var(--wc-ink); margin: 0; line-height: 1.35; }
.wc-profile-org { font-size: calc(var(--wc-size) + 1px); color: var(--wc-ink-2); margin: 3px 0 0; line-height: 1.4; }
.wc-profile-links { margin: 14px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }
.wc-profile-links a {
	font-size: 13px;
	color: var(--wc-ink);
	text-decoration: none;
	background: var(--wc-paper);
	border: 1px solid var(--wc-line);
	border-radius: 999px;
	padding: 6px 13px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: border-color .12s ease;
}
.wc-profile-links a:hover { border-color: var(--wc-line-2); }

.wc-statstrip { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); border-top: 1px solid var(--wc-line); }
.wc-stat { padding: 16px 20px; border-right: 1px solid var(--wc-line); }
.wc-stat:last-child { border-right: 0; }
.wc-stat-wide { grid-column: span 2; }
.wc-stat-n { display: block; font-size: 30px; font-weight: 600; line-height: 1.1; color: var(--wc-ink); font-family: var(--wc-font-head); }
.wc-stat-l {
	display: block;
	font-size: 11px;
	letter-spacing: var(--wc-label-track);
	text-transform: var(--wc-label-case);
	color: var(--wc-muted);
	margin-bottom: 4px;
}
.wc-stat-n + .wc-stat-l { margin: 2px 0 0; }
.wc-stat-t { display: block; font-size: 14px; color: var(--wc-ink); }
.wc-chipline { display: flex; flex-wrap: wrap; gap: 6px; }
.wc-topic {
	font-size: 12px;
	background: var(--wc-wash);
	border: 1px solid var(--wc-line);
	border-radius: 999px;
	padding: 3px 10px;
	color: var(--wc-ink-2);
}
.wc-mini { position: relative; }
.wc-mini-role {
	margin-left: auto;
	align-self: center;
	font-size: 10px;
	letter-spacing: var(--wc-label-track);
	text-transform: var(--wc-label-case);
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 999px;
	white-space: nowrap;
}

.wc-mini {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	border: 1px solid var(--wc-line);
	border-left: var(--wc-spine) solid;
	border-radius: 0 calc(var(--wc-radius) - 4px) calc(var(--wc-radius) - 4px) 0;
	padding: 12px 14px;
	margin-bottom: 8px;
	text-decoration: none;
	color: inherit;
	transition: transform .12s ease;
}
.wc-mini:hover { transform: translateX(2px); border-color: var(--wc-line-2); }
.wc-mini .mt { font-family: var(--wc-time-font, var(--wc-mono)); font-size: 11.5px; color: var(--wc-ink-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.wc-mini .mn { font-size: 14.5px; font-weight: 600; display: block; color: var(--wc-ink); font-family: var(--wc-font-head); }
.wc-mini .md { font-size: 12px; color: var(--wc-muted); }

/* The inline detail block, used when plugin templates are turned off. */
.wc-single { margin: 0 0 28px; }
.wc-single .wc-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; border-top: 1px solid var(--wc-line); border-bottom: 1px solid var(--wc-line); padding: 14px 0; margin: 14px 0 0; }
.wc-single .wc-facts dt { font-size: 12px; color: var(--wc-muted); margin: 0 0 3px; }
.wc-single .wc-facts dd { margin: 0; font-size: 14.5px; }
.wc-single .wc-sub { font-size: 13px; font-weight: 600; letter-spacing: var(--wc-label-track); text-transform: var(--wc-label-case); color: var(--wc-muted); margin: 24px 0 10px; }
.wc-single .wc-speaker-line { font-size: 16px; color: var(--wc-ink-2); margin: 0 0 8px; }

/* ------------------------------------------------------------ responsive */

@media (max-width: 1023px) {
	.wc-programme .wc-toggle { display: none; }
	.wc-programme .wc-gridnote { display: block; }
	.wc-programme .wc-view-grid { display: none !important; }
	.wc-programme .wc-view-list { display: block !important; }
	.wc-people { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 12px; }
	.wc-prognav { grid-template-columns: 1fr; }
	.wc-prognav-next { text-align: left; }
	.wc-profile { grid-template-columns: minmax(0, 1fr); justify-items: start; gap: 22px; }
	.wc-profile-photo, .wc-profile-photo img, .wc-profile-initials { width: min(var(--wc-portrait), 60vw); }
	.wc-fact-wide { grid-column: span 1; }
	.wc-stat-wide { grid-column: span 1; }
	.wc-mini { flex-wrap: wrap; }
	.wc-mini-role { margin-left: 0; }
}

@media (max-width: 600px) {
	.wc-page { padding: 16px 12px 40px; }
	.wc-hero { padding: 20px; }
	.wc-body, .wc-section, .wc-prognav, .wc-backlink { padding-left: 20px; padding-right: 20px; }
	.wc-profile { padding: 20px; gap: 16px; }
	.wc-profile-photo, .wc-profile-photo img, .wc-profile-initials { width: min(160px, 46vw); font-size: 34px; }
	.wc-body, .wc-section { padding-left: 20px; padding-right: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.wc-programme *, .wc-page * { transition: none !important; }
}

/* Pocket program. Every day printed in time order, chrome removed, cards
   kept whole across page breaks. */
@media print {
	.wc-programme .wc-controls,
	.wc-programme .wc-chips,
	.wc-programme .wc-days,
	.wc-programme .wc-gridnote,
	.wc-programme .wc-agendabar,
	.wc-programme .wc-agenda-empty,
	.wc-programme .wc-searchsummary,
	.wc-star,
	.wc-prognav,
	.wc-backlink { display: none !important; }

	.wc-programme .wc-view-list { display: block !important; }
	.wc-programme .wc-view-grid { display: none !important; }
	.wc-programme .wc-daypanel[hidden],
	.wc-programme .wc-daypanel { display: block !important; }
	.wc-programme.wc-programme .wc-daylabel {
		display: flex !important;
		gap: 8px;
		align-items: baseline;
		border-bottom: 2px solid #000;
		padding-bottom: 4px;
		margin: 0 0 10px;
		font-size: 15pt;
		break-after: avoid;
		page-break-after: avoid;
	}
	.wc-programme .wc-daylabel-hits { display: none; }
	.wc-programme .wc-daypanel + .wc-daypanel { break-before: page; page-break-before: always; }

	.wc-programme { font-size: 9.5pt; color: #000; }
	.wc-programme .wc-card {
		border: 0;
		border-left: 3pt solid;
		border-radius: 0;
		box-shadow: none;
		padding: 6pt 0 6pt 8pt;
		margin: 0 0 6pt;
		break-inside: avoid;
		page-break-inside: avoid;
	}
	.wc-programme .wc-card-title { font-size: 11pt; margin-bottom: 2pt; }
	.wc-programme .wc-desc { font-size: 9pt; max-width: none; margin-bottom: 4pt; }
	.wc-programme .wc-slothead { break-after: avoid; page-break-after: avoid; margin-bottom: 4pt; }
	.wc-programme .wc-slot { margin-bottom: 10pt; }
	.wc-programme .wc-people { display: none; }
	.wc-programme .wc-badge { border: 0.5pt solid #666; background: none !important; color: #000 !important; }
	.wc-programme a { text-decoration: none; color: #000; }
	.wc-sheet { border: 0; box-shadow: none; }
}

/* ---------------------------------------------------------------------------
 * Theme armor.
 *
 * Themes and Elementor style bare `button` and `a` elements, often with high
 * specificity or !important, which bleeds their brand color into the
 * program controls. These rules repeat the wrapper class to raise
 * specificity and force the plugin's own palette back. This is the only place
 * !important is used, and it is confined to controls the plugin owns.
 * ------------------------------------------------------------------------ */

.wc-programme.wc-programme button,
.wc-programme.wc-programme .wc-chip,
.wc-programme.wc-programme .wc-linkbtn {
	-webkit-appearance: none;
	appearance: none;
	text-transform: none !important;
	letter-spacing: normal !important;
	text-shadow: none !important;
	min-height: 0;
	line-height: 1.3;
}

.wc-programme.wc-programme .wc-day {
	background: transparent !important;
	color: var(--wc-ink-2) !important;
	box-shadow: none !important;
}
.wc-programme.wc-programme .wc-day:hover { background: var(--wc-wash) !important; }
.wc-programme.wc-programme .wc-day .l { color: var(--wc-ink) !important; }
.wc-programme.wc-programme .wc-day .d { color: var(--wc-ink-2) !important; }
.wc-programme.wc-programme .wc-day[aria-selected="true"] { background: var(--wc-tab-bg) !important; }
.wc-programme.wc-programme .wc-day[aria-selected="true"] .l,
.wc-programme.wc-programme .wc-day[aria-selected="true"] .d { color: var(--wc-tab-text) !important; }

.wc-programme.wc-programme .wc-toggle button,
.wc-programme.wc-programme .wc-agenda-toggle {
	background: transparent !important;
	color: var(--wc-ink-2) !important;
	box-shadow: none !important;
}
.wc-programme.wc-programme .wc-toggle button[aria-pressed="true"],
.wc-programme.wc-programme .wc-agenda-toggle[aria-pressed="true"] {
	background: var(--wc-tab-bg) !important;
	color: var(--wc-tab-text) !important;
}
.wc-programme.wc-programme .wc-q:focus { outline-color: var(--wc-accent); }
.wc-programme.wc-programme .wc-day:focus-visible { outline-color: var(--wc-accent); }
.wc-programme.wc-programme .wc-chip {
	background: var(--wc-paper) !important;
	color: var(--wc-ink) !important;
}
.wc-programme.wc-programme .wc-card-title a,
.wc-programme.wc-programme .wc-block-link,
.wc-programme.wc-programme .wc-person {
	color: var(--wc-ink) !important;
	text-decoration: none !important;
}
.wc-programme.wc-programme .wc-block .n { color: var(--wc-ink) !important; }
.wc-programme.wc-programme .wc-q {
	background: var(--wc-paper) !important;
	color: var(--wc-ink) !important;
	box-shadow: none !important;
}

.wc-page.wc-page .wc-profile-name,
.wc-page.wc-page .wc-hero-title,
.wc-page.wc-page .wc-section-label { color: var(--wc-heading); }
.wc-page.wc-page .wc-backlink a,
.wc-page.wc-page .wc-profile-links a { color: var(--wc-accent) !important; }
.wc-page.wc-page .wc-mini,
.wc-page.wc-page .wc-person,
.wc-page.wc-page .wc-prognav-item { text-decoration: none !important; }


/* ---------------------------------------------------------------------------
 * Figures.
 *
 * Times, session codes and durations render in the chosen face with tabular
 * figures, so columns of times still line up without a monospace face. The
 * monospace option remains available under Appearance.
 * ------------------------------------------------------------------------ */

.wc-programme .wc-day .d,
.wc-programme .wc-block .t,
.wc-programme .wc-slothead .h,
.wc-programme .wc-time,
.wc-mini .mt,
.wc-hero-code,
.wc-fact-big,
.wc-stat-n {
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
	letter-spacing: var(--wc-num-space, .01em);
}

/* Slightly larger, because a proportional face reads smaller than monospace. */
.wc-programme .wc-block .t { font-size: 11px; }
.wc-programme .wc-slothead .h { font-size: 15.5px; }
.wc-mini .mt { font-size: 12.5px; }
.wc-hero-code { font-size: 12.5px; }
.wc-programme .wc-time { font-size: 11.5px; }
