/*
 * Static fallbacks. TPVy Global Design System writes the active values as one
 * sanitized :root block at runtime, preserving useful CSS even before PHP runs.
 */
:root {
	--tpvy-color-primary: #1264e5;
	--tpvy-color-ink: #111827;
	--tpvy-color-text: #273244;
	--tpvy-color-muted: #667085;
	--tpvy-color-surface: #ffffff;
	--tpvy-color-surface-alt: #f6f8fb;
	--tpvy-color-border: #e6eaf0;
	--tpvy-color-success: #16803c;
	--tpvy-color-warning: #b54708;
	--tpvy-color-danger: #b42318;
	--tpvy-content-width: 1280px;
	--tpvy-wide-width: 1440px;
	--tpvy-reading-width: 760px;
	--tpvy-space-section: clamp(34px, 6vw, 56px);
	--tpvy-space-inline: clamp(16px, 3vw, 18px);
	--tpvy-block-gap: 16px;
	--tpvy-radius: 0px;
	--tpvy-shadow: 0 10px 30px rgba(17, 24, 39, .08);
	--tpvy-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--tpvy-font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--tpvy-font-size-body: 16px;
	--tpvy-line-height-body: 1.6;
	--tpvy-heading-weight: 700;
	--tpvy-heading-line-height: 1.15;
	--wp--style--global--content-size: 1280px;
	--wp--style--global--wide-size: 1440px;

	/* Fixed rhythm scale: modules can consume these without inventing spacing. */
	--tpvy-space-1: .25rem;
	--tpvy-space-2: .5rem;
	--tpvy-space-3: .75rem;
	--tpvy-space-4: 1rem;
	--tpvy-space-5: 1.5rem;
	--tpvy-space-6: 2rem;
	--tpvy-space-7: 3rem;
	--tpvy-space-8: 5rem;
}

html {
	box-sizing: border-box;
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

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

body {
	margin: 0;
	background: var(--tpvy-color-surface);
	color: var(--tpvy-color-text);
	font-family: var(--tpvy-font-body);
	font-size: var(--tpvy-font-size-body);
	line-height: var(--tpvy-line-height-body);
	text-rendering: optimizeLegibility;
}

img,
picture,
video,
canvas,
svg {
	max-width: 100%;
	height: auto;
}

img {
	display: block;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
[role="button"],
a {
	touch-action: manipulation;
}

a {
	color: var(--tpvy-color-primary);
	text-underline-offset: .18em;
	text-decoration-thickness: .08em;
}

a:hover {
	color: var(--tpvy-color-ink);
	text-decoration-thickness: .13em;
}

:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--tpvy-color-ink);
	font-family: var(--tpvy-font-heading);
	font-weight: var(--tpvy-heading-weight);
	line-height: var(--tpvy-heading-line-height);
	text-wrap: balance;
}

p,
li {
	text-wrap: pretty;
}

.tpvy-skip-link {
	position: fixed;
	top: 1rem;
	left: 1rem;
	z-index: 99999;
	padding: .75rem 1rem;
	background: var(--tpvy-color-ink);
	color: #fff;
	transform: translateY(-200%);
	transition: transform .15s ease;
}

.tpvy-skip-link:focus {
	transform: translateY(0);
}


/* Shared layout primitives. */
.tpvy-container {
	width: min(100%, var(--tpvy-content-width));
	margin-inline: auto;
	padding-inline: var(--tpvy-space-inline);
}

.tpvy-wide {
	width: min(100%, var(--tpvy-wide-width));
	margin-inline: auto;
	padding-inline: var(--tpvy-space-inline);
}

.tpvy-main {
	min-height: 50vh;
}

.tpvy-main > .wp-block-post-content,
.tpvy-main > .wp-block-query,
.tpvy-main > .wp-block-group {
	margin-block-start: 0;
}

.tpvy-prose {
	max-width: var(--tpvy-reading-width);
	margin-inline: auto;
	padding-inline: var(--tpvy-space-inline);
}

.tpvy-section {
	padding-block: var(--tpvy-space-section);
}

