/*
 * VentryHub theme stylesheet.
 * Loaded on the front end and inside the block editor (add_editor_style), so
 * every rule here applies in both places. Tokens come from theme.json presets.
 */

:root,
.editor-styles-wrapper {
	--vh-ink: var(--wp--preset--color--ink, #252720);
	--vh-cream: var(--wp--preset--color--cream, #F6F5EE);
	--vh-surface: var(--wp--preset--color--surface, #FFFDF8);
	--vh-violet: var(--wp--preset--color--violet, #5345EB);
	--vh-violet-dark: var(--wp--preset--color--violet-dark, #4233D3);
	--vh-muted: var(--wp--preset--color--muted, #62675C);
	--vh-border-color: var(--wp--preset--color--border, #E0E1D9);
	--vh-lavender: var(--wp--preset--color--lavender, #D7D1FF);
	--vh-lime: var(--wp--preset--color--lime, #DFFF9F);
	--vh-border: 1.5px solid var(--vh-ink);
	--vh-border-light: 1.5px solid var(--vh-border-color);
	--vh-radius: 4px;
	--vh-radius-sm: 2px;
	--vh-mono: var(--wp--preset--font-family--mono, "IBM Plex Mono", ui-monospace, monospace);
	--vh-sans: var(--wp--preset--font-family--dm-sans, "DM Sans", system-ui, sans-serif);
	--vh-serif: var(--wp--preset--font-family--serif, Georgia, "Liberation Serif", "Times New Roman", serif);
	--vh-gutter: var(--wp--preset--spacing--gutter, clamp(24px, 4vw, 48px));
}

/* ------------------------------------------------------------------ */
/* Base                                                                */
/* ------------------------------------------------------------------ */
body { -webkit-font-smoothing: antialiased; text-wrap: pretty; }
img, svg, video { max-width: 100%; height: auto; }
h1, h2, h3, .wp-block-post-title { text-wrap: balance; }
h1 em, h2 em, h3 em, .wp-block-post-title em, .vh-accent {
	font-family: var(--vh-serif);
	font-style: italic;
	font-weight: 400;
	color: var(--vh-violet);
}
.has-violet-background-color h1 em,
.has-violet-background-color h2 em,
.has-violet-background-color h3 em { color: var(--vh-lime); }
.has-violet-background-color,
.has-violet-background-color :is(h1, h2, h3, h4, p, li) { color: var(--vh-cream); }
.has-violet-background-color :is(h1, h2, h3) { color: var(--vh-surface); }
.has-violet-background-color .is-style-vh-muted,
.has-violet-background-color .is-style-vh-eyebrow { color: var(--vh-cream); }
.has-violet-background-color .is-style-vh-eyebrow::before { background: var(--vh-lime); }
.has-violet-background-color a:not(.wp-block-button__link) { color: var(--vh-surface); }
/* Cards and windows placed on a violet section keep their own ink text. */
.has-violet-background-color :is(.is-style-vh-window, .is-style-vh-card, .is-style-vh-card-ink, .is-style-vh-card-flat):not(.has-violet-background-color),
.has-violet-background-color :is(.is-style-vh-window, .is-style-vh-card, .is-style-vh-card-ink, .is-style-vh-card-flat):not(.has-violet-background-color) :is(h1, h2, h3, h4, p, li) { color: var(--vh-ink); }
.has-violet-background-color :is(.is-style-vh-window, .is-style-vh-card):not(.has-violet-background-color) h2 em,
.has-violet-background-color :is(.is-style-vh-window, .is-style-vh-card):not(.has-violet-background-color) h3 em { color: var(--vh-violet); }
.has-violet-background-color .is-style-vh-window .is-style-vh-checklist li::before { color: var(--vh-violet-dark); }
.has-ink-background-color, .has-ink-background-color :is(h1, h2, h3, p) { color: var(--vh-surface); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--vh-violet);
	outline-offset: 3px;
}
.has-violet-background-color :where(a, button):focus-visible { outline-color: var(--vh-surface); }

::selection { background: var(--vh-lavender); color: var(--vh-ink); }

.skip-link.screen-reader-text:focus {
	background: var(--vh-violet) !important;
	color: #fff !important;
	border: var(--vh-border);
	border-radius: var(--vh-radius-sm);
	font: 600 14px var(--vh-sans);
	padding: 10px 14px !important;
	left: 16px !important;
	top: 12px !important;
	z-index: 100000;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Width helpers (character measure), used by patterns. */
.vh-maxw-12 { max-width: 12ch; } .vh-maxw-13 { max-width: 13ch; } .vh-maxw-14 { max-width: 14ch; }
.vh-maxw-16 { max-width: 16ch; } .vh-maxw-18 { max-width: 18ch; } .vh-maxw-20 { max-width: 20ch; }
.vh-maxw-22 { max-width: 22ch; } .vh-maxw-26 { max-width: 26ch; } .vh-maxw-44 { max-width: 44ch; }
.vh-maxw-46 { max-width: 46ch; } .vh-maxw-48 { max-width: 48ch; } .vh-maxw-50 { max-width: 50ch; }
.vh-maxw-52 { max-width: 52ch; } .vh-maxw-54 { max-width: 54ch; } .vh-maxw-60 { max-width: 60ch; }
.vh-maxw-62 { max-width: 62ch; } .vh-maxw-66 { max-width: 66ch; } .vh-maxw-80 { max-width: 80ch; }
.has-text-align-center[class*="vh-maxw-"] { margin-left: auto; margin-right: auto; }
.vh-maxw-640 { max-width: 640px; }
.vh-mx-auto { margin-left: auto; margin-right: auto; }
.vh-mt-22 { margin-top: 22px !important; }
.vh-mt-32 { margin-top: 32px !important; }
.vh-about-tiles > * { min-height: 150px; display: flex; flex-direction: column; gap: 10px; padding: 18px; }
.vh-about-tiles > * > * { margin: 0 !important; }
.vh-about-tiles h3 { margin-top: auto !important; }
.vh-about-tile--offset { margin-top: 28px !important; }
.vh-about-tile__mark img { width: 36px; height: auto; }
.vh-shape .is-style-vh-mono-label { margin: 0 0 8px; }
.vh-shape .vh-shape__dt { border-top: var(--vh-border-light); padding-top: 16px; margin-top: 16px; }
.vh-shape__makes { font-weight: 500; font-size: 15.5px; }
.vh-shape__plus { font-family: var(--vh-mono); color: var(--vh-violet); margin-right: 6px; }
.vh-scope-note p { font-size: 15.5px; line-height: 1.55; }
.vh-inline-cta { gap: 14px !important; }
.vh-inline-cta > * { margin: 0 !important; }

/* ------------------------------------------------------------------ */
/* Text styles                                                         */
/* ------------------------------------------------------------------ */
.is-style-vh-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--vh-mono);
	font-size: 12.5px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--vh-muted);
	margin-bottom: 18px;
	line-height: 1.4;
}
.is-style-vh-eyebrow::before { content: ""; width: 8px; height: 8px; background: var(--vh-violet); flex: none; }
.is-style-vh-eyebrow.has-text-align-center { justify-content: center; }
.is-style-vh-eyebrow a { color: inherit; text-decoration: none; }
.is-style-vh-eyebrow a:hover { color: var(--vh-violet-dark); }
.is-style-vh-mono {
	font-family: var(--vh-mono);
	font-size: 12.5px;
	letter-spacing: 0.06em;
	color: var(--vh-muted);
	line-height: 1.5;
}
.is-style-vh-mono a { color: inherit; text-decoration: none; }
.is-style-vh-mono a:hover { color: var(--vh-violet-dark); }
.is-style-vh-mono-label {
	font-family: var(--vh-mono);
	font-size: 11.5px;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--vh-muted);
	line-height: 1.4;
	margin: 0 0 12px;
}
.is-style-vh-lead { font-size: var(--wp--preset--font-size--lg, 18px); line-height: 1.6; }
.is-style-vh-muted { color: var(--vh-muted); }
.is-style-vh-tag {
	display: inline-block;
	font-family: var(--vh-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--vh-muted);
	background: var(--vh-surface);
	border: var(--vh-border-light);
	border-radius: var(--vh-radius-sm);
	padding: 4px 8px;
	line-height: 1.3;
}
.vh-tag--ink { border-color: var(--vh-ink); color: var(--vh-ink); }
.vh-tag--lime { background: var(--vh-lime); border-color: var(--vh-ink); color: var(--vh-ink); }

/* ------------------------------------------------------------------ */
/* Sections and containers                                             */
/* ------------------------------------------------------------------ */
.is-style-vh-section { border-top: var(--vh-border); }
.vh-section-head { margin-bottom: clamp(32px, 5vw, 48px); }
.vh-section-head .is-style-vh-lead,
.vh-section-head .vh-section-head__intro { color: var(--vh-muted); font-size: 17px; line-height: 1.6; max-width: 46ch; }
.vh-section-head--row { margin-bottom: 18px; }
.vh-section-head--row .is-style-vh-mono-label { margin: 0; }
.wp-block-columns.is-style-vh-split { gap: 24px 48px; }
.wp-block-columns.is-style-vh-split.vh-split--end { align-items: flex-end; }
.wp-block-columns.is-style-vh-split.vh-split--wide { gap: 32px 64px; }
@media (max-width: 781px) {
	.wp-block-columns.is-style-vh-split { gap: 24px; }
}

/* ------------------------------------------------------------------ */
/* Cards, windows, rows                                                */
/* ------------------------------------------------------------------ */
.is-style-vh-card,
.is-style-vh-card-ink,
.is-style-vh-card-flat {
	background: var(--vh-surface);
	border: var(--vh-border);
	border-radius: var(--vh-radius);
	box-shadow: 4px 4px 0 var(--vh-lavender);
	padding: 22px 26px;
}
.has-surface-background-color .is-style-vh-card,
.has-surface-background-color .is-style-vh-card-ink,
.has-surface-background-color .is-style-vh-card-flat { background: var(--vh-cream); }
.is-style-vh-card-ink { box-shadow: 4px 4px 0 var(--vh-ink); }
.is-style-vh-card-flat { box-shadow: none; border-color: var(--vh-border-color); }
.is-style-vh-card-dashed {
	border: 1.5px dashed var(--vh-ink);
	border-radius: var(--vh-radius);
	padding: clamp(24px, 4vw, 40px);
}
.vh-card--hover:hover { box-shadow: 4px 4px 0 var(--vh-violet); }
.vh-card-icon {
	width: 44px; height: 44px; flex: none;
	display: grid; place-items: center;
	background: var(--vh-lavender);
	border: var(--vh-border);
	border-radius: var(--vh-radius-sm);
	font-family: var(--vh-mono);
	font-size: 20px;
	color: var(--vh-ink);
	margin: 0 !important;
}
.vh-card-icon--sm { width: 32px; height: 32px; font-size: 15px; }
.vh-card-icon--lime { background: var(--vh-lime); }
.vh-card-icon--cream { background: var(--vh-cream); }

.is-style-vh-window {
	background: var(--vh-surface);
	border: var(--vh-border);
	border-radius: var(--vh-radius);
	box-shadow: 10px 10px 0 var(--vh-lavender);
	overflow: hidden;
}
.is-style-vh-window.vh-window--ink { box-shadow: 6px 6px 0 var(--vh-ink); }
.is-style-vh-window.vh-window--sm { box-shadow: 6px 6px 0 var(--vh-lavender); }
.is-style-vh-window > * { margin-block: 0 !important; }
.vh-window__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 14px;
	border-bottom: var(--vh-border);
	background: var(--vh-cream);
	font-family: var(--vh-mono);
	font-size: 12.5px;
	color: var(--vh-ink);
	flex-wrap: nowrap;
}
.vh-window__bar > * { margin: 0 !important; }
.vh-window__title {
	display: flex; align-items: center; gap: 8px; min-width: 0;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
	font-family: var(--vh-mono); font-size: 12.5px; letter-spacing: 0; color: var(--vh-ink);
}
.vh-window__title::before {
	content: ""; width: 16px; height: 13px; flex: none;
	background: url("../img/logos/logo-icon-violet.svg") center / contain no-repeat;
}
.vh-window__dots { letter-spacing: 0.3em; color: var(--vh-muted); font-family: var(--vh-mono); font-size: 12.5px; flex: none; }
.vh-window__body { padding: 22px 24px 24px; }
.vh-window__body--flush { padding: 0; }
.vh-window__body--flush .wp-block-image, .vh-window__body--flush img { display: block; margin: 0; width: 100%; }

.is-style-vh-rule-list { border-top: var(--vh-border); }
.is-style-vh-rule-list > * { margin-block: 0 !important; }
.vh-row {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	gap: 14px;
	padding: 16px 0;
	border-bottom: var(--vh-border-light);
}
.is-style-vh-rule-list > .vh-row:last-child,
.vh-row--last { border-bottom: var(--vh-border); }
.vh-row--loose { padding: 20px 0; gap: 16px; }
.vh-row > * { margin: 0 !important; grid-column: 2; }
.vh-row > .vh-row__n { grid-column: 1; grid-row: 1 / span 9; }
.vh-row__n { font-family: var(--vh-mono); font-size: 12.5px; color: var(--vh-violet); line-height: 1.6; }
.vh-row__n--muted { color: var(--vh-muted); }
.vh-row h3, .vh-row h4 { font-size: 19px; line-height: 1.3; font-weight: 600; }
.vh-row h3 + p, .vh-row h4 + p { margin-top: 6px !important; font-size: 15.5px; line-height: 1.55; color: var(--vh-muted); }
.vh-row--between { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; font-size: 15.5px; }

/* Steps (workflow) */
.vh-steps { border-top: var(--vh-border); gap: 0 32px !important; }
.vh-step { padding: 22px 0 26px; border-bottom: var(--vh-border-light); min-width: 0; }
.vh-step > * { margin: 0 !important; }
.vh-step__n { font-family: var(--vh-mono); font-size: 12.5px; color: var(--vh-violet); margin-bottom: 12px !important; letter-spacing: 0; }
.vh-step h3 { font-size: 19px; line-height: 1.3; font-weight: 600; }
.vh-step h3 + p { margin-top: 8px !important; font-size: 15.5px; line-height: 1.55; color: var(--vh-muted); }

/* Checklists */
.is-style-vh-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; font-size: 15px; }
.is-style-vh-checklist li { display: flex; gap: 10px; align-items: baseline; }
.is-style-vh-checklist li::before { content: "✓"; font-family: var(--vh-mono); color: var(--vh-violet-dark); flex: none; }
.is-style-vh-checklist.vh-checklist--boxed li::before {
	content: "✓"; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center;
	font-size: 13px; background: var(--vh-lavender); border: var(--vh-border); border-radius: var(--vh-radius-sm); transform: translateY(3px);
}
.is-style-vh-plain { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.is-style-vh-steps { list-style: none; margin: 0; padding: 0; counter-reset: vh-step; border-top: var(--vh-border); }
.is-style-vh-steps li { counter-increment: vh-step; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; padding: 16px 0; border-bottom: var(--vh-border-light); font-size: 15.5px; line-height: 1.5; }
.is-style-vh-steps li::before { content: counter(vh-step, decimal-leading-zero); font-family: var(--vh-mono); font-size: 12.5px; color: var(--vh-violet); }
.is-style-vh-steps li:last-child { border-bottom: var(--vh-border); }

/* Included-features box */
.vh-included {
	padding: clamp(20px, 3vw, 32px) clamp(20px, 3vw, 36px);
	border: var(--vh-border);
	border-radius: var(--vh-radius);
	background: var(--vh-cream);
}
.vh-included ul { gap: 14px 32px; font-size: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.vh-included li { font-weight: 500; }

/* Dashed placeholder (public holding states) */
.vh-empty { text-align: center; }
.vh-empty > * { margin-inline: auto; }

/* ------------------------------------------------------------------ */
/* Buttons                                                             */
/* ------------------------------------------------------------------ */
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.wp-block-button__link:focus-visible { outline: 2px solid var(--vh-violet); outline-offset: 3px; }
.is-style-vh-secondary .wp-block-button__link {
	background: var(--vh-surface); color: var(--vh-ink);
	box-shadow: 4px 4px 0 var(--vh-lavender);
}
.is-style-vh-secondary .wp-block-button__link:hover,
.is-style-vh-secondary .wp-block-button__link:focus { background: var(--vh-surface); color: var(--vh-ink); box-shadow: 4px 4px 0 var(--vh-violet); }
.is-style-vh-ghost .wp-block-button__link {
	background: transparent; color: var(--vh-surface); border-color: var(--vh-surface); box-shadow: none;
}
.is-style-vh-ghost .wp-block-button__link:hover,
.is-style-vh-ghost .wp-block-button__link:focus { background: var(--vh-violet-dark); color: var(--vh-surface); }
.is-style-vh-on-violet .wp-block-button__link { background: var(--vh-surface); color: var(--vh-ink); box-shadow: 4px 4px 0 var(--vh-ink); }
.is-style-vh-on-violet .wp-block-button__link:hover,
.is-style-vh-on-violet .wp-block-button__link:focus { background: var(--vh-lime); color: var(--vh-ink); }
.is-style-vh-chip .wp-block-button__link {
	font-size: 14.5px; font-weight: 500; color: var(--vh-ink);
	background: var(--vh-surface); border-color: var(--vh-border-color);
	padding: 8px 12px; box-shadow: none;
}
.is-style-vh-chip .wp-block-button__link:hover,
.is-style-vh-chip .wp-block-button__link:focus { border-color: var(--vh-ink); color: var(--vh-violet-dark); background: var(--vh-surface); }
.is-style-vh-chip.vh-chip--ink .wp-block-button__link { border-color: var(--vh-ink); padding: 10px 14px; }
.is-style-vh-chip.vh-chip--ink .wp-block-button__link:hover { box-shadow: 2px 2px 0 var(--vh-lavender); }
.is-style-vh-text .wp-block-button__link {
	background: transparent; border: 0; box-shadow: none; padding: 0;
	color: var(--vh-violet-dark); font-size: 15px; font-weight: 600; border-radius: 0;
}
.is-style-vh-text .wp-block-button__link:hover,
.is-style-vh-text .wp-block-button__link:focus { background: transparent; color: var(--vh-violet-dark); text-decoration: underline; }
.has-violet-background-color .is-style-vh-text .wp-block-button__link { color: var(--vh-surface); }
.is-style-vh-small .wp-block-button__link { font-size: 15px; padding: 12px 18px; box-shadow: 3px 3px 0 var(--vh-ink); }
.is-style-vh-small.is-style-vh-secondary .wp-block-button__link,
.is-style-vh-secondary.is-style-vh-small .wp-block-button__link { box-shadow: 3px 3px 0 var(--vh-lavender); }
.vh-btn-block .wp-block-button__link, .vh-btn-block.wp-block-button { width: 100%; }
.wp-block-buttons.vh-buttons--between { justify-content: space-between; }
.wp-block-buttons.vh-list-buttons { flex-direction: column; align-items: stretch; gap: 10px; }
.wp-block-buttons.vh-list-buttons .wp-block-button__link { width: 100%; justify-content: space-between; text-align: left; }

/* ------------------------------------------------------------------ */
/* Header                                                              */
/* ------------------------------------------------------------------ */
.vh-header { border-bottom: var(--vh-border); position: relative; z-index: 100; padding-left: 0 !important; padding-right: 0 !important; } /* the strip and bar are alignfull and carry the gutter themselves; without this the root padding is applied twice on narrow screens */
.vh-header__strip { border-bottom: var(--vh-border); }
.vh-header__strip-inner { padding: 7px 0; gap: 8px 16px; }
.vh-header__strip .is-style-vh-mono { font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; margin: 0; }
.vh-header__row { min-height: 76px; gap: 24px; }
.vh-header__logo { margin: 0 !important; flex: none; padding: 16px 0; }
.vh-header__logo img { width: 200px; height: auto; display: block; }
.vh-header__actions { flex: none; margin: 0 !important; }
.vh-header__actions .wp-block-button { margin: 0; }
.vh-header__login .wp-block-button__link { color: var(--vh-ink); font-weight: 500; padding: 10px 6px; }
.vh-header__login .wp-block-button__link:hover { color: var(--vh-violet-dark); }

.vh-nav { flex: 1 1 auto; justify-content: center; }
.vh-nav .wp-block-navigation-item__content,
.vh-nav .wp-block-navigation-submenu__toggle {
	font-family: var(--vh-sans); font-size: 15px; font-weight: 500; line-height: 1;
	color: var(--vh-ink); text-decoration: none;
	padding: 10px 12px; border: 1.5px solid transparent; border-radius: var(--vh-radius-sm);
	background: transparent;
}
.vh-nav .wp-block-navigation-item__content:hover,
.vh-nav .wp-block-navigation-submenu__toggle:hover,
.vh-nav .wp-block-navigation-submenu__toggle[aria-expanded="true"] {
	color: var(--vh-violet-dark); background: var(--vh-surface); border-color: var(--vh-border-color);
}
.vh-nav .wp-block-navigation__submenu-icon { margin-left: 6px; }
.vh-nav .wp-block-navigation__submenu-icon svg { transform: scale(0.9); }
.vh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child .wp-block-navigation__submenu-container {
	background: var(--vh-surface);
	border: var(--vh-border);
	border-radius: var(--vh-radius);
	box-shadow: 4px 4px 0 var(--vh-lavender);
	padding: 8px;
	top: calc(100% + 10px);
	left: 0;
	min-width: 300px;
	gap: 2px;
}
.vh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .vh-nav__cols .wp-block-navigation__submenu-container {
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	width: 560px;
}
.vh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .vh-nav__cols--compact .wp-block-navigation__submenu-container { width: 520px; }
.vh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .vh-nav__right .wp-block-navigation__submenu-container { left: auto; right: 0; }
.vh-nav .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
.vh-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block; width: 100%; padding: 10px 12px; border: 0; border-radius: var(--vh-radius-sm);
	font-size: 15px; font-weight: 600; line-height: 1.3;
}
.vh-nav .wp-block-navigation__submenu-container .vh-nav__plain .wp-block-navigation-item__content { font-weight: 500; padding: 9px 12px; }
.vh-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--vh-cream); border-color: transparent; color: var(--vh-ink); }
.vh-nav .wp-block-navigation-item__description { display: block; font-size: 13.5px; font-weight: 400; color: var(--vh-muted); margin-top: 2px; line-height: 1.35; }
.vh-nav .wp-block-navigation__submenu-container .vh-nav__overview .wp-block-navigation-item__content {
	grid-column: 1 / -1; color: var(--vh-violet-dark); font-size: 14px; border-bottom: var(--vh-border-light); border-radius: 0; padding: 8px 12px 10px; margin-bottom: 6px;
}
.vh-nav .wp-block-navigation__submenu-container .vh-nav__overview .wp-block-navigation-item__content:hover { background: transparent; text-decoration: underline; }

/* Mobile / overlay menu */
@media (min-width: 600px) {
	.vh-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none !important; }
}
.vh-nav .wp-block-navigation__responsive-container-open,
.vh-nav .wp-block-navigation__responsive-container-close {
	display: inline-flex; align-items: center; gap: 8px;
	font: 600 14px/1 var(--vh-sans); color: var(--vh-ink);
	background: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius-sm);
	padding: 11px 14px; cursor: pointer; box-shadow: 3px 3px 0 var(--vh-lavender);
}
.vh-nav .wp-block-navigation__responsive-container-open { flex: none; }
.vh-nav .wp-block-navigation__responsive-container-open svg,
.vh-nav .wp-block-navigation__responsive-container-close svg { width: 18px; min-width: 18px; height: 18px; flex: none; }
@media (max-width: 599px) {
	.vh-nav { flex: 0 0 auto; }
}
.vh-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--vh-surface);
	padding: 16px 24px 32px;
	border-top: var(--vh-border);
	overflow-y: auto;
}
.vh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 8px; padding-top: 64px; }
.vh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.vh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle { font-size: 16px; padding: 10px 8px; border: 0; }
.vh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding-left: 12px; }
.vh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__description { display: none; }
.vh-nav .wp-block-navigation__responsive-container-close { position: absolute; top: 16px; right: 24px; }

