/**
 * Veyra Apps Component Library 0.4.1
 *
 * Reusable visual components only. No business logic or page-specific CSS.
 */

/* ==========================================================================
   06. Surfaces, glass and cards
   ========================================================================== */

.veyra-surface,
.wp-block-group.is-style-veyra-surface {
	border: 1px solid var(--veyra-border-glass);
	border-radius: var(--veyra-radius-lg);
	background:
		linear-gradient(145deg, rgba(246, 248, 255, 0.036), rgba(59, 140, 255, 0.008) 50%, rgba(138, 92, 255, 0.03)),
		var(--veyra-surface-liquid);
	box-shadow: var(--veyra-shadow-liquid);
}

@supports ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.veyra-surface,
	.wp-block-group.is-style-veyra-surface {
		-webkit-backdrop-filter: blur(var(--wp--custom--blur--md)) saturate(142%);
		backdrop-filter: blur(var(--wp--custom--blur--md)) saturate(142%);
	}
}

.veyra-surface--raised {
	border-color: var(--veyra-border-default);
	background:
		linear-gradient(145deg, rgba(246, 248, 255, 0.07), rgba(59, 140, 255, 0.018) 50%, rgba(138, 92, 255, 0.06)),
		var(--veyra-surface-glass-strong);
	box-shadow:
		inset 0 1px 0 rgba(246, 248, 255, 0.08),
		var(--veyra-shadow-elevated);
}

.veyra-glass,
.wp-block-group.is-style-veyra-glass {
	border: 1px solid var(--veyra-border-glass);
	border-radius: var(--veyra-radius-lg);
	background:
		linear-gradient(135deg, rgba(246, 248, 255, 0.042), rgba(59, 140, 255, 0.008) 48%, rgba(138, 92, 255, 0.034)),
		var(--veyra-surface-glass);
	box-shadow: var(--veyra-shadow-glass);
}

@supports ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.veyra-glass,
	.wp-block-group.is-style-veyra-glass {
		background:
			linear-gradient(135deg, rgba(246, 248, 255, 0.048), rgba(59, 140, 255, 0.007) 48%, rgba(138, 92, 255, 0.038)),
			var(--veyra-surface-liquid);
		-webkit-backdrop-filter: blur(var(--wp--custom--blur--md)) saturate(145%);
		backdrop-filter: blur(var(--wp--custom--blur--md)) saturate(145%);
	}
}

.veyra-glass--strong {
	background-color: var(--veyra-surface-glass-strong);
}

.veyra-gradient-border,
.wp-block-group.is-style-veyra-glow {
	border: 1px solid transparent;
	border-radius: var(--veyra-radius-lg);
	background:
		linear-gradient(var(--veyra-surface), var(--veyra-surface)) padding-box,
		var(--veyra-gradient-border) border-box;
	box-shadow:
		inset 0 1px 0 rgba(246, 248, 255, 0.06),
		0 1rem 3.5rem rgba(59, 140, 255, 0.10),
		0 1.25rem 4rem rgba(138, 92, 255, 0.10);
}

.veyra-card {
	position: relative;
	padding: clamp(0.85rem, 1.7vw, 1.2rem);
	border: 1px solid var(--veyra-border-glass);
	border-radius: var(--veyra-radius-lg);
	background:
		linear-gradient(145deg, rgba(246, 248, 255, 0.034), rgba(59, 140, 255, 0.006) 52%, rgba(138, 92, 255, 0.026)),
		var(--veyra-surface-liquid);
	box-shadow: var(--veyra-shadow-liquid);
}

@supports ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.veyra-card {
		-webkit-backdrop-filter: blur(var(--wp--custom--blur--sm)) saturate(135%);
		backdrop-filter: blur(var(--wp--custom--blur--sm)) saturate(135%);
	}
}

.veyra-card--compact {
	padding: 1rem;
	border-radius: var(--veyra-radius-md);
}

.veyra-card--interactive {
	transition:
		transform var(--veyra-transition-base),
		border-color var(--veyra-transition-base),
		background-color var(--veyra-transition-base),
		box-shadow var(--veyra-transition-base);
}

.veyra-card__icon {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	border: 1px solid rgba(95, 132, 255, 0.28);
	border-radius: var(--veyra-radius-md);
	background:
		linear-gradient(145deg, rgba(59, 140, 255, 0.14), rgba(138, 92, 255, 0.10)),
		rgba(246, 248, 255, 0.025);
	color: var(--veyra-violet);
	box-shadow:
		inset 0 1px 0 rgba(246, 248, 255, 0.07),
		0 0.75rem 2rem rgba(59, 140, 255, 0.08);
}

.veyra-card__icon > :where(svg, img) {
	width: 1.35rem;
	height: 1.35rem;
}

.veyra-card__title {
	margin: 0;
	color: var(--veyra-text);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 650;
	line-height: 1.3;
	letter-spacing: -0.015em;
}

.veyra-card__text {
	margin: 0;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.55;
}

.veyra-divider {
	height: 1px;
	border: 0;
	background: linear-gradient(
		90deg,
		transparent,
		var(--veyra-border-default) 18%,
		var(--veyra-border-default) 82%,
		transparent
	);
}

/* ==========================================================================
   07. Buttons and links
   ========================================================================== */

.veyra-button,
.wp-element-button,
.wp-block-button__link {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 1.25rem;
	border: 1px solid rgba(246, 248, 255, 0.14);
	border-radius: var(--veyra-radius-sm);
	background: var(--veyra-gradient-brand);
	color: var(--veyra-text);
	font-size: var(--wp--preset--font-size--body-small);
	font-weight: 650;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	box-shadow:
		inset 0 1px 0 rgba(246, 248, 255, 0.18),
		0 0.75rem 2.25rem rgba(59, 140, 255, 0.20),
		0 0.5rem 1.75rem rgba(138, 92, 255, 0.16);
	cursor: pointer;
	transition:
		transform var(--veyra-transition-fast),
		border-color var(--veyra-transition-fast),
		filter var(--veyra-transition-fast),
		box-shadow var(--veyra-transition-fast);
}

.veyra-button--secondary,
.wp-block-button.is-style-veyra-secondary .wp-block-button__link {
	border-color: var(--veyra-border-default);
	background: rgba(246, 248, 255, 0.025);
	color: var(--veyra-text);
	box-shadow: inset 0 1px 0 rgba(246, 248, 255, 0.045);
}

