:root {
	--ff-bg: #0d1b2a;
	--ff-bg-deep: #080f18;
	--ff-surface: #121414;
	--ff-surface-soft: #1b1c1c;
	--ff-surface-high: #292a2a;
	--ff-line: rgba(91, 95, 239, 0.24);
	--ff-line-soft: rgba(255, 255, 255, 0.12);
	--ff-gold: #5b5fef;
	--ff-gold-soft: #7c80f7;
	--ff-text: #f5f3ef;
	--ff-muted: #c4c6cc;
	--ff-container: 1440px;
	--ff-page-gutter: clamp(24px, 4.2vw, 80px);
	--ff-section-space: clamp(88px, 7.5vw, 120px);
	--ff-body: "Manrope", Arial, sans-serif;
	--ff-heading: "Manrope", Arial, sans-serif;
}

::-webkit-scrollbar {
	width: 6px;
}

::-webkit-scrollbar-track {
	background: var(--ff-bg);
}

::-webkit-scrollbar-thumb {
	background: var(--ff-gold);
}

body:has(.ff-home) {
	background: var(--ff-bg);
	color: var(--ff-text);
}

.ff-home {
	background: var(--ff-bg);
	color: var(--ff-text);
	font-family: var(--ff-body);
	overflow-x: clip;
	overflow-y: visible;
}

.ff-home,
.ff-home * {
	border-radius: 0 !important;
}

.ff-home * {
	box-sizing: border-box;
}

.ff-home a {
	color: inherit;
	text-decoration: none;
}

.ff-container {
	margin: 0 auto;
	max-width: var(--ff-container);
	padding-left: var(--ff-page-gutter);
	padding-right: var(--ff-page-gutter);
	width: 100%;
}

.ff-container--wide {
	max-width: var(--ff-container);
	padding-left: var(--ff-page-gutter);
	padding-right: var(--ff-page-gutter);
}

.ff-nav {
	align-items: center;
	background: rgba(255, 255, 255, 0.97);
	border-bottom: 1px solid rgba(13, 27, 42, 0.1);
	backdrop-filter: blur(16px);
	box-shadow: 0 8px 28px rgba(13, 27, 42, 0.08);
	display: flex;
	gap: 28px;
	justify-content: space-between;
	left: 0;
	padding-bottom: 16px;
	padding-left: max(clamp(20px, 4.2vw, 80px), calc(50vw - 640px));
	padding-right: max(clamp(20px, 4.2vw, 80px), calc(50vw - 640px));
	padding-top: 16px;
	position: fixed;
	right: 0;
	top: var(--wp-admin--admin-bar--height, 0);
	transition: background 180ms ease, padding 180ms ease;
	z-index: 50;
}

.ff-nav.is-scrolled {
	background: rgba(255, 255, 255, 0.99);
	padding-bottom: 12px;
	padding-top: 12px;
}

.ff-brand {
	color: var(--ff-gold);
	font-family: var(--ff-heading);
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
}

.ff-nav__links {
	align-items: center;
	display: flex;
	gap: 32px;
	margin-left: auto;
}

