/*
 * Shared register / benefits split panel.
 *
 * Used by the catalogue archive and service archive pages (engineering, etc.).
 * Class names stay `.rq-cat-*` so existing Elementor templates keep working.
 */

.rq-page .rq-cat-split {
  background-color: var(--rq-card);
}

.rq-page .rq-cat-register {
  --flex-direction: column;
  display: flex;
  flex-direction: column;
}

@media (min-width: 1024px) {
  .rq-page .rq-cat-split .rq-split__panel {
    padding-inline: 4rem;
    padding-block: 3.5rem;
  }
}

.rq-page .rq-cat-register__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  margin-block-start: 1rem;
}

/* React split-panel body offset — desktop only (lg+). */
@media (min-width: 1024px) {
  .rq-page .rq-cat-register__body {
    margin-block-start: calc(134px - 4.07vw);
  }
}

@media (min-width: 1406px) {
  .rq-page .rq-cat-register__body {
    margin-block-start: 47px;
  }
}

.rq-page .rq-cat-register__rule {
  display: block;
  margin-block-start: 1.5rem;
  border-top: 1px solid var(--rq-border);
  min-height: 0;
  height: 0;
  overflow: hidden;
  padding: 0;
}

.rq-page .rq-cat-register__features {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-block-start: 1.5rem;
}