@media (max-width: 959px) {
	.vh-header__login { display: none !important; }
	.vh-header__row { gap: 12px; }
	.vh-header__logo img { width: 150px; }
	.vh-nav .wp-block-navigation-item__content,
	.vh-nav .wp-block-navigation-submenu__toggle { padding: 10px 8px; font-size: 14px; }
	.vh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .vh-nav__cols .wp-block-navigation__submenu-container { width: min(560px, calc(100vw - 48px)); }
}
@media (max-width: 599px) {
	.vh-header__strip-inner > :last-child { display: none; }
	.vh-header__row { gap: 10px; min-height: 64px; }
	.vh-header__logo img { width: 118px; }
	.vh-header__demo .wp-block-button__link, .vh-header__cta .wp-block-button__link { padding: 9px 10px; font-size: 12px; box-shadow: 2px 2px 0 var(--vh-ink); white-space: nowrap; }
	.vh-header__actions { margin-left: 8px !important; }
	.vh-header__bar.has-global-padding, .vh-header__strip.has-global-padding { padding-left: 16px; padding-right: 16px; }
	.vh-nav .wp-block-navigation__responsive-container-open { padding: 10px 11px; }
}

/* ------------------------------------------------------------------ */
/* Footer                                                              */
/* ------------------------------------------------------------------ */
.vh-footer { border-top: var(--vh-border); }
.vh-footer__grid { row-gap: 40px !important; }
.vh-footer__brand .vh-footer__logo { margin: 0 0 16px; }
.vh-footer__brand .vh-footer__logo img { width: 176px; height: auto; display: block; }
.vh-footer__brand p { margin: 0 0 20px; max-width: 26ch; line-height: 1.55; }
.vh-footer__col .is-style-vh-mono-label { padding-bottom: 10px; border-bottom: var(--vh-border-light); margin-bottom: 12px; }
.vh-footer__nav { font-size: 15px; }
.vh-footer__nav .wp-block-navigation-item__content { color: var(--vh-ink); text-decoration: none; padding: 0; font-weight: 400; }
.vh-footer__nav .wp-block-navigation-item__content:hover { color: var(--vh-violet-dark); text-decoration: underline; }
.vh-footer__legal { border-top: var(--vh-border-light); }
.vh-footer__legal-row { padding: 18px 0; gap: 12px 28px; }
.vh-footer__legal-row > * { margin: 0 !important; }
.vh-footer__legal .is-style-vh-mono,
.vh-footer__legal .wp-block-navigation-item__content,
.vh-footer__legal .is-style-vh-text .wp-block-button__link {
	font-family: var(--vh-mono); font-size: 12px; letter-spacing: 0.04em; color: var(--vh-muted); font-weight: 400;
}
.vh-footer__legal .wp-block-navigation-item__content:hover,
.vh-footer__legal .is-style-vh-text .wp-block-button__link:hover { color: var(--vh-violet-dark); }

