/* =========================================================================
   How Sourcing Works — five-step procurement protocol.
   Tokens and the Material Symbols base come from platform-shell.css.
   ========================================================================= */

.mie-sourcing {
	font-family: var(--pf-body);
	font-size: 15px;
	line-height: 24px;
	color: var(--pf-ink);
	background: var(--pf-surface);
	-webkit-font-smoothing: antialiased;
}
.mie-sourcing *,
.mie-sourcing *::before,
.mie-sourcing *::after { box-sizing: border-box; }
/* Resets use :where() so single-class component rules below always win. */
.mie-sourcing :where(p, h1, h2, h3, h4, ul, ol, blockquote, figure) { margin: 0; padding: 0; }
.mie-sourcing :where(ul, ol) { list-style: none; }
.mie-sourcing :where(a) { color: inherit; text-decoration: none; }
.mie-sourcing :where(img) { display: block; max-width: 100%; }

.sw-wrap {
	width: 100%;
	max-width: var(--pf-wrap);
	margin-inline: auto;
	padding-inline: clamp(1rem, 4vw, 3rem);
}

/* ---- Shared atoms ---- */
.sw-ico--crimson  { color: var(--pf-crimson); }
.sw-ico--tertiary { color: var(--pf-tertiary); }
.sw-ico--verified { color: var(--pf-verified); }
.sw-ico--warning  { color: var(--pf-warning); }

.sw-dot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; flex: none; }
.sw-dot--verified { background: var(--pf-verified); }
.sw-dot--ping { animation: sw-ping 1.8s cubic-bezier(0, 0, .2, 1) infinite; }
@keyframes sw-ping {
	0%   { box-shadow: 0 0 0 0 rgba(5,150,105,.45); }
	70%  { box-shadow: 0 0 0 8px rgba(5,150,105,0); }
	100% { box-shadow: 0 0 0 0 rgba(5,150,105,0); }
}

.sw-chip {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .25rem .75rem;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	line-height: 18px;
	letter-spacing: .01em;
}
.sw-chip strong { font-weight: 700; }
.sw-chip--verified { background: var(--pf-verified-bg); color: var(--pf-verified); box-shadow: var(--pf-shadow-1); }
.sw-chip--crimson  { background: var(--pf-crimson-subtle); color: var(--pf-crimson); }
.sw-chip--ghost    { background: rgba(255,255,255,.1); color: var(--pf-primary-fixed); }

.sw-pill {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	padding: .125rem .5rem;
	border-radius: .25rem;
	font-size: 11px;
	font-weight: 600;
	line-height: 18px;
	white-space: nowrap;
}
.sw-pill--crimson  { background: var(--pf-crimson-subtle); color: var(--pf-crimson); border-radius: 999px; padding-inline: .625rem; }
.sw-pill--verified { background: var(--pf-verified-bg); color: var(--pf-verified); }
.sw-pill--warning  { background: var(--pf-warning-bg); color: var(--pf-warning); }
.sw-pill--neutral  { background: var(--pf-container); color: var(--pf-navy); }
.sw-pill--solid    { background: var(--pf-crimson); color: #fff; }

.sw-eyebrow {
	font-size: 11px;
	font-weight: 600;
	line-height: 14px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pf-secondary);
}

.sw-btn {
	display: inline-flex;
	align-items: center;
	gap: .625rem;
	padding: .875rem 1.5rem;
	border-radius: .75rem;
	font-size: 13px;
	font-weight: 600;
	line-height: 18px;
	letter-spacing: .01em;
	transition: background .15s ease, transform .12s ease, box-shadow .15s ease;
}
.sw-btn--primary { background: var(--pf-crimson); color: #fff; box-shadow: var(--pf-shadow-2); }
.sw-btn--primary:hover { background: var(--pf-crimson-hover); transform: translateY(-2px); }
.sw-btn--light { background: var(--pf-card); color: var(--pf-navy); box-shadow: var(--pf-shadow-1); }
.sw-btn--light:hover { background: var(--pf-low); }

/* =========================================================================
   Hero
   ========================================================================= */
.sw-hero {
	position: relative;
	overflow: hidden;
	background: linear-gradient(180deg, var(--pf-low) 0%, var(--pf-surface) 45%);
	padding-block: 2.5rem 4rem;
}
.sw-hero__strip {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 2rem;
}
.sw-protocol {
	display: inline-flex;
	align-items: center;
	gap: .625rem;
	padding: .375rem .875rem;
	border-radius: 999px;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-1);
}
.sw-protocol__dot {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--pf-crimson);
	animation: sw-pulse 2s cubic-bezier(.4,0,.6,1) infinite;
}
@keyframes sw-pulse { 50% { opacity: .35; } }
.sw-protocol__label {
	font-size: 11px;
	font-weight: 600;
	line-height: 14px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pf-navy);
}
.sw-protocol__sep { color: var(--pf-secondary); }
.sw-protocol__ver { font-size: 13px; font-weight: 500; line-height: 18px; color: var(--pf-ink-soft); }