.ff-nav__links a,
.ff-nav__cta {
	font-family: var(--ff-heading);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.ff-nav__links a {
	color: #334155;
	transition: color 160ms ease;
}

.ff-nav__links a:hover {
	color: var(--ff-gold);
}

.ff-nav__cta,
.ff-button {
	align-items: center;
	border: 1px solid transparent;
	display: inline-flex;
	font-family: var(--ff-heading);
	font-size: 14px;
	font-weight: 600;
	justify-content: center;
	letter-spacing: 0.05em;
	line-height: 1;
	min-height: 50px;
	padding: 18px 40px;
	text-transform: uppercase;
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.ff-nav__cta,
.ff-button--gold {
	background: var(--ff-gold);
	color: #fff;
}

.ff-nav__cta:hover,
.ff-button--gold:hover {
	background: var(--ff-gold-soft);
	color: #fff;
	transform: translateY(-1px);
}

.ff-button--ghost {
	background: rgba(255, 255, 255, 0.76);
	border-color: #334155;
	border-width: 2px;
	color: #0d1b2a;
}

.ff-button--ghost:hover {
	background: #eef0ff;
	border-color: var(--ff-gold);
	color: var(--ff-gold);
}

.ff-nav__toggle {
	background: transparent;
	border: 1px solid rgba(13, 27, 42, 0.16);
	display: none;
	height: 44px;
	padding: 0;
	width: 44px;
}

.ff-nav__toggle span {
	background: var(--ff-gold);
	display: block;
	height: 2px;
	margin: 7px auto;
	width: 20px;
}

.ff-hero {
	align-items: center;
	background-attachment: scroll;
	background-image: url("../images/banner hero.png");
	background-position: 68% top;
	background-repeat: no-repeat;
	background-size: cover;
	display: flex;
	justify-content: center;
	margin-top: 90px;
	min-height: calc(100vh - 90px);
	position: relative;
}

.ff-hero__overlay {
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 249, 255, 0.94) 38%, rgba(247, 249, 255, 0.56) 58%, rgba(255, 255, 255, 0.04) 76%);
	display: block;
	inset: 0;
	position: absolute;
}

.ff-hero__content {
	margin: 0 auto;
	max-width: var(--ff-container);
	padding-top: 0;
	position: relative;
	text-align: left;
	z-index: 2;
}

.ff-kicker {
	color: var(--ff-gold);
	font-family: var(--ff-heading);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.3em;
	margin: 0 0 16px;
	text-transform: uppercase;
}

.ff-hero h1,
.ff-section h2,
.ff-banner h2 {
	font-family: var(--ff-heading);
	letter-spacing: 0;
	margin: 0;
}

.ff-hero h1 {
	color: #0d1b2a;
	font-size: clamp(42px, 7vw, 64px);
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.1;
	margin-left: 0;
	margin-right: 0;
	max-width: 720px;
	text-transform: uppercase;
}

.ff-hero__lead {
	color: #334155;
	font-family: var(--ff-heading);
	font-size: clamp(18px, 2vw, 24px);
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.4;
	margin: 16px 0 0;
	max-width: 700px;
	text-transform: uppercase;
}

.ff-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: flex-start;
	margin-top: 32px;
}

.ff-hero__stats {
	border-top: 1px solid var(--ff-line);
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 62px 0 0;
	max-width: 760px;
	padding-top: 24px;
}

.ff-hero__stats strong {
	color: var(--ff-gold);
	display: block;
	font-family: var(--ff-heading);
	font-size: 26px;
	font-weight: 800;
}

.ff-hero__stats span {
	color: #475569;
	display: block;
	font-size: 13px;
	margin-top: 6px;
	text-transform: uppercase;
}

.ff-section {
	padding: var(--ff-section-space) 0;
}

.ff-intro {
	background: #fff;
	color: #0d1b2a;
}