.veyra-button--ghost,
.wp-block-button.is-style-veyra-ghost .wp-block-button__link {
	border-color: transparent;
	background: transparent;
	color: var(--veyra-text-soft);
	box-shadow: none;
}

.veyra-button--text,
.wp-block-button.is-style-veyra-text .wp-block-button__link {
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--veyra-blue);
	box-shadow: none;
}

.veyra-button--sm {
	min-height: 2.25rem;
	padding: 0.55rem 0.875rem;
	font-size: var(--wp--preset--font-size--caption);
}

.veyra-button--lg {
	min-height: 3.25rem;
	padding: 0.875rem 1.5rem;
	font-size: var(--wp--preset--font-size--body);
}

.veyra-button--block {
	width: 100%;
}

.veyra-link {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	color: var(--veyra-blue);
	font-weight: 600;
	text-decoration: none;
	transition: color var(--veyra-transition-fast);
}

/* ==========================================================================
   08. Forms
   ========================================================================== */

.veyra-form {
	display: grid;
	gap: 1rem;
}

.veyra-field-group {
	display: grid;
	gap: 0.5rem;
}

.veyra-label {
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--body-small);
	font-weight: 600;
}

.veyra-field,
.veyra-form :where(
	input[type="text"],
	input[type="email"],
	input[type="password"],
	input[type="url"],
	input[type="search"],
	input[type="number"],
	input[type="tel"],
	select,
	textarea
) {
	width: 100%;
	min-height: 2.75rem;
	padding: 0.75rem 0.875rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-sm);
	outline: 0;
	background: rgba(5, 7, 15, 0.72);
	color: var(--veyra-text);
	box-shadow: inset 0 1px 0 rgba(246, 248, 255, 0.025);
	transition:
		border-color var(--veyra-transition-fast),
		background-color var(--veyra-transition-fast),
		box-shadow var(--veyra-transition-fast);
}

.veyra-form textarea {
	min-height: 8rem;
	resize: vertical;
}

.veyra-field::placeholder,
.veyra-form :where(input, textarea)::placeholder {
	color: var(--veyra-text-muted);
	opacity: 0.75;
}

.veyra-field:focus,
.veyra-form :where(input, select, textarea):focus {
	border-color: rgba(59, 140, 255, 0.72);
	background: rgba(8, 12, 22, 0.90);
	box-shadow: var(--veyra-shadow-focus);
}

.veyra-help {
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.5;
}

/* ==========================================================================
   08.1 Form layouts, checks and notices
   ========================================================================== */

.veyra-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.veyra-form__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 0.25rem;
}

.veyra-form__actions .veyra-caption {
	max-width: 34rem;
	margin: 0;
}

.veyra-check {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.75rem;
	align-items: start;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.55;
	cursor: pointer;
}

.veyra-check input[type="checkbox"] {
	width: 1.1rem;
	height: 1.1rem;
	margin: 0.15rem 0 0;
	accent-color: var(--veyra-blue);
}

.veyra-check a {
	color: var(--veyra-text-soft);
}

.veyra-form-notice {
	padding: 0.9rem 1rem;
	border: 1px solid var(--veyra-border-default);
	border-radius: var(--veyra-radius-sm);
	background: rgba(5, 10, 22, 0.58);
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.55;
}

.veyra-form-notice[hidden] {
	display: none;
}

.veyra-form-notice--success {
	border-color: color-mix(in srgb, var(--veyra-success) 48%, transparent);
	background: color-mix(in srgb, var(--veyra-success) 10%, rgba(5, 10, 22, 0.72));
	color: var(--veyra-text);
}

.veyra-form-notice--error {
	border-color: color-mix(in srgb, var(--veyra-error) 48%, transparent);
	background: color-mix(in srgb, var(--veyra-error) 10%, rgba(5, 10, 22, 0.72));
	color: var(--veyra-text);
}

.veyra-field--honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

@media (max-width: 42rem) {
	.veyra-form__grid {
		grid-template-columns: 1fr;
	}

	.veyra-form__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.veyra-form__actions .veyra-button {
		width: 100%;
	}
}

/* ==========================================================================
   09. Badges, icons, lists and stats
   ========================================================================== */

.veyra-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	width: fit-content;
	padding: 0.35rem 0.55rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-pill);
	background: rgba(246, 248, 255, 0.035);
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 650;
	line-height: 1;
}

.veyra-badge--brand {
	border-color: rgba(138, 92, 255, 0.30);
	background: rgba(138, 92, 255, 0.12);
	color: #D8C8FF;
}

.veyra-status {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 600;
}

.veyra-status::before {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: currentColor;
	box-shadow: 0 0 0.75rem currentColor;
	content: "";
}

.veyra-status--success {
	color: var(--veyra-success);
}

.veyra-status--info {
	color: var(--veyra-info);
}

.veyra-status--warning {
	color: var(--veyra-warning);
}

.veyra-status--error {
	color: var(--veyra-error);
}

.veyra-feature-list {
	display: grid;
	gap: 0.625rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.veyra-feature-list li {
	display: grid;
	grid-template-columns: 1rem minmax(0, 1fr);
	gap: 0.625rem;
	align-items: start;
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.5;
}

.veyra-feature-list li::before {
	width: 0.9rem;
	height: 0.9rem;
	margin-top: 0.2em;
	border: 1px solid rgba(138, 92, 255, 0.52);
	border-radius: 50%;
	background:
		radial-gradient(circle, var(--veyra-blue) 0 28%, transparent 32%),
		rgba(59, 140, 255, 0.08);
	box-shadow: 0 0 0.75rem rgba(59, 140, 255, 0.24);
	content: "";
}

.veyra-stat {
	display: grid;
	gap: 0.35rem;
	padding: 1rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-md);
	background: rgba(246, 248, 255, 0.025);
}

.veyra-stat__value {
	color: var(--veyra-violet);
	font-size: var(--wp--preset--font-size--h4);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.03em;
}

.veyra-stat__label {
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.4;
}

/* ==========================================================================
   10. Navigation, tabs and shells
   ========================================================================== */

