.rsmspark-cw {
	--rsmspark-cw-primary: #2563eb;
	--rsmspark-cw-radius: 8px;
	color: #1f2937;
}

.rsmspark-cw-btn {
	display: inline-block;
	padding: 0.65rem 1.25rem;
	border-radius: var(--rsmspark-cw-radius);
	background: var(--rsmspark-cw-primary);
	color: #fff;
	text-decoration: none;
	font-weight: 600;
}

.rsmspark-cw-hero {
	position: relative;
	overflow: hidden;
	border-radius: var(--rsmspark-cw-radius);
}

.rsmspark-cw-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.rsmspark-cw-hero__layers {
	position: absolute;
	inset: 0;
	isolation: isolate;
}

.rsmspark-cw-hero__layer {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-repeat: no-repeat;
	pointer-events: none;
}

.rsmspark-cw-hero__layer--video {
	overflow: hidden;
}

.rsmspark-cw-hero--has-layers .rsmspark-cw-hero__bg {
	background: #0f172a;
}

.rsmspark-cw-hero__layer--parallax {
	will-change: transform;
}

.rsmspark-cw-hero__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.rsmspark-cw-hero__inner {
	position: relative;
	z-index: 1;
	padding: 3rem 2rem;
	max-width: 720px;
}

.rsmspark-cw-hero--centered {
	min-height: var(--rsmspark-cw-hero-min-height, 320px);
	display: flex;
	align-items: center;
}

.rsmspark-cw-hero--centered .rsmspark-cw-hero__inner {
	width: 100%;
	margin: 0 auto;
	text-align: center;
	color: #fff;
}

.rsmspark-cw-hero--split {
	display: grid;
	grid-template-columns: var(--rsmspark-cw-hero-split-columns, 1fr 1fr);
	gap: 0;
	background: #f8fafc;
}

.rsmspark-cw-hero--split.rsmspark-cw-hero--image-right {
	grid-template-areas: 'content media';
}

.rsmspark-cw-hero--split.rsmspark-cw-hero--image-left {
	grid-template-areas: 'media content';
}

.rsmspark-cw-hero--split .rsmspark-cw-hero__media {
	grid-area: media;
	min-height: 280px;
	background-size: cover;
	background-position: var(--rsmspark-cw-hero-focal, center center);
}

.rsmspark-cw-hero--split .rsmspark-cw-hero__inner {
	grid-area: content;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.5rem, 4vw, 3rem);
	color: #0f172a;
}

.rsmspark-cw-hero--split.rsmspark-cw-hero--v-top .rsmspark-cw-hero__inner {
	justify-content: flex-start;
}

.rsmspark-cw-hero--split.rsmspark-cw-hero--v-bottom .rsmspark-cw-hero__inner {
	justify-content: flex-end;
}

.rsmspark-cw-hero__title {
	margin: 0 0 0.75rem;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1.15;
}

.rsmspark-cw-hero__text {
	margin: 0 0 1.25rem;
	font-size: 1.05rem;
	line-height: 1.6;
}

.rsmspark-cw-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.rsmspark-cw-tabs__tab {
	border: 1px solid #d1d5db;
	background: #fff;
	border-radius: var(--rsmspark-cw-radius);
	padding: 0.5rem 1rem;
	cursor: pointer;
}

.rsmspark-cw-tabs__tab.is-active {
	background: var(--rsmspark-cw-primary);
	border-color: var(--rsmspark-cw-primary);
	color: #fff;
}

.rsmspark-cw-tabs__panel {
	display: none;
	padding: 1rem;
	border: 1px solid #e5e7eb;
	border-radius: var(--rsmspark-cw-radius);
	background: #fff;
}

.rsmspark-cw-tabs__panel.is-active {
	display: block;
}

.rsmspark-cw-accordion {
	border: var(--rsmspark-cw-accordion-container-border-width, 0) solid var(--rsmspark-cw-accordion-container-border-color, transparent);
	border-radius: var(--rsmspark-cw-accordion-container-border-radius, 0);
}

.rsmspark-cw-accordion--faq .rsmspark-cw-accordion__trigger {
	font-weight: 600;
}

.rsmspark-cw-accordion--faq .rsmspark-cw-accordion__trigger span::before {
	content: 'Q. ';
	color: var(--rsmspark-cw-primary, #2563eb);
	font-weight: 700;
}

.rsmspark-cw-accordion--faq .rsmspark-cw-accordion__panel {
	padding-top: 0.25rem;
}

.rsmspark-cw-accordion--faq .rsmspark-cw-accordion__panel::before {
	content: 'A. ';
	display: block;
	font-weight: 700;
	color: var(--rsmspark-cw-primary, #2563eb);
	margin-bottom: 0.35rem;
}

.rsmspark-cw-image--has-aspect .rsmspark-cw-image__frame {
	aspect-ratio: var(--ri-aspect-ratio);
	overflow: hidden;
}

.rsmspark-cw-image--has-aspect .rsmspark-cw-image__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ri-object-position, center center);
}

.rsmspark-cw-logo-grid--marquee .rsmspark-cw-logo-grid__marquee-viewport {
	overflow: hidden;
	width: 100%;
}

.rsmspark-cw-logo-grid--marquee .rsmspark-cw-logo-grid__marquee-track {
	display: flex;
	align-items: center;
	width: max-content;
	gap: 2rem;
	animation: rsmspark-cw-marquee-scroll var(--rsmspark-cw-marquee-duration, 30s) linear infinite;
}

.rsmspark-cw-logo-grid--marquee:hover .rsmspark-cw-logo-grid__marquee-track {
	animation-play-state: paused;
}

.rsmspark-cw-logo-grid--marquee-static .rsmspark-cw-logo-grid__marquee-track {
	animation: none;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
}

.rsmspark-cw-logo-grid--marquee .rsmspark-cw-logo-grid__item {
	flex: 0 0 auto;
	min-width: 140px;
}

@keyframes rsmspark-cw-marquee-scroll {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.rsmspark-cw-logo-grid--marquee .rsmspark-cw-logo-grid__marquee-track {
		animation: none;
	}
}

.rsmspark-cw-accordion__item {
	border: var(--rsmspark-cw-accordion-item-border-width, 0) solid var(--rsmspark-cw-accordion-item-border-color, transparent);
	border-radius: var(--rsmspark-cw-accordion-item-border-radius, 0);
	margin-bottom: 0.5rem;
	overflow: hidden;
	background: var(--rsmspark-cw-accordion-item-bg, transparent);
}

.rsmspark-cw-accordion__item:last-child {
	margin-bottom: 0;
}

.rsmspark-cw-accordion__category {
	margin: 1.25rem 0 0.5rem;
	padding: 0 0.15rem;
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: color-mix(in srgb, currentColor 72%, transparent);
}

.rsmspark-cw-accordion__category:first-child {
	margin-top: 0;
}

