/* FitFlex-like home layout. Content stays Albanian + own media. Accent = --ffx-color-accent (#FFD700). */

body [data-ff-promo],
body [data-ff-header-spacer] {
  display: none;
}
body [data-ff-header] {
  z-index: 999;
}
body [data-ff-nav] {
  height: var(--ffx-header-height);
  display: flex;
  align-items: center;
  background: rgba(12, 12, 12, 0.78) !important;
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body [data-ff-nav].is-solid {
  background: rgba(10, 10, 10, 0.94) !important;
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}
body .ffx-header-cta {
  transform: none !important;
  background: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 0;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 11px 28px;
  box-shadow: none;
}
body .ffx-header-cta span {
  transform: none !important;
  font-style: normal;
}
body .ffx-header-cta:hover {
  background: var(--ffx-color-accent) !important;
  color: #222 !important;
  border-color: var(--ffx-color-accent);
}

body.home {
  background: var(--ffx-color-bg);
  color: var(--ffx-color-body);
  font-family: var(--ffx-font-body);
}

body.home .font-heading,
body.home h1,
body.home h2,
body.home h3 {
  font-family: var(--ffx-font-heading);
}

.ffx-programs {
  position: relative;
  background: var(--ffx-color-bg);
  padding: 130px 0 70px;
  overflow: hidden;
}
.ffx-stories-slider .swiper-slide {
  width: 320px;
  max-width: 78vw;
  height: auto;
}
.ffx-programs::before {
  content: "";
  position: absolute;
  width: 680px;
  height: 680px;
  top: -50px;
  left: -300px;
  background: radial-gradient(circle, rgba(255, 215, 0, 0.14), transparent 68%);
  pointer-events: none;
}

.ffx-wrap,
.ffx-programs__head {
  width: min(100% - 24px, var(--ffx-container-max));
  margin: 0 auto;
}

.ffx-programs__head {
  position: relative;
  z-index: 1;
  display: block;
  text-align: center;
  margin-bottom: 58px;
}
.ffx-programs__head h2 {
  font-size: 42px;
  font-weight: 600;
  line-height: 1.18;
  margin: 0;
  text-transform: uppercase;
  color: #fff;
}
.ffx-programs__head h2.ff-reveal {
  transition-duration: 1.2s;
}

.ffx-kicker {
  color: var(--ffx-color-accent);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 8px;
}

.ffx-programs__head h2,
.ffx-stories-slider + .grid {
  color: var(--ffx-color-heading);
}

.ffx-programs__head h2 {
  font-size: clamp(32px, 4vw, var(--ffx-fs-h2));
  font-weight: var(--ffx-fw-h2);
  line-height: var(--ffx-lh-h2);
  margin: 0;
  text-transform: uppercase;
  color: #fff;
}

.ffx-nav {
  display: flex;
  gap: 8px;
}

.ffx-nav--inline {
  width: min(100% - 24px, var(--ffx-container-max));
  margin: 0 auto 16px;
  justify-content: flex-end;
}

.ffx-prev,
.ffx-next {
  width: 48px;
  height: 48px;
  border: 1px solid var(--ffx-color-border);
  background: transparent;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  transition: var(--ffx-btn-transition);
}

.ffx-prev:hover,
.ffx-next:hover {
  background: var(--ffx-color-accent);
  color: var(--ffx-color-on-accent);
  border-color: var(--ffx-color-accent);
}

.ffx-programs .ffx-swiper {
  position: relative;
  z-index: 1;
  width: calc(60vw + 650px);
  max-width: none;
  margin-left: max(12px, calc((100% - var(--ffx-container-max)) / 2));
  padding-left: 0;
  overflow: hidden;
}
.ffx-programs .swiper-slide {
  width: 400px;
  max-width: 78vw;
  height: auto;
}
.ffx-program {
  display: flex;
  flex-direction: column;
  height: 479px;
  color: #fff;
  background: rgba(255, 255, 255, 0.04);
  transition: 0.4s;
}
.ffx-program__media {
  position: relative;
  height: 330px;
  overflow: hidden;
  background: #111;
}
.ffx-program video,
.ffx-program img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ffx-program__more {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 10px 36px;
  color: #fff;
  background: transparent;
  border: 1px solid #fff;
  font-family: "Sora", sans-serif;
  font-size: 16px;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -50%) scale(1.6);
  transition: 0.4s;
}
.ffx-program:hover .ffx-program__more {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) scale(1);
}
.ffx-program__more:hover {
  color: #222;
  background: var(--ffx-color-accent);
  border-color: var(--ffx-color-accent);
}
.ffx-program__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  text-align: center;
  padding: 35px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
}
.ffx-program__info h3 {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.42;
  text-transform: uppercase;
}
.ffx-program__info h3 a {
  color: #fff;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 100% 100%;
  background-size: 0 1px;
  transition: background-size 0.42s cubic-bezier(0.49, 0.49, 0.08, 1);
}
.ffx-program__info h3 a:hover {
  background-position: 0 100%;
  background-size: 100% 1px;
}
.ffx-program__info p {
  margin: 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 18px;
  line-height: 1.45;
}
.ffx-dots {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 48px;
}
.ffx-dots .swiper-pagination-bullet {
  width: 40px;
  height: 6px;
  margin: 0 !important;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.2);
  opacity: 1;
  transition: 0.3s;
}
.ffx-dots .swiper-pagination-bullet:hover,
.ffx-dots .swiper-pagination-bullet-active {
  background: var(--ffx-color-accent);
}
.ffx-dots .swiper-pagination-bullet-active {
  width: 70px;
}