.veyra-navbar {
	display: flex;
	min-height: 4rem;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.625rem 0.75rem 0.625rem 1rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: rgba(5, 7, 15, 0.70);
	box-shadow:
		inset 0 1px 0 rgba(246, 248, 255, 0.05),
		0 1rem 4rem rgba(0, 0, 0, 0.22);
}

@supports ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.veyra-navbar {
		-webkit-backdrop-filter: blur(1.25rem) saturate(125%);
		backdrop-filter: blur(1.25rem) saturate(125%);
	}
}

.veyra-tabs {
	display: flex;
	gap: clamp(1rem, 3vw, 2rem);
	overflow-x: auto;
	border-bottom: 1px solid var(--veyra-border-subtle);
	scrollbar-width: none;
}

.veyra-tabs::-webkit-scrollbar {
	display: none;
}

.veyra-tab {
	position: relative;
	flex: 0 0 auto;
	padding: 0.875rem 0.125rem;
	border: 0;
	background: transparent;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--body-small);
	text-decoration: none;
	cursor: pointer;
}

.veyra-tab[aria-current="page"],
.veyra-tab[aria-selected="true"],
.veyra-tab.is-active {
	color: var(--veyra-text);
}

.veyra-tab[aria-current="page"]::after,
.veyra-tab[aria-selected="true"]::after,
.veyra-tab.is-active::after {
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	height: 2px;
	border-radius: var(--veyra-radius-pill);
	background: var(--veyra-gradient-brand);
	content: "";
	box-shadow: 0 0 1rem rgba(59, 140, 255, 0.48);
}

.veyra-app-shell {
	display: grid;
	min-height: min(52rem, 88svh);
	grid-template-columns: 15rem minmax(0, 1fr);
	overflow: hidden;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-xl);
	background: rgba(5, 7, 15, 0.84);
	box-shadow: var(--veyra-shadow-elevated);
}

.veyra-app-sidebar {
	padding: 1rem;
	border-right: 1px solid var(--veyra-border-subtle);
	background: rgba(8, 12, 22, 0.88);
}

.veyra-app-main {
	min-width: 0;
	padding: clamp(1rem, 3vw, 2rem);
}

.veyra-menu {
	display: grid;
	gap: 0.25rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.veyra-menu a {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	min-height: 2.5rem;
	padding: 0.625rem 0.75rem;
	border: 1px solid transparent;
	border-radius: var(--veyra-radius-sm);
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--body-small);
	text-decoration: none;
	transition:
		border-color var(--veyra-transition-fast),
		background-color var(--veyra-transition-fast),
		color var(--veyra-transition-fast);
}

.veyra-menu a[aria-current="page"],
.veyra-menu a.is-active {
	border-color: rgba(59, 140, 255, 0.20);
	background: linear-gradient(90deg, rgba(59, 140, 255, 0.16), rgba(138, 92, 255, 0.08));
	color: var(--veyra-text);
}

/* ==========================================================================
   11. Pricing, data and code
   ========================================================================== */

.veyra-pricing-card {
	display: flex;
	min-height: 100%;
	flex-direction: column;
	gap: 1rem;
	padding: 1.25rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: linear-gradient(145deg, rgba(18, 27, 43, 0.72), rgba(8, 12, 22, 0.92));
}

.veyra-pricing-card--featured {
	border: 1px solid transparent;
	background:
		linear-gradient(var(--veyra-surface), var(--veyra-surface)) padding-box,
		var(--veyra-gradient-border) border-box;
	box-shadow:
		0 1rem 3.5rem rgba(59, 140, 255, 0.14),
		0 1.25rem 4rem rgba(138, 92, 255, 0.14);
}

.veyra-price {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
	color: var(--veyra-text);
	font-size: var(--wp--preset--font-size--h2);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.04em;
}

.veyra-price small {
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 500;
	letter-spacing: normal;
}

.veyra-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: rgba(8, 12, 22, 0.72);
}

.veyra-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--body-small);
}

.veyra-table :where(th, td) {
	padding: 0.875rem 1rem;
	border-bottom: 1px solid var(--veyra-border-subtle);
	text-align: left;
}

.veyra-table th {
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 650;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.veyra-table td {
	color: var(--veyra-text-soft);
}

.veyra-table tr:last-child td {
	border-bottom: 0;
}

.veyra-code {
	position: relative;
	overflow: auto;
	padding: 1.25rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-md);
	background: #050914;
	color: #D6DDF0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.65;
	tab-size: 2;
}

/* ==========================================================================
   14. Page and product heroes
   ========================================================================== */

.veyra-page-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(5.5rem, 10vw, 9rem);
	border-bottom: 1px solid var(--veyra-border-subtle);
	background:
		radial-gradient(circle at 15% 15%, rgba(59, 140, 255, 0.10), transparent 27rem),
		radial-gradient(circle at 85% 35%, rgba(138, 92, 255, 0.10), transparent 30rem),
		linear-gradient(180deg, rgba(8, 12, 22, 0.32), rgba(5, 7, 15, 0));
}

.veyra-page-hero--compact {
	padding-block: clamp(3.5rem, 7vw, 6rem);
}

.veyra-page-hero__content {
	display: grid;
	max-width: 52rem;
	gap: 1rem;
}

.veyra-page-hero__content--center {
	margin-inline: auto;
	text-align: center;
}

.veyra-product-hero {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(24rem, 1.1fr);
	gap: clamp(1.35rem, 3vw, 2.75rem);
	align-items: center;
	padding-block: clamp(4rem, 8vw, 7rem);
}

.veyra-product-hero__content {
	display: grid;
	gap: 1.25rem;
	align-content: center;
}

.veyra-product-hero__preview {
	min-width: 0;
}

.veyra-product-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 0.5rem;
}

.veyra-section-heading {
	display: grid;
	max-width: 48rem;
	gap: 0.75rem;
	margin-bottom: clamp(1rem, 2vw, 1.55rem);
}

.veyra-section-heading > * {
	margin: 0;
}

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

.veyra-section-heading--split {
	max-width: none;
	grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.7fr);
	gap: clamp(1.25rem, 3vw, 2.75rem);
	align-items: end;
}

.veyra-logo-cloud {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
	gap: 1rem;
	align-items: center;
}

