:root {
	--wanshing-ink: #20262b;
	--wanshing-ink-soft: #3f494f;
	--wanshing-warm-white: #fbfaf7;
	--wanshing-industrial: #eef0f1;
	--wanshing-red-soft: #f8ecea;
	--wanshing-border: #d9dddf;
	--wanshing-shadow: 0 1rem 2.5rem rgb(25 32 36 / 0.09);
	--wanshing-shadow-hover: 0 1.25rem 3rem rgb(25 32 36 / 0.14);
	--wanshing-section-space: 4.5rem;
}

.wanshing-visual-page {
	overflow-x: clip;
	color: var(--wanshing-ink);
	background: var(--wanshing-warm-white);
}

.wanshing-visual-page h1,
.wanshing-visual-page h2,
.wanshing-visual-page h3 {
	color: var(--wanshing-ink);
	letter-spacing: 0;
}

.wanshing-dark-overlay,
.wanshing-dark-overlay h1,
.wanshing-dark-overlay h2,
.wanshing-dark-overlay h3,
.wanshing-dark-overlay p,
.wanshing-dark-overlay li,
.wanshing-dark-overlay strong,
.wanshing-dark-overlay .eyebrow,
.wanshing-dark-overlay .icon,
.wanshing-dark-overlay [class*="metadata"] {
	color: #fff;
}

.wanshing-dark-overlay p,
.wanshing-dark-overlay li,
.wanshing-dark-overlay [class*="metadata"] {
	color: rgb(255 255 255 / 0.9);
}

.wanshing-dark-overlay a:not(.button) {
	color: #fff;
	text-decoration-color: rgb(255 255 255 / 0.65);
}

.wanshing-dark-overlay svg {
	color: inherit;
	stroke: currentcolor;
}

.wanshing-dark-overlay__panel {
	color: #fff;
	background: rgb(20 25 28 / 0.84);
	border-inline-start-color: var(--brand-red);
	box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 0.22);
	backdrop-filter: blur(2px);
}

.wanshing-section {
	position: relative;
	padding-block: var(--wanshing-section-space);
}

.wanshing-section--white {
	background: #fff;
}

.wanshing-section--warm {
	background: var(--wanshing-warm-white);
}

.wanshing-section--industrial {
	background: var(--wanshing-industrial);
}

.wanshing-section--red-tint {
	background: var(--wanshing-red-soft);
}

.wanshing-section-heading {
	max-width: 46rem;
	margin-block-end: 2.25rem;
}

.wanshing-section-heading--center {
	margin-inline: auto;
	text-align: center;
}

.wanshing-section-heading h2 {
	margin-block-end: 1rem;
	font-size: 2rem;
}

.wanshing-section-heading p:last-child {
	margin-block-end: 0;
	color: var(--wanshing-ink-soft);
	font-size: 1.0625rem;
}

