/* Conffab refresh: reusable cards, actions, navigation and content UI. */
body.cf-style-refresh nav.signup ul,
body.cf-style-refresh #signup-options ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cf-space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

body.cf-style-refresh nav.signup a,
body.cf-style-refresh #signup-options a,
body.cf-style-refresh a.secondary-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.7rem 1.15rem;
	border: 1px solid var(--cf-border-strong);
	border-radius: var(--cf-radius-pill);
	background: var(--cf-surface);
	color: var(--cf-ink) !important;
	font-size: 0.95rem;
	font-weight: 650;
	text-decoration: none;
}

body.cf-style-refresh nav.signup li:first-child a,
body.cf-style-refresh #signup-options li:first-child a {
	border-color: var(--cf-brand);
	background: var(--cf-brand);
	color: var(--cf-on-brand) !important;
}

body.cf-style-refresh nav.signup a:hover,
body.cf-style-refresh #signup-options a:hover,
body.cf-style-refresh a.secondary-button:hover {
	border-color: var(--cf-brand);
	transform: translateY(-1px);
	box-shadow: var(--cf-shadow-sm);
}

body.cf-style-refresh .presentations-archive ul.row,
body.cf-style-refresh .videos-list,
body.cf-style-refresh .latest-videos,
body.cf-style-refresh .related-videos,
body.cf-style-refresh .video-list,
body.cf-style-refresh .slides,
body.cf-style-refresh .video-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--cf-space-4) var(--cf-space-3);
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.cf-style-refresh .presentation {
	min-width: 0;
	width: auto;
	margin: 0;
	padding: 0;
}

body.cf-style-refresh .presentation .video-thumbnail {
	position: relative;
	height: 100%;
	overflow: hidden;
	border: var(--cf-card-border-width) solid var(--cf-card-border-color);
	border-radius: var(--cf-radius-md);
	background: var(--cf-surface);
	box-shadow: var(--cf-shadow-sm);
	transition: transform var(--cf-transition), border-color var(--cf-transition), box-shadow var(--cf-transition);
}

body.cf-style-refresh .presentation .video-thumbnail:is(:hover, :focus-within) {
	border-color: var(--cf-card-border-hover);
	box-shadow: var(--cf-shadow-md);
	transform: translateY(-3px);
}

body.cf-style-refresh .video-thumbnail > a:first-child {
	display: block;
	overflow: hidden;
	background: var(--cf-surface-subtle);
}

