/* CS Gym Design custom overrides (post-Webflow migration) */

/* Brand partners: full-width heading above a tidy logo grid */
section.partners .maxw-1200.padding-4rem.aligned-center {
  flex-flow: column;
  align-items: stretch;
  width: 100%;
  max-width: 1400px;
}
section.partners .heading-2.aligned-center {
  width: 100%;
  justify-content: center;
  text-align: center;
  margin-bottom: 1.5rem;
}
section.partners .partner-logos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 2.5rem 2rem;
  width: 100%;
  max-width: none;
  align-items: center;
  justify-items: center;
}
section.partners .partner-logo {
  height: auto;
  width: auto;
  max-height: 44px;
  max-width: 150px;
  object-fit: contain;
}
section.partners .partner-logo.smaller { max-height: 32px; }
section.partners .partner-logo.larger { max-height: 60px; }

@media (max-width: 600px) {
  section.partners .partner-logos {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem 1rem;
  }
  section.partners .partner-logo { max-width: 100px; max-height: 34px; }
  section.partners .partner-logo.larger { max-height: 44px; }
}

/* Coming Soon projects: 4-up grid spanning the content width */
.projects-coming-soon,
.project-collection.is-coming-soon {
  width: 100%;
  max-width: none;
}
.project-list.is-coming-soon {
  grid-template-columns: repeat(4, 1fr);
  width: 100%;
}
.project-item.is-coming-soon {
  max-width: none;
  width: 100%;
}
@media (max-width: 991px) {
  .project-list.is-coming-soon { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .project-list.is-coming-soon { grid-template-columns: 1fr; }
}

/* What Sets Us Apart section: allow taller copy than the theme's fixed section height */
section.image-with-text.wsua { height: auto; max-height: none; min-height: 60vh; }
section.image-with-text.wsua .img-container { align-self: stretch; }
section.image-with-text.wsua .img-container img { height: 100%; object-fit: cover; }

/* Intro tagline ("Fitness that fits you."): centered on the page */
section.intro {
  justify-content: center;
}
section.intro .maxw-1200 {
  justify-content: center;
  align-items: center;
  margin-left: auto;
  margin-right: auto;
}
section.intro .heading,
section.intro .paragraph {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/* Homepage image-with-text sections: uniform spacing between header, blurb, and image */
section.image-with-text .image-text {
  justify-content: center;
  row-gap: 1.5rem;
  padding-top: 5rem;
  padding-bottom: 4rem;
}
section.image-with-text .image-text .paragraph {
  margin-top: 0;
  margin-bottom: 0;
}
section.image-with-text .image-text .header-white-bg {
  margin-top: 0;
  margin-bottom: 0;
}
/* beat the theme's per-section padding variants for uniform vertical rhythm */
section.image-with-text .image-text.padding-4rem,
section.image-with-text .image-text.padding-4rem.top-padding-5rem,
section.image-with-text .image-text.padding-4rem.top-padding-8rem,
section.image-with-text .image-text.padding-4rem.top-padding-5rem.left-text,
section.image-with-text .image-text.padding-4rem.top-padding-8rem.lefttext {
  padding-top: 5rem;
  padding-bottom: 4rem;
}
/* title cards: kill the theme's per-section % offsets so every title sits
   the same distance above its blurb */
section.image-with-text .image-text .header-white-bg {
  top: 0;
  bottom: auto;
}
/* Intro statement: single large line filling the band */
section.intro .heading.intro-statement {
  font-size: 4rem;
  line-height: 1.15;
  letter-spacing: 4px;
  width: 100%;
  max-width: none;
  flex: 0 0 auto;
  justify-content: center;
  text-align: center;
}
@media (max-width: 991px) {
  section.intro .heading.intro-statement { font-size: 2.8rem; }
}
@media (max-width: 600px) {
  section.intro .heading.intro-statement { font-size: 2rem; letter-spacing: 2px; }
}
/* Our Process: architectural schematic sheet in the Development step */
img.schematic-sheet {
  width: 100%;
  height: auto;
  max-height: 720px;
  object-fit: contain;
  background: #f7f5ef;
  border: 1px solid #e3e0d8;
}

/* partner logos are links (2026-07-10) */
.partner-logos a{display:flex;align-items:center;justify-content:center;text-decoration:none;transition:opacity .15s}
.partner-logos a:hover{opacity:.6}

/* Mobile: the offset/parallax section headings (.header-white-bg) slide
   off-screen left on phones and crop the text (worst on /our-process).
   Kill the decorative offsets under 768px; !important beats the inline
   transform Webflow's interaction runtime keeps writing. */
@media (max-width: 767px) {
  .header-white-bg,
  .header-white-bg.static,
  .header-white-bg.anchor-right {
    transform: none !important;
    left: 0 !important;
    right: 0 !important;
    max-width: 100%;
  }
  .header-white-bg .heading-2 { overflow-wrap: break-word; max-width: 100%; }
  /* the scroll-zoom interaction scales these section containers past the
     viewport edge on phones, cropping words; keep them flat on mobile */
  .flex-column.padding-3rem,
  .flex-rows.padding-2rem,
  .image-steps {
    transform: none !important;
  }
}

/* homepage "What sets us apart" header: Webflow never gave it the
   slide-in the sibling headers have; replicate the preset (fade +
   slide from right, easeOutQuart 600ms, 5% scroll offset via JS) */
.wsua-anim { transition: opacity .6s cubic-bezier(.165,.84,.44,1), transform .6s cubic-bezier(.165,.84,.44,1); }
.wsua-anim.wsua-pre { opacity: 0; transform: translateX(100px); }

/* Contact form: budget checkbox group (added 2026-07-27) */
#Contact-form .budget-legend { margin-bottom: .4rem; }
#Contact-form .budget-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .35rem 1rem;
  margin-bottom: 1rem;
}
#Contact-form .budget-option {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: 0;
  font-family: var(--main);
  font-size: .85rem;
  line-height: 1.3;
  cursor: pointer;
}
#Contact-form .budget-option input {
  width: 1rem;
  height: 1rem;
  margin: 0;
  flex: 0 0 auto;
  accent-color: #2f2f2f;
  cursor: pointer;
}
@media (max-width: 600px) {
  #Contact-form .budget-group { grid-template-columns: 1fr; }
}

/* the contact section was a fixed 80vh; the longer form (address/phone/budget)
   overflowed it and the submit button slid under the footer */
section.contact { height: auto; min-height: 680px; padding: 3rem 0; }

/* Contact form: attachment field + honeypot (2026-07-28) */
#Contact-form .cs-honey { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
#Contact-form .file-field {
  width: 100%;
  height: auto;
  padding: .55rem .65rem;
  margin-bottom: .35rem;
  font-family: var(--main);
  font-size: .85rem;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: .5rem;
  cursor: pointer;
}
#Contact-form .file-field::file-selector-button {
  font-family: var(--main);
  font-size: .8rem;
  padding: .35rem .7rem;
  margin-right: .7rem;
  color: #fff;
  background: #2f2f2f;
  border: 0;
  border-radius: .35rem;
  cursor: pointer;
}
#Contact-form .file-hint { font-family: var(--main); font-size: .75rem; opacity: .65; margin-bottom: 1rem; }
#Contact-form .file-error {
  font-family: var(--main);
  font-size: .8rem;
  color: #a12b2b;
  margin-bottom: 1rem;
}
#Contact-form .file-error[hidden] { display: none; }