.veyra-logo-cloud__item {
	display: grid;
	min-height: 4rem;
	place-items: center;
	padding: 0.75rem;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--h5);
	font-weight: 700;
	opacity: 0.66;
	text-align: center;
}

/* ==========================================================================
   15. Marketing components
   ========================================================================== */

.veyra-feature-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: var(--veyra-grid-gap, 1rem);
}

.veyra-feature-card {
	display: grid;
	min-height: 100%;
	align-content: start;
	gap: 0.7rem;
	padding: clamp(0.8rem, 1.45vw, 1.05rem);
	border: 1px solid var(--veyra-border-glass);
	border-radius: var(--veyra-radius-lg);
	background:
		linear-gradient(145deg, rgba(246, 248, 255, 0.032), rgba(59, 140, 255, 0.006) 52%, rgba(138, 92, 255, 0.024)),
		var(--veyra-surface-liquid);
	box-shadow: var(--veyra-shadow-liquid);
	transition:
		transform var(--veyra-transition-base),
		border-color var(--veyra-transition-base),
		background-color var(--veyra-transition-base),
		box-shadow var(--veyra-transition-base);
}

@supports ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.veyra-feature-card {
		-webkit-backdrop-filter: blur(var(--wp--custom--blur--sm)) saturate(135%);
		backdrop-filter: blur(var(--wp--custom--blur--sm)) saturate(135%);
	}
}

.veyra-feature-card__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--body);
	font-weight: 650;
	line-height: 1.35;
}

.veyra-feature-card__text {
	margin: 0;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.55;
}

.veyra-feature-split,
.wp-block-columns.is-style-veyra-feature-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.35rem, 3vw, 2.75rem);
	align-items: center;
}

.veyra-feature-split--reverse > :first-child {
	order: 2;
}

.veyra-feature-split__content {
	display: grid;
	gap: 1rem;
}

.veyra-feature-split__media {
	position: relative;
	min-width: 0;
	padding: clamp(.8rem, 1.8vw, 1.15rem);
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-xl);
	background:
		radial-gradient(circle at 70% 20%, rgba(138, 92, 255, 0.11), transparent 18rem),
		radial-gradient(circle at 20% 80%, rgba(59, 140, 255, 0.10), transparent 18rem),
		var(--veyra-surface-liquid);
	box-shadow: var(--veyra-shadow-liquid);
}

@supports ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.veyra-feature-split__media {
		-webkit-backdrop-filter: blur(var(--wp--custom--blur--md)) saturate(138%);
		backdrop-filter: blur(var(--wp--custom--blur--md)) saturate(138%);
	}
}

.veyra-cta-banner,
.wp-block-group.is-style-veyra-cta {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(1rem, 2.5vw, 1.75rem);
	align-items: center;
	padding: clamp(1rem, 2vw, 1.5rem);
	border: 1px solid transparent;
	border-radius: var(--veyra-radius-xl);
	background:
		linear-gradient(rgba(8, 13, 24, 0.14), rgba(8, 13, 24, 0.14)) padding-box,
		var(--veyra-gradient-border) border-box;
	box-shadow:
		inset 0 1px 0 rgba(246, 248, 255, 0.07),
		0 1.5rem 5rem rgba(59, 140, 255, 0.10),
		0 1.5rem 5rem rgba(138, 92, 255, 0.10);
}

@supports ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.veyra-cta-banner,
	.wp-block-group.is-style-veyra-cta {
		-webkit-backdrop-filter: blur(var(--wp--custom--blur--md)) saturate(145%);
		backdrop-filter: blur(var(--wp--custom--blur--md)) saturate(145%);
	}
}

.veyra-cta-banner::before,
.wp-block-group.is-style-veyra-cta::before {
	position: absolute;
	z-index: -1;
	inset: -40%;
	pointer-events: none;
	background:
		radial-gradient(circle at 20% 60%, rgba(0, 229, 255, 0.13), transparent 22rem),
		radial-gradient(circle at 80% 35%, rgba(138, 92, 255, 0.16), transparent 22rem);
	content: "";
}

.veyra-cta-banner__content {
	display: grid;
	gap: 0.5rem;
}

.veyra-cta-banner__content > * {
	margin: 0;
}

.veyra-testimonial {
	display: grid;
	gap: 1.25rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: rgba(246, 248, 255, 0.025);
}

.veyra-testimonial blockquote {
	padding: 0;
	margin: 0;
	border: 0;
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--body-large);
	line-height: 1.6;
}

.veyra-testimonial__author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.veyra-testimonial__avatar {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	object-fit: cover;
}

.veyra-testimonial__meta {
	display: grid;
	gap: 0.1rem;
	font-size: var(--wp--preset--font-size--body-small);
}

.veyra-testimonial__meta span {
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
}

/* ==========================================================================
   16. FAQ and disclosure components
   ========================================================================== */

.veyra-faq {
	display: grid;
	gap: 0.75rem;
}

.veyra-faq-item,
.wp-block-details.is-style-veyra-faq {
	overflow: hidden;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-md);
	background: rgba(246, 248, 255, 0.025);
}

.veyra-faq-item > summary,
.wp-block-details.is-style-veyra-faq > summary {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.125rem;
	color: var(--veyra-text);
	font-weight: 650;
	cursor: pointer;
	list-style: none;
}

.veyra-faq-item > summary::-webkit-details-marker,
.wp-block-details.is-style-veyra-faq > summary::-webkit-details-marker {
	display: none;
}

.veyra-faq-item > summary::after,
.wp-block-details.is-style-veyra-faq > summary::after {
	flex: 0 0 auto;
	width: 0.6rem;
	height: 0.6rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	content: "";
	transform: rotate(45deg) translateY(-0.15rem);
	transition: transform var(--veyra-transition-fast);
}

.veyra-faq-item[open] > summary::after,
.wp-block-details.is-style-veyra-faq[open] > summary::after {
	transform: rotate(225deg) translate(-0.15rem, -0.15rem);
}

.veyra-faq-item__content,
.wp-block-details.is-style-veyra-faq > :not(summary) {
	padding-inline: 1.125rem;
	color: var(--veyra-text-soft);
}

.veyra-faq-item__content {
	padding-bottom: 1.125rem;
}

.wp-block-details.is-style-veyra-faq > :last-child {
	margin-bottom: 1.125rem;
}