/* ------------------------------------------------------------------ */
/* Hero compositions                                                   */
/* ------------------------------------------------------------------ */
.vh-hero { padding-top: clamp(48px, 7vw, 88px); padding-bottom: clamp(56px, 8vw, 96px); overflow: hidden; }
.vh-hero__grid { gap: clamp(32px, 5vw, 64px) !important; }
.vh-hero__copy > * + * { margin-top: 0; }
.vh-hero__copy h1 { margin-top: 0; }
.vh-hero__copy h1 + p { margin-top: 24px; }
.vh-hero__copy .wp-block-buttons { margin-top: 32px; gap: 14px; }
.vh-hero__note { margin-top: 22px; font-size: 14.5px; color: var(--vh-muted); }
.vh-hero__visual { position: relative; padding: 40px 12px 12px 0; min-width: 0; }
.vh-hero__visual .vh-illustrative { position: absolute; top: 0; right: 12px; margin: 0; z-index: 2; }
.vh-hero-panel { position: relative; width: 100%; aspect-ratio: 100 / 76; }
.vh-hero-panel > * { margin: 0 !important; }
.vh-hero-panel__back { position: absolute; left: 0; top: 0; width: 76%; }
.vh-hero-panel__front {
	position: absolute; right: 0; top: 18%; width: 58%; aspect-ratio: 750 / 760;
	background: #fff; border: var(--vh-border); border-radius: var(--vh-radius); overflow: hidden;
	box-shadow: 10px 10px 0 var(--vh-ink);
}
.vh-hero-panel__front .wp-block-image, .vh-hero-panel__front img { display: block; margin: 0; width: 100%; height: 100%; object-fit: cover; object-position: left top; }
@media (max-width: 781px) {
	.vh-hero__visual { padding: 0 10px 10px 0; }
	.vh-hero__visual .vh-illustrative { position: static; display: inline-block; margin-bottom: 12px; }
	.vh-hero-panel { aspect-ratio: 100 / 82; }
	.vh-hero-panel__front { box-shadow: 6px 6px 0 var(--vh-ink); }
	.is-style-vh-window { box-shadow: 6px 6px 0 var(--vh-lavender); }
}

