/**
 * RAK Events Manager — frontend.
 * All selectors are prefixed .rakem- and scoped under .rakem-app.
 * Uses CSS logical properties for RTL.
 */

@import url("tokens.css");

/* -------------------------------------------------------------------------- */
/* Base                                                                        */
/* -------------------------------------------------------------------------- */

.rakem-app,
.rakem-app *,
.rakem-app *::before,
.rakem-app *::after {
	box-sizing: border-box;
}

.rakem-app {
	position: relative;
	isolation: isolate;
	max-width: 100%;
	overflow-x: clip;
	color: var(--rakem-text);
	background: var(--rakem-bg);
	font-family: var(--rakem-font-body);
	font-weight: var(--rakem-fw-regular);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	--rakem-gutter: var(--rakem-site-inset);
	--rakem-col: calc(100% - (var(--rakem-gutter) * 2));
}

/* Host for dialogs moved to <body> so theme footers cannot paint over them. */
.rakem-app.rakem-app--portal {
	position: fixed;
	inset: 0;
	z-index: var(--rakem-z-modal);
	isolation: isolate;
	overflow: visible;
	max-width: none;
	pointer-events: none;
	background: transparent;
}

.rakem-app.rakem-app--portal.is-active {
	pointer-events: auto;
}

.rakem-app img {
	max-width: 100%;
	height: auto;
	display: block;
}

.rakem-app button,
.rakem-app input,
.rakem-app select,
.rakem-app textarea {
	font: inherit;
	color: inherit;
}

.rakem-app a {
	color: inherit;
	text-decoration: none;
}

.rakem-app [hidden] {
	display: none !important;
}

.rakem-app .rakem-visually-hidden,
.rakem-app .rakem-hp {
	position: absolute !important;
	inset-inline-start: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

html.rakem-modal-open,
body.rakem-modal-open {
	overflow: hidden;
}

/* Maroon thumb, transparent track — every scrollable surface in the event UI. */
html:has(.rakem-app),
.rakem-app,
.rakem-app * {
	scrollbar-width: thin;
	scrollbar-color: var(--rakem-scrollbar-thumb) var(--rakem-scrollbar-track);
}

html:has(.rakem-app)::-webkit-scrollbar,
.rakem-app::-webkit-scrollbar,
.rakem-app *::-webkit-scrollbar {
	width: var(--rakem-scrollbar-size);
	height: var(--rakem-scrollbar-size);
}

html:has(.rakem-app)::-webkit-scrollbar-track,
html:has(.rakem-app)::-webkit-scrollbar-track-piece,
html:has(.rakem-app)::-webkit-scrollbar-corner,
.rakem-app::-webkit-scrollbar-track,
.rakem-app::-webkit-scrollbar-track-piece,
.rakem-app::-webkit-scrollbar-corner,
.rakem-app *::-webkit-scrollbar-track,
.rakem-app *::-webkit-scrollbar-track-piece,
.rakem-app *::-webkit-scrollbar-corner {
	background: var(--rakem-scrollbar-track);
}

html:has(.rakem-app)::-webkit-scrollbar-button,
.rakem-app::-webkit-scrollbar-button,
.rakem-app *::-webkit-scrollbar-button {
	display: none;
	width: 0;
	height: 0;
}

html:has(.rakem-app)::-webkit-scrollbar-thumb,
.rakem-app::-webkit-scrollbar-thumb,
.rakem-app *::-webkit-scrollbar-thumb {
	background-color: var(--rakem-scrollbar-thumb);
	border: 0;
	border-radius: 0;
}

html:has(.rakem-app)::-webkit-scrollbar-thumb:hover,
.rakem-app::-webkit-scrollbar-thumb:hover,
.rakem-app *::-webkit-scrollbar-thumb:hover {
	background-color: var(--rakem-primary-alt);
}

/* -------------------------------------------------------------------------- */
/* Focus                                                                       */
/* -------------------------------------------------------------------------- */

.rakem-app :focus {
	outline: none;
}

.rakem-app :focus-visible {
	outline: var(--rakem-focus-ring);
	outline-offset: var(--rakem-focus-offset);
}

.rakem-app .rakem-join:focus-visible,
.rakem-app .rakem-cta:focus-visible,
.rakem-app .rakem-tab:focus-visible,
.rakem-app .rakem-day-tab:focus-visible {
	outline-offset: 3px;
}

/* -------------------------------------------------------------------------- */
/* Layout                                                                      */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-container,
.rakem-app .rakem-hero__inner,
.rakem-app .rakem-info-bar,
.rakem-app .rakem-tabbar__inner {
	width: var(--rakem-col);
	max-width: none;
	margin-inline: auto;
	padding-inline: 0;
}

.rakem-app .rakem-section {
	padding-block: var(--rakem-section-spacing);
}

.rakem-app.rakem-app--listing,
.rakem-app.rakem-app--event {
	padding-inline: 0;
}

.rakem-app .rakem-listing {
	padding-block-end: 80px;
}

.rakem-app .rakem-listing-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, var(--rakem-card-width)));
	gap: var(--rakem-grid-gap);
	justify-content: space-between;
	margin-block-start: 40px;
}

.rakem-app .rakem-empty {
	grid-column: 1 / -1;
	margin: 48px 0;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	text-align: center;
}

/* -------------------------------------------------------------------------- */
/* Icons (masks — never hand-drawn replacements)                               */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-icon {
	display: inline-block;
	flex: 0 0 auto;
	width: var(--rakem-icon-sm);
	height: var(--rakem-icon-sm);
	background-color: currentColor;
	-webkit-mask: var(--rakem-icon) center / contain no-repeat;
	mask: var(--rakem-icon) center / contain no-repeat;
	pointer-events: none;
}

.rakem-app .rakem-icon--join {
	width: var(--rakem-icon-join);
	height: var(--rakem-icon-join);
	--rakem-icon: var(--rakem-icon-join-plus);
}

.rakem-app .rakem-join.is-joining .rakem-icon--join,
.rakem-app .rakem-icon--join-white {
	--rakem-icon: var(--rakem-icon-join-plus-white);
}

.rakem-app .rakem-icon--calendar {
	width: var(--rakem-icon-size-calendar);
	height: var(--rakem-icon-size-calendar);
	--rakem-icon: var(--rakem-icon-calendar);
}

.rakem-app .rakem-icon--calendar-gold {
	width: var(--rakem-icon-size-calendar);
	height: var(--rakem-icon-size-calendar);
	--rakem-icon: var(--rakem-icon-calendar-gold);
	color: var(--rakem-accent);
}

.rakem-app .rakem-icon--arrow-right {
	width: 16px;
	height: 16px;
	--rakem-icon: var(--rakem-icon-arrow-right);
}

/* Exported asset points down-right; Figma flips it vertically to point up-right. */
.rakem-app .rakem-icon--details {
	width: var(--rakem-icon-details);
	height: var(--rakem-icon-details);
	--rakem-icon: var(--rakem-icon-details-arrow);
	-webkit-mask: var(--rakem-icon) center / var(--rakem-icon-details-glyph)
		var(--rakem-icon-details-glyph) no-repeat;
	mask: var(--rakem-icon) center / var(--rakem-icon-details-glyph)
		var(--rakem-icon-details-glyph) no-repeat;
	transform: scaleY(-1);
}

.rakem-app .rakem-icon--search {
	--rakem-icon: var(--rakem-icon-search);
}

.rakem-app .rakem-icon--chevron-down {
	--rakem-icon: var(--rakem-icon-chevron-down);
}

.rakem-app .rakem-icon--chevron-right {
	--rakem-icon: var(--rakem-icon-chevron-right);
}

.rakem-app .rakem-icon--pagination-prev {
	--rakem-icon: var(--rakem-icon-pagination-prev);
}

.rakem-app .rakem-icon--pagination-next {
	--rakem-icon: var(--rakem-icon-pagination-next);
}

.rakem-app .rakem-icon--close {
	width: 24px;
	height: 24px;
	--rakem-icon: var(--rakem-icon-close);
}

.rakem-app .rakem-icon--upload {
	width: 24px;
	height: 24px;
	--rakem-icon: var(--rakem-icon-upload);
}

.rakem-app .rakem-icon--folder {
	width: 20px;
	height: 20px;
	--rakem-icon: var(--rakem-icon-folder);
}

.rakem-app .rakem-icon--remove {
	width: 20px;
	height: 20px;
	--rakem-icon: var(--rakem-icon-remove);
}

.rakem-app .rakem-icon--speaker-close {
	width: 24px;
	height: 24px;
	--rakem-icon: var(--rakem-icon-speaker-close);
}

.rakem-app .rakem-icon--share {
	width: 31.875px;
	height: 34px;
	--rakem-icon: var(--rakem-icon-share);
}

.rakem-app .rakem-icon--linkedin {
	width: 18px;
	height: 18px;
	--rakem-icon: var(--rakem-icon-linkedin);
}

.rakem-app .rakem-icon--twitter-x {
	width: 18px;
	height: 18px;
	--rakem-icon: var(--rakem-icon-twitter-x);
}

.rakem-app .rakem-icon--instagram {
	width: 18px;
	height: 18px;
	--rakem-icon: var(--rakem-icon-instagram);
}

.rakem-app .rakem-icon--website {
	width: 18px;
	height: 18px;
	--rakem-icon: var(--rakem-icon-website);
}

html[dir="rtl"] .rakem-app .rakem-icon--arrow-right,
html[dir="rtl"] .rakem-app .rakem-icon--chevron-right,
html[dir="rtl"] .rakem-app .rakem-icon--pagination-prev,
html[dir="rtl"] .rakem-app .rakem-icon--pagination-next {
	transform: scaleX(-1);
}

html[dir="rtl"] .rakem-app .rakem-icon--details {
	transform: scale(-1);
}