/* ==========================================================================
   17. Product cards and landing components
   ========================================================================== */

.veyra-product-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: var(--veyra-grid-gap, 1rem);
}

.veyra-product-card {
	position: relative;
	display: flex;
	min-height: 100%;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: linear-gradient(145deg, rgba(18, 27, 43, 0.74), rgba(8, 12, 22, 0.94));
	box-shadow: inset 0 1px 0 rgba(246, 248, 255, 0.035);
	transition:
		transform var(--veyra-transition-base),
		border-color var(--veyra-transition-base),
		box-shadow var(--veyra-transition-base);
}

.veyra-product-card__media {
	position: relative;
	display: grid;
	min-height: 12rem;
	place-items: center;
	overflow: hidden;
	padding: 1.5rem;
	border-bottom: 1px solid var(--veyra-border-subtle);
	background:
		radial-gradient(circle at 72% 25%, rgba(138, 92, 255, 0.22), transparent 12rem),
		radial-gradient(circle at 24% 78%, rgba(59, 140, 255, 0.20), transparent 12rem),
		#080c16;
}

.veyra-product-card__media > :where(img, svg) {
	max-height: 10rem;
	object-fit: contain;
}

.veyra-product-card__badge {
	position: absolute;
	z-index: 2;
	top: 0.75rem;
	right: 0.75rem;
}

.veyra-product-card__body {
	display: grid;
	flex: 1;
	gap: 1rem;
	padding: 1.25rem;
}

.veyra-product-card__header {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.875rem;
	align-items: center;
}

.veyra-product-card__icon {
	display: grid;
	width: 3rem;
	height: 3rem;
	place-items: center;
	border: 1px solid rgba(95, 132, 255, 0.28);
	border-radius: var(--veyra-radius-md);
	background:
		linear-gradient(145deg, rgba(59, 140, 255, 0.16), rgba(138, 92, 255, 0.12)),
		rgba(246, 248, 255, 0.025);
	color: var(--veyra-violet);
	box-shadow: inset 0 1px 0 rgba(246, 248, 255, 0.08);
}

.veyra-product-card__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--h5);
	font-weight: 650;
	line-height: 1.3;
}

.veyra-product-card__type {
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 650;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.veyra-product-card__excerpt {
	margin: 0;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.6;
}

.veyra-product-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.veyra-product-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding-top: 1rem;
	margin-top: auto;
	border-top: 1px solid var(--veyra-border-subtle);
}

.veyra-product-card__price {
	color: var(--veyra-text);
	font-size: var(--wp--preset--font-size--body);
	font-weight: 700;
}

.veyra-product-meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
	gap: 0;
	overflow: hidden;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-md);
	background: rgba(246, 248, 255, 0.02);
}

.veyra-product-meta__item {
	display: grid;
	gap: 0.25rem;
	padding: 0.875rem 1rem;
	border-right: 1px solid var(--veyra-border-subtle);
}

.veyra-product-meta__item:last-child {
	border-right: 0;
}

.veyra-product-meta__label {
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.4;
}

.veyra-product-meta__value {
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--body-small);
	font-weight: 650;
	line-height: 1.4;
}

.veyra-product-preview {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 24rem;
	padding: clamp(1rem, 3vw, 2rem);
	border: 1px solid var(--veyra-border-default);
	border-radius: var(--veyra-radius-xl);
	background:
		radial-gradient(circle at 75% 30%, rgba(138, 92, 255, 0.26), transparent 18rem),
		radial-gradient(circle at 20% 80%, rgba(0, 229, 255, 0.18), transparent 18rem),
		linear-gradient(145deg, #0b1323, #080b15);
	box-shadow:
		inset 0 1px 0 rgba(246, 248, 255, 0.08),
		var(--veyra-shadow-elevated);
}

.veyra-product-preview__canvas {
	display: grid;
	min-height: inherit;
	place-items: center;
}

.veyra-product-gallery {
	display: grid;
	gap: 1rem;
}

.veyra-product-gallery__main,
.veyra-screenshot,
.wp-block-image.is-style-veyra-screenshot {
	overflow: hidden;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: rgba(8, 12, 22, 0.72);
	box-shadow: var(--veyra-shadow-card);
}

.veyra-product-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr));
	gap: 0.75rem;
}

.veyra-product-gallery__thumb {
	overflow: hidden;
	padding: 0;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-sm);
	background: rgba(246, 248, 255, 0.025);
	cursor: pointer;
}

.veyra-product-gallery__thumb[aria-current="true"] {
	border-color: var(--veyra-blue);
	box-shadow: var(--veyra-shadow-focus);
}

.veyra-product-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.veyra-version-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	color: var(--veyra-text-muted);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--caption);
}

.veyra-compatibility-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.veyra-compatibility-list li {
	padding: 0.4rem 0.625rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-pill);
	background: rgba(246, 248, 255, 0.025);
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
}

.veyra-installation-steps {
	display: grid;
	gap: 1rem;
	padding: 0;
	margin: 0;
	counter-reset: veyra-step;
	list-style: none;
}

.veyra-installation-step {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
	padding: 1rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-md);
	background: rgba(246, 248, 255, 0.025);
	counter-increment: veyra-step;
}

.veyra-installation-step::before {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border: 1px solid rgba(95, 132, 255, 0.35);
	border-radius: 50%;
	background: rgba(59, 140, 255, 0.10);
	color: var(--veyra-blue);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 750;
	content: counter(veyra-step);
}

.veyra-changelog {
	display: grid;
	gap: 1rem;
}

.veyra-changelog__entry {
	display: grid;
	grid-template-columns: minmax(6rem, 0.3fr) minmax(0, 1fr);
	gap: 1.5rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--veyra-border-subtle);
}

.veyra-changelog__entry:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.veyra-changelog__version {
	color: var(--veyra-violet);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--body-small);
	font-weight: 700;
}

.veyra-changelog__content {
	display: grid;
	gap: 0.5rem;
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--body-small);
}

/* ==========================================================================
   18. Pricing systems
   ========================================================================== */

.veyra-pricing {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
}

.veyra-pricing-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
	gap: 1rem;
	align-items: stretch;
}

.veyra-pricing-card__header {
	display: grid;
	gap: 0.75rem;
}