.sw-guarantee {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-size: 13px;
	font-weight: 500;
	color: var(--pf-ink-soft);
}

.sw-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 3rem;
	align-items: center;
}
.sw-hero__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.sw-hero__title {
	font-family: var(--pf-head);
	font-size: 48px;
	font-weight: 800;
	line-height: 56px;
	letter-spacing: -.03em;
	color: var(--pf-navy);
}
.sw-hero__title em { font-style: normal; color: var(--pf-crimson); }
.sw-hero__lead {
	max-width: 42rem;
	font-size: 18px;
	line-height: 28px;
	color: var(--pf-ink-soft);
}
.sw-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; }

.sw-hero__tiles {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: .75rem;
	width: 100%;
}
.sw-tile {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	padding: .75rem;
	border-radius: .75rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-1);
}
.sw-tile strong { font-size: 13px; font-weight: 600; line-height: 18px; color: var(--pf-navy); }
.sw-tile__sub { font-size: 13px; line-height: 20px; color: var(--pf-secondary); }

/* ---- Hero corridor card ---- */
.sw-corridor {
	border-radius: 1rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-xl);
	overflow: hidden;
}
.sw-corridor__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 1.5rem 1rem;
	background: var(--pf-low);
}
.sw-corridor__title {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-size: 13px;
	font-weight: 600;
	color: var(--pf-navy);
}
.sw-shot { position: relative; margin: 1rem 1.5rem; border-radius: .75rem; overflow: hidden; box-shadow: var(--pf-shadow-1); }
.sw-shot img { width: 100%; height: 18rem; object-fit: cover; object-position: top; }
.sw-shot figcaption {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	align-items: flex-start;
	gap: .5rem;
	padding: 1rem;
	background: linear-gradient(to top, rgba(11,15,25,.85), rgba(11,15,25,.3) 50%, transparent);
	color: #fff;
}
.sw-shot__eyebrow {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pf-primary-fixed);
}
.sw-shot__title { font-size: 16px; font-weight: 600; line-height: 24px; }

.sw-metric { padding: 0 1.5rem 1.5rem; display: grid; gap: .625rem; }
.sw-metric__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	font-size: 13px;
	line-height: 20px;
	color: var(--pf-ink-soft);
}
.sw-metric__row > span { display: inline-flex; align-items: center; gap: .375rem; }
.sw-metric__row strong { font-size: 13px; font-weight: 600; color: var(--pf-navy); }
.sw-meter { height: 8px; border-radius: 999px; background: var(--pf-container); overflow: hidden; }
.sw-meter__fill { display: block; height: 100%; border-radius: 999px; background: var(--pf-crimson); }
.sw-metric__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	font-size: 13px;
	color: var(--pf-secondary);
}
.sw-metric__foot strong { color: var(--pf-crimson); font-weight: 600; }

/* =========================================================================
   Body layout: sticky roadmap + step stream
   ========================================================================= */
.sw-body {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
	gap: 3rem;
	align-items: start;
	padding-block: 3rem;
}

.sw-roadmap { position: sticky; top: calc(var(--pf-header-h) + 2rem); z-index: 30; }
.sw-roadmap__card {
	display: grid;
	gap: 1rem;
	padding: 1.25rem;
	border: 1px solid var(--pf-line);
	border-radius: 1rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-2);
}
.sw-roadmap__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding-bottom: .75rem;
	border-bottom: 1px solid var(--pf-line);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pf-secondary);
}
.sw-roadmap__head .sw-dot { width: 8px; height: 8px; }

