/* Local overrides and interactions. Imported styles preserve the original design. */
html { scroll-behavior: smooth; }
body { overflow-x: clip; }
/* Scale the banner lettering with its oval, including at browser zoom breakpoints. */
.elementor-2 .elementor-element.elementor-element-0f8e21c,
.elementor-2 .elementor-element.elementor-element-95885a0 {
  container-type: inline-size;
}
.elementor-2 .elementor-element.elementor-element-0f8e21c .elementor-heading-title,
.elementor-2 .elementor-element.elementor-element-95885a0 .elementor-heading-title {
  font-size: min(6.5rem, 23cqi);
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}
/* Match the light Montserrat lettering visible on the existing site. */
.elementor-kit-6 h1, .elementor-kit-6 h2, .elementor-kit-6 h5,
.elementor-kit-6 .hfe-menu-item, .elementor-kit-6 .elementor-button-text {
  font-variation-settings: "wght" 300;
  font-weight: 300;
}
[id] { scroll-margin-top: 120px; }
:focus-visible { outline: 3px solid #ff517c; outline-offset: 4px; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.form-status { margin: 16px 0 0; font: inherit; line-height: 1.5; }
.form-status:empty { display: none; }
.form-status[data-state="error"] { color: #bc1640; background: #fff4f6; padding: 12px; border-radius: 8px; }
.form-status[data-state="success"] { color: #115a32; background: #ecfff3; padding: 12px; border-radius: 8px; }
[data-registration] button:disabled { cursor: wait; opacity: .65; }
.elementor-145 select.mf-input { width: 100%; min-height: 52px; background: white; color: #454545; border: 1px solid #ddd; border-radius: 5px; padding: 12px 16px; font-family: inherit; }
.elementor-145 input[type="checkbox"] { display: inline-block !important; position: static !important; opacity: 1 !important; width: 18px !important; height: 18px !important; margin-right: 8px !important; accent-color: #ff517c; appearance: auto; }
.elementor-145 .mf-checkbox-option span::before, .elementor-145 .mf-checkbox-option span::after { display: none !important; }
.hfe-nav-menu__toggle { cursor: pointer; }
.pg-crop-img, .pg-crop-item { cursor: zoom-in; }
.elementor-2 .elementor-element.elementor-element-bfaa6f1 > .e-con-inner {
  align-items: stretch;
}
.elementor-2 .elementor-element.elementor-element-bfaa6f1 .trainer-card {
  --width: 25%;
  flex: 0 0 25%;
  width: 25%;
  min-width: 0;
}
.trainer-card__surface {
  height: 100%;
}
.forza-lightbox { border: 0; padding: 0; max-width: 94vw; max-height: 94vh; background: #111; border-radius: 6px; color: white; }
.forza-lightbox::backdrop { background: rgb(0 0 0 / .85); }
.forza-lightbox img { display: block; max-height: 85vh; max-width: 94vw; object-fit: contain; }
.forza-lightbox button { display: block; margin: 8px auto; background: white; color: #111; border: 0; padding: 8px 24px; }
@media (max-width: 1024px) {
  .elementor-2 .elementor-element.elementor-element-bfaa6f1 .trainer-card {
    --width: 50%;
    flex-basis: 50%;
    width: 50%;
  }
  .hfe-nav-menu nav { display: none; }
  .hfe-nav-menu.is-open nav { display: block !important; visibility: visible !important; opacity: 1 !important; height: auto !important; width: calc(100vw - 20px); position: absolute; top: 100%; left: 0; z-index: 100; background: #f8f8f8; }
  .hfe-nav-menu.is-open nav ul { display: flex; flex-direction: column; width: 100%; visibility: visible !important; opacity: 1 !important; }
  .hfe-nav-menu.is-open nav a { padding: 15px 24px; }
}
@media (max-width: 767px) {
  .elementor-2 .elementor-element.elementor-element-bfaa6f1 .trainer-card {
    --width: 100%;
    flex-basis: 100%;
    width: 100%;
  }
}
/* Give the home navigation the space left by the social links and signup button. */
.home #masthead .e-con-inner {
  flex-wrap: nowrap;
  align-items: center;
}
.home #masthead .elementor-element-302aa56 {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
}
.home #masthead .elementor-element-72197c7 {
  width: auto;
  flex: 0 0 auto;
  flex-wrap: nowrap;
}
.home #masthead nav > ul { flex-wrap: nowrap; }
.home #masthead .hfe-menu-item,
.home #masthead .elementor-button { white-space: nowrap; }
@media (max-width: 1200px) {
  .home #masthead .elementor-element-fef0d41 {
    --padding-left: 16px;
    --padding-right: 16px;
  }
  .home #masthead .elementor-element-302aa56 { padding: 8px 0; }
  .home #masthead .elementor-element-72197c7 { display: none; }
  .home #masthead .elementor-widget-navigation-menu { width: 100%; }
  .home #masthead .hfe-nav-menu__toggle {
    display: flex;
    visibility: visible;
    opacity: 1;
    width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
  }
  .home #masthead nav { display: none; }
  .home #masthead .is-open nav {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    width: 100%;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 100;
    background: #f8f8f8;
  }
  .home #masthead .is-open nav ul {
    display: flex;
    flex-direction: column;
    width: 100%;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .home #masthead .is-open nav a { padding: 15px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
