/*
 * Variable covers Regular (≤400). Static Medium/Bold keep 500/700 so
 * font-weight:400 is truly lighter — without this, 400 silently mapped to Medium.
 */
@font-face {
	font-family: "Pliant";
	src: url("../fonts/pliant/Pliant-Variable.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 100 400;
}

@font-face {
	font-family: "Pliant";
	src: url("../fonts/pliant/Pliant-Medium.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 500;
}

@font-face {
	font-family: "Pliant";
	src: url("../fonts/pliant/Pliant-Bold.woff2") format("woff2");
	font-display: swap;
	font-style: normal;
	font-weight: 700;
}

@font-face {
	font-family: "Pliant";
	src: url("../fonts/pliant/Pliant-Italic-Variable.woff2") format("woff2");
	font-display: swap;
	font-style: italic;
	font-weight: 500 700;
}

:root {
	--vf-font-family: "Pliant", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--vf-brand-ink: #19241A;
	--vf-mobile-header-height: 72px;
	/* Section headings — match homepage h2 (e77e32c) */
	--vf-heading-color: #2F3930;
	--vf-heading-weight: 500;
	--vf-heading-tracking: -0.02em;
	--vf-heading-leading: 1.12;
}

/*
 * Shared section-heading look (Pliant 500, soft dark green).
 * Elementor: soft typography only (no forced color — dark heroes keep theirs).
 * VF blocks: color included; dark sections override below.
 */
.elementor-widget-heading .elementor-heading-title,
.vf-project-single__section-title,
.vf-project-single__title,
.vf-projects-archive__title,
.vf-light-people__title,
.vf-join-cards__title,
.vf-story-variant__quote {
	font-family: var(--vf-font-family) !important;
	font-weight: var(--vf-heading-weight) !important;
	letter-spacing: var(--vf-heading-tracking);
	line-height: var(--vf-heading-leading);
}

.vf-project-single__section-title,
.vf-project-single__title,
.vf-projects-archive__title,
.vf-join-cards__title {
	color: var(--vf-heading-color) !important;
}

.vf-light-people__title,
.vf-project-single__section--dark .vf-project-single__section-title {
	color: rgba(241, 239, 230, 0.9) !important;
}

/*
 * Kill Hello Elementor reset.css pink (#c36) focus/hover bleed and browser
 * focus rings on buttons. Keep intentional design borders (e.g. outline CTAs).
 */
button:focus,
button:focus-visible,
[type="button"]:focus,
[type="button"]:focus-visible,
[type="submit"]:focus,
[type="submit"]:focus-visible,
[type="reset"]:focus,
[type="reset"]:focus-visible,
a.elementor-button:focus,
a.elementor-button:focus-visible,
a.elementor-button-link:focus,
a.elementor-button-link:focus-visible,
.elementor-button:focus,
.elementor-button:focus-visible,
.elementor-button-link:focus,
.elementor-button-link:focus-visible,
.vf-join-cards__button:focus,
.vf-join-cards__button:focus-visible,
.vf-project-card__button:focus,
.vf-project-card__button:focus-visible,
.vf-donation-modal__submit:focus,
.vf-donation-modal__submit:focus-visible,
.vf-donation-modal__close:focus,
.vf-donation-modal__close:focus-visible,
.vf-lead-modal__submit:focus,
.vf-lead-modal__submit:focus-visible,
.vf-lead-modal__close:focus,
.vf-lead-modal__close:focus-visible,
.vf-contact-form__submit:focus,
.vf-contact-form__submit:focus-visible,
.bf-support:focus,
.bf-support:focus-visible,
.bf-mobile-support:focus,
.bf-mobile-support:focus-visible,
.bf-burger:focus,
.bf-burger:focus-visible,
.bf-nav a:focus,
.bf-nav a:focus-visible,
.bf-mobile-menu a:focus,
.bf-mobile-menu a:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

body {
	color: var(--vf-brand-ink);
	font-family: var(--vf-font-family);
	font-weight: 500;
}

/* Ordinary archive intro copy follows the custom-project body rhythm. */
.vf-projects-archive .vf-projects-archive__intro {
	line-height: 1.52;
}

/* Custom VF blocks keep Pliant; Elementor widgets keep their own typography. */
.vf-projects,
.vf-projects *,
.vf-join-cards,
.vf-join-cards *,
.vf-light-people,
.vf-light-people *,
.vf-site-footer,
.vf-site-footer *,
.vf-contact-form-wrap,
.vf-contact-form-wrap *,
.bf-header,
.bf-header * {
	font-family: var(--vf-font-family);
}

.vf-project-card__title,
.vf-project-card__title a {
	font-weight: 500;
}

.vf-project-card__amount {
	font-weight: 500;
}

.vf-project-card__goal {
	font-weight: 400;
}

.vf-project-card__description {
	font-weight: 400;
}

.e-d6a47f4-bc72da6 {
	display: none !important;
}

.elementor-9 .elementor-element-d91c8ec.vf-projects-section-is-empty {
	display: none !important;
}

/*
 * Homepage section «Проєкти, які змінюють життя» (d91c8ec) —
 * Match single-project related-head: copy left, underlined link right;
 * ≤900px stacks title → subtitle → link.
 * Header row: 3ba8837 | copy: 59f0ed5 | link: e3a5f4c
 *
 * Homepage section «Основні проєкти на зараз» (7bd7c56) —
 * Header: 15598be — title + lead stacked left, «Подивитись всі» right.
 */
.elementor-9 .elementor-element.elementor-element-d91c8ec {
	--row-gap: 32px;
	--column-gap: 32px;
	--gap: 32px 32px;
	overflow: visible !important;
}

.elementor-9 .elementor-element.elementor-element-d91c8ec > .e-con-inner,
.elementor-9 .elementor-element.elementor-element-7bd7c56 > .e-con-inner {
	overflow: visible !important;
}

.elementor-9 .elementor-element.elementor-element-3ba8837 {
	--display: flex;
	--flex-direction: row;
	--flex-wrap: nowrap;
	--flex-wrap-mobile: nowrap;
	--align-items: center;
	--justify-content: space-between;
	--gap: 16px 24px;
	--row-gap: 16px;
	--column-gap: 24px;
}

.elementor-9 .elementor-element.elementor-element-59f0ed5 {
	--width: auto;
	--row-gap: 8px;
	--column-gap: 0px;
	--gap: 8px 0px;
	width: auto !important;
	flex: 1 1 auto;
	min-width: 0;
	max-width: 100%;
}

/* Homepage section heads: «Реалізовані…» keeps 42px; «Там, де ми…»
 * matches .vf-light-people__title (clamp → ~32px / ~35px line box). */
.elementor-9 .elementor-element.elementor-element-e77e32c .elementor-heading-title,
.elementor-9 .elementor-element.elementor-element-7f46d20 .elementor-heading-title {
	color: #19241a !important;
	font-family: var(--vf-font-family) !important;
	font-weight: 500 !important;
	font-size: 42px !important;
	line-height: 1.12 !important;
	letter-spacing: var(--vf-heading-tracking, -0.02em);
	text-wrap: balance;
	margin: 0 !important;
}

.elementor-9 .elementor-element.elementor-element-7f46d20 .elementor-heading-title {
	font-size: clamp(26px, 3vw, 32px) !important;
}

.elementor-9 .elementor-element.elementor-element-153f648,
.elementor-9 .elementor-element.elementor-element-55a084e,
.elementor-9 .elementor-element.elementor-element-a7121fa {
	font-family: var(--vf-font-family) !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	color: rgba(25, 36, 26, 0.55) !important;
}

.elementor-9 .elementor-element.elementor-element-153f648 p,
.elementor-9 .elementor-element.elementor-element-55a084e p,
.elementor-9 .elementor-element.elementor-element-a7121fa p {
	margin: 0;
	color: inherit !important;
}

@media (min-width: 901px) {
	/*
	 * Same composition as 3ba8837: title + lead stacked left,
	 * «Подивитись всі» right, vertically centered to the copy block.
	 */
	.elementor-9 .elementor-element.elementor-element-15598be {
		--display: grid;
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto auto;
		column-gap: 24px;
		row-gap: 10px;
		align-items: center;
		width: 100%;
	}

	.elementor-9 .elementor-element.elementor-element-15598be > .e-con-inner {
		display: contents;
	}

	.elementor-9 .elementor-element.elementor-element-7f46d20 {
		grid-column: 1;
		grid-row: 1;
		width: auto !important;
		max-width: 70%;
		min-width: 0;
	}

	.elementor-9 .elementor-element.elementor-element-55a084e {
		grid-column: 1;
		grid-row: 2;
		width: auto !important;
		max-width: 70%;
		min-width: 0;
	}

	.elementor-9 .elementor-element.elementor-element-20f2420 {
		grid-column: 2;
		grid-row: 1 / -1;
		align-self: center;
		justify-self: end;
		width: auto !important;
		max-width: none;
		margin: 0;
	}

	.elementor-9 .elementor-element.elementor-element-e3a5f4c a,
	.elementor-9 .elementor-element.elementor-element-20f2420 a {
		font-family: var(--vf-font-family) !important;
		font-size: 14px !important;
		font-weight: 500 !important;
		line-height: 1.12 !important;
		color: var(--vf-brand-ink, #19241a) !important;
		text-decoration: underline !important;
		text-decoration-thickness: 1px !important;
		text-underline-offset: 0.22em !important;
		text-decoration-color: rgba(23, 37, 28, 0.35) !important;
		white-space: nowrap;
	}
}

@media (max-width: 900px) {
	.elementor-9 .elementor-element.elementor-element-e77e32c .elementor-heading-title {
		font-size: 24px !important;
	}

	.elementor-9 .elementor-element.elementor-element-7f46d20 .elementor-heading-title {
		font-size: clamp(24px, 6.6vw, 28px) !important;
	}
}

/*
 * Homepage manifesto (bc306cf / cf016bb):
 * Mobile ≤900px: cream #f1efe6, left-aligned dark ink, bold title,
 *   stacked paragraphs (no dark band / vertical divider / hairlines).
 * Desktop ≥901px: dark green, 2-col + vertical divider + bottom hairline only
 *   (no top horizontal line).
 *
 * Hero↔manifesto seam:
 * Cause was NOT bc306cf::before (already off). Remaining 1px edge came from
 * transparent hero 0464ba8 over cream body + founders-photo bottom AA against
 * dark manifesto. Kill borders and pull manifesto up 2px to cover the fringe.
 */
.elementor-9 .elementor-element.elementor-element-0464ba8 {
	overflow: hidden !important;
	border: none !important;
	border-bottom: none !important;
	outline: none !important;
	box-shadow: none !important;
	--border-bottom-width: 0px !important;
	--border-block-end-width: 0px !important;
	background-color: #f1efe6 !important;
}

.elementor-9 .elementor-element.elementor-element-bc306cf {
	background-color: #f1efe6 !important;
	background-image: none !important;
	position: relative;
	z-index: 1;
	color: #19241a !important;
	border: none !important;
	border-top: none !important;
	outline: none !important;
	box-shadow: none !important;
	--border-top-width: 0px !important;
	--border-block-start-width: 0px !important;
	--background-overlay: none;
	/* Cover subpixel / image-edge fringe from hero above */
	margin-top: -2px !important;
}

/* No top hairline — Elementor .e-con::before overlay/border channel */
.elementor-9 .elementor-element.elementor-element-bc306cf::before {
	content: none !important;
	display: none !important;
	border: none !important;
	border-block-start-width: 0 !important;
	background: none !important;
}

/* Bottom accent line only (base; desktop restyles color/inset) */
.elementor-9 .elementor-element.elementor-element-bc306cf::after {
	content: "";
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 0;
	top: auto;
	height: 1px;
	background: rgba(25, 36, 26, 0.14);
	pointer-events: none;
	z-index: 1;
}

/* Mobile / default: cream page feel, left stack, no dark band / dividers */
@media (max-width: 900px) {
	.elementor-9 .elementor-element.elementor-element-bc306cf {
		--padding-top: 32px !important;
		--padding-bottom: 28px !important;
		--padding-left: 16px !important;
		--padding-right: 16px !important;
		--gap: 0px !important;
		--row-gap: 0px !important;
		--column-gap: 0px !important;
		padding-top: 32px !important;
		padding-bottom: 28px !important;
		padding-left: 16px !important;
		padding-right: 16px !important;
		background-color: #f1efe6 !important;
		background-image: none !important;
		color: #19241a !important;
	}

	.elementor-9 .elementor-element.elementor-element-bc306cf > .elementor-motion-effects-container > .elementor-motion-effects-layer {
		background-color: #f1efe6 !important;
		background-image: none !important;
	}

	/* No section hairlines on mobile cream band */
	.elementor-9 .elementor-element.elementor-element-bc306cf::after {
		content: none !important;
		display: none !important;
	}

	.elementor-9 .elementor-element.elementor-element-cf016bb {
		display: flex !important;
		flex-direction: column !important;
		--flex-direction: column;
		--display: flex;
		width: 100% !important;
		max-width: 100% !important;
		gap: 0 !important;
		--gap: 0px !important;
		--row-gap: 0px !important;
		--column-gap: 0px !important;
		--padding-top: 0px !important;
		--padding-bottom: 0px !important;
		--padding-left: 0px !important;
		--padding-right: 0px !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	.elementor-9 .elementor-element.elementor-element-cf016bb > .e-con-inner {
		display: flex !important;
		flex-direction: column !important;
		width: 100%;
		gap: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	.elementor-9 .elementor-element.elementor-element-cf016bb::before {
		content: none !important;
		display: none !important;
	}

	.elementor-9 .elementor-element.elementor-element-c4d440d {
		width: 100% !important;
		margin: 0 0 16px !important;
		padding: 0 !important;
		border: none !important;
		border-bottom: none !important;
		text-align: left !important;
	}

	/*
	 * Pliant ships only 500 (Medium) + 700 (Bold). Weight 600 maps to Bold —
	 * keep Medium so the manifesto title stays visibly less heavy.
	 */
	html body .elementor-9 .elementor-element.elementor-element-c4d440d .elementor-heading-title {
		font-family: var(--vf-font-family) !important;
		font-weight: 500 !important;
		font-size: clamp(27px, 7.2vw, 34px) !important;
		line-height: 1.12 !important;
		letter-spacing: var(--vf-heading-tracking, -0.02em);
		color: #19241a !important;
		text-align: left !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	.elementor-9 .elementor-element.elementor-element-4502c67,
	.elementor-9 .elementor-element.elementor-element-786a029 {
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		border: none !important;
		text-align: left !important;
		font-family: var(--vf-font-family) !important;
		font-size: 16px !important;
		line-height: 1.55 !important;
		color: #19241a !important;
		opacity: 1 !important;
		visibility: visible !important;
	}

	/* Body paras: first regular 400, second medium 500 (Pliant has 500/700 only) */
	.elementor-9 .elementor-element.elementor-element-4502c67 {
		font-weight: 400 !important;
		margin-bottom: 14px !important;
	}

	.elementor-9 .elementor-element.elementor-element-786a029 {
		font-weight: 500 !important;
	}

	.elementor-9 .elementor-element.elementor-element-4502c67 .elementor-widget-container,
	.elementor-9 .elementor-element.elementor-element-4502c67 .elementor-widget-container *,
	html body .elementor-9 .elementor-element.elementor-element-4502c67 p:not(#vf-site-paragraph-standard) {
		color: #19241a !important;
		opacity: 1 !important;
		text-align: left !important;
		font-weight: 400 !important;
	}

	.elementor-9 .elementor-element.elementor-element-786a029 .elementor-widget-container,
	.elementor-9 .elementor-element.elementor-element-786a029 .elementor-widget-container *,
	html body .elementor-9 .elementor-element.elementor-element-786a029 p:not(#vf-site-paragraph-standard) {
		color: #19241a !important;
		opacity: 1 !important;
		text-align: left !important;
		font-weight: 500 !important;
	}
}

@media (min-width: 901px) {
	.elementor-9 .elementor-element.elementor-element-bc306cf {
		--content-width: min(1280px, calc(100% - 160px)) !important;
		--padding-top: 72px !important;
		--padding-bottom: 72px !important;
		--padding-left: 80px !important;
		--padding-right: 80px !important;
		--gap: 0px !important;
		--row-gap: 0px !important;
		--column-gap: 0px !important;
		background-color: #19241a !important;
		color: #ebe9d8 !important;
	}

	.elementor-9 .elementor-element.elementor-element-bc306cf > .elementor-motion-effects-container > .elementor-motion-effects-layer {
		background-color: #19241a !important;
		background-image: none !important;
	}

	.elementor-9 .elementor-element.elementor-element-bc306cf::after {
		left: max(40px, calc((100% - 1280px) / 2 + 80px));
		right: max(40px, calc((100% - 1280px) / 2 + 80px));
		background: rgba(235, 233, 216, 0.18);
	}

	.elementor-9 .elementor-element.elementor-element-cf016bb {
		--display: grid;
		display: grid !important;
		grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.62fr);
		grid-template-rows: auto auto;
		column-gap: 0;
		row-gap: clamp(16px, 1.4vw, 22px);
		align-items: start;
		justify-content: stretch;
		--flex-direction: row;
		--flex-wrap: nowrap;
		--flex-wrap-mobile: nowrap;
		--align-items: start;
		--justify-content: stretch;
		--gap: 0px;
		--row-gap: 0px;
		--column-gap: 0px;
		width: 100%;
		position: relative;
	}

	.elementor-9 .elementor-element.elementor-element-cf016bb > .e-con-inner {
		display: contents;
	}

	.elementor-9 .elementor-element.elementor-element-cf016bb > .elementor-element,
	.elementor-9 .elementor-element.elementor-element-cf016bb > .e-con-inner > .elementor-element {
		width: auto !important;
		max-width: none;
		min-width: 0;
		box-sizing: border-box;
	}

	.elementor-9 .elementor-element.elementor-element-cf016bb::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: 38%;
		width: 1px;
		background: rgba(235, 233, 216, 0.28);
		pointer-events: none;
		z-index: 2;
	}

	.elementor-9 .elementor-element.elementor-element-c4d440d {
		grid-column: 1;
		grid-row: 1 / -1;
		align-self: start;
		padding-inline: 0 clamp(28px, 3.2vw, 48px) 0 0;
		width: auto !important;
		max-width: none;
		margin: 0;
		border-bottom: none !important;
		text-align: left !important;
		animation: none;
	}

	/* Medium only — 600+ resolves to Pliant Bold (700) */
	html body .elementor-9 .elementor-element.elementor-element-c4d440d .elementor-heading-title {
		font-family: var(--vf-font-family) !important;
		font-weight: 500 !important;
		font-size: clamp(33px, 2.95vw, 45px) !important;
		line-height: 1.06 !important;
		letter-spacing: var(--vf-heading-tracking, -0.02em);
		color: #ebe9d8 !important;
		text-align: left !important;
		text-wrap: balance;
	}

	.elementor-9 .elementor-element.elementor-element-4502c67,
	.elementor-9 .elementor-element.elementor-element-786a029 {
		grid-column: 2;
		align-self: start;
		width: auto !important;
		max-width: none;
		margin: 0;
		padding-inline: clamp(28px, 3.2vw, 48px) 0 !important;
		padding-top: 0 !important;
		border: none !important;
		border-inline-start: none !important;
		text-align: left !important;
		font-family: var(--vf-font-family) !important;
		font-size: clamp(17px, 1.35vw, 20px) !important;
		line-height: 1.45 !important;
		color: rgba(235, 233, 216, 0.88) !important;
		animation: none;
	}

	.elementor-9 .elementor-element.elementor-element-4502c67 {
		grid-row: 1;
		font-weight: 400 !important;
	}

	.elementor-9 .elementor-element.elementor-element-786a029 {
		grid-row: 2;
		font-weight: 500 !important;
	}

	.elementor-9 .elementor-element.elementor-element-4502c67 .elementor-widget-container,
	.elementor-9 .elementor-element.elementor-element-786a029 .elementor-widget-container {
		text-align: left !important;
	}

	.elementor-9 .elementor-element.elementor-element-4502c67 .elementor-widget-container,
	.elementor-9 .elementor-element.elementor-element-4502c67 .elementor-widget-container *,
	html body .elementor-9 .elementor-element.elementor-element-4502c67 p:not(#vf-site-paragraph-standard) {
		color: inherit !important;
		text-align: left !important;
		font-weight: 400 !important;
	}

	.elementor-9 .elementor-element.elementor-element-786a029 .elementor-widget-container,
	.elementor-9 .elementor-element.elementor-element-786a029 .elementor-widget-container *,
	html body .elementor-9 .elementor-element.elementor-element-786a029 p:not(#vf-site-paragraph-standard) {
		color: inherit !important;
		text-align: left !important;
		font-weight: 500 !important;
	}
}

/*
 * Subscribe card (9def378): Elementor sets Roboto on heading/text/button.
 * Soft-align to site Pliant (heading 500 / body 400). Sizes/padding from Elementor.
 */
.elementor-element-9def378 .elementor-heading-title {
	font-family: var(--vf-font-family) !important;
	font-weight: var(--vf-heading-weight) !important;
}

.elementor-element-9def378 .elementor-widget-text-editor,
.elementor-element-9def378 .elementor-widget-text-editor .elementor-widget-container {
	font-family: var(--vf-font-family) !important;
	font-weight: 400 !important;
}

.elementor-element-9def378 .elementor-button {
	font-family: var(--vf-font-family) !important;
	font-weight: 500 !important;
}

/* Subscription CTA h2 (43bf507) — Pliant face/weight only; size from Elementor */
.elementor-9 .elementor-element.elementor-element-43bf507 .elementor-heading-title {
	font-family: var(--vf-font-family) !important;
	font-weight: var(--vf-heading-weight) !important;
	letter-spacing: var(--vf-heading-tracking);
	line-height: var(--vf-heading-leading);
	color: var(--vf-heading-color) !important;
}

/* Directions section introduction — accessible, progressively enhanced marquee. */
.elementor-9 .directions-stack {
	/* Card title H2s (Elementor ~32px desktop / ~20px mobile) */
	--vf-direction-title-size: clamp(20px, 2.85vw, 32px);
	/* Sticky ticker: secondary to nav + card titles (~22–24px desktop) */
	--vf-directions-marquee-size: clamp(18px, 1.7vw, 24px);
}

.elementor-9 .directions-stack .directions-section-heading {
	width: 100%;
	margin: 0;
	padding-block: clamp(8px, 0.7vw, 11px);
	overflow: hidden !important;
}

.elementor-9 section#directions.directions-stack {
	overflow: visible !important;
}

/* Sticky marquee under fixed header — desktop + mobile */
.elementor-9 section#directions.directions-stack #directions-heading {
	position: sticky;
	top: var(--vf-mobile-header-height, 72px);
	z-index: 100;
	align-self: stretch;
	background-color: #f1efe6;
}

.elementor-9 .directions-stack .directions-section-heading .elementor-heading-title,
.elementor-9 section#directions.directions-stack #directions-heading .elementor-heading-title {
	font-family: var(--vf-font-family) !important;
	font-size: var(--vf-directions-marquee-size) !important;
	font-weight: 500 !important;
	letter-spacing: 0.01em;
	line-height: 1.15 !important;
	color: #19241a !important;
	opacity: 1 !important;
	text-transform: none;
}

/*
 * Visible ticker lives in nested spans (JS marquee). Keep marquee size
 * independent of card title H2s — do not rely on inheritance alone.
 */
.elementor-9 .directions-stack .directions-section-heading .vf-directions-marquee,
.elementor-9 .directions-stack .directions-section-heading .vf-directions-marquee__track,
.elementor-9 .directions-stack .directions-section-heading .vf-directions-marquee__group,
.elementor-9 .directions-stack .directions-section-heading .vf-directions-marquee__phrase,
.elementor-9 .directions-stack .directions-section-heading .vf-directions-marquee__separator,
.elementor-9 section#directions.directions-stack #directions-heading .vf-directions-marquee,
.elementor-9 section#directions.directions-stack #directions-heading .vf-directions-marquee__track,
.elementor-9 section#directions.directions-stack #directions-heading .vf-directions-marquee__group,
.elementor-9 section#directions.directions-stack #directions-heading .vf-directions-marquee__phrase,
.elementor-9 section#directions.directions-stack #directions-heading .vf-directions-marquee__separator {
	font-family: var(--vf-font-family) !important;
	font-size: var(--vf-directions-marquee-size) !important;
	font-weight: 500 !important;
	letter-spacing: 0.01em !important;
	line-height: 1.15 !important;
	color: #19241a !important;
	opacity: 1 !important;
	text-transform: none !important;
}