.veyra-pricing-card__name {
	margin: 0;
	font-size: var(--wp--preset--font-size--h5);
	font-weight: 650;
}

.veyra-pricing-card__description {
	margin: 0;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--body-small);
	line-height: 1.55;
}

.veyra-pricing-card__features {
	display: grid;
	flex: 1;
	align-content: start;
}

.veyra-pricing-card__footer {
	display: grid;
	gap: 0.75rem;
	margin-top: auto;
}

.veyra-pricing-note {
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.5;
	text-align: center;
}

.veyra-pricing-toggle {
	display: inline-flex;
	width: fit-content;
	align-items: center;
	gap: 0.25rem;
	padding: 0.25rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-pill);
	background: rgba(246, 248, 255, 0.025);
}

.veyra-pricing-toggle__option {
	min-height: 2.25rem;
	padding: 0.5rem 0.875rem;
	border: 0;
	border-radius: var(--veyra-radius-pill);
	background: transparent;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--body-small);
	font-weight: 650;
	cursor: pointer;
}

.veyra-pricing-toggle__option[aria-pressed="true"],
.veyra-pricing-toggle__option.is-active {
	background: var(--veyra-gradient-brand);
	color: var(--veyra-text);
	box-shadow: inset 0 1px 0 rgba(246, 248, 255, 0.15);
}

/* ==========================================================================
   19. Comparison tables
   ========================================================================== */

.veyra-compare {
	position: relative;
	overflow-x: auto;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: rgba(8, 12, 22, 0.76);
	box-shadow: var(--veyra-shadow-card);
	scrollbar-color: var(--veyra-border-strong) transparent;
}

.veyra-compare-table,
.wp-block-table.is-style-veyra-compare table {
	width: 100%;
	min-width: 48rem;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	font-size: var(--wp--preset--font-size--body-small);
}

.veyra-compare-table :where(th, td),
.wp-block-table.is-style-veyra-compare :where(th, td) {
	padding: 1rem;
	border: 0;
	border-right: 1px solid var(--veyra-border-subtle);
	border-bottom: 1px solid var(--veyra-border-subtle);
	text-align: center;
	vertical-align: middle;
}

.veyra-compare-table :where(th, td):last-child,
.wp-block-table.is-style-veyra-compare :where(th, td):last-child {
	border-right: 0;
}

.veyra-compare-table tbody tr:last-child td,
.wp-block-table.is-style-veyra-compare tbody tr:last-child td {
	border-bottom: 0;
}

.veyra-compare-table thead th,
.wp-block-table.is-style-veyra-compare thead th {
	position: sticky;
	z-index: 3;
	top: 0;
	background: rgba(10, 15, 26, 0.98);
	color: var(--veyra-text);
	font-weight: 700;
}

.veyra-compare-table :where(th, td):first-child,
.wp-block-table.is-style-veyra-compare :where(th, td):first-child {
	position: sticky;
	z-index: 2;
	left: 0;
	min-width: 15rem;
	background: rgba(8, 12, 22, 0.98);
	text-align: left;
}

.veyra-compare-table thead th:first-child,
.wp-block-table.is-style-veyra-compare thead th:first-child {
	z-index: 4;
}

.veyra-compare-table__group th {
	background: linear-gradient(90deg, rgba(59, 140, 255, 0.10), rgba(138, 92, 255, 0.07)) !important;
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--caption);
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.veyra-compare-check,
.veyra-compare-missing {
	display: inline-grid;
	width: 1.5rem;
	height: 1.5rem;
	place-items: center;
	border-radius: 50%;
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 800;
}

.veyra-compare-check {
	border: 1px solid rgba(34, 211, 154, 0.32);
	background: rgba(34, 211, 154, 0.10);
	color: var(--veyra-success);
}

.veyra-compare-missing {
	border: 1px solid var(--veyra-border-subtle);
	background: rgba(246, 248, 255, 0.02);
	color: var(--veyra-text-muted);
}

.veyra-compare-cards {
	display: none;
	gap: 1rem;
}

.veyra-compare-card {
	display: grid;
	gap: 0.75rem;
	padding: 1rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-md);
	background: rgba(246, 248, 255, 0.025);
}

.veyra-compare-card__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--veyra-border-subtle);
}

.veyra-compare-card__row:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

/* ==========================================================================
   20. Details and specification data
   ========================================================================== */

.veyra-details-list {
	display: grid;
	padding: 0;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: rgba(8, 12, 22, 0.72);
}

.veyra-details-row {
	display: grid;
	grid-template-columns: minmax(9rem, 0.42fr) minmax(0, 1fr);
	gap: 1rem;
	padding: 0.875rem 1rem;
	border-bottom: 1px solid var(--veyra-border-subtle);
}

.veyra-details-row:last-child {
	border-bottom: 0;
}

.veyra-details-term {
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--body-small);
	font-weight: 550;
}

.veyra-details-value {
	margin: 0;
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--body-small);
	font-weight: 650;
	text-align: right;
}

.veyra-spec-table,
.wp-block-table.is-style-veyra-details table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--body-small);
}

.veyra-spec-table :where(th, td),
.wp-block-table.is-style-veyra-details :where(th, td) {
	padding: 0.875rem 1rem;
	border-color: var(--veyra-border-subtle);
}

.veyra-spec-table th,
.wp-block-table.is-style-veyra-details th {
	width: 38%;
	background: rgba(246, 248, 255, 0.025);
	color: var(--veyra-text-muted);
	font-weight: 550;
	text-align: left;
}

.veyra-spec-table td,
.wp-block-table.is-style-veyra-details td {
	color: var(--veyra-text-soft);
	font-weight: 650;
	text-align: right;
}

/* ==========================================================================
   21. Documentation components
   ========================================================================== */

.veyra-docs-shell {
	display: grid;
	grid-template-columns: minmax(13rem, 16rem) minmax(0, 1fr) minmax(10rem, 13rem);
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: start;
}

.veyra-docs-sidebar,
.veyra-docs-toc {
	position: sticky;
	top: var(--veyra-sticky-top, 6rem);
	max-height: calc(100svh - 8rem);
	overflow-y: auto;
}

.veyra-docs-navigation {
	display: grid;
	gap: 0.25rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.veyra-docs-navigation a {
	display: block;
	padding: 0.55rem 0.75rem;
	border-radius: var(--veyra-radius-sm);
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--body-small);
	text-decoration: none;
}