body.cf-style-refresh .video-thumbnail .video-thumb {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	transition: transform 400ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

body.cf-style-refresh .video-thumbnail:is(:hover, :focus-within) .video-thumb {
	transform: scale(1.025);
}

body.cf-style-refresh .video-details {
	padding: var(--cf-space-3);
}

body.cf-style-refresh .presentation .video-thumbnail {
	display: flex;
	flex-direction: column;
	height: 100%;
}

body.cf-style-refresh .presentation .video-details {
	display: flex;
	flex: 1;
	flex-direction: column;
}

body.cf-style-refresh .video-details h2,
body.cf-style-refresh .video-details h3 {
	margin: 0;
	font-size: 1rem;
	letter-spacing: -0.01em;
	line-height: 1.22;
}

body.cf-style-refresh .video-details h3 {
	margin-top: 0.45rem;
	color: var(--cf-ink-soft);
	font-size: 0.88rem;
	font-weight: 500;
}

body.cf-style-refresh .video-details a {
	color: inherit;
	text-decoration: none;
}

body.cf-style-refresh .video-thumbnail .user-actions {
	position: absolute;
	z-index: 2;
	top: var(--cf-space-2);
	right: var(--cf-space-2);
	display: flex;
	align-items: center;
	gap: var(--cf-space-1);
	padding: 0;
	opacity: 1;
	transform: none;
	transition: opacity var(--cf-transition), transform var(--cf-transition);
}

body.cf-style-refresh .user-actions :where(.wpvs-add-to-list, .cf-video-download),
body.single-cfpt-presentation.cf-style-refresh .video-tools .user-actions > .cf-video-download,
body.single-cfpt-presentation.cf-style-refresh .video-tools .user-actions > .cf-download-control > .cf-video-download {
	display: grid;
	flex: 0 0 var(--cf-icon-button-size);
	width: var(--cf-icon-button-size) !important;
	height: var(--cf-icon-button-size) !important;
	min-width: var(--cf-icon-button-size) !important;
	min-height: var(--cf-icon-button-size) !important;
	margin: 0 !important;
	padding: 0.68rem !important;
	border: 2px solid var(--cf-brand) !important;
	border-radius: var(--cf-radius-sm) !important;
	background: var(--cf-brand) !important;
	box-shadow: 0 0.3rem 0.9rem rgb(14 10 28 / 28%);
	color: var(--cf-on-brand) !important;
	cursor: pointer;
	place-items: center;
}

@media (hover: hover) and (pointer: fine) {
	body.cf-style-refresh .video-thumbnail .user-actions {
		pointer-events: none;
		opacity: 0;
		transform: translateY(-0.25rem) scale(0.96);
	}

	body.cf-style-refresh .video-thumbnail:is(:hover, :focus-within) .user-actions {
		pointer-events: auto;
		opacity: 1;
		transform: none;
	}
}

body.cf-style-refresh .user-actions :where(.wpvs-add-to-list, .cf-video-download):hover {
	border-color: var(--cf-brand-strong);
	background: var(--cf-brand-strong);
	transform: none;
}

body.cf-style-refresh .user-actions .wpvs-add-to-list.remove {
	border-color: var(--cf-brand-strong);
	background: var(--cf-brand-strong);
}

body.cf-style-refresh .user-actions .wpvs-add-to-list:disabled {
	cursor: wait;
	opacity: 0.7;
	transform: none;
}

body.cf-style-refresh .user-actions .wpvs-add-to-list .dashicons {
	display: grid;
	width: var(--cf-icon-size);
	height: var(--cf-icon-size);
	line-height: 1;
	place-items: center;
}

body.cf-style-refresh .user-actions :where(.wpvs-add-to-list, .cf-video-download) :where(img, i, svg),
body.single-cfpt-presentation.cf-style-refresh .video-tools .user-actions > .cf-video-download :where(img, i, svg),
body.single-cfpt-presentation.cf-style-refresh .video-tools .user-actions > .cf-download-control > .cf-video-download :where(img, i, svg) {
	display: block;
	width: var(--cf-icon-size) !important;
	height: var(--cf-icon-size) !important;
	min-width: var(--cf-icon-size) !important;
	min-height: var(--cf-icon-size) !important;
	margin: 0;
	color: var(--cf-on-brand) !important;
	fill: currentColor;
	stroke: none;
	object-fit: contain;
}

/* Keep the inline download artwork on-brand in both colour modes. */
body.cf-style-refresh .user-actions .cf-video-download .cf-download-icon,
body.cf-style-refresh .user-actions .cf-video-download .cf-download-icon path {
	color: var(--cf-icon-button-ink) !important;
	fill: var(--cf-icon-button-ink) !important;
}

body.cf-style-refresh .user-actions :where(.wpvs-add-to-list, .cf-video-download) :where(img, i) {
	filter: brightness(0) invert(1) !important;
}

body.cf-style-refresh .user-actions .cf-download-control {
	position: relative;
	display: grid;
	flex: 0 0 var(--cf-icon-button-size);
	width: var(--cf-icon-button-size);
	place-items: center;
}

body.cf-style-refresh .user-actions .cf-video-download.is-preparing {
	cursor: wait;
}

body.cf-style-refresh .user-actions .cf-download-status:not([hidden]) {
	position: absolute;
	z-index: 4;
	top: calc(100% + 0.55rem);
	right: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	width: max-content;
	max-width: min(17rem, 75vw);
	color: var(--cf-ink-soft);
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.25;
	pointer-events: none;
	text-align: right;
}

body.cf-style-refresh .user-actions .cf-download-status-spinner:not([hidden]) {
	display: block;
	flex: 0 0 auto;
	width: 0.85rem;
	height: 0.85rem;
	border: 2px solid var(--cf-border-strong);
	border-top-color: var(--cf-brand);
	border-radius: 50%;
	animation: cf-download-spin 0.75s linear infinite;
}

@keyframes cf-download-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.cf-style-refresh .user-actions .cf-download-status-spinner {
		animation: none;
	}
}