/* -------------------------------------------------------------------------- */
/* Buttons                                                                     */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-details,
.rakem-app .rakem-cta,
.rakem-app .rakem-btn,
.rakem-app .rakem-filter,
.rakem-app .rakem-tab,
.rakem-app .rakem-day-tab,
.rakem-app .rakem-page-btn,
.rakem-app .rakem-upload__browse,
.rakem-app .rakem-register-submit,
.rakem-app .rakem-selection-bar__clear,
.rakem-app .rakem-selection-bar__register,
.rakem-app .rakem-hero__cta,
.rakem-app .rakem-tabbar__register,
.rakem-app .rakem-tabbar__share,
.rakem-app .rakem-stats__btn,
.rakem-app .rakem-filter-option,
.rakem-app .rakem-filter-panel__reset,
.rakem-app .rakem-cta-card__btn,
.rakem-app .rakem-modal__close,
.rakem-app .rakem-reg-session__remove {
	appearance: none;
	border: 0;
	background: transparent;
	cursor: pointer;
	border-radius: var(--rakem-radius-button);
	padding: 0;
}

/* Figma 272:6626 / 272:6625 lock JOIN to 55×22 and JOINING to 80×22.
   That clips 14px type — especially JOINING. Same chrome, content-sized padding. */
.rakem-app .rakem-join {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-sizing: border-box;
	gap: var(--rakem-join-gap);
	width: max-content;
	min-width: max-content;
	height: auto;
	margin: 0;
	padding-block: var(--rakem-join-pad-block);
	padding-inline: var(--rakem-join-pad-inline);
	border: 1px solid var(--rakem-text-secondary);
	border-radius: var(--rakem-radius-button);
	background: var(--rakem-bg);
	color: var(--rakem-black);
	font-size: 14px;
	font-weight: var(--rakem-fw-regular);
	line-height: 16px;
	letter-spacing: 0;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
}

.rakem-app .rakem-join.is-joining {
	border-color: var(--rakem-primary-alt);
	background: var(--rakem-primary-alt);
	color: var(--rakem-white);
	padding-block: var(--rakem-join-pad-block);
	padding-inline: var(--rakem-join-pad-inline);
}

.rakem-app .rakem-join:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

/* Borderless maroon label + up-right arrow; the arrow box supplies the gap. */
.rakem-app .rakem-details {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0;
	color: var(--rakem-primary-alt);
	font-size: 14px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
	letter-spacing: 0;
	text-transform: uppercase;
	white-space: nowrap;
}

.rakem-app .rakem-details:hover {
	color: var(--rakem-primary);
}

.rakem-app .rakem-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 275px;
	max-width: 100%;
	height: var(--rakem-cta-h);
	background: var(--rakem-primary);
	color: var(--rakem-white);
	font-size: 14px;
	font-weight: var(--rakem-fw-medium);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.rakem-app .rakem-cta:hover {
	background: var(--rakem-primary-alt);
}

.rakem-app .rakem-hero__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 164px;
	min-width: 164px;
	height: 48px;
	padding-inline: 16px;
	background: var(--rakem-primary);
	color: var(--rakem-white);
	font-size: 14px;
	font-weight: var(--rakem-fw-regular);
	line-height: 19px;
	letter-spacing: 0;
	text-transform: uppercase;
}

.rakem-app .rakem-hero__cta--ghost {
	background: transparent;
	border: 1px solid var(--rakem-white);
}

.rakem-app .rakem-hero__cta:hover {
	background: var(--rakem-primary-alt);
}

.rakem-app .rakem-hero__cta--ghost:hover {
	background: var(--rakem-white);
	color: var(--rakem-primary);
}

.rakem-app .rakem-tabbar__register {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: var(--rakem-tab-register-w);
	height: var(--rakem-tab-register-h);
	background: transparent;
	border: 1px solid var(--rakem-white);
	color: var(--rakem-text-muted);
	font-size: 18px;
	line-height: 24px;
	font-weight: var(--rakem-fw-medium);
	text-transform: uppercase;
	white-space: nowrap;
}

.rakem-app .rakem-tabbar__register:hover {
	background: var(--rakem-white);
	color: var(--rakem-primary);
}

.rakem-app .rakem-tabbar__share {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: var(--rakem-tab-share);
	height: var(--rakem-tab-share);
	background: var(--rakem-accent);
	color: var(--rakem-white);
}

.rakem-app .rakem-tabbar__share:hover {
	background: var(--rakem-secondary);
}

.rakem-app .rakem-tabbar__share.is-copied::after {
	content: attr(data-share-feedback);
	position: absolute;
	inset-block-start: calc(100% + 8px);
	inset-inline-end: 0;
	padding: 6px 10px;
	background: var(--rakem-white);
	color: var(--rakem-text-primary);
	font-size: 13px;
	text-transform: none;
	white-space: nowrap;
}

.rakem-app .rakem-stats__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 313px;
	max-width: 100%;
	height: 37px;
	background: var(--rakem-accent);
	color: var(--rakem-white);
	font-size: 14px;
	font-weight: var(--rakem-fw-medium);
}

.rakem-app .rakem-upload__browse {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 125px;
	height: 36px;
	background: var(--rakem-primary-alt);
	color: var(--rakem-white);
	font-size: 12px;
	font-weight: var(--rakem-fw-regular);
	letter-spacing: 0;
	line-height: 14px;
	text-transform: uppercase;
}

.rakem-app .rakem-register-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: var(--rakem-submit-h);
	margin-block-start: 16px;
	background: var(--rakem-primary-alt);
	color: var(--rakem-white);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	letter-spacing: 0;
	line-height: 19px;
	text-transform: uppercase;
}

.rakem-app .rakem-register-submit:disabled {
	opacity: 0.7;
	cursor: wait;
}

/* -------------------------------------------------------------------------- */
/* Hero                                                                        */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	width: 100%;
	margin-inline: 0;
	overflow: hidden;
	color: var(--rakem-white);
	background-color: var(--rakem-hero-overlay);
}

.rakem-app .rakem-hero--listing {
	height: var(--rakem-hero-listing);
	min-height: var(--rakem-hero-listing);
	align-items: stretch;
}

.rakem-app .rakem-hero--listing .rakem-hero__inner {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding-block: 48px 28px;
	min-height: 100%;
}

.rakem-app .rakem-hero--inner {
	height: var(--rakem-hero-inner);
	min-height: var(--rakem-hero-inner);
	align-items: stretch;
	padding-block: 0;
}

.rakem-app .rakem-hero--inner .rakem-hero__media {
	object-position: center center;
}

.rakem-app .rakem-hero--inner .rakem-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
	padding-block: 48px 96px;
	min-height: 100%;
}

.rakem-app .rakem-hero--inner .rakem-hero__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	flex: 1 1 auto;
	width: 100%;
	max-width: 616px;
}

.rakem-app .rakem-hero--inner .rakem-crumbs {
	margin-block-start: 48px;
	padding-block-start: 0;
}

.rakem-app .rakem-hero__media,
.rakem-app .rakem-hero__overlay {
	position: absolute;
	inset: 0;
}

.rakem-app .rakem-hero__media {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rakem-app .rakem-hero__overlay {
	background: var(--rakem-hero-gradient);
}

.rakem-app .rakem-hero--inner .rakem-hero__overlay {
	background: var(--rakem-hero-gradient-inner);
}

.rakem-app .rakem-hero__inner {
	position: relative;
	z-index: 1;
}

.rakem-app .rakem-hero__title {
	margin: 0;
	color: var(--rakem-white);
	font-family: var(--rakem-font-heading);
	font-weight: var(--rakem-fw-bold);
}

.rakem-app .rakem-hero--listing .rakem-hero__title {
	font-size: 32px;
	line-height: 1.2;
}

.rakem-app .rakem-hero--inner .rakem-hero__title {
	max-width: 616px;
	font-size: 72px;
	line-height: 68px;
	letter-spacing: 0;
	overflow-wrap: break-word;
}

.rakem-app .rakem-hero__desc {
	margin-block-start: 12px;
	margin-block-end: 0;
	color: var(--rakem-white);
}

.rakem-app .rakem-hero--listing .rakem-hero__desc {
	max-width: 640px;
	font-size: 16px;
	line-height: 21px;
}

.rakem-app .rakem-hero--inner .rakem-hero__desc {
	max-width: 591px;
	margin-block-start: 16px;
	font-size: 18px;
	line-height: 25px;
}

.rakem-app .rakem-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	max-width: 100%;
	margin-block-start: 28px;
	color: var(--rakem-white);
	font-size: 14px;
	font-weight: var(--rakem-fw-medium);
}

.rakem-app .rakem-crumbs a {
	color: var(--rakem-white);
}

.rakem-app .rakem-crumbs__sep {
	width: 14px;
	height: 14px;
	color: var(--rakem-white);
	opacity: 0.9;
}

.rakem-app .rakem-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-block-start: 36px;
}

.rakem-app .rakem-countdown {
	display: flex;
	align-items: stretch;
	gap: 0;
	margin-block-start: 36px;
}

.rakem-app .rakem-hero--inner .rakem-countdown {
	margin-block-start: 44px;
}

.rakem-app .rakem-countdown__unit {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 70px;
	padding-inline: 16px;
}

.rakem-app .rakem-countdown__unit:first-child {
	padding-inline-start: 0;
}

.rakem-app .rakem-countdown__num {
	color: var(--rakem-accent);
	font-size: 32px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 25px;
}

.rakem-app .rakem-countdown__label {
	margin-block-start: 4px;
	color: var(--rakem-white);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 1.2;
	text-transform: uppercase;
}

.rakem-app .rakem-countdown__sep {
	width: 1px;
	align-self: stretch;
	background: rgba(255, 255, 255, 0.35);
	margin-block: 6px;
}