.ffx-hero {
  position: relative;
  height: 860px;
  min-height: 860px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: #111;
  color: #fff;
  overflow: hidden;
}
.ffx-hero__media,
.ffx-hero__media video,
.ffx-hero__media img,
.ffx-hero__shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ffx-hero__shade {
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.32) 0%, rgba(0, 0, 0, 0.55) 100%);
}
.ffx-hero__copy {
  position: relative;
  z-index: 1;
  width: min(1240px, calc(100% - 32px));
  margin: 0 auto 28px;
}
.ffx-hero h1,
.ffx-hero h1 .ffx-stroke,
.ffx-hero p {
  color: #fff;
  -webkit-text-fill-color: #fff;
}
.ffx-hero h1 .ffx-stroke {
  -webkit-text-stroke: 0;
}
.ffx-hero h1 {
  font-family: "Sora", sans-serif;
  font-size: 56px;
  line-height: 64px;
  font-weight: 700;
  text-transform: uppercase;
  margin: 0 0 18px;
}
.ffx-hero p {
  max-width: 560px;
  font-size: 18px;
  line-height: 28px;
  margin: 0 0 28px;
}
.ffx-hero__stats {
  position: relative;
  z-index: 1;
  width: min(1240px, calc(100% - 32px));
  margin: 0 auto;
  height: 181px;
  display: grid;
  grid-template-columns: repeat(var(--ffx-stat-cols, 4), minmax(0, 1fr));
  gap: 40px;
  align-items: center;
  padding: 35px 40px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.ffx-hero__stat strong {
  display: block;
  color: #fff;
  font-family: var(--ffx-font-heading);
  font-size: 34px;
  font-weight: 700;
  line-height: 1.05;
}
.ffx-hero__stat span {
  display: block;
  margin-top: 8px;
  color: #fff;
  font-family: var(--ffx-font-heading);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
}
.ffx-hero__btns,
.ffx-cta__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.ffx-btn {
  display: inline-flex;
  align-items: center;
  background: var(--ffx-color-accent);
  color: var(--ffx-color-on-accent);
  border: 1px solid var(--ffx-color-accent);
  padding: var(--ffx-btn-pad-y) var(--ffx-btn-pad-x);
  font-family: var(--ffx-font-heading);
  font-weight: 600;
  letter-spacing: var(--ffx-ls-btn);
  text-transform: uppercase;
  transition: var(--ffx-btn-transition);
}
.ffx-btn:hover { background: #fff; border-color: #fff; color: #111; }
.ffx-btn--ghost {
  background: transparent;
  color: #fff;
  border-color: rgba(255,255,255,.6);
}

#membership {
  background: var(--ffx-color-bg);
  padding: 20px 0 80px;
}
.page-template-page-membership #membership {
  padding-top: 80px;
}
#membership h2 {
  font-family: var(--ffx-font-heading);
  color: #fff;
  text-transform: uppercase;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.15;
  margin: 0 0 16px;
}
#membership .text-4xl {
  color: var(--ffx-color-accent);
}
#membership a.w-full {
  background: var(--ffx-color-accent);
  color: #222;
  border-radius: 0;
}
#membership a.w-full:hover {
  background: #fff;
  color: #111;
}
#membership .scale-105 {
  transform: none;
}

.ffx-pricing__head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 48px;
}
.ffx-pricing__head p {
  margin: 12px 0 0;
  color: rgba(255, 255, 255, 0.6);
}
.ffx-pricing__head h2,
#membership h2 { color: #fff; }
.ffx-prices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.ffx-price {
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.35);
  padding: 55px 40px 48px;
  text-align: center;
}
.ffx-price.is-featured { border-color: var(--ffx-color-accent); }
.ffx-price__name {
  margin: 0 0 12px;
  color: #fff;
  font-family: var(--ffx-font-heading);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ffx-price__cost {
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 6px;
  margin: 0 0 18px;
  color: var(--ffx-color-accent);
  font-family: var(--ffx-font-heading);
  line-height: 1;
}
.ffx-price__cost strong { font-size: 32px; font-weight: 700; white-space: nowrap; }
.ffx-price__cost span { font-size: 20px; font-weight: 500; white-space: nowrap; }
.ffx-price__total {
  margin: -10px 0 16px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 14px;
}
.ffx-price__strip {
  margin: 0 -40px 28px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ffx-price__list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  text-align: left;
  flex: 1;
}
.ffx-price__list li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 16px;
  line-height: 1.45;
}
.ffx-price__check {
  width: 16px;
  height: 16px;
  color: var(--ffx-color-accent);
  flex: none;
  margin-top: 3px;
}
.ffx-price__extra {
  margin: 0 0 16px;
  color: var(--ffx-color-accent);
  font-size: 14px;
}
.ffx-price__btn {
  justify-content: center;
  width: 100%;
  margin-top: auto;
}
.ffx-pricing__more { text-align: center; margin-top: 36px; }
.ffx-pricing__more a {
  color: var(--ffx-color-accent);
  font-family: var(--ffx-font-heading);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--ffx-color-accent);
}