body.cf-style-refresh .speakers,
body.cf-style-refresh .speakers-carousel,
body.cf-style-refresh .conferences-archive .container.row,
body.cf-style-refresh .conferences-list,
body.cf-style-refresh .ondemand-conferences,
body.cf-style-refresh .organizers-archive .container.row,
body.cf-style-refresh .organizers-container {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--cf-space-4);
	width: 100%;
}

body.cf-style-refresh .speaker,
body.cf-style-refresh .conference,
body.cf-style-refresh .unit.organizer,
body.cf-style-refresh .organizer-thumbnail {
	position: relative;
	min-width: 0;
	width: auto;
	margin: 0;
	overflow: hidden;
	border: var(--cf-card-border-width) solid var(--cf-card-border-color);
	border-radius: var(--cf-radius-md);
	background: var(--cf-surface);
	box-shadow: var(--cf-shadow-sm);
	transition: transform var(--cf-transition), border-color var(--cf-transition), box-shadow var(--cf-transition);
}

body.cf-style-refresh :where(.speaker, .conference, .unit.organizer, .organizer-thumbnail):hover {
	border-color: var(--cf-card-border-hover);
	box-shadow: var(--cf-shadow-md);
	transform: translateY(-3px);
}

body.cf-style-refresh :where(.speaker, .conference) > a {
	display: block;
	overflow: hidden;
	background: var(--cf-surface-subtle);
	text-decoration: none;
}

body.cf-style-refresh .speaker > a img,
body.cf-style-refresh .conference > a img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

body.cf-style-refresh .speaker > a img {
	aspect-ratio: 1 / 1;
	object-position: center 20%;
}

body.cf-style-refresh .speaker-details,
body.cf-style-refresh .conference-details,
body.cf-style-refresh .unit.organizer .details {
	padding: var(--cf-space-3);
}

body.cf-style-refresh .speaker-details h2,
body.cf-style-refresh .conference h3,
body.cf-style-refresh .unit.organizer h2 {
	margin: 0;
	font-size: 1.05rem;
	letter-spacing: -0.01em;
}

/* Speaker directory: a dense visual grid plus a quick-scanning list view. */
body.cf-style-refresh .cf-directory-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--cf-space-4);
	margin-bottom: var(--cf-space-4);
}

body.cf-style-refresh .cf-directory-header h1 {
	margin-bottom: 0;
	font-size: clamp(2.25rem, 4vw, 3.5rem);
}

body.cf-style-refresh .cf-directory-kicker {
	margin: 0 0 var(--cf-space-1);
	color: var(--cf-brand-strong);
	font-size: 0.76rem;
	font-weight: 750;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

body.cf-style-refresh .cf-directory-controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: var(--cf-space-2);
}

body.cf-style-refresh .cf-sort-form {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
}

body.cf-style-refresh .cf-sort-form label {
	margin: 0;
	color: var(--cf-ink-soft);
	font-size: 0.82rem;
	font-weight: 700;
}

/* Reusable flat select control. Keep the native element for keyboard and AT use. */
body.cf-style-refresh .cf-select-control {
	position: relative;
	display: inline-flex;
	align-items: center;
	height: var(--cf-control-height);
	border: var(--cf-control-border-width) solid var(--cf-border-strong);
	border-radius: var(--cf-radius-pill);
	background: var(--cf-surface-subtle);
	transition: border-color var(--cf-transition), box-shadow var(--cf-transition), background var(--cf-transition);
}

body.cf-style-refresh .cf-select-control::after {
	position: absolute;
	top: 50%;
	right: 0.9rem;
	width: 0.48rem;
	height: 0.48rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	color: var(--cf-ink-soft);
	content: "";
	pointer-events: none;
	transform: translateY(-68%) rotate(45deg);
}

body.cf-style-refresh .cf-select-control:focus-within {
	border-color: var(--cf-focus);
	box-shadow: var(--cf-shadow-focus);
}

body.cf-style-refresh .cf-select-control select {
	appearance: none;
	width: auto;
	height: 100%;
	margin: 0;
	padding: 0 2.35rem 0 0.85rem;
	border: 0;
	border-radius: inherit;
	background: transparent;
	color: var(--cf-ink);
	font-size: 0.84rem;
	font-weight: 650;
	line-height: 1;
	box-shadow: none;
	cursor: pointer;
}