.rsmspark-cw-repeater-accordion__meta-tag {
	display: inline-block;
	margin-left: 0.35rem;
	padding: 0.05rem 0.4rem;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	border-radius: 999px;
	background: color-mix(in srgb, var(--rsmspark-cw-brand-orange, #ff6b35) 16%, transparent);
	color: var(--rsmspark-cw-brand-orange, #ff6b35);
}

.rsmspark-cw-accordion__trigger {
	width: 100%;
	text-align: left;
	padding: 0.85rem 1rem;
	border: 0;
	background: var(--rsmspark-cw-accordion-trigger-bg, color-mix(in srgb, currentColor 12%, transparent));
	color: var(--rsmspark-cw-accordion-trigger-color, currentColor);
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.rsmspark-cw-accordion__trigger:hover {
	background: var(--rsmspark-cw-accordion-trigger-bg-hover, color-mix(in srgb, currentColor 18%, transparent));
	color: var(--rsmspark-cw-accordion-trigger-color-hover, var(--rsmspark-cw-accordion-trigger-color, currentColor));
}

.rsmspark-cw-accordion__trigger[aria-expanded="true"] {
	background: var(--rsmspark-cw-accordion-trigger-bg-active, var(--rsmspark-cw-primary, #2563eb));
	color: var(--rsmspark-cw-accordion-trigger-color-active, #fff);
}

.rsmspark-cw-accordion__panel {
	padding: 0 1rem 1rem;
	background: var(--rsmspark-cw-accordion-panel-bg, var(--rsmspark-cw-accordion-item-bg, transparent));
	color: var(--rsmspark-cw-accordion-panel-color, inherit);
}

.rsmspark-cw-accordion__panel.is-open {
	border-top: var(--rsmspark-cw-accordion-panel-border-width, 0) solid var(--rsmspark-cw-accordion-panel-border-color, transparent);
}

.rsmspark-cw-icon-grid__title {
	margin: 0 0 1rem;
}

.rsmspark-cw-icon-grid__grid {
	display: grid;
	gap: 1rem;
}

.rsmspark-cw-icon-grid--cols-2 .rsmspark-cw-icon-grid__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rsmspark-cw-icon-grid--cols-3 .rsmspark-cw-icon-grid__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.rsmspark-cw-icon-grid--cols-4 .rsmspark-cw-icon-grid__grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.rsmspark-cw-icon-grid__card {
	padding: 1.25rem;
	border: 1px solid #e5e7eb;
	border-radius: var(--rsmspark-cw-radius);
	background: #fff;
}

.rsmspark-cw-icon-grid__icon {
	display: inline-flex;
	font-size: 1.75rem;
	color: var(--rsmspark-cw-primary);
	margin-bottom: 0.5rem;
}

.rsmspark-cw-icon-grid__heading {
	margin: 0 0 0.5rem;
	font-size: 1.1rem;
}

.rsmspark-cw-icon-grid__text {
	margin: 0;
	line-height: 1.5;
}

.rsmspark-cw-posts-grid__items {
	display: grid;
	gap: 1rem;
}

.rsmspark-cw-posts-grid--grid.rsmspark-cw-posts-grid--cols-2 .rsmspark-cw-posts-grid__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rsmspark-cw-posts-grid--grid.rsmspark-cw-posts-grid--cols-3 .rsmspark-cw-posts-grid__items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rsmspark-cw-posts-grid--grid.rsmspark-cw-posts-grid--cols-4 .rsmspark-cw-posts-grid__items { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.rsmspark-cw-posts-grid--list .rsmspark-cw-posts-grid__items { grid-template-columns: 1fr; }

.rsmspark-cw-posts-grid--masonry .rsmspark-cw-posts-grid__items {
	column-gap: 1rem;
	display: block;
}
.rsmspark-cw-posts-grid--masonry.rsmspark-cw-posts-grid--cols-2 .rsmspark-cw-posts-grid__items { column-count: 2; }
.rsmspark-cw-posts-grid--masonry.rsmspark-cw-posts-grid--cols-3 .rsmspark-cw-posts-grid__items { column-count: 3; }
.rsmspark-cw-posts-grid--masonry.rsmspark-cw-posts-grid--cols-4 .rsmspark-cw-posts-grid__items { column-count: 4; }
.rsmspark-cw-posts-grid--masonry .rsmspark-cw-post-card { break-inside: avoid; margin-bottom: 1rem; }

.rsmspark-cw-posts-grid__carousel {
	position: relative;
}
.rsmspark-cw-posts-grid__carousel-arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	transform: translateY(-50%);
	width: 2.25rem;
	height: 2.25rem;
	border: 0;
	border-radius: 999px;
	background: rgba(15, 23, 42, 0.72);
	color: #fff;
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.2s ease;
}
.rsmspark-cw-posts-grid__carousel-arrow:hover,
.rsmspark-cw-posts-grid__carousel-arrow:focus-visible {
	background: rgba(15, 23, 42, 0.92);
}
.rsmspark-cw-posts-grid__carousel-arrow--prev { left: 0.35rem; }
.rsmspark-cw-posts-grid__carousel-arrow--next { right: 0.35rem; }

.rsmspark-cw-posts-grid--carousel .rsmspark-cw-posts-grid__items {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	gap: 1rem;
	padding: 0.15rem 2.5rem 0.35rem;
	scrollbar-width: thin;
}
.rsmspark-cw-posts-grid--carousel .rsmspark-cw-post-card {
	flex: 0 0 min(280px, 85vw);
	scroll-snap-align: start;
}
.rsmspark-cw-posts-grid--carousel.rsmspark-cw-posts-grid--cols-2 .rsmspark-cw-post-card {
	flex: 0 0 calc((100% - 1rem) / 2);
	min-width: min(280px, 85vw);
}
.rsmspark-cw-posts-grid--carousel.rsmspark-cw-posts-grid--cols-3 .rsmspark-cw-post-card {
	flex: 0 0 calc((100% - 2rem) / 3);
	min-width: min(260px, 85vw);
}
.rsmspark-cw-posts-grid--carousel.rsmspark-cw-posts-grid--cols-4 .rsmspark-cw-post-card {
	flex: 0 0 calc((100% - 3rem) / 4);
	min-width: min(240px, 85vw);
}

.rsmspark-cw-post-card {
	border: 1px solid #e5e7eb;
	border-radius: var(--rsmspark-cw-radius);
	overflow: hidden;
	background: #fff;
}
.rsmspark-cw-post-card__image {
	display: block;
	height: 180px;
	background-size: cover;
	background-position: center;
}
.rsmspark-cw-post-card__body { padding: 1rem; }
.rsmspark-cw-post-card__title { margin: 0 0 0.5rem; font-size: 1.1rem; }
.rsmspark-cw-post-card__title a { color: inherit; text-decoration: none; }
.rsmspark-cw-post-card__date { margin: 0 0 0.35rem; font-size: 0.85rem; color: #6b7280; }
.rsmspark-cw-post-card__author { margin: 0 0 0.35rem; font-size: 0.85rem; color: #6b7280; }
.rsmspark-cw-post-card__badge {
	display: inline-block;
	margin: 0 0 0.5rem;
	padding: 0.15rem 0.5rem;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--rsmspark-cw-accent, #2563eb);
	background: color-mix(in srgb, var(--rsmspark-cw-accent, #2563eb) 12%, transparent);
	border-radius: 999px;
}
.rsmspark-cw-post-card__excerpt { margin: 0; line-height: 1.5; }
.rsmspark-cw-post-card__cta { margin: 0.75rem 0 0; }
.rsmspark-cw-post-card--style-bordered {
	border-width: 2px;
	border-color: var(--rsmspark-cw-primary, #2563eb);
	box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08);
}
.rsmspark-cw-posts-grid--card-bordered .rsmspark-cw-posts-grid__items > .rsmspark-cw-post-card,
.rsmspark-cw-posts-grid[data-rsmspark-cw-card-style="bordered"] .rsmspark-cw-posts-grid__items > .rsmspark-cw-post-card {
	border-width: 2px;
	border-color: var(--rsmspark-cw-primary, #2563eb);
	box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08);
}
.rsmspark-cw-posts-grid--card-overlay .rsmspark-cw-posts-grid__items > .rsmspark-cw-post-card .rsmspark-cw-post-card__image,
.rsmspark-cw-posts-grid[data-rsmspark-cw-card-style="overlay"] .rsmspark-cw-posts-grid__items > .rsmspark-cw-post-card .rsmspark-cw-post-card__image {
	position: relative;
	display: flex;
	align-items: flex-end;
}
.rsmspark-cw-post-card--style-overlay .rsmspark-cw-post-card__body { padding-top: 0.75rem; }
.rsmspark-cw-post-card--style-overlay .rsmspark-cw-post-card__image {
	position: relative;
	display: flex;
	align-items: flex-end;
}
.rsmspark-cw-post-card__overlay-title {
	display: block;
	width: 100%;
	padding: 1rem;
	color: #fff;
	font-size: 1.1rem;
	font-weight: 600;
	line-height: 1.3;
	background: linear-gradient(transparent, rgba(0, 0, 0, 0.65));
}
.rsmspark-cw-posts-grid[style*="--rsmspark-cw-dpg-image-ratio"] .rsmspark-cw-post-card__image {
	height: auto;
	aspect-ratio: var(--rsmspark-cw-dpg-image-ratio);
}
.rsmspark-cw-posts-grid__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin-bottom: 1rem;
}
.rsmspark-cw-posts-grid__filter-group {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}
.rsmspark-cw-posts-grid__filter {
	border: 1px solid #d1d5db;
	border-radius: 999px;
	padding: 0.35rem 0.85rem;
	background: #fff;
	color: inherit;
	font: inherit;
	cursor: pointer;
}
.rsmspark-cw-posts-grid__filter.is-active {
	border-color: var(--rsmspark-cw-accent, #2563eb);
	background: var(--rsmspark-cw-accent, #2563eb);
	color: #fff;
}
.rsmspark-cw-posts-grid__search-input {
	min-width: 12rem;
	padding: 0.4rem 0.75rem;
	border: 1px solid #d1d5db;
	border-radius: var(--rsmspark-cw-radius);
}
.rsmspark-cw-posts-grid.is-loading .rsmspark-cw-posts-grid__items {
	opacity: 0.55;
	pointer-events: none;
}
.rsmspark-cw-posts-grid__empty { margin: 0; color: #6b7280; }
.rsmspark-cw-posts-grid__more {
	margin: 1.25rem 0 0;
	text-align: center;
}
.rsmspark-cw-posts-grid__infinite-sentinel {
	height: 1px;
	margin-top: 1rem;
}
.rsmspark-cw-posts-grid__infinite-status {
	margin: 0.75rem 0 0;
	text-align: center;
	font-size: 0.9rem;
	color: #6b7280;
}
.rsmspark-cw-posts-grid__error {
	margin: 1rem 0 0;
	padding: 0.75rem 1rem;
	border-radius: var(--rsmspark-cw-radius);
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
	font-size: 0.95rem;
}
.rsmspark-cw-posts-grid__error .rsmspark-cw-btn--ghost {
	margin-left: 0.5rem;
	background: transparent;
	border: 1px solid #991b1b;
	color: #991b1b;
}

.rsmspark-cw-filterable-gallery {
	--rsmspark-cw-fg-gap: 1rem;
}
.rsmspark-cw-filterable-gallery__title {
	margin: 0 0 1rem;
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	line-height: 1.25;
}
.rsmspark-cw-filterable-gallery__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin-bottom: 1rem;
}
.rsmspark-cw-filterable-gallery__filter {
	border: 1px solid #d1d5db;
	border-radius: 999px;
	padding: 0.35rem 0.85rem;
	background: #fff;
	color: inherit;
	font: inherit;
	cursor: pointer;
}
.rsmspark-cw-filterable-gallery__filter.is-active {
	border-color: var(--rsmspark-cw-accent, #2563eb);
	background: var(--rsmspark-cw-accent, #2563eb);
	color: #fff;
}
.rsmspark-cw-filterable-gallery__items {
	display: grid;
	gap: var(--rsmspark-cw-fg-gap);
}
.rsmspark-cw-filterable-gallery--cols-2 .rsmspark-cw-filterable-gallery__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rsmspark-cw-filterable-gallery--cols-3 .rsmspark-cw-filterable-gallery__items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rsmspark-cw-filterable-gallery--cols-4 .rsmspark-cw-filterable-gallery__items { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rsmspark-cw-filterable-gallery__item {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.rsmspark-cw-filterable-gallery__item.is-filtered-out {
	display: none;
}
.rsmspark-cw-filterable-gallery__trigger {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: zoom-in;
}
.rsmspark-cw-filterable-gallery__image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--rsmspark-cw-radius, 8px);
	object-fit: cover;
	aspect-ratio: 4 / 3;
}
.rsmspark-cw-filterable-gallery__caption {
	margin: 0;
	font-size: 0.9rem;
	line-height: 1.4;
	color: #4b5563;
}
@media (max-width: 768px) {
	.rsmspark-cw-filterable-gallery--cols-3 .rsmspark-cw-filterable-gallery__items,
	.rsmspark-cw-filterable-gallery--cols-4 .rsmspark-cw-filterable-gallery__items {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 480px) {
	.rsmspark-cw-filterable-gallery__items {
		grid-template-columns: 1fr !important;
	}
}

.rsmspark-cw-before-after {
	width: 100%;
}
.rsmspark-cw-before-after__title {
	margin: 0 0 1rem;
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	line-height: 1.2;
}
.rsmspark-cw-before-after__frame {
	position: relative;
	overflow: hidden;
	border-radius: var(--rsmspark-cw-radius, 8px);
	background: #0f172a;
	user-select: none;
	touch-action: none;
}
.rsmspark-cw-before-after__image {
	display: block;
	width: 100%;
	height: auto;
	vertical-align: middle;
}
.rsmspark-cw-before-after__image--before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	clip-path: inset(0 calc(100% - var(--rsm-ba-position, 50%)) 0 0);
}
.rsmspark-cw-before-after--vertical .rsmspark-cw-before-after__image--before {
	clip-path: inset(0 0 calc(100% - var(--rsm-ba-position, 50%)) 0);
}
.rsmspark-cw-before-after__handle {
	position: absolute;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: ew-resize;
}
.rsmspark-cw-before-after--horizontal .rsmspark-cw-before-after__handle {
	top: 0;
	bottom: 0;
	left: var(--rsm-ba-position, 50%);
	width: 0;
	transform: translateX(-50%);
}
.rsmspark-cw-before-after--vertical .rsmspark-cw-before-after__handle {
	left: 0;
	right: 0;
	top: var(--rsm-ba-position, 50%);
	height: 0;
	transform: translateY(-50%);
	cursor: ns-resize;
}
.rsmspark-cw-before-after__handle-line {
	position: absolute;
	background: #fff;
	box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.35);
}
.rsmspark-cw-before-after--horizontal .rsmspark-cw-before-after__handle-line {
	top: 0;
	bottom: 0;
	width: 3px;
	left: 50%;
	transform: translateX(-50%);
}
.rsmspark-cw-before-after--vertical .rsmspark-cw-before-after__handle-line {
	left: 0;
	right: 0;
	height: 3px;
	top: 50%;
	transform: translateY(-50%);
}
.rsmspark-cw-before-after__handle-knob {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 999px;
	background: #fff;
	color: #0f172a;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.25);
}
.rsmspark-cw-before-after__handle-grip {
	width: 14px;
	height: 14px;
	border-left: 2px solid currentColor;
	border-right: 2px solid currentColor;
}
.rsmspark-cw-before-after--vertical .rsmspark-cw-before-after__handle-grip {
	border-left: 0;
	border-right: 0;
	border-top: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
}
.rsmspark-cw-before-after__handle:focus-visible {
	outline: 2px solid var(--rsmspark-cw-primary, #2563eb);
	outline-offset: 2px;
}
.rsmspark-cw-before-after__label {
	position: absolute;
	z-index: 2;
	padding: 0.35rem 0.65rem;
	border-radius: 999px;
	background: rgba(15, 23, 42, 0.72);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	pointer-events: none;
}
.rsmspark-cw-before-after__label--before {
	top: 1rem;
	left: 1rem;
}
.rsmspark-cw-before-after__label--after {
	top: 1rem;
	right: 1rem;
}
.rsmspark-cw-before-after--vertical .rsmspark-cw-before-after__label--before {
	top: 1rem;
	left: 50%;
	transform: translateX(-50%);
}
.rsmspark-cw-before-after--vertical .rsmspark-cw-before-after__label--after {
	top: auto;
	bottom: 1rem;
	right: auto;
	left: 50%;
	transform: translateX(-50%);
}

.rsmspark-cw-carousel { position: relative; overflow: hidden; border-radius: var(--rsmspark-cw-radius); }
.rsmspark-cw-carousel__slide { display: none; }
.rsmspark-cw-carousel__slide.is-active { display: block; }
.rsmspark-cw-carousel__media {
	margin: 0;
	padding: 0;
	background: transparent;
}
.rsmspark-cw-carousel__image {
	display: block;
	width: 100%;
	height: auto;
}
.rsmspark-cw-carousel__media--framed {
	position: relative;
	overflow: hidden;
	background-color: #f8fafc;
}
.rsmspark-cw-carousel__media--framed .rsmspark-cw-carousel__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}
.rsmspark-cw-carousel__caption { padding: 1.25rem; background: #fff; }
.rsmspark-cw-carousel__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: rgba(15, 23, 42, 0.65);
	color: #fff;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	cursor: pointer;
}
.rsmspark-cw-carousel__arrow--prev { left: 8px; }
.rsmspark-cw-carousel__arrow--next { right: 8px; }
.rsmspark-cw-carousel__dots { display: flex; gap: 6px; justify-content: center; padding: 0.75rem; }
.rsmspark-cw-carousel__dot {
	width: 10px;
	height: 10px;
	border-radius: 999px;
	border: 0;
	background: #d1d5db;
	cursor: pointer;
}
.rsmspark-cw-carousel__dot.is-active { background: var(--rsmspark-cw-primary); }

.rsmspark-cw-pricing {
	--rsmspark-cw-pricing-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.rsmspark-cw-pricing__intro {
	margin: 0 0 var(--rsmspark-cw-pricing-section-cards-gap, 2rem);
	text-align: center;
}

.rsmspark-cw-pricing__title {
	margin: 0 0 var(--rsmspark-cw-pricing-section-title-gap, 0.75rem);
	font-size: var(--rsmspark-cw-pricing-section-title-size, clamp(1.75rem, 1.5rem + 1vw, 2.25rem));
	font-weight: 700;
	line-height: 1.15;
	color: var(--rsmspark-cw-pricing-section-title-color, #111827);
}

.rsmspark-cw-pricing__subtitle {
	margin: 0;
	max-width: 42rem;
	margin-inline: auto;
	font-size: var(--rsmspark-cw-pricing-section-subtitle-size, 1rem);
	line-height: 1.5;
	color: var(--rsmspark-cw-pricing-section-subtitle-color, #6b7280);
}

.rsmspark-cw-pricing__toggle {
	display: flex;
	width: fit-content;
	gap: 0.35rem;
	margin: 0 auto 1.25rem;
	padding: 0.25rem;
	border-radius: 999px;
	background: #f3f4f6;
}

.rsmspark-cw-pricing__toggle button {
	border: 0;
	background: transparent;
	border-radius: 999px;
	padding: 0.45rem 1rem;
	cursor: pointer;
	font: inherit;
	color: #374151;
}

.rsmspark-cw-pricing__toggle button.is-active {
	background: #fff;
	color: #111827;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}

.rsmspark-cw-pricing__grid {
	display: grid;
	grid-template-columns: var(--rsmspark-cw-pricing-columns);
	gap: 1rem;
	align-items: stretch;
}

@supports (grid-template-rows: subgrid) {
	.rsmspark-cw-pricing__grid {
		grid-template-rows: repeat(5, auto);
	}

	.rsmspark-cw-pricing__plan {
		grid-template-rows: subgrid;
		grid-row: span 5;
		grid-template-columns: minmax(0, 1fr);
	}
}

.rsmspark-cw-pricing__plan {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto auto auto auto auto;
	text-align: left;
	background: var(--rsmspark-cw-pricing-plan-bg, #fff);
	border: var(--rsmspark-cw-pricing-plan-border-width, 1px) solid var(--rsmspark-cw-pricing-plan-border, #e5e7eb);
	border-radius: var(--rsmspark-cw-pricing-plan-radius, 12px);
	padding: 1.5rem 1.25rem 1.25rem;
}

.rsmspark-cw-pricing__plan.is-highlighted {
	background: var(--rsmspark-cw-pricing-highlight-bg, #faf5ff);
	border-color: var(--rsmspark-cw-pricing-highlight-border, #c4b5fd);
}

.rsmspark-cw-pricing__badge-row {
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
	width: 100%;
	min-height: calc(var(--rsmspark-cw-pricing-badge-size, 0.6875rem) * 1.3 + 0.4rem);
	margin-bottom: var(--rsmspark-cw-pricing-badge-name-gap, 1rem);
}

.rsmspark-cw-pricing__badge-row.is-empty {
	visibility: hidden;
}

.rsmspark-cw-pricing__badge {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	font-size: var(--rsmspark-cw-pricing-badge-size, 0.6875rem);
	font-weight: 700;
	line-height: 1.3;
	white-space: nowrap;
	background: var(--rsmspark-cw-pricing-badge-bg, #4c1d95);
	color: var(--rsmspark-cw-pricing-badge-color, #fff);
}

.rsmspark-cw-pricing__header {
	grid-row: 1;
	display: flex;
	flex-direction: column;
	min-height: 0;
	margin-bottom: var(--rsmspark-cw-pricing-desc-price-gap, 1.25rem);
}

.rsmspark-cw-pricing__name {
	margin: 0 0 var(--rsmspark-cw-pricing-headline-desc-gap, 0.75rem);
	font-size: var(--rsmspark-cw-pricing-headline-size, 1.375rem);
	font-weight: var(--rsmspark-cw-pricing-headline-weight, 700);
	color: var(--rsmspark-cw-pricing-headline-color, #111827);
	line-height: 1.2;
}

.rsmspark-cw-pricing__desc {
	margin: 0;
	min-height: var(--rsmspark-cw-pricing-description-min-height, 0);
	font-size: var(--rsmspark-cw-pricing-description-size, 0.9375rem);
	color: var(--rsmspark-cw-pricing-description-color, #6b7280);
	line-height: 1.45;
}

.rsmspark-cw-pricing__desc.is-empty {
	color: transparent;
	user-select: none;
}

.rsmspark-cw-pricing__price-stack {
	grid-row: 2;
	align-self: start;
	margin-bottom: 0;
}

.rsmspark-cw-pricing__price-block + .rsmspark-cw-pricing__price-block {
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.rsmspark-cw-pricing__price-row {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.35rem 0.5rem;
}

.rsmspark-cw-pricing__compare {
	font-size: calc(var(--rsmspark-cw-pricing-price-size, 2.25rem) * 0.55);
	color: var(--rsmspark-cw-pricing-compare-color, #9ca3af);
	text-decoration: line-through;
}

.rsmspark-cw-pricing__price {
	margin: 0;
	font-size: var(--rsmspark-cw-pricing-price-size, 2.25rem);
	font-weight: 700;
	line-height: 1;
	color: var(--rsmspark-cw-pricing-price-color, #111827);
}

.rsmspark-cw-pricing__suffix {
	margin-left: 0.15rem;
	font-size: 0.45em;
	font-weight: 600;
	color: var(--rsmspark-cw-pricing-description-color, #6b7280);
}

.rsmspark-cw-pricing__billing {
	margin: 0.35rem 0 0;
	min-height: calc(var(--rsmspark-cw-pricing-billing-size, 0.8125rem) * 1.4);
	font-size: var(--rsmspark-cw-pricing-billing-size, 0.8125rem);
	line-height: 1.4;
	color: var(--rsmspark-cw-pricing-billing-color, #6b7280);
}

.rsmspark-cw-pricing__billing.is-empty {
	visibility: hidden;
}

.rsmspark-cw-pricing__promo {
	grid-row: 3;
	align-self: start;
	margin: 0 0 0.5rem;
	min-height: 1.35rem;
}

.rsmspark-cw-pricing__promo.is-empty {
	visibility: hidden;
}

.rsmspark-cw-pricing__promo span {
	display: inline-block;
	padding: 0.2rem 0.55rem;
	border-radius: 999px;
	font-size: var(--rsmspark-cw-pricing-promo-size, 0.75rem);
	font-weight: 600;
	background: var(--rsmspark-cw-pricing-promo-bg, #dcfce7);
	color: var(--rsmspark-cw-pricing-promo-color, #166534);
}

.rsmspark-cw-pricing__features {
	grid-row: 4;
	align-self: start;
	margin: 0;
	padding: 1rem 0 0;
	list-style: none;
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.rsmspark-cw-pricing__features.is-empty {
	display: none;
}

.rsmspark-cw-pricing__footer {
	grid-row: 5;
	align-self: end;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin-top: 1.25rem;
	padding-top: 0.25rem;
}

.rsmspark-cw-pricing__cta-stack {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
}

.rsmspark-cw-pricing__footer.is-empty {
	display: none;
}

.rsmspark-cw-pricing__cta--placeholder {
	display: block;
	min-height: 3rem;
	visibility: hidden;
}

.rsmspark-cw-pricing__rsmspark-btn .rsmspark-btn {
	width: 100%;
	justify-content: center;
}

.rsmspark-cw-pricing__cta {
	display: block;
	width: 100%;
	padding: 0.85rem 1.25rem;
	border-radius: 999px;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
	font-weight: 700;
	line-height: 1.25;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.rsmspark-cw-pricing__cta.is-unlinked {
	cursor: default;
	opacity: 0.65;
}

.rsmspark-cw-pricing__cta--outline {
	background: var(--rsmspark-cw-pricing-cta-outline-bg, #fff);
	color: var(--rsmspark-cw-pricing-cta-outline-text, #111827);
	border: 1px solid var(--rsmspark-cw-pricing-cta-outline-border, #d1d5db);
}

.rsmspark-cw-pricing__cta--outline:hover,
.rsmspark-cw-pricing__cta--outline:focus-visible {
	background: var(--rsmspark-cw-pricing-cta-outline-bg-hover, #f9fafb);
	color: var(--rsmspark-cw-pricing-cta-outline-text, #111827);
	border-color: var(--rsmspark-cw-pricing-cta-outline-border-hover, #9ca3af);
}

.rsmspark-cw-pricing__cta--primary {
	background: var(--rsmspark-cw-pricing-cta-primary-bg, #111827);
	color: var(--rsmspark-cw-pricing-cta-primary-text, #fff);
	border: 1px solid var(--rsmspark-cw-pricing-cta-primary-bg, #111827);
}

.rsmspark-cw-pricing__cta--primary:hover,
.rsmspark-cw-pricing__cta--primary:focus-visible {
	background: var(--rsmspark-cw-pricing-cta-primary-bg-hover, #374151);
	color: var(--rsmspark-cw-pricing-cta-primary-text, #fff);
	border-color: var(--rsmspark-cw-pricing-cta-primary-bg-hover, #374151);
}

.rsmspark-cw-pricing__plan.is-highlighted .rsmspark-cw-pricing__cta--primary:not(:hover):not(:focus-visible) {
	background: var(--rsmspark-cw-primary, var(--rsmspark-cw-pricing-cta-primary-bg, #111827));
	border-color: var(--rsmspark-cw-primary, var(--rsmspark-cw-pricing-cta-primary-bg, #111827));
}

.rsmspark-cw-pricing__cta-note {
	margin: 0;
	text-align: center;
	font-size: 0.75rem;
	line-height: 1.45;
	color: var(--rsmspark-cw-pricing-billing-color, #6b7280);
}

.rsmspark-cw-pricing__secondary {
	text-align: center;
	font-size: 0.875rem;
	font-weight: 600;
	color: #111827;
	text-decoration: none;
}

@supports not (grid-template-rows: subgrid) {
	.rsmspark-cw-pricing__plan {
		display: flex;
		flex-direction: column;
	}

	.rsmspark-cw-pricing__header,
	.rsmspark-cw-pricing__price-stack,
	.rsmspark-cw-pricing__promo,
	.rsmspark-cw-pricing__features {
		grid-row: auto;
	}

	.rsmspark-cw-pricing__footer {
		margin-top: auto;
	}
}

.rsmspark-cw-pricing__features li {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 0.35rem;
	padding-left: 1.35rem;
	margin-bottom: 0.55rem;
	font-size: var(--rsmspark-cw-pricing-feature-size, 0.875rem);
	line-height: 1.4;
	color: var(--rsmspark-cw-pricing-feature-color, #374151);
}

.rsmspark-cw-pricing__feature-text {
	flex: 1 1 auto;
	min-width: 0;
}

.rsmspark-cw-pricing__feature-tip-wrap {
	position: relative;
	flex: 0 0 auto;
	margin-top: 0.05em;
}

.rsmspark-cw-pricing__feature-tip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.1rem;
	height: 1.1rem;
	padding: 0;
	border: 1px solid rgba(0, 0, 0, 0.15);
	border-radius: 999px;
	background: #fff;
	color: var(--rsmspark-cw-pricing-feature-icon-color, #111827);
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1;
	cursor: help;
}

.rsmspark-cw-pricing__feature-tip:hover,
.rsmspark-cw-pricing__feature-tip:focus-visible {
	border-color: var(--rsmspark-cw-accent, #2563eb);
	color: var(--rsmspark-cw-accent, #2563eb);
	outline: none;
}

.rsmspark-cw-pricing__feature-tooltip {
	position: absolute;
	z-index: 5;
	right: 0;
	bottom: calc(100% + 0.35rem);
	width: max-content;
	max-width: min(16rem, 70vw);
	padding: 0.45rem 0.6rem;
	border-radius: 6px;
	background: #111827;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.35;
	text-align: left;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.15s ease, visibility 0.15s ease;
}

.rsmspark-cw-pricing__feature-tooltip::after {
	content: '';
	position: absolute;
	top: 100%;
	right: 0.45rem;
	border: 5px solid transparent;
	border-top-color: #111827;
}

.rsmspark-cw-pricing__feature-tip-wrap:hover .rsmspark-cw-pricing__feature-tooltip,
.rsmspark-cw-pricing__feature-tip-wrap:focus-within .rsmspark-cw-pricing__feature-tooltip,
.rsmspark-cw-pricing__feature-tip-wrap.is-open .rsmspark-cw-pricing__feature-tooltip {
	opacity: 1;
	visibility: visible;
}

.rsmspark-cw-pricing__features li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.35em;
	width: 0.65rem;
	height: 0.65rem;
	border-radius: 2px;
	background: var(--rsmspark-cw-pricing-feature-icon-color, #111827);
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M6.2 11.2 3.4 8.4l-.9.9 3.7 3.7 7.7-7.7-.9-.9z'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M6.2 11.2 3.4 8.4l-.9.9 3.7 3.7 7.7-7.7-.9-.9z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.rsmspark-cw-pricing__features .is-unavailable {
	opacity: 0.45;
	text-decoration: line-through;
}

.rsmspark-cw-pricing__features .is-unavailable::before {
	background: #9ca3af;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M4 4l8 8M12 4 4 12' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M4 4l8 8M12 4 4 12' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center / contain no-repeat;
}

.rsmspark-cw-pricing--toggle:not(.rsmspark-cw-pricing--show-both).is-period-monthly .rsmspark-cw-pricing__price-block--annual {
	display: none;
}

.rsmspark-cw-pricing--toggle:not(.rsmspark-cw-pricing--show-both).is-period-annual .rsmspark-cw-pricing__price-block--monthly {
	display: none;
}

.rsmspark-cw-pricing:not(.rsmspark-cw-pricing--show-both):not(.rsmspark-cw-pricing--toggle) .rsmspark-cw-pricing__price-block--annual {
	display: none;
}

@media (max-width: 782px) {
	.rsmspark-cw-pricing__grid {
		grid-template-columns: 1fr;
	}
}

.rsmspark-cw-team__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1rem;
}
.rsmspark-cw-team--carousel .rsmspark-cw-team__grid {
	display: flex;
	overflow-x: auto;
	gap: 1rem;
}
.rsmspark-cw-team--carousel .rsmspark-cw-team__card { flex: 0 0 260px; }
.rsmspark-cw-team__card {
	border: 1px solid #e5e7eb;
	border-radius: var(--rsmspark-cw-radius);
	padding: 1rem;
	background: #fff;
	text-align: center;
}
.rsmspark-cw-team__photo {
	width: 96px;
	height: 96px;
	margin: 0 auto 0.75rem;
	border-radius: 999px;
	background-size: cover;
	background-position: center;
}
.rsmspark-cw-team__role { color: #6b7280; margin: 0 0 0.5rem; }
.rsmspark-cw-team__quote { font-style: italic; }
.rsmspark-cw-team__more {
	border: 0;
	background: transparent;
	color: var(--rsmspark-cw-primary);
	cursor: pointer;
	text-decoration: underline;
}
.rsmspark-cw-team__modal[hidden] { display: none; }
.rsmspark-cw-team__modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
}
.rsmspark-cw-team__modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
}
.rsmspark-cw-team__modal-panel {
	position: relative;
	max-width: 520px;
	margin: 10vh auto;
	background: #fff;
	border-radius: var(--rsmspark-cw-radius);
	padding: 1.5rem;
	z-index: 1;
}
.rsmspark-cw-team__modal-close {
	position: absolute;
	top: 8px;
	right: 10px;
	border: 0;
	background: transparent;
	font-size: 1.5rem;
	cursor: pointer;
}

/* RSM Image */
.so-widget-rsm-image.rsmspark-cw-image-so-shell,
.rsmspark-cw-image-so-shell.so-widget-rsm-image,
.so-widget-image.rsmspark-cw-image-so-shell,
.rsmspark-cw-image-so-shell.so-widget-image {
	background: transparent !important;
	border-color: transparent !important;
	border-style: none !important;
	border-width: 0 !important;
	box-shadow: none !important;
	margin: 0 !important;
	outline: none !important;
	padding: 0 !important;
}

.rsmspark-cw-image {
	border: 0;
	display: flex;
	margin: 0;
	min-height: var(--ri-min-height, 0);
	padding: 0;
	width: 100%;
}

.rsmspark-cw-image--h-left {
	justify-content: flex-start;
}

.rsmspark-cw-image--h-center {
	justify-content: center;
}

.rsmspark-cw-image--h-right {
	justify-content: flex-end;
}

.rsmspark-cw-image--v-top {
	align-items: flex-start;
}

.rsmspark-cw-image--v-center {
	align-items: center;
}

.rsmspark-cw-image--v-bottom {
	align-items: flex-end;
}

.rsmspark-cw-image__frame {
	border: none;
	border-radius: var(--ri-radius, 0);
	box-sizing: border-box;
	flex-shrink: 0;
	line-height: 0;
	max-width: var(--ri-max-width, none);
	overflow: hidden;
	width: var(--ri-width, 100%);
}

.rsmspark-cw-image--has-border .rsmspark-cw-image__frame {
	border: var(--ri-border-width, 1px) solid var(--ri-border-color, #e2e8f0);
}

.rsmspark-cw-image__link {
	display: block;
	line-height: 0;
	text-decoration: none;
}

.rsmspark-cw-image__img {
	display: block;
	height: auto;
	width: 100%;
}

.rsmspark-cw-image__placeholder {
	align-items: center;
	background: #f1f5f9;
	border: 1px dashed #cbd5e1;
	border-radius: var(--ri-radius, 0);
	color: #64748b;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	justify-content: center;
	max-width: var(--ri-max-width, none);
	min-height: 120px;
	padding: 1.5rem;
	text-align: center;
	width: var(--ri-width, 100%);
}

.rsmspark-cw-image__placeholder-icon {
	font-size: 2rem;
	height: 2rem;
	line-height: 1;
	width: 2rem;
}

.rsmspark-cw-image__placeholder-label {
	font-size: 0.875rem;
	line-height: 1.4;
}

/* RSM Image lightbox */
body.rsmspark-cw-image-lightbox-open {
	overflow: hidden;
}

.rsmspark-cw-image--lightbox .rsmspark-cw-image__lightbox-trigger {
	background: transparent;
	border: 0;
	cursor: zoom-in;
	display: block;
	line-height: 0;
	padding: 0;
	width: 100%;
}

.rsmspark-cw-image--lightbox .rsmspark-cw-image__lightbox-trigger:focus-visible {
	outline: 2px solid var(--rsmspark-cw-primary, #2563eb);
	outline-offset: 2px;
}

.rsmspark-cw-image__lightbox {
	align-items: center;
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 1rem;
	position: fixed;
	z-index: 100000;
}

.rsmspark-cw-image__lightbox[hidden] {
	display: none !important;
}

.rsmspark-cw-image__lightbox.is-open {
	animation: rsmspark-cw-image-lightbox-fade 0.2s ease;
}

.rsmspark-cw-image__lightbox-backdrop {
	background: rgba(15, 23, 42, 0.85);
	inset: 0;
	position: absolute;
}

.rsmspark-cw-image__lightbox-dialog {
	background: transparent;
	border: 0;
	box-shadow: none;
	max-height: min(92vh, 1200px);
	max-width: min(96vw, 1400px);
	overflow: visible;
	position: relative;
	width: 100%;
	z-index: 1;
}

.rsmspark-cw-image__lightbox-close {
	background: rgba(15, 23, 42, 0.55);
	border: 0;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	font-size: 1.5rem;
	height: 2.25rem;
	line-height: 1;
	position: absolute;
	right: 0.35rem;
	top: -2.75rem;
	width: 2.25rem;
	z-index: 2;
}

.rsmspark-cw-image__lightbox-close:hover,
.rsmspark-cw-image__lightbox-close:focus-visible {
	background: rgba(15, 23, 42, 0.85);
}

.rsmspark-cw-image__lightbox-body {
	text-align: center;
}

.rsmspark-cw-image__lightbox-img {
	display: block;
	height: auto;
	margin: 0 auto;
	max-height: min(92vh, 1200px);
	max-width: 100%;
	width: auto;
}

.rsmspark-cw-image__lightbox-caption {
	color: #e2e8f0;
	font-size: 0.9375rem;
	line-height: 1.5;
	margin: 0.75rem 0 0;
}

@keyframes rsmspark-cw-image-lightbox-fade {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.rsmspark-cw-headline {
	width: 100%;
	max-width: 100%;
}

.rsmspark-cw-headline__inner {
	width: var(--rh-width, 100%);
	max-width: var(--rh-max-width, none);
	margin-left: auto;
	margin-right: auto;
	background: var(--rh-bg, transparent);
	border-radius: var(--rh-radius, 0);
	padding: var(--rh-padding, 0);
	box-sizing: border-box;
}

.rsmspark-cw-headline--has-border .rsmspark-cw-headline__inner {
	border: var(--rh-border-width, 1px) solid var(--rh-border-color, #e2e8f0);
}

.rsmspark-cw-headline__overline {
	margin: 0 0 0.5rem;
	font-family: var(--rh-overline-font, inherit);
	font-size: var(--rh-overline-size, clamp(0.6875rem, 0.625rem + 0.25vw, 0.8125rem));
	color: var(--rh-overline-color, currentColor);
	text-align: var(--rh-overline-align, center);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	line-height: 1.35;
}

.rsmspark-cw-headline__title {
	margin: 0 0 0.75rem;
	font-family: var(--rh-headline-font, inherit);
	font-size: var(--rh-headline-size, clamp(1.75rem, 1.25rem + 2.5vw, 2.75rem));
	color: var(--rh-headline-color, inherit);
	text-align: var(--rh-headline-align, center);
	font-weight: 700;
	line-height: 1.2;
	overflow-wrap: break-word;
}

.rsmspark-cw-headline__subheadline {
	margin: 0;
	font-family: var(--rh-subheadline-font, inherit);
	font-size: var(--rh-subheadline-size, clamp(1rem, 0.9rem + 0.5vw, 1.375rem));
	color: var(--rh-subheadline-color, inherit);
	text-align: var(--rh-subheadline-align, center);
	line-height: 1.5;
	max-width: 100%;
}

.rsmspark-cw-headline__placeholder {
	margin: 0;
	padding: 1rem;
	text-align: center;
	color: #64748b;
	font-size: 0.875rem;
	border: 1px dashed #cbd5e1;
	border-radius: var(--rsmspark-cw-radius, 8px);
}

.rsmspark-cw-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.rsmspark-cw-hero--has-video .rsmspark-cw-hero__bg {
	background: #0f172a;
}

.rsmspark-cw-hero--parallax .rsmspark-cw-hero__bg,
.rsmspark-cw-hero--parallax .rsmspark-cw-hero__layer--parallax {
	will-change: transform;
}

/* RSM Logo Grid — strip SiteOrigin outer widget chrome */
.so-widget-logo-grid.rsmspark-cw-logo-grid-so-shell,
.rsmspark-cw-logo-grid-so-shell.so-widget-logo-grid {
	background: transparent !important;
	border-color: transparent !important;
	border-style: none !important;
	border-width: 0 !important;
	box-shadow: none !important;
	margin: 0 !important;
	outline: none !important;
	padding: 0 !important;
}

.rsmspark-cw-logo-grid {
	border: none;
	box-shadow: none;
	outline: none;
}

.rsmspark-cw-logo-grid--has-container-border {
	border: var(--rsmspark-cw-logo-container-border-width, 1px) solid var(--rsmspark-cw-logo-container-border-color, #e2e8f0);
	border-radius: var(--rsmspark-cw-logo-container-border-radius, 0);
	padding: 1rem;
}

.rsmspark-cw-logo-grid__title,
.rsmspark-cw-stats__title,
.rsmspark-cw-progress-bars__title {
	margin: 0 0 1.25rem;
	text-align: center;
	font-size: clamp(1.35rem, 2vw, 1.75rem);
}

.rsmspark-cw-logo-grid__title {
	color: var(--rsmspark-cw-logo-title-color, inherit);
	font-size: var(--rsmspark-cw-logo-title-size, clamp(1.35rem, 2vw, 1.75rem));
}

.rsmspark-cw-logo-grid__track {
	display: grid;
	gap: 0;
}

.rsmspark-cw-logo-grid--grid.rsmspark-cw-logo-grid--cols-2 .rsmspark-cw-logo-grid__track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rsmspark-cw-logo-grid--grid.rsmspark-cw-logo-grid--cols-3 .rsmspark-cw-logo-grid__track { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rsmspark-cw-logo-grid--grid.rsmspark-cw-logo-grid--cols-4 .rsmspark-cw-logo-grid__track { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rsmspark-cw-logo-grid--grid.rsmspark-cw-logo-grid--cols-5 .rsmspark-cw-logo-grid__track { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.rsmspark-cw-logo-grid--grid.rsmspark-cw-logo-grid--cols-6 .rsmspark-cw-logo-grid__track { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.rsmspark-cw-logo-grid--carousel .rsmspark-cw-logo-grid__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	gap: 1rem;
	padding-bottom: 0.25rem;
}

.rsmspark-cw-logo-grid--carousel .rsmspark-cw-logo-grid__item {
	flex: 0 0 min(220px, 70vw);
	scroll-snap-align: start;
}

.rsmspark-cw-logo-grid__item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 88px;
	padding: 1rem;
	text-decoration: none;
	color: inherit;
	border: var(--rsmspark-cw-logo-border-width, 0) solid var(--rsmspark-cw-logo-border-color, transparent);
	border-radius: var(--rsmspark-cw-logo-border-radius, 0);
}

.rsmspark-cw-logo-grid__image {
	max-width: 100%;
	max-height: 56px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	filter: none;
}

.rsmspark-cw-logo-grid--grayscale .rsmspark-cw-logo-grid__image {
	filter: grayscale(100%);
	opacity: 0.85;
	transition: filter 0.25s ease, opacity 0.25s ease;
}

.rsmspark-cw-logo-grid--grayscale .rsmspark-cw-logo-grid__item:hover .rsmspark-cw-logo-grid__image {
	filter: grayscale(0%);
	opacity: 1;
}

.rsmspark-cw-logo-grid--hover-overlay .rsmspark-cw-logo-grid__name {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem;
	background: rgba(15, 23, 42, 0.72);
	color: #fff;
	font-weight: 600;
	opacity: 0;
	transition: opacity 0.25s ease;
	text-align: center;
}

.rsmspark-cw-logo-grid--hover-overlay .rsmspark-cw-logo-grid__item:hover .rsmspark-cw-logo-grid__name {
	opacity: 1;
}

.rsmspark-cw-logo-grid__fallback {
	font-size: 0.95rem;
	font-weight: 600;
	color: #475569;
}

.rsmspark-cw-stats__grid {
	display: grid;
	gap: 1.25rem;
}

.rsmspark-cw-stats--cols-2 .rsmspark-cw-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rsmspark-cw-stats--cols-3 .rsmspark-cw-stats__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rsmspark-cw-stats--cols-4 .rsmspark-cw-stats__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.rsmspark-cw-stats__item {
	text-align: center;
	padding: 1rem;
}

.rsmspark-cw-stats__value {
	margin: 0;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	line-height: 1.1;
	color: var(--rsmspark-cw-primary);
}

.rsmspark-cw-stats__prefix,
.rsmspark-cw-stats__suffix {
	font-weight: inherit;
}

.rsmspark-cw-stats__label {
	margin: 0.5rem 0 0;
	color: #64748b;
	font-size: 0.95rem;
}

.rsmspark-cw-stats__chart {
	position: relative;
	width: min(140px, 72%);
	margin: 0 auto 0.25rem;
	aspect-ratio: 1;
}

.rsmspark-cw-stats__chart-svg {
	display: block;
	width: 100%;
	height: 100%;
}

.rsmspark-cw-stats__chart-svg--donut {
	transform: rotate(-90deg);
}

.rsmspark-cw-stats__chart-center {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.75rem;
	pointer-events: none;
}

.rsmspark-cw-stats__value--chart {
	margin: 0;
	font-size: clamp(1.1rem, 2.2vw, 1.5rem);
	line-height: 1.1;
}

.rsmspark-cw-stats__pie-track {
	fill: rgba(15, 23, 42, 0.08);
}

.rsmspark-cw-stats__pie-fill {
	fill: var(--rsmspark-cw-primary);
}

.rsmspark-cw-stats__ring-track,
.rsmspark-cw-stats__ring-fill {
	fill: none;
	stroke-width: 12;
}

.rsmspark-cw-stats__ring-track {
	stroke: rgba(15, 23, 42, 0.08);
}

.rsmspark-cw-stats__ring-fill {
	stroke: var(--rsmspark-cw-primary);
	stroke-linecap: round;
}

.rsmspark-cw-stats--animate .rsmspark-cw-stats__ring-fill {
	transition: stroke-dashoffset 1.1s ease;
}

.rsmspark-cw-progress-bars__list {
	display: grid;
	gap: 1rem;
	max-width: 720px;
	margin: 0 auto;
}

.rsmspark-cw-progress-bars__label-row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.35rem;
	font-size: 0.95rem;
}

.rsmspark-cw-progress-bars__track {
	height: 10px;
	border-radius: 999px;
	background: rgba(15, 23, 42, 0.08);
	overflow: hidden;
}

.rsmspark-cw-progress-bars__fill {
	display: block;
	height: 100%;
	width: 0;
	border-radius: inherit;
	background: var(--rsmspark-cw-primary);
	transition: width 1.1s ease;
}

.rsmspark-cw-progress-bars--radial .rsmspark-cw-progress-bars__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 1.5rem;
	max-width: none;
}

.rsmspark-cw-progress-bars--radial.rsmspark-cw-progress-bars--cols-2 .rsmspark-cw-progress-bars__list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rsmspark-cw-progress-bars--radial.rsmspark-cw-progress-bars--cols-3 .rsmspark-cw-progress-bars__list {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.rsmspark-cw-progress-bars--radial.rsmspark-cw-progress-bars--cols-4 .rsmspark-cw-progress-bars__list {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.rsmspark-cw-progress-bars__radial {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.65rem;
	text-align: center;
}

.rsmspark-cw-progress-bars__chart {
	position: relative;
	width: min(120px, 100%);
	aspect-ratio: 1;
}

.rsmspark-cw-progress-bars__chart-svg {
	display: block;
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
}

.rsmspark-cw-progress-bars__chart-center {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.rsmspark-cw-progress-bars__radial .rsmspark-cw-progress-bars__percent {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1;
}

.rsmspark-cw-progress-bars__radial .rsmspark-cw-progress-bars__label {
	font-size: 0.95rem;
	font-weight: 600;
}

.rsmspark-cw-progress-bars__ring-track,
.rsmspark-cw-progress-bars__ring-fill {
	fill: none;
	stroke-width: 10;
}

.rsmspark-cw-progress-bars__ring-track {
	stroke: rgba(15, 23, 42, 0.08);
}

.rsmspark-cw-progress-bars__ring-fill {
	stroke: var(--rsmspark-cw-primary);
	stroke-linecap: round;
	transition: stroke-dashoffset 1.1s ease;
}

.rsmspark-cw-progress-bars--step .rsmspark-cw-progress-bars__list {
	max-width: 720px;
}

.rsmspark-cw-progress-bars__steps {
	display: flex;
	gap: 0.35rem;
}

.rsmspark-cw-progress-bars__step {
	flex: 1 1 0;
	height: 10px;
	border-radius: 999px;
	background: rgba(15, 23, 42, 0.08);
	transition: background-color 0.35s ease, transform 0.35s ease;
}

.rsmspark-cw-progress-bars__step.is-filled {
	background: var(--rsmspark-cw-progress-step-color, var(--rsmspark-cw-primary));
}

@media (max-width: 768px) {
	.rsmspark-cw-progress-bars--radial.rsmspark-cw-progress-bars--cols-3 .rsmspark-cw-progress-bars__list,
	.rsmspark-cw-progress-bars--radial.rsmspark-cw-progress-bars--cols-4 .rsmspark-cw-progress-bars__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rsmspark-cw-headline--has-border .rsmspark-cw-headline__inner {
		padding: 1rem 1.125rem;
	}

	.rsmspark-cw-hero--split {
		grid-template-columns: 1fr;
	}

	.rsmspark-cw-hero--split.rsmspark-cw-hero--mobile-content-first {
		grid-template-areas: 'content' 'media';
	}

	.rsmspark-cw-hero--split.rsmspark-cw-hero--mobile-image-first {
		grid-template-areas: 'media' 'content';
	}

	.rsmspark-cw-icon-grid--cols-3 .rsmspark-cw-icon-grid__grid,
	.rsmspark-cw-icon-grid--cols-4 .rsmspark-cw-icon-grid__grid,
	.rsmspark-cw-logo-grid--cols-3 .rsmspark-cw-logo-grid__track,
	.rsmspark-cw-logo-grid--cols-4 .rsmspark-cw-logo-grid__track,
	.rsmspark-cw-logo-grid--cols-5 .rsmspark-cw-logo-grid__track,
	.rsmspark-cw-logo-grid--cols-6 .rsmspark-cw-logo-grid__track,
	.rsmspark-cw-stats--cols-3 .rsmspark-cw-stats__grid,
	.rsmspark-cw-stats--cols-4 .rsmspark-cw-stats__grid,
	.rsmspark-cw-posts-grid--grid.rsmspark-cw-posts-grid--cols-3 .rsmspark-cw-posts-grid__items,
	.rsmspark-cw-posts-grid--grid.rsmspark-cw-posts-grid--cols-4 .rsmspark-cw-posts-grid__items {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rsmspark-cw-posts-grid--masonry.rsmspark-cw-posts-grid--cols-3 .rsmspark-cw-posts-grid__items,
	.rsmspark-cw-posts-grid--masonry.rsmspark-cw-posts-grid--cols-4 .rsmspark-cw-posts-grid__items {
		column-count: 2;
	}

	.rsmspark-cw-posts-grid--carousel.rsmspark-cw-posts-grid--cols-2 .rsmspark-cw-post-card,
	.rsmspark-cw-posts-grid--carousel.rsmspark-cw-posts-grid--cols-3 .rsmspark-cw-post-card,
	.rsmspark-cw-posts-grid--carousel.rsmspark-cw-posts-grid--cols-4 .rsmspark-cw-post-card {
		flex: 0 0 min(280px, 85vw);
	}
}

/* Phase 3 — cross-builder baseline (Gutenberg, Elementor, classic themes) */
.rsmspark-cw,
.rsmspark-cw-features,
.rsmspark-features {
	box-sizing: border-box;
	max-width: 100%;
}

.rsmspark-cw *,
.rsmspark-cw *::before,
.rsmspark-cw *::after {
	box-sizing: border-box;
}

.wp-block .rsmspark-cw,
.wp-block .rsmspark-features,
.elementor-widget .rsmspark-cw,
.elementor-widget .rsmspark-features,
.et_pb_module .rsmspark-cw,
.fl-module-content .rsmspark-cw,
.bricks-area .rsmspark-cw {
	max-width: 100%;
}

.rsmspark-cw img,
.rsmspark-features img {
	height: auto;
	max-width: 100%;
}
