:root {
	--rsm-ink: #151515;
	--rsm-muted: #5f6468;
	--rsm-line: rgba(21, 21, 21, 0.18);
	--rsm-surface: #f5f5f3;
}

.rsm-video {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #111;
}

.rsm-video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.rsm-project {
	width: 100%;
	color: var(--rsm-ink);
}

.rsm-project__intro {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: end;
}

.rsm-project__title {
	margin: 0 0 1rem;
	font-family: 'HelveticaNeue-Medium', Helvetica, Arial, Lucida, sans-serif;
	font-size: 25px;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: 0.5px;
	color: var(--rsm-ink);
}

.rsm-project__description {
	max-width: 820px;
	color: #000;
	font-size: 16px;
	line-height: 1.7;
	letter-spacing: 0.5px;
}

.rsm-project__description > *:first-child {
	margin-top: 0;
}

.rsm-project__description > *:last-child {
	margin-bottom: 0;
}

.rsm-project__action {
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
}

.rsm-project__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.85rem 1.5rem;
	border: 0;
	background-color: #f9f9f9;
	color: #000;
	text-decoration: none;
	font-size: 18px;
	font-weight: 600 !important;
	line-height: 1.2;
	letter-spacing: 0.5px;
	transition: background 180ms ease, color 180ms ease, opacity 180ms ease;
}

.rsm-project__button:hover,
.rsm-project__button:focus-visible {
	background-color: #000;
	color: #fff;
}

.rsm-components {
	display: grid;
	gap: 10px;
	padding-top: clamp(1.5rem, 4vw, 3rem);
}

.rsm-components--cols-1 {
	grid-template-columns: minmax(0, 1fr);
}

.rsm-components--cols-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rsm-components--cols-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.rsm-components--cols-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.rsm-component {
	min-width: 0;
	margin: 0;
	background: var(--rsm-surface);
}

.rsm-component__link {
	position: relative;
	display: block;
	min-height: clamp(260px, 30vw, 520px);
	background-color: var(--rsm-surface);
	background-position: center;
	background-size: cover;
	overflow: hidden;
	text-decoration: none;
}

.rsm-component__title {
	position: absolute;
	left: clamp(1rem, 2vw, 1.5rem);
	bottom: clamp(1rem, 2vw, 1.5rem);
	z-index: 1;
	max-width: calc(100% - 2rem);
	color: #000;
	font-family: 'HelveticaNeue-Medium', Helvetica, Arial, Lucida, sans-serif;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: 0.5px;
	padding: 0.5rem 0.75rem;
	background: rgb(254 254 254 / 55%);
}

.rsm-component-sections {
	display: grid;
	gap: clamp(3rem, 6vw, 5.5rem);
	padding-top: clamp(3rem, 6vw, 5rem);
}

.rsm-component-section {
	scroll-margin-top: 120px;
}

.rsm-component-section__intro {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: end;
	margin-bottom: clamp(1.5rem, 4vw, 3rem);
}

.rsm-component-section__title {
	margin: 0 0 1rem;
	font-family: 'HelveticaNeue-Medium', Helvetica, Arial, Lucida, sans-serif;
	font-size: 25px;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: 0.5px;
	color: var(--rsm-ink);
}

.rsm-component-section__description {
	max-width: 820px;
	color: #000;
	font-size: 16px;
	line-height: 1.7;
	letter-spacing: 0.5px;
}

.rsm-component-section__description > *:first-child {
	margin-top: 0;
}

.rsm-component-section__description > *:last-child {
	margin-bottom: 0;
}

.rsm-component-section__action {
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
}

.rsm-magnetic-items {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	align-items: flex-end;
	row-gap: 40px;
	column-gap: 30px;
}

.rsm-magnetic-item {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
}

.rsm-magnetic-item__group-title {
	margin: 0 0 0.5rem;
	font-family: 'HelveticaNeue-Medium', Helvetica, Arial, Lucida, sans-serif;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.5px;
	color: #000;
}

.rsm-magnetic-item__media {
	position: relative;
	display: block;
	width: 100%;
	margin: 0;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--rsm-surface);
}

.rsm-magnetic-item__image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity 220ms ease;
}

.rsm-magnetic-item__image--hover {
	opacity: 0;
}

.rsm-magnetic-item__media.has-hover:hover .rsm-magnetic-item__image--main,
.rsm-magnetic-item__media.has-hover:focus-within .rsm-magnetic-item__image--main {
	opacity: 0;
}

.rsm-magnetic-item__media.has-hover:hover .rsm-magnetic-item__image--hover,
.rsm-magnetic-item__media.has-hover:focus-within .rsm-magnetic-item__image--hover {
	opacity: 1;
}

.rsm-magnetic-item__title {
	margin: 0.85rem 0 0;
	color: #000;
	font-family: 'HelveticaNeue-Medium', Helvetica, Arial, Lucida, sans-serif;
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: 0.5px;
}

.rsm-accessories {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.rsm-accessories__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: flex-start;
	gap: 14px;
}

.rsm-accessories__filter {
	display: grid;
	gap: 0.45rem;
	min-width: min(100%, 220px);
	color: #000;
	font-size: 13px;
	line-height: 1.2;
	letter-spacing: 0.5px;
}

.rsm-accessories__filter span {
	font-family: 'HelveticaNeue-Medium', Helvetica, Arial, Lucida, sans-serif;
}

.rsm-accessories__filter select {
	width: 100%;
	min-height: 44px;
	border: 0;
	border-radius: 0;
	padding: 0.65rem 2.25rem 0.65rem 0.85rem;
	background-color: #f9f9f9;
	color: #000;
	font: inherit;
	font-size: 15px;
	letter-spacing: 0.5px;
	cursor: pointer;
}

.rsm-accessory-card[hidden] {
	display: none;
}

.rsm-accessories__empty {
	margin: 0;
	color: #000;
	font-size: 16px;
	line-height: 1.5;
	letter-spacing: 0.5px;
}

@media (max-width: 980px) {
	.rsm-project__intro,
	.rsm-component-section__intro {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.rsm-project__action,
	.rsm-component-section__action {
		justify-content: flex-start;
	}

	.rsm-components--cols-3,
	.rsm-components--cols-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rsm-magnetic-items {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.rsm-components,
	.rsm-components--cols-2,
	.rsm-components--cols-3,
	.rsm-components--cols-4 {
		grid-template-columns: 1fr;
	}

	.rsm-component__link {
		min-height: 280px;
	}

	.rsm-project__button {
		width: 100%;
	}

	.rsm-magnetic-items {
		grid-template-columns: 1fr;
	}

	.rsm-accessories__filter {
		width: 100%;
	}
}