.sw-roadmap__nav { position: relative; display: grid; gap: .5rem; padding-left: .5rem; }
.sw-roadmap__nav::before {
	content: "";
	position: absolute;
	left: 1.5rem;
	top: 1rem;
	bottom: 1rem;
	width: 2px;
	background: var(--pf-container);
}
.sw-roadmap__link {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .625rem;
	border-radius: .75rem;
	color: var(--pf-navy);
	transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.sw-roadmap__link:hover { background: var(--pf-low); }
.sw-roadmap__link.is-active { background: var(--pf-crimson); color: #fff; box-shadow: var(--pf-shadow-1); }
.sw-roadmap__n {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	flex: none;
	border-radius: 50%;
	background: var(--pf-variant);
	color: var(--pf-navy);
	font-size: 13px;
	font-weight: 700;
}
.sw-roadmap__link.is-active .sw-roadmap__n { background: rgba(255,255,255,.2); color: #fff; }
.sw-roadmap__text { display: grid; }
.sw-roadmap__eyebrow {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pf-secondary);
}
.sw-roadmap__link.is-active .sw-roadmap__eyebrow { color: rgba(255,255,255,.8); }
.sw-roadmap__label { font-size: 13px; font-weight: 600; line-height: 1.25; }

.sw-roadmap__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .625rem .75rem;
	border-top: 1px solid var(--pf-line);
	margin-top: -.25rem;
	padding-top: 1rem;
	font-size: 13px;
	font-weight: 600;
	color: var(--pf-navy);
}
.sw-roadmap__cta:hover { color: var(--pf-crimson); }

.sw-stream { display: grid; gap: 6rem; }

/* ---- Step scaffolding ---- */
.sw-step { scroll-margin-top: calc(var(--pf-header-h) + 2rem); display: grid; gap: 2rem; }
.sw-step__head { display: grid; justify-items: start; gap: 1rem; }
.sw-step__head h2 {
	font-family: var(--pf-head);
	font-size: 36px;
	font-weight: 700;
	line-height: 44px;
	letter-spacing: -.025em;
	color: var(--pf-navy);
}
.sw-step__lead { max-width: 48rem; font-size: 15px; line-height: 24px; color: var(--pf-ink-soft); }

.sw-grid { display: grid; gap: 1.5rem; align-items: start; }
.sw-grid--5-7 { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.sw-grid--6-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sw-stack { display: grid; gap: 1rem; }

/* =========================================================================
   Step 1
   ========================================================================= */
.sw-track {
	display: grid;
	gap: .75rem;
	padding: 1.25rem;
	border: 1px solid var(--pf-line);
	border-radius: 1rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-1);
}
.sw-track__title {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-family: var(--pf-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
}
.sw-track__title--crimson { color: var(--pf-crimson); }
.sw-track__title--tertiary { color: var(--pf-tertiary); }
.sw-track p { font-size: 13px; line-height: 20px; color: var(--pf-secondary); }

.sw-panel {
	display: grid;
	gap: 1.25rem;
	padding: 1.5rem;
	border: 1px solid var(--pf-line);
	border-radius: 1rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-1);
}
.sw-panel__title {
	display: flex;
	align-items: center;
	gap: .625rem;
	font-family: var(--pf-head);
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
	letter-spacing: -.01em;
	color: var(--pf-navy);
}
.sw-panel__title .sw-ico { font-size: 24px; }

.sw-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.sw-mode { padding: .875rem; border-radius: .75rem; background: var(--pf-low); }
.sw-mode__icon {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	margin-bottom: .625rem;
	border-radius: .5rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-1);
}
.sw-mode h4 { font-size: 13px; font-weight: 600; line-height: 18px; margin-bottom: .25rem; color: var(--pf-navy); }
.sw-mode p { font-size: 13px; line-height: 20px; color: var(--pf-secondary); }

