/**
 * Mobile Portrait: > 500px (< 640px)
 */

@media (max-width: 640px) {
	/* ---------------------------------

	MARK: BUTTONS

	---------------------------------- */

	/* CROSSLINKS */

	:where([class*="btn--"][class*="--xlink"]):not([class*="--naked"]) {
		--xlink-flex-basis: 100%;
	}

	:where([class*="btn--"][class*="--xlink"]):not([class*="--naked"])
		.wrapper {
		padding: var(--size-sm) var(--size-xs) var(--size-xs);
	}

	:where([class*="btn--"])[class*="--xlink"] .content {
		gap: var(--size-xs);
	}

	:where([class*="btn--"][class*="--xlink"]) .title {
		font: 400 var(--f-lg) / var(--lh-lg) var(--f-davinci);
		display: inline-block;
	}

	:where([class*="btn--"][class*="--xlink"]) .title::after {
		width: var(--px-30);
		height: var(--px-13);
		margin: unset;
		margin-inline-start: var(--px-15);
	}

	:where([class*="btn--"])[class*="--xlink"] .label {
		font-size: var(--f-sm);
		letter-spacing: var(--ls-1);
		line-height: var(--lh-sm);
	}

	:where([class*="btn--"])[class*="--xlink"]:hover .title::after {
		translate: 0 0;
	}

	/* :where([class*="btn--"][class*="--xlink"])[class*="--naked"] {
	padding: unset;
	} */

	/* MOBILE */

	/* :where([class*="btn--"])[class*="--mobile"] {
		width: 100%;
		padding-inline: var(--size-sm);
	}

	:where([class*="btn--"][class*="--mobile"])[class*="--lg"] {
		height: var(--px-64);
		background: var(--color-fg);
		color: var(--color-bg);
		display: flex;
		align-items: center;
		font: 400 var(--f-lg) / var(--px-64) var(--f-davinci);
		font-style: normal;
		font-feature-settings: "liga" 1, "kern" 1;
		font-kerning: normal;
		font-variant-ligatures: common-ligatures;
		letter-spacing: var(--ls-n3);
	}

	/**
	 *
	 * MARK: COMPS
	 *
	 */

	.grid-group:is(.news, .people) :is(.grid-item, .grid-sizer) {
		width: 100%;
	}

	.btn-group {
		width: 100%;
		flex-direction: column;
		gap: var(--size-xs);
	}

	.comp__text_cta {
		gap: var(--size-md);
	}

	.read-more-content {
		display: -webkit-box;
		line-clamp: 5;
		-webkit-line-clamp: 5;
		-webkit-box-orient: vertical;
		overflow: hidden;

		/* Default for webkit browsers */
		padding-block-end: 0.19rem;
	}

	/* Firefox detection */
	@supports (-moz-appearance: none) {
		.read-more-content {
			max-height: calc(var(--lh-lg) * 5);
			padding-bottom: 0.05em;
		}
	}

	.read-more-content.expanded {
		display: initial;
	}

	.read-more-button {
		display: flex;
	}

	.comp__hero__title {
		padding-block: var(--size-md);
	}

	.comp__hero__media.tall .comp__hero__img {
		aspect-ratio: 1 / 1;
	}

	.comp__hero__media.short .comp__hero__img {
		aspect-ratio: 2 / 1;
	}

	/* Mobile-optimized grid: max 3 per row for better readability */

	/* 1-3 items: natural fit */
	:where(.comp__partners__grid:has(:nth-child(1):last-child))
		> .comp__partners__media {
		--logo-flex-basis: 100%;
	}

	:where(.comp__partners__grid:has(:nth-child(2):last-child))
		> .comp__partners__media {
		--logo-flex-basis: calc((100% - var(--gutter)) / 2);
	}

	:where(.comp__partners__grid:has(:nth-child(3):last-child))
		> .comp__partners__media {
		--logo-flex-basis: calc((100% - (var(--gutter) * 2)) / 3);
	}

	/* 4+ items: default 3 per row */
	:where(.comp__partners__grid:has(:nth-child(n + 4)))
		> .comp__partners__media {
		--logo-flex-basis: calc((100% - (var(--gutter) * 2)) / 3);
	}

	/**
	 *
	 * MARK: BLOCKS
	 *
	 */

	.block__side_image {
		flex-direction: column;
	}

	.block__side_image .comp__text_cta {
		padding: unset;
	}

	:is(
			.block__gallery__img,
			.block__cta_image__img,
			.block__single_image__img,
			.video-player
		) {
		aspect-ratio: 1 / 1;
	}

	.block__accordion .read-more-content {
		max-height: unset;
		display: initial;
		padding-block-end: unset;
	}

	.block__accordion .read-more-button {
		display: none;
	}

	/**
	*
	* MARK: NEWS
	*
	*/

	.blog__featured {
		flex-direction: column;
		gap: var(--size-md);
	}

	/**
	*
	* MARK: PROGRAM LIST
	*
	*/

	.program_accordion__summary {
		padding: var(--size-sm);
	}

	.program_accordion__summary::after {
		height: var(--px-32);
		width: var(--px-32);
	}

	.program_accordion__date {
		font-size: var(--f-lg);
	}

	/**
	 *
	 * MARK: EVENT DAY
	 *
	 */

	.event_day__heading {
		gap: var(--size-md);
	}

	/**
	*
	* MARK: SCHEDULE
	*
	*/

	:is(.schedule__grid, .schedule__toolbar) {
		display: none;
	}

	.schedule__toolbar__mobile {
		display: flex;
	}

	.schedule__grid {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		overflow: auto;
		z-index: 200;
		display: flex;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: all 300ms var(--ease-out-quint), visibility 0ms 300ms;
	}

	.schedule__grid.open {
		opacity: 1;
		visibility: visible;
		pointer-events: all;
		transition: all 500ms var(--ease-in-quart), visibility 0ms;
	}

	.schedule__grid .menu-back {
		display: flex;
	}

	.schedule__grid {
		background-color: var(--color-fg);
		padding-block-start: var(--size-sm);
		max-height: 100dvh;
		bottom: 0;
		flex-direction: column;
		gap: var(--gutter);
	}

	.schedule-grid {
		max-height: 100%;
		overflow: auto;
		padding-block-start: calc(var(--size-xs) + var(--px-56));
	}

	.grid-filter {
		width: 100vw;
		position: fixed;
		top: calc(var(--size-sm) + var(--px-64) + var(--gutter));
		padding-inline: var(--gutter);
		padding-block-end: var(--size-xs);
		background-color: var(--color-fg);
	}

	.grid-filter .dropdown-trigger {
		padding: var(--size-xs) var(--size-sm);
		background-color: var(--ui-75);
		border-radius: var(--px-5);
		--paragraph-space: 0;
		font-family: var(--f-inter);
		font-style: normal;
		font-size: var(--f-xs);
		letter-spacing: var(--ls-0);
		line-height: var(--lh-xl);
		font-weight: 600;
		height: var(--px-56);
		text-transform: initial;
	}

	.grid-filter .dropdown-trigger::after {
		height: var(--px-24);
		width: var(--px-24);
	}

	.grid-filter .dropdown-menu {
		padding-inline: var(--gutter);
		padding-block: 0 var(--gutter);
		background-color: unset;
		gap: var(--size-2xs);
		overflow-y: auto;
		max-height: calc(100dvh - (var(--px-50) + var(--px-64) + var(--px-56)));
	}

	.grid-filter .dropdown-option {
		width: 100%;
		background-color: var(--ui-75);
		border-radius: var(--px-5);
		height: var(--px-56);
		--paragraph-space: 0;
		font-family: var(--f-inter);
		font-style: normal;
		font-size: var(--f-xs);
		letter-spacing: var(--ls-0);
		line-height: var(--lh-xl);
		font-weight: 600;
		text-transform: initial;
		text-align: center;
	}

	.grid-filter .dropdown-option[aria-selected="true"] {
		background-color: var(--ui-85);
		pointer-events: none;
	}

	.grid-filter .dropdown-option input[type="radio"] + .checkmark {
		display: none;
	}

	.grid-filter .dropdown-option input[type="radio"]:checked ~ .label {
		padding-left: unset;
		color: var(--ui-accent-contrast);
	}

	.grid-filter .dropdown-option label {
		width: 100%;
		height: 100%;
		display: block;
		padding: var(--size-sm);
	}

	.grid-filter .dropdown-option:hover input[type="radio"] ~ .label {
		padding: unset;
	}

	.schedule-grid {
		grid-template-columns: 1fr 7fr;
		column-gap: 0;
	}

	.grid-sidebar {
		border-top: solid var(--px-1) var(--ui-75);
	}

	.grid-sidebar .filter-backdrop:is(.open, .loading),
	.grid-sidebar .filter-backdrop.loading > .loading-spinner {
		opacity: 1;
		visibility: visible;
		pointer-events: all;
		transition: all 500ms var(--ease-in-quart), visibility 0ms;
	}

	.grid-sidebar .filter-backdrop .loading-spinner {
		width: var(--size-md);
		aspect-ratio: 1;
		display: flex;
		transform-origin: 50% 125%;
		animation: loader-cf7-1 1.5s infinite linear;
	}

	.filter-backdrop .loading-spinner::before,
	.filter-backdrop .loading-spinner::after {
		content: "";
		flex: 1;
		background: var(--color-accent);
		animation: inherit;
		transform-origin: bottom left;
		animation-name: loader-cf7-2;
	}

	.filter-backdrop .loading-spinner::before {
		--s: -1;
		transform-origin: bottom right;
	}

	.grid-sidebar .grid-timetable {
		background-color: var(--color-fg);
		--paragraph-space: 0;
		font-family: var(--f-inter);
		font-style: normal;
		font-size: var(--f-3xs);
		letter-spacing: var(--ls-0);
		line-height: var(--lh-lg);
		color: var(--ui-50);
		padding-top: calc(var(--px-36) + var(--px-19));
		border-right: solid var(--px-1) var(--ui-75);
		background-image: linear-gradient(
			to bottom,
			transparent 35px,
			var(--ui-75) 35px,
			var(--ui-75) 36px,
			transparent 36px
		);
		background-repeat: no-repeat;
	}

	.schedule__hour {
		gap: var(--size-2xs);
	}

	.schedule__hour:first-child {
		height: var(--px-1);
	}

	.schedule__hour::after {
		background-color: var(--ui-75);
	}

	.grid-body {
		column-gap: 0;
		border-top: solid var(--px-1) var(--ui-75);
	}

	.grid-body .grid-timetable {
		background-image: linear-gradient(
			to bottom,
			var(--ui-75) 0 1px,
			var(--color-fg) 1px 52px
		);
		padding-inline: var(--px-3);

		/* EXPERIMENTAL: HIGHER CELLS */
		background-image: linear-gradient(
			to bottom,
			var(--ui-75) 0 1px,
			var(--color-fg) 1px 100px
		);
	}

	.grid-column:not(:last-child) {
		border-right: solid var(--px-1) var(--ui-75);
	}

	.grid-header {
		height: var(--px-36);
		padding: var(--gutter);
		background-color: var(--color-fg);
		border-bottom: solid var(--px-1) var(--ui-75);
	}

	.grid-header .schedule__venue__name {
		--paragraph-space: 0;
		font-family: var(--f-inter);
		font-style: normal;
		font-size: var(--f-xs);
		letter-spacing: var(--ls-0);
		line-height: var(--lh-xl);
		text-transform: initial;
		font-weight: 600;
	}

	.schedule__event {
		flex-direction: column;
		gap: var(--px-8);
		justify-content: start;
	}

	.schedule__modal.open {
		opacity: 1;
		visibility: visible;
		pointer-events: all;
		transition: all 500ms var(--ease-in-quart), visibility 0ms;
	}

	.schedule__modal__close {
		border-radius: var(--px-5);
		position: absolute;
		bottom: var(--size-sm);
	}

	.schedule__modal__card {
		border-radius: var(--px-4);
	}

	.schedule__modal__btn {
		--paragraph-space: 0;

		border-radius: var(--px-5);
		font-family: var(--f-inter);
		font-style: normal;
		font-size: var(--f-xs);
		letter-spacing: var(--ls-0);
		line-height: var(--lh-lg);
		line-height: var(--lh-xl);
		font-weight: 600;
	}

	/**
	 *
	 * MARK: VENUES
	 *
	 */

	.venues__cover__img {
		aspect-ratio: 1 / 1;
	}

	/**
	 *
	 * MARK: FOOTER
	 *
	 */

	.footer__newsletter {
		padding-top: var(--size-md);
	}

	.footer__nav {
		grid-template-columns: 1fr;
		row-gap: var(--size-md);
		padding-block-end: var(--size-sm);
	}

	.footer__credits {
		padding-block-start: var(--size-sm);
		grid-template-columns: 1fr;
		gap: var(--size-md);
	}
}

/**
 * Mobile Portrait: < 499px
 */

@media (max-width: 499px) {
}

/**
 * Small Mobile Portrait: < 499px
 */

@media (max-height: 599px) {
}
