/*
 * Volunteers for Pakistan — child theme styles.
 *
 * Elementor widgets carry the layout, colours and type (linked to Site Settings
 * globals). This file only covers what Elementor's controls cannot express:
 * accent spans inside headings, link arrows, the nav/dropdowns, line-clamps,
 * the carousel, footer form, and small resets. Values come from Figma.
 */

:root {
	--vfp-page: #FEFAF1;
	--vfp-nav: #FAF9EF;
	--vfp-sand: #FAF3E5;
	--vfp-line: #F4E8D4;
	--vfp-ink: #080303;
	--vfp-body: #57423D;
	--vfp-navtext: #3F2E2A;
	--vfp-green: #00491D;
	--vfp-deep: #002C0A;
	--vfp-accentline: #3EA576;
	--vfp-mint: #D2F1DF;
	--vfp-lime: #A1F8A1;
	--vfp-ring: #90CEAC;
	--vfp-night: #000900;
	--vfp-cardnight: #001802;
}

/* ------------------------------------------------------------ base */
html { scroll-behavior: smooth; }
body {
	background: var(--vfp-page);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-optical-sizing: auto;
}
.elementor-widget-text-editor p { margin: 0; }
.elementor-heading-title a, .elementor-widget-text-editor a { color: inherit; }
.vfp-site-header, .vfp-site-footer { display: block; }
img { -webkit-user-drag: none; }

/* Accent words inside headings: <span class="vfp-accent">…</span> */
.vfp-accent { font-style: italic; font-weight: 300; color: var(--vfp-green); }
.vfp-accent--lime { color: var(--vfp-lime); }
.vfp-strong { font-weight: 600; color: var(--vfp-green); }

/* ------------------------------------------------------------ icons (CSS masks) */
.vfp-ico {
	display: inline-block;
	flex: none;
	background: currentColor;
	-webkit-mask: var(--vfp-mask) center / contain no-repeat;
	mask: var(--vfp-mask) center / contain no-repeat;
}
.vfp-ico--search { width: 19px; height: 18px; --vfp-mask: url(../icons/search.svg); }
.vfp-ico--mail { --vfp-mask: url(../icons/mail.svg); }
.vfp-ico--phone { --vfp-mask: url(../icons/phone.svg); }
.vfp-ico--pin { --vfp-mask: url(../icons/map-pin.svg); }

/* Arrow after a Button widget's text: add class "vfp-arrow" to the widget. */
.vfp-arrow .elementor-button-content-wrapper { display: inline-flex; align-items: center; gap: 8px; }
.vfp-arrow .elementor-button-content-wrapper::after {
	content: "";
	width: 15px;
	height: 14px;
	flex: none;
	background: currentColor;
	-webkit-mask: url(../icons/arrow-right.svg) center / contain no-repeat;
	mask: url(../icons/arrow-right.svg) center / contain no-repeat;
}
.vfp-arrow--tight .elementor-button-content-wrapper { gap: 6.4px; }
.elementor-button { transition: background-color .2s, color .2s, border-color .2s, opacity .2s; }

/* Text link look (Button widget with no background). */
.vfp-link .elementor-button { background: transparent; padding: 0; border-radius: 0; }
.vfp-link .elementor-button:hover .elementor-button-text { text-decoration: underline; text-underline-offset: 3px; }