.tpvy-stack > * + * {
	margin-block-start: var(--tpvy-block-gap);
}

.wp-site-blocks {
	padding: 0;
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

.wp-block-button__link,
.wp-element-button {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .75rem 1.1rem;
	border-radius: var(--tpvy-radius);
}

.tpvy-empty-state {
	max-width: 720px;
	margin: 0 auto;
	padding: var(--tpvy-space-section) var(--tpvy-space-inline);
	text-align: center;
}

/* Accessibility preference belongs to the always-loaded base. */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

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

/* --------------------------------------------------------------------------
 * TPVy Theme 1.0.9 — Core Web Vitals helpers
 * Opt-in utilities: never apply below-fold rendering containment to Hero/LCP.
 * -------------------------------------------------------------------------- */
html {
	scrollbar-gutter: stable;
}

.tpvy-cwv-below-fold {
	content-visibility: auto;
	contain-intrinsic-size: auto 720px;
}

.tpvy-cwv-ratio {
	aspect-ratio: var(--tpvy-cwv-ratio, 16 / 9);
	overflow: clip;
}

.tpvy-cwv-ratio > img,
.tpvy-cwv-ratio > picture,
.tpvy-cwv-ratio > video,
.tpvy-cwv-ratio > iframe {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* TPVy Theme 1.3.2.2 · Visual global Header/Footer modules */
.tpvy-visual-global-part{width:100%;position:relative;z-index:20}
.tpvy-visual-global-header{background:var(--tpvy-color-surface,#fff)}
.tpvy-dynamic-logo{width:100%}.tpvy-dynamic-logo .custom-logo-link{display:inline-flex;max-width:var(--tpvy-dynamic-logo-width,160px)}.tpvy-dynamic-logo .custom-logo{display:block;width:100%;height:auto;max-width:var(--tpvy-dynamic-logo-width,160px)}
.tpvy-dynamic-logo__placeholder{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:36px;border:1px dashed var(--tpvy-color-border,#d7dce5);font-size:12px;font-weight:800;letter-spacing:.08em}
.tpvy-dynamic-site-title{margin:0}.tpvy-dynamic-site-title a{color:inherit;text-decoration:none}
.tpvy-dynamic-menu{width:100%;font-size:var(--tpvy-dynamic-menu-size,15px);font-weight:var(--tpvy-dynamic-menu-weight,600)}
.tpvy-dynamic-menu ul,.tpvy-dynamic-menu .wp-block-navigation__container{list-style:none;margin:0;padding:0;display:flex;gap:var(--tpvy-dynamic-menu-gap,24px);align-items:center;justify-content:flex-start;flex-wrap:wrap}
.tpvy-dynamic-menu.is-center ul,.tpvy-dynamic-menu.is-center .wp-block-navigation__container{justify-content:center}.tpvy-dynamic-menu.is-right ul,.tpvy-dynamic-menu.is-right .wp-block-navigation__container{justify-content:flex-end}
.tpvy-dynamic-menu.is-vertical ul,.tpvy-dynamic-menu.is-vertical .wp-block-navigation__container{flex-direction:column;align-items:flex-start}.tpvy-dynamic-menu.is-vertical.is-center ul{align-items:center}.tpvy-dynamic-menu.is-vertical.is-right ul{align-items:flex-end}
.tpvy-dynamic-menu a{color:inherit;text-decoration:none}.tpvy-dynamic-menu a:hover{text-decoration:underline;text-underline-offset:.22em}
.tpvy-dynamic-header-actions{display:flex;align-items:center;width:100%}.tpvy-dynamic-header-actions.is-center{justify-content:center}.tpvy-dynamic-header-actions.is-right{justify-content:flex-end}.tpvy-dynamic-header-actions .tpvy-header-actions{margin-left:0}
.tpvy-dynamic-copyright{color:var(--tpvy-color-muted,#677289)}
@media(max-width:767px){.tpvy-dynamic-menu.is-horizontal ul,.tpvy-dynamic-menu.is-horizontal .wp-block-navigation__container{gap:12px}.tpvy-visual-global-header .tpvy-builder-grid{row-gap:12px}}