.ffx-features {
  background: var(--ffx-color-bg);
  padding: 80px 0;
}
.ffx-features h2 {
  font-family: var(--ffx-font-heading);
  color: #fff;
  text-transform: uppercase;
  font-size: clamp(32px, 4vw, var(--ffx-fs-h2));
  margin: 0 0 32px;
}
.ffx-features__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.ffx-features article {
  background: var(--ffx-card-bg);
  padding: 28px 20px;
  border: 1px solid var(--ffx-color-border);
}
.ffx-features h3 { color: #fff; font-size: 22px; margin: 12px 0 8px; }
.ffx-features__icon { width: 36px; height: 36px; color: var(--ffx-color-accent); }

.ffx-cta {
  position: relative;
  height: 532px;
  min-height: 532px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 105px 0 0;
  overflow: hidden;
}
.ffx-cta > img,
.ffx-cta__shade { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.ffx-cta__shade {
  background: linear-gradient(90deg, rgba(17, 17, 17, 0.55) 0%, rgba(17, 17, 17, 0.62) 50%, rgba(17, 17, 17, 0.55) 100%);
}
.ffx-cta .ffx-cta__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: center;
  text-align: center;
  gap: 0;
  width: min(1100px, calc(100% - 32px));
  margin: 0 auto;
}
.ffx-cta h2 {
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
  margin: 0 0 22px;
  max-width: none;
  white-space: nowrap;
}
.ffx-cta p {
  color: #fff;
  font-size: 18px;
  line-height: 1.5;
  margin: 0 auto 22px;
  max-width: 560px;
}
.ffx-cta .ffx-btn {
  height: 48px;
  padding: 11px 32px;
}
.ffx-cta .ffx-btn:hover {
  background: transparent;
  color: #fff;
  border-color: #fff;
}

@media (max-width: 1024px) {
  .ffx-hero { height: 760px; min-height: 760px; }
  .ffx-hero__copy { top: auto; margin-bottom: 24px; }
  .ffx-hero h1 { font-size: 48px; line-height: 54px; }
  .ffx-hero__stats { height: auto; padding: 24px 20px; }
  .ffx-features__grid { grid-template-columns: repeat(2, 1fr); }
  .ffx-prices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ffx-programs { padding: 72px 0 48px; }
  .ffx-programs__head { margin-bottom: 28px; }
  .ffx-programs__head h2 { font-size: 32px; }
  .ffx-program { height: 420px; }
  .ffx-program__media { height: 260px; }
  .ffx-cta { height: auto; min-height: 300px; padding: 72px 0; }
  .ffx-cta .ffx-cta__inner { width: auto; margin: 0 auto; padding: 0 16px; }
  .ffx-cta h2 { font-size: clamp(18px, 5.6vw, 28px); white-space: nowrap; }
  .ffx-hero { height: auto; min-height: 640px; }
  .ffx-hero__copy { position: relative; top: auto; left: auto; width: auto; margin: 0; padding: 156px 16px 24px; }
  .ffx-hero h1 { font-size: 34px; line-height: 40px; }
  .ffx-hero__stat {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    padding-bottom: 8px;
  }
  .ffx-hero__stats {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    width: auto;
    grid-template-columns: 1fr;
    height: auto;
    margin: 0 12px 16px;
    text-align: center;
    gap: 20px;
  }
  .ffx-features__grid { grid-template-columns: 1fr; }
  .ffx-prices { grid-template-columns: 1fr; }
  .ffx-price { padding: 36px 24px 32px; }
  .ffx-price__strip { margin-left: -24px; margin-right: -24px; }
  .ffx-price__cost strong { font-size: 28px; }
  .ffx-page-hero { min-height: 380px; padding-top: 120px; }
  .ffx-page-hero h1 { font-size: 36px !important; line-height: 42px !important; }
}

/* Inner pages — banner + type. Footer is untouched. */
body:not(.home) {
  background: var(--ffx-color-bg);
  color: var(--ffx-color-body);
  font-family: var(--ffx-font-body);
}
.ffx-page-hero {
  position: relative;
  min-height: 503px;
  height: 503px;
  display: flex;
  align-items: flex-start;
  padding: 170px 0 40px;
  overflow: hidden;
  background: #161616;
}
.ffx-page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--ffx-page-photo) center/cover no-repeat;
  z-index: 0;
}
.ffx-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.38);
}
.ffx-page-hero video,
.ffx-page-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.ffx-page-hero > .absolute { z-index: 2; }
.ffx-page-hero .container { position: relative; z-index: 2; }
.ffx-page-hero > .bg-gradient-to-t,
.ffx-page-hero > .absolute.inset-0.bg-gradient-to-t {
  background: linear-gradient(90deg, rgba(17,17,17,.78) 0%, rgba(17,17,17,.35) 58%, rgba(17,17,17,.15) 100%) !important;
}
.ffx-page-hero .text-center {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: auto !important;
  max-width: 820px !important;
}
.ffx-page-hero h1 {
  font-family: var(--ffx-font-heading) !important;
  font-size: 56px !important;
  line-height: 64px !important;
  font-weight: 700 !important;
  font-style: normal !important;
  letter-spacing: 0 !important;
  text-transform: uppercase;
  margin: 0 0 14px !important;
}
.ffx-page-hero p {
  max-width: 640px;
  margin-bottom: 14px;
}
.ffx-class-hero {
  position: relative;
  display: block;
  height: auto;
  min-height: 0;
  padding: 164px 0 94px;
  overflow: hidden;
  background-color: #111;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.ffx-class-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(17, 17, 17, 0.5) 0%, rgba(17, 17, 17, 0.16) 46%, rgba(17, 17, 17, 0) 72%);
}
.ffx-class-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.ffx-class-hero .ffx-wrap {
  position: relative;
  z-index: 2;
}
.ffx-class-hero h1 {
  max-width: 760px;
  margin: 0 0 12px;
  color: #fff;
  font-family: "Sora", sans-serif;
  font-size: 56px;
  font-weight: 700;
  font-synthesis: none;
  line-height: 1.139;
  letter-spacing: 0;
  text-align: left;
  text-transform: uppercase;
}
.ffx-class-hero .ffx-crumb {
  justify-content: flex-start;
  margin-top: 0;
  font-size: 18px;
}
@media (max-width: 1199px) {
  .ffx-class-hero h1 { font-size: 48px; }
}
@media (max-width: 991px) {
  .ffx-class-hero { padding: 94px 0 80px; }
}
@media (max-width: 767px) {
  .ffx-class-hero h1 { font-size: 40px; }
}
@media (max-width: 575px) {
  .ffx-class-hero h1 { font-size: 34px; }
}
.ffx-crumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  font-size: 15px;
  color: rgba(255,255,255,.6);
}
.ffx-crumb a { color: rgba(255,255,255,.6); }
.ffx-crumb a:hover { color: #fff; }
.ffx-crumb__current { color: var(--ffx-color-accent); }
body:not(.home) #main-content > section:first-child:not(.ffx-page-hero):not(.ffx-class-hero) {
  padding-top: 140px;
}
#main-content h2,
#main-content h3 {
  font-family: var(--ffx-font-heading);
  font-style: normal !important;
}
#main-content .rounded-lg,
#main-content .rounded-sm,
#main-content .rounded,
#main-content .rounded-full {
  border-radius: 0;
}
.ffx-page-hero.min-h-screen {
  height: auto;
  min-height: 70vh;
  align-items: center;
  justify-content: center;
  overflow: visible;
  padding-top: 100px;
}
.ffx-page-hero.min-h-screen .text-center {
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.ffx-page-hero.min-h-screen .ffx-crumb { justify-content: center; }
.ffx-page-hero.min-h-screen h1 { font-size: 42px !important; line-height: 1.2 !important; }
#main-content a.bg-brand-yellow,
#main-content button.bg-brand-yellow,
#main-content button[type="submit"] {
  border-radius: 0;
  font-family: var(--ffx-font-heading);
  font-style: normal;
}
@media (max-width: 1024px) {
  .ffx-page-hero { height: auto; min-height: 420px; padding-top: 130px; }
  .ffx-page-hero h1 { font-size: 40px !important; line-height: 46px !important; }
  .ffx-split,
  .ffx-values__grid,
  .ffx-contact__grid,
  .ffx-class-about__grid { grid-template-columns: 1fr; }
  .ffx-class-grid,
  .ffx-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ffx-benefits__grid article:nth-child(2n+1) { border-left: 0; }
  .ffx-stats__grid { grid-template-columns: repeat(2, 1fr); }
}