/* Line clamps for card copy that the design truncates with an ellipsis. */
.vfp-clamp-2 > *, .vfp-clamp-3 > *, .vfp-clamp-4 > * { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.vfp-clamp-2 > * { -webkit-line-clamp: 2; }
.vfp-clamp-3 > * { -webkit-line-clamp: 3; }
.vfp-clamp-4 > * { -webkit-line-clamp: 4; }

/* Tag pill over card images (blurred, translucent). */
.vfp-tag {
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.vfp-tag .elementor-heading-title { white-space: nowrap; }

/* Short rules. */
.vfp-rule { display: block; width: 32px; height: 1px; background: var(--vfp-accentline); }
.vfp-tagline-rule { display: block; width: 40px; height: 1px; background: var(--vfp-accentline); }

/* Image widgets filling their box. */
.vfp-cover, .vfp-cover img { display: block; }
.vfp-cover img { width: 100%; object-fit: cover; }

/* Hover lift on cards. */
.vfp-card { transition: transform .25s ease, box-shadow .25s ease; }
.vfp-card:hover { transform: translateY(-2px); box-shadow: 0 18px 45px -18px rgba(17, 40, 27, .22); }

/* ------------------------------------------------------------ carousel */
.vfp-carousel {
	overflow-x: auto !important;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	flex-wrap: nowrap !important;
}
.vfp-carousel::-webkit-scrollbar { display: none; }
.vfp-carousel > .e-con { scroll-snap-align: start; flex-shrink: 0 !important; }

.vfp-round-btn .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--vfp-ring);
	border-radius: 9999px;
	transition: background-color .2s;
	cursor: pointer;
}
.vfp-round-btn .elementor-icon:hover { background: var(--vfp-mint); }
.vfp-round-btn .elementor-icon svg { width: 17px; height: 16px; }

/* Icon in a filled circle (feature cards). */
.vfp-badge .elementor-icon { display: inline-flex; align-items: center; justify-content: center; }

/* ------------------------------------------------------------ header / nav */
.vfp-site-header { position: relative; z-index: 50; }
.vfp-nav__list { display: flex; align-items: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.vfp-nav__list > li { position: relative; }
.vfp-nav__list > li > a {
	position: relative;
	display: flex;
	align-items: center;
	gap: 4px;
	height: 36px;
	padding: 8px 14px;
	border-radius: 6px;
	font-family: Roboto, sans-serif;
	font-size: 13.12px;
	line-height: 19.7px;
	font-weight: 500;
	color: var(--vfp-navtext);
	white-space: nowrap;
	text-decoration: none;
}
.vfp-nav__list > li > a::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 8px;
	height: 1px;
	background: var(--vfp-green);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s ease;
}
.vfp-nav__list > li.menu-item-has-children > a::after { bottom: 2px; }
.vfp-nav__list > li > a:hover::after,
.vfp-nav__list > li.vfp-current > a::after { transform: scaleX(1); }
.vfp-nav__list > li.vfp-current > a { font-weight: 700; color: var(--vfp-deep); }
.vfp-chev {
	width: 12px;
	height: 12px;
	flex: none;
	background: currentColor;
	-webkit-mask: url(../icons/chevron-down.svg) center / contain no-repeat;
	mask: url(../icons/chevron-down.svg) center / contain no-repeat;
	transition: transform .2s;
}
.vfp-nav__list > li:hover > a .vfp-chev,
.vfp-nav__list > li:focus-within > a .vfp-chev { transform: rotate(180deg); }

/* Dropdown panel (Figma: 288 wide, 9 padding, radius 20, 8px below the bar). */
.vfp-nav .sub-menu {
	position: absolute;
	top: 73px;
	left: -1px;
	width: 288px;
	margin: 0;
	padding: 9px;
	list-style: none;
	background: var(--vfp-page);
	border: 1px solid var(--vfp-line);
	border-radius: 20px;
	box-shadow: 0 18px 45px -18px rgba(17, 40, 27, .22);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity .2s, transform .2s, visibility .2s;
}
.vfp-nav .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -40px; height: 40px; }
.vfp-nav__list > li:hover > .sub-menu,
.vfp-nav__list > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.vfp-sub-label {
	padding: 13px 13px 11.5px;
	font-family: Inter, sans-serif;
	font-size: 9.92px;
	line-height: 14.9px;
	font-weight: 600;
	letter-spacing: 1.79px;
	color: #006230;
}
.vfp-nav .sub-menu a {
	display: block;
	padding: 9.5px 13px;
	border-radius: 12px;
	font-family: Roboto, sans-serif;
	font-size: 12.8px;
	line-height: 19.2px;
	font-weight: 400;
	color: var(--vfp-navtext);
	text-decoration: none;
}
.vfp-nav .sub-menu a:hover,
.vfp-nav .sub-menu .current-menu-item > a { background: var(--vfp-sand); color: var(--vfp-deep); }
.vfp-nav .sub-menu strong { font-weight: 800; color: var(--vfp-green); }