/* -------------------------------------------------------------------------- */
/* Info bar (overlaid on inner hero)                                           */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-info-bar {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	align-items: center;
	height: var(--rakem-info-bar-h);
	margin-block-start: -54px;
	background-color: var(--rakem-deep);
	background-image: var(--rakem-info-bar-pattern);
	background-repeat: repeat-x;
	/* Figma anchors the tile 329.872px in from the bar's left edge. */
	background-position: var(--rakem-info-bar-pattern-x) center;
	background-size: auto 100%;
	color: var(--rakem-white);
}

.rakem-app .rakem-info-bar__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 0;
	text-align: center;
}

.rakem-app .rakem-info-bar__value {
	font-size: 24px;
	font-weight: var(--rakem-fw-bold);
	line-height: var(--rakem-info-bar-line);
	text-transform: capitalize;
	color: var(--rakem-white);
}

.rakem-app .rakem-info-bar__label {
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: var(--rakem-info-bar-line);
	color: var(--rakem-white);
}

/* -------------------------------------------------------------------------- */
/* Listing filters                                                             */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-block-start: 36px;
}

.rakem-app .rakem-filters.is-loading {
	opacity: 0.7;
	pointer-events: none;
}

.rakem-app .rakem-filter {
	position: relative;
	display: inline-flex;
	align-items: center;
	height: var(--rakem-filter-h);
	border-radius: var(--rakem-radius-sm);
	background: var(--rakem-bg);
}

.rakem-app .rakem-filter--month {
	width: 202px;
	border: 1px solid var(--rakem-border);
}

.rakem-app .rakem-filter--search {
	width: 228px;
	border: 1px solid var(--rakem-accent);
}

.rakem-app .rakem-filter__input,
.rakem-app .rakem-filter__select {
	width: 100%;
	height: 100%;
	border: 0;
	background: transparent;
	padding-inline: 14px 36px;
	font-size: 14px;
	color: var(--rakem-text);
	border-radius: var(--rakem-radius-sm);
}

.rakem-app .rakem-filter--month .rakem-filter__select {
	padding-inline: 38px 32px;
}

.rakem-app .rakem-filter__select {
	appearance: none;
	cursor: pointer;
}

.rakem-app .rakem-filter__input::placeholder {
	color: var(--rakem-text-secondary);
}

.rakem-app .rakem-filter__icon {
	position: absolute;
	inset-inline-end: 12px;
	inset-block-start: 50%;
	transform: translateY(-50%);
	color: var(--rakem-text-secondary);
	pointer-events: none;
}

.rakem-app .rakem-filter__icon--leading {
	inset-inline-end: auto;
	inset-inline-start: 12px;
}

.rakem-app .rakem-filter--search .rakem-filter__icon {
	color: var(--rakem-accent);
}

/* -------------------------------------------------------------------------- */
/* Event card                                                                  */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-event-card {
	position: relative;
	display: flex;
	flex-direction: column;
	width: var(--rakem-card-width);
	max-width: 100%;
	height: var(--rakem-card-height);
	border: 1px solid var(--rakem-border);
	border-radius: var(--rakem-radius-card);
	background: var(--rakem-bg);
	overflow: hidden;
}

.rakem-app .rakem-event-card__media {
	position: relative;
	height: 195.5px;
	overflow: hidden;
	border-start-start-radius: var(--rakem-radius-card);
	border-start-end-radius: var(--rakem-radius-card);
}

.rakem-app .rakem-event-card__img,
.rakem-app .rakem-event-card__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rakem-app .rakem-event-card__placeholder {
	background: var(--rakem-surface);
}

.rakem-app .rakem-status {
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 127px;
	height: 25px;
	padding-inline: 12px;
	background: var(--rakem-secondary);
	color: var(--rakem-white);
	font-size: 12px;
	font-weight: var(--rakem-fw-regular);
	line-height: 1;
	border-start-start-radius: var(--rakem-radius-card);
	border-end-end-radius: var(--rakem-radius-card);
}

.rakem-app .rakem-event-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 20px 20px 18px;
}

.rakem-app .rakem-event-card__date {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--rakem-text-secondary);
	font-size: 14px;
	line-height: 1;
}

.rakem-app .rakem-event-card__date .rakem-icon {
	color: var(--rakem-primary);
	width: 16px;
	height: 16px;
}

.rakem-app .rakem-event-card__title {
	margin: 12px 0 8px;
	color: var(--rakem-text);
	font-size: 22px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 1.2;
}

.rakem-app .rakem-event-card__excerpt {
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: var(--rakem-text-secondary);
	font-size: 14px;
	line-height: 19px;
}

.rakem-app .rakem-event-card__cta {
	margin-block-start: auto;
	align-self: center;
	width: 275px;
	max-width: 100%;
	padding-block-start: 0;
	margin-block-end: 2px;
}

.rakem-app .rakem-event-card__cta .rakem-icon--arrow-right {
	width: 15px;
	height: 15px;
	color: var(--rakem-white);
}

/* -------------------------------------------------------------------------- */
/* Pagination                                                                  */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-block-start: 48px;
}

.rakem-app .rakem-page-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	height: 30px;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
}

.rakem-app .rakem-page-btn--dir {
	gap: 8px;
	font-size: 22px;
	color: var(--rakem-text-secondary);
}

.rakem-app .rakem-page-btn.is-active {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--rakem-accent);
	color: var(--rakem-white);
	font-weight: var(--rakem-fw-medium);
}

.rakem-app .rakem-page-btn:disabled,
.rakem-app .rakem-page-btn.is-disabled {
	opacity: 0.35;
	pointer-events: none;
}

.rakem-app .rakem-pagination__pages {
	display: flex;
	align-items: center;
	gap: 10px;
}

/* -------------------------------------------------------------------------- */
/* About                                                                       */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-about {
	padding-block: 72px 48px;
	text-align: center;
}

.rakem-app .rakem-about__eyebrow {
	margin: 0 0 12px;
	color: var(--rakem-primary);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rakem-app .rakem-about__heading {
	margin: 0 auto 20px;
	max-width: 920px;
	color: var(--rakem-text);
	font-size: 42px;
	font-weight: var(--rakem-fw-bold);
	line-height: 1.15;
	text-align: center;
}

.rakem-app .rakem-about__body {
	margin: 0 auto;
	max-width: 860px;
	color: var(--rakem-text-secondary);
	font-size: 18px;
	line-height: 1.6;
	text-align: center;
}

.rakem-app .rakem-about__media {
	margin-block-start: 36px;
	max-width: 920px;
	margin-inline: auto;
	border-radius: var(--rakem-radius-md);
	overflow: hidden;
}

.rakem-app .rakem-about__media iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
	display: block;
}

/* -------------------------------------------------------------------------- */
/* Tab bar                                                                     */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-tabbar {
	position: sticky;
	inset-block-start: var(--wp-admin--admin-bar--height, 0px);
	z-index: var(--rakem-z-tabbar);
	display: flex;
	align-items: stretch;
	width: 100%;
	height: var(--rakem-tab-bar-h);
	background: var(--rakem-tab-bar-bg);
	padding-inline: 0;
	overflow-x: auto;
	scrollbar-width: none;
}

.rakem-app .rakem-tabbar__inner {
	display: flex;
	align-items: stretch;
	height: 100%;
}

.rakem-app .rakem-tabbar::-webkit-scrollbar {
	display: none;
}

.rakem-app .rakem-tabbar__tabs {
	display: flex;
	align-items: stretch;
	min-width: 0;
	flex: 1;
}

.rakem-app .rakem-tab {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: var(--rakem-tab-w);
	height: 100%;
	padding-inline: 8px;
	color: var(--rakem-text-muted);
	font-size: 18px;
	line-height: 24px;
	font-weight: var(--rakem-fw-medium);
	text-transform: uppercase;
	white-space: nowrap;
	background: transparent;
}

.rakem-app .rakem-tab:hover {
	color: var(--rakem-white);
}

.rakem-app .rakem-tab.is-active {
	background: var(--rakem-primary);
	color: var(--rakem-white);
}

.rakem-app .rakem-tabbar__actions {
	display: flex;
	align-items: center;
	gap: var(--rakem-tab-actions-gap);
	margin-inline-start: auto;
	padding-inline-start: var(--rakem-tab-actions-gap);
}

.rakem-app .rakem-panels {
	padding-block: 48px 120px;
}

/* -------------------------------------------------------------------------- */
/* Entrance — fade in up                                                       */
/* -------------------------------------------------------------------------- */

@keyframes rakem-fade-in-up {
	from {
		opacity: 0;
		transform: translate3d(0, var(--rakem-enter-y), 0);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@keyframes rakem-fade-out-down {
	from {
		opacity: 1;
		transform: none;
	}
	to {
		opacity: 0;
		transform: translate3d(0, var(--rakem-enter-y), 0);
	}
}

.rakem-app [data-rakem-enter] {
	opacity: 0;
	transform: translate3d(0, var(--rakem-enter-y), 0);
}

.rakem-app [data-rakem-enter].is-in {
	opacity: 1;
	transform: none;
	animation: rakem-fade-in-up var(--rakem-duration-bar) var(--rakem-ease) both;
}

/* -------------------------------------------------------------------------- */
/* Day tabs + schedule                                                         */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-schedule {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--rakem-sidebar-width);
	gap: var(--rakem-schedule-gap);
	align-items: start;
}

.rakem-app .rakem-schedule__main {
	min-width: 0;
	overflow-x: clip;
}

/* Plain 28px labels with a maroon rule under the active day (Figma 272:12149). */
.rakem-app .rakem-day-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	margin-block-end: 54px;
}

.rakem-app .rakem-day-tab {
	display: inline-flex;
	align-items: center;
	padding-inline: 3px;
	padding-block-end: 15px;
	border-block-end: 2px solid transparent;
	color: var(--rakem-text-muted);
	font-size: 28px;
	font-weight: var(--rakem-fw-medium);
	line-height: 24px;
	background: transparent;
}

