/* Shared front-end components. Global values and block defaults live in theme.json. */

.wp-site-blocks {
	min-height: 100vh;
}

.wp-site-blocks > main {
	min-height: 55vh;
}

.screen-reader-text,
.skip-link:not(:focus) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	position: fixed;
	top: var(--wp--preset--spacing--20);
	left: var(--wp--preset--spacing--20);
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 0.75rem 1rem;
	color: var(--wp--preset--color--surface);
	background: var(--wp--preset--color--ink);
	border-radius: var(--wp--custom--radius--small);
	box-shadow: var(--wp--preset--shadow--soft);
	font-weight: 700;
	clip: auto;
}

.site-header {
	position: relative;
	z-index: 100;
}

.site-header.is-sticky {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0);
}

.site-brand {
	min-width: 0;
}

.site-brand .wp-block-site-logo {
	flex: 0 0 auto;
}

.site-brand .wp-block-site-title {
	margin: 0;
}

.site-brand .wp-block-site-title a,
.site-header .wp-block-navigation a,
.site-footer .wp-block-navigation a {
	text-decoration: none;
}

.site-header .wp-block-navigation-item__content {
	text-underline-offset: 0.3em;
}

.site-header .wp-block-navigation-item__content:hover,
.site-header .current-menu-item > .wp-block-navigation-item__content,
.site-header .current-menu-ancestor > .wp-block-navigation-item__content {
	text-decoration: underline;
	text-decoration-thickness: 0.12em;
}

.site-header__mobile-contact {
	display: none !important;
}

.site-footer a {
	color: inherit;
}

.site-footer :where(a, button, input, select, textarea, summary):focus-visible {
	outline-color: var(--wp--preset--color--surface);
}

.site-footer .wp-block-site-tagline {
	max-width: 42rem;
}

.sw-page-header {
	max-width: var(--wp--style--global--wide-size);
}

.sw-page-header > :last-child {
	margin-bottom: 0;
}

.sw-prose > :where(p, ul, ol) {
	max-width: 44rem;
}

.sw-prose :where(li + li) {
	margin-top: 0.4em;
}

.sw-card,
.sw-panel {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--large);
	background: var(--wp--preset--color--surface);
}

.sw-card {
	height: 100%;
	overflow: clip;
	box-shadow: 0 0.25rem 1.25rem rgba(23, 34, 29, 0.04);
}

.sw-card > .wp-block-post-featured-image {
	margin: 0;
}

.sw-card > .wp-block-post-featured-image img {
	border-radius: 0;
}

.sw-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

.sw-card__body .wp-block-post-excerpt {
	flex: 1 1 auto;
}

.sw-card .wp-block-post-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.sw-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--primary-dark);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.sw-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 1rem;
	color: var(--wp--preset--color--muted);
}

.sw-eyebrow {
	margin-bottom: 0;
	color: var(--wp--preset--color--primary-dark);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 750;
	letter-spacing: 0.08em;
	line-height: 1.35;
	text-transform: uppercase;
}

.sw-software-accent {
	border-color: color-mix(in srgb, var(--wp--preset--color--software) 30%, transparent);
	background: var(--wp--preset--color--software-soft);
}

.sw-muted {
	color: var(--wp--preset--color--muted);
}

.sw-section {
	padding-block: var(--wp--preset--spacing--60);
}

.sw-section--compact {
	padding-block: var(--wp--preset--spacing--50);
}

.sw-editorial-band {
	padding-block: clamp(1.5rem, 4vw, 3.5rem);
	background: var(--wp--preset--color--canvas);
}

.sw-editorial-visual {
	margin-block: 0;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--large);
	background: var(--wp--preset--color--canvas);
	box-shadow: var(--wp--preset--shadow--soft);
}

.sw-editorial-visual img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.sw-narrow {
	max-width: var(--wp--custom--measure--narrow);
}

.wp-block-post-content :where(a:not(.wp-element-button)) {
	text-underline-offset: 0.16em;
	text-decoration-thickness: 0.08em;
}

.wp-block-post-content :where(a:not(.wp-element-button)):hover {
	text-decoration-thickness: 0.13em;
}

.wp-block-post-content :where(h2, h3, h4) {
	scroll-margin-top: 6rem;
}