/* Product visual compositions (static captures inside CSS frames) */
.vh-shot { position: absolute; background: #fff; border: var(--vh-border); border-radius: var(--vh-radius); overflow: hidden; box-shadow: 6px 6px 0 var(--vh-lavender); }
.vh-shot > *, .vh-shot img { display: block; margin: 0 !important; width: 100%; }
.vh-shot--ink { box-shadow: 8px 8px 0 var(--vh-ink); }
.vh-shot--lav8 { box-shadow: 8px 8px 0 var(--vh-lavender); }
.vh-trio { position: relative; width: 100%; aspect-ratio: 2.4 / 1; margin-right: 12px; }
.vh-trio > * { margin: 0 !important; }
.vh-trio__a { left: 0; top: 0; width: 44%; }
.vh-trio__b { right: 0; top: 0; width: 44%; }
.vh-trio__c { left: 28%; top: 30%; width: 44%; }
.vh-stack { position: relative; width: 100%; aspect-ratio: 4 / 3; }
.vh-stack > * { margin: 0 !important; }
.vh-stack__a { left: 0; top: 0; width: 74%; }
.vh-stack__b { right: 0; bottom: 0; width: 74%; }
.vh-visual-wrap { padding-right: 12px; padding-bottom: 12px; }
.is-style-vh-frame img, .is-style-vh-frame-ink img {
	display: block; background: #fff;
	border: var(--vh-border); border-radius: var(--vh-radius);
	box-shadow: 8px 8px 0 var(--vh-lavender);
}
.is-style-vh-frame-ink img { box-shadow: 8px 8px 0 var(--vh-ink); }
.vh-illustrative { display: inline-block; }

/* ------------------------------------------------------------------ */
/* Pillars (home "A lot happening")                                    */
/* ------------------------------------------------------------------ */
.vh-pillars { gap: 14px !important; }
.vh-pillar { gap: 16px 28px !important; padding: 22px 26px; }
.vh-pillar > * { margin: 0 !important; }
.vh-pillars > .vh-pillar:nth-child(2) { margin-left: clamp(0px, calc((100vw - 960px) * 0.14), 56px) !important; }
.vh-pillars > .vh-pillar:nth-child(3) { margin-left: clamp(0px, calc((100vw - 960px) * 0.28), 112px) !important; }
.vh-pillars > .vh-pillar:nth-child(4) { margin-left: clamp(0px, calc((100vw - 960px) * 0.42), 168px) !important; }
.vh-pillars > .vh-pillar:nth-child(5) { margin-left: clamp(0px, calc((100vw - 960px) * 0.56), 224px) !important; }
.vh-pillar__id { flex: 0 0 150px; gap: 14px !important; }
.vh-pillar__label { font-family: var(--vh-mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vh-muted); line-height: 1.4; margin: 0 !important; }
.vh-pillar__body { flex: 1 1 320px; min-width: 0; }
.vh-pillar__body h3 { font-size: 22px; line-height: 1.25; font-weight: 600; }
.vh-pillar__body p { margin-top: 6px !important; font-size: 16px; line-height: 1.55; color: var(--vh-muted); }
.vh-pillar__link { flex: 0 0 auto; }

/* ------------------------------------------------------------------ */
/* Link lists (related pages block, industries list)                   */
/* ------------------------------------------------------------------ */
.vh-linklist { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 0 48px; border-top: var(--vh-border); margin: 0; padding: 0; list-style: none; }
.vh-linklist--single { grid-template-columns: 1fr; }
.vh-linklist__item {
	display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 16px; align-items: baseline;
	padding: 18px 0; border-bottom: var(--vh-border-light); text-decoration: none; color: var(--vh-ink);
}
.vh-linklist__item:hover { color: var(--vh-violet-dark); }
.vh-linklist__item:focus-visible { outline-offset: -2px; }
.vh-linklist--compact .vh-linklist__item { padding: 14px 0; }
.vh-linklist__n { font-family: var(--vh-mono); font-size: 12.5px; color: var(--vh-muted); }
.vh-linklist__title { display: block; font-size: 19px; font-weight: 600; line-height: 1.3; }
.vh-linklist--compact .vh-linklist__title { font-size: 17px; }
.vh-linklist__sub { display: block; margin-top: 3px; font-size: 15px; color: var(--vh-muted); line-height: 1.5; }
.vh-linklist__arrow { font-family: var(--vh-mono); }
.vh-linklist__icon { width: 32px; height: 32px; display: grid; place-items: center; background: var(--vh-lavender); border: var(--vh-border); border-radius: var(--vh-radius-sm); font-family: var(--vh-mono); font-size: 14px; color: var(--vh-ink); }
.vh-linklist--icons .vh-linklist__item { align-items: center; }
.vh-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.vh-chip {
	display: inline-block; font: 500 14.5px/1.2 var(--vh-sans); color: var(--vh-ink); text-decoration: none;
	border: var(--vh-border-light); border-radius: var(--vh-radius-sm); padding: 8px 12px; background: var(--vh-surface);
}
.has-surface-background-color .vh-chip { background: var(--vh-cream); }
.vh-chip:hover { border-color: var(--vh-ink); color: var(--vh-violet-dark); }
.vh-chip--more { border: 0; color: var(--vh-violet-dark); font-weight: 600; padding: 8px 4px; }
.vh-chip--more:hover { text-decoration: underline; }
.vh-tile-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.vh-tile { display: flex; align-items: center; gap: 12px; background: var(--vh-surface); border: var(--vh-border-light); border-radius: var(--vh-radius-sm); padding: 12px 14px; text-decoration: none; color: var(--vh-ink); min-width: 0; font-weight: 600; font-size: 15px; }
.vh-tile:hover { border-color: var(--vh-ink); color: var(--vh-violet-dark); }

/* ------------------------------------------------------------------ */
/* Industry cards (hub)                                                */
/* ------------------------------------------------------------------ */
.vh-industry-card { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; padding: 22px 24px; text-decoration: none; color: var(--vh-ink); }
.vh-industry-card:hover { box-shadow: 4px 4px 0 var(--vh-violet); }
.vh-industry-card > * { margin: 0 !important; }
.vh-industry-card__n { font-family: var(--vh-mono); font-size: 12.5px; color: var(--vh-muted); padding-top: 4px; }
.vh-industry-card h3 { font-size: 22px; line-height: 1.25; font-weight: 600; }
.vh-industry-card h3 a { color: inherit; text-decoration: none; }
.vh-industry-card h3 + p { margin-top: 6px !important; font-size: 15.5px; line-height: 1.5; color: var(--vh-muted); }
.vh-industry-card .vh-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px !important; }
.vh-industry-card .vh-tags .is-style-vh-tag { background: var(--vh-surface); }
.vh-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.vh-tags > * { margin: 0 !important; }