.sw-badges { display: grid; gap: .75rem; }
.sw-badges__head {
	font-size: 13px;
	font-weight: 600;
	line-height: 18px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pf-secondary);
}
.sw-badges ul { display: grid; gap: .75rem; }
.sw-badge {
	display: flex;
	align-items: flex-start;
	gap: .875rem;
	padding: .875rem;
	border-radius: .75rem;
	background: var(--pf-surface);
}
.sw-badge__icon { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: .5rem; }
.sw-badge__icon--warning  { background: var(--pf-warning-bg); color: var(--pf-warning); }
.sw-badge__icon--verified { background: var(--pf-verified-bg); color: var(--pf-verified); }
.sw-badge__icon--crimson  { background: var(--pf-crimson-subtle); color: var(--pf-crimson); }
.sw-badge__line { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .25rem; }
.sw-badge__line strong { font-size: 13px; font-weight: 600; line-height: 18px; color: var(--pf-navy); }
.sw-badge__desc { font-size: 13px; line-height: 20px; color: var(--pf-secondary); }

/* =========================================================================
   Step 2
   ========================================================================= */
.sw-dialogue {
	border: 1px solid var(--pf-line);
	border-radius: 1rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-2);
	overflow: hidden;
}
.sw-shot--tall { margin: 0; border-radius: 0; box-shadow: none; }
.sw-shot--tall img { height: 16rem; object-position: center; }
.sw-shot--tall figcaption { padding: 1.25rem; }

.sw-thread { display: grid; gap: .75rem; padding: 1.25rem; }
.sw-thread__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	font-size: 13px;
	font-weight: 600;
	color: var(--pf-navy);
}
.sw-thread__status { display: inline-flex; align-items: center; gap: .375rem; font-weight: 500; color: var(--pf-verified); }
.sw-thread__status .sw-dot { width: 8px; height: 8px; }
.sw-msg { padding: .75rem; border-radius: .75rem; background: var(--pf-low); }
.sw-msg--reply { background: var(--pf-container); }
.sw-msg cite {
	display: block;
	margin-bottom: .25rem;
	font-style: normal;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--pf-secondary);
}
.sw-msg--reply cite { color: var(--pf-crimson); }
.sw-msg p { font-size: 13px; line-height: 20px; color: var(--pf-navy); }

.sw-features { display: grid; gap: 1rem; align-content: start; }
.sw-feature {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1rem;
	border: 1px solid var(--pf-line);
	border-radius: .75rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-1);
}
.sw-feature__icon {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	flex: none;
	border-radius: .5rem;
	background: var(--pf-container);
}
.sw-feature h4 { font-size: 13px; font-weight: 600; line-height: 18px; margin-bottom: .25rem; color: var(--pf-navy); }
.sw-feature p { font-size: 13px; line-height: 20px; color: var(--pf-secondary); }

/* =========================================================================
   Step 3 — dark assurance panel
   ========================================================================= */