.ffx-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  width: min(100% - 48px, 1264px);
  margin: 0 auto;
  padding: 90px 0;
}
.ffx-split__media img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
}
.ffx-split h2,
.ffx-values h2,
.ffx-contact h2 {
  margin: 0 0 18px;
  color: #fff;
  font-family: var(--ffx-font-heading);
  font-size: 48px;
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
}
h1,
h2,
h3,
.font-heading,
.ffx-stroke {
  font-family: "Sora", sans-serif;
  font-synthesis: none;
}
h1 .ffx-stroke,
h2 .ffx-stroke {
  font-family: "Sora", sans-serif;
  font-weight: inherit;
  font-synthesis: none;
  letter-spacing: normal;
  -webkit-text-stroke-width: 1px;
  -webkit-text-stroke-color: #fff;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.ffx-prose,
.ffx-prose p { color: rgba(255, 255, 255, 0.6); font-size: 16px; line-height: 1.7; }
.ffx-prose p + p { margin-top: 16px; }

.ffx-values { padding: 80px 0 80px; }
.ffx-values h2 { text-align: center; margin-bottom: 36px; }
.ffx-values__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
}
.ffx-values article {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 28px 22px;
}
.ffx-values__icon { width: 36px; height: 36px; color: var(--ffx-color-accent); margin-bottom: 16px; }
.ffx-values h3 { margin: 0 0 8px; color: #fff; font-size: 20px; }
.ffx-values p { margin: 0; color: rgba(255, 255, 255, 0.6); font-size: 15px; line-height: 1.5; }

.ffx-wide img { width: 100%; height: 520px; object-fit: cover; display: block; }
.ffx-stats { padding: 64px 0 80px; }
.ffx-stats__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  text-align: center;
}
.ffx-stats strong {
  display: block;
  color: var(--ffx-color-accent);
  font-family: var(--ffx-font-heading);
  font-size: 42px;
  font-weight: 700;
}
.ffx-stats span {
  display: block;
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 13px;
}

.ffx-classes { padding: 140px 0 80px; }
.ffx-class-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px 24px;
}
.ffx-class {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: #fff;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.35);
  transition: border-color 0.4s, transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);
  transform: perspective(600px);
}
.ffx-class:hover { border-color: var(--ffx-color-accent); }
.ffx-class__media {
  position: relative;
  height: 336px;
  overflow: hidden;
  background: #111;
}
.ffx-class__media img,
.ffx-class__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.ffx-class:hover .ffx-class__media img,
.ffx-class:hover .ffx-class__media video { transform: scale(1.06); }
.ffx-class__badge {
  position: absolute;
  top: 0;
  right: 0;
  padding: 7px 18px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(9px);
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 1.76px;
  text-transform: uppercase;
}
.ffx-class__more {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 10px 36px;
  background: var(--ffx-color-accent);
  color: #222;
  border: 1px solid var(--ffx-color-accent);
  font-family: var(--ffx-font-heading);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.24px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -50%) scale(1.15);
  transition: opacity 0.35s, visibility 0.35s, transform 0.35s, background 0.3s, color 0.3s;
}
.ffx-class:hover .ffx-class__more {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) scale(1);
}
.ffx-class__more:hover {
  background: transparent;
  color: #fff;
  border-color: #fff;
}
.ffx-class__body {
  flex: 1;
  text-align: center;
  padding: 33px 20px 31px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}
.ffx-class__body h2 {
  margin: 0 0 6px;
  font-family: var(--ffx-font-heading);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.42;
  text-transform: uppercase;
  transition: transform 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.ffx-class__body h2 a {
  color: var(--ffx-color-accent);
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 100% 100%;
  background-size: 0 1px;
  transition: background-size 0.42s cubic-bezier(0.49, 0.49, 0.08, 1);
}
.ffx-class__body h2 a:hover { background-position: 0 100%; background-size: 100% 1px; }
.ffx-class__body p {
  margin: 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 18px;
  line-height: 1.45;
}

.ffx-class-about { position: relative; padding: 140px 0 40px; overflow: hidden; }
.ffx-class-about::before,
.ffx-benefits::before,
.ffx-contact::before {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 215, 0, 0.14), transparent 68%);
  pointer-events: none;
}
.ffx-class-about::before { top: -160px; right: -180px; }
.ffx-benefits::before { top: 40px; left: -220px; }
.ffx-contact::before { top: -80px; left: -220px; }
.ffx-class-about__grid {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
}
.ffx-class-about__media img,
.ffx-class-about__media video { width: 100%; height: 460px; object-fit: cover; display: block; }
.ffx-class-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 22px; }
.ffx-class-facts strong {
  display: block;
  margin-bottom: 4px;
  color: #fff;
  font-family: var(--ffx-font-heading);
  font-size: 16px;
  font-weight: 600;
}
.ffx-class-facts span { color: rgba(255, 255, 255, 0.6); font-size: 18px; line-height: 1.55; }

.ffx-benefits { position: relative; padding: 80px 0 40px; overflow: hidden; }
.ffx-benefits h2 {
  margin: 0 0 56px;
  text-align: center;
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  text-transform: uppercase;
}
.ffx-benefits__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ffx-benefits__grid article {
  text-align: center;
  padding: 8px 22px 36px;
  border-left: 1px solid rgba(255, 215, 0, 0.35);
}
.ffx-benefits__grid article:nth-child(4n+1) { border-left: 0; }
.ffx-benefits__icon {
  width: 40px;
  height: 40px;
  margin: 0 auto 18px;
  padding: 8px;
  box-sizing: content-box;
  border: 1px solid var(--ffx-color-accent);
  color: var(--ffx-color-accent);
}
.ffx-benefits__grid strong {
  display: block;
  color: #fff;
  font-family: var(--ffx-font-heading);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.35;
}

