.zonli-club-join {
  --zcj-fg: #f7f4ee;
  --zcj-btn-bg: #2a3b2b;
  --zcj-btn-fg: #ffffff;
  position: relative;
  width: 100%;
  min-height: var(--zcj-min-h, 720px);
  overflow: hidden;
  color: var(--zcj-fg);
  background: #1f2c22;
}

.zonli-club-join__media,
.zonli-club-join__media img,
.zonli-club-join__media .empty-image-class {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Preserve the complete uploaded artwork on desktop and large screens. */
@media screen and (min-width: 960px) {
  .zonli-club-join__media img {
    object-fit: contain;
  }

  .zonli-club-join--adapt-desktop-image {
    min-height: 0;
    aspect-ratio: var(--zcj-image-ratio, auto);
  }

  .zonli-club-join--adapt-desktop-image > .page-width {
    height: 100%;
  }

  .zonli-club-join--adapt-desktop-image .zonli-club-join__inner {
    height: 100%;
    min-height: 0;
  }
}

.zonli-club-join__overlay {
  position: absolute;
  inset: 0;
  background: rgba(20, 28, 22, var(--zcj-overlay, 0.28));
  pointer-events: none;
}

.zonli-club-join__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: var(--zcj-min-h, 720px);
  text-align: center;
  padding: 80px 0;
}

.zonli-club-join__content {
  display: grid;
  gap: 16px;
  justify-items: center;
  box-sizing: border-box;
  width: min(100%, 560px);
  max-width: 560px;
  margin-inline: auto;
  transform: translate(
    var(--zcj-content-x-desktop, 0px),
    var(--zcj-content-y-desktop, 0px)
  );
}

.zonli-club-join__eyebrow {
  margin: 0;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.9;
}

.zonli-club-join__heading {
  margin: 0;
  line-height: 1.2;
}

.zonli-club-join__text {
  margin: 0;
  font-size: var(--zcj-copy-size, 16px);
  line-height: var(--zcj-copy-leading, 150%);
  opacity: 0.92;
}

.zonli-club-join__text p {
  margin: 0;
}

a.button.zonli-club-join__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-top: 8px;
  min-height: var(--zcj-btn-h, 48px);
  padding: 0 var(--zcj-btn-px, 28px);
  border-radius: var(--button-border-radius);
  background-color: var(--zcj-btn-bg);
  color: var(--zcj-btn-fg);
  text-decoration: none;
}

a.button.zonli-club-join__cta::after {
  box-shadow: none;
}

a.button.zonli-club-join__cta:hover {
  background-color: var(--zcj-btn-bg);
  opacity: 0.92;
}

a.button.zonli-club-join__cta:focus-visible {
  outline: 2px solid var(--zcj-btn-fg);
  outline-offset: 3px;
}

@media screen and (min-width: 750px) and (max-width: 959px) {
  .zonli-club-join,
  .zonli-club-join__inner {
    min-height: var(--zcj-min-h-tablet, 380px);
  }

  .zonli-club-join__content {
    transform: translate(
      var(--zcj-content-x-pad, 0px),
      var(--zcj-content-y-pad, 0px)
    );
  }
}

@media screen and (max-width: 749px) {
  .zonli-club-join,
  .zonli-club-join__inner {
    min-height: var(--zcj-min-h-mobile, 340px);
  }

  .zonli-club-join__inner {
    padding: 56px 0;
  }

  .zonli-club-join__content {
    transform: translate(
      var(--zcj-content-x-mobile, 0px),
      var(--zcj-content-y-mobile, 0px)
    );
  }
}

/* Theme editor: align editable headings and copy without changing data/control alignment. */
.zonli-club-join[data-editable-text-align="left"] :is(h1, h2, h3, h4, h5, h6, p, .rte, .button) { text-align: left; }
.zonli-club-join[data-editable-text-align="center"] :is(h1, h2, h3, h4, h5, h6, p, .rte, .button) { text-align: center; }
.zonli-club-join[data-editable-text-align="right"] :is(h1, h2, h3, h4, h5, h6, p, .rte, .button) { text-align: right; }

/* Flex buttons need main-axis alignment in addition to text-align. */
.zonli-club-join[data-editable-text-align="left"] .button { justify-content: flex-start; }
.zonli-club-join[data-editable-text-align="center"] .button { justify-content: center; }
.zonli-club-join[data-editable-text-align="right"] .button { justify-content: flex-end; }

/* Content block alignment: move the whole box left / center / right.
   When aligned, the horizontal position nudge yields to the alignment
   (only the vertical nudge still applies). */
.zonli-club-join[data-editable-text-align="left"] .zonli-club-join__content { margin-inline: 0 auto; justify-items: start; }
.zonli-club-join[data-editable-text-align="center"] .zonli-club-join__content { margin-inline: auto; justify-items: center; }
.zonli-club-join[data-editable-text-align="right"] .zonli-club-join__content { margin-inline: auto 0; justify-items: end; }

.zonli-club-join__content { transform: translateY(var(--zcj-content-y-desktop, 0px)); }
@media screen and (min-width: 750px) and (max-width: 959px) {
  .zonli-club-join__content { transform: translateY(var(--zcj-content-y-pad, 0px)); }
}
@media screen and (max-width: 749px) {
  .zonli-club-join__content { transform: translateY(var(--zcj-content-y-mobile, 0px)); }
}

/* Large screens: the theme's .page-width is left-anchored, so centered content
   still sits left of the viewport center. Center this section's page-width. */
.zonli-club-join > .page-width { margin-inline: auto !important; }