.elementor-9 .directions-stack .directions-section-heading.is-marquee-ready .elementor-heading-title {
	position: relative;
	width: 100%;
	max-width: none;
	overflow: hidden;
	white-space: nowrap;
}

.elementor-9 .directions-stack .directions-section-heading.is-marquee-ready .vf-directions-heading__semantic {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.elementor-9 .directions-stack .vf-directions-marquee {
	display: block;
	width: 100%;
}

.elementor-9 .directions-stack .vf-directions-marquee__track {
	display: flex;
	width: max-content;
	align-items: center;
	will-change: transform;
	animation: vf-directions-marquee 22s linear infinite;
	-webkit-font-smoothing: antialiased;
}

.elementor-9 .directions-stack .vf-directions-marquee__group {
	display: flex;
	flex: none;
	align-items: center;
}

.elementor-9 .directions-stack .vf-directions-marquee__separator {
	padding-inline: 0.65em;
}

@keyframes vf-directions-marquee {
	to {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.elementor-9 .directions-stack .directions-section-heading {
		width: min(calc(100% - 48px), 1280px);
		margin-inline: auto;
	}

	.elementor-9 .directions-stack .directions-section-heading.is-marquee-ready .elementor-heading-title {
		max-width: 900px;
		overflow: visible;
		white-space: normal;
		text-wrap: balance;
	}

	.elementor-9 .directions-stack .directions-section-heading.is-marquee-ready .vf-directions-heading__semantic {
		position: static;
		display: block;
		width: auto;
		height: auto;
		padding: 0;
		margin: 0;
		overflow: visible;
		clip: auto;
		white-space: normal;
	}

	.elementor-9 .directions-stack .vf-directions-marquee {
		display: none;
	}
}

/* Direction card headings — larger than the sticky marquee ticker */
.elementor-9 .directions-stack .direction-card .elementor-heading-title {
	font-family: var(--vf-font-family) !important;
	font-weight: var(--vf-heading-weight) !important;
	font-size: var(--vf-direction-title-size) !important;
	letter-spacing: var(--vf-heading-tracking);
	line-height: var(--vf-heading-leading);
	color: var(--vf-heading-color) !important;
}

@media (max-width: 767px) {
	.elementor-9 .directions-stack .direction-card {
		padding-inline: 24px !important;
	}
}

/*
 * Index numbers (01, 02, …) — first heading widget before the title heading only.
 * Avoid matching the title when further heading widgets follow.
 */
.elementor-9 .directions-stack .direction-card .elementor-widget-heading:first-of-type:has(+ .elementor-widget-heading) .elementor-heading-title {
	font-size: clamp(48px, 5.5vw, 68px) !important;
	line-height: 1 !important;
	letter-spacing: -0.02em;
}

/* Dark direction cards (--1 / --3) keep light text on #19241A */
.elementor-9 .directions-stack .direction-card--1 .elementor-heading-title,
.elementor-9 .directions-stack .direction-card--3 .elementor-heading-title {
	color: #F1EFE6 !important;
}

.elementor-9 .elementor-element.elementor-element-a7121fa {
	font-family: var(--vf-font-family) !important;
	font-weight: 400 !important;
	color: rgba(25, 36, 26, 0.55) !important;
	line-height: 1.4;
}

.elementor-9 .elementor-element.elementor-element-a7121fa p {
	margin-block-end: 0;
	color: inherit !important;
}

/*
 * Shared «Подивитись всі» component (single-project related head + homepage).
 * font-size 14px / weight 500 — beats Elementor text-editor Roboto 20px/16px.
 */
a.vf-project-single__related-link,
.vf-project-single__related-link {
	flex: 0 0 auto;
	align-self: center;
	font-family: var(--vf-font-family) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.12 !important;
	color: var(--vf-brand-ink, #19241A) !important;
	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 0.22em !important;
	text-decoration-color: rgba(23, 37, 28, 0.35) !important;
	white-space: nowrap;
	transition: opacity 0.18s ease;
}

a.vf-project-single__related-link:hover,
a.vf-project-single__related-link:focus-visible,
.vf-project-single__related-link:hover,
.vf-project-single__related-link:focus-visible {
	opacity: 0.72;
	color: var(--vf-brand-ink, #19241A) !important;
}

/* Homepage link widgets: layout only — kill Elementor text-editor defaults */
.elementor-9 .elementor-element.elementor-element-e3a5f4c,
.elementor-9 .elementor-element.elementor-element-20f2420 {
	flex: 0 0 auto;
	align-self: center;
	width: auto !important;
	max-width: none;
	padding-left: 0;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	color: inherit !important;
	line-height: inherit;
	white-space: nowrap;
	text-align: start;
}

.elementor-9 .elementor-element.elementor-element-e3a5f4c.elementor-widget-text-editor,
.elementor-9 .elementor-element.elementor-element-20f2420.elementor-widget-text-editor,
.elementor-9 .elementor-element.elementor-element-e3a5f4c .elementor-widget-container,
.elementor-9 .elementor-element.elementor-element-20f2420 .elementor-widget-container {
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	color: inherit !important;
}

.elementor-9 .elementor-element.elementor-element-e3a5f4c p,
.elementor-9 .elementor-element.elementor-element-20f2420 p {
	margin: 0;
	display: contents;
}

@media (max-width: 900px) {
	.elementor-9 .elementor-element.elementor-element-d91c8ec {
		--row-gap: 24px;
		--column-gap: 24px;
		--gap: 24px 24px;
	}

	.elementor-9 .elementor-element.elementor-element-3ba8837,
	.elementor-9 .elementor-element.elementor-element-15598be {
		--display: flex;
		--flex-direction: column;
		--flex-wrap: nowrap;
		--flex-wrap-mobile: nowrap;
		--align-items: flex-start;
		--justify-content: flex-start;
		--gap: 12px;
		--row-gap: 12px;
		--column-gap: 12px;
		display: flex !important;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: flex-start;
		justify-content: flex-start;
		text-align: left;
	}

	.elementor-9 .elementor-element.elementor-element-15598be > .e-con-inner {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		width: 100%;
	}

	.elementor-9 .elementor-element.elementor-element-59f0ed5,
	.elementor-9 .elementor-element.elementor-element-7f46d20,
	.elementor-9 .elementor-element.elementor-element-55a084e {
		--width: 100%;
		width: 100% !important;
		max-width: 100%;
		flex: 0 0 auto;
	}

	.elementor-9 .elementor-element.elementor-element-e3a5f4c,
	.elementor-9 .elementor-element.elementor-element-20f2420 {
		align-self: flex-start;
		margin-left: 0;
		width: auto !important;
		max-width: 100%;
		padding-left: 0;
		text-align: left;
	}

	/* Shared link: left edge when stacked (beats base align-self: center) */
	a.vf-project-single__related-link,
	.vf-project-single__related-link {
		align-self: flex-start;
		text-align: left;
	}
}

.elementor-9 .elementor-element.elementor-element-88eaca6 > .e-con-inner {
	padding-bottom: var(--padding-top) !important;
}

.elementor-9 .elementor-element.elementor-element-1723ab2 p {
	color: rgba(241, 239, 230, 0.65) !important;
}

/*
 * Homepage: hide original Elementor story (8d30222).
 * Kept in DOM for inject anchor; visible replacement is .vf-story-variant.
 */
.elementor-9 .elementor-element.elementor-element-8d30222 {
	display: none !important;
	background-image: none !important;
}

.elementor-9 .elementor-element.elementor-element-8d30222::before,
.elementor-9 .elementor-element.elementor-element-8d30222::after,
.elementor-9 .elementor-element.elementor-element-8d30222 > .elementor-background-overlay,
.elementor-9 .elementor-element.elementor-element-8d30222 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-image: none !important;
}

/*
 * Homepage story (8d30222):
 * Desktop — photo first (left), quote second (right). Faces lead, words follow.
 * Mobile keeps DOM order (quote → full-bleed portrait).
 */
@media (min-width: 768px) {
	.elementor-9 .elementor-element.elementor-element-8d30222 {
		--padding-top: 72px !important;
		--padding-bottom: 72px !important;
	}

	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-0ffc783 {
		--flex-direction: row-reverse;
		flex-direction: row-reverse !important;
		--align-items: center;
		align-items: center !important;
		--gap: 48px 56px;
		--row-gap: 48px;
		--column-gap: 56px;
	}

	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-ec697aa {
		flex: 0 1 46%;
		width: 46% !important;
		max-width: 520px;
		min-width: 0;
	}

	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-446e16a {
		flex: 1 1 0;
		width: auto !important;
		min-width: 0;
		max-width: none;
	}

	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-bbdbdcf,
	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-bbdbdcf > .elementor-widget-container {
		height: 100%;
	}

	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-bbdbdcf img {
		display: block;
		width: 100% !important;
		height: min(68vh, 620px) !important;
		max-width: 100% !important;
		object-fit: cover;
		object-position: center 20%;
	}
}

/* Quote column — editorial rule + signature. */
.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-52f4776 {
	box-sizing: border-box;
	border-left: 3px solid rgba(25, 36, 26, 0.25);
	padding-left: 20px !important;
	max-width: 560px;
}

.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-52f4776 > .e-image-base:first-child {
	margin-bottom: 10px;
	opacity: 0.7;
}

.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-52f4776 > .elementor-element.elementor-element-6e467ab {
	margin-top: 18px;
	font-style: italic;
	text-align: left;
}

@media (min-width: 768px) {
	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-52f4776 > .elementor-element.elementor-element-6e467ab {
		text-align: right;
	}
}

/* Divider between the philosophy/story and current-projects sections. */
.elementor-9 .elementor-element.elementor-element-7bd7c56 {
	position: relative;
	overflow: visible !important;
}

.elementor-9 .elementor-element.elementor-element-7bd7c56::before {
	content: "";
	position: absolute;
	top: -20px;
	left: max(40px, calc((100% - 1200px) / 2));
	right: max(40px, calc((100% - 1200px) / 2));
	width: auto;
	height: 1px;
	background-color: rgba(25, 36, 26, 0.10);
	pointer-events: none;
}

@media (max-width: 767px) {
	.elementor-9 .elementor-element.elementor-element-7bd7c56::before {
		top: 0;
		left: 16px;
		right: 16px;
		width: calc(100% - 32px);
	}
}

@media (max-width: 767px) {
	/* Homepage family portrait: escape only this widget from the content inset. */
	.elementor-9 .elementor-element.elementor-element-8d30222 {
		--padding-top: 0px !important;
	}

	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-bbdbdcf {
		width: 100vw !important;
		max-width: 100vw !important;
		margin-inline: calc(50% - 50vw) !important;
		padding-inline: 0 !important;
	}

	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-bbdbdcf > .elementor-widget-container {
		padding-inline: 0 !important;
	}

	.elementor-9 .elementor-element.elementor-element-8d30222 .elementor-element.elementor-element-bbdbdcf img {
		display: block;
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
	}
}

/* «Наша філософія» — preserve the translucent panel over the section color. */
.elementor-9 .elementor-element.elementor-element-c2cd71b,
.elementor-9 .elementor-element.elementor-element-c2cd71b:not(.elementor-motion-effects-element-type-background),
.elementor-9 .elementor-element.elementor-element-c2cd71b > .elementor-motion-effects-container > .elementor-motion-effects-layer {
	background-color: rgba(207, 203, 186, 0.3) !important;
}

/* Philosophy intro — match the ordinary projects intro paragraph type. */
.elementor-9 .elementor-element.elementor-element-f4a4691 p {
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 24px !important;
}

.elementor-9 .elementor-element.elementor-element-7d3e4fe .elementor-button {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 50px;
	font-size: 16px !important;
}

@supports selector(:has(*)) {
	.elementor-9 .elementor-element-d91c8ec:not(:has(.vf-project-card)) {
		display: none !important;
	}
}

/*
 * Story variation (after 8d30222):
 * Desktop: photo left | copy right (constrained).
 * Mobile: stacked photo → copy (unchanged feel).
 */
.vf-story-variant {
	box-sizing: border-box;
	width: 100%;
	background: #f1efe6;
	color: var(--vf-brand-ink, #19241a);
	font-family: var(--vf-font-family) !important;
}

.vf-story-variant__photo {
	width: 100%;
	line-height: 0;
	overflow: hidden;
}

.vf-story-variant__photo img {
	display: block;
	width: 100%;
	height: min(52vh, 420px);
	object-fit: cover;
	object-position: center 22%;
}

.vf-story-variant__copy {
	padding: clamp(36px, 5vw, 64px) 16px clamp(48px, 6vw, 72px);
	text-align: left !important;
}

/*
 * Force left copy on all breakpoints (incl. mobile).
 * Wins over Elementor/preview text-align:center and margin:auto centering.
 */
html body .vf-story-variant__copy,
html body .vf-story-variant__copy-inner,
html body .vf-story-variant__copy-inner > *,
html body .vf-story-variant__quote,
html body .vf-story-variant__text,
html body .vf-story-variant__philosophy,
html body .vf-story-variant__philosophy-lead,
html body .vf-story-variant__philosophy-note,
html body .vf-story-variant__sign {
	text-align: left !important;
}

.vf-story-variant__copy-inner {
	width: min(100%, 720px);
	margin: 0;
	margin-inline: 0;
	text-align: left !important;
	animation: vf-variant-fade 0.7s ease both;
}

.vf-story-variant__mark {
	display: block;
	width: 23px;
	height: 23px;
	margin: 0 0 14px !important;
	margin-inline: 0 !important;
	opacity: 0.7;
}

.vf-story-variant__quote {
	margin: 0;
	font-family: var(--vf-font-family) !important;
	font-weight: var(--vf-heading-weight, 500) !important;
	font-size: clamp(22px, 2.6vw, 32px) !important;
	line-height: 1.18 !important;
	letter-spacing: var(--vf-heading-tracking, -0.02em);
	color: var(--vf-heading-color, #2f3930) !important;
	text-align: left !important;
	text-wrap: balance;
}

.vf-story-variant__text {
	margin: 18px 0 0;
	font-size: clamp(15px, 1.35vw, 17px) !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: rgba(25, 36, 26, 0.78) !important;
	text-align: left !important;
}

.vf-story-variant__text strong,
.vf-story-variant__text .vf-story-variant__em {
	color: #19241a !important;
	opacity: 1 !important;
	font-weight: 500 !important;
}

.vf-story-variant__philosophy {
	margin: 28px 0 0;
	padding: 18px 18px 16px;
	border-top: 1px solid rgba(25, 36, 26, 0.16);
	border-radius: 4px;
	background: rgba(25, 36, 26, 0.04);
	text-align: left !important;
}

.vf-story-variant__philosophy-lead {
	margin: 0;
	font-family: var(--vf-font-family) !important;
	font-size: clamp(17px, 1.55vw, 20px) !important;
	font-weight: 500 !important;
	line-height: 1.28 !important;
	letter-spacing: -0.015em;
	color: var(--vf-brand-ink, #19241a) !important;
	text-align: left !important;
	text-wrap: balance;
}

.vf-story-variant__philosophy-note {
	margin: 10px 0 0;
	font-size: clamp(14px, 1.2vw, 16px) !important;
	font-weight: 400 !important;
	line-height: 1.45 !important;
	color: rgba(25, 36, 26, 0.68) !important;
	text-align: left !important;
}

.vf-story-variant__sign {
	margin: 22px 0 0;
	font-size: 15px !important;
	font-weight: 500 !important;
	font-style: italic;
	color: var(--vf-brand-ink, #19241a) !important;
	text-align: left !important;
}

@media (min-width: 901px) {
	.vf-story-variant {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: stretch;
		min-height: 0;
	}

	.vf-story-variant__photo {
		min-height: 100%;
	}

	.vf-story-variant__photo img {
		height: 100%;
		min-height: min(80vh, 640px);
		max-height: min(80vh, 720px);
	}

	.vf-story-variant__copy {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		padding: clamp(48px, 5vw, 72px) clamp(40px, 4.5vw, 64px);
		text-align: left !important;
	}

	.vf-story-variant__copy-inner {
		width: 100%;
		max-width: 34em;
		margin: 0;
		margin-inline: 0;
		text-align: left !important;
	}

	.vf-story-variant__mark {
		margin: 0 0 14px !important;
		margin-inline: 0 !important;
	}

	/* Desktop: clearer semi-transparent philosophy underlay */
	.vf-story-variant__philosophy {
		padding: 20px 22px 18px;
		border-radius: 4px;
		background: rgba(25, 36, 26, 0.06);
		border-top: 1px solid rgba(25, 36, 26, 0.16);
	}
}

@keyframes vf-variant-fade {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.vf-story-variant__copy-inner {
		animation: none;
	}
}

.vf-project-card__status,
.vf-project-card__button {
	font-weight: 500;
}

.bf-header {
	background: #F1EFE6 !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
}

.vf-join-cards {
	position: relative;
	box-sizing: border-box;
	padding: clamp(70px, 8vw, 112px) 0;
	background-color: #CFCBBA;
	color: #19241A;
	font-family: var(--vf-font-family) !important;
	overflow: hidden;
}

.vf-join-cards__inner {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 42px);
	width: min(calc(100% - 48px), 1120px);
	margin: 0 auto;
}

.vf-join-cards__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: clamp(250px, 24vw, 330px);
	padding: clamp(32px, 4vw, 56px);
	border: 1px solid rgba(25, 36, 26, 0.12);
	border-radius: 28px;
	background: #F1EFE6;
	color: #19241A;
	text-align: center;
}

.vf-join-cards .vf-join-cards__title {
	max-width: 460px;
	margin: 0;
	font-size: clamp(22px, 2.5vw, 30px) !important;
	font-weight: var(--vf-heading-weight) !important;
	line-height: var(--vf-heading-leading) !important;
}

.vf-join-cards .vf-join-cards__text {
	max-width: 480px;
	margin: 24px 0 0;
	color: #19241A !important;
	font-family: var(--vf-font-family) !important;
	font-size: clamp(15px, 1.45vw, 17px) !important;
	font-weight: 500 !important;
	line-height: 1.18 !important;
}

.vf-join-cards .vf-join-cards__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	box-sizing: border-box;
	width: min(100%, 280px);
	height: 44px;
	min-height: 44px;
	align-self: center;
	margin-top: 34px;
	margin-inline: auto;
	padding: 12px 30px;
	border: 1px solid #17251C;
	border-radius: 999px;
	background: #17251C;
	color: #F1EFE6 !important;
	font-family: var(--vf-font-family) !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	text-decoration: none !important;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	transition:
		background-color 0.18s ease,
		border-color 0.18s ease,
		color 0.18s ease,
		transform 0.18s ease;
}

.vf-join-cards__button:link,
.vf-join-cards__button:visited,
.vf-join-cards__button:active {
	color: #F1EFE6 !important;
}

.vf-join-cards__button:focus {
	/* Defeat reset.css pink (#c36) while mouse-focus lingers after click */
	background: #17251C;
	color: #F1EFE6 !important;
	border-color: #17251C;
	outline: none;
	box-shadow: none;
}

.vf-join-cards__button:hover,
.vf-join-cards__button:focus-visible {
	background: #223429;
	border-color: #223429;
	color: #F1EFE6 !important;
	transform: translateY(-1px);
}

.vf-light-people {
	box-sizing: border-box;
	width: 100%;
	padding: clamp(56px, 7vw, 86px) 0 clamp(60px, 8vw, 98px);
	background: #17251C;
	color: #F1EFE6;
	font-family: var(--vf-font-family) !important;
	overflow: hidden;
}

.vf-light-people,
.vf-light-people * {
	box-sizing: border-box;
}

.vf-light-people__inner {
	width: min(100% - 32px, 1180px);
	margin: 0 auto;
}

.vf-light-people__title {
	margin: 0;
	font-size: clamp(26px, 3vw, 32px);
	text-align: center;
}

.vf-light-people__subtitle {
	max-width: 700px;
	margin: 14px auto 0;
	color: rgba(241, 239, 230, 0.52) !important;
	font-family: var(--vf-font-family) !important;
	font-size: 16px;
	line-height: 1.5;
	font-weight: 400 !important;
	text-align: center;
}

.vf-light-people__cards {
	display: flex;
	gap: clamp(18px, 2.4vw, 28px);
	margin-top: clamp(34px, 4.6vw, 54px);
	/* Extra space so the horizontal scrollbar sits clear of card descriptions */
	padding-bottom: 22px;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-snap-type: x proximity;
	scrollbar-gutter: stable;
	scrollbar-width: thin;
	scrollbar-color: rgba(241, 239, 230, 0.28) transparent;
}

.vf-light-people__cards::-webkit-scrollbar {
	height: 5px;
}

.vf-light-people__cards::-webkit-scrollbar-track {
	background: transparent;
	margin-block: 8px 0;
}

.vf-light-people__cards::-webkit-scrollbar-thumb {
	border-radius: 999px;
	background: rgba(241, 239, 230, 0.24);
}

.vf-light-people__card {
	flex: 0 0 clamp(230px, 22vw, 272px);
	min-width: 0;
	scroll-snap-align: start;
}

.vf-light-people__photo {
	width: 100%;
	aspect-ratio: 1 / 1.04;
	overflow: hidden;
	border-radius: 24px;
	background: #D8D8D2;
}

.vf-light-people__image {
	display: block;
	width: 100% !important;
	height: 100% !important;
	min-height: 100%;
	object-fit: cover !important;
	object-position: center center;
}

.vf-light-people__image--maryna-borys {
	object-position: center 28%;
}

.vf-light-people__image--maryna-romanova {
	object-position: center 22%;
}

.vf-light-people__image--iryna-rysynets {
	object-position: center 38%;
}

.vf-light-people__image--mariana-zahaikevych {
	object-position: center 38%;
}

.vf-light-people__image--yevheniia-stetsenko {
	object-position: center 32%;
}

.vf-light-people__image--iryna-khoroshykh {
	object-position: center 28%;
}

.vf-light-people__image--anna-volodina {
	object-position: center 22%;
}

.vf-light-people__image--nataliia-karpchuk {
	object-position: center 18%;
}

.vf-light-people__image--elvira-fediuchko {
	object-position: center 22%;
}

.vf-light-people__image--milena-otryshko {
	object-position: center 15%;
}

.vf-light-people__image--sofiia-biliichuk {
	object-position: center 18%;
}

.vf-light-people__name {
	margin: 20px 0 0;
	color: rgba(241, 239, 230, 0.86) !important;
	font-family: var(--vf-font-family) !important;
	font-size: clamp(17px, 1.7vw, 20px);
	line-height: 1.25;
	font-weight: 500 !important;
	letter-spacing: -0.01em;
}

.vf-light-people__description {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
	margin: 10px 0 0;
	color: rgba(241, 239, 230, 0.5) !important;
	font-family: var(--vf-font-family) !important;
	font-size: 14px;
	line-height: 1.5;
	font-weight: 400 !important;
}

.vf-light-people__cta {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: clamp(28px, 3vw, 36px);
	text-align: center;
}

.vf-light-people__cta-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: min(100%, 340px);
	min-height: 50px;
	padding: 12px 24px;
	border: 1px solid #F1EFE6;
	border-radius: 999px;
	background: #F1EFE6;
	color: #17251C !important;
	font-family: var(--vf-font-family) !important;
	font-size: 16px;
	font-weight: 500 !important;
	line-height: 1.15;
	text-align: center;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.vf-light-people__cta-button:focus:not(:focus-visible):not(:hover):not(:active) {
	background: #F1EFE6 !important;
	border-color: #F1EFE6 !important;
	color: #17251C !important;
}

.vf-light-people__cta-button:hover,
.vf-light-people__cta-button:focus-visible {
	border-color: #FFFFFF;
	background: #FFFFFF;
	color: #17251C !important;
	transform: translateY(-1px);
}

.vf-light-people__cta-note {
	max-width: 560px;
	margin: 12px auto 0;
	color: rgba(241, 239, 230, 0.62) !important;
	font-family: var(--vf-font-family) !important;
	font-size: 14px;
	font-weight: 500 !important;
	line-height: 1.4;
	text-align: center;
}

@media (max-width: 900px) {
	.vf-light-people {
		padding: 38px 0 42px;
	}

	.vf-light-people__inner {
		width: min(calc(100% - 48px), 440px);
	}

	.vf-light-people__title {
		font-size: clamp(24px, 6.6vw, 28px);
		line-height: 1.1;
	}

	.vf-light-people__subtitle {
		margin-top: 8px;
		font-size: 16px;
		line-height: 1.5;
	}

	.vf-light-people__cards {
		gap: 12px;
		margin-top: 20px;
		padding-bottom: 18px;
	}

	.vf-light-people__card {
		flex-basis: calc((100% - 12px) / 2);
	}

	.vf-light-people__photo {
		aspect-ratio: 4 / 5;
		border-radius: 18px;
	}

	.vf-light-people__name {
		margin-top: 12px;
		font-size: 16px;
		line-height: 1.2;
	}

	.vf-light-people__description {
		display: block;
		margin-top: 6px;
		overflow: visible;
		font-size: 13px;
		line-height: 1.35;
	}

	.vf-light-people__cta {
		margin-top: 28px;
	}

	.vf-light-people__cta-button {
		width: min(100%, 295px);
		min-height: 50px;
		padding: 11px 20px;
	}

	.vf-light-people__cta-note {
		max-width: 340px;
	}
}

@media (max-width: 767px) {
	.vf-light-people__cards {
		margin-right: -24px;
		scroll-behavior: smooth;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.vf-light-people__cards::after {
		content: "";
		flex: 0 0 12px;
	}

	.vf-light-people__cards::-webkit-scrollbar {
		display: none;
	}

	.vf-light-people__card {
		flex-basis: calc((100% - 44px) / 2);
	}

	.vf-light-people__description {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		overflow: hidden;
	}
}

.elementor-element-e36dff8 {
	position: relative;
	background-color: #17251C !important;
	color: #F1EFE6;
	font-family: var(--vf-font-family) !important;
}

.elementor-element-e36dff8::after {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 2;
	width: 80%;
	height: 1px;
	transform: translateX(-50%);
	background: rgba(241, 239, 230, 0.1);
	pointer-events: none;
}

.elementor-element-e36dff8 > .e-con-inner {
	display: grid !important;
	grid-template-columns: minmax(220px, 0.8fr) minmax(240px, 1fr) minmax(280px, 360px);
	gap: clamp(40px, 8vw, 120px);
	align-items: start;
	width: min(calc(100% - 48px), 1280px) !important;
	margin: 0 auto;
	padding: 82px 0 76px !important;
}

.elementor-element-e36dff8 .elementor-element-df7a55d {
	grid-column: 1;
	grid-row: 1;
}

.elementor-element-e36dff8 .elementor-element-3f40112 {
	grid-column: 2;
	grid-row: 1;
}

.elementor-element-e36dff8 .elementor-element-7d031ac img {
	display: block;
	width: auto !important;
	height: 74px !important;
	max-width: 260px !important;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: 0.92;
}

.elementor-element-e36dff8 .elementor-element-82af4ef p {
	color: #F1EFE6 !important;
}

.elementor-element-e36dff8 .elementor-element-233970d p,
.elementor-element-e36dff8 .elementor-element-9f33243 p,
.elementor-element-e36dff8 .elementor-element-c0fca94 p {
	color: rgba(241, 239, 230, 0.58) !important;
}

.elementor-9 .elementor-element-e36dff8 {
	display: none !important;
}

.elementor-9 {
	display: flex;
	flex-direction: column;
}

.elementor-9 > :where(.e-con, .elementor-section, section, footer) {
	width: 100%;
}

/* Homepage major order: hero first, manifesto second, then the rest. */
.elementor-9 > .elementor-element-0464ba8 {
	order: 10;
}

.elementor-9 > .elementor-element-bc306cf {
	order: 20;
}

.elementor-9 > .elementor-element-f485e55 {
	order: 30;
}

.elementor-9 > .elementor-element-01e3c82 {
	order: 40;
}

.elementor-9 > .elementor-element-8d30222 {
	order: 50;
}

.elementor-9 > .vf-story-variant {
	order: 55;
}

.elementor-9 > .elementor-element-7bd7c56 {
	order: 58;
}

.elementor-9 > .vf-light-people {
	order: 60;
}

.elementor-9 > .vf-join-cards {
	order: 70;
}

.elementor-9 > .elementor-element-d91c8ec {
	order: 80;
}

.elementor-9 > .elementor-element-88eaca6 {
	order: 90;
}

.elementor-9 > .vf-site-footer {
	order: 100;
}

.vf-contact-form-wrap {
	grid-column: 3;
	grid-row: 1;
	justify-self: end;
	width: min(100%, 360px);
	color: #F1EFE6;
	font-family: var(--vf-font-family) !important;
}

.vf-contact-form__title {
	margin: 0 0 18px;
	color: #F1EFE6 !important;
	font-family: var(--vf-font-family) !important;
	font-size: clamp(20px, 2vw, 24px);
	line-height: 1.1;
	font-weight: 500 !important;
}

.vf-contact-form {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.vf-contact-form__field {
	box-sizing: border-box;
	display: block;
	width: 100%;
	min-height: 42px;
	padding: 10px 14px;
	border: 1px solid rgba(241, 239, 230, 0.24);
	border-radius: 15px;
	background: rgba(241, 239, 230, 0.06);
	color: #F1EFE6;
	font-family: var(--vf-font-family) !important;
	font-size: 16px;
	font-weight: 500 !important;
	line-height: 1.35;
	outline: none;
	box-shadow: none;
	appearance: none;
}

.vf-contact-form .vf-contact-form__field {
	padding: 10px 14px;
	border-radius: 15px;
}

.vf-contact-form__field::placeholder {
	color: rgba(241, 239, 230, 0.48);
	font-family: var(--vf-font-family) !important;
	font-size: 16px;
	font-weight: 500 !important;
	opacity: 1;
}

.vf-contact-form__field:focus {
	border-color: rgba(241, 239, 230, 0.56);
	background: rgba(241, 239, 230, 0.09);
}

.vf-contact-form__message {
	min-height: 112px;
	resize: none;
}

.vf-contact-form__submit {
	width: 100%;
	min-height: 46px;
	margin-top: 12px;
	border: 0;
	border-radius: 999px;
	background: #5A6157;
	color: #F1EFE6;
	font-family: var(--vf-font-family) !important;
	font-size: 16px;
	font-weight: 500 !important;
	line-height: 1;
	cursor: pointer;
	transition: background-color 160ms ease, transform 160ms ease;
}

.vf-contact-form__submit:focus {
	/* Defeat reset.css pink (#c36) while mouse-focus lingers after click */
	background: #5A6157;
	color: #F1EFE6;
	outline: none;
	box-shadow: none;
}

.vf-contact-form__submit:hover,
.vf-contact-form__submit:focus-visible {
	background: #485044;
	transform: translateY(-1px);
}

.vf-contact-form__status {
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
	color: #17251C;
}

.vf-contact-form__status.is-error {
	color: #9b3b2e;
}

.vf-contact-form__status[hidden] {
	display: none !important;
}

.vf-site-footer {
	position: relative;
	background: #17251C;
	color: #F1EFE6;
	font-family: var(--vf-font-family) !important;
}

.vf-site-footer::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 80%;
	height: 1px;
	transform: translateX(-50%);
	background: rgba(241, 239, 230, 0.1);
	pointer-events: none;
}

.vf-site-footer__inner {
	display: grid;
	grid-template-columns: minmax(180px, 0.7fr) minmax(280px, 1.15fr) minmax(280px, 360px);
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
	width: min(calc(100% - 48px), 1280px);
	margin: 0 auto;
	padding: 64px 0 56px;
}

.vf-site-footer__logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

.vf-site-footer__logo-image {
	display: block;
	width: auto !important;
	height: 56px !important;
	max-width: 200px !important;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: 0.92;
}

.vf-site-footer__contacts {
	display: flex;
	flex-direction: column;
	gap: 0;
	min-width: 0;
}

.vf-site-footer__title {
	margin: 0 0 14px;
	color: rgba(241, 239, 230, 0.82);
	font-size: 20px;
	font-weight: 500 !important;
	line-height: 1.1;
}

.vf-site-footer__contact-stack {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.vf-site-footer__row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 3px;
	margin: 0;
	min-width: 0;
}

.vf-site-footer__label {
	color: rgba(241, 239, 230, 0.38);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 1.2;
}

.vf-site-footer__contacts p,
.vf-site-footer__contacts p a {
	color: rgba(241, 239, 230, 1);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.2;
}

.vf-site-footer__contact-stack a,
.vf-site-footer__phone a,
.vf-site-footer__email a {
	font-weight: 500 !important;
}

.vf-site-footer__email,
.vf-site-footer__email a {
	font-size: 15px;
	line-height: 1.25;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.vf-site-footer__socials-row {
	margin-top: 12px;
}

.vf-site-footer__socials {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	color: rgba(241, 239, 230, 1);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.2;
}

.vf-site-footer__legal {
	margin-top: 20px;
	min-width: 0;
}

.vf-site-footer__legal-heading {
	margin: 0 0 8px;
}

.vf-site-footer__legal-list {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	min-width: 0;
}

.vf-site-footer__legal-list li {
	margin: 0;
	min-width: 0;
	max-width: 100%;
}

.vf-site-footer__legal-list a,
.vf-site-footer__legal-list span {
	box-sizing: border-box;
	max-width: 100%;
	color: rgba(241, 239, 230, 1);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.3;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.vf-site-footer__legal-list a {
	display: inline-flex;
	align-items: center;
	min-height: 0;
	padding: 2px 0;
	font-weight: 500;
}

.vf-site-footer__legal-list span {
	display: block;
}

.vf-site-footer__legal-list li + li {
	margin-top: 6px;
}

.vf-site-footer__legal-list li:has(a) + li {
	margin-top: 2px;
}

.vf-site-footer__contacts a {
	color: rgba(241, 239, 230, 1) !important;
	opacity: 1 !important;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.2s ease, opacity 0.2s ease;
}

.vf-site-footer__contacts a:hover,
.vf-site-footer__contacts a:focus-visible {
	color: rgba(241, 239, 230, 1) !important;
	opacity: 0.78 !important;
}

.vf-site-footer .vf-contact-form-wrap {
	grid-column: auto;
	grid-row: auto;
	justify-self: end;
	width: min(100%, 360px);
}

@media (max-width: 900px) {
	.vf-join-cards {
		padding: 56px 0;
	}

	.vf-join-cards__inner {
		grid-template-columns: 1fr;
		width: calc(100% - 32px);
		gap: 20px;
	}

	.vf-join-cards__card {
		min-height: 0;
		padding: 34px 22px;
		border-radius: 22px;
	}

	.vf-join-cards .vf-join-cards__title {
		font-size: 22px !important;
	}

	.vf-join-cards .vf-join-cards__text {
		margin-top: 18px;
		font-size: 15px !important;
		line-height: 1.2 !important;
	}

	.vf-join-cards .vf-join-cards__button {
		min-height: 44px;
		margin-top: 24px;
		padding: 11px 22px;
		font-size: 15px !important;
	}

	.elementor-element-e36dff8 > .e-con-inner {
		grid-template-columns: 1fr;
		gap: 34px;
		width: calc(100% - 32px) !important;
		padding: 58px 0 56px !important;
	}

	.elementor-element-e36dff8 .elementor-element-df7a55d,
	.elementor-element-e36dff8 .elementor-element-3f40112,
	.vf-contact-form-wrap {
		grid-column: 1;
		grid-row: auto;
		justify-self: stretch;
		width: 100%;
	}

	.vf-contact-form-wrap {
		margin-top: 6px;
	}

	.vf-contact-form__title {
		margin-bottom: 10px;
		font-size: 18px !important;
		line-height: 1.1;
	}

	.vf-contact-form__field {
		min-height: 40px;
		padding: 9px 13px;
		font-size: 16px;
	}

	.vf-contact-form .vf-contact-form__field {
		padding: 9px 13px;
	}

	.vf-contact-form__message {
		min-height: 104px;
	}

	.vf-contact-form__submit {
		min-height: 44px;
		margin-top: 10px;
	}

	.elementor-element-e36dff8 .elementor-element-3f40112 {
		gap: 14px !important;
	}

	.elementor-element-e36dff8 .elementor-element-7d031ac img {
		height: 50px !important;
		max-width: 205px !important;
	}

	.elementor-element-e36dff8 .elementor-element-82af4ef p {
		font-size: 18px !important;
		line-height: 1.1 !important;
	}

	.elementor-element-e36dff8 .elementor-element-233970d p,
	.elementor-element-e36dff8 .elementor-element-9f33243 p,
	.elementor-element-e36dff8 .elementor-element-c0fca94 p {
		font-size: 16px !important;
		line-height: 1.15 !important;
	}

	.vf-site-footer__inner {
		grid-template-columns: 1fr;
		gap: 34px;
		width: min(calc(100% - 48px), 440px);
		padding: 58px 0 56px;
	}

	.vf-site-footer__logo-image {
		height: 50px !important;
		max-width: 205px !important;
	}

	.vf-site-footer__title {
		margin-bottom: 18px;
		font-size: 18px;
		line-height: 1.1;
	}

	.vf-site-footer__contact-stack {
		gap: 12px;
	}

	.vf-site-footer__row {
		gap: 7px;
	}

	.vf-site-footer__label {
		font-size: 11px;
	}

	.vf-site-footer__contacts p,
	.vf-site-footer__contacts p a {
		font-size: 16px;
		line-height: 1.15;
	}

	.vf-site-footer__email,
	.vf-site-footer__email a {
		font-size: 14px;
		line-height: 1.25;
	}

	.vf-site-footer__socials-row {
		margin-top: 16px;
	}

	.vf-site-footer__socials {
		gap: 16px;
		font-size: 16px;
		line-height: 1.15;
	}

	.vf-site-footer__legal {
		margin-top: 34px;
	}

	.vf-site-footer__legal-list a {
		display: inline-flex;
		min-height: 0;
		padding: 4px 0;
	}

	.vf-site-footer .vf-contact-form-wrap {
		justify-self: stretch;
		width: 100%;
		margin-top: 0;
	}
}

/*
 * Desktop hero (0464ba8): restore original Elementor proportions.
 * Logo (ed03f86) and photo (ceb4133) use image_size:full for quality
 * (no elementor/thumbs). CSS only caps display to the original ~400 and
 * ~534 widths so the full PNGs cannot dominate the row.
 * Do not override padding / justify beyond that.
 */
@media (min-width: 901px) {
	.elementor-9 .elementor-element.elementor-element-0464ba8 {
		--container-widget-flex-grow: 0;
		--container-widget-width: auto;
		--container-widget-height: auto;
		--container-widget-align-self: initial;

		justify-content: space-evenly !important;
		align-items: center !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		overflow: hidden !important;
	}

	/* Pattern img#22: fill hero, bleed 2px under manifesto to kill AA edge */
	.elementor-9 .elementor-element.elementor-element-0464ba8 > img.e-image-base.e-37ab690-b2877c2 {
		position: absolute !important;
		inset: 0 0 -2px 0 !important;
		width: 100% !important;
		height: calc(100% + 2px) !important;
		max-width: none !important;
		object-fit: cover !important;
		object-position: center center !important;
		pointer-events: none;
		z-index: 0;
		border: none !important;
		outline: none !important;
		box-shadow: none !important;
	}

	.elementor-9 .elementor-element.elementor-element-0464ba8 > .elementor-element-ed03f86 {
		width: 400px !important;
		max-width: 400px !important;
		flex: 0 0 auto !important;
		position: relative;
		z-index: 1;
	}

	.elementor-9 .elementor-element.elementor-element-0464ba8 > .elementor-element-ed03f86 img {
		display: block !important;
		width: 400px !important;
		max-width: 100% !important;
		height: auto !important;
		object-fit: contain !important;
	}

	.elementor-9 .elementor-element.elementor-element-0464ba8 > .elementor-element-ceb4133 {
		width: 534px !important;
		max-width: 534px !important;
		flex: 0 0 auto !important;
		position: relative;
		z-index: 1;
	}

	.elementor-9 .elementor-element.elementor-element-0464ba8 > .elementor-element-ceb4133 img {
		display: block !important;
		width: 534px !important;
		max-width: 100% !important;
		height: auto !important;
		object-fit: contain !important;
		vertical-align: bottom;
	}
}

@media (max-width: 900px) {
	/*
	 * Fixed mobile hero — same frame on iPhone 8 and tall phones.
	 * Full-viewport height caused head-crop on short screens and
	 * floating gaps when we tried to compensate.
	 */
	.elementor-9 .elementor-element.elementor-element-0464ba8 {
		--vf-hero-height: 560px;
		--min-height: var(--vf-hero-height) !important;
		--margin-top: var(--vf-mobile-header-height) !important;
		--padding-top: 0px !important;
		--padding-bottom: 0px !important;

		position: relative;
		height: var(--vf-hero-height) !important;
		min-height: var(--vf-hero-height) !important;
		max-height: var(--vf-hero-height) !important;
		margin-top: var(--vf-mobile-header-height) !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		overflow: hidden;
	}

	.elementor-9 .elementor-element.elementor-element-0464ba8 > img.e-image-base.e-37ab690-b2877c2,
	.elementor-9 .elementor-element.elementor-element-0464ba8 > .elementor-element-ceb4133 {
		position: absolute !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.elementor-9 .elementor-element.elementor-element-0464ba8 > img.e-image-base.e-37ab690-b2877c2 {
		z-index: 0;
		max-width: none !important;
		object-fit: cover;
		object-position: center center;
		pointer-events: none;
	}

	.elementor-9 .elementor-element.elementor-element-0464ba8 > .elementor-element-ceb4133 {
		display: block !important;
		overflow: visible !important;
		z-index: 1;
	}

	.elementor-9 .elementor-element.elementor-element-0464ba8 > .elementor-element-ceb4133 img {
		display: block;
		position: absolute !important;
		left: 50% !important;
		right: auto !important;
		top: auto !important;
		bottom: 0 !important;
		width: auto !important;
		height: 100% !important;
		/* Wider bleed than 120%; left:50% + translateX centers overflow symmetrically */
		max-width: 132% !important;
		max-height: 100% !important;
		margin: 0 !important;
		/* Slight scale from bottom: keep wide center framing, free a few px at top so Yulia's head isn't clipped */
		transform: translateX(-50%) scale(0.97);
		transform-origin: center bottom;
		object-fit: contain !important;
		object-position: center 5%;
	}

	.elementor-9 .elementor-element.elementor-element-0464ba8 > .elementor-shape-bottom,
	.elementor-9 .elementor-element.elementor-element-0464ba8 > .e-con-inner > .elementor-shape-bottom {
		z-index: 2;
	}
}

/* --------------------------------------------------------------------------
   Buttons: kill focus rings / glows and Hello Elementor pink (#c36) focus.
   Intentional design borders (e.g. 1px outline CTAs) are left untouched.
   -------------------------------------------------------------------------- */
button:focus,
button:focus-visible,
[type="button"]:focus,
[type="button"]:focus-visible,
[type="submit"]:focus,
[type="submit"]:focus-visible,
[type="reset"]:focus,
[type="reset"]:focus-visible,
a.elementor-button:focus,
a.elementor-button:focus-visible,
.elementor-button:focus,
.elementor-button:focus-visible,
.elementor-button-link:focus,
.elementor-button-link:focus-visible,
.elementor-button .elementor-button-link:focus,
.elementor-button .elementor-button-link:focus-visible,
.vf-join-cards__button:focus,
.vf-join-cards__button:focus-visible,
.vf-project-card__button:focus,
.vf-project-card__button:focus-visible,
.vf-contact-form__submit:focus,
.vf-contact-form__submit:focus-visible,
.vf-donation-modal__submit:focus,
.vf-donation-modal__submit:focus-visible,
.vf-lead-modal__submit:focus,
.vf-lead-modal__submit:focus-visible,
.vf-donation-modal__close:focus,
.vf-donation-modal__close:focus-visible,
.vf-lead-modal__close:focus,
.vf-lead-modal__close:focus-visible,
.bf-burger:focus,
.bf-burger:focus-visible {
	outline: none !important;
	outline-offset: 0 !important;
	box-shadow: none !important;
	-webkit-tap-highlight-color: transparent;
}

/* Neutralize Hello reset `button:focus { background:#c36; color:#fff }`
   on sticky mouse :focus (not :focus-visible). Restore resting fills.
   Intentional :hover / :focus-visible styles still apply. */
button:focus:not(:focus-visible):not(:hover):not(:active),
[type="button"]:focus:not(:focus-visible):not(:hover):not(:active),
[type="submit"]:focus:not(:focus-visible):not(:hover):not(:active),
[type="reset"]:focus:not(:focus-visible):not(:hover):not(:active) {
	background-color: transparent !important;
	color: inherit !important;
}

.vf-join-cards__button:focus:not(:focus-visible):not(:hover):not(:active) {
	background: #17251C !important;
	border-color: #17251C !important;
	color: #F1EFE6 !important;
	transform: none;
}

.vf-contact-form__submit:focus:not(:focus-visible):not(:hover):not(:active) {
	background: #5A6157 !important;
	color: #F1EFE6 !important;
	transform: none;
}

.vf-donation-modal__submit:focus:not(:focus-visible):not(:hover):not(:active),
.vf-lead-modal__submit:focus:not(:focus-visible):not(:hover):not(:active) {
	background: #17251C !important;
	color: #F1EFE6 !important;
	transform: none;
}

/* Guest monthly support (/pidtrymka/) — defeat pink/transparent focus */
button.vf-guest__preset:focus:not(:focus-visible):not(:hover):not(:active),
.vf-guest__preset:focus:not(:focus-visible):not(:hover):not(:active) {
	background: rgba(255, 255, 255, 0.55) !important;
	background-color: rgba(255, 255, 255, 0.55) !important;
	color: #17251c !important;
	border-color: rgba(23, 37, 28, 0.14) !important;
}

button.vf-guest__preset.is-active,
button.vf-guest__preset.is-active:focus:not(:focus-visible):not(:hover):not(:active),
button.vf-guest__preset.is-active:focus,
button.vf-guest__preset.is-active:focus-visible,
button.vf-guest__preset.is-active:active,
.vf-guest__preset.is-active:focus:not(:focus-visible):not(:hover):not(:active),
.vf-guest__preset.is-active:focus,
.vf-guest__preset.is-active:focus-visible {
	background: #17251c !important;
	background-color: #17251c !important;
	border-color: #17251c !important;
	color: #f1efe6 !important;
}

button.vf-guest__submit:focus:not(:focus-visible):not(:hover):not(:active),
button.vf-guest__submit:focus,
button.vf-guest__submit:focus-visible,
button.vf-guest__submit:active,
.vf-guest__submit:focus:not(:focus-visible):not(:hover):not(:active),
.vf-guest__submit:focus,
.vf-guest__submit:focus-visible,
.vf-guest__submit:active {
	background: #17251c !important;
	background-color: #17251c !important;
	color: #f1efe6 !important;
	outline: none !important;
	box-shadow: none !important;
}

button.vf-guest__submit:hover,
button.vf-guest__submit:focus-visible,
.vf-guest__submit:hover,
.vf-guest__submit:focus-visible {
	background: #223429 !important;
	background-color: #223429 !important;
	color: #f1efe6 !important;
}

/* Детальніше (outline) — restore idle outline after focus */
.vf-project-card__button:focus:not(:focus-visible):not(:hover):not(:active),
.vf-project-card__button.vf-project-card__button--details:focus:not(:focus-visible):not(:hover):not(:active) {
	background: transparent !important;
	border-color: var(--vf-project-primary) !important;
	color: var(--vf-project-primary) !important;
	transform: none;
}

/* Підтримати (filled) — restore idle fill after focus */
.vf-project-card__button.vf-project-card__button--donate:focus:not(:focus-visible):not(:hover):not(:active) {
	background: var(--vf-project-primary) !important;
	border-color: var(--vf-project-primary) !important;
	color: #F1EFE6 !important;
	transform: none;
}

/* Filled Elementor CTAs keep their own colors; only rings were cleared above. */

/*
 * Sitewide paragraph standard. The inert :not() ID contributes enough
 * specificity to beat Elementor/component paragraph typography while still
 * matching every rendered paragraph.
 */
html body p:not(#vf-site-paragraph-standard) {
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 1.52 !important;
}

/*
 * Subscription CTA (9def378): restore card breathing room + wider inner content.
 * Prior gap:0 on the whole card collapsed logo/headline/body spacing — do not repeat.
 * Card keeps Elementor --gap / --widgets-spacing-row (~20px) for logo/headline/body;
 * note pulls up so button→note visual gap is ~10px.
 * --content-width 100% + 24px side padding widen e-con-inner (was 500px / 40px).
 * Note type smaller than sitewide 16px p; :not(#vf-site-paragraph-standard) beats that rule.
 */
html body .elementor-9 .elementor-element.elementor-element-9def378 {
	--padding-top: 48px !important;
	--padding-bottom: 48px !important;
	/* Wider e-con-inner: drop Elementor 500px content cap; lighter side padding */
	--content-width: 100% !important;
	--padding-left: 24px !important;
	--padding-right: 24px !important;
}

html body .elementor-9 .elementor-element.elementor-element-7d3e4fe {
	--kit-widget-spacing: 0px !important;
	margin-bottom: 0 !important;
	margin-block-end: 0 !important;
	padding-bottom: 0 !important;
}

html body .elementor-9 .elementor-element.elementor-element-c7a5d91 {
	--kit-widget-spacing: 0px !important;
	margin-top: calc(-1 * var(--widgets-spacing-row, 20px) + 10px) !important;
	margin-block-start: calc(-1 * var(--widgets-spacing-row, 20px) + 10px) !important;
	padding-top: 0 !important;
}

html body .elementor-9 .elementor-element.elementor-element-c7a5d91 .elementor-widget-container {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

html body .elementor-9 .elementor-element.elementor-element-c7a5d91 .elementor-heading-title,
html body .elementor-9 .elementor-element.elementor-element-c7a5d91 p,
html body .elementor-9 .elementor-element.elementor-element-c7a5d91 .elementor-widget-container,
html body .elementor-9 .elementor-element.elementor-element-c7a5d91 .elementor-widget-container p,
html body .elementor-9 .elementor-element.elementor-element-c7a5d91 p:not(#vf-site-paragraph-standard),
html body .elementor-9 .elementor-element.elementor-element-c7a5d91 .elementor-widget-container p:not(#vf-site-paragraph-standard) {
	font-size: 12px !important;
	line-height: 1.4 !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/*
 * Manifesto body under bc306cf:
 * 4502c67 — Regular (400); 786a029 — Medium (500). Pliant static faces: 500/700 only.
 * Parent-scoped + !important beats Elementor widget typography and sitewide p 500.
 * Heading c4d440d stays 500.
 */
html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-4502c67,
html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-4502c67 .elementor-widget-container,
html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-4502c67 .elementor-widget-container *,
html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-4502c67 p,
html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-4502c67 p:not(#vf-site-paragraph-standard) {
	font-weight: 400 !important;
}

html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-786a029,
html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-786a029 .elementor-widget-container,
html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-786a029 .elementor-widget-container *,
html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-786a029 p,
html body .elementor-9 .elementor-element.elementor-element-bc306cf .elementor-element.elementor-element-786a029 p:not(#vf-site-paragraph-standard) {
	font-weight: 500 !important;
}

/* -------------------------------------------------------------------------
 * Legal long-form pages (Публічна оферта, privacy, etc.)
 * Cream ground + ink text; readable measure; section hierarchy.
 * ------------------------------------------------------------------------- */
.vf-legal-page {
	--vf-legal-cream: #f1efe6;
	--vf-legal-ink: #17251c;
	--vf-legal-ink-soft: #19241a;
	--vf-legal-muted: #5f655e;
	--vf-legal-rule: rgba(23, 37, 28, 0.12);

	background: var(--vf-legal-cream);
	color: var(--vf-legal-ink-soft);
	font-family: var(--vf-font-family, "Pliant", sans-serif);
	min-height: 60vh;
	padding: 132px 0 72px;
}

.vf-legal-page,
.vf-legal-page * {
	font-family: var(--vf-font-family, "Pliant", sans-serif);
}

.vf-legal-page__article {
	width: min(calc(100% - 48px), 720px);
	margin: 0 auto;
}

.vf-legal-page__header {
	margin: 0 0 40px;
	padding-bottom: 28px;
	border-bottom: 1px solid var(--vf-legal-rule);
}

.vf-legal-page__title {
	margin: 0 0 12px;
	color: var(--vf-heading-color, #2f3930);
	font-size: clamp(32px, 5vw, 48px);
	font-weight: var(--vf-heading-weight, 500);
	line-height: var(--vf-heading-leading, 1.12);
	letter-spacing: var(--vf-heading-tracking, -0.02em);
}

.vf-legal-page__subtitle {
	margin: 0;
	max-width: 36em;
	color: var(--vf-legal-muted);
	font-size: 17px !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
}

.vf-legal-page__body {
	counter-reset: vf-legal-section;
}

.vf-legal-page__section + .vf-legal-page__section {
	margin-top: 36px;
	padding-top: 32px;
	border-top: 1px solid var(--vf-legal-rule);
}

.vf-legal-page__section {
	counter-increment: vf-legal-section;
	counter-reset: vf-legal-clause;
}

.vf-legal-page__section-title {
	display: flex;
	gap: 0.45em;
	align-items: baseline;
	margin: 0 0 18px;
	color: var(--vf-heading-color, #2f3930);
	font-size: clamp(20px, 2.4vw, 24px);
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: -0.015em;
	text-transform: none;
}

.vf-legal-page__section-num {
	flex: 0 0 auto;
	color: var(--vf-legal-ink);
	font-variant-numeric: tabular-nums;
}

.vf-legal-page__section-num::before {
	content: counter(vf-legal-section) ".";
}

.vf-legal-page__clauses {
	margin: 0;
	padding: 0;
	list-style: none;
}

.vf-legal-page__clauses > li {
	position: relative;
	margin: 0 0 16px;
	padding-left: 2.85em;
	counter-increment: vf-legal-clause;
}

.vf-legal-page__clauses > li::before {
	content: counter(vf-legal-section) "." counter(vf-legal-clause) ".";
	position: absolute;
	left: 0;
	top: 0;
	width: 2.5em;
	color: var(--vf-legal-muted);
	font-variant-numeric: tabular-nums;
	font-weight: 500;
	line-height: 1.52;
}

.vf-legal-page__clauses > li > p {
	margin: 0 0 10px;
	color: var(--vf-legal-ink-soft);
}

.vf-legal-page__clauses > li > p:last-child {
	margin-bottom: 0;
}

.vf-legal-page__bullets {
	margin: 8px 0 12px;
	padding: 0 0 0 1.15em;
	color: var(--vf-legal-ink-soft);
}

.vf-legal-page__bullets li {
	margin: 0 0 6px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.52;
}

.vf-legal-page__bullets li:last-child {
	margin-bottom: 0;
}

.vf-legal-page__lead {
	margin: 0 0 28px;
	color: var(--vf-legal-ink-soft);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.55;
}

.vf-legal-page__nested {
	margin: 8px 0 12px;
	padding: 0 0 0 1.25em;
	color: var(--vf-legal-ink-soft);
	list-style: decimal;
}

.vf-legal-page__nested > li {
	margin: 0 0 6px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.52;
}

.vf-legal-page__nested > li:last-child {
	margin-bottom: 0;
}

.vf-legal-page a {
	color: var(--vf-legal-ink);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	text-decoration-color: rgba(23, 37, 28, 0.35);
}

.vf-legal-page a:hover {
	text-decoration-color: var(--vf-legal-ink);
}

.vf-legal-page__contacts {
	margin: 0;
	display: grid;
	gap: 18px;
}

.vf-legal-page__contact-row {
	display: grid;
	gap: 4px;
}

.vf-legal-page__contact-row dt {
	margin: 0;
	color: var(--vf-legal-muted);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.vf-legal-page__contact-row dd {
	margin: 0;
	color: var(--vf-legal-ink-soft);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.45;
}

@media (max-width: 767px) {
	.vf-legal-page {
		padding: calc(var(--vf-mobile-header-height, 72px) + 36px) 0 56px;
	}

	.vf-legal-page__article {
		width: min(calc(100% - 32px), 720px);
	}

	.vf-legal-page__header {
		margin-bottom: 28px;
		padding-bottom: 22px;
	}

	.vf-legal-page__section + .vf-legal-page__section {
		margin-top: 28px;
		padding-top: 24px;
	}

	.vf-legal-page__clauses > li {
		padding-left: 2em;
		margin-bottom: 14px;
	}

	.vf-legal-page__clauses > li::before {
		width: 1.7em;
	}
}