body.cf-style-refresh .cf-select-control select:focus {
	outline: 0;
}

body.cf-style-refresh .cf-sort-form button {
	height: var(--cf-control-height);
	margin: 0;
	padding: 0 1rem;
	border: var(--cf-control-border-width) solid var(--cf-border-strong);
	border-radius: var(--cf-radius-pill);
	background: var(--cf-surface-subtle);
	color: var(--cf-ink) !important;
	font-size: 0.84rem;
	font-weight: 700;
	line-height: 1;
	box-shadow: none;
}

body.cf-style-refresh .cf-card-context {
	margin: auto 0 0;
	padding-top: 0.65rem;
	color: var(--cf-ink-faint);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.25;
	text-align: right;
}

body.cf-style-refresh .cf-card-context a {
	color: inherit;
	text-decoration: none;
}

body.cf-style-refresh .cf-card-context a:hover {
	color: var(--cf-brand-strong);
	text-decoration: underline;
}

body.cf-style-refresh .cf-watch-progress {
	height: 0.25rem;
	margin: -0.25rem 0 0;
	background: color-mix(in srgb, var(--cf-ink) 18%, transparent);
	overflow: hidden;
}

body.cf-style-refresh .cf-watch-progress > span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--cf-brand);
}

body.tax-topic.cf-style-refresh .cf-topic-sort {
	justify-content: flex-end;
	margin: calc(var(--cf-space-4) * -1) 0 var(--cf-space-4);
}

body.cf-style-refresh .cf-view-switcher {
	display: inline-flex;
	flex: 0 0 auto;
	height: var(--cf-control-height);
	gap: 0.2rem;
	padding: 0.2rem;
	border: var(--cf-control-border-width) solid var(--cf-border-strong);
	border-radius: var(--cf-radius-pill);
	background: var(--cf-surface-subtle);
	box-sizing: border-box;
}

body.cf-style-refresh .cf-view-switcher .cf-view-switcher__button {
	gap: 0.45rem;
	height: 100%;
	min-height: 0;
	padding: 0 0.8rem;
	border: 0;
	border-radius: var(--cf-radius-pill);
	background: transparent;
	color: var(--cf-ink-soft) !important;
	font-size: 0.84rem;
	box-shadow: none;
}

body.cf-style-refresh .cf-view-switcher .cf-view-switcher__button:hover {
	background: var(--cf-surface);
	color: var(--cf-ink) !important;
	transform: none;
	box-shadow: none;
}

body.cf-style-refresh .cf-view-switcher .cf-view-switcher__button[aria-pressed="true"] {
	background: var(--cf-brand);
	color: var(--cf-on-brand) !important;
	box-shadow: none;
}

body.cf-style-refresh .cf-view-switcher__icon {
	display: inline-block;
	width: 0.95rem;
	height: 0.95rem;
	background: currentColor;
}

body.cf-style-refresh .cf-view-switcher__icon--cards {
	background: linear-gradient(currentColor 0 0) 0 0 / 42% 42% no-repeat,
		linear-gradient(currentColor 0 0) 100% 0 / 42% 42% no-repeat,
		linear-gradient(currentColor 0 0) 0 100% / 42% 42% no-repeat,
		linear-gradient(currentColor 0 0) 100% 100% / 42% 42% no-repeat;
}

body.cf-style-refresh .cf-view-switcher__icon--list {
	position: relative;
	background: none;
}

body.cf-style-refresh .cf-view-switcher__icon--list::before {
	position: absolute;
	top: 50%;
	left: 0;
	width: 100%;
	height: 2px;
	background: currentColor;
	box-shadow: 0 -0.32rem 0 currentColor, 0 0.32rem 0 currentColor;
	content: "";
	transform: translateY(-50%);
}

body.cf-style-refresh .speakers-archive .speakers[data-view="cards"] {
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: var(--cf-space-3);
}

body.cf-style-refresh .speakers-archive .speaker {
	height: 100%;
}

body.cf-style-refresh .speakers-archive .speaker > a img {
	object-position: center 18%;
}

body.cf-style-refresh .speakers-archive .speaker-details {
	padding: 0.8rem 0.85rem 0.9rem;
}