@media (min-width: 640px) {
  .rq-page .rq-cat-register__features {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.rq-page .rq-cat-register__feature {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.rq-cat-register__feature-label {
  min-width: 0;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.25;
}

.rq-page .rq-cat-register__cta {
  width: 100%;
  margin-block-start: 1.75rem;
}

.rq-page .rq-cat-register__cta .elementor-button-wrapper,
.rq-page .rq-cat-register__cta .elementor-button {
  width: 100% !important;
  max-width: 100%;
}

@media (min-width: 640px) {
  .rq-page .rq-cat-register__cta {
    width: fit-content;
  }

  .rq-page .rq-cat-register__cta .elementor-button-wrapper,
  .rq-page .rq-cat-register__cta .elementor-button {
    width: auto !important;
  }
}

@media (min-width: 1024px) {
  .rq-page .rq-cat-register__cta {
    margin-block-start: auto;
    margin-block-end: 1.125rem;
  }
}

.rq-cat-benefits__intro {
  margin-block-start: 1rem;
  max-width: 42rem;
}

.rq-page .rq-cat-benefits__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-block-start: 1.25rem;
}

@media (min-width: 640px) {
  .rq-page .rq-cat-benefits__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.rq-page .rq-cat-benefit {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid var(--rq-border);
  border-radius: var(--rq-radius-brand);
  background-color: var(--rq-background);
}

.rq-cat-benefit__title {
  margin-block-start: 0.5rem;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
}

.rq-cat-benefit__text {
  margin-block-start: 0.25rem;
  font-size: 13px;
  line-height: 1.35;
  color: var(--rq-muted-foreground);
}

.rq-page .rq-cat-benefits .rq-panel__link {
  margin-block-start: auto;
  padding-block-start: 1.5rem;
}

.rq-page .rq-cat-split .rq-split__grid {
  display: grid;
  grid-template-columns: 1fr;
  margin-inline: auto;
  width: 100%;
  max-width: var(--rq-container-max);
}

@media (min-width: 1024px) {
  .rq-page .rq-cat-split .rq-split__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.rq-page .rq-cat-split .rq-split__panel {
  --flex-direction: column;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 1.5rem;
}

@media (min-width: 768px) {
  .rq-page .rq-cat-split .rq-split__panel {
    padding: 2.5rem;
  }
}

@media (min-width: 1024px) {
  .rq-page .rq-cat-split .rq-split__panel--divider {
    border-right: 1px solid var(--rq-border);
  }

  .rq-page .rq-cat-benefits {
    border-top: 0;
  }
}

.rq-page .rq-cat-benefits {
  border-top: 1px solid var(--rq-border);
}

@media (min-width: 1024px) {
  .rq-page .rq-cat-benefits {
    border-top: 0;
  }
}

.rq-page .rq-panel__link {
  margin-block-start: auto;
}

/*
 * Mobile-only split-panel polish.
 *
 * Elementor post CSS often loads after the theme and sets flex-grow / min-height
 * on nested `.e-con` children. These rules use higher specificity + fit-content
 * so heading boxes hug text. Desktop rules above stay untouched.
 */
@media (max-width: 767px) {
  .rq-page .rq-cat-split .rq-split__grid.e-con,
  .rq-page .rq-cat-split .rq-split__grid {
    --e-con-grid-template-columns: 1fr !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: start !important;
  }

  .rq-page .rq-cat-split .rq-split__panel.e-con,
  .rq-page .rq-cat-register.e-con,
  .rq-page .rq-cat-benefits.e-con {
    --flex-direction: column !important;
    --flex-grow: 0 !important;
    --justify-content: flex-start !important;
    --align-items: stretch !important;
    --gap: 0px !important;
    --min-height: 0px !important;
    --height: auto !important;
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 0 !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 0 !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .rq-page .rq-cat-register.e-con > .elementor-element,
  .rq-page .rq-cat-benefits.e-con > .elementor-element {
    --margin-block-start: 0px !important;
    --margin-block-end: 0px !important;
    --flex-grow: 0 !important;
    flex-grow: 0 !important;
    flex: none !important;
    margin: 0 !important;
    padding-block-start: 0 !important;
    padding-block-end: 0 !important;
  }

  .rq-page .rq-cat-register.e-con > .rq-headline.e-con,
  .rq-page .rq-cat-benefits.e-con > .rq-headline.e-con {
    margin-block-start: 1.25rem !important;
    margin-top: 1.25rem !important;
  }

  .rq-page .rq-cat-register.e-con > .rq-h2-fit.e-con,
  .rq-page .rq-cat-benefits.e-con > .rq-h2-fit.e-con {
    --flex-grow: 0 !important;
    --flex-shrink: 0 !important;
    --flex-basis: auto !important;
    --min-height: 0px !important;
    --height: fit-content !important;
    --align-self: stretch !important;
    --width: 100% !important;
    flex: 0 0 auto !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
    flex-basis: auto !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: fit-content !important;
    max-height: fit-content !important;
    margin-block-end: 0 !important;
    padding: 0 !important;
  }

  .rq-page .rq-cat-register .rq-h2-fit > .elementor-element,
  .rq-page .rq-cat-benefits .rq-h2-fit > .elementor-element {
    --flex-grow: 0 !important;
    --min-height: 0px !important;
    flex: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .rq-page .rq-cat-register.e-con > .rq-cat-register__body.e-con {
    --flex-grow: 0 !important;
    --margin-block-start: 1rem !important;
    flex: none !important;
    flex-grow: 0 !important;
    margin-block-start: 1rem !important;
    margin-top: 1rem !important;
    padding-block-start: 0 !important;
    padding-top: 0 !important;
  }

  .rq-page .rq-cat-benefits.e-con > .rq-cat-benefits__intro {
    --margin-block-start: 1rem !important;
    margin-block-start: 1rem !important;
    margin-top: 1rem !important;
    padding-block-start: 0 !important;
    padding-top: 0 !important;
  }

  .rq-page .rq-cat-benefits.e-con > .rq-cat-benefits__grid.e-con {
    --margin-block-start: 1.25rem !important;
    --flex-grow: 0 !important;
    flex: none !important;
    margin-block-start: 1.25rem !important;
    margin-top: 1.25rem !important;
  }

  .rq-page .rq-cat-benefits.e-con > .rq-panel__link.e-con {
    --flex-grow: 0 !important;
    flex: none !important;
    margin-block-start: 1.5rem !important;
    margin-top: 1.5rem !important;
    padding-block-start: 0 !important;
  }

  .rq-page .rq-cat-register__cta {
    margin-block-start: 1.75rem !important;
    margin-top: 1.75rem !important;
  }
}

/* Split-panel type scale */
.rq-page .rq-cat-register .rq-h2 .elementor-heading-title,
.rq-page .rq-cat-benefits .rq-h2 .elementor-heading-title {
  font-size: clamp(1.75rem, 6.9cqi, 2.875rem) !important;
  font-weight: 600 !important;
  line-height: 1.18 !important;
}

.rq-page .rq-cat-register .rq-body,
.rq-page .rq-cat-register .rq-body p,
.rq-page .rq-cat-benefits .rq-body,
.rq-page .rq-cat-benefits .rq-body p {
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.625 !important;
}

@media (min-width: 768px) {
  .rq-page .rq-cat-register .rq-body,
  .rq-page .rq-cat-register .rq-body p,
  .rq-page .rq-cat-benefits .rq-body,
  .rq-page .rq-cat-benefits .rq-body p {
    font-size: 1.125rem !important;
  }
}

.rq-page .rq-cat-register .rq-eyebrow,
.rq-page .rq-cat-benefits .rq-eyebrow {
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  line-height: 1rem !important;
}

.rq-page .rq-cat-benefit__title .elementor-heading-title {
  font-size: 15px !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
}

.rq-page .rq-cat-benefit__text,
.rq-page .rq-cat-benefit__text p {
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}

@media (max-width: 767px) {
  .rq-page .rq-cat-register .rq-h2 .elementor-heading-title,
  .rq-page .rq-cat-benefits .rq-h2 .elementor-heading-title {
    font-size: 28px !important;
    font-weight: 600 !important;
  }

  .rq-page .rq-cat-register .rq-body,
  .rq-page .rq-cat-register .rq-body p,
  .rq-page .rq-cat-benefits .rq-body,
  .rq-page .rq-cat-benefits .rq-body p {
    font-size: 16px !important;
    font-weight: 400 !important;
  }
}