.rakem-app .rakem-day-tab.is-active {
	color: var(--rakem-primary-alt);
	border-block-end-color: currentColor;
}

/*
 * Row rhythm is 147px: 87px of content, then 30px / rule / 30px. Slot rules run
 * the full 979px column; rules between sessions in one slot are indented to the
 * 154px content offset because they sit inside .rakem-slot__sessions.
 */
.rakem-app .rakem-slot {
	display: grid;
	grid-template-columns: var(--rakem-slot-time-col) minmax(0, 1fr);
	gap: var(--rakem-slot-time-gap);
	align-items: start;
}

.rakem-app .rakem-slot + .rakem-slot {
	margin-block-start: var(--rakem-slot-gap);
	padding-block-start: var(--rakem-slot-gap);
	border-block-start: 1px solid var(--rakem-border);
}

.rakem-app .rakem-slot__time {
	margin: 0;
	color: var(--rakem-text);
	font-size: 28px;
	font-weight: var(--rakem-fw-medium);
	line-height: 24px;
}

.rakem-app .rakem-slot__count {
	display: block;
	margin-block-start: 5px;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
}

.rakem-app .rakem-session-card,
.rakem-app .rakem-session-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
	gap: 16px;
	padding: 0;
	border-radius: 0;
	background: transparent;
}

.rakem-app .rakem-session-row + .rakem-session-row {
	margin-block-start: var(--rakem-row-gap);
	padding-block-start: var(--rakem-row-gap);
	border-block-start: 1px solid var(--rakem-border);
}

/*
 * Highlight pads start/block so text is not flush to the wash, but must not
 * spill into the schedule/sidebar gap. End padding lives on the row so JOIN
 * sits inset from the wash instead of flush with the column edge.
 */
.rakem-app .rakem-session-row.is-selected,
.rakem-app .rakem-session-card.is-selected {
	position: relative;
	z-index: 0;
	padding-inline-end: var(--rakem-selected-inset);
	background: var(--rakem-selected-row);
	box-shadow: none;
}

.rakem-app .rakem-session-row.is-selected::before,
.rakem-app .rakem-session-card.is-selected::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset-block: calc(-1 * var(--rakem-selected-inset));
	inset-inline-start: calc(-1 * var(--rakem-selected-inset));
	inset-inline-end: 0;
	background: var(--rakem-selected-row);
	pointer-events: none;
}

.rakem-app .rakem-session-row__track {
	display: block;
	margin-block-end: 5px;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
	text-transform: uppercase;
}

.rakem-app .rakem-session-row__title {
	margin: 0;
	color: var(--rakem-text);
	font-size: 20px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 24px;
}

.rakem-app .rakem-session-row__meta {
	margin: 10px 0 0;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
}

/* Sits on the 24-48px band so the actions align with the title line. */
.rakem-app .rakem-session-row__actions {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
	margin-block-start: 24px;
}

.rakem-app .rakem-schedule__sidebar {
	position: sticky;
	inset-block-start: calc(var(--wp-admin--admin-bar--height, 0px) + var(--rakem-tab-bar-h) + 16px);
	z-index: var(--rakem-z-sticky);
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: var(--rakem-sidebar-width);
	max-width: 100%;
	max-height: calc(100dvh - var(--wp-admin--admin-bar--height, 0px) - var(--rakem-tab-bar-h) - 24px);
	margin: 0;
	padding: 0;
	overflow-x: hidden;
	overflow-y: auto;
	gap: 0;
	background: transparent;
	border-radius: 0;
}

/* Figma 483:173 — search, venue, categories, reset, register card. */
.rakem-app .rakem-filter-panel__inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
}

.rakem-app .rakem-filter-panel__search {
	display: block;
	margin-block-end: 20px;
}

.rakem-app .rakem-filter-panel__input {
	width: 100%;
	height: var(--rakem-filter-search-h);
	padding-inline: 20px;
	border: 1px solid var(--rakem-field-border);
	background: var(--rakem-white);
	color: var(--rakem-text);
	font-size: 14px;
	font-weight: var(--rakem-fw-regular);
	line-height: 1.2;
	border-radius: 0;
}

.rakem-app .rakem-filter-panel__input::placeholder {
	color: var(--rakem-placeholder);
	text-transform: capitalize;
}

.rakem-app .rakem-filter-group {
	margin-block-end: 20px;
}

.rakem-app .rakem-filter-group__title {
	margin: 0 0 10px;
	color: var(--rakem-black);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	line-height: 1.2;
	text-transform: capitalize;
}

.rakem-app .rakem-filter-panel__select-wrap {
	position: relative;
}

.rakem-app .rakem-filter-panel__select {
	width: 100%;
	height: var(--rakem-filter-select-h);
	padding-inline: 15px 36px;
	border: 1px solid var(--rakem-field-border);
	background: var(--rakem-white);
	color: var(--rakem-select-value);
	font-size: 13px;
	font-weight: var(--rakem-fw-regular);
	line-height: 1.2;
	text-transform: capitalize;
	appearance: none;
	border-radius: 0;
	cursor: pointer;
}

.rakem-app .rakem-filter-panel__select-icon {
	position: absolute;
	inset-inline-end: 12px;
	inset-block-start: 50%;
	transform: translateY(-50%);
	color: var(--rakem-select-value);
	pointer-events: none;
}

.rakem-app .rakem-filter-list {
	display: flex;
	flex-direction: column;
	gap: var(--rakem-filter-row-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.rakem-app .rakem-filter-option {
	display: flex;
	align-items: center;
	width: 100%;
	height: var(--rakem-filter-row-h);
	padding-inline: 10px;
	background: var(--rakem-surface);
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 1.2;
	text-align: start;
	text-transform: capitalize;
}

.rakem-app .rakem-filter-option.is-active,
.rakem-app .rakem-filter-option[aria-pressed="true"] {
	background: var(--rakem-selected-row);
}

.rakem-app .rakem-filter-option:hover {
	background: var(--rakem-selected-row);
}

.rakem-app .rakem-filter-panel__reset {
	align-self: start;
	margin-block-end: 20px;
	color: var(--rakem-primary-alt);
	font-size: 16px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 1.2;
	text-transform: none;
}

.rakem-app .rakem-filter-panel__reset:hover {
	color: var(--rakem-primary);
}

.rakem-app .rakem-cta-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	height: var(--rakem-cta-card-h);
	padding: 23px 20px 24px;
	overflow: hidden;
	background: var(--rakem-primary-alt);
	color: var(--rakem-white);
	flex-shrink: 0;
}

.rakem-app .rakem-cta-card__pattern {
	position: absolute;
	inset-block-start: -46px;
	inset-inline-start: -16px;
	width: 329px;
	height: 266px;
	background: var(--rakem-cta-pattern) 0 0 / 329px 266px no-repeat;
	opacity: 0.2;
	pointer-events: none;
}

.rakem-app .rakem-cta-card__eyebrow,
.rakem-app .rakem-cta-card__title,
.rakem-app .rakem-cta-card__btn {
	position: relative;
	z-index: 1;
}

.rakem-app .rakem-cta-card__eyebrow {
	margin: 0;
	font-size: 14px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 1.2;
	text-transform: uppercase;
}

.rakem-app .rakem-cta-card__title {
	margin: 13px 0 0;
	width: 232px;
	max-width: 100%;
	font-size: 24px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 28px;
}

.rakem-app .rakem-cta-card__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 273px;
	max-width: 100%;
	height: var(--rakem-cta-btn-h);
	margin-block-start: auto;
	background: var(--rakem-accent);
	color: var(--rakem-white);
	font-size: 16px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
}

.rakem-app .rakem-cta-card__btn:hover {
	background: var(--rakem-secondary);
}

/* -------------------------------------------------------------------------- */
/* Speakers — Figma 487:184                                                    */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-speakers__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--rakem-grid-gap);
	min-height: var(--rakem-filter-search-h);
}

.rakem-app .rakem-speakers__title {
	margin: 0;
	color: var(--rakem-text-heading);
	font-size: 28px;
	font-weight: var(--rakem-fw-medium);
	line-height: 24px;
}

.rakem-app .rakem-speakers__search {
	position: relative;
	display: block;
	width: var(--rakem-card-width);
	max-width: 100%;
	flex: 0 0 var(--rakem-card-width);
}

.rakem-app .rakem-speakers__input {
	width: 100%;
	height: var(--rakem-filter-search-h);
	padding-inline: 20px 44px;
	border: 1px solid var(--rakem-field-border);
	background: var(--rakem-white);
	color: var(--rakem-text);
	font-size: 14px;
	font-weight: var(--rakem-fw-regular);
	line-height: 1.2;
	border-radius: 0;
}

.rakem-app .rakem-speakers__input::placeholder {
	color: var(--rakem-placeholder);
	text-transform: capitalize;
}

.rakem-app .rakem-speakers__search .rakem-icon--search {
	position: absolute;
	inset-inline-end: 20px;
	inset-block-start: 50%;
	transform: translateY(-50%);
	width: var(--rakem-icon-search-size);
	height: var(--rakem-icon-search-size);
	color: var(--rakem-field-border);
	pointer-events: none;
}

.rakem-app .rakem-speakers-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, var(--rakem-speaker-card-w)));
	justify-content: start;
	gap: var(--rakem-grid-gap);
	margin-block-start: var(--rakem-speakers-head-gap);
}

.rakem-app .rakem-speakers .rakem-empty {
	margin-block-start: var(--rakem-speakers-head-gap);
}

.rakem-app .rakem-speaker-card {
	display: flex;
	align-items: center;
	gap: var(--rakem-speaker-card-gap);
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	height: var(--rakem-speaker-card-h);
	padding: var(--rakem-speaker-card-pad);
	overflow: hidden;
	border: 0;
	border-radius: 0;
	background: var(--rakem-surface-alt);
	cursor: pointer;
	text-align: start;
}