.ff-intro__grid {
	align-items: start;
	display: grid;
	gap: clamp(32px, 8vw, 120px);
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.ff-section h2,
.ff-banner h2 {
	color: #fff;
	font-size: clamp(32px, 4vw, 40px);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
}

.ff-products h2 {
	color: #151a20;
}

.ff-intro h2 {
	color: #0d1b2a;
}

.ff-intro__copy {
	color: #243141;
	font-size: 16px;
	line-height: 1.65;
	max-width: 560px;
}

.ff-intro__copy p {
	margin: 24px 0 0;
}

.ff-text-link {
	border-bottom: 2px solid var(--ff-gold);
	color: var(--ff-gold);
	display: inline-flex;
	font-family: var(--ff-heading);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	margin-top: 26px;
	padding-bottom: 3px;
	text-transform: uppercase;
}

.ff-intro__media {
	aspect-ratio: 1;
	border: 1px solid rgba(91, 95, 239, 0.34);
	margin-left: auto;
	max-width: 520px;
	padding: 12px;
	position: relative;
	width: 100%;
}

.ff-intro__media::before,
.ff-intro__media::after {
	content: "";
	height: 72px;
	position: absolute;
	width: 72px;
}

.ff-intro__media::before {
	border-left: 1px solid var(--ff-gold);
	border-top: 1px solid var(--ff-gold);
	left: -22px;
	top: -22px;
}

.ff-intro__media::after {
	border-bottom: 1px solid var(--ff-gold);
	border-right: 1px solid var(--ff-gold);
	bottom: -22px;
	right: -22px;
}

.ff-intro__media img {
	display: block;
	filter: saturate(0.96) contrast(1.02);
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: filter 700ms ease;
	width: 100%;
}

.ff-intro__media:hover img {
	filter: saturate(1.08) contrast(1.02);
}

.ff-intro__stats {
	border-top: 1px solid rgba(13, 27, 42, 0.14);
	display: grid;
	gap: 32px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 64px;
	overflow-x: auto;
	padding-top: 32px;
	scrollbar-color: var(--ff-gold) #e7e9f8;
	scrollbar-width: thin;
	text-align: center;
}

.ff-intro__stats::-webkit-scrollbar {
	display: block;
	height: 8px;
	width: 8px;
}

.ff-intro__stats strong {
	color: var(--ff-gold);
	display: block;
	font-family: var(--ff-heading);
	font-size: clamp(36px, 5vw, 64px);
	font-weight: 700;
	line-height: 1.1;
}

.ff-intro__stats span {
	color: #4a5663;
	display: block;
	font-family: var(--ff-heading);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	margin-top: 8px;
	text-transform: uppercase;
}

.ff-products {
	background: #fff;
	color: #151a20;
	padding: var(--ff-section-space) 0;
}

.ff-section__head {
	align-items: flex-end;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin: 0 0 58px;
	max-width: none;
	width: 100%;
}

.ff-section__head > div {
	max-width: 900px;
	min-width: 0;
}

.ff-section__link {
	align-items: center;
	border: 1px solid rgba(91, 95, 239, 0.5);
	color: #151a20;
	display: inline-flex;
	flex: 0 0 auto;
	font-family: var(--ff-heading);
	font-size: 14px;
	font-weight: 800;
	min-height: 38px;
	padding: 0 18px;
	text-transform: none;
	transition: border-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
	white-space: nowrap;
}

.ff-section__link:hover {
	border-color: var(--ff-gold);
	box-shadow: 0 12px 30px rgba(91, 95, 239, 0.18);
	color: var(--ff-bg);
}

.ff-section__sub {
	color: #243141;
	font-size: 18px;
	line-height: 1.5;
	margin: 16px 0 0;
}

.ff-product-carousel {
	margin-left: 0;
	margin-right: 0;
	position: relative;
}

.ff-product-rail {
	display: grid;
	gap: 20px;
	grid-auto-columns: minmax(250px, 264px);
	grid-auto-flow: column;
	overflow-x: auto;
	overflow-y: hidden;
	padding: 22px 0 24px;
	scroll-snap-type: x mandatory;
	scrollbar-color: var(--ff-gold) #e7e9f8;
	scrollbar-width: thin;
}

.ff-product-rail::-webkit-scrollbar {
	display: block;
	height: 9px;
	width: 9px;
}

.ff-product-rail::-webkit-scrollbar-track,
.ff-intro__stats::-webkit-scrollbar-track,
.ff-why__grid::-webkit-scrollbar-track {
	background: #e7e9f8;
}

.ff-product-rail::-webkit-scrollbar-thumb,
.ff-intro__stats::-webkit-scrollbar-thumb,
.ff-why__grid::-webkit-scrollbar-thumb {
	background: var(--ff-gold);
	border: 2px solid #e7e9f8;
}

.ff-product-rail::-webkit-scrollbar-thumb:hover,
.ff-intro__stats::-webkit-scrollbar-thumb:hover,
.ff-why__grid::-webkit-scrollbar-thumb:hover {
	background: var(--ff-gold-soft);
}

.ff-carousel-arrow {
	align-items: center;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(91, 95, 239, 0.55);
	box-shadow: 0 14px 34px rgba(13, 27, 42, 0.12);
	color: var(--ff-bg);
	cursor: pointer;
	display: flex;
	font-family: var(--ff-heading);
	font-size: 24px;
	font-weight: 800;
	height: 44px;
	justify-content: center;
	position: absolute;
	top: -48px;
	transform: none;
	transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
	width: 44px;
	z-index: 5;
}

.ff-carousel-arrow:hover {
	background: var(--ff-gold);
	border-color: var(--ff-gold);
	color: var(--ff-bg);
	transform: translateY(-2px);
}

.ff-carousel-arrow--left {
	left: auto;
	right: 54px;
}

.ff-carousel-arrow--right {
	right: 0;
}

.ff-product-card {
	background: #fff;
	border: 1px solid #edf0f2;
	box-shadow: 0 1px 4px rgba(17, 24, 39, 0.08);
	display: flex;
	flex-direction: column;
	min-height: 100%;
	scroll-snap-align: start;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.ff-product-card:hover {
	border-color: rgba(13, 27, 42, 0.2);
	box-shadow: 0 18px 45px rgba(13, 27, 42, 0.12);
	transform: translateY(-4px);
}

.ff-product-card__image {
	align-items: center;
	background: #fff;
	border-bottom: 1px solid #edf0f2;
	display: flex;
	height: 240px;
	justify-content: center;
	margin: 0;
	overflow: hidden;
	padding: 0;
	position: relative;
}

.ff-product-card__image img {
	display: block;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
	width: 100%;
}

.ff-product-card__details {
	align-items: center;
	background: #fff;
	bottom: 14px;
	box-shadow: 0 10px 22px rgba(17, 24, 39, 0.18);
	color: var(--ff-bg);
	display: inline-flex;
	font-size: 13px;
	font-weight: 800;
	left: 50%;
	min-height: 36px;
	opacity: 0;
	padding: 0 18px;
	position: absolute;
	transform: translate(-50%, 10px);
	transition: opacity 180ms ease, transform 180ms ease;
	white-space: nowrap;
}

.ff-product-card:hover .ff-product-card__details {
	opacity: 1;
	transform: translate(-50%, 0);
}

.ff-product-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 16px 16px 18px;
}

.ff-product-card h3 {
	color: #24272d;
	font-family: var(--ff-heading);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.25;
	margin: 0;
	min-height: 58px;
}

.ff-product-card__price {
	color: var(--ff-gold);
	font-family: var(--ff-heading);
	font-size: 18px;
	font-weight: 800;
	margin: 10px 0 0;
}

.ff-product-card__price del {
	color: #8d96a0;
	font-size: 12px;
	margin-right: 7px;
}

.ff-product-card__price ins {
	text-decoration: none;
}

.ff-empty-products {
	background: #fff;
	border: 1px solid #edf0f2;
	color: #243141;
	padding: 34px;
}

.ff-empty-products h3 {
	font-family: var(--ff-heading);
	margin: 0 0 10px;
}

.ff-empty-products p {
	color: var(--ff-muted);
	margin: 0;
}

.ff-courses {
	background:
		radial-gradient(circle at 92% 10%, rgba(91, 95, 239, 0.14), transparent 28%),
		linear-gradient(180deg, #f8f9ff 0%, #eef0ff 100%);
	color: #0d1b2a;
}

.ff-courses h2 {
	color: #0d1b2a;
}

.ff-course-grid {
	display: grid;
	gap: 26px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ff-course-card {
	background: #fff;
	border: 1px solid rgba(13, 27, 42, 0.1);
	box-shadow: 0 20px 50px rgba(13, 27, 42, 0.1);
	display: flex;
	flex-direction: column;
	min-height: 100%;
	overflow: hidden;
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.ff-course-card:hover {
	box-shadow: 0 26px 64px rgba(56, 55, 150, 0.18);
	transform: translateY(-5px);
}

.ff-course-card > img {
	aspect-ratio: 4 / 3;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.ff-course-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 30px;
}

.ff-course-card__body > span {
	color: var(--ff-gold);
	font-family: var(--ff-heading);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.ff-course-card h3 {
	color: #0d1b2a;
	font-family: var(--ff-heading);
	font-size: 23px;
	font-weight: 800;
	line-height: 1.25;
	margin: 14px 0 12px;
}

.ff-course-card p {
	color: #4a5663;
	font-size: 15px;
	line-height: 1.7;
	margin: 0 0 24px;
}

.ff-course-card__body > a {
	align-items: center;
	border-bottom: 2px solid var(--ff-gold);
	color: var(--ff-gold) !important;
	display: inline-flex;
	font-family: var(--ff-heading);
	font-size: 13px;
	font-weight: 800;
	margin-top: auto;
	padding-bottom: 5px;
	width: fit-content;
}

.ff-learning-path {
	background:
		radial-gradient(circle at 92% 8%, rgba(91, 95, 239, 0.17), transparent 30%),
		linear-gradient(180deg, #fff 0%, #f4f6ff 100%);
	border-bottom: 1px solid rgba(91, 95, 239, 0.12);
	border-top: 1px solid rgba(91, 95, 239, 0.1);
	color: #0d1b2a;
	padding: 108px 0;
}

.ff-learning-path__head {
	max-width: 760px;
}

.ff-learning-path__head h2 {
	color: #0d1b2a;
	font-family: var(--ff-heading);
	font-size: clamp(34px, 4vw, 50px);
	line-height: 1.12;
	margin: 0 0 20px;
}

.ff-learning-path__head > p:last-child {
	color: #475569;
	font-size: 17px;
	line-height: 1.7;
	margin: 0;
}

.ff-learning-path__steps {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 52px;
}

.ff-learning-path__steps > div {
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid rgba(13, 27, 42, 0.1);
	box-shadow: 0 18px 50px rgba(35, 44, 96, 0.08);
	min-height: 230px;
	padding: 32px;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.ff-learning-path__steps > div:hover {
	border-color: rgba(91, 95, 239, 0.58);
	box-shadow: 0 24px 58px rgba(35, 44, 96, 0.13);
	transform: translateY(-5px);
}

.ff-learning-path__steps span {
	align-items: center;
	background: #eef0ff;
	border: 1px solid rgba(91, 95, 239, 0.24);
	color: var(--ff-gold);
	display: inline-flex;
	font-family: var(--ff-heading);
	font-size: 13px;
	font-weight: 800;
	height: 44px;
	justify-content: center;
	letter-spacing: 0.12em;
	margin-bottom: 24px;
	width: 48px;
}

.ff-learning-path__steps strong {
	color: #0d1b2a;
	display: block;
	font-family: var(--ff-heading);
	font-size: 22px;
	margin-bottom: 12px;
}

.ff-learning-path__steps p {
	color: #4a5663;
	font-size: 15px;
	line-height: 1.7;
	margin: 0;
}

.ff-learning-path__actions,
.ff-banner__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 38px;
}

.ff-button--light {
	background: #fff;
	border-color: #fff;
	color: #0d1b2a !important;
}

.ff-button--light:hover {
	background: #eef0ff;
	border-color: #eef0ff;
	color: var(--ff-gold) !important;
}

.ff-learning-path .ff-button--light,
.ff-learning-path .ff-button--light:visited {
	background: #fff;
	border-color: var(--ff-gold);
	color: var(--ff-gold) !important;
}

.ff-learning-path .ff-button--light:hover,
.ff-learning-path .ff-button--light:focus-visible {
	background: #eef0ff;
	border-color: var(--ff-gold);
	color: #4549d8 !important;
}

.ff-button--ghost-dark {
	background: rgba(13, 27, 42, 0.28);
	border: 2px solid #fff;
	color: #fff !important;
}

.ff-button--ghost-dark:hover {
	background: #fff;
	color: #0d1b2a !important;
}

.ff-banner {
	background:
		linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(247, 249, 255, 0.9) 42%, rgba(247, 249, 255, 0.48) 62%, rgba(255, 255, 255, 0.06) 82%),
		url("../images/banner hero.png") 68% top / cover no-repeat;
	border-bottom: 1px solid rgba(13, 27, 42, 0.1);
	border-top: 1px solid rgba(13, 27, 42, 0.1);
	display: flex;
	min-height: 500px;
	padding: 80px 0;
}

.ff-banner h2 {
	color: #0d1b2a;
}

.ff-banner__inner {
	margin: auto;
	max-width: 920px;
	text-align: center;
}

.ff-banner .ff-button {
	margin-top: 28px;
}

.ff-banner__actions {
	justify-content: center;
}

.ff-banner__actions .ff-button {
	margin-top: 0;
}

.ff-banner .ff-button--ghost-dark,
.ff-banner .ff-button--ghost-dark:visited {
	background: rgba(255, 255, 255, 0.86);
	border-color: #334155;
	color: #0d1b2a !important;
}

.ff-banner .ff-button--ghost-dark:hover,
.ff-banner .ff-button--ghost-dark:focus-visible {
	background: #eef0ff;
	border-color: var(--ff-gold);
	color: var(--ff-gold) !important;
}

.ff-why {
	background: #fff;
	border-bottom: 1px solid rgba(13, 27, 42, 0.1);
	border-top: 1px solid rgba(13, 27, 42, 0.1);
	color: #0d1b2a;
}

.ff-why__grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(5, minmax(180px, 1fr));
	overflow-x: auto;
	scrollbar-color: var(--ff-gold) #e7e9f8;
	scrollbar-width: thin;
}

.ff-why__grid::-webkit-scrollbar {
	display: block;
	height: 8px;
	width: 8px;
}

.ff-why-card {
	background: #fff;
	border: 1px solid rgba(13, 27, 42, 0.12);
	border-top: 4px solid rgba(91, 95, 239, 0.68);
	min-height: 260px;
	padding: 30px 24px;
	text-align: left;
	transition: background 180ms ease, border-color 180ms ease;
}

.ff-why-card:hover {
	background: #eef0ff;
	border-color: var(--ff-gold);
}

.ff-why-card span {
	color: var(--ff-gold);
	display: block;
	font-family: var(--ff-heading);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.1em;
	margin-bottom: 28px;
}

.ff-why-card h3 {
	color: #0d1b2a;
	font-family: var(--ff-heading);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	margin: 0 0 8px;
}

.ff-why-card p {
	color: #4a5663;
	font-size: 15px;
	line-height: 1.7;
	margin: 0;
}

.ff-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 640ms ease, transform 640ms ease;
}

.ff-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 900px) {
	.ff-nav {
		gap: 14px;
		padding-left: 20px;
		padding-right: 20px;
	}

	.ff-nav__toggle {
		display: block;
	}

	.ff-nav__links {
		background: rgba(255, 255, 255, 0.99);
		border-bottom: 1px solid rgba(13, 27, 42, 0.1);
		border-top: 1px solid rgba(13, 27, 42, 0.1);
		display: none;
		flex-direction: column;
		gap: 18px;
		left: 0;
		padding: 24px;
		position: absolute;
		right: 0;
		top: 100%;
	}

	.ff-nav__links.is-open {
		display: flex;
	}

	.ff-nav__cta {
		display: none;
	}

	.ff-hero {
		min-height: 680px;
	}

	.ff-hero__overlay {
		display: none;
	}

	.ff-intro__grid,
	.ff-intro__grid {
		grid-template-columns: 1fr;
	}

	.ff-intro__media {
		margin-left: 0;
		margin-right: 0;
	}

	.ff-section__head {
		align-items: start;
		flex-direction: column;
		margin-bottom: 48px;
	}

}

@media (max-width: 640px) {
	.ff-container {
		padding-left: 20px;
		padding-right: 20px;
	}

	.ff-section,
	.ff-products {
		padding-bottom: 80px;
		padding-top: 80px;
	}

	.ff-brand {
		font-size: 20px;
	}

	.ff-hero {
		background-position: 68% center;
		min-height: 640px;
	}

	.ff-hero__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.ff-button {
		width: 100%;
	}

	.ff-hero__stats {
		grid-template-columns: 1fr;
		margin-top: 42px;
	}

	.ff-intro__stats {
		gap: 22px;
		grid-template-columns: repeat(4, minmax(136px, 1fr));
		margin-top: 48px;
	}

	.ff-product-rail {
		grid-auto-columns: minmax(232px, 78vw);
	}

	.ff-carousel-arrow {
		height: 46px;
		width: 34px;
	}

	.ff-product-card h3 {
		min-height: 54px;
	}

}

/* Final storefront overrides keep the WooCommerce rail in the requested light carousel style. */
.ff-home .ff-products {
	background: #fff !important;
	color: #151a20 !important;
}

.ff-home .ff-products .ff-container--wide {
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.ff-home .ff-products .ff-section__head {
	margin-left: auto;
	margin-right: auto;
	max-width: var(--ff-container);
	padding-left: var(--ff-page-gutter);
	padding-right: var(--ff-page-gutter);
}

.ff-home .ff-products .ff-product-carousel {
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: calc(var(--ff-container) - var(--ff-page-gutter) - var(--ff-page-gutter)) !important;
	width: calc(100% - var(--ff-page-gutter) - var(--ff-page-gutter)) !important;
}

.ff-home .ff-products .ff-product-rail {
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	scroll-padding-left: 0;
	scroll-padding-right: 0;
	width: 100% !important;
}

.ff-home .ff-products h2,
.ff-home .ff-product-card h3,
.ff-home .ff-product-card h3 a {
	color: #151a20 !important;
}

.ff-home .ff-product-card {
	background: #fff !important;
	border-color: #edf0f2 !important;
	border-radius: 0 !important;
	box-shadow: 0 1px 4px rgba(17, 24, 39, 0.08) !important;
}

.ff-home .ff-product-card__image {
	background: #fff !important;
	border-bottom: 1px solid #edf0f2 !important;
	border-radius: 0 !important;
	height: 240px !important;
	margin: 0 !important;
	padding: 0 !important;
	position: relative !important;
}

.ff-home .ff-product-card__details {
	background: #fff !important;
	border-radius: 0 !important;
	color: var(--ff-bg) !important;
	display: inline-flex !important;
	font-family: var(--ff-body) !important;
	left: 50% !important;
	opacity: 0 !important;
	position: absolute !important;
	transform: translate(-50%, 10px) !important;
}

.ff-home .ff-product-card:hover .ff-product-card__details {
	opacity: 1 !important;
	transform: translate(-50%, 0) !important;
}

/* Prevent theme button colors (including the default pink) from leaking into carousel controls. */
.ff-home .ff-products .ff-product-carousel button.ff-carousel-arrow,
.ff-home .ff-products .ff-product-carousel .ff-carousel-arrow {
	-webkit-appearance: none !important;
	appearance: none !important;
	background: rgba(255, 255, 255, 0.96) !important;
	background-image: none !important;
	border: 1px solid rgba(91, 95, 239, 0.55) !important;
	box-shadow: 0 12px 30px rgba(13, 27, 42, 0.12) !important;
	color: #0d1b2a !important;
	height: 44px !important;
	opacity: 1 !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 44px !important;
}

.ff-home .ff-products .ff-product-carousel button.ff-carousel-arrow:hover,
.ff-home .ff-products .ff-product-carousel button.ff-carousel-arrow:focus-visible,
.ff-home .ff-products .ff-product-carousel .ff-carousel-arrow:hover,
.ff-home .ff-products .ff-product-carousel .ff-carousel-arrow:focus-visible {
	background: var(--ff-gold) !important;
	border-color: var(--ff-gold) !important;
	color: #fff !important;
	transform: translateY(-50%) scale(1.04) !important;
}

.ff-home .ff-products .ff-product-carousel .ff-carousel-arrow--left {
	left: 24px !important;
	right: auto !important;
}

.ff-home .ff-products .ff-product-carousel .ff-carousel-arrow--right {
	left: auto !important;
	right: 24px !important;
}

.ff-home .ff-intro__stats {
	grid-template-columns: repeat(4, minmax(136px, 1fr)) !important;
}

.ff-home .ff-why__grid {
	grid-template-columns: repeat(5, minmax(180px, 1fr)) !important;
}

.ff-home .ff-hero {
	background-image: url("../images/banner hero.png") !important;
	background-attachment: scroll !important;
	background-position: 68% top !important;
	background-size: cover !important;
	margin-top: 90px !important;
	min-height: calc(100vh - 90px) !important;
}

.ff-home .ff-hero__overlay {
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 249, 255, 0.94) 38%, rgba(247, 249, 255, 0.56) 58%, rgba(255, 255, 255, 0.04) 76%) !important;
	display: block !important;
}

.ff-home .ff-hero h1 {
	color: #0d1b2a !important;
}

.ff-home .ff-hero__lead {
	color: #334155 !important;
}

@media (max-width: 900px) {
	.ff-home .ff-hero {
		background-position: 72% top !important;
		margin-top: 78px !important;
		min-height: calc(100vh - 78px) !important;
	}

	.ff-home .ff-hero__overlay {
		background: linear-gradient(90deg, rgba(255, 255, 255, 0.97) 0%, rgba(247, 249, 255, 0.9) 58%, rgba(247, 249, 255, 0.5) 100%) !important;
	}
}

@media (max-width: 640px) {
	.ff-home .ff-hero {
		background-position: 72% top !important;
		margin-top: 68px !important;
		min-height: calc(100vh - 68px) !important;
	}

	.ff-home .ff-hero__overlay {
		background: rgba(255, 255, 255, 0.88) !important;
	}
}

.ff-home .ff-why-card {
	background: #fff !important;
	border: 1px solid rgba(13, 27, 42, 0.12) !important;
	border-top: 4px solid rgba(91, 95, 239, 0.68) !important;
	min-height: 260px !important;
	padding: 30px 24px !important;
}

.ff-home .ff-why {
	background: #fff !important;
	color: #0d1b2a !important;
}

.ff-home .ff-why h2,
.ff-home .ff-why-card h3 {
	color: #0d1b2a !important;
}

.ff-home .ff-why-card p {
	color: #4a5663 !important;
}

.ff-home .ff-why-card:hover {
	background: #eef0ff !important;
	border-color: var(--ff-gold) !important;
}

/* Hero secondary action must stay readable over the light banner. */
.ff-home .ff-hero .ff-button--ghost,
.ff-home .ff-hero .ff-button--ghost:visited {
	background: rgba(255, 255, 255, 0.82) !important;
	border-color: #334155 !important;
	color: #0d1b2a !important;
}

.ff-home .ff-hero .ff-button--ghost:hover,
.ff-home .ff-hero .ff-button--ghost:focus-visible {
	background: #eef0ff !important;
	border-color: var(--ff-gold) !important;
	color: var(--ff-gold) !important;
}

@media (max-width: 1050px) {
	.ff-course-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.ff-course-grid,
	.ff-learning-path__steps {
		grid-template-columns: 1fr;
	}

	.ff-learning-path {
		padding: 84px 0;
	}

	.ff-learning-path__actions,
	.ff-banner__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.ff-learning-path__actions .ff-button,
	.ff-banner__actions .ff-button {
		width: 100%;
	}

	.ff-home .ff-products .ff-section__head {
		padding-left: 20px;
		padding-right: 20px;
	}

	.ff-home .ff-products .ff-product-carousel button.ff-carousel-arrow,
	.ff-home .ff-products .ff-product-carousel .ff-carousel-arrow {
		height: 40px !important;
		width: 40px !important;
	}

	.ff-home .ff-products .ff-product-carousel .ff-carousel-arrow--left {
		left: 10px !important;
	}

	.ff-home .ff-products .ff-product-carousel .ff-carousel-arrow--right {
		right: 10px !important;
	}
}