.eyebrow {
	margin-block-end: 0.75rem;
	color: var(--brand-red);
	font-size: 0.78rem;
	font-weight: 750;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wanshing-split-hero {
	position: relative;
	padding-block: 3rem 4rem;
	background: var(--wanshing-warm-white);
	border-block-end: 1px solid var(--wanshing-border);
}

.wanshing-split-hero::before {
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0;
	width: 0.35rem;
	content: "";
	background: var(--brand-red);
}

.wanshing-split-hero__grid,
.wanshing-split-row,
.wanshing-offset-composition {
	display: grid;
	gap: 2rem;
	align-items: center;
}

.wanshing-split-hero__copy {
	max-width: 42rem;
}

.wanshing-split-hero h1 {
	margin-block-end: 1.25rem;
	font-size: 2.5rem;
	line-height: 1.06;
}

.wanshing-split-hero__intro {
	margin-block-end: 1.75rem;
	color: var(--wanshing-ink-soft);
	font-size: 1.125rem;
}

.wanshing-button-row {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	flex-wrap: wrap;
}

.wanshing-image-frame {
	position: relative;
	display: grid;
	min-height: 17rem;
	overflow: hidden;
	place-items: center;
	padding: 1.25rem;
	background: #fff;
	border: 1px solid var(--wanshing-border);
	border-radius: 0.35rem;
	box-shadow: var(--wanshing-shadow);
}

.wanshing-image-frame::after {
	position: absolute;
	z-index: 2;
	inset-block-end: 0;
	inset-inline-start: 0;
	width: 5rem;
	height: 0.35rem;
	content: "";
	background: var(--brand-red);
}

.wanshing-image-frame img {
	width: 100%;
	height: 100%;
	min-height: inherit;
	object-fit: cover;
}

.wanshing-managed-image {
	background: #fff;
}

.wanshing-image-frame--contain img,
.wanshing-image-frame img.is-placeholder {
	object-fit: contain;
}

.wanshing-image-frame img.is-placeholder {
	padding: clamp(1.25rem, 5%, 3rem);
	background: #f1f0ed;
}

.wanshing-placeholder-label {
	position: absolute;
	z-index: 4;
	inset-block-end: 0.75rem;
	inset-inline-end: 0.75rem;
	padding: 0.28rem 0.55rem;
	color: #fff;
	background: rgb(32 38 43 / 0.78);
	border-radius: 0.2rem;
	font-size: 0.72rem;
}

.wanshing-trust-bar {
	position: relative;
	z-index: 3;
	margin-block-start: -1.5rem;
}

.wanshing-trust-bar ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	padding: 0;
	margin: 0;
	overflow: hidden;
	background: var(--wanshing-border);
	border: 1px solid var(--wanshing-border);
	border-radius: 0.35rem;
	box-shadow: var(--wanshing-shadow);
	list-style: none;
}

.wanshing-trust-bar li {
	display: flex;
	min-height: 5rem;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	padding: 1rem;
	background: #fff;
	font-size: 0.875rem;
	font-weight: 650;
	text-align: center;
}

.wanshing-trust-bar .icon {
	color: var(--brand-red);
	font-size: 1.35rem;
}

.wanshing-card-grid {
	display: grid;
	gap: 1rem;
}

.wanshing-feature-card,
.wanshing-check-card,
.wanshing-link-card,
.wanshing-location-panel {
	position: relative;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--wanshing-border);
	border-radius: 0.35rem;
	box-shadow: 0 0.45rem 1.4rem rgb(25 32 36 / 0.05);
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.wanshing-feature-card:hover,
.wanshing-feature-card:focus-within,
.wanshing-link-card:hover,
.wanshing-link-card:focus-within {
	border-color: rgb(188 41 33 / 0.55);
	transform: translateY(-0.2rem);
	box-shadow: var(--wanshing-shadow-hover);
}

.wanshing-feature-card__body,
.wanshing-check-card,
.wanshing-link-card {
	padding: 1.5rem;
}

.wanshing-feature-card__media {
	position: relative;
	display: grid;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	place-items: center;
	background: var(--wanshing-industrial);
}

.wanshing-feature-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 240ms ease;
}

.wanshing-feature-card:hover .wanshing-feature-card__media img,
.wanshing-feature-card:focus-within .wanshing-feature-card__media img {
	transform: scale(1.025);
}

.wanshing-icon-card__icon {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	margin-block-end: 1rem;
	place-items: center;
	color: var(--brand-red);
	background: var(--wanshing-red-soft);
	border-radius: 0.25rem;
	font-size: 1.35rem;
}

.wanshing-feature-card h3,
.wanshing-check-card h3,
.wanshing-link-card h3 {
	margin-block-end: 0.75rem;
	font-size: 1.25rem;
}

.wanshing-feature-card p,
.wanshing-check-card p,
.wanshing-link-card p,
.wanshing-split-row__copy > p {
	color: var(--wanshing-ink-soft);
}