.ffx-related { padding: 70px 0 20px; }
.ffx-related__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 48px;
}
.ffx-related__head h2 {
  margin: 0;
  max-width: 640px;
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.05;
  text-transform: uppercase;
}

.ffx-contact { position: relative; padding: 140px 0 0; overflow: hidden; }
.ffx-contact__grid {
  position: relative;
  display: grid;
  grid-template-columns: 503px 1fr;
  gap: 64px;
  align-items: start;
}
.ffx-contact__list { list-style: none; margin: 48px 0 0; padding: 0; display: flex; flex-direction: column; gap: 28px; }
.ffx-contact__list li { display: flex; gap: 18px; align-items: flex-start; }
.ffx-contact__icon {
  width: 22px;
  height: 22px;
  padding: 9px;
  box-sizing: content-box;
  border: 1px solid var(--ffx-color-accent);
  color: #fff;
  flex: none;
  transition: background 0.4s, color 0.4s;
}
.ffx-contact__list li:hover .ffx-contact__icon {
  background: var(--ffx-color-accent);
  color: #222;
}
.ffx-contact__list strong {
  display: block;
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.ffx-contact__list span,
.ffx-contact__list a { display: block; color: rgba(255, 255, 255, 0.6); font-size: 18px; line-height: 1.45; }
.ffx-form { display: flex; flex-direction: column; gap: 24px; margin-top: 48px; }
.ffx-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 23px; }
.ffx-form input[type="text"],
.ffx-form input[type="tel"],
.ffx-form input[type="email"],
.ffx-form textarea {
  width: 100%;
  height: 48px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.6);
  color: #fff;
  padding: 9px 20px;
  font: inherit;
  font-size: 18px;
  border-radius: 0;
}
.ffx-form textarea { height: 160px; resize: vertical; }
.ffx-form input:focus,
.ffx-form textarea:focus { outline: none; border-color: var(--ffx-color-accent); }
.ffx-form__consent { display: flex; gap: 10px; align-items: flex-start; color: rgba(255, 255, 255, 0.6); font-size: 14px; }
.ffx-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ffx-form__status { margin: 0; font-size: 15px; line-height: 1.45; }
.ffx-form__status[hidden] { display: none; }
.ffx-form__status.is-ok { color: var(--ffx-color-accent); }
.ffx-form__status.is-err { color: #ff8a8a; }
.ffx-form button:disabled { opacity: 0.65; cursor: wait; }
.ffx-contact .ffx-form .ffx-btn { align-self: stretch; justify-content: center; width: 100%; height: 48px; }
.ffx-contact__map { position: relative; margin-top: 80px; padding-bottom: 60px; }
.ffx-contact__map iframe { display: block; width: 100%; height: 560px; filter: grayscale(0.35); }
@media (max-width: 767px) {
  .ffx-form__row,
  .ffx-values__grid,
  .ffx-class-grid,
  .ffx-benefits__grid,
  .ffx-stats__grid { grid-template-columns: 1fr; }
  .ffx-benefits__grid article { border-left: 0; border-top: 1px solid rgba(255, 215, 0, 0.35); }
  .ffx-related__head { flex-direction: column; align-items: flex-start; }
  .ffx-class__media,
  .ffx-class-about__media img,
  .ffx-class-about__media video { height: 240px; }
  .ffx-benefits h2,
  .ffx-related__head h2 { font-size: 32px; }
  .ffx-split h2,
  .ffx-values h2,
  .ffx-contact h2 { font-size: 32px; }
  .ffx-wide img { height: 280px; }
}

.ffx-about-hero {
  position: relative;
  height: 503px;
  min-height: 503px;
  padding: 190px 0 0;
  overflow: hidden;
  background-color: #111;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.ffx-about-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(17, 17, 17, 0.55) 0%, rgba(17, 17, 17, 0.16) 48%, rgba(17, 17, 17, 0) 78%);
}
.ffx-about-hero .ffx-wrap { position: relative; z-index: 1; }
.ffx-about-hero video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.ffx-about-hero p {
  margin: 0 0 12px;
  max-width: 640px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 18px;
  line-height: 1.5;
}
.ffx-about-hero h1 {
  max-width: 760px;
  margin: 0 0 12px;
  color: #fff;
  font-size: 56px;
  font-weight: 700;
  line-height: 1.139;
  text-align: left;
  text-transform: uppercase;
}
.ffx-about-hero .ffx-crumb { margin-top: 0; font-size: 18px; }

.ffx-about-story { padding: 140px 0 0; }
.ffx-about-story__grid {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}
.ffx-about-story__photos {
  display: flex;
  gap: 20px;
  width: 42%;
  flex: 0 0 42%;
}
.ffx-about-story__photos .is-narrow {
  width: 40%;
  height: 400px;
  object-fit: cover;
  display: block;
}
.ffx-about-story__wide {
  position: relative;
  width: 60%;
  height: 400px;
  overflow: hidden;
}
.ffx-about-story__wide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ffx-about-story__wide::after {
  content: "";
  position: absolute;
  top: -35%;
  left: 22%;
  width: 34%;
  height: 180%;
  background: rgba(255, 215, 0, 0.5);
  transform: rotate(32deg);
  pointer-events: none;
}
.ffx-about-story__copy { width: 51%; }
.ffx-about-story h2 {
  margin: 0 0 60px;
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
}
.ffx-about-story .ffx-prose,
.ffx-about-story .ffx-prose p {
  font-size: 18px;
  line-height: 1.6;
}

.ffx-about-values {
  position: relative;
  padding: 128px 0 0;
  overflow: hidden;
}
.ffx-about-values::before {
  content: "";
  position: absolute;
  width: 680px;
  height: 680px;
  top: -120px;
  right: -220px;
  background: radial-gradient(circle, rgba(255, 215, 0, 0.14), transparent 68%);
  pointer-events: none;
}
.ffx-about-values h2 {
  position: relative;
  margin: 0 0 65px;
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.15;
  text-align: center;
  text-transform: uppercase;
}
.ffx-about-values__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.ffx-about-value {
  position: relative;
  overflow: hidden;
  min-height: 266px;
  padding: 142px 30px 23px;
  background: #2d2d2d;
  border: 1px solid rgba(255, 255, 255, 0.28);
}
.ffx-about-value::before {
  content: "";
  position: absolute;
  top: var(--y, 50%);
  left: var(--x, 50%);
  width: 220%;
  height: 220%;
  background: radial-gradient(circle, rgba(255, 215, 0, 0.42), transparent 42%);
  opacity: 0;
  transform: translate(-50%, -50%);
  transition: opacity 0.45s ease;
  pointer-events: none;
}
.ffx-about-value:hover::before { opacity: 1; }
.ffx-about-value > * { position: relative; z-index: 1; }
.ffx-about-value > .ffx-about-value__mark {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  margin: 0;
  background: none;
}
.ffx-about-value__mark img,
.ffx-about-value__mark svg {
  width: 68px;
  height: 68px;
  margin: 0;
}
.ffx-about-value h3 {
  margin: 0 0 15px;
  color: #fff;
  font-size: 24px;
  font-weight: 600;
}
.ffx-about-value p {
  margin: 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 16px;
  line-height: 1.625;
}

.ffx-about-video { padding: 140px 0 0; }
.ffx-about-video__frame {
  position: relative;
  height: 600px;
  overflow: hidden;
  background-color: #111;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.ffx-about-video__frame video {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
}
.ffx-about-video__frame.is-playing video {
  opacity: 1;
  pointer-events: auto;
}
.ffx-about-video__frame.is-playing .ffx-about-video__play,
.ffx-about-video__frame.is-playing .ffx-about-video__caption {
  opacity: 0;
  pointer-events: none;
}
.ffx-about-video__play {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 84px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--ffx-color-accent);
  color: #222;
  cursor: pointer;
  transform: translate(-50%, -50%);
}
.ffx-about-video__play::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: 50%;
  background: rgba(255, 215, 0, 0.22);
  animation: ffx-video-pulse 3s cubic-bezier(0.29, 0.36, 0.13, 0.44) infinite;
}
.ffx-about-video__play svg,
.ffx-about-video__play img {
  width: 28px;
  height: 28px;
}
.ffx-about-video__play:hover { transform: translate(-50%, -50%) scale(1.12); }
.ffx-about-video__play:hover::before { animation-play-state: paused; }
@keyframes ffx-video-pulse {
  50% { transform: scale(1.45); }
}
.ffx-about-video__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  width: min(100%, 700px);
  padding: 27px 50px 30px 40px;
  background: linear-gradient(180deg, transparent, rgba(17, 17, 17, 0.45));
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(9px);
}
.ffx-about-video__caption h2 {
  margin: 0;
  color: #fff;
  font-size: 36px;
  font-weight: 600;
  line-height: 1.2;
  text-transform: uppercase;
}