.wp-block-post-content :where(h2:not(:first-child)) {
	margin-top: var(--wp--preset--spacing--60);
}

.wp-block-post-content :where(h3:not(:first-child)) {
	margin-top: var(--wp--preset--spacing--50);
}

.wp-block-post-featured-image img {
	display: block;
	width: 100%;
	object-fit: cover;
}

.wp-block-post-excerpt__more-link {
	font-weight: 700;
	text-underline-offset: 0.2em;
}

.wp-block-query-pagination {
	align-items: center;
}

.wp-block-query-pagination-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
}

.wp-block-query-pagination-numbers .page-numbers {
	display: inline-grid;
	min-width: 2.75rem;
	min-height: 2.75rem;
	place-items: center;
	padding: 0.35rem;
	border-radius: var(--wp--custom--radius--pill);
}

.wp-block-query-pagination-numbers .current {
	color: var(--wp--preset--color--surface);
	background: var(--wp--preset--color--primary-dark);
}

.wp-block-post-navigation-link a {
	font-weight: 700;
}

.wp-block-details {
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	background: var(--wp--preset--color--surface);
}

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

.wp-block-details summary::marker {
	color: var(--wp--preset--color--primary);
}

.wp-block-table {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.wp-block-table table {
	border-collapse: collapse;
}

.wp-block-table :where(th, td) {
	padding: 0.75rem;
	border-color: var(--wp--preset--color--border);
	text-align: left;
	vertical-align: top;
}

.wp-block-table th {
	background: var(--wp--preset--color--surface);
}

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), select, textarea) {
	width: 100%;
	min-height: 2.9rem;
	padding: 0.65rem 0.75rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--muted);
	border-radius: var(--wp--custom--radius--small);
}

textarea {
	min-height: 10rem;
	resize: vertical;
}

:where(input, select, textarea)[aria-invalid="true"] {
	border-color: var(--wp--preset--color--signal);
}

:where(button, input[type="button"], input[type="submit"], input[type="reset"]) {
	min-height: 2.75rem;
	padding: 0.7rem 1.2rem;
	color: var(--wp--preset--color--surface);
	background: var(--wp--preset--color--primary);
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	cursor: pointer;
	font-weight: 700;
}

:where(button, input[type="button"], input[type="submit"], input[type="reset"]):hover {
	background: var(--wp--preset--color--primary-dark);
}

.nf-form-cont :where(.nf-field-container) {
	margin-bottom: var(--wp--preset--spacing--30);
}

.nf-form-cont :where(.nf-field-label label) {
	font-weight: 700;
}

.nf-form-cont :where(.nf-error-msg, .ninja-forms-req-symbol) {
	color: var(--wp--preset--color--signal);
}

.nf-form-cont .nf-error .ninja-forms-field {
	border-color: var(--wp--preset--color--signal);
}

.comment-form > p {
	margin-block: var(--wp--preset--spacing--20);
}

.wp-block-post-comments-form .comment-reply-title {
	font-size: var(--wp--preset--font-size--xl);
}

/* Editorial sections, reusable patterns and full-site template parts. */

.site-header__inner,
.site-header__actions {
	gap: var(--wp--preset--spacing--30);
}

.site-header__actions {
	min-width: 0;
	margin-left: auto;
}

.site-header__cta {
	flex: 0 0 auto;
}

.site-header__cta > :first-child,
.site-header__cta > :last-child {
	margin-block: 0;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: minmax(13rem, 1.2fr) minmax(10rem, 1.1fr) minmax(9rem, 0.9fr) minmax(8rem, 0.65fr) minmax(12rem, 1fr);
	gap: var(--wp--preset--spacing--40);
	align-items: start;
}

.site-footer__grid > .wp-block-column {
	min-width: 0;
}

.site-footer__heading {
	margin-top: 0;
	letter-spacing: 0.06em;
	line-height: 1.35;
	text-transform: uppercase;
}

.site-footer__nav .wp-block-navigation__container {
	align-items: flex-start;
	flex-direction: column;
	gap: 0.45rem;
}

.site-footer__nav .wp-block-navigation-item {
	align-items: flex-start;
}

.site-footer__nav .wp-block-navigation-item__content {
	padding-block: 0.15rem;
	line-height: 1.45;
}

.site-footer .sw-legal-links__list {
	align-items: flex-start;
	flex-direction: column;
	gap: 0.45rem;
}