/* Shape card (industry hero "how your products move") */
.vh-shape dl { margin: 0; display: grid; gap: 16px; }
.vh-shape dt { font-family: var(--vh-mono); font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vh-muted); margin-bottom: 8px; }
.vh-shape dd { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.vh-shape dd + dt { border-top: var(--vh-border-light); padding-top: 16px; }
.vh-pill { font: 500 14px var(--vh-sans); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 6px 10px; background: var(--vh-cream); }
.vh-pill--lavender { background: var(--vh-lavender); }

/* ------------------------------------------------------------------ */
/* Pricing teaser card, plan toggle                                    */
/* ------------------------------------------------------------------ */
.vh-toggle { display: inline-flex; border: var(--vh-border); border-radius: var(--vh-radius-sm); overflow: hidden; font: 600 13px var(--vh-sans); }
.vh-toggle span, .vh-toggle a { padding: 8px 14px; color: var(--vh-ink); text-decoration: none; }
.vh-toggle .is-active { background: var(--vh-ink); color: var(--vh-surface); }
.vh-price { font: 500 44px/1 var(--vh-sans); font-variant-numeric: tabular-nums; letter-spacing: -0.01em; margin-top: 18px !important; }
.vh-price small { font-size: 16px; font-weight: 400; color: var(--vh-muted); margin-left: 6px; }

/* ------------------------------------------------------------------ */
/* FAQ (core Details)                                                  */
/* ------------------------------------------------------------------ */
.vh-faq { border-top: var(--vh-border); }
.vh-faq > * { margin-block: 0 !important; }
.vh-faq .wp-block-details, .is-style-vh-faq { border-bottom: var(--vh-border-light); padding: 0; margin: 0; }
.vh-faq .wp-block-details:last-child { border-bottom: var(--vh-border); }
.vh-faq summary, .is-style-vh-faq summary {
	display: flex; justify-content: space-between; align-items: center; gap: 16px;
	padding: 18px 4px; cursor: pointer; list-style: none;
	font: 600 18px/1.35 var(--vh-sans); color: var(--vh-ink);
}
.vh-faq summary::-webkit-details-marker, .is-style-vh-faq summary::-webkit-details-marker { display: none; }
.vh-faq summary::after, .is-style-vh-faq summary::after { content: "+"; font-family: var(--vh-mono); color: var(--vh-violet); flex: none; }
.vh-faq details[open] > summary::after, .is-style-vh-faq[open] > summary::after { content: "−"; }
.vh-faq summary:hover, .is-style-vh-faq summary:hover { color: var(--vh-violet-dark); }
.vh-faq summary:focus-visible { outline-offset: -2px; }
.vh-faq .wp-block-details > :not(summary), .is-style-vh-faq > :not(summary) {
	margin: 0; padding: 0 4px 20px; font-size: 16px; line-height: 1.6; color: var(--vh-muted); max-width: 66ch;
}
.vh-faq__foot { margin-top: 22px !important; text-align: center; font-size: 15px; color: var(--vh-muted); }

/* ------------------------------------------------------------------ */
/* Blog                                                                */
/* ------------------------------------------------------------------ */
.vh-blog__hero { align-items: end; }
.vh-blog-grid { gap: 14px !important; margin-top: 24px; }
.wp-block-post-template.vh-blog-grid > .wp-block-post { margin: 0; }
.vh-post-card {
	background: var(--vh-cream); border: var(--vh-border); border-radius: var(--vh-radius);
	box-shadow: 4px 4px 0 var(--vh-lavender); overflow: hidden;
	display: flex; flex-direction: column; height: 100%;
}
.vh-post-card:hover { box-shadow: 4px 4px 0 var(--vh-violet); }
.vh-post-card > * { margin: 0 !important; }
.vh-post-card__image { border-bottom: var(--vh-border); background: var(--vh-lavender); }
.vh-post-card__image img { display: block; }
.vh-post-card__body { padding: 22px 24px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.vh-post-card__body > * { margin: 0 !important; }
.vh-post-card__terms { font-family: var(--vh-mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vh-muted); }
.vh-post-card__terms a { color: inherit; text-decoration: none; }
.vh-post-card__title { font-size: 19px; line-height: 1.3; font-weight: 600; letter-spacing: 0; }
.vh-post-card__title a { color: var(--vh-ink); text-decoration: none; }
.vh-post-card__title a:hover { color: var(--vh-violet-dark); }
.vh-post-card__excerpt { font-size: 15px; line-height: 1.55; color: var(--vh-muted); }
.vh-post-card__excerpt .wp-block-post-excerpt__more-text { margin-top: 8px; }
.vh-post-card__excerpt .wp-block-post-excerpt__more-link { font-weight: 600; color: var(--vh-violet-dark); text-decoration: none; }
.vh-post-card__read { margin-top: auto !important; padding-top: 6px; font: 600 14.5px var(--vh-sans); color: var(--vh-violet-dark); }
.vh-post-card__meta { margin-top: auto !important; padding-top: 6px; gap: 8px 16px !important; font-size: 13.5px; color: var(--vh-muted); }
.vh-post-card__meta > * { margin: 0 !important; font-size: 13.5px; }
.vh-post-card__author { font-weight: 500; }
/* Featured first post on the unfiltered first page */
body.blog:not(.paged):not(.vh-filtered) .vh-blog__query .vh-blog-grid > .wp-block-post:first-child { grid-column: 1 / -1; }
body.blog:not(.paged):not(.vh-filtered) .vh-blog__query .vh-blog-grid > .wp-block-post:first-child .vh-post-card {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); box-shadow: 6px 6px 0 var(--vh-lavender);
}
body.blog:not(.paged):not(.vh-filtered) .vh-blog__query .vh-blog-grid > .wp-block-post:first-child .vh-post-card:hover { box-shadow: 6px 6px 0 var(--vh-violet); }
body.blog:not(.paged):not(.vh-filtered) .vh-blog__query .vh-blog-grid > .wp-block-post:first-child .vh-post-card__image { border-bottom: 0; border-right: var(--vh-border); min-height: 240px; }
body.blog:not(.paged):not(.vh-filtered) .vh-blog__query .vh-blog-grid > .wp-block-post:first-child .vh-post-card__image img { height: 100%; object-fit: cover; }
body.blog:not(.paged):not(.vh-filtered) .vh-blog__query .vh-blog-grid > .wp-block-post:first-child .vh-post-card__body { padding: clamp(24px, 3vw, 36px); gap: 14px; }
body.blog:not(.paged):not(.vh-filtered) .vh-blog__query .vh-blog-grid > .wp-block-post:first-child .vh-post-card__title { font-size: clamp(24px, 2.8vw, 34px); font-weight: 500; letter-spacing: -0.01em; line-height: 1.2; }
body.blog:not(.paged):not(.vh-filtered) .vh-blog__query .vh-blog-grid > .wp-block-post:first-child .vh-post-card__terms::before { content: "Latest"; color: var(--vh-violet-dark); margin-right: 16px; }
@media (max-width: 781px) {
	body.blog:not(.paged):not(.vh-filtered) .vh-blog__query .vh-blog-grid > .wp-block-post:first-child .vh-post-card__image { border-right: 0; border-bottom: var(--vh-border); }
}
@media (max-width: 960px) {
	.wp-block-post-template.vh-blog-grid.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.wp-block-post-template.vh-blog-grid.columns-3 { grid-template-columns: 1fr; }
}
.vh-pagination { margin-top: 32px; padding-top: 22px; border-top: var(--vh-border-light); font-family: var(--vh-mono); font-size: 13px; }
.vh-pagination a, .vh-pagination .page-numbers { color: var(--vh-ink); text-decoration: none; padding: 8px 10px; border: var(--vh-border-light); border-radius: var(--vh-radius-sm); }
.vh-pagination a:hover { border-color: var(--vh-ink); color: var(--vh-violet-dark); }
.vh-pagination .page-numbers.current { background: var(--vh-ink); color: var(--vh-surface); border-color: var(--vh-ink); }
.vh-pagination .page-numbers.dots { border: 0; }

/* Blog filter block */
.vh-blogfilter { margin: 0; }
.vh-blogfilter__form { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding-bottom: 22px; border-bottom: var(--vh-border); }
.vh-blogfilter--search-only .vh-blogfilter__form { border: 0; padding: 0; margin-top: 20px; }
.vh-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.vh-filter {
	display: inline-flex; align-items: center; gap: 8px;
	font: 600 14px/1 var(--vh-sans); color: var(--vh-ink); text-decoration: none;
	border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 10px 14px; background: var(--vh-surface); cursor: pointer;
}
.vh-filter.is-active, .vh-filter[aria-current="true"] { background: var(--vh-ink); color: var(--vh-surface); }
.vh-filter__count { font-family: var(--vh-mono); font-size: 11.5px; opacity: 0.75; }
.vh-result-count { font-family: var(--vh-mono); font-size: 12.5px; letter-spacing: 0.06em; color: var(--vh-muted); }
.vh-search {
	display: flex; align-items: center; gap: 10px; max-width: 440px;
	border: var(--vh-border); border-radius: var(--vh-radius-sm); background: var(--vh-surface); padding: 0 6px 0 14px;
}
.vh-search::before { content: "⌕"; font-family: var(--vh-mono); color: var(--vh-violet); flex: none; }
.vh-search input[type="search"] { flex: 1; min-width: 0; font: 400 16px var(--vh-sans); color: var(--vh-ink); background: transparent; border: 0; padding: 13px 0; outline: none; }
.vh-search input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
.vh-search button { font: 600 14px/1 var(--vh-sans); color: #fff; background: var(--vh-violet); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 10px 14px; cursor: pointer; }
.vh-search button:hover { background: var(--vh-violet-dark); }
.vh-search--shadow { box-shadow: 4px 4px 0 var(--vh-lavender); }
.has-surface-background-color .vh-search { background: var(--vh-cream); }
/* core search block skin */
.wp-block-search.vh-search { display: block; border: 0; padding: 0; background: transparent; }
.wp-block-search.vh-search::before { display: none; }
.wp-block-search.vh-search .wp-block-search__inside-wrapper { border: var(--vh-border); border-radius: var(--vh-radius-sm); background: var(--vh-surface); padding: 0 6px 0 14px; box-shadow: 4px 4px 0 var(--vh-lavender); }
.wp-block-search.vh-search .wp-block-search__input { font: 400 16px var(--vh-sans); color: var(--vh-ink); background: transparent; border: 0; padding: 13px 0; }
.wp-block-search.vh-search .wp-block-search__button { font: 600 14px/1 var(--vh-sans); color: #fff; background: var(--vh-violet); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 10px 14px; margin: 6px 0; }

/* ------------------------------------------------------------------ */
/* Article                                                             */
/* ------------------------------------------------------------------ */
.vh-breadcrumb { margin-bottom: 28px; font-family: var(--vh-mono); font-size: 12.5px; letter-spacing: 0.06em; color: var(--vh-muted); }
.vh-breadcrumb > * { margin: 0 !important; }
.vh-breadcrumb .is-style-vh-mono, .vh-breadcrumb .wp-block-post-terms, .vh-breadcrumb .wp-block-post-terms a { font-family: var(--vh-mono); font-size: 12.5px; letter-spacing: 0.06em; text-transform: none; color: var(--vh-muted); text-decoration: none; }
.vh-breadcrumb .wp-block-post-terms a:hover, .vh-breadcrumb a:hover { color: var(--vh-violet-dark); }
.vh-breadcrumb .vh-breadcrumb__current, .vh-breadcrumb .wp-block-post-terms a:last-child { color: var(--vh-ink); }
.vh-article__title { font-size: clamp(32px, 4.2vw, 54px); line-height: 1.1; }
.vh-article__meta { margin-top: 22px !important; padding-top: 16px; border-top: var(--vh-border); font-size: 14.5px; color: var(--vh-muted); gap: 10px 20px !important; }
.vh-article__meta > * { margin: 0 !important; }
.vh-article__meta .wp-block-post-terms { font-family: var(--vh-mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; }
.vh-article__avatar img { border: var(--vh-border); border-radius: var(--vh-radius-sm); background: var(--vh-lavender); display: block; }
.vh-article__author a { color: var(--vh-ink); text-decoration: none; }
.vh-article__image img { border: var(--vh-border); border-radius: var(--vh-radius); }
.vh-article__body .wp-block-post-content { font-size: 18px; line-height: 1.7; }
.vh-article__body .wp-block-post-content > * + * { margin-top: 22px; }
.vh-article__body .wp-block-post-content > p:first-child { font-size: clamp(19px, 1.6vw, 22px); line-height: 1.55; }
.vh-article__body .wp-block-post-content h2 { font-size: clamp(24px, 2.4vw, 30px); font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; margin-top: 36px; }
.vh-article__body .wp-block-post-content h3 { font-size: 22px; font-weight: 600; margin-top: 30px; }
.vh-article__body .wp-block-post-content ul, .vh-article__body .wp-block-post-content ol { padding-left: 22px; display: grid; gap: 10px; }
.vh-article__body .wp-block-post-content img { border: var(--vh-border); border-radius: var(--vh-radius); }
.vh-article__filed { border-top: var(--vh-border); font-size: 14.5px; color: var(--vh-muted); }
.vh-article__filed > * { margin: 0 !important; }
.vh-article__filed .is-style-vh-mono { font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; }
.vh-article__filed-terms a { display: inline-block; font: 500 14.5px var(--vh-sans); color: var(--vh-ink); text-decoration: none; border: var(--vh-border-light); border-radius: var(--vh-radius-sm); padding: 7px 10px; background: var(--vh-surface); margin-right: 6px; }
.vh-article__filed-terms a:hover { border-color: var(--vh-ink); color: var(--vh-violet-dark); }
.vh-article__filed-terms .wp-block-post-terms__separator { display: none; }
.vh-article__body .is-style-vh-tag { text-transform: none; letter-spacing: 0.02em; font-size: 13px; line-height: 1.5; padding: 8px 12px; }
.vh-callout { border: var(--vh-border); border-radius: var(--vh-radius); padding: 22px 24px; }
.vh-callout > * { margin: 0 !important; }

/* ------------------------------------------------------------------ */
/* Legal / content page layout                                          */
/* ------------------------------------------------------------------ */
.vh-doc { gap: 40px 64px !important; align-items: start; }
.vh-doc__nav { position: sticky; top: 24px; }
.vh-doc__nav .wp-block-buttons { gap: 6px; }
.vh-doc__toc { list-style: none; margin: 0; padding: 0; border-top: var(--vh-border-light); counter-reset: vh-toc; }
.vh-doc__toc li { counter-increment: vh-toc; border-bottom: var(--vh-border-light); }
.vh-doc__toc a { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; padding: 9px 0; font-size: 14.5px; color: var(--vh-ink); text-decoration: none; }
.vh-doc__toc a::before { content: counter(vh-toc, decimal-leading-zero); font-family: var(--vh-mono); font-size: 12px; color: var(--vh-muted); }
.vh-doc__toc a:hover { color: var(--vh-violet-dark); }
.vh-doc__body { max-width: 760px; }
.vh-doc__body h2 { font-size: clamp(20px, 2vw, 24px); font-weight: 600; line-height: 1.3; padding-top: 28px; border-top: var(--vh-border-light); scroll-margin-top: 24px; }
.vh-doc__body h2:first-of-type { border-top: var(--vh-border); margin-top: 36px; }
.vh-doc__body p, .vh-doc__body li { font-size: 16px; line-height: 1.7; color: var(--vh-muted); }
@media (max-width: 781px) { .vh-doc__nav { position: static; } }

/* ------------------------------------------------------------------ */
/* Forms (ventryhub/form block)                                        */
/* ------------------------------------------------------------------ */
.vh-form { display: grid; gap: 18px; background: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius); box-shadow: 6px 6px 0 var(--vh-lavender); padding: clamp(22px, 3vw, 32px); min-width: 0; }
.has-surface-background-color .vh-form { background: var(--vh-cream); }
.vh-form__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 16px; }
.vh-form label { display: block; }
.vh-form__label { display: block; font: 600 14px var(--vh-sans); margin-bottom: 6px; color: var(--vh-ink); }
.vh-form__label .vh-form__optional { font-weight: 400; color: var(--vh-muted); }
.vh-form input[type="text"], .vh-form input[type="email"], .vh-form input[type="url"], .vh-form input[type="tel"], .vh-form select, .vh-form textarea {
	width: 100%; font: 400 16px var(--vh-sans); color: var(--vh-ink);
	background: var(--vh-cream); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 12px 14px;
}
.has-surface-background-color .vh-form input, .has-surface-background-color .vh-form select, .has-surface-background-color .vh-form textarea { background: var(--vh-surface); }
.vh-form textarea { line-height: 1.5; resize: vertical; }
.vh-form select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--vh-ink) 50%), linear-gradient(135deg, var(--vh-ink) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; padding-right: 40px; }
.vh-form input:focus-visible, .vh-form select:focus-visible, .vh-form textarea:focus-visible { outline: 2px solid var(--vh-violet); outline-offset: 2px; }
.vh-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.vh-form legend { font: 600 14px var(--vh-sans); margin-bottom: 8px; padding: 0; }
.vh-form__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.vh-form__chip { display: inline-flex; align-items: center; gap: 8px; font: 500 14.5px var(--vh-sans); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 8px 12px; background: var(--vh-cream); cursor: pointer; }
.vh-form__chip input { accent-color: var(--vh-violet); width: 16px; height: 16px; margin: 0; }
.vh-form__chip:has(input:checked) { background: var(--vh-lavender); }
.vh-form__check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: var(--vh-muted); }
.vh-form__check input { accent-color: var(--vh-violet); width: 16px; height: 16px; margin: 3px 0 0; flex: none; }
.vh-form__hint { font-size: 13.5px; line-height: 1.5; color: var(--vh-muted); margin: 0; }
.vh-form__hint a { color: var(--vh-violet-dark); }
.vh-form__error { font-size: 13.5px; color: #8A1C1C; margin-top: 6px; }
.vh-form .is-invalid { border-color: #8A1C1C; }
.vh-form__notice { font-family: var(--vh-mono); font-size: 12px; letter-spacing: 0.04em; line-height: 1.55; background: var(--vh-cream); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 10px 12px; margin: 0; }
.vh-form__notice--success { background: var(--vh-lime); }
.vh-form__notice--error { background: var(--vh-surface); }
.vh-form__submit { justify-self: start; display: inline-flex; align-items: center; gap: 8px; font: 600 16px/1 var(--vh-sans); color: #fff; background: var(--vh-violet); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 15px 22px; cursor: pointer; box-shadow: 4px 4px 0 var(--vh-ink); }
.vh-form__submit:hover { background: var(--vh-violet-dark); }
.vh-form__submit--full { justify-self: stretch; justify-content: center; }
.vh-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.vh-form--unavailable { opacity: 1; }
.vh-handoff { display: grid; gap: 16px; }

/* ------------------------------------------------------------------ */
/* Pricing calculator block                                            */
/* ------------------------------------------------------------------ */
.vh-calc { display: grid; gap: 22px; min-width: 0; }
.vh-calc__card { background: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius); box-shadow: 6px 6px 0 var(--vh-lavender); }
.vh-calc__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 9px 14px; border-bottom: var(--vh-border); background: var(--vh-cream); border-radius: var(--vh-radius) var(--vh-radius) 0 0; font-family: var(--vh-mono); font-size: 12.5px; }
.vh-calc__trial { display: inline-flex; align-items: center; gap: 8px; background: var(--vh-violet); color: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 3px 9px; font-size: 11.5px; letter-spacing: 0.04em; }
.vh-calc__trial::before { content: ""; width: 6px; height: 6px; background: var(--vh-lime); border-radius: 50%; }
.vh-calc__body { padding: 22px 26px 6px; }
.vh-calc__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px 20px; flex-wrap: wrap; }
.vh-calc__head h2, .vh-calc__head h3 { font: 600 19px/1.3 var(--vh-sans); margin: 0; }
.vh-calc__unlimited { font-family: var(--vh-mono); font-size: 12px; letter-spacing: 0.04em; color: var(--vh-violet-dark); }
.vh-calc__sub { margin: 6px 0 0; font-size: 14.5px; line-height: 1.5; color: var(--vh-muted); }
.vh-calc__rows { margin-top: 16px; display: grid; }
.vh-calc__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; align-items: center; padding: 16px 0; border-top: var(--vh-border-light); }
.vh-calc__row-name { font: 600 16px/1.3 var(--vh-sans); }
.vh-calc__row-rate { margin-top: 4px; font-size: 13.5px; color: var(--vh-muted); }
.vh-qty { display: inline-flex; align-items: stretch; border: var(--vh-border); border-radius: var(--vh-radius-sm); background: var(--vh-surface); overflow: hidden; }
.vh-qty button { width: 42px; height: 42px; border: 0; background: transparent; cursor: pointer; font: 400 20px/1 var(--vh-mono); color: var(--vh-ink); }
.vh-qty button:hover { background: var(--vh-cream); }
.vh-qty button:disabled { color: #B8BAB2; cursor: not-allowed; }
.vh-qty button:focus-visible { outline-offset: -2px; }
.vh-qty input { width: 54px; height: 42px; border: 0; border-left: var(--vh-border); border-right: var(--vh-border); background: var(--vh-surface); text-align: center; font: 600 16px var(--vh-sans); color: var(--vh-ink); padding: 0; font-variant-numeric: tabular-nums; -moz-appearance: textfield; }
.vh-qty input::-webkit-inner-spin-button, .vh-qty input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.vh-qty input:focus-visible { outline-offset: -2px; }
.vh-qty input[aria-invalid="true"] { background: #FFF1F1; }
.vh-calc__plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 22px; padding-top: 8px; }
.vh-plan { position: relative; display: flex; flex-direction: column; min-width: 0; background: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius); box-shadow: 4px 4px 0 var(--vh-lavender); padding: 24px 24px 22px; }
.vh-plan--annual { box-shadow: 4px 4px 0 var(--vh-violet); }
.vh-plan__badge { position: absolute; top: -13px; right: 16px; background: var(--vh-violet); color: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 4px 9px; font: 400 11px var(--vh-mono); letter-spacing: 0.1em; text-transform: uppercase; }
.vh-plan__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; font: 600 17px var(--vh-sans); }
.vh-plan__save { font: 400 11.5px var(--vh-mono); letter-spacing: 0.04em; background: var(--vh-lime); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 3px 8px; }
.vh-plan__price { margin-top: 14px; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.vh-plan__amount { font: 500 clamp(40px, 4.2vw, 52px)/1 var(--vh-sans); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; min-height: 1em; }
.vh-plan__per { font-size: 15px; color: var(--vh-muted); }
.vh-plan__line { margin: 8px 0 0; font-size: 14px; color: var(--vh-muted); }
.vh-plan__line strong { font-weight: 600; color: var(--vh-ink); }
.vh-plan__summary { margin-top: 16px; background: var(--vh-cream); border: var(--vh-border-light); border-radius: var(--vh-radius-sm); padding: 10px 12px; font-size: 13.5px; line-height: 1.45; color: var(--vh-muted); min-height: 42px; }
.vh-plan__cta { margin-top: auto; padding-top: 18px; display: grid; gap: 10px; justify-items: center; }
.vh-plan__cta .wp-block-button, .vh-plan__cta .vh-btn { width: 100%; }
.vh-plan__cta small { font-size: 12.5px; color: var(--vh-muted); }
.vh-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: 600 15px/1 var(--vh-sans); text-decoration: none; border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 14px 18px; cursor: pointer; }
.vh-btn--primary { color: #fff; background: var(--vh-violet); box-shadow: 4px 4px 0 var(--vh-ink); }
.vh-btn--primary:hover { background: var(--vh-violet-dark); color: #fff; }
.vh-btn--secondary { color: var(--vh-ink); background: var(--vh-surface); box-shadow: 4px 4px 0 var(--vh-lavender); }
.vh-btn--secondary:hover { box-shadow: 4px 4px 0 var(--vh-violet); color: var(--vh-ink); }
.vh-btn--small { padding: 13px 18px; box-shadow: 3px 3px 0 var(--vh-ink); }
.vh-btn--small.vh-btn--secondary { box-shadow: 3px 3px 0 var(--vh-lavender); }
.vh-btn--text { border: 0; padding: 13px 6px; color: var(--vh-violet-dark); background: transparent; }
.vh-btn--text:hover { text-decoration: underline; }
.vh-calc__foot { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; color: var(--vh-muted); }
.vh-calc__noscript { margin-top: 12px; }
.vh-calc__noscript button { font: 600 14px/1 var(--vh-sans); color: var(--vh-ink); background: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 10px 14px; box-shadow: 3px 3px 0 var(--vh-lavender); cursor: pointer; }
.vh-calc__error { font-family: var(--vh-mono); font-size: 12px; letter-spacing: 0.04em; color: #8A1C1C; margin: 6px 0 0; }

/* ------------------------------------------------------------------ */
/* Integration directory and single                                    */
/* ------------------------------------------------------------------ */
.vh-directory__top { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px 32px; align-items: center; }
.vh-directory__top .vh-result-count { justify-self: end; }
.vh-directory__filters { margin-top: 20px; padding-bottom: 24px; border-bottom: var(--vh-border); }
.vh-directory__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px; margin: 24px 0 0; padding: 0; list-style: none; }
.vh-int-card { background: var(--vh-cream); border: var(--vh-border); border-radius: var(--vh-radius); box-shadow: 4px 4px 0 var(--vh-lavender); padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.has-cream-background-color .vh-int-card, body > .vh-int-card { background: var(--vh-surface); }
.vh-int-card:hover { box-shadow: 4px 4px 0 var(--vh-violet); }
.vh-int-card__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.vh-logo-box { width: 44px; height: 44px; flex: none; display: grid; place-items: center; background: #fff; border: var(--vh-border); border-radius: var(--vh-radius-sm); }
.vh-logo-box img { width: 26px; height: 26px; object-fit: contain; display: block; }
.vh-logo-box--lg { width: 56px; height: 56px; box-shadow: 3px 3px 0 var(--vh-lavender); }
.vh-logo-box--lg img { width: 32px; height: 32px; }
.vh-logo-box--sm { width: 30px; height: 30px; }
.vh-logo-box--sm img { width: 18px; height: 18px; }
.vh-logo-box--placeholder { font-family: var(--vh-mono); font-weight: 500; color: var(--vh-ink); background: var(--vh-lavender); }
.vh-status { display: inline-block; font-family: var(--vh-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 4px 7px; background: var(--vh-surface); color: var(--vh-ink); text-align: right; line-height: 1.3; }
.vh-status--live { background: var(--vh-lime); }
.vh-status--beta { background: var(--vh-lavender); }
.vh-int-card h3, .vh-int-card h2 { font: 600 20px/1.25 var(--vh-sans); margin: 0; }
.vh-int-card h3 a, .vh-int-card h2 a { color: var(--vh-ink); text-decoration: none; }
.vh-int-card__kind { font-family: var(--vh-mono); font-size: 11.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--vh-muted); }
.vh-int-card p { font-size: 15px; line-height: 1.55; color: var(--vh-muted); margin: 0; }
.vh-int-card__more { margin-top: auto; padding-top: 6px; font: 600 15px var(--vh-sans); color: var(--vh-violet-dark); text-decoration: none; }
.vh-int-card__more:hover { text-decoration: underline; }
.vh-directory__empty { margin-top: 24px; }
.vh-directory__empty h3 { font: 500 clamp(22px, 2.4vw, 28px)/1.2 var(--vh-sans); margin: 0; }
.vh-directory__empty p { margin: 10px 0 0; font-size: 16px; line-height: 1.6; color: var(--vh-muted); }
.vh-directory__empty .vh-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.vh-directory__empty--3pl { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 24px 48px; align-items: center; text-align: left; }
.vh-directory__empty--3pl h3 { font-size: clamp(24px, 2.6vw, 32px); }
.vh-directory__empty--3pl .vh-actions { margin-top: 0; }
.vh-directory__empty--search { text-align: center; }
.vh-directory__empty--search .vh-actions { justify-content: center; }

.vh-int-hero { padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(56px, 8vw, 96px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(32px, 5vw, 64px); align-items: center; }
.vh-int-hero__id { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.vh-int-hero h1 { font-size: clamp(38px, 4.8vw, 64px); line-height: 1.06; max-width: 16ch; }
.vh-int-hero__kind { margin-top: 12px; font-family: var(--vh-mono); font-size: 12.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vh-muted); }
.vh-int-hero__summary { margin-top: 22px; font-size: var(--wp--preset--font-size--lg); line-height: 1.6; max-width: 50ch; }
.vh-int-hero .vh-actions, .vh-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.vh-int-hero__card { max-width: 520px; width: 100%; justify-self: end; box-shadow: 6px 6px 0 var(--vh-lavender); }
.vh-int-hero__card .vh-window__body { padding: 20px 22px; }
.vh-sync-diagram { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 12px; text-align: center; }
.vh-sync-diagram__node { border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 14px 10px; font: 600 14px var(--vh-sans); background: var(--vh-cream); display: flex; align-items: center; justify-content: center; gap: 8px; min-width: 0; overflow-wrap: anywhere; }
.vh-sync-diagram__node--hub { background: var(--vh-lavender); }
.vh-sync-diagram__node img { width: 20px; height: 20px; flex: none; }
.vh-sync-diagram__arrow { font-family: var(--vh-mono); font-size: 20px; color: var(--vh-violet); letter-spacing: 0.1em; }
.vh-sync-list { list-style: none; margin: 18px 0 0; padding: 16px 0 0; border-top: var(--vh-border-light); display: grid; gap: 10px; font-size: 15px; }
.vh-sync-list li { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.vh-sync-list li > span:first-child { display: flex; align-items: center; gap: 10px; }
.vh-sync-list li > span:first-child::before { content: "■"; font-family: var(--vh-mono); color: var(--vh-violet); }
.vh-dir-tag { font-family: var(--vh-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--vh-muted); border: 1.5px dashed var(--vh-border-color); border-radius: var(--vh-radius-sm); padding: 3px 7px; white-space: nowrap; }
.vh-dir-tag--in { background: var(--vh-lime); border-style: solid; border-color: var(--vh-ink); color: var(--vh-ink); }
.vh-dir-tag--out { background: var(--vh-lavender); border-style: solid; border-color: var(--vh-ink); color: var(--vh-ink); }
.vh-dir-tag--both { background: var(--vh-cream); border-style: solid; border-color: var(--vh-ink); color: var(--vh-ink); }
.vh-sync-caption { margin-top: 16px; font-family: var(--vh-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--vh-muted); }
.vh-int-section { padding-top: clamp(48px, 6vw, 72px); padding-bottom: clamp(48px, 6vw, 72px); }
.vh-int-section--loose { padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px); }
.vh-int-section--tight { padding-top: clamp(40px, 5vw, 64px); padding-bottom: clamp(40px, 5vw, 64px); }
.vh-two-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 32px 64px; align-items: start; }
.vh-two-col--center { align-items: center; gap: 24px 64px; }
.vh-two-col h2 { font-size: clamp(26px, 3vw, 36px); line-height: 1.2; }
.vh-two-col h2.vh-h2--lg { font-size: var(--wp--preset--font-size--xxl); line-height: 1.15; }
.vh-two-col p.vh-intro { margin-top: 12px; font-size: 15.5px; line-height: 1.55; color: var(--vh-muted); max-width: 44ch; }
.vh-two-col p.vh-body { font-size: 16px; line-height: 1.6; color: var(--vh-muted); max-width: 50ch; }
.vh-sync-table { overflow-x: auto; border: var(--vh-border); border-radius: var(--vh-radius); background: var(--vh-cream); }
.vh-sync-table table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 640px; }
.vh-sync-table th { font-family: var(--vh-mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vh-muted); text-align: left; font-weight: 500; padding: 12px 16px; border-bottom: var(--vh-border); }
.vh-sync-table td { padding: 14px 16px; border-bottom: var(--vh-border-light); color: var(--vh-muted); }
.vh-sync-table td:first-child { font-weight: 600; color: var(--vh-ink); }

/* ------------------------------------------------------------------ */
/* Flow diagram block                                                  */
/* ------------------------------------------------------------------ */
.vh-flow { margin: 0; width: 100%; min-width: 0; }
.vh-flow__root { position: relative; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: clamp(28px, 5vw, 64px) clamp(32px, 6vw, 104px); }
.vh-flow__svg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.vh-flow__col { flex: 1 1 calc((760px - 100%) * 999); min-width: 0; display: grid; gap: 12px; align-content: center; }
.vh-flow__col-head { margin-bottom: 6px; }
.vh-flow__col-head .is-style-vh-eyebrow { margin-bottom: 6px; font-size: 12px; }
.vh-flow__col-head p { margin: 0; font-size: 13.5px; line-height: 1.45; color: var(--vh-muted); }
.vh-flow__node {
	display: flex; align-items: center; gap: 12px; min-height: 54px; width: 100%; padding: 8px 14px;
	background: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius-sm);
	box-shadow: 3px 3px 0 var(--vh-lavender); min-width: 0; font: inherit; color: inherit; text-align: left; cursor: pointer;
}
.vh-flow__node.is-active, .vh-flow__node[aria-pressed="true"] { background: var(--vh-cream); box-shadow: 3px 3px 0 var(--vh-violet); }
.vh-flow__node-text { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.vh-flow__node-name { font: 500 15px/1.2 var(--vh-sans); overflow-wrap: anywhere; }
.vh-flow__node-kind { font-family: var(--vh-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--vh-muted); margin-top: 3px; line-height: 1.3; }
.vh-flow__glyph { width: 30px; height: 30px; flex: none; display: grid; place-items: center; background: var(--vh-lavender); border: var(--vh-border); border-radius: var(--vh-radius-sm); font-family: var(--vh-mono); font-size: 14px; color: var(--vh-ink); }
.vh-flow__hub {
	flex: 0 1 calc((760px - 100%) * 999); min-width: 250px; max-width: 320px; position: relative; z-index: 1;
	background: var(--vh-violet); border: var(--vh-border); border-radius: var(--vh-radius); box-shadow: 6px 6px 0 var(--vh-ink);
	padding: 26px 22px 28px; color: var(--vh-cream); font: inherit; text-align: center; cursor: pointer;
}
.vh-flow__hub.is-active, .vh-flow__hub[aria-pressed="true"] { box-shadow: 6px 6px 0 var(--vh-violet-dark); }
.vh-flow__hub img { display: block; width: 156px; max-width: 100%; height: auto; margin: 0 auto; }
.vh-flow__hub-mods { display: flex; margin-top: 18px; border-top: 1.5px solid var(--vh-cream); padding-top: 14px; flex-wrap: wrap; justify-content: center; gap: 6px 12px; font-family: var(--vh-mono); font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--vh-cream); line-height: 1.3; }
.vh-flow__hub-mods span { white-space: nowrap; }
.vh-flow__hub-tag { position: absolute; left: 50%; bottom: -13px; transform: translateX(-50%); background: var(--vh-lime); color: var(--vh-ink); border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 4px 10px; font-family: var(--vh-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; }
.vh-flow__detail { margin-top: 30px; background: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius); box-shadow: 4px 4px 0 var(--vh-lavender); padding: 18px 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px 36px; align-items: start; min-height: 118px; }
.vh-flow__detail-main { display: flex; gap: 14px; align-items: flex-start; min-width: 0; }
.vh-flow__detail-main .vh-logo-box { width: 40px; height: 40px; }
.vh-flow__detail-main .vh-logo-box img { width: 24px; height: 24px; }
.vh-flow__detail-main .vh-logo-box--hub { background: var(--vh-violet); }
.vh-flow__detail-main .vh-logo-box--hub img { width: 22px; height: auto; }
.vh-flow__detail-kicker { font-family: var(--vh-mono); font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vh-muted); }
.vh-flow__detail-title { font: 600 19px/1.3 var(--vh-sans); margin-top: 4px; }
.vh-flow__detail p { margin: 6px 0 0; font-size: 14.5px; line-height: 1.55; color: var(--vh-muted); max-width: 52ch; }
.vh-flow__detail-link { display: inline-block; margin-top: 10px; font: 600 14.5px var(--vh-sans); color: var(--vh-violet-dark); text-decoration: none; }
.vh-flow__detail-link:hover { text-decoration: underline; }
.vh-flow__items { list-style: none; margin: 0; padding: 0; border-top: var(--vh-border); align-self: stretch; }
.vh-flow__items li { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: var(--vh-border-light); padding: 7px 0; font-size: 14.5px; }
.vh-flow__items .vh-dir-tag { font-size: 10.5px; padding: 2px 7px; }
.vh-flow__legend { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 18px; font-family: var(--vh-mono); font-size: 11.5px; letter-spacing: 0.04em; color: var(--vh-muted); }
.vh-flow__legend span { display: inline-flex; align-items: center; gap: 8px; }
.vh-flow__legend i { width: 7px; height: 7px; background: var(--vh-lime); border: 1.2px solid var(--vh-ink); display: inline-block; }
.vh-flow__foot { margin-top: 28px; padding-top: 18px; border-top: var(--vh-border); font-size: 15px; line-height: 1.55; color: var(--vh-muted); max-width: 62ch; }

/* ------------------------------------------------------------------ */
/* 404                                                                 */
/* ------------------------------------------------------------------ */
.vh-404 { padding-top: clamp(56px, 8vw, 112px); padding-bottom: clamp(64px, 9vw, 120px); gap: clamp(32px, 5vw, 64px) !important; align-items: center; }
.vh-404__links { gap: 8px !important; max-width: 560px; margin-top: 32px !important; }
.vh-404__links .wp-block-button { margin: 0; }
.vh-404__links .wp-block-button__link { width: 100%; justify-content: space-between; font-size: 15px; padding: 12px 14px; box-shadow: none; background: var(--vh-surface); color: var(--vh-ink); }
.vh-404__links .wp-block-button__link:hover { color: var(--vh-violet-dark); box-shadow: 2px 2px 0 var(--vh-lavender); background: var(--vh-surface); }
.vh-404__visual { position: relative; width: min(100%, 360px); margin: 24px auto; }
.vh-404__visual .vh-window__body { padding: 22px 24px 26px; }
.vh-404__box { position: absolute; right: -24px; bottom: -40px; width: clamp(100px, 36%, 140px); margin: 0 !important; }
.vh-404__rows { display: grid; gap: 10px; font-size: 15px; margin-top: 14px; }
.vh-404__rows > p { display: flex; justify-content: space-between; gap: 12px; text-align: left; }
.vh-404__rows b { font-weight: 500; font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------ */
/* Story (customers)                                                   */
/* ------------------------------------------------------------------ */
.vh-story-hero { padding-top: clamp(40px, 6vw, 72px); padding-bottom: clamp(48px, 6vw, 72px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(32px, 5vw, 64px); align-items: center; }
.vh-story-hero h1 { font-size: clamp(34px, 4.4vw, 56px); line-height: 1.08; max-width: 18ch; }
.vh-story-hero__logo { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.vh-story-hero__logo img { max-height: 44px; width: auto; }
.vh-story-hero dl { margin: 28px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 16px; border-top: var(--vh-border); padding-top: 18px; }
.vh-story-hero dt { font-family: var(--vh-mono); font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vh-muted); }
.vh-story-hero dd { margin: 6px 0 0; font: 600 16px var(--vh-sans); }
.vh-story-hero dd a { color: var(--vh-ink); text-decoration: none; }
.vh-quote { margin: 0; background: var(--vh-surface); border: var(--vh-border); border-radius: var(--vh-radius); box-shadow: 6px 6px 0 var(--vh-lavender); padding: clamp(24px, 3vw, 36px); max-width: 520px; width: 100%; justify-self: end; }
.vh-quote::before { content: "“"; display: block; font-family: var(--vh-serif); font-size: 56px; line-height: 0.6; color: var(--vh-violet); margin-bottom: 14px; }
.vh-quote blockquote { margin: 0; border: 0; padding: 0; box-shadow: none; background: transparent; font: 400 clamp(20px, 2vw, 24px)/1.4 var(--vh-serif); font-style: italic; color: var(--vh-ink); }
.vh-quote figcaption { margin-top: 18px; font-size: 15px; color: var(--vh-muted); display: flex; align-items: center; gap: 12px; }
.vh-quote figcaption img { width: 36px; height: 36px; border: var(--vh-border); border-radius: var(--vh-radius-sm); object-fit: cover; }
.vh-quote figcaption strong { font-weight: 600; color: var(--vh-ink); }
.vh-result { border: var(--vh-border); border-radius: var(--vh-radius-sm); padding: 12px 14px; background: var(--vh-surface); }
.vh-result__value { font: 500 24px/1.1 var(--vh-sans); }
.vh-result__note { margin-top: 6px; font-family: var(--vh-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--vh-muted); }
.vh-story-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.vh-story-card { display: flex; flex-direction: column; gap: 12px; padding: 24px; }
.vh-story-card h3 { font: 600 20px/1.3 var(--vh-sans); margin: 0; }
.vh-story-card h3 a { color: var(--vh-ink); text-decoration: none; }
.vh-story-card__logo img { max-height: 40px; width: auto; }
.vh-story-card p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--vh-muted); }

/* ------------------------------------------------------------------ */
/* Compare table                                                       */
/* ------------------------------------------------------------------ */
.vh-compare { overflow-x: auto; border: var(--vh-border); border-radius: var(--vh-radius); background: var(--vh-cream); }
.vh-compare table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 720px; }
.vh-compare th { padding: 14px 18px; border-bottom: var(--vh-border); text-align: left; font: 600 15px var(--vh-sans); }
.vh-compare thead th:first-child { font-family: var(--vh-mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vh-muted); font-weight: 500; width: 24%; }
.vh-compare thead th:nth-child(2) { background: var(--vh-lavender); }
.vh-compare tbody th { border-bottom: var(--vh-border-light); vertical-align: top; padding: 16px 18px; }
.vh-compare td { padding: 16px 18px; border-bottom: var(--vh-border-light); vertical-align: top; line-height: 1.5; }
.vh-compare td:first-of-type { background: var(--vh-surface); }

/* ------------------------------------------------------------------ */
/* Editor-only niceties                                                */
/* ------------------------------------------------------------------ */
.editor-styles-wrapper .vh-hero-panel { min-height: 240px; }
.editor-styles-wrapper .vh-flow__root { min-height: 120px; }