.rakem-app .rakem-speaker-card__img,
.rakem-app .rakem-speaker-card__placeholder {
	width: var(--rakem-speaker-photo-w);
	height: var(--rakem-speaker-photo-h);
	flex: 0 0 var(--rakem-speaker-photo-w);
	border-radius: 50%;
	object-fit: cover;
	object-position: center;
	overflow: hidden;
}

.rakem-app .rakem-speaker-card__placeholder {
	background: var(--rakem-surface);
}

.rakem-app .rakem-speaker-card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	flex: 1 1 auto;
}

.rakem-app .rakem-speaker-card__name {
	margin: 0;
	max-width: 100%;
	color: var(--rakem-black);
	font-size: 20px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 1.2;
	text-transform: capitalize;
}

.rakem-app .rakem-speaker-card__title {
	margin: 6px 0 0;
	max-width: 100%;
	color: var(--rakem-primary-alt);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 1.2;
	text-transform: capitalize;
}

.rakem-app .rakem-speaker-card__region {
	margin: 4px 0 0;
	max-width: 100%;
	color: var(--rakem-text-secondary);
	font-size: 13px;
	font-weight: var(--rakem-fw-regular);
	line-height: 1.2;
}

.rakem-app .rakem-speaker-card .rakem-details {
	margin-block-start: auto;
}

/* -------------------------------------------------------------------------- */
/* Attendees — Figma 487:181                                                   */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-attendees__title {
	margin: 0;
	color: var(--rakem-text-heading);
	font-size: 28px;
	font-weight: var(--rakem-fw-medium);
	line-height: 24px;
}

.rakem-app .rakem-attendees__summary {
	margin: 8px 0 0;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
}

.rakem-app .rakem-attendees .rakem-empty {
	margin-block-start: 16px;
}

.rakem-app .rakem-attendees-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, var(--rakem-card-width)));
	gap: var(--rakem-grid-gap);
	justify-content: space-between;
	align-items: start;
	margin-block-start: 16px;
}

.rakem-app .rakem-attendee-card {
	display: flex;
	align-items: flex-start;
	gap: var(--rakem-attendee-gap);
	box-sizing: border-box;
	width: var(--rakem-card-width);
	max-width: 100%;
	height: var(--rakem-attendee-card-h);
	padding: var(--rakem-attendee-pad-block) var(--rakem-attendee-pad-inline) 18px;
	overflow: hidden;
	background: var(--rakem-surface-alt);
	border-radius: 0;
	line-height: 0;
}

.rakem-app .rakem-attendee-card__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--rakem-attendee-avatar);
	height: var(--rakem-attendee-avatar);
	flex: 0 0 var(--rakem-attendee-avatar);
	border-radius: 50%;
	background: var(--rakem-secondary);
	color: var(--rakem-white);
	font-size: 32px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
	overflow: hidden;
}

.rakem-app .rakem-attendee-card__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rakem-app .rakem-attendee-card__body {
	min-width: 0;
	padding-block-start: 6px;
}

.rakem-app .rakem-attendee-card__name {
	margin: 0;
	color: var(--rakem-black);
	font-size: 18px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 24px;
}

.rakem-app .rakem-attendee-card__meta {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
	margin: 2px 0 0;
	color: var(--rakem-text-secondary);
	font-size: 14px;
	font-weight: var(--rakem-fw-regular);
	line-height: 15px;
}

/* -------------------------------------------------------------------------- */
/* Info tab — Figma 487:180                                                    */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-info {
	display: flex;
	flex-direction: column;
	gap: 52px;
	align-items: stretch;
}

.rakem-app .rakem-info__top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--rakem-grid-gap);
	align-items: stretch;
}

.rakem-app .rakem-info__top--solo {
	grid-template-columns: 1fr;
}

.rakem-app .rakem-info__top:not(.rakem-info__top--solo) .rakem-info__main {
	display: flex;
	flex-direction: column;
	min-height: var(--rakem-info-photo-h);
}

.rakem-app .rakem-info__kicker {
	margin: 0 0 17px;
	color: var(--rakem-primary-alt);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	line-height: 24px;
	letter-spacing: 0.8px;
	text-transform: uppercase;
}

.rakem-app .rakem-info__heading {
	margin: 0;
	max-width: 535px;
	color: var(--rakem-black);
	font-size: 28px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 37px;
}

.rakem-app .rakem-info__desc {
	margin: 14px 0 0;
	max-width: 578px;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
	text-transform: capitalize;
}

.rakem-app .rakem-info__rows {
	margin-block-start: 30px;
	border-block-end: 1px solid var(--rakem-border);
}

.rakem-app .rakem-info__top:not(.rakem-info__top--solo) .rakem-info__rows {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.rakem-app .rakem-info__row {
	display: grid;
	grid-template-columns: 111px minmax(0, 1fr);
	column-gap: 28px;
	align-items: center;
	min-height: 49px;
	padding-block: 14px;
	border-block-start: 1px solid var(--rakem-border);
}

.rakem-app .rakem-info__top:not(.rakem-info__top--solo) .rakem-info__row {
	flex: 1;
}

.rakem-app .rakem-info__label {
	color: var(--rakem-text-label);
	font-size: 18px;
	font-weight: var(--rakem-fw-semibold);
	line-height: normal;
	text-transform: capitalize;
}

.rakem-app .rakem-info__value {
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: normal;
	text-transform: capitalize;
}

.rakem-app .rakem-info__photo {
	width: 100%;
	height: var(--rakem-info-photo-h);
	overflow: hidden;
	border-radius: 0;
	background: var(--rakem-surface);
}

.rakem-app .rakem-info__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rakem-app .rakem-info__map {
	width: 100%;
	height: var(--rakem-info-map-h);
	overflow: hidden;
	border-radius: 0;
	background: var(--rakem-surface);
}

.rakem-app .rakem-info__map iframe,
.rakem-app .rakem-info__map img,
.rakem-app .rakem-info__map a:not(.rakem-info__map-link) {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	object-fit: cover;
}

.rakem-app .rakem-info__map-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: var(--rakem-primary-alt);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
}

.rakem-app .rakem-gallery {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--rakem-grid-gap);
}

.rakem-app .rakem-gallery__img {
	width: 100%;
	height: 201px;
	object-fit: cover;
	border-radius: var(--rakem-radius-md);
}

/* -------------------------------------------------------------------------- */
/* Registration success notice                                                */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-register-success {
	position: fixed;
	inset-inline: var(--rakem-gutter);
	inset-block-end: 24px;
	z-index: var(--rakem-z-overlay);
	max-width: var(--rakem-container);
	margin-inline: auto;
	padding: 16px 20px;
	background: var(--rakem-deep);
	color: var(--rakem-white);
	font-family: var(--rakem-font);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	line-height: 24px;
}

.rakem-app .rakem-register-success[hidden] {
	display: none;
}

/* -------------------------------------------------------------------------- */
/* Selection bar — Figma 484:174                                               */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-selection-bar {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: var(--rakem-z-selection);
	display: flex;
	align-items: center;
	height: var(--rakem-selection-bar-h);
	padding-inline: var(--rakem-gutter);
	background: var(--rakem-deep);
	color: var(--rakem-white);
	transform: translate3d(0, 100%, 0);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		transform var(--rakem-duration-bar) var(--rakem-ease),
		opacity var(--rakem-duration-bar) var(--rakem-ease),
		visibility 0s linear var(--rakem-duration-bar);
}

.rakem-app .rakem-selection-bar.is-visible {
	transform: translate3d(0, 0, 0);
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition:
		transform var(--rakem-duration-bar) var(--rakem-ease),
		opacity var(--rakem-duration-bar) var(--rakem-ease),
		visibility 0s linear 0s;
}

.rakem-app .rakem-selection-bar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	max-width: none;
	margin-inline: auto;
	gap: 24px;
}

.rakem-app .rakem-selection-bar__copy {
	min-width: 0;
	flex: 1;
}

.rakem-app .rakem-selection-bar__title {
	margin: 0;
	color: var(--rakem-white);
	font-size: 22px;
	font-weight: var(--rakem-fw-semibold);
	line-height: 24px;
}

.rakem-app .rakem-selection-bar__sub {
	margin: 3px 0 0;
	color: var(--rakem-white);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rakem-app .rakem-selection-bar__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
}

.rakem-app .rakem-selection-bar__clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 99px;
	height: 39px;
	border: 1px solid var(--rakem-white);
	background: transparent;
	color: var(--rakem-white);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
	letter-spacing: 0;
	text-transform: uppercase;
}

.rakem-app .rakem-selection-bar__clear:hover {
	background: var(--rakem-white);
	color: var(--rakem-deep);
}

.rakem-app .rakem-selection-bar__register {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 262px;
	height: 39px;
	padding-inline: 13px;
	border: 1px solid var(--rakem-white);
	background: var(--rakem-white);
	color: var(--rakem-primary-alt);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	line-height: 24px;
	letter-spacing: 0;
	text-transform: uppercase;
	white-space: nowrap;
}

.rakem-app .rakem-selection-bar__register:hover {
	background: var(--rakem-surface);
}

/* The bar is fixed to the viewport, so the whole page — including the theme
   footer that lives outside .rakem-app — has to reserve room for it. */
body.rakem-has-selection {
	padding-block-end: var(--rakem-selection-offset, var(--rakem-selection-bar-h));
}

/* -------------------------------------------------------------------------- */
/* Modals                                                                      */
/* -------------------------------------------------------------------------- */

.rakem-app .rakem-modal {
	position: fixed;
	inset: 0;
	z-index: var(--rakem-z-modal);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity var(--rakem-duration-bar) var(--rakem-ease),
		visibility 0s linear var(--rakem-duration-bar);
}

