/* JPR Public UI Balance
   One spacing baseline for visitor-facing pages.
   Fixes templates that were missing the same roomy hero and first-section padding. */
html body {
  --jpr-public-container-x: clamp(1.5rem, 4vw, 5.5rem);
  --jpr-public-hero-top-final: clamp(5rem, 6.5vw, 6.25rem);
  --jpr-public-hero-bottom-final: clamp(5rem, 6.25vw, 6rem);
  --jpr-public-section-top-final: clamp(4.75rem, 5.75vw, 5.75rem);
  --jpr-public-section-bottom-final: clamp(5rem, 6vw, 6rem);
  --jpr-public-card-gap-final: clamp(1.6rem, 2.4vw, 2.25rem);
}

html body .jpr-uniform-hero,
html body section.jpr-uniform-hero.position-relative,
html body section.jpr-uniform-hero.position-relative.overflow-hidden.bg-white {
  padding-top: var(--jpr-public-hero-top-final) !important;
  padding-bottom: var(--jpr-public-hero-bottom-final) !important;
  margin: 0 !important;
  min-height: 0 !important;
  display: block !important;
  background: #fff !important;
}

html body .jpr-uniform-hero > .container,
html body .jpr-section-polish > .container,
html body .jpr-circle-page > .container,
html body .jpr-contact-gateway > .container,
html body .jpr-account-auth > .container {
  width: 100% !important;
  max-width: 1320px !important;
  padding-left: var(--jpr-public-container-x) !important;
  padding-right: var(--jpr-public-container-x) !important;
}

html body .jpr-uniform-hero__title,
html body .jpr-uniform-hero h1 {
  margin-top: 0 !important;
  margin-bottom: clamp(1.05rem, 1.5vw, 1.45rem) !important;
  line-height: 1.02 !important;
}

html body .jpr-uniform-hero__subtitle,
html body .jpr-uniform-hero .lead {
  max-width: 760px !important;
  margin: 0 !important;
  line-height: 1.45 !important;
}

html body .jpr-uniform-hero__fade {
  height: 0 !important;
  opacity: 0 !important;
}

/* First content region: the section starts after the hero with the same breathing room everywhere. */
html body .jpr-uniform-hero + section,
html body .jpr-uniform-hero + .jpr-section-polish,
html body .jpr-uniform-hero + section.py-5.jpr-section-polish,
html body .jpr-uniform-hero + .jpr-circle-page,
html body .jpr-uniform-hero + .jpr-contact-gateway,
html body .jpr-uniform-hero + .jpr-account-auth,
html body .jpr-uniform-hero + section.py-5,
html body .jpr-uniform-hero + section.bg-light {
  margin-top: 0 !important;
  padding-top: var(--jpr-public-section-top-final) !important;
  padding-bottom: var(--jpr-public-section-bottom-final) !important;
}

/* Remove Bootstrap utility drift while preserving roomy vertical rhythm. */
html body section.py-5.jpr-section-polish,
html body .jpr-section-polish.py-5,
html body .jpr-circle-page,
html body .jpr-contact-gateway,
html body .jpr-account-auth {
  padding-top: var(--jpr-public-section-top-final) !important;
  padding-bottom: var(--jpr-public-section-bottom-final) !important;
}

html body .jpr-section-polish .row,
html body .jpr-circle-page .row,
html body .jpr-contact-gateway .row,
html body .jpr-account-auth .row {
  --bs-gutter-y: var(--jpr-public-card-gap-final) !important;
}

html body .jpr-section-polish .card,
html body .jpr-circle-page .card,
html body .jpr-account-auth .card,
html body .jpr-contact-gateway .card,
html body .jpr-section-polish .jpr-card,
html body .jpr-circle-page .jpr-card {
  margin-top: 0 !important;
}

@media (max-width: 991.98px) {
  html body {
    --jpr-public-container-x: clamp(1.15rem, 5vw, 2rem);
    --jpr-public-hero-top-final: 4.25rem;
    --jpr-public-hero-bottom-final: 4rem;
    --jpr-public-section-top-final: 3.75rem;
    --jpr-public-section-bottom-final: 4.25rem;
    --jpr-public-card-gap-final: 1.35rem;
  }
}

@media (max-width: 575.98px) {
  html body {
    --jpr-public-container-x: 1.05rem;
    --jpr-public-hero-top-final: 3.45rem;
    --jpr-public-hero-bottom-final: 3.25rem;
    --jpr-public-section-top-final: 2.95rem;
    --jpr-public-section-bottom-final: 3.45rem;
    --jpr-public-card-gap-final: 1.15rem;
  }
}
