/* ==========================================================================
   THE GYM — WordPress & Elementor adjustments
   site.css is the static build's stylesheet, unchanged. This file only makes
   WordPress and Elementor wrappers invisible to that design.
   ========================================================================== */

/* ---------- Admin bar (logged-in users) ---------- */
.admin-bar .site-header { top: 32px; }
.admin-bar .site-nav { top: 32px; }
@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
  .admin-bar .site-nav { top: 46px; }
}
@media (max-width: 600px) {
  /* WordPress lets the admin bar scroll away on phones */
  .admin-bar .site-header { top: 0; }
}

/* ---------- Elementor wrappers ----------
   Containers that hold The Gym widgets add no width limit, padding or gap:
   each widget brings its own section spacing, exactly as in the static build. */
.elementor .e-con:has(> .elementor-widget[class*="elementor-widget-thegym-"]),
.elementor .e-con:has(> .e-con-inner > .elementor-widget[class*="elementor-widget-thegym-"]) {
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  --content-width: 100%;
  --container-max-width: 100%;
  --width: 100%;
  --margin-top: 0px;
  --margin-bottom: 0px;
}
.elementor .e-con:has(> .elementor-widget[class*="elementor-widget-thegym-"]) > .e-con-inner {
  max-width: none;
  padding: 0;
  gap: 0;
}
.elementor .elementor-widget[class*="elementor-widget-thegym-"] {
  width: 100%;
  max-width: 100%;
  margin: 0;
}
.elementor-widget[class*="elementor-widget-thegym-"] > .elementor-widget-container { margin: 0; padding: 0; }

/* Elementor zeroes every figure's margin inside widgets; restore the design's */
.elementor .elementor-widget .pillar figure.door { margin-bottom: 1.75rem; }
.elementor .elementor-widget .founder figure.door { margin-bottom: 2rem; }

/* Elementor's generic image rules lose to the design's own sizing */
.elementor .door__inner img,
.elementor .hero__video,
.elementor .facility__media img,
.elementor .shot img,
.elementor .banner__media img,
.elementor .cta__media img,
.elementor .next-page__media img { height: 100%; }
.elementor .partners__logos img { height: clamp(44px, 5vw, 64px); }
.elementor .partners__logos .is-tall { height: clamp(70px, 8vw, 100px); }
.elementor .mosaic__item img { height: auto; }

/* Native Elementor widgets dropped between ours pick up the design's type */
.elementor-widget-heading .elementor-heading-title { font-family: var(--serif); font-weight: 400; color: inherit; }
.elementor-widget-text-editor { color: var(--smoke); }

/* ---------- Editor preview ----------
   Show everything straight away, so content can be edited without scrolling
   animations hiding it. Pinned scrolling and parallax are off in the editor. */
.elementor-editor-active [data-reveal],
.elementor-editor-active .fade-late { opacity: 1; translate: none; transition: none; }
.elementor-editor-active .line-mask > span { transform: none; transition: none; }
.elementor-editor-active .door::before { display: none; }
.elementor-editor-active .door__media { clip-path: none; transition: none; }
.elementor-editor-active .door__inner img { scale: 1; transition: none; }
.elementor-editor-active .hero__video { scale: 1; }
.elementor-editor-active .loader { display: none; }
.elementor-editor-active .quote { transition: none; }

/* ---------- Plain pages (not built with Elementor) ---------- */
.page-plain { padding-top: calc(var(--header-h) + var(--section) * .6); }
.page-plain .title { margin-bottom: 2.5rem; }
.page-plain__content { max-width: 46rem; }
.page-plain__content h2, .page-plain__content h3 { margin: 2em 0 .6em; font-family: var(--serif); color: var(--bone); }
.page-plain__content a { color: var(--bone); text-decoration: underline; text-decoration-color: var(--brass); text-underline-offset: .2em; }
.page-plain--404 { min-height: 80vh; }
.page-plain__lede { max-width: 30rem; margin-bottom: 2.5rem; color: var(--smoke); }

/* ---------- Contact Form 7 inside the Contact widget ---------- */
.form .wpcf7-form-control-wrap { display: block; }
.form .wpcf7-form-control-wrap > input,
.form .wpcf7-form-control-wrap > textarea { display: block; }
.form .wpcf7-not-valid { border-color: #b4553f; }
.form .wpcf7-not-valid-tip { margin-top: .4rem; font-size: .8125rem; color: #d07a63; }
.form-wrap .wpcf7 form .wpcf7-response-output {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: .875rem;
  color: var(--brass);
}
.form-wrap .wpcf7 form.invalid .wpcf7-response-output,
.form-wrap .wpcf7 form.failed .wpcf7-response-output { color: #d07a63; }
.form-wrap .wpcf7-spinner { margin: 0; background-color: var(--brass); }
.form-wrap .wpcf7 form > p:empty { display: none; }