.rakem-app .rakem-modal.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition:
		opacity var(--rakem-duration-bar) var(--rakem-ease),
		visibility 0s linear 0s;
}

.rakem-app .rakem-modal.is-open.is-closing {
	opacity: 0;
	pointer-events: none;
	transition:
		opacity var(--rakem-duration-bar) var(--rakem-ease),
		visibility 0s linear var(--rakem-duration-bar);
}

.rakem-app .rakem-modal[hidden] {
	display: none !important;
}

.rakem-app .rakem-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.72);
	cursor: pointer;
}

.rakem-app .rakem-modal[data-rakem-modal="session"] .rakem-modal__backdrop,
.rakem-app .rakem-modal[data-rakem-modal="speaker"] .rakem-modal__backdrop,
.rakem-app .rakem-modal[data-rakem-modal="registration"] .rakem-modal__backdrop {
	background: rgba(255, 255, 255, 0.78);
}

.rakem-app .rakem-modal__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-height: calc(100vh - 48px);
	overflow: auto;
	background: var(--rakem-bg);
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
	opacity: 0;
	transform: translate3d(0, var(--rakem-enter-y), 0);
	transition:
		opacity var(--rakem-duration-bar) var(--rakem-ease),
		transform var(--rakem-duration-bar) var(--rakem-ease);
}

.rakem-app .rakem-modal.is-open .rakem-modal__dialog {
	opacity: 1;
	transform: none;
}

.rakem-app .rakem-modal.is-open.is-closing .rakem-modal__dialog {
	opacity: 0;
	transform: translate3d(0, var(--rakem-enter-y), 0);
}

.rakem-app .rakem-modal[data-rakem-modal="session"] .rakem-modal__dialog {
	max-width: 720px;
	padding: 36px 40px 32px;
}

.rakem-app .rakem-modal[data-rakem-modal="speaker"] .rakem-modal__dialog {
	max-width: 886px;
	width: min(886px, 100%);
	padding: 36px 40px 40px;
}

.rakem-app .rakem-modal[data-rakem-modal="registration"] .rakem-modal__dialog {
	width: var(--rakem-register-w);
	max-width: var(--rakem-register-w);
	max-height: min(var(--rakem-register-h), calc(100vh - 32px));
	padding: var(--rakem-register-pad-block-start) var(--rakem-register-pad-inline-end)
		var(--rakem-register-pad-block-end) var(--rakem-register-pad-inline-start);
}

.rakem-app .rakem-modal__close {
	position: absolute;
	inset-block-start: 16px;
	inset-inline-end: 16px;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--rakem-text);
}

.rakem-app .rakem-session-modal__track {
	margin: 0 0 8px;
	color: var(--rakem-accent);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
}

.rakem-app .rakem-session-modal__title {
	margin-block: 0 12px;
	margin-inline-end: 48px;
	color: var(--rakem-text);
	font-size: 32px;
	font-weight: var(--rakem-fw-bold);
	line-height: 1.15;
}

.rakem-app .rakem-session-modal__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-block-end: 20px;
	color: var(--rakem-text-secondary);
	font-size: 16px;
}

.rakem-app .rakem-session-modal__content {
	color: var(--rakem-text-secondary);
	font-size: 16px;
	line-height: 1.6;
}

.rakem-app .rakem-session-modal__outcomes-wrap {
	margin-block-start: 20px;
}

.rakem-app .rakem-session-modal__outcomes-heading {
	margin: 0 0 8px;
	color: var(--rakem-text);
	font-size: 16px;
	font-weight: var(--rakem-fw-semibold);
}

.rakem-app .rakem-session-modal__outcomes {
	color: var(--rakem-text-secondary);
	font-size: 16px;
	line-height: 1.6;
}

.rakem-app .rakem-session-modal__speakers {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-block-start: 24px;
}

.rakem-app .rakem-session-modal__speaker {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	text-align: start;
}

.rakem-app .rakem-session-modal__avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	object-fit: cover;
}

.rakem-app .rakem-session-modal__speaker-name {
	display: block;
	font-size: 16px;
	font-weight: var(--rakem-fw-semibold);
}

.rakem-app .rakem-session-modal__speaker-title {
	display: block;
	color: var(--rakem-primary-alt);
	font-size: 14px;
}

.rakem-app .rakem-session-modal__join {
	margin-block-start: 24px;
}

.rakem-app .rakem-speaker-modal__label {
	margin: 0 0 16px;
	color: var(--rakem-speaker-label);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rakem-app .rakem-speaker-modal__top {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	margin-block-end: 20px;
}

.rakem-app .rakem-speaker-modal__name {
	margin-block: 0 6px;
	margin-inline-end: 40px;
	font-size: 20px;
	font-weight: var(--rakem-fw-semibold);
	color: var(--rakem-text);
}

.rakem-app .rakem-speaker-modal__title {
	margin: 0 0 8px;
	color: var(--rakem-primary-alt);
	font-size: 16px;
}

.rakem-app .rakem-speaker-modal__org {
	margin: 0 0 8px;
	color: var(--rakem-text-secondary);
	font-size: 16px;
}

.rakem-app .rakem-speaker-modal__region {
	margin: 0 0 8px;
	color: var(--rakem-text-secondary);
	font-size: 14px;
}

.rakem-app .rakem-speaker-modal__social {
	display: flex;
	gap: 10px;
	margin: 4px 0 8px;
}

.rakem-app .rakem-speaker-modal__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--rakem-surface-alt);
	color: var(--rakem-text-secondary);
	text-decoration: none;
}

.rakem-app .rakem-speaker-modal__social-link:hover {
	color: var(--rakem-primary-alt);
}

.rakem-app .rakem-speaker-modal__count {
	margin: 0;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	line-height: 24px;
}

.rakem-app .rakem-speaker-modal__bio {
	margin: 0 0 24px;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	line-height: 24px;
}

.rakem-app .rakem-speaker-modal__photo {
	width: 115px;
	height: 115px;
	flex: 0 0 115px;
	border-radius: 0;
	object-fit: cover;
	margin-block-end: 0;
}

.rakem-app .rakem-speaker-modal__sessions-heading {
	margin: 0 0 12px;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
}

.rakem-app .rakem-speaker-modal__sessions {
	margin: 0;
	padding: 20px 22px;
	list-style: none;
	border: 1px solid var(--rakem-border);
	max-height: 224px;
	overflow: auto;
}

.rakem-app .rakem-speaker-modal__session {
	padding-block: 10px;
	border-block-end: 1px solid var(--rakem-border);
}

.rakem-app .rakem-speaker-modal__session:first-child {
	padding-block-start: 0;
}

.rakem-app .rakem-speaker-modal__session:last-child {
	border-block-end: 0;
	padding-block-end: 0;
}

.rakem-app .rakem-speaker-modal__session-title {
	display: block;
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	color: var(--rakem-text-alt);
}

.rakem-app .rakem-speaker-modal__session-meta {
	display: block;
	margin-block-start: 6px;
	color: var(--rakem-text-secondary);
	font-size: 14px;
}

/* Registration form — Figma 486:178, 886 × 1088 */

.rakem-app .rakem-register__title {
	margin: 0;
	margin-inline-end: 40px;
	color: var(--rakem-text);
	font-size: 24px;
	font-weight: var(--rakem-fw-bold);
	line-height: 24px;
}

.rakem-app .rakem-register__subtitle {
	margin: 11px 0 0;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-regular);
	line-height: 24px;
}

.rakem-app .rakem-register__rule {
	display: block;
	width: 100%;
	height: 0;
	margin: 10px 0 0;
	border: 0;
	border-block-start: 1px solid var(--rakem-black);
}

.rakem-app .rakem-register-form {
	margin-block-start: 23px;
}

.rakem-app .rakem-register__grid {
	display: grid;
	grid-template-columns: repeat(2, var(--rakem-register-field-w));
	gap: 20px var(--rakem-register-col-gap);
	justify-content: space-between;
}

.rakem-app .rakem-field {
	display: flex;
	flex-direction: column;
	gap: 7px;
	min-width: 0;
}

.rakem-app .rakem-field--full {
	grid-column: 1 / -1;
}

.rakem-app .rakem-field__label {
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	line-height: 19px;
	text-transform: capitalize;
}

.rakem-app .rakem-field__input,
.rakem-app .rakem-field__select,
.rakem-app .rakem-field__textarea {
	width: 100%;
	height: var(--rakem-input-h);
	padding-inline: 18px;
	border: 1px solid var(--rakem-input-border);
	background: var(--rakem-bg);
	color: var(--rakem-text);
	font-size: 14px;
	line-height: 16px;
	border-radius: 0;
}

.rakem-app .rakem-field__input::placeholder,
.rakem-app .rakem-field__textarea::placeholder {
	color: var(--rakem-text-secondary);
	font-size: 14px;
	line-height: 16px;
	text-transform: capitalize;
}

.rakem-app .rakem-field__textarea {
	height: auto;
	min-height: 96px;
	padding-block: 14px;
	resize: vertical;
}

.rakem-app .rakem-register__checks {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-block-start: 18px;
}

.rakem-app .rakem-field--check {
	flex-direction: row;
	align-items: center;
	gap: 11px;
}

.rakem-app .rakem-field--check input[type="checkbox"] {
	appearance: none;
	width: 29px;
	height: 29px;
	flex: 0 0 29px;
	margin: 0;
	border: 1px solid var(--rakem-border);
	background: var(--rakem-white);
	cursor: pointer;
}

.rakem-app .rakem-field--check input[type="checkbox"]:checked {
	background: var(--rakem-primary-alt);
	border-color: var(--rakem-primary-alt);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='1.5' d='M2 6.2 4.8 9 10 3'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 14px 14px;
}