.site-footer .sw-legal-links a {
	padding-block: 0.15rem;
}

.site-footer .sw-contact-details {
	color: var(--wp--preset--color--ink);
}

.site-footer .sw-contact-details a {
	color: var(--wp--preset--color--primary-dark);
}

.site-footer .sw-footer-meta {
	color: var(--wp--preset--color--surface);
}

.site-footer .sw-footer-meta a {
	color: inherit;
}

.site-footer__separator {
	margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
}

.site-footer__meta {
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
}

.site-footer__meta p {
	margin-block: 0;
}

.site-footer :where(p, li, a),
.wp-block-post-content :where(p, li, dd, td, th, a),
.info-box :where(p, li, a) {
	overflow-wrap: anywhere;
}

.wp-block-post-content :where(h1, h2, h3, h4, h5, h6) {
	overflow-wrap: anywhere;
	word-break: normal;
	hyphens: auto;
}

.sw-main {
	overflow: clip;
}

.sw-hero,
.sw-page-hero {
	background: var(--wp--preset--color--surface);
}

.sw-hero {
	position: relative;
	isolation: isolate;
	padding-block: var(--wp--preset--spacing--70);
	background-image: linear-gradient(135deg, color-mix(in srgb, var(--wp--preset--color--primary) 10%, transparent), transparent 62%);
}

.sw-page-hero {
	padding-block: var(--wp--preset--spacing--60);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.sw-hero--compact {
	padding-block: var(--wp--preset--spacing--60);
}

.sw-hero--product {
	background-color: var(--wp--preset--color--software-soft);
	background-image: linear-gradient(135deg, color-mix(in srgb, var(--wp--preset--color--software) 12%, transparent), transparent 64%);
}

.sw-hero__title,
.sw-hero > h1,
.sw-page-hero > h1 {
	max-width: 64rem;
}

.sw-page-hero > h1 {
	font-size: clamp(1.7rem, 0.7rem + 3.4vw, 3.75rem);
}

.sw-lead,
.sw-intro {
	max-width: 52rem;
	color: var(--wp--preset--color--muted);
}

.sw-lead {
	font-size: var(--wp--preset--font-size--lg);
	line-height: 1.55;
}

.sw-section > :first-child,
.sw-section > .wp-block-columns:first-child,
.sw-section > .wp-block-group:first-child {
	margin-top: 0;
}

.sw-section > :last-child {
	margin-bottom: 0;
}

.sw-section--muted {
	background: #eef2ef;
	background: color-mix(in srgb, var(--wp--preset--color--canvas) 72%, var(--wp--preset--color--border));
}

.sw-section--contrast,
.sw-cta-band {
	color: var(--wp--preset--color--surface);
	background: var(--wp--preset--color--ink);
}

.sw-section--contrast :where(h2, h3, h4, p, li),
.sw-cta-band :where(h2, h3, h4, p, li) {
	color: inherit;
}

.sw-section--contrast .sw-eyebrow,
.sw-cta-band .sw-eyebrow {
	color: var(--wp--preset--color--software-soft);
}

.sw-section--contrast a,
.sw-cta-band a:not(.wp-element-button) {
	color: var(--wp--preset--color--surface);
}

.sw-section--contrast .sw-card {
	color: var(--wp--preset--color--surface);
	background: #27342e;
	background: color-mix(in srgb, var(--wp--preset--color--surface) 8%, transparent);
	border-color: #52615a;
	border-color: color-mix(in srgb, var(--wp--preset--color--surface) 28%, transparent);
}

.sw-section--contrast .sw-card :where(h3, p, li) {
	color: inherit;
}

.sw-cta-band .sw-product-summary__price > span:first-child,
.sw-cta-band .sw-product-summary__version {
	color: var(--wp--preset--color--surface);
}

.sw-cta-band :where(.sw-product-summary__status, .sw-product-summary__notice) {
	color: var(--wp--preset--color--ink);
}

.sw-section--cta {
	border-block: 1px solid var(--wp--preset--color--border);
}

.sw-section--steps {
	background: var(--wp--preset--color--canvas);
}

.sw-section--related {
	border-top: 1px solid var(--wp--preset--color--border);
}

.sw-blog-intro {
	padding-block: var(--wp--preset--spacing--50);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.sw-blog-intro > :last-child {
	margin-bottom: 0;
}

.sw-card-grid,
.sw-provider-grid,
.sw-screenshot-grid,
.sw-text-media,
.sw-steps {
	gap: var(--wp--preset--spacing--30);
}

.sw-card-grid {
	align-items: stretch !important;
}

.sw-card-grid > .sw-card,
.sw-card--product,
.sw-product-purchase,
.sw-post-card,
.sw-stat,
.sw-contact-panel {
	padding: var(--wp--preset--spacing--40);
}

.sw-card-grid > .sw-card,
.sw-steps > .wp-block-column,
.sw-provider,
.sw-screenshot-placeholder {
	min-width: 0;
}

.sw-card-grid > .sw-card,
.sw-post-card,
.sw-product-purchase,
.sw-contact-panel {
	display: flex;
	flex-direction: column;
}

.sw-card-grid > .sw-card > :last-child,
.sw-post-card > :last-child,
.sw-product-purchase > :last-child,
.sw-contact-panel > :last-child,
.sw-notice > :last-child,
.info-box > :last-child {
	margin-bottom: 0;
}

.sw-card-grid > .sw-card > :last-child {
	margin-top: auto;
}

.sw-card-grid--two > .wp-block-column {
	flex-basis: calc(50% - var(--wp--preset--spacing--20)) !important;
}

.sw-card-grid--four > .wp-block-column {
	flex-basis: calc(25% - var(--wp--preset--spacing--30)) !important;
}

.sw-proof-list,
.sw-check-list {
	padding-left: 0;
	list-style: none;
}

.sw-proof-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem var(--wp--preset--spacing--30);
}

.sw-proof-list li,
.sw-check-list li {
	position: relative;
	padding-left: 1.65rem;
}

.sw-proof-list li::before,
.sw-check-list li::before {
	position: absolute;
	left: 0;
	color: var(--wp--preset--color--primary);
	content: "✓";
	font-weight: 800;
}

.sw-check-list li + li,
.sw-link-list li + li {
	margin-top: 0.55rem;
}

.sw-section--contrast .sw-proof-list li::before,
.sw-cta-band .sw-proof-list li::before {
	color: var(--wp--preset--color--software-soft);
}

.sw-steps {
	align-items: stretch !important;
	flex-wrap: wrap !important;
}

.sw-steps > .wp-block-column {
	flex: 1 1 13rem;
	padding: var(--wp--preset--spacing--30);
	border-top: 0.25rem solid var(--wp--preset--color--primary);
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--surface);
}