.veyra-docs-navigation a[aria-current="page"],
.veyra-docs-navigation a.is-active {
	background: linear-gradient(90deg, rgba(59, 140, 255, 0.14), rgba(138, 92, 255, 0.07));
	color: var(--veyra-text);
}

.veyra-docs-content {
	min-width: 0;
}

.veyra-docs-content > :first-child {
	margin-top: 0;
}

.veyra-docs-content :where(h2, h3, h4) {
	scroll-margin-top: 7rem;
}

.veyra-docs-toc {
	display: grid;
	gap: 0.5rem;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
}

.veyra-docs-toc strong {
	color: var(--veyra-text-soft);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.veyra-docs-toc a {
	color: inherit;
	text-decoration: none;
}

.veyra-callout {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.875rem;
	padding: 1rem;
	border: 1px solid var(--veyra-border-subtle);
	border-left-width: 3px;
	border-radius: var(--veyra-radius-md);
	background: rgba(246, 248, 255, 0.025);
	color: var(--veyra-text-soft);
}

.veyra-callout--info {
	border-left-color: var(--veyra-info);
	background: rgba(88, 140, 255, 0.07);
}

.veyra-callout--success {
	border-left-color: var(--veyra-success);
	background: rgba(34, 211, 154, 0.07);
}

.veyra-callout--warning {
	border-left-color: var(--veyra-warning);
	background: rgba(255, 176, 32, 0.07);
}

.veyra-callout--error {
	border-left-color: var(--veyra-error);
	background: rgba(255, 91, 125, 0.07);
}

.veyra-step-list {
	display: grid;
	gap: 1rem;
	padding: 0;
	margin: 0;
	counter-reset: docs-step;
	list-style: none;
}

.veyra-step {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1rem;
	counter-increment: docs-step;
}

.veyra-step::before {
	display: grid;
	width: 2.25rem;
	height: 2.25rem;
	place-items: center;
	border: 1px solid rgba(95, 132, 255, 0.34);
	border-radius: 50%;
	background: rgba(59, 140, 255, 0.10);
	color: var(--veyra-blue);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 800;
	content: counter(docs-step);
}

.veyra-step__content {
	padding: 0.25rem 0 1.5rem;
	border-bottom: 1px solid var(--veyra-border-subtle);
}

.veyra-code-tabs {
	overflow: hidden;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: #050914;
}

.veyra-code-tabs__nav {
	display: flex;
	gap: 0.25rem;
	padding: 0.5rem;
	border-bottom: 1px solid var(--veyra-border-subtle);
	background: rgba(246, 248, 255, 0.025);
}

.veyra-code-tabs__button {
	padding: 0.45rem 0.65rem;
	border: 0;
	border-radius: var(--veyra-radius-xs);
	background: transparent;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 650;
	cursor: pointer;
}

.veyra-code-tabs__button[aria-selected="true"],
.veyra-code-tabs__button.is-active {
	background: rgba(59, 140, 255, 0.12);
	color: var(--veyra-text);
}

.veyra-code-tabs .veyra-code {
	border: 0;
	border-radius: 0;
}

/* ==========================================================================
   22. Resource cards, alerts and empty states
   ========================================================================== */

.veyra-resource-card {
	display: grid;
	min-height: 100%;
	grid-template-rows: auto 1fr;
	overflow: hidden;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-lg);
	background: rgba(8, 12, 22, 0.80);
	transition:
		transform var(--veyra-transition-base),
		border-color var(--veyra-transition-base),
		box-shadow var(--veyra-transition-base);
}

.veyra-resource-card__media {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--veyra-gradient-brand);
}

.veyra-resource-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.veyra-resource-card__body {
	display: grid;
	align-content: start;
	gap: 0.75rem;
	padding: 1.25rem;
}

.veyra-resource-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	color: var(--veyra-text-muted);
	font-size: var(--wp--preset--font-size--caption);
}

.veyra-alert {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 0.75rem;
	align-items: start;
	padding: 0.875rem 1rem;
	border: 1px solid var(--veyra-border-subtle);
	border-radius: var(--veyra-radius-md);
	background: rgba(246, 248, 255, 0.025);
	color: var(--veyra-text-soft);
	font-size: var(--wp--preset--font-size--body-small);
}

.veyra-alert--success {
	border-color: rgba(34, 211, 154, 0.28);
	background: rgba(34, 211, 154, 0.07);
}

.veyra-alert--info {
	border-color: rgba(88, 140, 255, 0.28);
	background: rgba(88, 140, 255, 0.07);
}

.veyra-alert--warning {
	border-color: rgba(255, 176, 32, 0.28);
	background: rgba(255, 176, 32, 0.07);
}

.veyra-alert--error {
	border-color: rgba(255, 91, 125, 0.28);
	background: rgba(255, 91, 125, 0.07);
}

.veyra-empty-state {
	display: grid;
	justify-items: center;
	gap: 1rem;
	padding: clamp(2rem, 6vw, 5rem);
	border: 1px dashed var(--veyra-border-strong);
	border-radius: var(--veyra-radius-lg);
	background: rgba(246, 248, 255, 0.018);
	text-align: center;
}

.veyra-empty-state__icon {
	display: grid;
	width: 4rem;
	height: 4rem;
	place-items: center;
	border: 1px solid rgba(95, 132, 255, 0.28);
	border-radius: var(--veyra-radius-lg);
	background: linear-gradient(145deg, rgba(59, 140, 255, 0.13), rgba(138, 92, 255, 0.10));
	color: var(--veyra-violet);
}

.veyra-progress {
	height: 0.45rem;
	overflow: hidden;
	border-radius: var(--veyra-radius-pill);
	background: rgba(246, 248, 255, 0.06);
}

.veyra-progress__bar {
	display: block;
	width: var(--veyra-progress, 0%);
	height: 100%;
	border-radius: inherit;
	background: var(--veyra-gradient-brand);
	box-shadow: 0 0 1rem rgba(59, 140, 255, 0.34);
}

/* ==========================================================================
   23. Component hover states
   ========================================================================== */

