body.wsp-prototype {
	--font-geist-sans: "Manrope", Arial, sans-serif;
	--font-geist-mono: "IBM Plex Mono", "Courier New", monospace;
	--font-sans: "Manrope", Arial, sans-serif;
	--font-mono: "IBM Plex Mono", "Courier New", monospace;
	--sans: "Manrope", Arial, sans-serif;
	--mono: "IBM Plex Mono", "Courier New", monospace;
	padding: 0;
	font-family: var(--font-sans);
	font-optical-sizing: auto;
	font-synthesis: none;
	text-rendering: optimizeLegibility;
}

body.wsp-prototype .wp-site-blocks,
body.wsp-prototype .wp-block-post-content,
body.wsp-prototype .wp-block-post-content > .wp-block-html {
	margin: 0;
	max-width: none;
	padding: 0;
	width: 100%;
}

body.wsp-prototype .wp-block-post-content > .wp-block-html { display: contents; }
body.wsp-prototype :is(h1,h2,h3) { text-wrap: balance; }
body.wsp-prototype :is(p,li,figcaption) { text-wrap: pretty; }
body.wsp-prototype .reveal-up { opacity: 1 !important; }
body.wsp-prototype [id] { scroll-margin-top: 100px; }

body.wsp-prototype :is(a,button,summary,input,select,textarea):focus-visible {
	outline: 3px solid var(--acid, #c9ff35);
	outline-offset: 4px;
}

body.wsp-prototype :is(.site-header,.detail-header,.public-header) {
	position: fixed;
	inset: 0 0 auto;
	z-index: 1000;
	background: rgba(8, 9, 8, .88);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}

body.wsp-prototype .commerce-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(8, 9, 8, .94);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}

body.wsp-prototype.admin-bar :is(.detail-header,.site-header,.public-header,.commerce-header) { top: 32px; }

body.wsp-prototype :is(.header-cta,.detail-cta,.primary-button,.primary-action,.brief-submit,.dark-button,.end-cta a,.detail-end a,.form-submit button,.book-button) {
	align-items: center;
	display: flex;
	min-height: 48px;
}

body.wsp-prototype :is(.text-button,.text-action,.secondary-action,.proof-copy a,.solution-card>a) {
	align-items: center;
	display: inline-flex;
	min-height: 44px;
}

body.wsp-prototype :is(.challenge,.date-strip button,.slot-grid button,.brief-options button,.scenario-tabs button,.channel-tabs button,.model-switch button) { min-height: 48px; }
body.wsp-prototype :is(.faq summary,.price-family summary) { align-items: center; min-height: 52px; }
body.wsp-prototype :is(.deliverable p,.process-steps p,.fit-grid p,.subscription-grid p,.footer-intro p) { font-size: max(14px, 1em); line-height: 1.62; }

.wsp-mobile-menu { display: none; justify-self: end; position: relative; }
.wsp-mobile-menu summary {
	align-items: center;
	border: 1px solid rgba(255,255,255,.42);
	cursor: pointer;
	display: flex;
	font: 700 10px/1 var(--font-mono);
	justify-content: center;
	letter-spacing: .08em;
	list-style: none;
	min-height: 44px;
	min-width: 68px;
	text-transform: uppercase;
}
.wsp-mobile-menu summary::-webkit-details-marker { display: none; }
.wsp-mobile-menu summary::after { content: "+"; margin-left: 8px; }
.wsp-mobile-menu[open] summary::after { content: "−"; }
.wsp-mobile-menu nav {
	background: #0d0e0c;
	border: 1px solid rgba(255,255,255,.25);
	box-shadow: 14px 14px 0 var(--accent, var(--theme, #4967ff));
	display: grid;
	min-width: min(330px, calc(100vw - 36px));
	padding: 8px;
	position: absolute;
	right: 0;
	top: calc(100% + 12px);
}
.wsp-mobile-menu nav a {
	align-items: center;
	border-bottom: 1px solid rgba(255,255,255,.14);
	display: flex;
	font-size: 14px;
	font-weight: 650;
	min-height: 48px;
	padding: 0 12px;
}
.wsp-mobile-menu nav a:last-child { background: var(--acid, #c9ff35); color: #080908; margin-top: 8px; }

.wsp-provider-identity { line-height: 1.7; }
.wsp-provider-identity a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1100px) {
	body.wsp-prototype :is(.site-header,.detail-header,.public-header,.commerce-header) { grid-template-columns: 1fr auto auto; gap: 10px; }
	body.wsp-prototype .secure-note { display: none; }
	.wsp-mobile-menu { display: block; }
}

@media screen and (max-width: 782px) {
	body.wsp-prototype.admin-bar :is(.detail-header,.site-header,.public-header,.commerce-header) { top: 46px; }
}

@media screen and (max-width: 720px) {
	body.wsp-prototype :is(.header-cta,.detail-cta) { min-height: 44px; }
	body.wsp-prototype .brand { min-height: 44px; }
	body.wsp-prototype :is(.breadcrumbs,.anchor-strip nav,.detail-footer,.footer-group,.footer-bottom nav,.commerce-footer nav) a {
		align-items: center;
		display: flex;
		min-height: 40px;
	}
	body.wsp-prototype .breadcrumbs a { padding-inline: 4px; }
}

@media (prefers-reduced-motion: reduce) {
	body.wsp-prototype { scroll-behavior: auto; }
}