/* Search toggle. */
.vfp-search { position: relative; }
.vfp-search__toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 9999px;
	background: transparent;
	color: var(--vfp-navtext);
	cursor: pointer;
}
.vfp-search__toggle:hover, .vfp-search__toggle:focus-visible { background: var(--vfp-sand); color: var(--vfp-deep); }
.vfp-search__form {
	position: absolute;
	top: 52px;
	right: 0;
	width: 280px;
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s, visibility .2s;
}
.vfp-search.is-open .vfp-search__form { opacity: 1; visibility: visible; }
.vfp-search__form input {
	width: 100%;
	height: 46px;
	padding: 13px 17px;
	border: 1px solid var(--vfp-line);
	border-radius: 9999px;
	background: var(--vfp-page);
	font: 400 14px/20px Roboto, sans-serif;
	color: var(--vfp-ink);
	box-shadow: 0 18px 45px -18px rgba(17, 40, 27, .22);
}

/* Hamburger (hidden on desktop). Hello's button:hover pink is overridden. */
.vfp-nav__toggle { display: none; }
.vfp-nav__toggle:hover, .vfp-nav__toggle:focus { background: var(--vfp-sand); border-color: var(--vfp-line); }

/* ------------------------------------------------------------ footer */
.vfp-subscribe { display: flex; gap: 8px; margin: 0; }
.vfp-subscribe input {
	flex: 1 1 auto;
	min-width: 0;
	height: 46px;
	padding: 13px 17px;
	border: 1px solid var(--vfp-green);
	border-radius: 9999px;
	background: var(--vfp-cardnight);
	font: 500 14px/20px Inter, sans-serif;
	color: var(--vfp-page);
	outline: none;
}
.vfp-subscribe input::placeholder { color: var(--vfp-accentline); opacity: 1; }
.vfp-subscribe input:focus { border-color: var(--vfp-accentline); }
.vfp-subscribe button {
	flex: none;
	width: 111px;
	height: 46px;
	padding: 12px 0;
	border: 0;
	border-radius: 9999px;
	background: var(--vfp-lime);
	font: 600 14px/20px Roboto, sans-serif;
	color: var(--vfp-night);
	cursor: pointer;
	transition: opacity .2s;
}
.vfp-subscribe button:hover,
.vfp-subscribe button:focus { background: var(--vfp-lime); color: var(--vfp-night); opacity: .9; }