.ffx-about-team { padding: 134px 0 48px; }
.ffx-about-team__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 66px;
}
.ffx-about-team__head h2 {
  max-width: 855px;
  margin: 0 0 17px;
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
}
.ffx-about-team__head p {
  max-width: 855px;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 18px;
  line-height: 1.5;
}
.ffx-about-team__head .ffx-btn { flex: none; }
.ffx-about-team__grid { overflow: hidden; }
.ffx-about-team__grid .swiper-wrapper {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px 24px;
}
.ffx-about-team__grid .swiper-slide {
  width: auto;
  height: auto;
  margin: 0;
}
.ffx-about-team__grid .ffx-dots { display: none; }
.ffx-about-card {
  height: 100%;
  padding: 25px 25px 30px;
  border: 1px solid rgba(255, 255, 255, 0.28);
}
.ffx-about-card__media {
  position: relative;
  height: 345px;
}
.ffx-about-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ffx-about-card__more {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  white-space: nowrap;
}
.ffx-about-card__more:hover {
  background: transparent;
  color: #fff;
  border-color: #fff;
}
.ffx-about-card__body { padding: 35px 10px 0; text-align: center; }
.ffx-about-card h3 { margin: 0 0 10px; font-size: 24px; font-weight: 600; }
.ffx-about-card h3 a { color: #fff; }
.ffx-about-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 16px;
}