.rakem-app .rakem-field--check .rakem-field__label {
	font-weight: var(--rakem-fw-regular);
	font-size: 16px;
	line-height: 19px;
	color: var(--rakem-text-secondary);
}

.rakem-app .rakem-upload {
	position: relative;
	display: flex;
	align-items: center;
	gap: 21px;
	width: 100%;
	height: var(--rakem-register-upload-h);
	padding: 18px 18px 18px 23px;
	background: var(--rakem-upload-bg);
	border: 1px dashed var(--rakem-black);
	cursor: pointer;
}

.rakem-app .rakem-upload.is-dragging {
	border-color: var(--rakem-primary);
}

.rakem-app .rakem-upload__input {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	opacity: 0;
	cursor: pointer;
	font-size: 0;
}

.rakem-app .rakem-upload .rakem-icon--upload {
	width: 52px;
	height: 52px;
	flex: 0 0 52px;
	color: var(--rakem-text-alt);
}

.rakem-app .rakem-upload__copy {
	flex: 1;
	min-width: 0;
	color: #0e0e0e;
	font-size: 14px;
	line-height: 16px;
	text-transform: capitalize;
}

.rakem-app .rakem-upload__hint {
	display: block;
	margin-block-start: 6px;
	color: var(--rakem-text-secondary);
	font-size: 12px;
	line-height: 14px;
	text-transform: capitalize;
}

.rakem-app .rakem-upload__browse {
	gap: 7px;
	flex: 0 0 125px;
	pointer-events: none;
	position: relative;
	z-index: 1;
}

.rakem-app .rakem-upload__browse .rakem-icon--folder {
	width: 22px;
	height: 22px;
	color: var(--rakem-white);
}

.rakem-app .rakem-reg-sessions {
	margin-block: 20px 0;
}

.rakem-app .rakem-reg-sessions__heading {
	margin: 0 0 20px;
	color: var(--rakem-text-secondary);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	line-height: 19px;
	text-transform: capitalize;
}

.rakem-app .rakem-reg-sessions__list {
	border: 1px solid var(--rakem-border);
	height: var(--rakem-register-sessions-h);
	max-height: var(--rakem-register-sessions-h);
	overflow: auto;
	padding: 26px 20px 18px;
}

.rakem-app .rakem-reg-session {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 20px;
	align-items: start;
	gap: 12px;
	padding-block: 12px 10px;
	border-block-start: 1px solid var(--rakem-border);
}

.rakem-app .rakem-reg-session:first-child {
	padding-block-start: 0;
	border-block-start: 0;
}

.rakem-app .rakem-reg-session[hidden] {
	display: none !important;
}

.rakem-app .rakem-reg-session__title {
	display: block;
	color: var(--rakem-text-alt);
	font-size: 16px;
	font-weight: var(--rakem-fw-medium);
	line-height: 19px;
	text-transform: capitalize;
}

.rakem-app .rakem-reg-session__meta {
	display: block;
	margin-block-start: 10px;
	color: var(--rakem-text-secondary);
	font-size: 14px;
	line-height: 16px;
	text-transform: capitalize;
}

.rakem-app .rakem-reg-session__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	min-width: 20px;
	min-height: 20px;
	max-width: 20px;
	margin: 0;
	margin-block-start: 2px;
	padding: 0;
	border: 0;
	box-shadow: none;
	background: transparent;
	color: var(--rakem-text-muted);
	line-height: 0;
}

.rakem-app .rakem-reg-session__remove:hover,
.rakem-app .rakem-reg-session__remove:focus-visible {
	color: var(--rakem-text-alt);
}

.rakem-app .rakem-register__disclaimer {
	margin: 17px 0 0;
	color: var(--rakem-text-secondary);
	font-size: 14px;
	line-height: 16px;
	text-transform: capitalize;
}

.rakem-app .rakem-form-error {
	margin: 0 0 16px;
	color: var(--rakem-error);
	font-size: 14px;
}

/* -------------------------------------------------------------------------- */
/* 1440                                                                        */
/* -------------------------------------------------------------------------- */

@media (max-width: 1440px) {
	.rakem-app .rakem-hero--inner .rakem-hero__title {
		font-size: 64px;
		line-height: 60px;
	}

	.rakem-app .rakem-listing-grid,
	.rakem-app .rakem-speakers-grid,
	.rakem-app .rakem-attendees-grid {
		justify-content: center;
	}
}

/* -------------------------------------------------------------------------- */
/* 1366                                                                        */
/* -------------------------------------------------------------------------- */