.sw-assure {
	display: grid;
	gap: 2rem;
	padding: clamp(1.5rem, 3vw, 2.5rem);
	border-radius: 1.5rem;
	background: var(--pf-navy);
	color: #fff;
	box-shadow: var(--pf-shadow-xl);
}
.sw-assure .sw-step__head { gap: .75rem; max-width: 48rem; }
.sw-assure .sw-step__head h2 { color: #fff; }
.sw-assure .sw-step__lead { font-size: 18px; line-height: 28px; color: var(--pf-high); }

.sw-pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.sw-pillar {
	display: grid;
	gap: .75rem;
	align-content: start;
	padding: 1.25rem;
	border-radius: 1rem;
	background: rgba(33,49,69,.8);
	box-shadow: inset 0 2px 4px rgba(0,0,0,.08);
}
.sw-pillar__icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: .75rem; }
.sw-pillar__icon .sw-ico { font-size: 24px; }
.sw-pillar__icon--crimson  { background: rgba(217,56,41,.2); color: var(--pf-crimson); }
.sw-pillar__icon--tertiary { background: rgba(49,107,243,.3); color: var(--pf-tertiary-soft); }
.sw-pillar__icon--verified { background: rgba(236,253,245,.2); color: var(--pf-verified); }
.sw-pillar__icon--warning  { background: rgba(255,251,235,.2); color: var(--pf-warning); }
.sw-pillar h3 { font-size: 16px; font-weight: 600; line-height: 24px; color: #fff; }
.sw-pillar p { font-size: 13px; line-height: 20px; color: var(--pf-high); }

.sw-safeguards { padding: 1.25rem; border-radius: 1rem; background: rgba(33,49,69,.4); }
.sw-safeguards__head {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: 1rem;
	font-family: var(--pf-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff;
}
.sw-safeguards ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.sw-safeguards li { padding: 1rem; border-radius: .75rem; background: rgba(11,15,25,.6); }
.sw-safeguards strong { display: block; margin-bottom: .25rem; font-size: 13px; font-weight: 600; line-height: 18px; color: #fff; }
.sw-safeguards p { font-size: 13px; line-height: 20px; color: var(--pf-high); }

/* =========================================================================
   Step 4
   ========================================================================= */
.sw-terms { display: grid; gap: 1rem; align-content: start; }
.sw-term {
	display: grid;
	gap: .5rem;
	padding: 1rem;
	border: 1px solid var(--pf-line);
	border-radius: .75rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-1);
}
.sw-term__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
}
.sw-term__head--icon { justify-content: flex-start; gap: .5rem; }
.sw-term__head strong { font-size: 13px; font-weight: 600; line-height: 18px; color: var(--pf-navy); }
.sw-term > p { font-size: 13px; line-height: 20px; color: var(--pf-secondary); }

.sw-escrow {
	display: grid;
	gap: 1.5rem;
	padding: 1.5rem;
	border: 1px solid var(--pf-line);
	border-radius: 1rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-2);
}
.sw-escrow__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: .75rem;
	border-bottom: 1px solid var(--pf-line);
}
.sw-escrow__head h3 {
	font-family: var(--pf-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
	color: var(--pf-navy);
}
.sw-escrow__head .sw-ico { font-size: 24px; }

.sw-nodes { position: relative; display: grid; gap: 1.75rem; padding-left: 1.5rem; }
.sw-nodes::before {
	content: "";
	position: absolute;
	left: .625rem;
	top: .5rem;
	bottom: .5rem;
	width: 2px;
	background: var(--pf-container);
}
.sw-node { position: relative; display: grid; gap: .25rem; }
.sw-node::before {
	content: "";
	position: absolute;
	left: -1.5rem;
	top: .25rem;
	width: 16px;
	height: 16px;
	border-radius: 50%;
}
.sw-node--crimson::before  { background: var(--pf-crimson); box-shadow: 0 0 0 4px rgba(217,56,41,.2); }
.sw-node--tertiary::before { background: var(--pf-tertiary); box-shadow: 0 0 0 4px rgba(0,81,214,.2); }
.sw-node--verified::before { background: var(--pf-verified); box-shadow: 0 0 0 4px rgba(5,150,105,.2); }
.sw-node--navy::before     { background: var(--pf-navy); box-shadow: 0 0 0 4px rgba(15,23,42,.2); }
.sw-node__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
}
.sw-node__head strong { font-size: 13px; font-weight: 600; line-height: 18px; color: var(--pf-navy); }
.sw-node__tag { font-size: 13px; font-weight: 600; }
.sw-node--crimson  .sw-node__tag { color: var(--pf-crimson); }
.sw-node--tertiary .sw-node__tag { color: var(--pf-tertiary); }
.sw-node--verified .sw-node__tag { color: var(--pf-verified); }
.sw-node--navy     .sw-node__tag { color: var(--pf-navy); }
.sw-node > p { font-size: 13px; line-height: 20px; color: var(--pf-secondary); }

.sw-note {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .875rem;
	border-radius: .75rem;
	font-size: 13px;
	line-height: 20px;
}
.sw-note--verified { background: var(--pf-verified-bg); color: var(--pf-verified); }
.sw-note .sw-ico { font-size: 20px; }

/* =========================================================================
   Step 5
   ========================================================================= */
.sw-hud {
	display: grid;
	gap: 1.25rem;
	padding: 1.5rem;
	border: 1px solid var(--pf-line);
	border-radius: 1rem;
	background: var(--pf-card);
	box-shadow: var(--pf-shadow-2);
}
.sw-hud__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding-bottom: .75rem;
	border-bottom: 1px solid var(--pf-line);
}
.sw-hud__title { display: inline-flex; align-items: center; gap: .5rem; font-size: 13px; font-weight: 600; color: var(--pf-navy); }
.sw-hud__id { font-size: 13px; font-weight: 500; color: var(--pf-secondary); }