.ffx-about-cta {
  position: relative;
  min-height: 522px;
  padding: 83px 0 95px;
  overflow: hidden;
  background-color: #111;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.ffx-about-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(17, 17, 17, 0.55) 0%, rgba(17, 17, 17, 0.62) 50%, rgba(17, 17, 17, 0.55) 100%);
}
.ffx-about-cta::after {
  content: "";
  position: absolute;
  top: -45%;
  right: 4%;
  width: 160px;
  height: 190%;
  background: rgba(255, 215, 0, 0.42);
  transform: rotate(28deg);
  pointer-events: none;
}
.ffx-about-cta .ffx-wrap {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
}
.ffx-about-cta__inner {
  width: min(100%, 900px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.ffx-about-cta h2 {
  margin: 0 0 40px;
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
  text-align: center;
}
.ffx-about-cta .ffx-btn:hover {
  background: transparent;
  color: #fff;
  border-color: #fff;
}

@media (max-width: 1199px) {
  .ffx-about-hero h1,
  .ffx-about-story h2,
  .ffx-about-values h2,
  .ffx-about-team__head h2,
  .ffx-about-cta h2 { font-size: 42px; }
  .ffx-about-story h2 { margin-bottom: 25px; }
}
@media (max-width: 991px) {
  .ffx-about-hero { height: auto; min-height: 420px; padding: 120px 0 80px; }
  .ffx-about-story__grid,
  .ffx-about-team__head { flex-direction: column; align-items: flex-start; }
  .ffx-about-story__photos,
  .ffx-about-story__copy { width: 100%; flex-basis: auto; }
  .ffx-about-story__photos .is-narrow,
  .ffx-about-story__wide { height: 280px; }
  .ffx-about-values__grid,
  .ffx-about-team__grid .swiper-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ffx-about-video__frame { height: 420px; }
  .ffx-about-team__head { margin-bottom: 40px; }
}
@media (max-width: 575px) {
  .ffx-about-hero h1 { font-size: 34px; }
  .ffx-about-values__grid { grid-template-columns: 1fr; }
  .ffx-about-team__grid.swiper-initialized .swiper-wrapper { display: flex; gap: 0; }
  .ffx-about-team__grid.swiper-initialized .swiper-slide { height: auto; }
  .ffx-about-team__grid .ffx-dots { display: flex; margin-top: 24px; }
  .ffx-about-video__caption { padding: 20px 15px; }
  .ffx-about-video__caption h2,
  .ffx-about-story h2,
  .ffx-about-values h2,
  .ffx-about-team__head h2,
  .ffx-about-cta h2 { font-size: 32px; }
}

.ffx-stories {
  position: relative;
  padding: 60px 0 90px;
  overflow: hidden;
  background: var(--ffx-color-bg);
}
.ffx-stories::before {
  content: "";
  position: absolute;
  width: 680px;
  height: 680px;
  top: -80px;
  right: -240px;
  background: radial-gradient(circle, rgba(255, 215, 0, 0.14), transparent 68%);
  pointer-events: none;
}
.ffx-stories__head {
  position: relative;
  z-index: 1;
  text-align: center;
  margin-bottom: 58px;
}
.ffx-stories__head h2 {
  margin: 0 0 18px;
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
}
.ffx-stories__head h2.ff-reveal { transition-duration: 1.2s; }
.ffx-stories__head p {
  max-width: 640px;
  margin: 0 auto;
  color: rgba(255, 255, 255, 0.72);
  font-size: 18px;
  line-height: 1.5;
}
.ffx-stories__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.ffx-stories .ffx-swiper {
  width: calc(60vw + 650px);
  margin-left: max(12px, calc((100% - var(--ffx-container-max)) / 2));
  overflow: hidden;
}
.ffx-stories .swiper-slide {
  width: 400px;
  max-width: 78vw;
  height: auto;
}
.ffx-story {
  position: relative;
  height: 520px;
  overflow: hidden;
  background: #1a1a1a;
  border: 1px solid rgba(255, 255, 255, 0.28);
  transition: border-color 0.35s ease;
}
.ffx-story:hover { border-color: var(--ffx-color-accent); }
.ffx-story img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.ffx-story:hover img { transform: scale(1.06); }
.ffx-story__tag {
  position: absolute;
  top: 16px;
  z-index: 1;
  padding: 7px 14px;
  font-family: "Sora", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1;
  text-transform: uppercase;
}
.ffx-story__tag--before {
  left: 16px;
  color: #fff;
  background: rgba(17, 17, 17, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(8px);
}
.ffx-story__tag--after {
  right: 16px;
  color: #222;
  background: var(--ffx-color-accent);
}
.ffx-story__info {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  padding: 48px 24px 24px;
  text-align: center;
  background: linear-gradient(180deg, transparent, rgba(17, 17, 17, 0.88));
}
.ffx-story__info h3 {
  margin: 0 0 6px;
  color: #fff;
  font-size: 20px;
  font-weight: 600;
}
.ffx-story__info p {
  margin: 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 18px;
  line-height: 1.4;
}
.ffx-stories__cta {
  position: relative;
  z-index: 1;
  margin-top: 0px;
  text-align: center;
}
.ffx-stories__cta p {
  margin: 0 0 22px;
  color: #fff;
  font-size: 18px;
}
@media (max-width: 991px) {
  .ffx-stories__grid { grid-template-columns: 1fr 1fr; }
  .ffx-stories__head h2 { font-size: 42px; }
  .ffx-story { height: 460px; }
}
@media (max-width: 575px) {
  .ffx-stories { padding: 72px 0 64px; }
  .ffx-stories__grid { grid-template-columns: 1fr; }
  .ffx-stories__head h2 { font-size: 32px; }
  .ffx-story { height: 420px; }
}

.ffx-ig {
  position: relative;
  padding: 110px 0 90px;
  overflow: hidden;
}
.ffx-ig::before {
  content: "";
  position: absolute;
  width: 680px;
  height: 680px;
  top: -80px;
  right: -240px;
  background: radial-gradient(circle, rgba(255, 215, 0, 0.14), transparent 68%);
  pointer-events: none;
}
.ffx-ig__head {
  position: relative;
  z-index: 1;
  text-align: center;
  margin-bottom: 58px;
}
.ffx-ig__head h2 {
  margin: 0 0 18px;
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.15;
  text-transform: uppercase;
}
.ffx-ig__head h2.ff-reveal { transition-duration: 1.2s; }
.ffx-ig__head p {
  max-width: 640px;
  margin: 0 auto;
  color: rgba(255, 255, 255, 0.6);
  font-size: 18px;
  line-height: 1.5;
}
.ffx-ig__handle {
  display: inline-block;
  margin-top: 14px;
  color: var(--ffx-color-accent);
  font-family: "Sora", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.ffx-ig__handle:hover { color: #fff; }
.ffx-ig__grid {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: nowrap;
  gap: 24px;
}
.ffx-ig__card {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-width: 0;
  color: #fff;
  background: rgba(255, 255, 255, 0.04);
  transition: 0.4s;
}
.ffx-ig__media {
  position: relative;
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  background: #111;
}
.ffx-ig__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.ffx-ig__card:hover img { transform: scale(1.06); }
.ffx-ig__meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 16px 8px 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  font-family: "Sora", sans-serif;
  font-size: 15px;
  font-weight: 600;
}
.ffx-ig__meta span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ffx-ig__icon {
  width: 16px;
  height: 16px;
  color: var(--ffx-color-accent);
}
.ffx-ig__cta {
  position: relative;
  z-index: 1;
  margin-top: 48px;
  text-align: center;
}
@media (max-width: 1024px) {
  .ffx-ig__head h2 { font-size: 42px; }
  .ffx-ig__grid { gap: 14px; }
  .ffx-ig__meta { gap: 10px; font-size: 13px; }
}
@media (max-width: 767px) {
  .ffx-ig { padding: 72px 0 64px; }
  .ffx-ig__head { margin-bottom: 32px; }
  .ffx-ig__head h2 { font-size: 32px; }
  .ffx-ig__grid { gap: 8px; }
  .ffx-ig__meta { gap: 4px; padding: 8px 2px; font-size: 11px; }
}

.ffx-tt {
  position: relative;
  padding: 40px 0 80px;
  overflow: hidden;
}
.ffx-tt h2 {
  margin: 0 0 48px;
  color: #fff;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.15;
  text-align: center;
  text-transform: uppercase;
}
.ffx-tt__tabs {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 36px;
}
.ffx-tt__tabs-track {
  display: flex;
  gap: 12px;
  flex: 1;
  overflow-x: auto;
  scrollbar-width: none;
}
.ffx-tt__tabs-track::-webkit-scrollbar { display: none; }
.ffx-tt__arrow,
.ffx-tt__tab {
  height: 48px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  background: transparent;
  color: #fff;
  cursor: pointer;
}
.ffx-tt__arrow {
  flex: none;
  width: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ffx-tt__arrow svg,
.ffx-tt__arrow img {
  width: 18px;
  height: 16px;
}
.ffx-tt__tab {
  flex: none;
  padding: 0 22px;
  font-family: "Sora", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ffx-tt__arrow:hover,
.ffx-tt__tab:hover,
.ffx-tt__tab.is-active {
  background: var(--ffx-color-accent);
  border-color: var(--ffx-color-accent);
  color: #222;
}
.ffx-tt__scroll { overflow-x: auto; }
.ffx-tt__table { min-width: 1100px; }
.ffx-tt__row {
  display: grid;
  grid-template-columns: 128px repeat(7, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}
.ffx-tt__row.is-off { display: none; }
.ffx-tt__head {
  padding: 16px 8px;
  background: #2a2a22;
  color: #fff;
  font-family: "Sora", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-align: center;
  text-transform: uppercase;
}
.ffx-tt__time {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 132px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  line-height: 1.3;
  text-align: center;
  white-space: nowrap;
}
.ffx-tt__cell {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 132px;
  padding: 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.ffx-tt__card {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 8px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #fff;
  text-align: center;
}
.ffx-tt__card.is-off { display: none; }
.ffx-tt__card:hover { border-color: var(--ffx-color-accent); }
.ffx-tt__icon {
  width: 28px;
  height: 14px;
  fill: var(--ffx-color-accent);
}
.ffx-tt__card strong {
  color: var(--ffx-color-accent);
  font-family: "Sora", sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
}
.ffx-tt__card span {
  color: rgba(255, 255, 255, 0.75);
  font-size: 13px;
}
@media (max-width: 767px) {
  .ffx-tt h2 { font-size: 32px; }
}

footer#contact {
  background: #1a1a1a;
  color: rgba(255, 255, 255, 0.62);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}
footer#contact .container {
  width: min(100% - 32px, var(--ffx-container-max, 1264px));
}
footer#contact .font-heading {
  font-style: normal;
  letter-spacing: 0.04em;
}
footer#contact h4 {
  font-family: "Sora", sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #fff;
}
footer#contact a {
  transition: color 0.25s ease;
}
footer#contact a:hover {
  color: var(--ffx-color-accent);
}
footer#contact .rounded-full {
  border-radius: 0;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
}
footer#contact .rounded-full:hover {
  background: var(--ffx-color-accent);
  border-color: var(--ffx-color-accent);
  color: #222;
}
footer#contact .border-gray-900,
footer#contact .border-t {
  border-color: rgba(255, 255, 255, 0.12);
}
footer#contact .text-gray-600 {
  color: rgba(255, 255, 255, 0.45);
}
footer#contact .text-gray-800 {
  color: rgba(255, 255, 255, 0.2);
}

