/*
 * Conference Agenda Shortcode styles.
 *
 */

/* Generic */

/* font awesome social icon fix*/
.fa {
    font: normal normal normal 1.025rem / 1 FontAwesome;
}

.conference-agenda-wrapper {
	--border-radius: 6px;
	--soft-white: #fff6;
	color: white;
}

.conference-agenda-wrapper .content_body {
	min-height: unset;
}

.conference-agenda-wrapper .timestamp {
	background: #9F21E3;
	padding: 0.4em 0.9em;
	font-size: 0.9em;
	border-radius: var(--border-radius);
	font-weight: 500;
}

.conference-agenda-wrapper .agenda .hidden {
	display: none !important;
}

/* Cache-cleared banner */
@keyframes fadeout {
	from {
		opacity: 100;
	}

	to {
		opacity: 0;
		pointer-events: none;
	}
}

.conference-agenda-wrapper .system-message {
	text-decoration: underline;
	text-align: right;
	font-style: italic;
	position: absolute;
	right: 5vw;
	top: 10vh;
	z-index: 1000;
	animation: fadeout 1s 3s linear forwards;
}

/* Filters */
.conference-agenda-wrapper .filters {
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	align-items: flex-start;
}

.conference-agenda-wrapper .filters button {
	background: none;
	border: 1px solid var(--soft-white);
	color: white;
	padding: 0.25em 0.5em;
}

.conference-agenda-wrapper .filters button[data-selected="true"] {
	background: white;
	color: black;
}

.conference-agenda-wrapper .filters .buttons {
	flex: 0 1 auto;
	display: flex;
	gap: 0 0.25em;
}

.conference-agenda-wrapper .filters .buttons button {
	padding: 0 2em;
	border: none;
	padding: 0.25em 1.5em;
	border-radius: var(--border-radius);
}

.conference-agenda-wrapper .toggle-filters,
.conference-agenda-wrapper .quick-track-pill::after {
	background: #3e9ed8;
}

.conference-agenda-wrapper .quick-track-pill {
	text-align: center;
	border-radius: 0.5rem !important;
}

.conference-agenda-wrapper .quick-track-pill.active {
	border-radius: 0.25rem !important;
}

@media (max-width: 767px) {
	.conference-agenda-wrapper .quick-track-filters .d-flex {
		flex-direction: column;
		align-items: stretch;
	}

	.conference-agenda-wrapper .quick-track-pill {
		width: 100%;
	}
}

.conference-agenda-wrapper .clear-filters {
	background: #204492;
}

.conference-agenda-wrapper .filters .view-types {
	flex: 0 1 auto;
}

.conference-agenda-wrapper .filters .view-types button:first-child {
	border-radius: var(--border-radius) 0 0 var(--border-radius);
}