.sw-route {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem;
	border-radius: .75rem;
	background: var(--pf-low);
}
.sw-route__end { display: grid; gap: .125rem; }
.sw-route__end--to { text-align: right; }
.sw-route__end strong { font-size: 16px; font-weight: 600; line-height: 24px; color: var(--pf-navy); }
.sw-route__mid { display: grid; justify-items: center; gap: .125rem; font-size: 13px; color: var(--pf-secondary); }

.sw-checks { display: grid; gap: .625rem; }
.sw-check {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	padding: .75rem;
	border-radius: .5rem;
	background: var(--pf-surface);
}
.sw-check__label { display: inline-flex; align-items: center; gap: .75rem; font-size: 13px; font-weight: 600; color: var(--pf-navy); }
.sw-check__state { font-size: 13px; font-weight: 600; }
.sw-check__state--verified { color: var(--pf-verified); }
.sw-check__state--crimson { color: var(--pf-crimson); }

.sw-hud__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	font-size: 13px;
	color: var(--pf-secondary);
}
.sw-hud__foot strong { font-weight: 600; color: var(--pf-verified); }

/* =========================================================================
   Closing CTA
   ========================================================================= */
.sw-close { background: var(--pf-low); padding-block: 4rem; }
.sw-close__card {
	position: relative;
	overflow: hidden;
	padding: clamp(2rem, 5vw, 3.5rem);
	border-radius: 1.5rem;
	background: var(--pf-black);
	color: #fff;
	box-shadow: var(--pf-shadow-xl);
}
.sw-close__card::before {
	content: "";
	position: absolute;
	top: -6rem;
	right: -6rem;
	width: 24rem;
	height: 24rem;
	border-radius: 50%;
	background: rgba(217,56,41,.2);
	filter: blur(64px);
	pointer-events: none;
}
.sw-close__body { position: relative; z-index: 1; display: grid; justify-items: start; gap: 1.5rem; max-width: 48rem; }
.sw-close__body h2 {
	font-family: var(--pf-head);
	font-size: 36px;
	font-weight: 700;
	line-height: 44px;
	letter-spacing: -.025em;
}
.sw-close__lead { max-width: 36rem; font-size: 18px; line-height: 28px; color: var(--pf-high); }
.sw-close__actions { display: flex; flex-wrap: wrap; gap: 1rem; }

.sw-trust {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
	width: 100%;
	margin-top: 1.5rem;
	padding-top: 2.5rem;
	border-top: 1px solid rgba(33,49,69,.4);
}
.sw-trust li { display: flex; align-items: center; gap: .5rem; font-size: 13px; color: var(--pf-high); }

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1199px) {
	.sw-hero__grid { grid-template-columns: 1fr; gap: 2.5rem; }
	.sw-hero__aside { max-width: 34rem; }
	.sw-body { grid-template-columns: 1fr; gap: 2rem; }
	.sw-roadmap { display: none; }
	.sw-stream { gap: 4.5rem; }
	.sw-pillars,
	.sw-safeguards ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 899px) {
	.sw-hero__title { font-size: 32px; line-height: 40px; letter-spacing: -.02em; }
	.sw-step__head h2,
	.sw-close__body h2 { font-size: 26px; line-height: 34px; letter-spacing: -.02em; }
	.sw-grid--5-7,
	.sw-grid--6-6 { grid-template-columns: 1fr; }
	.sw-modes { grid-template-columns: 1fr; }
	.sw-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 619px) {
	.sw-hero__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sw-pillars,
	.sw-safeguards ul { grid-template-columns: 1fr; }
	.sw-hero__actions .sw-btn,
	.sw-close__actions .sw-btn { width: 100%; justify-content: center; }
	.sw-route { flex-direction: column; align-items: flex-start; }
	.sw-route__end--to { text-align: left; }
	.sw-route__mid { justify-items: start; }
	.sw-shot img { height: 14rem; }
}

@media (prefers-reduced-motion: reduce) {
	.mie-sourcing * { transition: none !important; animation: none !important; }
}