@media (max-width: 1366px) {
	.rakem-app {
		--rakem-container: 1200px;
	}

	.rakem-app .rakem-hero--inner {
		height: 700px;
		min-height: 700px;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__title {
		font-size: 56px;
		line-height: 54px;
	}

	.rakem-app .rakem-register__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rakem-app .rakem-modal[data-rakem-modal="registration"] .rakem-modal__dialog {
		width: min(var(--rakem-register-w), 100%);
		max-width: 100%;
		padding-inline: 32px;
	}
}

/* -------------------------------------------------------------------------- */
/* 1280                                                                        */
/* -------------------------------------------------------------------------- */

@media (max-width: 1280px) {
	.rakem-app .rakem-listing-grid,
	.rakem-app .rakem-attendees-grid {
		grid-template-columns: repeat(2, minmax(0, var(--rakem-card-width)));
		justify-content: center;
		gap: var(--rakem-grid-gap);
	}

	.rakem-app .rakem-schedule {
		grid-template-columns: 1fr;
	}

	.rakem-app .rakem-schedule__sidebar {
		position: static;
		inset-block-start: auto;
		order: -1;
		width: 100%;
		max-height: none;
		margin-block-end: 32px;
		overflow: visible;
	}

	.rakem-app .rakem-cta-card,
	.rakem-app .rakem-cta-card__btn {
		width: 100%;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__title {
		font-size: 52px;
		line-height: 50px;
	}

	.rakem-app .rakem-about__heading {
		font-size: 36px;
	}

	.rakem-app .rakem-day-tab {
		font-size: 22px;
	}
}

/* -------------------------------------------------------------------------- */
/* 1024 — tablet 2-col, schedule as cards                                      */
/* -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
	.rakem-app {
		--rakem-gutter: 32px;
		--rakem-hero-listing: 280px;
	}

	.rakem-app .rakem-hero--inner {
		height: auto;
		min-height: max(640px, 70dvh);
		padding-block: 0;
	}

	.rakem-app .rakem-info__top {
		grid-template-columns: 1fr;
	}

	.rakem-app .rakem-info__top:not(.rakem-info__top--solo) .rakem-info__main {
		min-height: 0;
	}

	.rakem-app .rakem-info__top:not(.rakem-info__top--solo) .rakem-info__rows,
	.rakem-app .rakem-info__top:not(.rakem-info__top--solo) .rakem-info__row {
		flex: none;
	}

	.rakem-app .rakem-info__photo {
		height: 320px;
	}

	.rakem-app .rakem-info__heading,
	.rakem-app .rakem-info__desc {
		max-width: none;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__inner {
		align-items: flex-start;
		justify-content: flex-start;
		padding-block: 64px 112px;
		text-align: start;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__copy {
		align-items: flex-start;
		flex: 0 0 auto;
		max-width: 640px;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__title,
	.rakem-app .rakem-hero--inner .rakem-hero__desc {
		max-width: 100%;
		text-align: start;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__title {
		font-size: 44px;
		line-height: 48px;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__actions {
		justify-content: flex-start;
	}

	.rakem-app .rakem-hero--inner .rakem-countdown {
		justify-content: flex-start;
		margin-inline: 0;
	}

	.rakem-app .rakem-hero--inner .rakem-crumbs {
		order: -1;
		justify-content: flex-start;
		margin-block-start: 0;
		margin-block-end: 20px;
		padding-block-start: 0;
		margin-inline: 0;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__media {
		object-position: center 28%;
	}

	.rakem-app .rakem-about,
	.rakem-app .rakem-about__heading,
	.rakem-app .rakem-about__body,
	.rakem-app .rakem-empty {
		text-align: start;
	}

	.rakem-app .rakem-about__heading,
	.rakem-app .rakem-about__body {
		margin-inline: 0;
	}

	.rakem-app .rakem-info-bar {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
		max-width: none;
		height: auto;
		padding: 8px var(--rakem-gutter);
		margin-block-start: -40px;
		/* Keep the 109px Figma tile; do not stretch it to the 2-row height
		   (that lands the motif's internal join on the grid divider). */
		background-size: auto var(--rakem-info-bar-h);
		background-repeat: repeat;
		/* Offset so a 2-row bar (~2 × 109px) does not sit a tile join on the grid split. */
		background-position: var(--rakem-info-bar-pattern-x) 40px;
	}

	.rakem-app .rakem-info-bar__item {
		align-items: flex-start;
		justify-content: flex-start;
		padding-block: 16px;
		padding-inline: 0 16px;
		text-align: start;
		border-inline-end: 0;
		border-block-end: 1px solid rgba(255, 255, 255, 0.18);
	}

	.rakem-app .rakem-info-bar__item:nth-child(odd) {
		padding-inline-end: 20px;
		border-inline-end: 1px solid rgba(255, 255, 255, 0.18);
	}

	.rakem-app .rakem-info-bar__item:nth-child(even) {
		padding-inline-start: 20px;
		padding-inline-end: 0;
	}

	.rakem-app .rakem-info-bar__item:nth-last-child(-n + 2) {
		border-block-end: 0;
	}

	.rakem-app .rakem-info-bar__value {
		font-size: 20px;
		overflow-wrap: break-word;
	}

	.rakem-app .rakem-info-bar__label {
		font-size: 14px;
	}

	.rakem-app .rakem-slot {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	/* Cards carry their own outline, so drop the desktop rules and rhythm. */
	.rakem-app .rakem-slot + .rakem-slot {
		margin-block-start: 24px;
		padding-block-start: 0;
		border-block-start: 0;
	}

	.rakem-app .rakem-session-row,
	.rakem-app .rakem-session-card {
		grid-template-columns: 1fr;
		align-items: start;
		padding: 16px;
		border: 1px solid var(--rakem-border);
		border-radius: var(--rakem-radius-md);
		background: var(--rakem-bg);
	}

	.rakem-app .rakem-session-row + .rakem-session-row {
		margin-block-start: 12px;
		padding-block-start: 16px;
		border-block-start: 1px solid var(--rakem-border);
	}

	.rakem-app .rakem-session-row.is-selected,
	.rakem-app .rakem-session-card.is-selected {
		background: var(--rakem-selected-row);
		border-color: transparent;
		box-shadow: none;
	}

	.rakem-app .rakem-session-row.is-selected::before,
	.rakem-app .rakem-session-card.is-selected::before {
		content: none;
	}

	.rakem-app .rakem-session-row__actions {
		justify-content: flex-end;
		width: 100%;
		margin-block-start: 12px;
	}

	.rakem-app .rakem-slot__time {
		font-size: 22px;
	}

	.rakem-app .rakem-tab {
		width: auto;
		font-size: 16px;
		padding-inline: 16px;
	}

	.rakem-app .rakem-tabbar__register {
		display: none;
	}

	.rakem-app .rakem-tabbar__actions {
		flex-shrink: 0;
	}

	.rakem-app .rakem-tabbar__tabs {
		overflow-x: auto;
		scrollbar-width: none;
	}

	.rakem-app .rakem-tabbar__tabs::-webkit-scrollbar {
		display: none;
	}

	.rakem-app .rakem-cta {
		width: 100%;
	}

	.rakem-app .rakem-event-card {
		width: 100%;
		height: auto;
		min-height: var(--rakem-card-height);
	}

	.rakem-app .rakem-listing-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rakem-app .rakem-speakers-grid,
	.rakem-app .rakem-attendees-grid,
	.rakem-app .rakem-gallery {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rakem-app .rakem-speaker-card,
	.rakem-app .rakem-attendee-card {
		width: 100%;
	}
}

/* -------------------------------------------------------------------------- */
/* 768                                                                         */
/* -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.rakem-app {
		--rakem-gutter: 20px;
		--rakem-selection-bar-h: auto;
	}

	.rakem-app.rakem-app--listing,
	.rakem-app.rakem-app--event {
		padding-inline: 0;
	}

	.rakem-app .rakem-listing-grid,
	.rakem-app .rakem-speakers-grid,
	.rakem-app .rakem-attendees-grid,
	.rakem-app .rakem-gallery {
		grid-template-columns: 1fr;
		justify-content: stretch;
	}

	.rakem-app .rakem-speakers__head {
		flex-direction: column;
		align-items: stretch;
		min-height: 0;
	}

	.rakem-app .rakem-speakers__search {
		flex: 1 1 auto;
		width: 100%;
	}

	.rakem-app .rakem-hero {
		width: 100%;
	}

	.rakem-app .rakem-hero--listing {
		height: 240px;
		min-height: 240px;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__title {
		font-size: 36px;
		line-height: 40px;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__inner {
		padding-block: 56px 120px;
	}

	.rakem-app .rakem-hero--inner {
		min-height: max(680px, 75dvh);
	}

	.rakem-app .rakem-hero--listing .rakem-hero__title {
		font-size: 26px;
	}

	.rakem-app .rakem-about__heading {
		font-size: 28px;
	}

	.rakem-app .rakem-about__body {
		font-size: 16px;
	}

	.rakem-app .rakem-filters {
		flex-direction: column;
		align-items: stretch;
	}

	.rakem-app .rakem-filter--month,
	.rakem-app .rakem-filter--search {
		width: 100%;
	}

	.rakem-app .rakem-tabbar {
		height: 56px;
		padding-inline: 0;
	}

	.rakem-app .rakem-tabbar__share {
		width: 34px;
		height: 34px;
	}

	.rakem-app .rakem-icon--share {
		width: 20px;
		height: 21px;
	}

	.rakem-app .rakem-day-tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		gap: 24px;
		margin-inline: -20px;
		margin-block-end: 28px;
		padding-inline: 20px;
	}

	.rakem-app .rakem-day-tabs::-webkit-scrollbar {
		display: none;
	}

	.rakem-app .rakem-day-tab {
		font-size: 16px;
		flex: 0 0 auto;
		padding-block-end: 10px;
	}

	.rakem-app .rakem-info__row {
		grid-template-columns: 1fr;
		gap: 6px;
		align-items: start;
		min-height: 0;
	}

	.rakem-app .rakem-info__map {
		height: 220px;
	}

	.rakem-app .rakem-selection-bar {
		height: auto;
		padding-block: 16px;
		padding-inline: 16px;
		align-items: stretch;
	}

	.rakem-app .rakem-selection-bar__inner {
		flex-direction: column;
		align-items: stretch;
		gap: 12px;
	}

	.rakem-app .rakem-selection-bar__title {
		font-size: 18px;
	}

	.rakem-app .rakem-selection-bar__sub {
		font-size: 14px;
	}

	.rakem-app .rakem-selection-bar__actions {
		width: 100%;
	}

	.rakem-app .rakem-selection-bar__clear,
	.rakem-app .rakem-selection-bar__register {
		flex: 1;
		width: auto;
	}

	.rakem-app .rakem-modal {
		align-items: stretch;
		justify-content: flex-end;
		flex-direction: column;
		padding: 0;
	}

	.rakem-app .rakem-modal__dialog {
		max-height: calc(100dvh - env(safe-area-inset-top, 0px));
		min-height: 85dvh;
		border-start-start-radius: 16px;
		border-start-end-radius: 16px;
		width: 100%;
		margin-block-start: auto;
		overflow-y: auto;
	}

	.rakem-app .rakem-modal[data-rakem-modal="registration"] .rakem-modal__dialog,
	.rakem-app .rakem-modal[data-rakem-modal="session"] .rakem-modal__dialog,
	.rakem-app .rakem-modal[data-rakem-modal="speaker"] .rakem-modal__dialog {
		max-width: 100%;
		width: 100%;
		min-height: 85dvh;
		padding: 28px 24px max(32px, env(safe-area-inset-bottom, 0px));
	}

	.rakem-app .rakem-modal__close {
		inset-block-start: 20px;
		inset-inline-end: 20px;
	}

	.rakem-app .rakem-speaker-modal__top {
		flex-direction: column;
		gap: 16px;
	}

	.rakem-app .rakem-speaker-modal__photo {
		width: 96px;
		height: 96px;
		flex-basis: 96px;
	}

	.rakem-app .rakem-register__grid {
		grid-template-columns: 1fr;
	}

	.rakem-app .rakem-countdown {
		flex-wrap: wrap;
		justify-content: flex-start;
		row-gap: 12px;
	}

	.rakem-app .rakem-countdown__unit {
		min-width: 64px;
		padding-inline: 10px;
	}

	.rakem-app .rakem-countdown__unit:first-child {
		padding-inline-start: 10px;
	}

	.rakem-app .rakem-countdown__num {
		font-size: 24px;
	}

	.rakem-app .rakem-pagination {
		flex-wrap: wrap;
		gap: 10px;
	}

	.rakem-app .rakem-page-btn--dir {
		font-size: 16px;
	}

	.rakem-app .rakem-session-modal__title {
		font-size: 24px;
		margin-inline-end: 36px;
	}
}

/* -------------------------------------------------------------------------- */
/* 430 / 390 / 375                                                             */
/* -------------------------------------------------------------------------- */

@media (max-width: 430px) {
	.rakem-app {
		--rakem-gutter: 16px;
	}

	.rakem-app .rakem-hero--inner .rakem-hero__title {
		font-size: 32px;
		line-height: 36px;
	}

	.rakem-app .rakem-hero--inner {
		min-height: max(700px, 80dvh);
	}

	.rakem-app .rakem-hero--inner .rakem-hero__inner {
		padding-block: 52px 128px;
	}

	.rakem-app .rakem-hero__actions {
		flex-direction: column;
		width: 100%;
	}

	.rakem-app .rakem-hero__cta {
		width: 100%;
		min-width: 0;
	}

	.rakem-app .rakem-event-card__title {
		font-size: 20px;
	}

	.rakem-app .rakem-tab {
		padding-inline: 12px;
		font-size: 14px;
	}

	/* Fixed desktop height + single-row layout overflows once the label text
	   has to wrap in this little space — stack icon/copy/browse instead. */
	.rakem-app .rakem-upload {
		flex-direction: column;
		align-items: flex-start;
		height: auto;
		gap: 12px;
	}

	.rakem-app .rakem-upload .rakem-icon--upload {
		width: 32px;
		height: 32px;
		flex: 0 0 32px;
	}

	.rakem-app .rakem-upload__copy {
		width: 100%;
	}

	.rakem-app .rakem-upload__browse {
		flex: 0 0 auto;
		width: 100%;
		justify-content: center;
	}
}

@media (max-width: 390px) {
	.rakem-app .rakem-hero--listing .rakem-hero__title {
		font-size: 24px;
	}

	.rakem-app .rakem-about__heading {
		font-size: 24px;
	}
}

@media (max-width: 375px) {
	.rakem-app .rakem-countdown__label {
		font-size: 13px;
	}

	.rakem-app .rakem-info-bar__value {
		font-size: 20px;
	}
}

/* -------------------------------------------------------------------------- */
/* Reduced motion                                                              */
/* -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.rakem-app *,
	.rakem-app *::before,
	.rakem-app *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.rakem-app [data-rakem-enter],
	.rakem-app .rakem-modal__dialog {
		opacity: 1;
		transform: none;
		animation: none !important;
		transition: none !important;
	}
}