.wanshing-accent-list,
.wanshing-check-list,
.wanshing-service-list {
	display: grid;
	gap: 0.65rem;
	padding: 0;
	margin: 1.25rem 0 0;
	list-style: none;
}

.wanshing-accent-list li,
.wanshing-check-list li {
	position: relative;
	padding-inline-start: 1.65rem;
}

.wanshing-accent-list li::before,
.wanshing-check-list li::before {
	position: absolute;
	inset-block-start: 0.38rem;
	inset-inline-start: 0;
	width: 0.75rem;
	height: 0.75rem;
	content: "";
	border: 0.14rem solid var(--brand-red);
	border-radius: 50%;
}

.wanshing-split-row__copy h2 {
	margin-block-end: 1rem;
	font-size: 2rem;
}

.wanshing-split-row--reverse .wanshing-split-row__media {
	order: 2;
}

.wanshing-offset-panel {
	position: relative;
	z-index: 2;
	padding: 2rem;
	background: #fff;
	border-inline-start: 0.3rem solid var(--brand-red);
	box-shadow: var(--wanshing-shadow);
}

.wanshing-timeline {
	position: relative;
	display: grid;
	gap: 0;
	padding: 0;
	margin: 2rem 0 0;
	list-style: none;
}

.wanshing-timeline::before {
	position: absolute;
	inset-block: 1rem;
	inset-inline-start: 1rem;
	width: 2px;
	content: "";
	background: var(--wanshing-border);
}

.wanshing-timeline li {
	position: relative;
	min-height: 5rem;
	padding: 0 0 1.5rem 3.25rem;
}

.wanshing-timeline__number {
	position: absolute;
	z-index: 1;
	inset-block-start: 0;
	inset-inline-start: 0;
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	color: #fff;
	background: var(--brand-red);
	border-radius: 50%;
	font-size: 0.8rem;
	font-weight: 750;
}

.wanshing-timeline h3 {
	margin-block-end: 0.35rem;
	font-size: 1.05rem;
}

.wanshing-timeline p {
	margin: 0;
	color: var(--wanshing-ink-soft);
}

.wanshing-location-band {
	padding-block: 1.25rem;
	color: #fff;
	background: var(--wanshing-ink);
}

.wanshing-location-band__inner {
	display: flex;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
}

.wanshing-cta-panel {
	position: relative;
	overflow: hidden;
	padding: 2.5rem;
	color: #fff;
	background: var(--wanshing-ink);
	border-radius: 0.35rem;
}

.wanshing-cta-panel::after {
	position: absolute;
	inset-block: 0;
	inset-inline-end: 0;
	width: 0.45rem;
	content: "";
	background: var(--brand-red);
}

.wanshing-cta-panel h2 {
	color: #fff;
}

.wanshing-cta-panel p {
	max-width: 48rem;
	color: rgb(255 255 255 / 0.78);
}

.wanshing-faq-list {
	display: grid;
	max-width: 58rem;
	gap: 0.75rem;
	margin-inline: auto;
}

.wanshing-faq-list details {
	background: #fff;
	border: 1px solid var(--wanshing-border);
	border-radius: 0.3rem;
}

.wanshing-faq-list summary {
	position: relative;
	padding: 1.1rem 3.25rem 1.1rem 1.25rem;
	font-weight: 700;
	cursor: pointer;
}

.wanshing-faq-list summary::after {
	position: absolute;
	inset-block-start: 50%;
	inset-inline-end: 1.25rem;
	content: "+";
	color: var(--brand-red);
	font-size: 1.4rem;
	transform: translateY(-50%);
}

.wanshing-faq-list details[open] summary::after {
	content: "-";
}

.wanshing-faq-answer {
	padding: 0 1.25rem 1.25rem;
	color: var(--wanshing-ink-soft);
}

.wanshing-faq-answer p {
	margin: 0;
}

