/* Anchors generated from the original <button onclick="window.open(...)"> elements: keep button-like centring. */
.wp-btn-link,
a.rg-btn-outline,
a.rg-btn-primary,
a.rg-btn-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

/* Support cards were div[role=button]; as anchors they must not pick up the theme's link typography. */
a.rg-support-card {
  font-weight: inherit;
  color: inherit;
  text-decoration: none;
}

/* Decorative star in the testimonial section extends past narrow viewports on pages whose Elementor wrapper does not clip it. */
.testimonial-style-two-area {
  overflow-x: clip;
}

/* ---------------------------------------------------------------------------------------------
   Tighter page tops (intentional deviation from the WordPress spacing).
   Every inner page starts with an EMPTY theme banner under the fixed header (180px top padding), and the
   hero below it added its own large padding on top. The banner now only clears the header (nav is ~106px
   tall on desktop, ~81px on tablet/phone) and the heroes use modest padding.
   --------------------------------------------------------------------------------------------- */
.breadcrumb-area {
  padding-top: 114px;
  padding-bottom: 0;
  margin-bottom: 0;
}
@media (max-width: 1023px) {
  .breadcrumb-area {
    padding-top: 88px;
  }
}

/* service department + services index heroes (were 112px / 88px, 80px / 64px on phones) */
[class^="svc-"] .hero {
  padding-top: 40px;
  padding-bottom: 64px;
}
@media (max-width: 767px) {
  [class^="svc-"] .hero {
    padding-top: 28px;
    padding-bottom: 48px;
  }
}

/* events pages: hero filled the whole viewport (min-h-screen) with 96px of top padding */
header.min-h-screen {
  min-height: min(100vh, 800px);
  padding-top: 48px;
  padding-bottom: 48px;
}
@media (max-width: 1023px) {
  header.min-h-screen {
    min-height: 0;
    padding-top: 28px;
    padding-bottom: 56px;
  }
}

/* event detail pages: first section had 160px of top padding */
.breadcrumb-area + section.pt-40 {
  padding-top: 48px;
}
/* About: the first Elementor section had 120px of top padding (set by Elementor's per-page CSS, hence !important) */
.breadcrumb-area + .elementor > .elementor-top-section:first-child {
  padding-top: 48px !important;
}
/* blog list banner (200px, 60px on phones) */
.elementor-3440 .content-box {
  padding-top: 56px !important;
}
/* blog post + category/tag/author/date archives: 120px section padding under the banner */
.breadcrumb-area + .blog-area {
  padding-top: 48px;
}
@media (max-width: 767px) {
  .breadcrumb-area + section.pt-40 {
    padding-top: 28px;
  }
  .breadcrumb-area + .elementor > .elementor-top-section:first-child {
    padding-top: 28px !important;
  }
  .elementor-3440 .content-box {
    padding-top: 28px !important;
  }
  .breadcrumb-area + .blog-area {
    padding-top: 28px;
  }
}

/* homepage: the hero used to sit inside the theme's padded, width-limited container (120px above and below,
   background inset from the page edges) and was a full 100vh tall. It is now full-width and content-height. */
.rg-home {
  padding-top: 0;
  padding-bottom: 0;
}
.rg-home > .container {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
.rg-home .row {
  margin-left: 0;
  margin-right: 0;
}
.rg-home .col-lg-12 {
  padding-left: 0;
  padding-right: 0;
}
#rg-hero {
  min-height: 0;
  padding: 144px 24px 64px;
}
@media (max-width: 767px) {
  #rg-hero {
    padding: 108px 16px 44px;
  }
}