body.cf-style-refresh .speakers-archive .speaker-details h2 {
	margin: 0;
	font-size: 0.96rem;
	line-height: 1.18;
}

body.cf-style-refresh .speakers-archive .speaker-details h2 a {
	color: var(--cf-ink);
	text-decoration: none;
}

body.cf-style-refresh .speakers-archive :where(.speaker-role, .speaker-organisation) {
	margin: 0.28rem 0 0;
	color: var(--cf-ink-soft);
	font-size: 0.78rem;
	line-height: 1.25;
}

body.cf-style-refresh .speakers-archive .speaker-organisation {
	margin-top: 0.12rem;
	color: var(--cf-ink-faint);
}

body.cf-style-refresh .speakers-archive :where(.speaker-role, .speaker-organisation):empty {
	display: none;
}

body.cf-style-refresh .cf-speaker-list-heading {
	display: none;
}

body.cf-style-refresh .cf-speaker-list-heading.is-visible {
	display: grid;
	grid-template-columns: 4rem minmax(12rem, 1.2fr) minmax(10rem, 1fr) minmax(10rem, 1fr);
	gap: var(--cf-space-3);
	padding: 0 var(--cf-space-3) 0.55rem;
	color: var(--cf-ink-muted);
	font-size: 0.7rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.cf-style-refresh .speakers-archive .speakers[data-view="list"] {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.45rem;
}

body.cf-style-refresh .speakers-archive .speakers[data-view="list"] .speaker {
	display: grid;
	grid-template-columns: 4rem minmax(0, 1fr);
	align-items: center;
	min-height: 4rem;
	border-radius: var(--cf-radius-sm);
}

body.cf-style-refresh .speakers-archive .speakers[data-view="list"] .speaker:hover {
	transform: translateX(2px);
}

body.cf-style-refresh .speakers-archive .speakers[data-view="list"] .speaker-portrait {
	height: 100%;
	border-radius: 0;
}

body.cf-style-refresh .speakers-archive .speakers[data-view="list"] .speaker > a img {
	width: 4rem;
	height: 4rem;
	aspect-ratio: 1;
	object-fit: cover;
}

body.cf-style-refresh .speakers-archive .speakers[data-view="list"] .speaker-details {
	display: grid;
	grid-template-columns: minmax(12rem, 1.2fr) minmax(10rem, 1fr) minmax(10rem, 1fr);
	align-items: center;
	gap: var(--cf-space-3);
	padding: 0.65rem var(--cf-space-3);
}

body.cf-style-refresh .speakers-archive .speakers[data-view="list"] :where(.speaker-role, .speaker-organisation) {
	display: block;
	margin: 0;
	font-size: 0.86rem;
}

body.cf-style-refresh .speakers-archive .speakers[data-view="list"] :where(.speaker-role, .speaker-organisation):empty::before {
	content: "\2014";
	color: var(--cf-ink-faint);
}

/* On-demand conference directory: full portrait artwork or compact scan rows. */
body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="cards"] {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	grid-auto-rows: max-content;
	align-items: start;
	align-content: start;
	gap: var(--cf-space-4) var(--cf-space-3);
}