@supports (interpolate-size: allow-keywords) {
	.wanshing-faq-list {
		interpolate-size: allow-keywords;
	}

	.wanshing-faq-list details::details-content {
		block-size: 0;
		overflow: hidden;
		opacity: 0;
		transition: block-size 180ms ease, opacity 140ms ease;
	}

	.wanshing-faq-list details[open]::details-content {
		block-size: auto;
		opacity: 1;
	}
}

.wanshing-visual-gallery__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
}

.wanshing-visual-gallery figure {
	aspect-ratio: 4 / 3;
	margin: 0;
	overflow: hidden;
	background: var(--wanshing-industrial);
	border-radius: 0.25rem;
}

.wanshing-visual-gallery img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.wanshing-mobile-action-bar {
	position: fixed;
	z-index: 80;
	inset-block-end: 0;
	inset-inline: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	padding: 0.35rem max(0.35rem, env(safe-area-inset-right)) calc(0.35rem + env(safe-area-inset-bottom)) max(0.35rem, env(safe-area-inset-left));
	background: var(--wanshing-ink);
	box-shadow: 0 -0.4rem 1.2rem rgb(0 0 0 / 0.14);
}

.wanshing-mobile-action-bar a {
	display: flex;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	padding: 0.65rem;
	color: #fff;
	background: var(--wanshing-ink-soft);
	font-size: 0.84rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}

.wanshing-mobile-action-bar a:last-child {
	background: var(--brand-red);
}

.wanshing-has-page-action-bar .mobile-bottom-nav {
	display: none;
}

.wanshing-mobile-action-bar.is-form-active,
.wanshing-visual-page:has([data-mobile-action-form]:focus-within) .wanshing-mobile-action-bar {
	transform: translateY(110%);
	opacity: 0;
	pointer-events: none;
}

html.wanshing-effects-ready [data-reveal] {
	opacity: 0;
	transform: translateY(1.25rem);
	transition: opacity 420ms ease, transform 420ms ease;
	transition-delay: var(--reveal-delay, 0ms);
}

html.wanshing-effects-ready [data-image-reveal] {
	clip-path: inset(0 0 12% 0);
	transition: clip-path 500ms ease, opacity 420ms ease, transform 420ms ease;
}

html.wanshing-effects-ready [data-reveal].is-revealed {
	opacity: 1;
	transform: none;
}

html.wanshing-effects-ready [data-image-reveal].is-revealed {
	clip-path: inset(0);
}

@media (min-width: 40rem) {
	:root {
		--wanshing-section-space: 5.5rem;
	}

	.wanshing-section-heading h2,
	.wanshing-split-row__copy h2 {
		font-size: 2.45rem;
	}

	.wanshing-card-grid--two {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wanshing-card-grid--three {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.wanshing-card-grid--four {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wanshing-visual-gallery__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 56rem) {
	.wanshing-split-hero__grid,
	.wanshing-split-row,
	.wanshing-offset-composition {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 3.5rem;
	}

	.wanshing-split-hero {
		padding-block: 4.5rem 5.5rem;
	}

	.wanshing-split-hero h1 {
		font-size: 3.6rem;
	}

	.wanshing-image-frame {
		min-height: 27rem;
	}

	.wanshing-offset-panel {
		margin-inline-start: -5rem;
	}

	.wanshing-card-grid--four {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.wanshing-visual-gallery__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.wanshing-mobile-action-bar {
		display: none;
	}
}

@media (max-width: 55.99rem) {
	.wanshing-split-row--reverse .wanshing-split-row__media {
		order: 0;
	}

	.wanshing-visual-page {
		padding-block-end: calc(3.5rem + env(safe-area-inset-bottom));
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}

	html.wanshing-effects-ready [data-reveal],
	html.wanshing-effects-ready [data-image-reveal] {
		opacity: 1;
		clip-path: none;
		transform: none;
		transition-delay: 0ms;
	}
}