.ffx-stories .ffx-swiper,
.ffx-pricing .ffx-swiper,
.ffx-ig .ffx-swiper {
  width: 100%;
  margin-left: 0;
  overflow: hidden;
}
.ffx-stories .swiper-slide,
.ffx-pricing .swiper-slide,
.ffx-ig .swiper-slide {
  width: auto;
  max-width: none;
  height: auto;
}
.ffx-pricing .swiper-slide { display: flex; }
.ffx-pricing .ffx-price { width: 100%; height: 100%; }
.ffx-ig .swiper-slide .ffx-ig__card { width: 100%; flex: none; }

/* Narrow screens: keep the menu in the drawer until the bar actually fits. */
@media (max-width: 1279px) {
  body [data-ff-nav] .md\:flex {
    display: none !important;
  }
  body [data-ff-menu-toggle] {
    display: block !important;
  }
  body [data-ff-mobile-panel],
  body [data-ff-menu-overlay] {
    display: block !important;
  }
}
@media (min-width: 1280px) and (max-width: 1439px) {
  body [data-ff-nav] .md\:flex {
    gap: 16px !important;
  }
  body .ffx-header-cta {
    padding: 10px 16px;
  }
}
@media (max-width: 420px) {
  body [data-ff-nav] .text-2xl {
    font-size: 18px;
  }
}

@media (max-width: 1024px) {
  footer#contact .grid {
    grid-template-columns: 1fr 1fr;
  }
  .ffx-contact__grid,
  .ffx-class-about__grid,
  .ffx-split {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ffx-class-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  footer#contact.py-20 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
  footer#contact .grid {
    grid-template-columns: 1fr;
  }
  .ffx-class-grid {
    grid-template-columns: 1fr;
  }
  .ffx-contact h2,
  .ffx-values h2,
  .ffx-split h2,
  .ffx-about-cta h2,
  #main-content h2.font-heading {
    font-size: 30px !important;
    line-height: 1.2 !important;
  }
  .ffx-contact__grid,
  .ffx-contact__grid > * {
    min-width: 0;
    max-width: 100%;
  }
  #main-content a[href^="mailto:"].inline-flex {
    display: flex;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    justify-content: center;
    text-align: center;
  }
  .ff-cookie {
    padding: 12px 16px 14px;
  }
  .ff-wa {
    bottom: 7.5rem;
    right: 1rem;
  }
  .ffx-programs .ffx-swiper {
    width: calc(100% - 32px);
    margin-left: 16px;
    margin-right: 16px;
  }
  .ffx-programs .swiper-slide {
    max-width: none;
  }
}
