/*
Theme Name: Wannemüller Software Solutions
Theme URI: https://wannemueller.software/
Author: Wannemüller Software Solutions
Author URI: https://wannemueller.software/
Description: Schnelles, barrierearmes Block-Theme für den B2B-Auftritt von Wannemüller Software Solutions.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 8.1
Version: 1.2.5
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wannemueller-software
Tags: block-patterns, full-site-editing, accessibility-ready, custom-colors, wide-blocks
*/

:root {
	--ws-red: #f31515;
	--ws-red-dark: #a80d12;
	--ws-red-deep: #78090d;
	--ws-ink: #12151c;
	--ws-muted: #5d6472;
	--ws-line: #dde1e8;
	--ws-soft: #f5f6f8;
	--ws-white: #ffffff;
	--ws-radius-sm: 0.65rem;
	--ws-radius-md: 1.1rem;
	--ws-radius-lg: 1.6rem;
	--ws-shadow: 0 18px 50px rgba(18, 21, 28, 0.09);
	--ws-page-hero-height: 40rem;
	--ws-page-hero-signal-height: 25rem;
}

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

html {
	scroll-behavior: smooth;
}

body {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

body,
button,
input,
select,
textarea {
	font-family: var(--wp--preset--font-family--sans);
}

a {
	text-underline-offset: 0.2em;
	text-decoration-thickness: 0.08em;
}

a:hover {
	text-decoration-thickness: 0.12em;
}

:where(a, button, input, textarea, select, summary):focus-visible {
	outline: 3px solid var(--ws-red);
	outline-offset: 3px;
}

::selection {
	background: var(--ws-red-dark);
	color: var(--ws-white);
}

.screen-reader-text:focus {
	background: var(--ws-white);
	border-radius: 0.3rem;
	box-shadow: 0 0 0 2px var(--ws-red-dark);
	clip: auto !important;
	clip-path: none;
	color: var(--ws-ink);
	display: block;
	font-size: 0.9rem;
	font-weight: 700;
	height: auto;
	left: 1rem;
	line-height: normal;
	padding: 0.8rem 1rem;
	top: 1rem;
	width: auto;
	z-index: 100000;
}

/* Brand */
.brand-lockup {
	align-items: center;
	color: var(--ws-ink);
	display: inline-flex;
	gap: 0.6rem;
	line-height: 1;
	text-decoration: none;
}

.brand-lockup:hover {
	color: var(--ws-red-dark);
}

.brand-lockup__sign {
	flex: 0 0 auto;
	height: 2.8rem;
	object-fit: contain;
	width: 2.8rem;
}

.brand-lockup__text {
	display: grid;
	gap: 0.22rem;
}

.brand-lockup__name {
	font-size: 1.03rem;
	font-weight: 780;
	letter-spacing: -0.025em;
}

.brand-lockup__descriptor {
	color: var(--ws-muted);
	font-size: 0.72rem;
	font-weight: 650;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.brand-lockup--inverse,
.brand-lockup--inverse:hover {
	color: var(--ws-white);
}

.brand-lockup--inverse .brand-lockup__descriptor {
	color: #c8cdd8;
}

/* Header and navigation */
.ws-site-header {
	backdrop-filter: blur(14px);
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid rgba(221, 225, 232, 0.9);
	position: sticky;
	top: 0;
	z-index: 100;
}

.admin-bar .ws-site-header {
	top: 32px;
}

.ws-header-inner {
	min-height: 5rem;
}

.ws-primary-navigation .wp-block-navigation-item__content {
	color: var(--ws-ink);
	font-size: 0.9rem;
	font-weight: 650;
	padding-block: 0.6rem;
	text-decoration: none;
}

.ws-primary-navigation .wp-block-navigation-item__content:hover {
	color: var(--ws-red-dark);
}

.ws-header-cta .wp-block-button__link {
	white-space: nowrap;
}

/* Core elements */
.wp-block-button__link {
	align-items: center;
	display: inline-flex;
	font-weight: 720;
	justify-content: center;
	min-height: 3rem;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.wp-block-button__link:hover {
	transform: translateY(-1px);
}

.is-style-outline > .wp-block-button__link:hover {
	background: var(--ws-ink);
	border-color: var(--ws-ink);
	color: var(--ws-white);
}

.ws-button-on-dark.is-style-outline > .wp-block-button__link {
	border-color: rgba(255, 255, 255, 0.62);
	color: var(--ws-white);
}

.ws-button-on-dark.is-style-outline > .wp-block-button__link:hover {
	background: var(--ws-white);
	border-color: var(--ws-white);
	color: var(--ws-ink);
}

.wp-block-separator {
	border-top: 1px solid var(--ws-line);
}

.wp-block-post-content :where(ul, ol):not([class]) {
	padding-left: 1.3rem;
}

.wp-block-post-content :where(ul, ol):not([class]) li + li {
	margin-top: 0.5rem;
}

.wp-block-details {
	background: var(--ws-white);
	border: 1px solid var(--ws-line);
	border-radius: var(--ws-radius-sm);
	padding: 1.05rem 1.2rem;
}

.wp-block-details summary {
	cursor: pointer;
	font-weight: 720;
}

.wp-block-details[open] summary {
	margin-bottom: 0.7rem;
}

/* Reusable layout components */
.ws-section {
	padding-block: clamp(4.5rem, 8vw, 7.5rem);
}

.ws-section--compact {
	padding-block: clamp(3rem, 5vw, 4.75rem);
}

.ws-eyebrow {
	color: var(--ws-red-dark);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	line-height: 1.3;
	margin-bottom: 1rem;
	text-transform: uppercase;
}

.has-ink-background-color .ws-eyebrow,
.has-red-deep-background-color .ws-eyebrow {
	color: #ff8f8f;
}

.ws-lead {
	color: var(--ws-muted);
	font-size: clamp(1.08rem, 1.7vw, 1.28rem);
	line-height: 1.65;
}

.ws-card {
	background: var(--ws-white);
	border: 1px solid var(--ws-line);
	border-radius: var(--ws-radius-md);
	height: 100%;
	padding: clamp(1.4rem, 2.8vw, 2rem);
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.ws-card:hover {
	border-color: #c6cad3;
	box-shadow: var(--ws-shadow);
	transform: translateY(-3px);
}

.ws-card h3 {
	margin-top: 0;
}

.ws-card p:last-child {
	margin-bottom: 0;
}

.ws-service-card__links {
	display: grid;
	gap: 0.55rem;
	margin-top: auto;
}

.ws-card__number,
.ws-icon-tile {
	align-items: center;
	background: #fff0f0;
	border-radius: 0.75rem;
	color: var(--ws-red-dark);
	display: inline-flex;
	font-size: 0.95rem;
	font-weight: 800;
	height: 2.75rem;
	justify-content: center;
	margin-bottom: 1.25rem;
	width: 2.75rem;
}

.ws-link-arrow {
	font-weight: 720;
	text-decoration: none;
}

.ws-link-arrow::after {
	content: " →";
}

.ws-link-arrow:hover::after {
	margin-left: 0.16rem;
}

.ws-kicker-row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem 1.25rem;
}

.ws-kicker-row span {
	align-items: center;
	display: inline-flex;
	font-size: 0.88rem;
	font-weight: 650;
	gap: 0.48rem;
}

.ws-kicker-row span::before {
	background: var(--ws-red);
	border-radius: 100%;
	content: "";
	height: 0.48rem;
	width: 0.48rem;
}

.ws-proof-strip {
	border-block: 1px solid var(--ws-line);
	padding-block: 1.15rem;
}

.ws-proof-strip .wp-block-column {
	align-items: center;
	display: flex;
	gap: 0.7rem;
}

.ws-proof-strip strong {
	color: var(--ws-ink);
	display: block;
	font-size: 0.94rem;
}

.ws-proof-strip small {
	color: var(--ws-muted);
	display: block;
	font-size: 0.78rem;
}

.ws-proof-dot {
	background: var(--ws-red);
	border-radius: 50%;
	box-shadow: 0 0 0 0.35rem #ffe5e5;
	flex: 0 0 auto;
	height: 0.62rem;
	width: 0.62rem;
}

/* Hero */
.ws-hero {
	background:
		radial-gradient(circle at 94% 8%, rgba(243, 21, 21, 0.12), transparent 25rem),
		linear-gradient(180deg, #ffffff 0%, #f7f8fa 100%);
	overflow: hidden;
	padding-block: clamp(3.5rem, 7vw, 6.5rem);
	position: relative;
}

.ws-hero::after {
	background-image: linear-gradient(rgba(18, 21, 28, 0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(18, 21, 28, 0.035) 1px, transparent 1px);
	background-size: 3rem 3rem;
	content: "";
	inset: 0 0 0 55%;
	mask-image: linear-gradient(to left, #000, transparent);
	pointer-events: none;
	position: absolute;
}

.ws-hero > .wp-block-group__inner-container,
.ws-hero > * {
	position: relative;
	z-index: 1;
}

.ws-hero h1 {
	font-size: clamp(3.35rem, 5.4vw, 4.8rem);
	max-width: 13ch;
}

.ws-hero-visual {
	border-radius: clamp(1rem, 2.5vw, 1.7rem);
	box-shadow: 0 26px 70px rgba(18, 21, 28, 0.18);
	margin: 0;
	overflow: hidden;
	position: relative;
}

.ws-hero-visual::after {
	background: linear-gradient(180deg, transparent 42%, rgba(8, 10, 14, 0.78) 100%);
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
}

.ws-hero-visual > img {
	aspect-ratio: 4 / 5;
	display: block;
	height: 100%;
	object-fit: cover;
	object-position: 63% center;
	width: 100%;
}

.ws-hero-visual__card {
	bottom: 0;
	color: var(--ws-white);
	display: grid;
	gap: 0.5rem;
	left: 0;
	padding: clamp(1.35rem, 3vw, 2rem);
	position: absolute;
	right: 0;
	z-index: 1;
}

.ws-hero-visual__card span {
	color: #ff9a9a;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.ws-hero-visual__card strong {
	font-size: clamp(1.15rem, 2.2vw, 1.55rem);
	line-height: 1.22;
	max-width: 27rem;
}

/* Startseite: visueller Projekteinblick */
.home .ws-section {
	padding-block: clamp(3.75rem, 6.5vw, 6rem);
}

.ws-home-proof {
	background:
		radial-gradient(circle at 100% 0, rgba(243, 21, 21, 0.18), transparent 30rem),
		var(--ws-ink);
	color: var(--ws-white);
	overflow: hidden;
}

.ws-home-proof h2,
.ws-home-proof strong {
	color: var(--ws-white);
}

.ws-home-proof .ws-eyebrow {
	color: #ff9292;
}

.ws-home-proof .ws-lead {
	color: #c8cdd8;
}

.ws-home-proof__media {
	border-radius: var(--ws-radius-lg);
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.3);
	margin: 0;
	overflow: hidden;
	position: relative;
}

.ws-home-proof__media img {
	aspect-ratio: 4 / 3;
	display: block;
	object-fit: cover;
	width: 100%;
}

.ws-home-proof__media figcaption {
	background: rgba(18, 21, 28, 0.9);
	border-left: 0.25rem solid var(--ws-red);
	bottom: 1.25rem;
	color: var(--ws-white);
	font-size: 0.85rem;
	font-weight: 720;
	left: 1.25rem;
	padding: 0.8rem 1rem;
	position: absolute;
}

.ws-project-scenarios {
	display: grid;
	gap: 0;
	list-style: none;
	margin: 1.7rem 0 0;
	padding: 0;
}

.ws-project-scenarios li {
	align-items: flex-start;
	border-top: 1px solid #343b49;
	display: grid;
	gap: 1rem;
	grid-template-columns: 2rem 1fr;
	padding-block: 1rem;
}

.ws-project-scenarios li > span {
	color: #ff8585;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.78rem;
	font-weight: 800;
	padding-top: 0.12rem;
}

.ws-project-scenarios strong,
.ws-project-scenarios small {
	display: block;
}

.ws-project-scenarios small {
	color: #aeb5c2;
	font-size: 0.86rem;
	line-height: 1.5;
	margin-top: 0.25rem;
}

.ws-hero__panel {
	background: var(--ws-ink);
	border-radius: var(--ws-radius-lg);
	box-shadow: var(--ws-shadow);
	color: var(--ws-white);
	overflow: hidden;
	padding: clamp(1.4rem, 3vw, 2rem);
	position: relative;
}

.ws-hero__panel::before {
	background: var(--ws-red);
	content: "";
	height: 0.28rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.ws-code-window {
	background: #1d222c;
	border: 1px solid #343b49;
	border-radius: 0.85rem;
	font-family: var(--wp--preset--font-family--mono);
	font-size: clamp(0.74rem, 1.2vw, 0.88rem);
	line-height: 1.75;
	margin-top: 1.35rem;
	overflow: hidden;
	padding: 1.15rem;
}

.ws-code-window__bar {
	display: flex;
	gap: 0.38rem;
	margin-bottom: 0.95rem;
}

.ws-code-window__bar span {
	background: #596171;
	border-radius: 50%;
	height: 0.5rem;
	width: 0.5rem;
}

.ws-code-window__bar span:first-child {
	background: var(--ws-red);
}

.ws-code-accent {
	color: #ff8585;
}

.ws-code-muted {
	color: #9da5b4;
}

/* Pricing / prototype */
.ws-prototype-panel {
	background:
		linear-gradient(135deg, rgba(243, 21, 21, 0.16), transparent 38%),
		var(--ws-ink);
	border-radius: var(--ws-radius-lg);
	color: var(--ws-white);
	overflow: hidden;
	padding: clamp(2rem, 6vw, 4.5rem);
	position: relative;
}

.ws-price {
	font-size: clamp(2.7rem, 7vw, 5.2rem);
	font-weight: 820;
	letter-spacing: -0.065em;
	line-height: 0.95;
	margin-block: 0.45rem;
}

.ws-price-note {
	color: #c8cdd8;
	font-size: 0.84rem;
}

.ws-check-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ws-check-list li {
	padding-left: 1.75rem;
	position: relative;
}

.ws-check-list li + li {
	margin-top: 0.8rem;
}

.ws-check-list li::before {
	color: #ff7777;
	content: "✓";
	font-weight: 900;
	left: 0;
	position: absolute;
}

/* Technology and region chips */
.ws-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.ws-chip-list a,
.ws-chip-list span {
	background: var(--ws-white);
	border: 1px solid var(--ws-line);
	border-radius: 999px;
	color: var(--ws-ink);
	font-size: 0.88rem;
	font-weight: 680;
	padding: 0.6rem 0.9rem;
	text-decoration: none;
}

.ws-chip-list a:hover {
	border-color: var(--ws-red-dark);
	color: var(--ws-red-dark);
}

.ws-region-card {
	background: linear-gradient(150deg, #ffffff, #f7f7f8);
	border-left: 0.25rem solid var(--ws-red);
}

/* Content and forms */
.ws-page-header {
	background: var(--ws-soft);
	border-bottom: 1px solid var(--ws-line);
	padding-block: clamp(3.5rem, 7vw, 6.5rem);
}

.ws-content-shell {
	padding-block: clamp(3rem, 6vw, 6rem);
}

.ws-content-shell > :where(p, ul, ol, h2, h3, h4, blockquote, figure):not(.alignwide):not(.alignfull) {
	max-width: 48rem;
}

.ws-content-shell > h2 {
	margin-top: 2.5em;
}

.ws-form-shell {
	background: var(--ws-white);
	border: 1px solid var(--ws-line);
	border-radius: var(--ws-radius-md);
	box-shadow: var(--ws-shadow);
	padding: clamp(1.35rem, 4vw, 2.5rem);
}

.ws-form-shell :where(input:not([type="checkbox"]):not([type="radio"]), textarea, select),
.wp-block-search__input {
	background: var(--ws-white);
	border: 1px solid #aeb4bf;
	border-radius: 0.5rem;
	color: var(--ws-ink);
	font: inherit;
	min-height: 3rem;
	padding: 0.7rem 0.85rem;
	width: 100%;
}

.ws-form-shell label {
	display: inline-block;
	font-weight: 700;
	margin-bottom: 0.35rem;
}

.ws-form-shell :where(button, input[type="submit"]),
.wp-block-search__button {
	background: var(--ws-red-dark);
	border: 0;
	border-radius: 0.45rem;
	color: var(--ws-white);
	cursor: pointer;
	font: inherit;
	font-weight: 720;
	min-height: 3rem;
	padding: 0.7rem 1.2rem;
}

/* Seeded landing pages */
.wp-block-post-content > :where(.wm-page-hero, .wm-content-section, .wm-cta) {
	max-width: none !important;
}

.wm-page-hero,
.wm-content-section,
.wm-cta {
	margin-block: 0;
}

.wm-page-hero {
	align-items: center;
	background:
		radial-gradient(circle at 88% 15%, rgba(243, 21, 21, 0.14), transparent 26rem),
		linear-gradient(180deg, #ffffff 0%, #f8f9fa 100%);
	border-bottom: 1px solid var(--ws-line);
	display: grid;
	min-height: var(--ws-page-hero-height);
	overflow: hidden;
	padding-block: clamp(4.5rem, 7vw, 6rem);
	position: relative;
}

.wm-page-hero::after {
	background-image: linear-gradient(rgba(18, 21, 28, 0.04) 1px, transparent 1px), linear-gradient(90deg, rgba(18, 21, 28, 0.04) 1px, transparent 1px);
	background-size: 3rem 3rem;
	content: "";
	inset: 0 0 0 55%;
	mask-image: linear-gradient(to left, #000, transparent);
	pointer-events: none;
	position: absolute;
}

.wm-page-hero__inner,
.wm-content-section__inner,
.wm-cta {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size, 1240px);
	padding-inline: clamp(1rem, 3vw, 2rem);
}

.wm-page-hero__inner {
	align-items: center;
	display: grid;
	gap: clamp(2rem, 7vw, 7rem);
	grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr);
	min-height: var(--ws-page-hero-signal-height);
	position: relative;
	width: 100%;
	z-index: 1;
}

.wm-page-hero h1 {
	font-size: clamp(2.45rem, 5vw, 4rem);
	letter-spacing: -0.055em;
	line-height: 1.03;
	margin: 0;
	max-width: 20ch;
	text-wrap: balance;
}

.wm-eyebrow {
	color: var(--ws-red-dark);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	line-height: 1.3;
	margin: 0 0 1rem;
	text-transform: uppercase;
}

.wm-page-hero__lead,
.wm-lead {
	color: var(--ws-muted);
	font-size: clamp(1.08rem, 1.7vw, 1.28rem);
	line-height: 1.65;
}

.wm-page-hero__lead {
	margin: 1.4rem 0 0;
	max-width: 48rem;
}

.wm-page-hero__signal {
	align-items: flex-start;
	background: var(--ws-ink);
	border-radius: var(--ws-radius-lg);
	box-shadow: var(--ws-shadow);
	color: var(--ws-white);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: var(--ws-page-hero-signal-height);
	min-height: var(--ws-page-hero-signal-height);
	overflow: hidden;
	padding: clamp(1.4rem, 3vw, 2rem);
	position: relative;
}

.wm-page-hero__signal::before {
	background: var(--ws-red);
	content: "";
	height: 0.3rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.wm-page-hero__signal span {
	color: var(--ws-white);
	font-size: clamp(7rem, 14vw, 11rem);
	font-weight: 850;
	letter-spacing: -0.12em;
	line-height: 0.85;
	transform: translateX(-0.08em);
}

.wm-page-hero__signal small {
	color: #c8cdd8;
	font-size: 0.9rem;
	font-weight: 650;
	letter-spacing: 0.04em;
}

.wm-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem 1.25rem;
	margin-top: 2rem;
}

.wm-button {
	align-items: center;
	border: 1px solid transparent;
	border-radius: 0.45rem;
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-weight: 720;
	justify-content: center;
	min-height: 3rem;
	padding: 0.72rem 1.15rem;
	text-align: center;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.wm-button:hover {
	transform: translateY(-1px);
}

.wm-button--primary {
	background: var(--ws-red-dark);
	color: var(--ws-white);
}

.wm-button--primary:hover {
	background: var(--ws-red-deep);
	color: var(--ws-white);
}

.wm-button--secondary {
	background: transparent;
	border-color: var(--ws-ink);
	color: var(--ws-ink);
}

.wm-button--secondary:hover {
	background: var(--ws-ink);
	color: var(--ws-white);
}

.wm-button--light {
	background: var(--ws-white);
	color: var(--ws-ink);
}

.wm-button--light:hover {
	background: #ffe8e8;
	color: var(--ws-red-deep);
}

.wm-text-link,
.wm-card__link {
	color: var(--ws-red-dark);
	font-weight: 720;
	text-decoration: none;
}

.wm-text-link:hover,
.wm-card__link:hover {
	color: var(--ws-red-deep);
	text-decoration: underline;
}

.wm-content-section {
	background: var(--ws-white);
	padding-block: clamp(4.5rem, 8vw, 7.5rem);
}

.wm-content-section--tint {
	background: var(--ws-soft);
	border-block: 1px solid var(--ws-line);
}

.wm-content-section__inner > h2 {
	font-size: clamp(1.8rem, 4vw, 3.15rem);
	letter-spacing: -0.045em;
	line-height: 1.08;
	margin: 0;
	max-width: 22ch;
	text-wrap: balance;
}

.wm-content-section__inner > .wm-lead {
	margin: 1.2rem 0 2.5rem;
	max-width: 52rem;
}

.wm-card-grid {
	display: grid;
	gap: 1.35rem;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.wm-card {
	background: var(--ws-white);
	border: 1px solid var(--ws-line);
	border-radius: var(--ws-radius-md);
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: clamp(1.4rem, 2.8vw, 2rem);
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.wm-card:hover {
	border-color: #c6cad3;
	box-shadow: var(--ws-shadow);
	transform: translateY(-3px);
}

.wm-card__index {
	align-items: center;
	background: #fff0f0;
	border-radius: 0.75rem;
	color: var(--ws-red-dark);
	display: inline-flex;
	font-size: 0.88rem;
	font-weight: 800;
	height: 2.75rem;
	justify-content: center;
	margin-bottom: 1.3rem;
	width: 2.75rem;
}

.wm-card h3 {
	font-size: clamp(1.16rem, 2vw, 1.42rem);
	letter-spacing: -0.025em;
	line-height: 1.2;
	margin: 0 0 0.7rem;
}

.wm-card p {
	color: var(--ws-muted);
	margin: 0 0 1.2rem;
}

.wm-card__link {
	margin-top: auto;
}

.wm-prose,
.wm-legal {
	max-width: 52rem;
}

.wm-prose p,
.wm-legal p {
	margin: 0 0 1.1rem;
}

.wm-note {
	background: #fff4f4;
	border-left: 0.25rem solid var(--ws-red);
	color: var(--ws-ink);
	margin: 1.5rem 0 0;
	max-width: 52rem;
	padding: 1rem 1.15rem;
}

.wm-process {
	counter-reset: wm-process;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.wm-process--five {
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.wm-process li {
	border-top: 0.24rem solid var(--ws-red);
	padding-top: 1.3rem;
}

.wm-process li > span {
	color: var(--ws-red-dark);
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 0.84rem;
	font-weight: 800;
	margin-bottom: 1rem;
}

.wm-process h3 {
	font-size: 1.2rem;
	margin: 0 0 0.55rem;
}

.wm-process p {
	color: var(--ws-muted);
	font-size: 0.95rem;
	margin: 0;
}

.wm-faq {
	display: grid;
	gap: 0.8rem;
	max-width: 56rem;
}

.wm-faq details {
	background: var(--ws-white);
	border: 1px solid var(--ws-line);
	border-radius: var(--ws-radius-sm);
	padding: 1.05rem 1.2rem;
}

.wm-faq summary {
	cursor: pointer;
	font-weight: 720;
}

.wm-faq details[open] summary {
	margin-bottom: 0.7rem;
}

.wm-faq p {
	color: var(--ws-muted);
	margin: 0;
}

.wm-offer {
	background: var(--ws-ink);
	border-radius: var(--ws-radius-lg);
	color: var(--ws-white);
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	overflow: hidden;
}

.wm-offer > div {
	background: #1c212b;
	padding: clamp(1.4rem, 4vw, 2.5rem);
}

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

.wm-offer--four strong {
	font-size: clamp(1.25rem, 2.5vw, 1.9rem);
}

.wm-decision-grid {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.wm-decision-grid > div {
	background: var(--ws-white);
	border: 1px solid var(--ws-line);
	border-radius: var(--ws-radius-md);
	padding: clamp(1.4rem, 3vw, 2.2rem);
}

.wm-decision-grid h3 {
	font-size: clamp(1.25rem, 2vw, 1.55rem);
	margin: 0 0 1.25rem;
}

.wm-offer strong,
.wm-offer span {
	display: block;
}

.wm-offer strong {
	color: var(--ws-white);
	font-size: clamp(1.6rem, 3.8vw, 2.7rem);
	letter-spacing: -0.05em;
	line-height: 1.05;
}

.wm-offer span {
	color: #c8cdd8;
	font-size: 0.88rem;
	margin-top: 0.55rem;
}

.wm-checklist {
	list-style: none;
	margin: 0;
	max-width: 52rem;
	padding: 0;
}

.wm-checklist li {
	padding-left: 1.8rem;
	position: relative;
}

.wm-checklist li + li {
	margin-top: 0.8rem;
}

.wm-checklist li::before {
	color: var(--ws-red-dark);
	content: "✓";
	font-weight: 900;
	left: 0;
	position: absolute;
}

.wm-checklist--negative li::before {
	content: "-";
}

.wm-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.wm-chip-list li {
	background: var(--ws-white);
	border: 1px solid var(--ws-line);
	border-radius: 999px;
	color: var(--ws-ink);
	font-size: 0.88rem;
	font-weight: 680;
	padding: 0.62rem 0.92rem;
}

.wm-content-section--form .wm-content-section__inner {
	display: grid;
	gap: 1rem clamp(2rem, 7vw, 7rem);
	grid-template-columns: minmax(15rem, 0.7fr) minmax(0, 1.3fr);
}

.wm-content-section--form .wm-eyebrow,
.wm-content-section--form > .wm-content-section__inner > h2,
.wm-content-section--form > .wm-content-section__inner > .wm-lead {
	grid-column: 1;
}

.wm-content-section--form .wm-content-section__inner > .wm-form,
.wm-content-section--form .wm-content-section__inner > form,
.wm-content-section--form .wm-content-section__inner > .wm-form__notice {
	grid-column: 2;
	grid-row: 1 / span 4;
}

.wm-content-section--form .wm-content-section__inner > .wm-form {
	margin: 0;
}

.wm-legal {
	background: var(--ws-white);
	border: 1px solid var(--ws-line);
	border-radius: var(--ws-radius-md);
	padding: clamp(1.3rem, 4vw, 2.3rem);
}

.wm-cta {
	align-items: center;
	background: var(--ws-red-deep);
	color: #f6dddd;
	display: flex;
	gap: 2rem;
	justify-content: space-between;
	max-width: none;
	padding-block: clamp(3rem, 5vw, 4.75rem);
}

.wm-cta > div {
	position: relative;
}

.wm-cta__action {
	flex: 0 0 auto;
}

.wm-cta::before {
	background: var(--ws-red-deep);
	content: "";
	inset: 0 calc(-1 * clamp(1rem, 3vw, 2rem));
	pointer-events: none;
	position: absolute;
}

.wm-cta {
	position: relative;
}

.wm-cta .wm-eyebrow {
	color: #ff9a9a;
}

.wm-cta h2 {
	color: var(--ws-white);
	font-size: clamp(1.8rem, 4vw, 3.15rem);
	margin: 0;
	max-width: 22ch;
}

.wm-cta p:not(.wm-eyebrow) {
	font-size: 1.08rem;
	margin: 0.75rem 0 0;
	max-width: 46rem;
}

/* Queries */
.ws-post-card {
	border: 1px solid var(--ws-line);
	border-radius: var(--ws-radius-md);
	overflow: hidden;
}

.ws-post-card .wp-block-post-featured-image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.ws-post-card__content {
	padding: 1.4rem;
}

.wp-block-query-pagination {
	margin-top: 3rem;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .current {
	align-items: center;
	border: 1px solid var(--ws-line);
	border-radius: 0.4rem;
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.5rem 0.75rem;
	text-decoration: none;
}

/* Footer */
.ws-site-footer {
	background: var(--ws-ink);
	color: #c8cdd8;
	padding-block: clamp(3.5rem, 7vw, 5.5rem) 1.5rem;
}

.ws-site-footer h2,
.ws-site-footer h3,
.ws-site-footer strong {
	color: var(--ws-white);
}

.ws-site-footer a {
	color: #e8eaf0;
}

.ws-site-footer a:hover {
	color: #ff8f8f;
}

.ws-footer-nav {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ws-footer-nav li + li {
	margin-top: 0.52rem;
}

.ws-footer-nav a {
	text-decoration: none;
}

.ws-footer-regions {
	border-top: 1px solid #343b49;
	margin-top: clamp(2.5rem, 5vw, 4rem);
	padding-top: clamp(2rem, 4vw, 3rem);
}

.ws-footer-regions > h3 {
	margin-bottom: 0.45rem;
}

.ws-footer-regions > p {
	font-size: 0.9rem;
	margin: 0 0 1.4rem;
}

.ws-footer-region-list {
	display: grid;
	gap: 0.7rem 1.5rem;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ws-footer-region-list a {
	font-size: 0.82rem;
	line-height: 1.35;
	text-decoration: none;
}

.ws-footer-region-list__all {
	color: #ff9292 !important;
	font-weight: 760;
	margin-top: 0.4rem;
}

.ws-footer-meta {
	border-top: 1px solid #343b49;
	font-size: 0.8rem;
	margin-top: 3rem;
	padding-top: 1.35rem;
}

/* Utility */
.ws-max-copy {
	max-width: 46rem;
}

.ws-text-balance {
	text-wrap: balance;
}

.ws-no-margin {
	margin: 0 !important;
}

@media (max-width: 1080px) {
	.wp-block-buttons.ws-header-cta {
		display: none;
	}

	.ws-primary-navigation .wp-block-navigation-item__content {
		font-size: 0.84rem;
	}

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

	.wm-process {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

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

	.ws-footer-region-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	.admin-bar .ws-site-header {
		top: 46px;
	}

	.ws-header-inner {
		min-height: 4.5rem;
	}

	.ws-primary-navigation .wp-block-navigation__responsive-container.is-menu-open {
		background: var(--ws-white);
		color: var(--ws-ink);
		padding: 1.5rem;
	}

	.ws-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding-top: 4rem;
	}

	.ws-primary-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		font-size: 1.2rem;
		padding-block: 0.55rem;
	}

	.ws-hero::after {
		inset: 42% 0 0;
	}

	.ws-hero-visual > img {
		aspect-ratio: 16 / 10;
		max-height: 34rem;
	}

	.ws-hero h1 {
		max-width: 16ch;
	}

	.wm-page-hero {
		min-height: 0;
		padding-block: clamp(3.75rem, 12vw, 5rem);
	}

	.ws-proof-strip .wp-block-columns {
		gap: 1rem;
	}

	.ws-site-footer .wp-block-columns {
		gap: 2rem;
	}

	.ws-footer-region-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.wm-page-hero__inner,
	.wm-content-section--form .wm-content-section__inner {
		grid-template-columns: 1fr;
	}

	.wm-page-hero__inner {
		min-height: 0;
	}

	.wm-page-hero__signal {
		height: auto;
		min-height: 12rem;
	}

	.wm-page-hero__signal span {
		font-size: 7.5rem;
	}

	.wm-content-section--form .wm-eyebrow,
	.wm-content-section--form > .wm-content-section__inner > h2,
	.wm-content-section--form > .wm-content-section__inner > .wm-lead,
	.wm-content-section--form .wm-content-section__inner > .wm-form,
	.wm-content-section--form .wm-content-section__inner > form,
	.wm-content-section--form .wm-content-section__inner > .wm-form__notice {
		grid-column: 1;
		grid-row: auto;
	}

	.wm-offer {
		grid-template-columns: 1fr;
	}

	.wm-decision-grid {
		grid-template-columns: 1fr;
	}

	.wm-cta {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (max-width: 480px) {
	.brand-lockup__descriptor {
		display: none;
	}

	.brand-lockup__sign {
		height: 2.5rem;
		width: 2.5rem;
	}

	.ws-hero-visual__card strong {
		font-size: 1.05rem;
	}

	.ws-home-proof__media figcaption {
		bottom: 0.8rem;
		left: 0.8rem;
	}

	.ws-footer-region-list {
		grid-template-columns: 1fr;
	}

	.ws-hero .wp-block-buttons,
	.ws-prototype-panel .wp-block-buttons {
		align-items: stretch;
		flex-direction: column;
	}

	.ws-hero .wp-block-button,
	.ws-hero .wp-block-button__link,
	.ws-prototype-panel .wp-block-button,
	.ws-prototype-panel .wp-block-button__link {
		width: 100%;
	}

	.wm-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.wm-actions .wm-button {
		width: 100%;
	}

	.wm-card-grid,
	.wm-process {
		grid-template-columns: 1fr;
	}

	.wm-cta__action,
	.wm-cta__action .wm-button {
		width: 100%;
	}
}

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

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

@media print {
	.ws-site-header,
	.ws-site-footer,
	.wp-block-buttons {
		display: none !important;
	}

	body {
		background: #fff;
		color: #000;
	}

	a {
		color: #000;
		text-decoration: underline;
	}
}
