.gymful-facilities-rows {
  --facilities-item-width: 310px;
  --facilities-item-height: 235px;
  --facilities-item-gap: 12px;
  --facilities-row-gap: 12px;
  --facilities-speed-top: 34s;
  --facilities-speed-bottom: 38s;
  --facilities-intro-button-text: #111;
  --facilities-intro-button-hover-text: #111;
  --facilities-intro-button-fill: #C6B04F;
  --facilities-intro-button-bg: transparent;
  --facilities-intro-button-border: #C6B04F;
  --facilities-intro-button-hover-border: #C6B04F;
  --facilities-hover-button-text: #111;
  --facilities-hover-button-hover-text: #111;
  --facilities-hover-button-fill: #C6B04F;
  --facilities-hover-button-bg: #fff;
  --facilities-hover-button-border: #C6B04F;
  --facilities-hover-button-hover-border: #C6B04F;
  --facilities-cursor-offset-x: 0px;
  --facilities-cursor-offset-y: 0px;
  --facilities-marquee-shift-top: 0px;
  --facilities-marquee-shift-bottom: 0px;
  width: 100%;
}

.gymful-facilities-rows * {
  box-sizing: border-box;
}

.facilities-layout {
  width: 100%;
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: 70px;
}

.facilities-intro {
  flex: 0 0 320px;
  max-width: 320px;
  min-width: 0;
}

.facilities-intro__label {
  font-size: 15px;
  line-height: 1.2;
  margin-bottom: 14px;
}

.facilities-intro__heading {
  font-size: clamp(32px, 3vw, 58px);
  line-height: .95;
  font-weight: 800;
  letter-spacing: -0.035em;
  margin: 0 0 22px;
}

.facilities-intro__text {
  font-size: 18px;
  line-height: 1.65;
  margin: 0 0 28px;
}

.facilities-gallery {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--facilities-row-gap);
  /* Desktop: gallery starts after the intro block and only bleeds to the right viewport edge. */
  overflow: hidden;
  margin-right: calc(50% - 50vw);
  padding-right: 0;
  padding-top: 8px;
  padding-bottom: 8px;
}

.facilities-row {
  width: 100%;
  overflow: visible;
}

.facilities-row__track {
  display: flex;
  width: max-content;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.facilities-row__group {
  display: flex;
  align-items: stretch;
  gap: var(--facilities-item-gap);
  flex: 0 0 auto;
  padding-right: var(--facilities-item-gap);
}

.facilities-row__group--clone {
  display: none;
}

.facility-card {
  position: relative;
  display: block;
  flex: 0 0 var(--facilities-item-width);
  width: var(--facilities-item-width);
  height: var(--facilities-item-height);
  overflow: visible;
  text-decoration: none;
  color: inherit;
  isolation: isolate;
  background: #f3f0e8;
  transform: translateZ(0);
}


.facility-card:hover,
.facility-card:focus-visible {
  z-index: 10;
}

.facility-card__media {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  overflow: hidden;
  border-radius: inherit;
  background: #f3f0e8;
}

.facility-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s cubic-bezier(.19, 1, .22, 1);
}

.facility-card__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .65s cubic-bezier(.19, 1, .22, 1), filter .65s cubic-bezier(.19, 1, .22, 1);
}

.facility-card:hover .facility-card__image,
.facility-card:focus-visible .facility-card__image {
  transform: scale(1.035);
}

/* Scoped Facilities radial-fill button */
.gymful-facilities-rows .facilities-fill-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
  background: var(--_button-bg, #fff);
  border: 1px solid var(--_button-border, #C6B04F);
  color: var(--_button-text, #111);
  border-radius: 999px;
  text-decoration: none;
  line-height: 1;
  padding: 15px 25px;
  transition: color .35s cubic-bezier(.19, 1, .22, 1), border-color .35s cubic-bezier(.19, 1, .22, 1), opacity .35s cubic-bezier(.19, 1, .22, 1), transform .35s cubic-bezier(.19, 1, .22, 1);
}

.gymful-facilities-rows .facilities-fill-button::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--_button-fill, #C6B04F);
  border-radius: inherit;
  clip-path: circle(0% at 0% 100%);
  pointer-events: none;
  will-change: clip-path;
  transition: clip-path .82s cubic-bezier(.19, 1, .22, 1);
}

.gymful-facilities-rows .facilities-fill-button:hover,
.gymful-facilities-rows .facilities-fill-button:focus-visible {
  color: var(--_button-hover-text, #111);
  border-color: var(--_button-hover-border, #C6B04F);
}

.gymful-facilities-rows .facilities-fill-button:hover::before,
.gymful-facilities-rows .facilities-fill-button:focus-visible::before {
  clip-path: circle(155% at 0% 100%);
}

.facilities-button-content {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
}

.facilities-button-text,
.facilities-button-icon {
  position: relative;
  z-index: 3;
}

.facilities-button-icon {
  font-size: 8px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  transition: transform .35s cubic-bezier(.19, 1, .22, 1);
}

.facilities-button-icon svg {
  width: 1em;
  height: 1em;
  display: block;
}

.gymful-facilities-rows .facilities-fill-button:hover .facilities-button-icon,
.gymful-facilities-rows .facilities-fill-button:focus-visible .facilities-button-icon {
  transform: translateX(3px);
}

.facility-hover-button {
  position: absolute;
  left: var(--facility-x, 50%);
  top: var(--facility-y, 50%);
  z-index: 5;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) translate(var(--facilities-cursor-offset-x), var(--facilities-cursor-offset-y)) scale(.98);
  will-change: left, top, transform, opacity;
}

.facility-card:hover .facility-hover-button,
.facility-card:focus-visible .facility-hover-button {
  opacity: 1;
  transform: translate(-50%, -50%) translate(var(--facilities-cursor-offset-x), var(--facilities-cursor-offset-y)) scale(1);
}

.gymful-facilities-rows .facilities-intro__button {
  --_button-text: var(--facilities-intro-button-text);
  --_button-hover-text: var(--facilities-intro-button-hover-text);
  --_button-fill: var(--facilities-intro-button-fill);
  --_button-bg: var(--facilities-intro-button-bg);
  --_button-border: var(--facilities-intro-button-border);
  --_button-hover-border: var(--facilities-intro-button-hover-border);
  margin-top: 8px;
}

.gymful-facilities-rows .facility-hover-button {
  --_button-text: var(--facilities-hover-button-text);
  --_button-hover-text: var(--facilities-hover-button-hover-text);
  --_button-fill: var(--facilities-hover-button-fill);
  --_button-bg: var(--facilities-hover-button-bg);
  --_button-border: var(--facilities-hover-button-border);
  --_button-hover-border: var(--facilities-hover-button-hover-border);
}

@keyframes gymfulFacilitiesMarqueeLeftTop {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(var(--facilities-marquee-shift-top) * -1), 0, 0); }
}