.conference-agenda-wrapper .filters .view-types button:last-child {
	border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

.conference-agenda-wrapper .filters select {
	display: none;
	background: transparent;
	border: 1px solid var(--soft-white);
	color: white;
}

.conference-agenda-wrapper .filters select option {
	color: black;
}


.conference-agenda-wrapper .filters .search {
	flex: 1 1 auto;
	margin-left: 5em;
	border: 1px solid var(--soft-white);
	border-radius: var(--border-radius);
	width: unset;
}

.conference-agenda-wrapper .filters .search .session-search {
	background: transparent;
	color: white;
	border: none;
	padding: 0 1ch;
	flex: 1 1 auto;
}

.conference-agenda-wrapper .filters .search .session-search::placeholder {
	color: gray;
}

.conference-agenda-wrapper .filters .search button {
	flex: 0 1 max-content;
	border: none;
}

.conference-agenda-wrapper .filters .date-options {
	flex: 1 0 100%;
	border-bottom: 1px solid var(--soft-white);
}

.conference-agenda-wrapper .filters .date-options button {
	border: none;
	background: none;
	color: white;
}

.conference-agenda-wrapper .filters .date-options button[data-selected="true"] {
	border-bottom: 2px solid white;
}

/* Agenda Parts */
.conference-agenda-wrapper .agenda ul {
	list-style: none;
	padding-left: 0;
}

.conference-agenda-wrapper .agenda__date-block-wrapper .date {
	margin: 0.75em 0 1.25em;
}

.conference-agenda-wrapper .agenda__hour-block-wrapper {
	display: grid;
	grid-template-columns: minmax(max-content, 15vw) 1fr;
	gap: 3em;
	align-items: start;
}

.conference-agenda-wrapper .agenda__hour-block-wrapper>.timestamp {
	text-align: center;
}

.conference-agenda-wrapper .agenda__hour-block {
	display: grid;
	gap: 1em;
	margin-bottom: 3em;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.conference-agenda-wrapper .agenda .no-results {
	padding: 3em;
	text-align: center;
	font-weight: 500;
	font-size: 1.25em;
}

/* Sessions */
.conference-agenda-wrapper .session {
	border: 1px solid var(--soft-white);
	border-radius: var(--border-radius);
	padding: 1rem;
	display: flex;
	flex-direction: column;
	scroll-margin-top: 3rem;
}

.conference-agenda-wrapper .agenda .session__timestamp .full-date {
	display: none;
}

.conference-agenda-wrapper .session__location {
	text-align: center;
	max-width: 15vw;
	margin: 0.5em auto 0;
}

.conference-agenda-wrapper .session__name {
	margin-bottom: 1em;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}

.conference-agenda-wrapper .session__toggle {
	transition: transform 0.25s linear;
	margin-left: 1rem;
	transform: rotate(-180deg);
}

.conference-agenda-wrapper .session__name.collapsed .session__toggle {
	transform: rotate(0deg);
}

.conference-agenda-wrapper .session:has(.session__abstract:empty) .session__name,
.conference-agenda-wrapper .session:has(.session__abstract:empty) .session__toggle {
	pointer-events: none;
}

.conference-agenda-wrapper .session:has(.session__abstract:empty) .session__toggle {
	display: none;
}

.conference-agenda-wrapper .session__abstract {
	margin-bottom: 1.5em;
	line-height: 1.35;
}

.conference-agenda-wrapper .session__speakers {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1em;
	justify-content: space-between;
}

.conference-agenda-wrapper .session__body {
	margin-bottom: 1em;
}

.conference-agenda-wrapper .session__footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	margin-top: auto;
	gap: 1em 2em;
	width: 100%;
}

.conference-agenda-wrapper .session__footer .footer__left,
.conference-agenda-wrapper .session__footer .footer__right {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}

.conference-agenda-wrapper .session__footer .footer__right {
	flex: 0 0 auto;
	text-align: right;
	font-size: 0.9em;
	font-weight: bold;
	margin-left: auto;
}

.conference-agenda-wrapper .session__sponsor img {
	display: inline-block;
	width: auto;
	max-height: 50px;
}

.conference-agenda-wrapper .session__type {
	color: #d192f3;
}

.conference-agenda-wrapper .session__tracks {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75ch;
}

.conference-agenda-wrapper .session__footer .footer__right img {
	padding: 7px;
	background: white;
	border-radius: var(--border-radius);
	margin-left: 0.5ch;
}

.conference-agenda-wrapper .session__tracks .track {
	background: #204492;
	padding: 0.25em 0.75em;
	font-size: 0.9em;
	border-radius: var(--border-radius);
}

/* Speakers */
.conference-agenda-wrapper .speaker {
	display: grid;
	column-gap: 0.75em;
	grid-template-columns: 75px 1fr;
	grid-template-areas:
		"s-img s-details"
}

.conference-agenda-wrapper .speaker__left-side {
	grid-area: s-img;
}

.conference-agenda-wrapper .speaker__left-side img {
	object-fit: cover;
	width: 75px;
	height: 75px;
	border-radius: var(--border-radius);
}

.conference-agenda-wrapper .speaker__right-side {
	grid-area: s-details;
}

.conference-agenda-wrapper .speaker__name {
	font-weight: bold;
	margin-bottom: 5px
}

.conference-agenda-wrapper .speaker__title,
.conference-agenda-wrapper .speaker__company {
	font-size: 0.9em;
}

.conference-agenda-wrapper .speaker__bio {
	display: none;
}

/* List View */
.conference-agenda-wrapper .agenda[data-view-type="list"] .timestamp {
	text-align: center;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .agenda__hour-block-wrapper {
	display: block;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .agenda__hour-block-wrapper>.timestamp {
	display: none;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .agenda__hour-block {
	grid-template-columns: 1fr;
	margin-bottom: 0;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .session {
	display: grid;
	align-items: start;
	gap: 0 3em;
	grid-template-columns: minmax(max-content, 15vw) 1fr;
	grid-template-areas:
		"header body"
		". footer";
	padding: 2em 0;
	border-left: none;
	border-right: none;
	border-bottom: none;
	border-radius: 0;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .agenda__hour-block-wrapper:first-child .session {
	padding-top: 0;
	border-top: none;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .session__header {
	grid-area: header;
	text-align: center;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .session__location .room {
	display: none;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .session__body {
	grid-area: body;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .session__name,
.conference-agenda-wrapper .agenda[data-view-type="list"] .session__toggle {
	cursor: pointer;
}

.conference-agenda-wrapper .agenda[data-view-type="list"] .session__footer {
	grid-area: footer;
}

/* Speaker Overview */
.conference-agenda-wrapper .agenda[data-view-type="speaker"] .session {
	cursor: pointer;
	transition: background-color 0.15s ease-in-out;
}

.conference-agenda-wrapper .agenda[data-view-type="speaker"] .session:hover {
	background-color: #FFF2;
}

.conference-agenda-wrapper .agenda[data-view-type="speaker"] .session__abstract,
.conference-agenda-wrapper .agenda[data-view-type="speaker"] .session__toggle {
	display: none;
}

.conference-agenda-wrapper .agenda[data-view-type="speaker"] .session__timestamp {
	padding: 0;
	background: none;
}

.conference-agenda-wrapper .agenda[data-view-type="speaker"] .session__location {
	display: none;
}

.conference-agenda-wrapper .agenda[data-view-type="speaker"] .session__name {
	pointer-events: none;
}

/* Schedule */
.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session {
	cursor: pointer;
	transition: background-color 0.15s ease-in-out;
}

.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session:hover {
	background-color: #FFF2;
}

.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session__abstract,
.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session__toggle,
.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session__speakers {
	display: none;
}

.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session__timestamp,
.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session__location {
	display: inline;
}

.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session__timestamp {
	padding: 0;
	background: none;
}

.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session__location::before {
	display: inline;
	content: '| ';
}

.conference-agenda-wrapper .agenda[data-view-type="schedule"] .session__name {
	pointer-events: none;
}

/* Modals */
.conference-agenda-wrapper .modal {
	color: black;
	max-width: 100vw;
}

.conference-agenda-wrapper .modal .modal-content {
	padding: 1.75em;
}

.conference-agenda-wrapper .modal .modal-header,
.conference-agenda-wrapper .modal .modal-body,
.conference-agenda-wrapper .modal .modal-footer {
	padding: 0;
}

.conference-agenda-wrapper .modal .btn-close {
	position: relative;
	top: calc(var(--bs-modal-header-padding-y) * -0.75);
}

.conference-agenda-wrapper .modal .modal-header {
	border-bottom: none;
}

/* Session Modal */
.conference-agenda-wrapper .session-modal .session__timestamp,
.conference-agenda-wrapper .session-modal .session__location {
	display: inline;
}

.conference-agenda-wrapper .session-modal .timestamp {
	font-size: 1em;
	background: none;
	padding: 0;
}

.conference-agenda-wrapper .session-modal .session__location::before {
	display: inline;
	content: '| ';
}

.conference-agenda-wrapper .session-modal .timestamp .full-date {
	display: block;
	font-weight: bold;
}

.conference-agenda-wrapper .session-modal .session__toggle {
	display: none;
}

.conference-agenda-wrapper .session-modal .session__name {
	margin: 0.75em 0;
}

.conference-agenda-wrapper .session-modal .session__abstract {
	display: block !important;
}

.conference-agenda-wrapper .session-modal .session__speakers {
	grid-template-columns: 1fr 1fr 1fr;
}

.conference-agenda-wrapper .session-modal .session__type {
	color: #9F21E3;
}

.conference-agenda-wrapper .session-modal .modal-footer {
	justify-content: flex-start;
	border-top: none;
}

.conference-agenda-wrapper .session-modal .track {
	color: white;
}

/* Speaker Modal */
.conference-agenda-wrapper .speaker-modal .speaker__title,
.conference-agenda-wrapper .speaker-modal .speaker__company {
	display: inline;
}

.conference-agenda-wrapper .speaker-modal .speaker:has(.speaker__company:not(:empty)):has(.speaker__title:not(:empty)) .speaker__title::after {
	display: inline;
	content: ", ";
}

.conference-agenda-wrapper .speaker-modal .speaker__bio {
	display: block;
	margin-top: 0.5em;
	line-height: 1.35;
}

.conference-agenda-wrapper .speaker-modal .speaker {
	grid-template-columns: minmax(15vw, 200px) 1fr;
	gap: 1em;
}

.conference-agenda-wrapper .speaker-modal .speaker__left-side img {
	width: 100%;
	height: auto;
}

.conference-agenda-wrapper .speaker-modal .speaker__name {
	font-size: 1.5em;
	line-height: 1;
	margin-bottom: 0;
}

/* Highlighted Sessions */
.conference-agenda-wrapper .highlighted-sessions {
	max-width: 1030px;
	width: 100%;
	margin: 3rem auto 0;
}

.conference-agenda-wrapper .highlighted-sessions__controls {
	margin-bottom: 0.5em;
}

.conference-agenda-wrapper .highlighted-sessions__controls button {
	width: 2em;
	height: 2em;
	border: 3px solid white;
	border-radius: 100%;
	background: transparent;
	color: white;
	font-weight: bold;
}

.conference-agenda-wrapper .highlighted-sessions ul {
	display: flex;
	list-style: none;
	overflow: hidden;
	gap: 2em;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	justify-content: stretch;
	padding-left: 0;
	margin: 0 auto;
}

.conference-agenda-wrapper .highlighted-sessions li {
	flex: 0 0 calc(50% - 1em);
	scroll-snap-align: start;
}

.conference-agenda-wrapper .highlighted-sessions .session {
	border: none;
	background: #FFF2;
	height: 100%;
}

.conference-agenda-wrapper .highlighted-sessions .session__header {
	text-align: center;
}

.conference-agenda-wrapper .highlighted-sessions .session__timestamp {
	background: none;
	padding: 0;
}

.conference-agenda-wrapper .highlighted-sessions .session__timestamp .full-date::after {
	display: inline;
	content: '| ';
}

.conference-agenda-wrapper .highlighted-sessions .session__name {
	pointer-events: none;
	font-size: 1.25em;
	margin: 0.5em 0 2em;
}

.conference-agenda-wrapper .highlighted-sessions .session__speakers {
	margin-top: 1.5em;
}

.conference-agenda-wrapper .highlighted-sessions .speaker {
	margin-bottom: 1em;
}

.conference-agenda-wrapper .highlighted-sessions .speaker::before {
	display: block;
	grid-area: s-img;
	content: "Keynote";
	font-weight: 500;
	position: relative;
	top: -1.5em;
}
.conference-agenda-wrapper strong.speaker__function {
    font-size: .9rem;
}

.conference-agenda-wrapper .highlighted-sessions .session__toggle,
.conference-agenda-wrapper .highlighted-sessions .session__abstract,
.conference-agenda-wrapper .highlighted-sessions .speaker__title,
.conference-agenda-wrapper .highlighted-sessions .session__speakers .speaker:has(img[src*="noprofile_130x140"]) {
	display: none;
}

.conference-agenda-wrapper .highlighted-sessions .session__footer .footer__left {
	display: none;
}

.conference-agenda-wrapper .highlight-dots-wrapper {
	margin: 1em 0;
	justify-content: center;
	display: flex;
	gap: 1.5ch;
}

.conference-agenda-wrapper .highlight-dot {
	width: 10px;
	height: 10px;
	background: var(--soft-white);
	border-radius: 100%;
	cursor: pointer;
}

.conference-agenda-wrapper .highlight-dot.selected {
	background: white;
}

@media (min-width: 992px) {
	.conference-agenda-wrapper .highlight-dot:nth-child(2n) {
		display: none;
	}
}


@media (min-width: 576px) {
    .modal-dialog {
        max-width: 1024px;
    }
}

@media (max-width: 991.98px) {
	.conference-agenda-wrapper .highlighted-sessions .highlighted-sessions__wrapper>li {
		flex: 0 0 100%;
	}

	.conference-agenda-wrapper .filters .buttons,
	.conference-agenda-wrapper .filters .view-types {
		flex: 1 1 40%;
	}

	.conference-agenda-wrapper .filters .view-types {
		text-align: right;
	}

	.conference-agenda-wrapper .filters .date-options {
		display: none;
	}

	.conference-agenda-wrapper .filters select {
		display: block;
	}

	.conference-agenda-wrapper .filters .search {
		flex: 1 1 100%;
		margin-left: 0;
	}

	.conference-agenda-wrapper .agenda__hour-block {
		grid-template-columns: 1fr;
	}

	.conference-agenda-wrapper .session-modal .session__speakers {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 767.98px) {

	.conference-agenda-wrapper .filters .buttons,
	.conference-agenda-wrapper .filters .view-types {
		flex: 1 1 100%;
		display: flex;
	}

	.conference-agenda-wrapper .filters .buttons>button,
	.conference-agenda-wrapper .filters .view-types>button {
		flex: 1 1 40%;
	}

	.conference-agenda-wrapper .agenda__hour-block-wrapper {
		grid-template-columns: 1fr;
		gap: 1em;
	}

	.conference-agenda-wrapper .session__location {
		margin-top: 0;
	}

	.conference-agenda-wrapper .session__speakers {
		grid-template-columns: 1fr;
	}

	.conference-agenda-wrapper .session__footer .footer__right {
		margin-left: 0;
		text-align: left;
	}

	.conference-agenda-wrapper .agenda[data-view-type="list"] .session {
		grid-template-columns: 1fr;
		grid-template-areas:
			"header"
			"body"
			"footer";
	}

	.conference-agenda-wrapper .agenda[data-view-type="list"] .session__header {
		display: flex;
		margin-bottom: 1em;
		justify-content: space-between;
		align-items: center;
	}

	.conference-agenda-wrapper .agenda[data-view-type="list"] .session__header .session__timestamp,
	.conference-agenda-wrapper .agenda[data-view-type="list"] .session__header .session__location {
		flex: 0 1 50%;
		text-align: left;
	}

	.conference-agenda-wrapper .agenda[data-view-type="list"] .session__header .session__timestamp {
		max-width: max-content;
	}

	.conference-agenda-wrapper .speaker-modal .speaker {
		display: flex;
		flex-direction: column;
	}

	.conference-agenda-wrapper .speaker-modal .speaker__left-side img {
		max-height: 33vh;
		object-fit: contain;
	}

	.conference-agenda-wrapper .session-modal .session__speakers {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 384px) {
	.conference-agenda-wrapper .session__footer .footer__right img {
		text-align: left;
		display: block;
	}

}