.sw-steps--five > .wp-block-column {
	flex-basis: 10.5rem;
}

.sw-step-number {
	margin-bottom: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--primary-dark);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 800;
	letter-spacing: 0.08em;
}

.sw-provider-grid {
	align-items: stretch !important;
}

.sw-provider {
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--medium);
	background: var(--wp--preset--color--surface);
}

.sw-provider > :last-child {
	margin-bottom: 0;
}

.sw-notice,
.info-box {
	max-width: 100%;
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-left: 0.3rem solid var(--wp--preset--color--primary);
	border-radius: var(--wp--custom--radius--medium);
	background: var(--wp--preset--color--surface);
}

.info-box {
	margin-block: var(--wp--preset--spacing--30);
}

.sw-product-teaser,
.sw-software-accent {
	border-color: color-mix(in srgb, var(--wp--preset--color--software) 30%, transparent);
	background: var(--wp--preset--color--software-soft);
}

.sw-product-purchase {
	max-width: 34rem;
	border-color: color-mix(in srgb, var(--wp--preset--color--software) 36%, var(--wp--preset--color--border));
	box-shadow: var(--wp--preset--shadow--soft);
}

.sw-product-purchase-section .sw-product-purchase {
	margin-inline: auto;
}

.sw-media-placeholder,
.sw-product-gallery-placeholder,
.sw-screenshot-placeholder {
	padding: var(--wp--preset--spacing--40);
	border: 2px dashed var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--large);
	background: var(--wp--preset--color--surface);
}

.sw-media-placeholder,
.sw-screenshot-placeholder {
	display: grid;
	min-height: 15rem;
	place-content: center;
	text-align: center;
}

