/*
 * Forge Fitness Club 4.4.0 - full-bleed hero backgrounds with contained text.
 * Design rules belong to the child theme, not Elementor Advanced CSS.
 * Native root Elementor containers stay e-con-full. The prior global Elementor
 * width:1180px restriction was removed because it clipped the background art.
 */
:root { --forge-site-box-width: 1180px; }

/* The Elementor page area must not inherit a centered 1180px box. */
body.elementor-page .site-main,
body.page-template-elementor_header_footer .site-main,
body.elementor-page #content,
body.page-template-elementor_header_footer #content,
body.elementor-page .site-content,
body.page-template-elementor_header_footer .site-content,
body.elementor-page .page-content,
body.page-template-elementor_header_footer .page-content {
  width: 100% !important;
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Exactly the 13 native-Elementor published pages, NOT the global header/footer. */
body .elementor:is(
  .elementor-3,.elementor-14,.elementor-16,.elementor-18,.elementor-20,
  .elementor-22,.elementor-24,.elementor-26,.elementor-28,
  .elementor-162,.elementor-163,.elementor-164,.elementor-165
) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
body .elementor:is(
  .elementor-3,.elementor-14,.elementor-16,.elementor-18,.elementor-20,
  .elementor-22,.elementor-24,.elementor-26,.elementor-28,
  .elementor-162,.elementor-163,.elementor-164,.elementor-165
) > :is(.e-con,.elementor-section) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-inline: 0 !important;
  box-sizing: border-box !important;
}
/* Full-width, edge-to-edge background region, with inner text aligned to 1180px. */
body .elementor .forge-hero,
body .elementor .forge-page-hero {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-inline: 0 !important;
  padding-left: max(24px,calc((100% - var(--forge-site-box-width))/2)) !important;
  padding-right: max(24px,calc((100% - var(--forge-site-box-width))/2)) !important;
  isolation: isolate !important;
}
/* For every subpage, the existing hero photo is the background, not a boxed panel. */
body .elementor .forge-page-hero > .forge-page-hero-image,
body .elementor .forge-hero > .forge-hero-photo {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  z-index: 0 !important;
  pointer-events: none !important;
}
body .elementor .forge-page-hero > .forge-page-hero-image .elementor-widget-container,
body .elementor .forge-hero > .forge-hero-photo .elementor-widget-container,
body .elementor .forge-page-hero > .forge-page-hero-image img,
body .elementor .forge-hero > .forge-hero-photo img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
}
body .elementor .forge-page-hero > .forge-page-hero-image img {
  filter: grayscale(.85) brightness(.55) !important;
}
body .elementor .forge-page-hero::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: linear-gradient(90deg,#050505 0%,rgba(5,5,5,.96) 19%,rgba(5,5,5,.62) 56%,rgba(5,5,5,.21) 100%) !important;
  pointer-events: none !important;
}
body .elementor .forge-page-hero > .forge-page-hero-copy,
body .elementor .forge-hero > .forge-hero-copy {
  position: relative !important;
  z-index: 3 !important;
  max-width: min(100%,610px) !important;
  min-width: 0 !important;
}
body .elementor .forge-page-hero .elementor-heading-title,
body .elementor .forge-hero .elementor-heading-title { color: #fff !important; }
body .elementor .forge-hero .forge-orange { color: #ff5a18 !important; }
/* Ordinary information sections retain a readable centered content measure. */
body .elementor .forge-section > .forge-section-head,
body .elementor .forge-section > .forge-shell,
body .elementor .forge-section > .forge-detail-grid,
body .elementor .forge-section > .forge-editorial-grid,
body .elementor .forge-section > .forge-program-grid,
body .elementor .forge-section > .forge-pricing-grid,
body .elementor .forge-section > .forge-contact-grid,
body .elementor .forge-section > .forge-schedule-grid,
body .elementor .forge-section > .forge-trainer-grid,
body .elementor .forge-section > .forge-reviews-grid,
body .elementor .forge-section > .forge-testimonial-carousel,
body .elementor .forge-section > .forge-split {
  max-width: var(--forge-site-box-width) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* On small screens backgrounds remain full width while text has safe gutters. */
@media(max-width:767px){
  body .elementor .forge-page-hero,
  body .elementor .forge-hero {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  body .elementor .forge-page-hero::after {
    background: linear-gradient(90deg,rgba(0,0,0,.91),rgba(0,0,0,.60)) !important;
  }
  body .elementor .forge-page-hero > .forge-page-hero-copy,
  body .elementor .forge-hero > .forge-hero-copy {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Header Contact and native Elementor Pro form remain unchanged. */
.forge-header .forge-header-cta { white-space: nowrap; }

/* Native Pro Elements testimonial carousel: one well-defined card per slide. */
body .elementor .forge-reviews .forge-testimonial-carousel {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 auto !important;
}
body .elementor .forge-reviews .forge-testimonial-carousel .swiper-slide {
  height: auto !important;
  box-sizing: border-box !important;
  padding: 2px !important;
}
body .elementor .forge-reviews .forge-testimonial-carousel .elementor-testimonial {
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 15px !important;
  height: 100% !important;
  min-height: 285px !important;
  margin: 0 !important;
  padding: 27px 25px !important;
  border: 2px solid #ff5a18 !important;
  border-radius: 12px !important;
  background: #151515 !important;
  box-shadow: 0 8px 26px rgba(0, 0, 0, .25) !important;
  text-align: left !important;
}
body .elementor .forge-reviews .forge-testimonial-carousel .elementor-testimonial__content {
  width: 100% !important;
  min-width: 0 !important;
}
/* Visual rating for the nine clearly identified demonstration testimonials.
   This is a theme pseudo-element, never embedded HTML or a page-level style. */
body .elementor .forge-reviews .forge-testimonial-carousel .elementor-testimonial__content::before {
  content: "★★★★★" !important;
  display: block !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  margin-bottom: 17px !important;
  color: #ff6a27 !important;
  font-family: Arial, sans-serif !important;
  font-size: 19px !important;
  line-height: 1.1 !important;
  letter-spacing: 3px !important;
  border: 0 !important;
  background: none !important;
}
body .elementor .forge-reviews .forge-testimonial-carousel .elementor-testimonial__text {
  color: #f2f2f2 !important;
  font: 400 14px/1.85 Inter, Arial, sans-serif !important;
}
body .elementor .forge-reviews .forge-testimonial-carousel .elementor-testimonial__name {
  color: #ff7138 !important;
  font: 800 15px/1.4 Inter, Arial, sans-serif !important;
}
body .elementor .forge-reviews .forge-testimonial-carousel .elementor-testimonial__title {
  display: none !important;
}
body .elementor .forge-reviews .forge-testimonial-carousel .elementor-testimonial__footer {
  margin-top: auto !important;
}
body .elementor .forge-reviews .forge-testimonial-carousel .elementor-swiper-button {
  color: #ff5a18 !important;
}

@media (max-width: 767px) {
  body .elementor .forge-reviews .forge-testimonial-carousel .elementor-testimonial {
    min-height: 250px !important;
    padding: 22px 20px !important;
  }
}

/* v4.3.0 regression guard: native Elementor sections must remain e-con-full.
 * The SITE wrapper is boxed at 1180px; hero backgrounds stay behind their copy.
 * Never force individual root Elementor heroes into e-con-boxed/e-con-inner markup.
 */
body .elementor .forge-hero,
body .elementor .forge-page-hero {
  box-sizing: border-box !important;
  isolation: isolate !important;
  position: relative !important;
  overflow: hidden !important;
}
body .elementor .forge-hero {
  align-items: flex-start !important;
  justify-content: center !important;
}
body .elementor .forge-hero > .forge-hero-photo,
body .elementor .forge-page-hero > .forge-page-hero-image {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
body .elementor .forge-hero > .forge-hero-copy,
body .elementor .forge-page-hero > .forge-page-hero-copy {
  position: relative !important;
  z-index: 3 !important;
  margin: 0 !important;
  align-items: flex-start !important;
}
body .elementor .forge-hero > .forge-hero-copy {
  width: min(100%, 610px) !important;
  max-width: 610px !important;
}
body .elementor .forge-hero > .forge-hero-photo img,
body .elementor .forge-page-hero > .forge-page-hero-image img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
@media(max-width:767px){
  body .elementor .forge-hero,
  body .elementor .forge-page-hero {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  body .elementor .forge-hero > .forge-hero-copy,
  body .elementor .forge-page-hero > .forge-page-hero-copy {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  body .elementor .forge-hero h1,
  body .elementor .forge-hero h1.elementor-heading-title {
    font-size: clamp(39px, 10.5vw, 60px) !important;
    line-height: .98 !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
  }
  body .elementor .forge-page-hero-copy h1,
  body .elementor .forge-page-hero-copy h1.elementor-heading-title {
    font-size: clamp(38px, 10vw, 60px) !important;
    line-height: 1.05 !important;
    overflow-wrap: break-word !important;
    max-width: 100% !important;
  }
}