.vfp-footer-links ul { margin: 0; padding: 0; list-style: none; }
.vfp-footer-links li { padding-top: 4px; }
.vfp-footer-links li + li { margin-top: 12px; }
.vfp-footer-links a { display: block; font: 400 14px/20px Roboto, sans-serif; color: #B6E4CA; text-decoration: none; }
.vfp-footer-links a:hover { color: var(--vfp-lime); }

.vfp-contact-list { margin: 0; padding: 0; list-style: none; }
.vfp-contact-list li { display: flex; gap: 12px; }
.vfp-contact-list li + li { margin-top: 18px; }
.vfp-contact-list .vfp-ico { width: 17px; height: 16px; margin-top: 6px; background: #B6E4CA; }
.vfp-contact-list a, .vfp-contact-list .vfp-contact-text { font: 400 14px/20px Roboto, sans-serif; color: #B6E4CA; text-decoration: none; }
.vfp-contact-list a:hover { color: var(--vfp-lime); }

.vfp-social .elementor-social-icon { border: 1px solid var(--vfp-green); }
.vfp-social .elementor-social-icon svg { width: 15px !important; height: 14px !important; }

/* Decorative line art (exported from Figma) behind dark sections. */
.vfp-deco { position: relative; isolation: isolate; }
.vfp-deco::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image: var(--vfp-deco-img);
	background-repeat: no-repeat;
	background-size: var(--vfp-deco-size, 1440px auto);
	background-position: var(--vfp-deco-pos, left top);
	opacity: var(--vfp-deco-op, .07);
}
.vfp-deco--band { --vfp-deco-img: url(../icons/deco-band.svg); --vfp-deco-op: .07; --vfp-deco-size: 1440px 536px; --vfp-deco-pos: center top; }
.vfp-deco--cta { --vfp-deco-img: url(../icons/deco-cta.svg); --vfp-deco-op: 1; --vfp-deco-size: 485px 581px; --vfp-deco-pos: right top; }
.vfp-deco--footer { --vfp-deco-img: url(../icons/deco-footer.svg); --vfp-deco-op: .07; --vfp-deco-size: 1440px 465px; --vfp-deco-pos: center top; }

/* CTA panel inner glow with Figma's uneven corner radii. */
.vfp-cta-glow::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(71, 147, 86, .1);
	border-radius: 58px 42px 46px 54px;
	pointer-events: none;
}

/* ------------------------------------------------------------ responsive */
@media (max-width: 1239px) {
	.vfp-nav__toggle {
		display: inline-flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		padding: 0 11px;
		border: 1px solid var(--vfp-line);
		border-radius: 9999px;
		background: var(--vfp-page);
		cursor: pointer;
	}
	.vfp-nav__toggle span { display: block; height: 1.5px; background: var(--vfp-deep); transition: transform .2s, opacity .2s; }
	.vfp-nav-open .vfp-nav__toggle span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
	.vfp-nav-open .vfp-nav__toggle span:nth-child(2) { opacity: 0; }
	.vfp-nav-open .vfp-nav__toggle span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

	.vfp-nav {
		position: fixed;
		top: 94px;
		left: 0;
		right: 0;
		bottom: 0;
		padding: 16px 24px 40px;
		overflow-y: auto;
		background: var(--vfp-page);
		border-top: 1px solid var(--vfp-line);
		opacity: 0;
		visibility: hidden;
		transition: opacity .2s, visibility .2s;
	}
	.vfp-nav-open .vfp-nav { opacity: 1; visibility: visible; }
	body.vfp-nav-open { overflow: hidden; }
	.vfp-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.vfp-nav__list > li { border-bottom: 1px solid var(--vfp-line); }
	.vfp-nav__list > li > a { height: auto; padding: 16px 4px; font-size: 16px; line-height: 24px; justify-content: space-between; }
	.vfp-nav__list > li > a::after { display: none; }
	.vfp-nav .sub-menu {
		position: static;
		width: auto;
		padding: 0 0 12px;
		border: 0;
		box-shadow: none;
		background: transparent;
		opacity: 1;
		visibility: visible;
		transform: none;
	}
	.vfp-nav .sub-menu::before, .vfp-sub-label { display: none; }
	.vfp-nav .sub-menu a { font-size: 15px; padding: 10px 12px; }
}

@media (max-width: 767px) {
	.vfp-subscribe { flex-direction: column; }
	.vfp-subscribe button { width: 100%; }
	.vfp-hide-mobile { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Footer logo mark: white disc (44px) behind the transparent logo PNG. */
.vfp-logo-mark img { border-radius: 50%; background: radial-gradient(circle at 50% 50%, #fff 21.5px, transparent 22.5px); }

/* Header helpers. */
.e-con.vfp-autow { --width: auto; width: auto; flex: none; }
.vfp-tools .elementor-shortcode { display: flex; align-items: center; gap: 12px; }
/* Figma's "Support Volunteering" item is centred in a 158px box (8px left pad). */
.vfp-nav__list > li.vfp-tight > a { padding-left: 8px; padding-right: 9px; }
.vfp-nav__list > li.vfp-tight > a::after { left: 8px; right: 9px; }

/* Buttons: no inline line box around the <a> (body line-height would add ~6px). */
.elementor-widget-button .elementor-button-wrapper { display: flex; }
.elementor-widget-button.elementor-align-center .elementor-button-wrapper { justify-content: center; }
.elementor-widget-icon .elementor-icon-wrapper { display: flex; line-height: 0; }
.elementor-widget-html { line-height: 0; }
.elementor-widget-button, .elementor-widget-icon, .elementor-widget-image { line-height: 0; }

/* Header side padding scales from 100px (1440) down to 24px (1240) so the
   full menu fits on laptop widths; below 1240 the hamburger takes over. */
.vfp-header.e-con { --padding-left: clamp(24px, calc((100vw - 1240px) / 2), 100px) !important; --padding-right: clamp(24px, calc((100vw - 1240px) / 2), 100px) !important; }

@media (max-width: 1239px) {
	.vfp-nav__list > li.vfp-tight > a { padding: 16px 4px; }
}
@media (max-width: 767px) {
	.vfp-nav { top: 76px; }
}

/* Inner pages: Figma puts the logo at x60 (Home: x100); the menu stays at x322. */
body:not(.home) .vfp-header.e-con {
	--padding-left: clamp(24px, calc((100vw - 1320px) / 2), 60px) !important;
	--padding-right: clamp(24px, calc((100vw - 1320px) / 2), 60px) !important;
}
@media (min-width: 1240px) {
	.vfp-header .elementor-widget-shortcode:has(.vfp-nav) { margin-left: clamp(24px, calc(100vw - 1372px), 68px) !important; }
	body:not(.home) .vfp-header .elementor-widget-shortcode:has(.vfp-nav) { margin-left: clamp(24px, calc(100vw - 1332px), 108px) !important; }
}

/* Inner-page hero: blurred mint circle (Figma DIV-5: 448px, x1072 y-80, mint 20%, layer blur 64). */
.vfp-blob { overflow: hidden; }
.vfp-blob::before {
	content: "";
	position: absolute;
	top: -174px;
	left: calc(50% + 352px);
	width: 448px;
	height: 448px;
	border-radius: 50%;
	background: rgba(210, 241, 223, .2);
	filter: blur(32px);
	pointer-events: none;
	z-index: 0;
}
.vfp-blob > .e-con-inner { position: relative; z-index: 1; }

/* Location line with a small pin (Spotlight, News). */
.vfp-loc p { display: flex; align-items: center; gap: 4px; }
.vfp-loc p::before {
	content: "";
	width: 15px;
	height: 14px;
	flex: none;
	background: currentColor;
	-webkit-mask: url(../icons/pin-sm.svg) center / contain no-repeat;
	mask: url(../icons/pin-sm.svg) center / contain no-repeat;
}

/* Clip after N lines without an ellipsis (Figma clips overflowing text boxes). */
.vfp-clip-2, .vfp-clip-3, .vfp-clip-4 { overflow: hidden; }
.vfp-clip-2 { max-height: calc(var(--vfp-lh, 21.1px) * 2); }
.vfp-clip-3 { max-height: calc(var(--vfp-lh, 21.1px) * 3); }
.vfp-clip-4 { max-height: calc(var(--vfp-lh, 21.1px) * 4); }

/* ------------------------------------------------------------ opportunities filter */
.vfp-filter { display: flex; flex-direction: column; gap: 16px; }
.vfp-filter__search { position: relative; }
.vfp-filter__search::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 15px;
	width: 17px;
	height: 16px;
	background: var(--vfp-meta, #917A74);
	-webkit-mask: url(../icons/search-sm.svg) center / contain no-repeat;
	mask: url(../icons/search-sm.svg) center / contain no-repeat;
	pointer-events: none;
}
.vfp-filter input[type="search"] {
	width: 100%;
	height: 46px;
	padding: 13px 17px 13px 45px;
	border: 1px solid #EDDEC2;
	border-radius: 9999px;
	background: var(--vfp-page);
	font: 400 14px/20px Roboto, sans-serif;
	color: #110907;
	outline: none;
}
.vfp-filter input[type="search"]::placeholder { font: 500 14px/20px Inter, sans-serif; color: #917A74; opacity: 1; }
.vfp-filter input[type="search"]:focus, .vfp-filter select:focus { border-color: var(--vfp-accentline); }
.vfp-filter__selects { display: flex; flex-wrap: wrap; gap: 12px; }
.vfp-filter select {
	-webkit-appearance: none;
	appearance: none;
	height: 40px;
	padding: 11px 36px 11px 17px;
	border: 1px solid #EDDEC2;
	border-radius: 9999px;
	background: var(--vfp-page) url(../icons/select-chevron.svg) no-repeat right 9px center / 18px 18px;
	font: 400 14px/16px Roboto, sans-serif;
	color: var(--vfp-navtext);
	cursor: pointer;
	outline: none;
}
.vfp-filter select[name="cause"] { width: 145px; }
.vfp-filter select[name="mode"] { width: 117px; }
.vfp-filter select[name="location"] { width: 185px; }
.vfp-opp.is-hidden { display: none !important; }

/* Meta row: icon + text items (location, time, mode). */
.vfp-meta-row p { display: flex; flex-wrap: wrap; align-items: center; column-gap: 8px; row-gap: 2px; margin: 0; }
.vfp-meta-row span { display: inline-flex; align-items: center; gap: 4px; }
.vfp-meta-row span::before {
	content: "";
	width: 12px;
	height: 12px;
	flex: none;
	background: currentColor;
	-webkit-mask: var(--i) center / contain no-repeat;
	mask: var(--i) center / contain no-repeat;
}
.vfp-meta-row .i-pin { --i: url(../icons/meta-pin.svg); }
.vfp-meta-row .i-clock { --i: url(../icons/meta-clock.svg); }
.vfp-meta-row .i-globe { --i: url(../icons/meta-globe.svg); }

/* ------------------------------------------------------------ forms (request / contact) */
.vfp-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.vfp-form__grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; row-gap: 20px; }
.vfp-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.vfp-field--full { grid-column: 1 / -1; }
.vfp-field label { font: 600 12px/16px Inter, sans-serif; letter-spacing: 1.44px; color: var(--vfp-body); }
.vfp-form input, .vfp-form select, .vfp-form textarea {
	width: 100%;
	height: 46px;
	margin: 0;
	padding: 13px 17px;
	border: 1px solid #EDDEC2;
	border-radius: 8px;
	background: var(--vfp-page);
	font: 400 14px/20px Roboto, sans-serif;
	color: #110907;
	outline: none;
	transition: border-color .2s;
}
.vfp-form select {
	-webkit-appearance: none;
	appearance: none;
	height: 44px;
	padding: 13px 40px 13px 17px;
	line-height: 16px;
	background: var(--vfp-page) url(../icons/select-chevron.svg) no-repeat right 12px center / 18px 18px;
	cursor: pointer;
}
.vfp-form textarea { resize: none; }
.vfp-form input::placeholder, .vfp-form textarea::placeholder { font: 500 14px/20px Inter, sans-serif; color: #917A74; opacity: 1; }
.vfp-form input:focus, .vfp-form select:focus, .vfp-form textarea:focus { border-color: var(--vfp-accentline); }
.vfp-form__submit {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	margin-top: 35px;
	padding: 12px 28px;
	border: 0;
	border-radius: 9999px;
	background: var(--vfp-green);
	font: 600 14px/20px Roboto, sans-serif;
	color: var(--vfp-page);
	cursor: pointer;
	transition: background-color .2s;
}
.vfp-form__submit:hover, .vfp-form__submit:focus { background: var(--vfp-deep); color: var(--vfp-page); }
.vfp-form__submit::after {
	content: "";
	width: 15px;
	height: 14px;
	background: currentColor;
	-webkit-mask: url(../icons/arrow-right.svg) center / contain no-repeat;
	mask: url(../icons/arrow-right.svg) center / contain no-repeat;
}
.vfp-form__submit--send::after { -webkit-mask-image: url(../icons/send.svg); mask-image: url(../icons/send.svg); }
.vfp-form__notice { margin-bottom: 20px; padding: 14px 18px; border-radius: 12px; font: 400 14px/20px Roboto, sans-serif; }
.vfp-form__notice--ok { background: var(--vfp-mint); color: var(--vfp-deep); }
.vfp-form__notice--error { background: #FBE3DD; color: #7A1E10; }
.vfp-subscribe__msg { margin: 10px 0 0; font: 400 13px/18px Roboto, sans-serif; color: var(--vfp-lime); }
@media (max-width: 767px) {
	.vfp-form__grid { grid-template-columns: 1fr; }
}
.vfp-rule--green { background: var(--vfp-green); opacity: .7; }
.vfp-badge--sq .elementor-icon { border-radius: 8px !important; }

/* Small location label (News field stories): 12px pin in a 14px slot + 4px gap. */
.vfp-loc2 .elementor-heading-title { display: flex; align-items: center; gap: 4px; }
.vfp-loc2 .elementor-heading-title::before {
	content: "";
	width: 12px;
	height: 12px;
	margin-right: 2px;
	flex: none;
	background: currentColor;
	-webkit-mask: url(../icons/meta-pin.svg) center / contain no-repeat;
	mask: url(../icons/meta-pin.svg) center / contain no-repeat;
}

/* ------------------------------------------------------------ About page */
.vfp-accent--sage { color: #96CE9D; }
.vfp-rule--sage { background: #96CE9D; opacity: .7; }
.vfp-deco--circles { --vfp-deco-img: url(../icons/deco-circles.svg); --vfp-deco-op: .4; --vfp-deco-size: 832px 832px; --vfp-deco-pos: center 203px; }
.vfp-deco--circles::before { z-index: 0; }
.vfp-deco--circles > .e-con-inner { position: relative; z-index: 1; }

/* Strategic framework connectors. */
.vfp-conn { display: flex; flex-direction: column; align-items: center; }
.vfp-conn i { display: block; width: 1px; background: #90CEAC; }
.vfp-conn b { display: block; width: 8px; height: 8px; border-radius: 50%; background: #007B44; }
.vfp-hrule { position: relative; width: 768px; max-width: 100%; height: 12px; margin: 0 auto; }
.vfp-hrule i { position: absolute; top: 6px; height: 1px; background: #90CEAC; }
.vfp-hrule i:nth-of-type(1) { left: 0; width: calc(50% - 14px); }
.vfp-hrule i:nth-of-type(2) { right: 0; width: calc(50% - 14px); }
.vfp-hrule b { position: absolute; border-radius: 50%; background: #3EA576; }
.vfp-hrule b.s { top: 2px; width: 8px; height: 8px; }
.vfp-hrule b.s:first-child { left: 0; }
.vfp-hrule b.s:last-child { right: 0; }
.vfp-hrule b.l { top: 0; left: calc(50% - 6px); width: 12px; height: 12px; }
.vfp-pill-first::first-letter { font-size: 14px; }

/* Leadership tabs. */
.vfp-tabs { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 9999px; background: var(--vfp-sand); }
.vfp-tabs button {
	height: 32px;
	padding: 8px 16px;
	border: 0;
	border-radius: 9999px;
	background: transparent;
	font: 600 12px/16px Roboto, sans-serif;
	color: var(--vfp-body);
	cursor: pointer;
}
.vfp-tabs button:hover, .vfp-tabs button:focus { background: rgba(0, 44, 10, .06); color: var(--vfp-deep); }
.vfp-tabs button[aria-selected="true"] { background: var(--vfp-deep); color: var(--vfp-page); }
.vfp-tabpanel[hidden], .vfp-tabpanel.is-hidden { display: none !important; }
.vfp-team-photo { background: #595858; }

/* Document rows. */
.vfp-docbtn .elementor-button:hover { background: var(--vfp-mint) !important; }
@media (max-width: 767px) {
	.vfp-nobr-m br { display: none; }
}
