/*
Theme Name: Further Capital Partners (ACF)
Theme URI: https://furthercapital.ca
Author: Ext. Marketing
Author URI: https://ext-marketing.com
Description: Classic PHP + ACF PRO edition of the Further Capital Partners theme. Every section is editable from the WordPress Admin via ACF PRO field groups and an Options page, with the exact front-end design, animations and scroll behaviour preserved. Requires ACF PRO. PHP 8+.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: further-capital
Tags: custom-menu, featured-images, translation-ready
*/
/*
 * All visual styling lives in assets/css/further.css (enqueued in functions.php)
 * to keep the design identical to the original build. Do not add rules here.
 */
body {
	position: relative !important;
}
footer {
	position: absolute !important;
	bottom: 0 !important;
	z-index: 999 !important;
	left: 0 !important;
	width: 100% !important;
}
/* =====================================================
   Full-screen section snapping
   ===================================================== */
html {
	scroll-behavior: auto;
}
body.fc-snap {
	scroll-snap-type: y mandatory;
}
body.fc-snap .fc-screen {
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

/* -----------------------------------------------------
   Native snapping is the FALLBACK only.

   further.js adds .fc-snap-js to <body> as soon as its own
   snap engine starts (desktop width, motion allowed). That
   engine preventDefaults every wheel event and drives the
   scroll itself, so native snapping has nothing left to do -
   and on a Mac trackpad the two actively fight each other:
   a trackpad gesture is a long live stream of events, and
   while it is still running the browser re-snaps our
   programmatic scroll back to the section the gesture
   started from. The section never changes, which reads as
   "the trackpad does not scroll at all" while a mouse wheel
   - one discrete notch, no live gesture - works fine.

   Without .fc-snap-js (reduced motion, below 1200px, no JS)
   the rules above still give the page its section snapping.
   ----------------------------------------------------- */
body.fc-snap.fc-snap-js {
	scroll-snap-type: none;
}
body.fc-snap.fc-snap-js .fc-screen {
	scroll-snap-align: none;
	scroll-snap-stop: normal;
}
main.wp-block-group {
	background-color: #000;
}
.wp-block-group .fc-screen {
	box-sizing: border-box;
	background-size: cover !important;
	background-color: #000;
}
.wp-block-group .fc-art--wwd-texture:after,
.wp-block-group .fc-art--wwd-cards:after,
.wp-block-group .fc-art--wwd-steps:after,
.wp-block-group .fc-art--wwd-faq:after,
.wp-block-group .fc-art--wwd-cta:after,
.wp-block-group .fc-art::after,
.wp-block-group .fc-legal-art:after {
	display: none;
}
.wp-block-group .fc-art--wwd-texture {
	background-image: url('/wp-content/uploads/2026/08/f1f4ac8faa7fdf1ee2cfadd183c7d760-2.png');
}
.wp-block-group .fc-art--wwd-cards {
	background-image: url('/wp-content/uploads/2026/08/What-We-Do-2.png');
}
.wp-block-group .fc-art--wwd-steps {
	background-image: url('/wp-content/uploads/2026/08/What-We-Do-1-1.png');
}
.wp-block-group .fc-art--wwd-faq {
	background-image: url('/wp-content/uploads/2026/08/What-We-Do-2-1.png');
}
.wp-block-group .fc-art--wwd-cta {
	background-image: url('/wp-content/uploads/2026/08/What-We-Do-3.png');
}
.wp-block-group .fc-art--clients-intro {
	background-image: url('/wp-content/uploads/2026/08/Clients.svg');
}
.wp-block-group .fc-art--team-grid {
	background-image: url('/wp-content/uploads/2026/08/Team.png');
}
.wp-block-group .fc-art--team-cta {
	background-image: url('/wp-content/uploads/2026/08/Team-1.png');
}
.wp-block-group .fc-art--clients-hero {
	background-image: url('/wp-content/uploads/2026/08/Clients-1.png');
}
.wp-block-group .fc-art--clients-table {
	background-image: url('/wp-content/uploads/2026/08/Clients-2.png');
}
.wp-block-group .fc-art--clients-marquee {
	background-image: url('/wp-content/uploads/2026/08/Clients-3.png');
}
.wp-block-group .fc-art--clients-3col {
	background-image: url('/wp-content/uploads/2026/08/Clients-4.png');
}
.wp-block-group .fc-art--clients-faq {
	background-image: url('/wp-content/uploads/2026/08/Clients-5.png');
}
.wp-block-group .fc-art--clients-cta {
	background-image: url('/wp-content/uploads/2026/08/Clients-6.png');
}
.wp-block-group .fc-legal-art,
.fc-404 {
	background-image: url('/wp-content/uploads/2026/08/Privacy-Policy.png');
	background-size: cover;
}
.wp-block-group .fc-art--wwd-hero.fc-art:before {
	content: "";
	background: linear-gradient(60deg, rgb(0 0 01) 10%, rgb(0 0 0 / 32%) 49.44%, rgba(0, 0, 0, 0.00) 83.37%);
	background-blend-mode: multiply, normal;
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 100%;
	z-index: 9;
}
.our-approach .fc-heading {
	max-width: 567px;
}
.fc-section__inner .fc-3col__icon svg {
	stroke: #E1251B;
}
.fc-3col__body {
	max-width: 290px;
}
.fc-section__inner {
	min-height: 38vh;
}
.fc-screen .fc-steps {
	margin-top: clamp(46px, 6vh, 90px);
}
.fc-heading {
	font-size: clamp(20px, 3.50vmin, 32px);
}
.fc-nav a.is-active,
.header-right .fc-nav a:hover {
	font-weight: 500;
	color: #fff;
}
.navbar-toggler {
	background: transparent;
	border-width: 0;
	padding: 0;
	margin: 0 15px;
	cursor: pointer;
}
.fc-nav {
	margin-left: auto;
	margin-right: 30px;
}
.header-right {
	display: flex;
	align-items: center;
	position: relative;
}
.header-right .header-search-wrapper.active {
	position: absolute;
	top: 100%;
	padding-left: 0;
	padding-right: 0;
}
.header-right .header-search-wrapper form label {
	width: 100%;
	display: block;
}
.header-right .header-search-wrapper .search-field {
	margin: 0;
}
.header-right .header-search-wrapper .search-form {
	display: block;
}
.headerWrap {
	align-items: center;
	display: flex;
	justify-content: space-between;
	width: 100%;
	position: relative;
	padding-bottom: 15px;
}
.header-right .fc-nav.is-open {
	display: block;
}
.search-toggle svg.close {
	display: none;
}
button.search-toggle.active .open {
	display: none;
}
button.search-toggle.active .close {
	display: block;
}
.capabilities .fc-cards .fc-card .fc-card__icon svg {
	stroke: transparent;
}
.capabilities .fc-card p {
	font-size: clamp(12px, 0.9vw, 16px);
	line-height: 1.45;
}
.capabilities .fc-card {
	gap: clamp(15px, 2vw, 40px);
	height: 100%;
	box-sizing: border-box;
	aspect-ratio: auto;
	padding: clamp(15px, 1.6vw, 30px);
}
.fc-screen .fc-heading {
	font-size: clamp(20px, 1.8vw, 32px);
}
.wwd-contact .fc-section__inner p.fc-eyebrow {
	color: #FFF;
	font-family: 'Montserrat';
	font-size: clamp(24px, 2.5vw, 48px);
	font-style: normal;
	font-weight: 400;
	line-height: 1.3;
	text-transform: none;
	letter-spacing: 0;
	max-width: 600px;
}
.fc-team-row {
	gap: clamp(24px, 3.5vw, 40px);
	align-items: start;
}
footer .fc-footer {
	border-top: 1px solid rgba(255, 255, 255, 0.35);
	padding: 16px var(--fc-gutter) 16px;
}
header .fc-rail {
	display: flex;
	min-height: 350px;
}
header .fc-rail .fc-rail-wrap {
	position: absolute;
	top: 0;
	padding-left: 30px;
}
header .fc-rail__label span {
	position: static;
	opacity: 1;
	transform: translateY(0);
	color: rgb(255 255 255 / 25%);
	display: block;
	padding: 24px 0;
	line-height: 1;
}
header .fc-rail__label {
	height: auto;
	display: flex;
	transform: none;
	flex-direction: column;
	justify-content: space-between;
	position: static;
}
header .fc-rail__label span.is-active {
	font-weight: 400;
	color: #fff;
}
header .fc-rail__track {
	width: 1px;
	height: calc(100% - 60px);
	max-height: initial;
	background: #B4B4B4 !important;
	position: absolute;
	margin-left: 4px;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}
.fc-team-row .fc-member__role {
	font-size: clamp(12px, 0.9vw, 16px);
	line-height: 1.45;
}
.fc-team-row .fc-member__photo {
	height: auto;
    object-position: top center;
    aspect-ratio: 1;
}
.fc-team-row {
	overflow-y: hidden;
}
.fc-section__inner .fc-faq__q {
	padding: clamp(15px, 1.45vw, 28px) 4px;
}
.fc-section__inner .fc-pills .fc-pill {
	padding: 3px 18px;
	font-size: clamp(10px, 0.8vw, 16px);
	line-height: 1.45;
}
.fc-section__inner .fc-table__row {
	padding: clamp(15px, 1.4vw, 24px) 4px;
}
.fc-section__inner .client-logo {
	margin-top: clamp(50px, 5.3vw, 100px);
	width: calc(100% + 5vw);
}
.fc-section__inner .client-logo .swiper-slide img {
	max-width: 100%;
}
.fc-section__inner .fc-value__icon svg {
	stroke: none;
}
.fc-section__inner .fc-value::before {
	background: #e1251b;
}
.fc-section__inner .fc-value__title {
	font-size: clamp(14px, 0.9vw, 18px);
	line-height: 1.45;
}
.fc-section__inner .fc-value__body {
	font-size: clamp(12px, 0.9vw, 16px);
	line-height: 1.45;
}
.fc-section__inner .fc-values {
	gap: clamp(32px, 6vh, 56px);
}
.fc-about--values .fc-split {
	gap: 20px;
}
.fc-about--values .fc-split h2.fc-heading {
	max-width: 416px;
}
.fc-section__inner .fc-team-row {
	width: calc(100% + 5vw);
}
.fc-section__inner .fc-team-arrows button {
	border-width: 0;
	width: 17px;
	height: 17px;
	padding: 0;
	cursor: pointer;
}
.fc-section__inner .fc-team-arrows svg {
	width: 17px;
	height: 17px;
	color: #E1251B;
}
.fc-table__header .fc-table__aum {
	padding-bottom: 10px;
	text-align: right;
}
.fc-section__inner .fc-pills {
	margin-bottom: 30px;
}
.fc-mandate-pagination {
	margin-top: 25px;
}
.fc-mandate-pagination .fc-page {
	background: transparent;
	border-width: 0;
}
.fc-mandate-pagination .fc-page-current {
	margin-top: -2px;
}
.fc-pagination__inner {
	display: flex;
	align-items: center;
	gap: 15px;
}
.fc-modal__panel .fc-modal__group {
	margin-bottom: 25px;
	font-size: 16px;
	font-weight: 700;
	color: #838383;
}
.fc-modal__contact {
	padding-left: 20px;
	border-left: 1px solid #E1251B;
}
.fc-modal__contact a {
	color: #fff;
	font-size: 16px;
	text-decoration: none;
}
.fc-modal__linkedin svg {
	fill: #fff;
	transition: 0.3s ease;
}
.fc-modal__linkedin:hover svg {
	fill: #e1251b;
}
.fc-modal__contact a {
	transition: 0.3s ease;
}
.fc-modal__contact a:hover {
	color: #e1251b;
}
.fc-modal__contact {
	gap: 10px;
}
.fc-section__inner .fc-faq__a p {
	max-width: calc(100% - 160px);
}
/* .fc-legal-pages { position: relative; height: 180px; overflow: hidden; }
.fc-legal-page { display: none; height: 180px; overflow: hidden; }
.fc-legal-page.is-active { display: block; }
.fc-legal-pagination { display: flex; align-items: center; gap: 5px; margin-top: 12px; }
.fc-legal-pagination button { appearance: none; border: 0; background: none; padding: 0; margin: 0; color: inherit; font: inherit; cursor: pointer; }
.fc-legal-pagination button:disabled { opacity: 0.3; cursor: default; } */
.fc-404 {
	min-height: 100vh !important;
}
.fc-404 h1 {
	font-size: 120px;
	line-height: 1;
	max-width: 100%;
	margin-bottom: 25px;
}
.fc-404 .fc-section__inner {
	margin-left: 0;
	align-items: center;
}
.fc-404 p.fc-eyebrow {
	text-align: center;
	margin-bottom: 0;
}
.fc-legal-disclaimer .fc-legal-page {
	display: none;
}
.fc-legal-disclaimer .fc-legal-page.active {
	display: block;
}
.fc-legal-pagination {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-top: clamp(10px, 2.1vh, 25px);
}
.legalPagination {
	margin-top: -2px;
}
.fc-legal-pagination button {
	background: transparent;
	border-width: 0;
	cursor: pointer;
}
.fc-legal p {
	font-size: clamp(8px, 1.3vh, 14px);
	line-height: clamp(16px, 2vh, 20px);
}
.fc-legal h2 {
	font-size: clamp(12px, 1.5vh, 16px);
	margin-top: clamp(20px, 2.5vh, 34px);
}
.fc-legal-disclaimer .fc-legal .fc-page-title {
	margin-bottom: clamp(36px, 5vh, 64px);
}
.fc-team-navigation .fc-team-arrows {
	margin: 15px 0 0;
}
.fc-section__inner .fc-team-navigation {
	margin: 0;
}
.fc-team-navigation .fc-team-pagination .fc-team-pagination__item {
	width: 10px;
	height: 10px;
	border-radius: 0;
	border: 1px solid #e1251b;
}
.fc-team-navigation .fc-team-pagination .fc-team-pagination__item.is-active {
	background: #e1251b;
}
@media (min-width:1025px) {
	.navbar-toggler {
		display: none;
	}
}
@media (min-width: 992px) and (max-width: 1300px) {
	.fc-section__inner .client-logo .swiper-wrapper {
		gap: 0px;
	}
}
@media (max-width: 1400px) {
	.capabilities .fc-section__inner .fc-cards {
		grid-template-columns: repeat(4, minmax(0px, 1fr));
	}
	.capabilities .fc-card {
		padding: 20px;
	}
	:root {
		--fc-header-h: 100px !important;
		--fc-content-left: 32% !important;
	}
	header .fc-rail__label span {
		padding: 20px 0;
	}
	header .fc-rail__track {
		height: calc(100% - 55px);
	}
	.fc-section__inner .client-logo {
		width: 100%;
	}
	header .fc-rail {
		min-height: 298px;
	}
}
@media (max-width: 1300px) {
	.fc-legal-disclaimer .fc-legal {
		margin-left: 0;
	}
}
@media (max-width: 1200px) {
	.header-right .fc-nav a {
		font-size: 14px;
	}
	.fc-header .headerWrap .fc-logo img,
	.fc-header .headerWrap .fc-logo svg {
		height: 25px;
	}
}
@media (max-width: 1080px) {
	.our-approach .fc-section__inner {
		margin: 0 !important;
	}
	header .fc-rail {
		display: none;
	}
	.fc-3col__body {
		max-width: 100%;
	}
}
@media (max-width:1024px) {
	.header-right .fc-nav {
		display: none;
	}
	.fc-nav a {
		display: block;
	}
	.header-right .fc-nav {
		position: absolute;
		left: 0;
		top: 100%;
		background: #000;
		width: 100%;
		padding: 20px;
		box-sizing: border-box;
		margin: 0;
	}
	.fc-nav a:last-of-type {
		margin-top: 10px;
		display: inline-block;
	}
	.header-right {
		position: static;
	}
	.capabilities .fc-section__inner .fc-cards {
		grid-template-columns: repeat(3, minmax(0px, 1fr));
	}
	.fc-section__inner {
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: 32vh;
	}
	.fc-screen .fc-steps,
	.capabilities .fc-section__inner .fc-cards,
	.fc-section__inner .fc-faq {
		margin-top: 35px;
	}
	.capabilities .fc-card p {
		font-size: 16px;
	}
}
@media (max-width:782px) {
	.header-right .fc-nav a:not(.fc-btn) {
		display: block;
	}
	.capabilities .fc-section__inner .fc-cards {
		grid-template-columns: repeat(2, minmax(0px, 1fr));
	}
	.wp-block-group .fc-screen {
		justify-content: center;
		padding-top: 70px;
		padding-bottom: 70px;
	}
	.wp-block-group .fc-screen:last-child {
		padding-bottom: 180px;
	}
	.fc-screen .fc-page-hero__scrollcue {
		width: 50px;
		background-size: contain;
		height: 30px;
	}
	.fc-section__inner .fc-stats__grid {
		display: flex;
		flex-direction: column;
		gap: 25px;
	}
	.fc-section__inner .fc-values {
		gap: 25px;
	}
	.fc-404 h1 {
		font-size: 80px;
	}
	
}
@media (max-width:480px) {
	.capabilities .fc-section__inner .fc-cards {
		grid-template-columns: repeat(1, minmax(0px, 1fr));
	}
}