@media (hover: hover) {
	.veyra-nav__link:hover {
		background: rgba(246, 248, 255, 0.035);
		color: var(--veyra-text);
	}

	.veyra-nav__item:hover > .veyra-nav__dropdown {
		opacity: 1;
		pointer-events: auto;
		transform: translate(-50%, 0);
	}

	.veyra-nav__dropdown-card:hover {
		border-color: var(--veyra-border-subtle);
		background: rgba(246, 248, 255, 0.04);
	}

	.veyra-footer-nav a:hover,
	.veyra-breadcrumbs a:hover,
	.veyra-docs-navigation a:hover,
	.veyra-docs-toc a:hover {
		color: var(--veyra-text);
	}

	.veyra-social-links a:hover {
		border-color: var(--veyra-border-strong);
		color: var(--veyra-cyan);
	}

	.veyra-feature-card:hover,
	.veyra-product-card:hover,
	.veyra-resource-card:hover {
		transform: translateY(-0.2rem);
		border-color: rgba(96, 139, 255, 0.34);
		box-shadow:
			inset 0 1px 0 rgba(246, 248, 255, 0.06),
			0 1.25rem 3.5rem rgba(59, 140, 255, 0.08),
			0 1.5rem 4rem rgba(138, 92, 255, 0.06);
	}
}

/* ==========================================================================
   24. Component responsive behaviour
   ========================================================================== */

@media (max-width: 72rem) {
	.veyra-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.veyra-docs-shell {
		grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr);
	}

	.veyra-docs-toc {
		display: none;
	}
}

@media (max-width: 64rem) {
	.veyra-product-hero,
	.veyra-section-heading--split,
	.veyra-feature-split,
	.wp-block-columns.is-style-veyra-feature-split {
		grid-template-columns: 1fr;
	}

	.veyra-feature-split--reverse > :first-child {
		order: initial;
	}

	.veyra-cta-banner,
	.wp-block-group.is-style-veyra-cta {
		grid-template-columns: 1fr;
	}

	.veyra-app-shell {
		grid-template-columns: 4.5rem minmax(0, 1fr);
	}

	.veyra-nav__list {
		display: none;
	}

	.veyra-mobile-nav-toggle {
		display: inline-flex;
	}
}

@media (max-width: 48rem) {
	.veyra-site-header {
		padding-block: 0.5rem;
	}

	.veyra-navbar {
		border-radius: var(--veyra-radius-md);
	}

	.veyra-nav__actions > :not(.veyra-mobile-nav-toggle) {
		display: none;
	}

	.veyra-footer-grid {
		grid-template-columns: 1fr;
	}

	.veyra-footer-meta {
		align-items: flex-start;
		flex-direction: column;
	}

	.veyra-product-meta {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.veyra-product-meta__item {
		border-right: 0;
		border-bottom: 1px solid var(--veyra-border-subtle);
	}

	.veyra-details-row {
		grid-template-columns: 1fr;
		gap: 0.25rem;
	}

	.veyra-details-value {
		text-align: left;
	}

	.veyra-docs-shell {
		grid-template-columns: 1fr;
	}

	.veyra-docs-sidebar {
		position: static;
		max-height: none;
	}

	.veyra-compare {
		display: none;
	}

	.veyra-compare-cards {
		display: grid;
	}

	.veyra-changelog__entry {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}

	.veyra-app-shell {
		display: block;
		min-height: auto;
	}

	.veyra-app-sidebar {
		border-right: 0;
		border-bottom: 1px solid var(--veyra-border-subtle);
	}
}

@media (forced-colors: active) {
	.veyra-gradient-border,
	.wp-block-group.is-style-veyra-glow,
	.veyra-cta-banner,
	.wp-block-group.is-style-veyra-cta {
		border-color: CanvasText;
	}
}

/* ==========================================================================
   25. Legacy component hover states
   ========================================================================== */

@media (hover: hover) {
	.veyra-card--interactive:hover {
		transform: translateY(-0.25rem);
		border-color: rgba(96, 139, 255, 0.38);
		background: linear-gradient(
			145deg,
			rgba(21, 33, 54, 0.86),
			rgba(9, 15, 26, 0.95)
		);
		box-shadow:
			inset 0 1px 0 rgba(246, 248, 255, 0.07),
			0 1.25rem 3.5rem rgba(59, 140, 255, 0.10),
			0 1.5rem 4rem rgba(138, 92, 255, 0.08);
	}

	.veyra-button:hover,
	.wp-element-button:hover,
	.wp-block-button__link:hover {
		transform: translateY(-1px);
		filter: saturate(1.08) brightness(1.06);
		box-shadow:
			inset 0 1px 0 rgba(246, 248, 255, 0.22),
			0 1rem 2.75rem rgba(59, 140, 255, 0.26),
			0 0.75rem 2.25rem rgba(138, 92, 255, 0.20);
	}

	.veyra-button--secondary:hover,
	.wp-block-button.is-style-veyra-secondary .wp-block-button__link:hover {
		border-color: var(--veyra-border-strong);
		background: rgba(246, 248, 255, 0.055);
		box-shadow: inset 0 1px 0 rgba(246, 248, 255, 0.07);
	}

	.veyra-button--ghost:hover,
	.wp-block-button.is-style-veyra-ghost .wp-block-button__link:hover {
		background: rgba(246, 248, 255, 0.04);
		box-shadow: none;
	}

	.veyra-button--text:hover,
	.wp-block-button.is-style-veyra-text .wp-block-button__link:hover {
		color: var(--veyra-cyan);
		box-shadow: none;
	}

	.veyra-link:hover,
	.wp-block-navigation a:hover {
		color: var(--veyra-cyan);
	}

	.veyra-menu a:hover {
		border-color: var(--veyra-border-subtle);
		background: rgba(246, 248, 255, 0.035);
		color: var(--veyra-text);
	}
}


@media (hover: hover) and (pointer: fine) {
	.veyra-card--interactive:hover,
	.veyra-feature-card:hover {
		border-color: rgba(151, 181, 255, 0.28);
		background-color: var(--veyra-surface-liquid-hover);
		box-shadow:
			inset 0 1px 0 rgba(246, 248, 255, 0.10),
			0 1.25rem 3.5rem rgba(0, 0, 0, 0.22),
			0 0 2.5rem rgba(59, 140, 255, 0.06);
	}
}