body.cf-style-refresh .conferences-archive .cf-conference-directory .conference {
	display: flex;
	height: auto;
	align-self: stretch;
	flex-direction: column;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="cards"] .conference {
	min-height: 0;
	height: fit-content !important;
	align-self: start;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="cards"] .conference-artwork {
	position: relative;
	display: block !important;
	flex: 0 0 auto;
	min-height: 0;
	height: auto !important;
	aspect-ratio: 1008 / 1644;
	overflow: hidden;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="cards"] .conference-artwork img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100% !important;
	margin: 0;
	aspect-ratio: auto;
	object-fit: contain;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="cards"] .conference-details {
	flex: 0 0 auto;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="cards"] .conference-artwork-placeholder {
	display: grid;
	width: 100%;
	aspect-ratio: 1008 / 1644;
	place-items: center;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory .conference-details {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 0.85rem;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory .conference-details h2 {
	margin: 0;
	font-size: 1rem;
	line-height: 1.18;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory .conference-details h2 a {
	color: var(--cf-ink);
	text-decoration: none;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory :where(.conference-year, .conference-location) {
	display: block;
	margin-top: 0.35rem;
	color: var(--cf-ink-soft);
	font-size: 0.82rem;
	line-height: 1.3;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory .conference-location {
	min-width: 0;
	margin: 0;
	color: var(--cf-ink-faint);
}

body.cf-style-refresh .conferences-archive .cf-conference-directory .conference-location-line {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--cf-space-2);
	margin-top: auto;
	padding-top: 0.25rem;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory .conference-access-badge {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	min-height: 1.5rem;
	padding: 0.2rem 0.5rem;
	border-radius: var(--cf-radius-pill);
	background: var(--cf-accent);
	color: #fff;
	font-size: 0.66rem;
	font-weight: 750;
	letter-spacing: 0.04em;
	line-height: 1;
	text-transform: uppercase;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="cards"] :where(.conference-year, .conference-location):empty {
	display: none;
}

body.cf-style-refresh .cf-conference-list-heading {
	display: none;
}

body.cf-style-refresh .cf-conference-list-heading.is-visible {
	display: grid;
	grid-template-columns: 5rem minmax(14rem, 1fr) 5rem minmax(10rem, 0.8fr);
	gap: var(--cf-space-3);
	padding: 0 var(--cf-space-3) 0.55rem;
	color: var(--cf-ink-faint);
	font-size: 0.7rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.5rem;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] .conference {
	display: grid;
	grid-template-columns: 5rem minmax(0, 1fr);
	align-items: stretch;
	min-height: 8rem;
	border-radius: var(--cf-radius-sm);
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] .conference:hover {
	transform: translateX(2px);
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] .conference-artwork {
	height: 100%;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] :where(.conference-artwork img, .conference-artwork-placeholder) {
	display: grid;
	width: 5rem;
	height: auto;
	aspect-ratio: auto;
	place-items: center;
	object-fit: contain;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] .conference-artwork-placeholder {
	aspect-ratio: 1008 / 1644;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] .conference-details {
	display: grid;
	grid-template-columns: minmax(14rem, 1fr) 5rem minmax(10rem, 0.8fr);
	align-items: center;
	gap: var(--cf-space-3);
	padding: 0.65rem var(--cf-space-3);
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] .conference-location-line {
	margin: 0;
	padding: 0;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] :where(.conference-year, .conference-location) {
	display: block;
	margin: 0;
	font-size: 0.86rem;
}

body.cf-style-refresh .conferences-archive .cf-conference-directory[data-view="list"] :where(.conference-year, .conference-location):empty::before {
	content: "\2014";
	color: var(--cf-ink-faint);
}

body.cf-style-refresh .conferences-archive .cf-conference-directory .conference.premium::before {
	display: none;
}

body.cf-style-refresh .conference.premium::before {
	position: absolute;
	z-index: 2;
	top: var(--cf-space-2);
	left: var(--cf-space-2);
	content: "Premium";
	padding: 0.3rem 0.55rem;
	border-radius: var(--cf-radius-pill);
	background: var(--cf-accent);
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

body.cf-style-refresh .conference.premium > h3 {
	display: none;
}

body.cf-style-refresh .conference-wide {
	grid-column: span 2;
}

body.cf-style-refresh .conference-wide > a img {
	aspect-ratio: 16 / 6;
}

body.cf-style-refresh .unit.organizer {
	display: grid;
	grid-template-columns: 9rem minmax(0, 1fr);
	grid-template-rows: minmax(0, 1fr) auto;
	column-gap: var(--cf-space-4);
	padding: var(--cf-space-3);
}

body.cf-style-refresh .organizers-archive .container.row {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.cf-style-refresh .unit.organizer > a:first-child {
	display: grid;
	grid-row: 1 / -1;
	width: 9rem;
	min-height: 12rem;
	place-items: center;
	padding: var(--cf-space-3);
	border-radius: calc(var(--cf-radius-md) - 0.2rem);
	background: var(--cf-logo-field);
	color: var(--cf-logo-field-ink);
	text-decoration: none;
}

body.cf-style-refresh .unit.organizer h2 img {
	display: block;
	width: min(100%, 13rem);
	max-height: 5rem;
	object-fit: contain;
}

body.cf-style-refresh .unit.organizer .details {
	grid-column: 2;
	padding: 0;
	color: var(--cf-ink-soft);
	font-size: 0.9rem;
}

body.cf-style-refresh .unit.organizer .details p {
	display: -webkit-box;
	margin: 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
	line-clamp: 6;
}

body.cf-style-refresh .unit.organizer .more {
	grid-column: 2;
	justify-self: end;
	min-height: 2.25rem;
	margin-top: var(--cf-space-2);
	padding: 0.45rem 0.8rem;
	background: transparent;
	color: var(--cf-brand-strong) !important;
	font-size: 0.82rem;
}

body.cf-style-refresh ul.topics,
body.cf-style-refresh .video-tools .topics {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cf-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

body.cf-style-refresh ul.topics a,
body.cf-style-refresh a[rel="tag"] {
	display: inline-flex;
	padding: 0.3rem 0.65rem;
	border-radius: var(--cf-radius-pill);
	background: var(--cf-brand-soft);
	color: var(--cf-brand-strong);
	font-size: 0.78rem;
	font-weight: 650;
	text-decoration: none;
}

body.cf-style-refresh .navigation,
body.cf-style-refresh .pagination,
body.cf-style-refresh .nav-links {
	display: flex;
	justify-content: center;
	gap: var(--cf-space-1);
	width: 100%;
	margin-top: var(--cf-space-5);
}

body.cf-style-refresh :where(.navigation, .pagination, .nav-links) a,
body.cf-style-refresh :where(.navigation, .pagination, .nav-links) .current {
	display: grid;
	min-width: 2.5rem;
	min-height: 2.5rem;
	place-items: center;
	padding: 0.4rem 0.7rem;
	border: var(--cf-control-border-width) solid var(--cf-border);
	border-radius: var(--cf-radius-pill);
	background: var(--cf-surface);
	text-decoration: none;
}

/* Numeric pagination is a fixed target, not a content-sized pill. Keeping the
 * same inline and block size makes one- and two-digit pages equally circular. */
body.cf-style-refresh :where(.navigation, .pagination, .nav-links) .page-numbers:not(.prev):not(.next):not(.dots) {
	box-sizing: border-box;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0;
	border-radius: 50%;
	font-variant-numeric: tabular-nums;
}

body.cf-style-refresh :where(.navigation, .pagination, .nav-links) .page-numbers.dots {
	min-width: auto;
	min-height: 2.75rem;
	padding: 0 0.2rem;
	border: 0;
	background: transparent;
}

body.cf-style-refresh .nav-links > .page-numbers.current,
body.cf-style-refresh .pagination > .page-numbers.current,
body.cf-style-refresh .navigation .page-numbers.current,
body.cf-style-refresh :where(.navigation, .pagination, .nav-links) .current {
	border-color: var(--cf-brand) !important;
	background: var(--cf-brand) !important;
	color: var(--cf-on-brand) !important;
}

body.cf-style-refresh .alert,
body.cf-style-refresh .vow-details,
body.cf-style-refresh .pmpro_message,
body.cf-style-refresh .tml-messages,
body.cf-style-refresh .access-details {
	margin: 0 0 var(--cf-space-4);
	padding: var(--cf-space-3) var(--cf-space-4);
	border: 1px solid var(--cf-border);
	border-left: 0.3rem solid var(--cf-brand);
	border-radius: var(--cf-radius-sm);
	background: var(--cf-surface);
	color: var(--cf-ink);
}

body.cf-style-refresh .tabs,
body.cf-style-refresh .rvs-access-tabs,
body.cf-style-refresh [role="tablist"] {
	display: flex;
	gap: var(--cf-space-1);
	overflow-x: auto;
	padding: var(--cf-space-1);
	border: 1px solid var(--cf-border);
	border-radius: var(--cf-radius-pill);
	background: var(--cf-surface-subtle);
}

body.cf-style-refresh [role="tab"],
body.cf-style-refresh .rvs-access-tab {
	padding: 0.55rem 0.9rem;
	border: 0;
	border-radius: var(--cf-radius-pill);
	background: transparent;
	color: var(--cf-ink-soft);
}

body.cf-style-refresh [role="tab"][aria-selected="true"],
body.cf-style-refresh .rvs-access-tab.active {
	background: var(--cf-surface);
	box-shadow: var(--cf-shadow-sm);
	color: var(--cf-ink);
}