@keyframes gymfulFacilitiesMarqueeRightTop {
  from { transform: translate3d(calc(var(--facilities-marquee-shift-top) * -1), 0, 0); }
  to { transform: translate3d(0, 0, 0); }
}

@keyframes gymfulFacilitiesMarqueeLeftBottom {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(var(--facilities-marquee-shift-bottom) * -1), 0, 0); }
}

@keyframes gymfulFacilitiesMarqueeRightBottom {
  from { transform: translate3d(calc(var(--facilities-marquee-shift-bottom) * -1), 0, 0); }
  to { transform: translate3d(0, 0, 0); }
}

.gymful-facilities-rows:not(.is-desktop-marquee) .facilities-row__track {
  animation: none !important;
  transform: translate3d(0, 0, 0) !important;
}

.gymful-facilities-rows.is-desktop-marquee .facilities-row__group--clone {
  display: flex;
}

.gymful-facilities-rows.is-desktop-marquee.top-direction-left .facilities-row--top .facilities-row__track {
  animation: gymfulFacilitiesMarqueeLeftTop var(--facilities-speed-top) linear infinite;
}

.gymful-facilities-rows.is-desktop-marquee.top-direction-right .facilities-row--top .facilities-row__track {
  animation: gymfulFacilitiesMarqueeRightTop var(--facilities-speed-top) linear infinite;
}

.gymful-facilities-rows.is-desktop-marquee.bottom-direction-left .facilities-row--bottom .facilities-row__track {
  animation: gymfulFacilitiesMarqueeLeftBottom var(--facilities-speed-bottom) linear infinite;
}

.gymful-facilities-rows.is-desktop-marquee.bottom-direction-right .facilities-row--bottom .facilities-row__track {
  animation: gymfulFacilitiesMarqueeRightBottom var(--facilities-speed-bottom) linear infinite;
}

.gymful-facilities-rows.is-pause-on-hover .facilities-gallery:hover .facilities-row__track {
  animation-play-state: paused;
}

@media (max-width: 1180px) {
  .facilities-layout {
    flex-direction: column;
    align-items: stretch;
  }

  .facilities-intro {
    flex: 0 0 auto !important;
    max-width: 760px !important;
    width: 100%;
  }

  .facilities-gallery {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    overflow: hidden;
    padding-left: 0;
    padding-right: 0;
  }

  .facilities-row {
    overflow: hidden;
  }

  .facilities-row__group--clone {
    display: flex;
  }

  .gymful-facilities-rows.top-direction-left .facilities-row--top .facilities-row__track {
    animation: gymfulFacilitiesMarqueeLeftTop var(--facilities-speed-top) linear infinite;
  }

  .gymful-facilities-rows.top-direction-right .facilities-row--top .facilities-row__track {
    animation: gymfulFacilitiesMarqueeRightTop var(--facilities-speed-top) linear infinite;
  }

  .gymful-facilities-rows.bottom-direction-left .facilities-row--bottom .facilities-row__track {
    animation: gymfulFacilitiesMarqueeLeftBottom var(--facilities-speed-bottom) linear infinite;
  }

  .gymful-facilities-rows.bottom-direction-right .facilities-row--bottom .facilities-row__track {
    animation: gymfulFacilitiesMarqueeRightBottom var(--facilities-speed-bottom) linear infinite;
  }
}

@media (hover: none) {
  .facility-hover-button {
    left: 50%;
    top: 50%;
    opacity: 0;
  }

  .facility-card:active .facility-hover-button,
  .facility-card:focus-visible .facility-hover-button {
    opacity: 1;
  }
}