.sw-media-placeholder__label {
	color: var(--wp--preset--color--primary-dark);
}

.sw-screenshot-grid {
	align-items: stretch !important;
}

.sw-screenshot-placeholder {
	height: 100%;
	min-height: 13rem;
}

.sw-form-panel {
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--large);
	background: var(--wp--preset--color--surface);
}

.sw-form-note {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--sm);
}

.sw-stat {
	text-align: center;
}

.sw-stat strong {
	display: block;
	color: var(--wp--preset--color--primary-dark);
	font-size: var(--wp--preset--font-size--2-xl);
	line-height: 1.1;
}

.sw-post-grid .wp-block-post-template {
	gap: var(--wp--preset--spacing--30);
}

.sw-post-card {
	height: 100%;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--wp--custom--radius--large);
	background: var(--wp--preset--color--surface);
}

.sw-post-card .wp-block-post-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.sw-post-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--primary-dark);
	text-decoration: underline;
}

.wp-block-image,
.wp-block-gallery,
.wp-block-post-featured-image {
	max-width: 100%;
}

.wp-block-image img,
.wp-block-gallery img {
	display: block;
}

.wp-block-image figcaption,
.wp-block-gallery figcaption,
.wp-block-table figcaption {
	max-width: 48rem;
	margin: 0.65rem auto 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.5;
	text-align: left;
}

.wp-block-table {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-inline: contain;
}

.wp-block-table table {
	width: max-content;
	min-width: 100%;
	max-width: none;
}

.wp-block-details summary:focus-visible {
	border-radius: var(--wp--custom--radius--small);
}

.wp-element-button,
.wp-block-button__link,
:where(button, input[type="button"], input[type="submit"], input[type="reset"]) {
	transition: color var(--wp--custom--transition--fast), background-color var(--wp--custom--transition--fast), border-color var(--wp--custom--transition--fast), transform var(--wp--custom--transition--fast);
}

@media (hover: hover) {
	.wp-element-button:hover,
	.wp-block-button__link:hover {
		transform: translateY(-1px);
	}
}

@media (max-width: 72rem) {
	.site-header__cta {
		display: none;
	}

	.site-header__mobile-contact {
		display: flex !important;
	}

	.site-footer__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.sw-card-grid--four {
		flex-wrap: wrap !important;
	}

	.sw-card-grid--four > .wp-block-column {
		flex: 1 1 calc(50% - var(--wp--preset--spacing--30)) !important;
	}
}

@media (max-width: 47.99rem) {
	.sw-query-grid {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.site-header__inner {
		gap: var(--wp--preset--spacing--20);
	}

	.site-brand .wp-block-site-title {
		font-size: var(--wp--preset--font-size--md);
	}

	.wp-block-navigation__responsive-container.is-menu-open {
		padding: var(--wp--preset--spacing--30);
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: flex-start;
	}

	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		align-items: flex-start;
		gap: var(--wp--preset--spacing--20);
	}

	.sw-section {
		padding-block: var(--wp--preset--spacing--50);
	}
}

@media (max-width: 47.99rem) {
	.site-header__actions {
		gap: var(--wp--preset--spacing--20);
	}

	.wp-block-navigation__responsive-container-open,
	.wp-block-navigation__responsive-container-close {
		min-width: 2.75rem;
		min-height: 2.75rem;
	}

	.site-footer__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.site-footer__meta {
		align-items: flex-start;
		flex-direction: column;
	}

	.sw-hero .wp-block-buttons > .wp-block-button,
	.sw-hero .wp-block-button__link {
		width: 100%;
	}

	.sw-hero .wp-block-button__link {
		display: block;
		text-align: center;
	}

	.sw-card-grid--two > .wp-block-column,
	.sw-card-grid--four > .wp-block-column {
		flex-basis: 100% !important;
	}

	.sw-card-grid > .sw-card,
	.sw-card--product,
	.sw-product-purchase,
	.sw-post-card,
	.sw-stat,
	.sw-contact-panel,
	.sw-form-panel,
	.sw-media-placeholder,
	.sw-product-gallery-placeholder,
	.sw-screenshot-placeholder {
		padding: var(--wp--preset--spacing--30);
	}

	.sw-proof-list {
		align-items: flex-start;
		flex-direction: column;
	}

	.sw-product-purchase {
		max-width: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
