/*
Theme Name: Regional Prosperity Child V2
Description: Child theme V2 for blog listing and custom local features
Author: Tim Developer
Template: regional-prosperity
Version: 2.0.53
*/

/* Import parent theme styles */
@import url("../regional-prosperity/style.css");

/* Custom child theme styles go below this line */

:root {
  --rp-blog-title-bg: #ece4d1;
  --rp-blog-title-text: #005a63;
  --rp-blog-title-text-hover: #004b53;
  --rp-blog-gutter: 60px;
  --rp-logo-lock-left: var(--rp-blog-gutter);
}

@media (min-width: 1441px) {
  :root {
    --rp-logo-lock-left: calc((100vw - 1440px) / 2 + 60px);
  }
}

@media (max-width: 1380px) {
  :root {
    --rp-blog-gutter: 50px;
  }
}

@media (max-width: 1200px) {
  :root {
    --rp-blog-gutter: 30px;
  }
}

.block-editor-block-list__layout h1,
.block-editor-block-list__layout h2,
.theme-html h1,
.theme-html h2 {
  padding-left: 0 !important;
  padding-inline-start: 0 !important;
}

.theme-html body.single-post h1,
.theme-html body.single-post h2 {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.theme-html body.single-post .blog-single__title {
  margin: 0 !important;
  max-width: none !important;
}

.page-blocks--blog,
.page-blocks--blog-single {
  background: linear-gradient(180deg, #fcfdff 0%, #f6f8fb 100%);
}

.page-blocks--blog-single {
  background: #fff;
}

#page-header nav.main-navigation > a.menu-item-blog {
  display: inline-block !important;
}

@media (min-width: 981px) {
  #page-header .uhc-table .nav-cell.nav-cell--right {
    width: 60% !important;
  }
}

.blog-listing {
  padding: 4.25rem 0;
}

.blog-listing__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.4rem;
  align-items: stretch;
  margin-bottom: 2.5rem;
}

.blog-listing__header-panel {
  background: linear-gradient(135deg, #0f2b46, #174a5f 45%, #10665f);
  color: #fff;
  border-radius: 1rem;
  padding: 1.8rem;
}

.blog-listing__eyebrow {
  margin: 0 0 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: #8cf5cf;
  font-size: 0.78rem;
}

.blog-listing__title {
  margin: 0;
  font-size: clamp(2rem, 3.8vw, 3rem);
  line-height: 1.1;
}

.blog-listing__intro {
  margin: 1rem 0 0;
  max-width: 60ch;
  color: #d8f1ef;
  font-size: 1.05rem;
}

.blog-listing__stats {
  min-width: 220px;
  background: #fff;
  border: 1px solid #dbe7ec;
  border-radius: 1rem;
  padding: 1rem 1rem 0.9rem;
  box-shadow: 0 10px 24px -22px rgba(14, 47, 67, 0.9);
}

.blog-listing__stats-value {
  margin: 0;
  font-size: 2rem;
  line-height: 1;
  font-weight: 700;
  color: #143f5b;
}

.blog-listing__stats-label {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #4c6679;
}

.blog-listing__stats-range {
  margin: 0.7rem 0 0;
  color: #217069;
  font-weight: 600;
}

.blog-listing__page-indicator {
  margin: 0 0 1rem;
  color: #4a6174;
  font-weight: 600;
}

.blog-listing__grid {
  display: grid;
  gap: 1.6rem;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.blog-card {
  border: 1px solid #dfecf0;
  border-radius: 0.95rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 12px 30px -25px rgba(14, 47, 67, 0.55);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.blog-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px -24px rgba(14, 47, 67, 0.65);
}

.blog-card__media {
  display: block;
  background: linear-gradient(120deg, #e8f3f6, #f6ece5);
  aspect-ratio: 16 / 9;
}

.blog-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog-card__placeholder {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #2f5f73;
}

.blog-card__content {
  padding: 1.2rem 1.2rem 1.3rem;
}

.blog-card__meta {
  margin: 0;
  font-size: 0.76rem;
  color: #6f7c90;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.blog-card__cats {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  color: #00a271;
}

.blog-card__title {
  margin: 0.8rem 0 0.55rem;
  font-size: 1.24rem;
  line-height: 1.3;
}

.blog-card__title a {
  color: var(--rp-blog-title-text);
  font-family: "Sora", sans-serif;
  font-weight: 700;
  text-decoration: none;
}

.blog-card__title a:hover {
  color: var(--rp-blog-title-text-hover);
}

.blog-card__excerpt {
  margin: 0 0 1.1rem;
  color: #4a5668;
}

.blog-card__author {
  margin: 0 0 1rem;
  padding-top: 0.9rem;
  border-top: 1px solid #e5edf1;
}

.blog-card__link {
  font-weight: 700;
  color: #005f85;
  text-decoration: none;
}

.blog-card__link:hover {
  color: #00a271;
}

.blog-listing__pagination {
  margin-top: 2.2rem;
}

.blog-listing__pagination ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.blog-listing__pagination a,
.blog-listing__pagination span {
  display: inline-block;
  padding: 0.48rem 0.78rem;
  border: 1px solid #c9dce3;
  border-radius: 0.45rem;
  text-decoration: none;
  color: #325066;
  background: #fff;
}

.blog-listing__pagination .current {
  background: #00a271;
  color: #fff;
  border-color: #00a271;
}

.blog-listing__empty {
  margin: 1rem 0;
}

.blog-single {
  padding: clamp(2.75rem, 4.2vw, 4.4rem) 0 clamp(3.2rem, 5.5vw, 5rem);
  max-width: 1440px;
  margin: 0 auto;
  box-sizing: border-box;
}

.blog-single.container-block {
  padding-left: var(--rp-blog-gutter);
  padding-right: var(--rp-blog-gutter);
}

body.single-post #page-header.page-header--default {
  background: #fff;
  border-bottom: 1px solid #dfecf0;
}

body.single-post main.page-blocks--blog-single {
  padding-top: 90px;
}

body.single-post #page-header.page-header--default .uhc-table .nav-cell nav.main-navigation > a,
body.single-post #page-header.page-header--default .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a,
body.single-post #page-header.page-header--default .uhc-table .nav-cell nav.main-navigation > a span,
body.single-post #page-header.page-header--default .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a span {
  color: #172740;
}

/* The "Our Prosperity" dropdown link is forced white (color:#fff !important) by
   the dark-hero nav rule (:not(.sticky-mode)). On the white blog header that
   makes it invisible, so re-assert the dark colour — text, caret and SVG —
   with higher specificity + !important to win against that rule. */
body.single-post #page-header.page-header--default:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a,
body.single-post #page-header.page-header--default:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a span,
body.single-post #page-header.page-header--default:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret,
body.single-post #page-header.page-header--default:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg,
body.single-post #page-header.page-header--default:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg path {
  color: #172740 !important;
  stroke: currentColor !important;
}

body.single-post #page-header.page-header--default .uhc-table .logo-cell a.alt-logo {
  display: inline-block;
}

body.single-post #page-header.page-header--default .uhc-table .logo-cell a.main-logo,
body.single-post #page-header.page-header--default .uhc-table .logo-cell a.mobile-logo {
  display: none;
}

body.single-post #page-header.page-header--default .mobile-menu-trigger .hm-bar,
body.single-post #page-header .mobile-menu-trigger .hm-bar,
body.single-post #page-header #hamburger-menu .hm-bar {
  background: #172740;
}

/* The dark-hero rule forces the hamburger bars white (#FFF !important) on
   non-sticky/non-opaque headers. On the white blog header that hides them, so
   re-assert dark with body.single-post specificity + !important to win. */
body.single-post #page-header:not(.page-header--opaque):not(.sticky-mode) #hamburger-menu .hm-bar,
body.single-post #page-header:not(.page-header--opaque):not(.sticky-mode) .mobile-menu-trigger .hm-bar,
body.single-post #page-header.page-header--default:not(.page-header--opaque):not(.sticky-mode) #hamburger-menu .hm-bar,
body.single-post #page-header.page-header--default:not(.page-header--opaque):not(.sticky-mode) .mobile-menu-trigger .hm-bar {
  background: #172740 !important;
}

@media (max-width: 1023px) {
  body.single-post main.page-blocks--blog-single {
    padding-top: 90px;
  }

  body.single-post #page-header.page-header--default .uhc-table .logo-cell a.alt-logo {
    width: 124px;
  }
}

@media (max-width: 1200px) {
  #page-header:not(.page-header--opaque):not(.sticky-mode) #hamburger-menu .hm-bar,
  #page-header:not(.page-header--opaque):not(.sticky-mode) .mobile-menu-trigger .hm-bar {
    background: #FFF !important;
  }

  body.page-id-893 #page-header:not(.page-header--opaque):not(.sticky-mode) #hamburger-menu .hm-bar,
  body.page-id-893 #page-header:not(.page-header--opaque):not(.sticky-mode) .mobile-menu-trigger .hm-bar,
  body.page-id-893 #page-header.page-header--default:not(.page-header--opaque):not(.sticky-mode) #hamburger-menu .hm-bar,
  body.page-id-893 #page-header.page-header--default:not(.page-header--opaque):not(.sticky-mode) .mobile-menu-trigger .hm-bar {
    background: #004e57 !important;
  }

  #page-header.page-header--default:not(.page-header--opaque):not(.sticky-mode) #hamburger-menu .hm-bar,
  #page-header.page-header--default:not(.page-header--opaque):not(.sticky-mode) .mobile-menu-trigger .hm-bar {
    background:  #FFF !important;
  }

  #page-header #hamburger-menu,
  #page-header .mobile-menu-trigger {
    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 905;
  }
}

#page-header #hamburger-menu.active-menu .hm-bar,
#page-header .mobile-menu-trigger.active-menu .hm-bar,
#page-header.page-header--default:not(.page-header--opaque):not(.sticky-mode) #hamburger-menu.active-menu .hm-bar,
#page-header.page-header--default:not(.page-header--opaque):not(.sticky-mode) .mobile-menu-trigger.active-menu .hm-bar {
  background: #004e57 !important;
}

.theme-html #page-header.sticky-mode #hamburger-menu.active-menu .hm-bar,
.theme-html #page-header.sticky-mode .mobile-menu-trigger.active-menu .hm-bar,
.theme-html #page-header.mobile-menu-active #hamburger-menu.active-menu .hm-bar,
.theme-html #page-header.mobile-menu-active .mobile-menu-trigger.active-menu .hm-bar,
.theme-html #page-header.page-header--opaque #hamburger-menu.active-menu .hm-bar,
.theme-html #page-header.page-header--opaque .mobile-menu-trigger.active-menu .hm-bar {
  background: #223628 !important;
}

#page-header #mobile-menu nav .mobile-contact-cta {
  display: inline-block;
  margin-top: 28px;
  padding: 12px 28px;
  background: linear-gradient(90deg, #1dc480, #12906d 43%, #064f56);
  border-radius: 40px;
  color: #fff !important;
  font-family: "Sora", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.308px;
  text-decoration: none;
  text-align: center;
}

#page-header #mobile-menu nav .mobile-contact-cta:hover {
  background-size: 400% !important;
  -webkit-animation: Gradient 10s ease infinite !important;
  animation: Gradient 10s ease infinite !important;
}

.blog-single__hero-wrap {
  background: var(--rp-blog-title-bg);
  border-top: 1px solid #ddd3bc;
  border-bottom: 1px solid #ddd3bc;
  overflow: hidden;
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

.blog-single__hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 52%) minmax(0, 48%);
  align-items: stretch;
  max-width: 1440px;
  margin: 0 auto;
  padding-left: var(--rp-blog-gutter);
  padding-right: var(--rp-blog-gutter);
  box-sizing: border-box;
}

@media (min-width: 981px) {
  .blog-single__hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    width: 100%;
    max-width: none;
    margin: 0;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }

  .blog-single__hero-grid {
    height: 500px;
    max-height: 500px;
  }

  .blog-single__hero-main,
  .blog-single__hero-media {
    height: 100%;
  }

  .blog-single__hero-media {
    min-height: 0;
  }

  .blog-single__hero-media img {
    height: 100%;
    min-height: 0;
    width: 100%;
    object-fit: cover;
  }
}

.blog-single__hero-main {
  padding: clamp(2.2rem, 4vw, 4.2rem) clamp(1.2rem, 2.4vw, 2.2rem) clamp(2.2rem, 4vw, 4.2rem) 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  min-height: 330px;
}

.blog-single__eyebrow {
  font-family: "Sora", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 800;
  line-height: 14px;
  color: var(--rp-blog-title-text) !important;
  margin: 0 0 13px;
  text-transform: uppercase;
  letter-spacing: 0;
}

body.single-post .blog-single__hero-main p.blog-single__eyebrow {
  margin: 0 0 13px !important;
  max-width: none !important;
  width: auto !important;
  align-self: flex-start !important;
  text-align: left !important;
}

.blog-single__hero-media-wrap {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-bottom: clamp(2rem, 4vw, 3rem);
  display: none;
}

.blog-single__hero-media-shell {
  max-width: 1440px;
  margin: 0 auto;
}

.blog-single__hero-media {
  min-height: 360px;
  background: linear-gradient(140deg, #cee4ef, #e5f4ef);
  border-radius: 0;
  overflow: hidden;
}

.blog-single__hero-media--mobile {
  display: none;
}

.blog-single__hero-media--placeholder {
  display: grid;
  place-items: center;
}

.blog-single__hero-placeholder {
  font-family: "Sora", sans-serif;
  font-size: clamp(1.3rem, 1vw + 1rem, 1.8rem);
  letter-spacing: 0.01em;
  color: #12415c;
  opacity: 0.8;
}

.blog-single__hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  border-radius: 0;
}

.blog-single__layout {
  --blog-content-width: 770px;
  --blog-sidebar-width: 344px;
  --blog-column-gap: clamp(2.75rem, 5vw, 4.5rem);
  display: grid;
  grid-template-columns: minmax(280px, var(--blog-sidebar-width)) minmax(0, var(--blog-content-width));
  grid-template-areas: "toc main";
  justify-content: start;
  column-gap: var(--blog-column-gap);
  row-gap: 1.8rem;
  align-items: start;
  max-width: 1440px;
  margin: 0 auto;
}

.blog-single__main {
  grid-area: main;
  min-width: 0;
}

.blog-single__layout.blog-single__layout--no-toc {
  grid-template-columns: minmax(0, var(--blog-content-width));
  grid-template-areas: "main";
}

.blog-single__toc {
  grid-area: toc;
}

.blog-single__meta-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.9rem;
  margin-top: 1.2rem;
  justify-content: flex-start;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: auto;
  max-width: 100%;
}

@media (min-width: 768px) {
  .blog-single__hero-main {
    align-items: flex-start !important;
    text-align: left !important;
  }

  .blog-single__eyebrow {
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.single-post .blog-single__hero-main p.blog-single__eyebrow {
    align-self: flex-start !important;
    text-align: left !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

.blog-single__meta-row > * {
  margin-left: 0 !important;
  margin-right: 0 !important;
  flex: 0 0 auto;
}

body.single-post .blog-single__hero-main p {
  font-family: "Sora", sans-serif !important;
}

.blog-single__title {
  margin: 0;
  font-family: "Sora", sans-serif;
  font-size: clamp(2rem, 2.4vw + 0.9rem, 3.3rem) !important;
  font-weight: 600;
  line-height: 1.08 !important;
  letter-spacing: -0.02em;
  color: var(--rp-blog-title-text) !important;
  max-width: 17ch;
}

body.single-post .blog-single__hero-main h1.blog-single__title {
  font-family: "Sora", sans-serif !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  color: var(--rp-blog-title-text) !important;
}

.blog-single__content {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin-bottom: 48px;
}

.blog-single__content h2,
.blog-single__content h3,
.blog-single__content h4 {
  margin-bottom: 0.62em;
  color: #17334d;
  letter-spacing: -0.01em;
  max-width: none;
}

.blog-single__content h2 {
  font-size: clamp(1.85rem, 2.2vw, 2.45rem);
  line-height: 1.18;
}

.blog-single__content h3 {
  font-size: clamp(1.45rem, 1.5vw, 1.9rem);
  line-height: 1.24;
}

.blog-single__content h4 {
  font-size: clamp(1.2rem, 1.1vw, 1.45rem);
  line-height: 1.28;
}

.blog-single__content p,
.blog-single__content li {
  font-family: "Sora", sans-serif;
  color: #263f54;
  line-height: 1.78;
  font-size: 16px;
  max-width: 72ch;
}

.blog-single__content p {
  margin: 0 0 1.2rem;
}

.blog-single__content ul,
.blog-single__content ol {
  margin: 0 0 1.35rem;
  padding-left: 1.28rem;
  max-width: 72ch;
}

.blog-single__content li {
  margin: 0;
}

.blog-single__content li + li {
  margin-top: 0.4rem;
}

.blog-single__content img {
  height: auto;
  max-width: 100%;
}

.blog-single__faqs {
  --rp-faq-heading: #0b4f43;
  --rp-faq-text: #2a2a2a;
  --rp-faq-muted: #5c5c5c;
  --rp-faq-rule: rgba(11, 79, 67, 0.18);
  --rp-faq-accent: #0b7c5f;
  margin-top: 4.5rem;
}

.blog-single__faqs-header {
  margin-bottom: 2rem;
}

.blog-single__faqs-title {
  margin: 0;
  font-family: "Sora", sans-serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--rp-faq-heading);
  line-height: 1.25;
}

.blog-single__faq-list {
  display: block;
}

.blog-single__faq-item {
  border-bottom: 1px solid var(--rp-faq-rule);
}

.blog-single__faq-item:first-child {
  border-top: 1px solid var(--rp-faq-rule);
}

.blog-single__faq-question {
  appearance: none;
  border: 0;
  background: transparent;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  cursor: pointer;
  padding: 1.25rem 0;
  text-align: left;
}

.blog-single__faq-question-text {
  font-family: "Sora", sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--rp-faq-heading);
}

.blog-single__faq-toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 3px;
}

.blog-single__faq-toggle-h,
.blog-single__faq-toggle-v {
  position: absolute;
  background: var(--rp-faq-accent);
  border-radius: 1px;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.blog-single__faq-toggle-h {
  width: 12px;
  height: 1.5px;
}

.blog-single__faq-toggle-v {
  width: 1.5px;
  height: 12px;
}

.blog-single__faq-item.is-open .blog-single__faq-toggle-v {
  opacity: 0;
  transform: scaleY(0);
}

.blog-single__faq-answer-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.32s cubic-bezier(0.4, 0, 0.2, 1);
}

.blog-single__faq-item.is-open .blog-single__faq-answer-wrap {
  grid-template-rows: 1fr;
}

.blog-single__faq-answer-inner {
  overflow: hidden;
}

.blog-single__faq-answer {
  padding: 0 2.5rem 1.5rem 0;
  color: var(--rp-faq-text);
}

.blog-single__faq-answer p,
.blog-single__faq-answer li {
  font-family: "Sora", sans-serif;
  color: var(--rp-faq-text);
  line-height: 1.78;
  font-size: 15.5px;
}

.blog-single__faq-answer strong {
  color: var(--rp-faq-heading);
  font-weight: 700;
}

.blog-single__faq-answer p:last-child,
.blog-single__faq-answer ul:last-child,
.blog-single__faq-answer ol:last-child {
  margin-bottom: 0;
}

.blog-single__faq-answer ul,
.blog-single__faq-answer ol {
  margin: 0 0 1.2rem;
  padding-left: 1.25rem;
}

/* Reusable FAQ block (blocks/faq/). Reuses the journal FAQ styling above, but
   each question is wrapped in a real <h3> (Lee's SEO rule). Reset the heading so
   the existing button layout/typography governs, and give the block sensible
   standalone spacing when dropped onto landing pages rather than a blog post. */
.rp-faq .rp-faq__question-heading {
  margin: 0;
  font: inherit;
}

.rp-faq.blog-single__faqs {
  margin-top: 3rem;
  margin-bottom: 3rem;
}

/* Section heading: match the site's standard section headline (Sora 400, brand
   teal, tight tracking). Needs two classes to outrank the parent theme's generic
   `.theme-html h2` rule (Inter, 66px), which would otherwise hijack the font. */
.rp-faq .blog-single__faqs-title {
  font-family: "Sora", sans-serif;
  font-weight: 400;
  font-size: clamp(2rem, 5vw, 50px);
  line-height: 1.05;
  letter-spacing: -1.1px;
  color: #004e57;
  margin: 0;
}

/* Answer typography (per design): Inter, brand teal. Scoped to .rp-faq so the
   journal/blog FAQ answers keep their own styling. Applied to the container too,
   so any stray wrapper still inherits the right type. */
.rp-faq .blog-single__faq-answer,
.rp-faq .blog-single__faq-answer p,
.rp-faq .blog-single__faq-answer li {
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 150%;
  color: #004e57;
  letter-spacing: -0.352px;
}

/* Mobile nav: extra space at the top so the first menu item clears the
   header/logo. This nav is a vertically-centred table-cell, where CSS margins
   are ignored — so the px spacing is applied as top padding (same visual).
   Overrides the parent theme's `padding: 3vh 0` (top only). */
.theme-html #page-header #mobile-menu nav {
  padding-top: 100px;
}

/* Mobile nav: unify every link variant to 18px. There are several scattered
   24px rules (the .has-sub-menu dropdown link, the .sub-nav sub-items, the
   last-of-type pill) that out-rank a plain selector, so !important keeps them
   all consistent. Covers <a> text and the span-wrapped "Our Prosperity" label.
   (Parent default is 24px; also tighter inter-link spacing below.) */
.theme-html #page-header #mobile-menu nav a,
.theme-html #page-header #mobile-menu nav a span {
  font-size: 18px !important;
}

.theme-html #page-header #mobile-menu nav a {
  padding-bottom: 18px;
}

.blog-single__post-disclaimer {
  margin: 16px 0 0;
  font-family: "Sora", sans-serif;
  font-size: 0.76rem;
  font-style: italic !important;
  margin-top: 16px !important;
  line-height: 1.6;
  color: #5c5c5c;
}

.blog-single__toc {
  position: sticky;
  top: 110px;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

.blog-single__toc-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.blog-single__toc-nav li + li {
  margin-top: 0.1rem;
}

.blog-single__toc-nav a {
  color: #2e4b60;
  text-decoration: none;
  line-height: 1.3;
  font-size: 0.92rem;
  padding: 0.4rem 0;
  display: block;
  border-bottom: 1px solid #e8eef2;
}

.blog-single__toc-nav a:hover {
  color: #008d65;
}

.blog-single__toc-nav a.is-active {
  color: #0e2e45;
  font-weight: 700;
}

.blog-author-card {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  min-width: 0;
}

.blog-author-card__image {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 0rem;
  flex: 0 0 auto;
  background: #e4eaef;
} 

.blog-author-card__body {
  min-width: 0;
}

.blog-author-card__name,
.blog-author-card__title {
  margin: 0 !important;
  color: #0a5864;
  line-height: 1.2;
}

.blog-author-card__name {
  font-size: 1.02rem;
  font-weight: 700;
}

.blog-author-card__title {
  margin-top: 0.2rem;
  font-size: 0.88rem;
  color: #3e5e6b;
}

.blog-author-card__meta {
  margin-top: 0.2rem !important;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 14px;
  font-weight: 500;
  color: rgba(0, 78, 87, 0.6);
}

.blog-author-card--compact {
  gap: 0.72rem;
}

.blog-author-card--compact .blog-author-card__image {
  width: 52px;
  height: 52px;
}

.blog-author-card--compact .blog-author-card__name {
  font-size: 0.92rem;
}

.blog-author-card--compact .blog-author-card__title {
  font-size: 0.8rem;
}

.blog-author-card--hero {
  margin-right: 0;
  gap: 0.72rem;
}

.blog-author-card--hero .blog-author-card__image {
  width: 52px;
  height: 52px;
}

.blog-author-card--hero .blog-author-card__name {
  font-size: 0.92rem;
}

.blog-author-card--hero .blog-author-card__title {
  margin-top: 0.15rem;
  font-size: 0.8rem;
}

body.single-post .blog-single__hero-main .blog-author-card__name {
  font-family: "Sora", sans-serif !important;
  font-size: 14px !important;
  line-height: 16px !important;
  font-weight: 700 !important;
  color: #004e57 !important;
  margin: 0 0 4px !important;
}

body.single-post .blog-single__hero-main .blog-author-card {
  align-items: center;
  gap: 14px;
}

body.single-post .blog-single__hero-main .blog-author-card__image {
  width: 52px !important;
  height: 52px !important;
  border-radius: 0rem;
}

body.single-post .blog-single__hero-main .blog-author-card__body {
  min-width: 0;
}

body.single-post .blog-single__hero-main .blog-author-card__title {
  font-family: "Inter", sans-serif !important;
  font-size: 14px !important;
  line-height: 14px !important;
  font-weight: 500 !important;
  color: rgba(0, 78, 87, 0.7) !important;
  margin: 0 !important;
}

body.single-post .blog-single__hero-main .blog-author-card__meta {
  font-family: "Inter", sans-serif !important;
  font-size: 12px !important;
  line-height: 14px !important;
  font-weight: 500 !important;
  color: rgba(0, 78, 87, 0.6) !important;
  margin: 0 !important;
}

body.single-post .blog-single__hero-main .blog-author-card__title + .blog-author-card__meta {
  margin-top: 2px !important;
}

body.single-post .blog-single__hero-main .blog-author-card__name + .blog-author-card__meta {
  margin-top: 2px !important;
}

.block--blog-post-grid .blog-post-grid__author-block {
  margin: 0.75rem 0 0.95rem;
  padding-top: 0.8rem;
  border-top: 1px solid #e7edf1;
}

.block--featured-article .featured-article-card__author {
  align-items: center;
  gap: 0.8rem;
}

.block--featured-article .featured-article-card__author img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 0rem;
}

.block--featured-article .featured-article-card__author-name {
  margin: 0;
  color: #0a5864;
  font-weight: 700;
}

.block--featured-article .featured-article-card__author-title {
  margin: 0.15rem 0 0;
  color: #3e5e6b;
  font-size: 0.9rem;
  line-height: 1.25;
}

.block--featured-article .featured-article-card__meta {
  margin: 0.2rem 0 0;
}

.block--featured-article .featured-article-card__content {
  background: var(--rp-blog-title-bg);
}

.block--featured-article .featured-article-card__content h2,
.block--featured-article .featured-article-card__content h2 a,
.block--blog-post-grid .blog-post-grid__content h6 a,
.rp-featured-card__title a,
.rp-blog-card__title a {
  color: var(--rp-blog-title-text);
  font-family: "Sora", sans-serif;
}

.block--featured-article .featured-article-card__content h2,
.block--blog-post-grid .blog-post-grid__content h6,
.rp-featured-card__title,
.rp-blog-card__title {
  font-weight: 700;
  letter-spacing: -0.01em;
}

.block--featured-article .featured-article-card__content h2 a:hover,
.block--blog-post-grid .blog-post-grid__content h6 a:hover,
.rp-featured-card__title a:hover,
.rp-blog-card__title a:hover {
  color: var(--rp-blog-title-text-hover);
}

.rp-featured-card__title,
.rp-blog-card__title,
.block--blog-post-grid .blog-post-grid__content h6 {
  padding: 0.4rem 0.6rem;
  border-radius: 0.2rem;
}

.rp-blog-page {
  padding: 4rem 0;
}

.rp-blog-page > .wp-block-group__inner-container {
  max-width: 1440px !important;
  width: 100%;
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0 20px;
}

.rp-blog-hero {
  background: linear-gradient(135deg, #0f2b46, #174a5f 45%, #10665f);
  border-radius: 1rem;
  padding: 2rem;
  margin-bottom: 2rem;
}

.rp-blog-hero__eyebrow {
  margin: 0 0 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #8cf5cf;
  font-weight: 700;
  font-size: 0.78rem;
}

.rp-blog-hero__title {
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.12;
}

.rp-blog-hero__intro {
  margin: 1rem 0 0;
  color: #d8f1ef;
  max-width: 62ch;
}

.rp-blog-query.wp-block-query {
  margin-top: 1rem;
}

.rp-blog-query .wp-block-post-template {
  gap: 1.6rem;
}

.rp-blog-card {
  border: 1px solid #dfecf0;
  border-radius: 0.95rem;
  background: #fff;
  box-shadow: 0 12px 30px -25px rgba(14, 47, 67, 0.55);
  padding: 1rem;
  cursor: pointer;
}

.rp-blog-card .wp-block-post-featured-image {
  margin: 0 0 0.8rem;
}

.rp-blog-card .wp-block-post-featured-image img {
  width: 100%;
  object-fit: cover;
}

.rp-blog-card__date {
  margin: 0;
  color: #6f7c90;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.76rem;
}

.rp-blog-card__title {
  margin: 0.65rem 0 0.45rem;
  line-height: 1.3;
}

.rp-blog-card__title a {
  color: #172740;
  text-decoration: none;
}

.rp-blog-card__excerpt {
  color: #4a5668;
  margin-bottom: 0;
}

.rp-blog-card__excerpt .wp-block-post-excerpt__more-link {
  display: none;
}

.rp-blog-featured-section {
  margin: 1.4rem 0 2.2rem;
}

.rp-blog-featured__eyebrow {
  margin: 0 0 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #6f7c90;
  font-weight: 700;
  font-size: 0.78rem;
}

.rp-blog-featured-section > .wp-block-group__inner-container,
.rp-blog-featured-query,
.rp-blog-featured-query > .wp-block-post-template,
.rp-blog-featured-query > .wp-block-post-template > li,
.rp-featured-card > .wp-block-group__inner-container {
  width: 100%;
  max-width: 100% !important;
}

.rp-featured-card > .wp-block-group__inner-container {
  max-width: 100% !important;
}

.rp-blog-featured-query > .wp-block-post-template {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rp-blog-featured-query > .wp-block-post-template > li {
  margin: 0;
}

.rp-featured-card {
  border: 1px solid #d7e6ec;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 16px 36px -26px rgba(14, 47, 67, 0.65);
  padding: 1rem;
  cursor: pointer;
}

.rp-featured-card > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: minmax(0, 58%) minmax(0, 42%);
  gap: 1.4rem;
  align-items: center;
}

.rp-featured-card .wp-block-post-featured-image {
  margin: 0;
  grid-column: 1;
  grid-row: 1 / span 3;
  width: 100%;
}

.rp-featured-card .wp-block-post-featured-image a,
.rp-featured-card .wp-block-post-featured-image img {
  display: block;
  width: 100%;
  height: 420px;
  object-fit: cover;
}

.rp-featured-card__date {
  grid-column: 2;
  margin: 0;
  color: #6f7c90;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.78rem;
}

.rp-featured-card__title {
  grid-column: 2;
  margin: 0.5rem 0 0.55rem;
  line-height: 1.25;
  font-size: clamp(1.65rem, 2.1vw, 2.2rem);
}

.rp-featured-card__title a {
  color: #172740;
  text-decoration: none;
}

.rp-featured-card__excerpt {
  grid-column: 2;
  margin: 0;
  color: #4a5668;
  max-width: 58ch;
}

.rp-featured-card__excerpt .wp-block-post-excerpt__more-link {
  display: none;
}

@media (max-width: 980px) {
  .rp-featured-card > .wp-block-group__inner-container {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.95rem;
  }

  .rp-featured-card .wp-block-post-featured-image {
    grid-column: 1;
    grid-row: auto;
  }

  .rp-featured-card .wp-block-post-featured-image a,
  .rp-featured-card .wp-block-post-featured-image img {
    height: 260px;
  }

  .rp-featured-card__date,
  .rp-featured-card__title,
  .rp-featured-card__excerpt {
    grid-column: 1;
  }

  .rp-featured-card__title {
    font-size: clamp(1.3rem, 5.2vw, 1.7rem);
  }
}

@media (max-width: 767px) {
  .rp-blog-page > .wp-block-group__inner-container {
    padding: 0 30px;
  }
}

.rp-newsletter-section {
  margin-top: 2.4rem;
  border: 1px solid #d7e6ec;
  border-radius: 1rem;
  background: linear-gradient(135deg, #0f2b46, #174a5f 45%, #10665f);
  padding: 1.6rem;
}

.rp-newsletter__title {
  margin: 0 0 0.45rem;
  color: #fff;
}

.rp-newsletter__intro {
  margin: 0 0 1rem;
  color: #d8f1ef;
}

.rp-newsletter__privacy {
  margin: 0.7rem 0 0;
  color: #c8e8e5;
}

.rp-newsletter-section .forminator-ui {
  background: rgba(255, 255, 255, 0.96);
  border-radius: 0.75rem;
  padding: 0.8rem;
}

.rp-blog-pagination {
  margin-top: 1.8rem;
  align-items: center;
}

.rp-blog-pagination .wp-block-query-pagination-numbers {
  display: flex;
  gap: 0.5rem;
}

.rp-blog-pagination a,
.rp-blog-pagination span {
  display: inline-block;
  border: 1px solid #c9dce3;
  border-radius: 0.45rem;
  padding: 0.45rem 0.75rem;
  color: #325066;
  text-decoration: none;
  background: #fff;
}

.rp-blog-pagination .current {
  background: #00a271;
  border-color: #00a271;
  color: #fff;
}

.block--banner-cta .banner-content__cta-btn {
  margin-top: 30px;
  display: inline-flex;
}

@media (max-width: 767px) {
  .block--banner-cta .banner-content__cta-btn {
    margin-top: 22px;
  }
}

.block--blog-cta {
  padding-top: 48px;
  padding-bottom: 48px;
}

.block--blog-cta .container-block {
  padding-left: 20px !important;
  padding-right: 20px !important;
}

.block--blog-cta .blog-cta__content {
  position: relative;
}

.block--blog-cta .blog-cta__content.has-line-bg {
  padding-left: 70px;
}

.block--blog-cta .blog-cta__content.has-line-bg::before {
  content: "";
  position: absolute;
  top: -48px;
  left: 0;
  height: calc(100% + 48px);
  border-left: 1px solid rgba(0, 78, 87, 0.5);
}

.block--blog-cta .blog-cta__eyebrow {
  margin: 0 0 13px;
  font-family: "Sora", sans-serif;
  font-size: 14px;
  line-height: 14px;
  font-weight: 800;
  color: #00bf7d;
  text-transform: uppercase;
}

.block--blog-cta .blog-cta__headline {
  margin: 0 0 13px;
  font-family: "Inter", sans-serif;
  font-size: 22px;
  line-height: 29.7px;
  font-weight: 400;
  letter-spacing: -0.484px;
  color: #004e57;
  max-width: 1200px;
}

.block--blog-cta .blog-cta__button {
  display: inline-flex;
  margin-top: 24px;
  background: linear-gradient(90deg, #1dc480, #12906d 43%, #064f56) !important;
  border-radius: 40px !important;
  color: #fff !important;
  font-family: "Sora", sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 21px !important;
  letter-spacing: -0.308px !important;
  padding: 8px 16px !important;
  text-decoration: none !important;
  position: relative;
}

.block--blog-cta .blog-cta__button::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-radius: 40px;
}

.block--blog-cta .blog-cta__button:hover {
  color: #fff !important;
  background-size: 400% !important;
  animation: Gradient 10s ease infinite !important;
}

@media (max-width: 1199px) {
  .block--blog-cta {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media (max-width: 980px) {
  .block--blog-cta {
    padding-top: 48px;
    padding-bottom: 48px;
    padding-left: 0;
    padding-right: 0;
  }

  .block--blog-cta .blog-cta__content.has-line-bg {
    padding-left: 30px;
  }

  .block--blog-cta .blog-cta__content.has-line-bg::before {
    top: -48px;
    height: calc(100% + 48px);
  }

  .block--blog-cta .blog-cta__headline {
    font-size: 14px;
    line-height: 21px;
    letter-spacing: -0.308px;
    margin-bottom: 18px;
  }

  .block--blog-cta .blog-cta__button {
    margin-top: 22px;
  }
}

.rp-blog-empty {
  margin-top: 1rem;
}

/* Blog page only: compact Home image banner block */
.rp-blog-page .block--home-image-banner {
  height: 450px;
  min-height: 420px;
}

.rp-blog-page .block--home-image-banner .container-blocked {
  padding-top: 80px;
  padding-bottom: 24px;
}

@media (max-width: 860px) {
  .rp-blog-page .block--home-image-banner {
    height: 320px;
    min-height: 300px;
  }

  .rp-blog-page .block--home-image-banner .container-blocked {
    padding-top: 56px;
    padding-bottom: 18px;
  }
}

/* Force compact banner on Blog page even if parent rules win */
body.page-id-1135 .block--home-image-banner {
  height: 360px !important;
  min-height: 0 !important;
  max-height: 360px !important;
}

body.page-id-1135 .block--home-image-banner .container-blocked {
  height: 100% !important;
  padding-top: 36px !important;
  padding-bottom: 16px !important;
  align-items: flex-end !important;
}

body.page-id-1135 .block--home-image-banner .banner-content {
  padding-top: 20px !important;
  padding-bottom: 16px !important;
  max-width: 1440px !important;
  width: 100% !important;
  margin: 0 auto !important;
  border: 0 !important;
}

body.page-id-1135 .block--home-image-banner .banner-content__inner {
  left: 0 !important;
  width: 100% !important;
  max-width: 1440px !important;
}

body.page-id-1135 .block--home-image-banner .banner-content__inner h1 {
  font-family: "Sora", sans-serif !important;
  font-size: 50px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 50px !important;
  letter-spacing: -1.1px !important;
  margin: 0 0 30px !important;
}

body.page-id-1135 .block--home-image-banner .banner-content__inner p {
  font-size: 24px !important;
  line-height: 32px !important;
  letter-spacing: -0.4px !important;
  max-width: 100% !important;
  margin-top: 26px !important;
}

body.page-id-1135 .block--home-image-banner .banner-content__img-bottom {
  display: none !important;
}

body.page-id-1135 .block--home-image-banner .banner-content__img-top {
  display: none !important;
}

@media (max-width: 860px) {
  body.page-id-1135 .block--home-image-banner {
    height: 250px !important;
    max-height: 250px !important;
  }

  body.page-id-1135 .block--home-image-banner .container-blocked {
    padding-top: 22px !important;
    padding-bottom: 10px !important;
  }

  body.page-id-1135 .block--home-image-banner .banner-content {
    max-width: 100% !important;
  }

  body.page-id-1135 .block--home-image-banner .banner-content__inner h1 {
    font-size: 44px !important;
    line-height: 44px !important;
    letter-spacing: -1px !important;
  }

  body.page-id-1135 .block--home-image-banner .banner-content__inner p {
    font-size: 18px !important;
    line-height: 24px !important;
    max-width: 420px !important;
    margin-left: 0 !important;
    margin-top: 14px !important;
  }
}

@media (max-width: 860px) {
  .blog-listing__header {
    grid-template-columns: 1fr;
  }

  .blog-listing__stats {
    min-width: 0;
  }
}

@media (max-width: 980px) {
  .blog-single.container-block {
    padding-left: 30px;
    padding-right: 30px;
  }

  .blog-single__hero-wrap {
    margin-bottom: 0rem;
  }

  .blog-single__hero-grid {
    grid-template-columns: minmax(0, 1fr);
    padding-left: 0;
    padding-right: 0;
  }

  .blog-single__hero-main {
    padding: 1.9rem 30px 1.3rem;
    padding-bottom: 1.3rem;
  }

  .blog-single__title,
  body.single-post .blog-single__hero-main h1.blog-single__title {
    font-size: clamp(2.25rem, 5.2vw, 2.75rem) !important;
    font-weight: 600 !important;
    line-height: 1.08 !important;
  }

  .blog-single__hero-media--desktop {
    display: none;
  }

  .blog-single__hero-media-wrap {
    display: block;
  }

  .blog-single__hero-media--mobile {
    display: block;
  }

  .blog-single__hero-media,
  .blog-single__hero-media img {
    min-height: 260px;
  }

  .blog-single__layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "main"
      "toc";
  }

  .blog-single__meta-row {
    justify-content: flex-start;
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .blog-single__toc {
    display: none;
  }
}

@media (min-width: 981px) {
  .blog-single__hero-wrap {
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }

  .blog-single__hero-main {
    padding: clamp(2.2rem, 4vw, 4.2rem) clamp(1.2rem, 2.4vw, 2.2rem) clamp(2.2rem, 4vw, 4.2rem) var(--rp-logo-lock-left);
  }
}

@media (max-width: 767px) {
  .blog-single.container-block {
    padding-left: 1.3rem;
    padding-right: 1.3rem;
  }

  .blog-single__hero-main {
    align-items: flex-start;
    text-align: left;
    padding: 1.7rem 30px 1.1rem;
  }

  body.single-post .blog-single__hero-main p.blog-single__eyebrow {
    align-self: flex-start !important;
    text-align: left !important;
  }

  .blog-single__title {
    max-width: 13ch;
    text-align: left !important;
  }

  .blog-single__meta-row {
    justify-content: flex-start;
    gap: 0.45rem;
  }

  .blog-author-card {
    justify-content: flex-start;
    text-align: left;
  }

  .blog-author-card__image {
    width: 52px;
    height: 52px;
  }

  .blog-single__hero-media,
  .blog-single__hero-media img {
    min-height: 220px;
  }

  .blog-single__content p,
  .blog-single__content li {
    font-size: 1rem;
    line-height: 1.72;
  }
}

.rp-grants-page {
  --rp-grants-accent: #0d8d6f;
  --rp-grants-heading: #0e2f45;
  --rp-grants-body: #355468;
  --rp-grants-border: #d5e5e2;
  padding-bottom: 72px;
}

.rp-grants-hero {
  background: linear-gradient(135deg, #0e2f45 0%, #16685e 100%);
  color: #ffffff;
  padding: 90px 0 70px;
}

.rp-grants-hero__inner h1 {
  margin: 0 0 16px;
  max-width: 18ch;
  color: #ffffff;
}

.rp-grants-eyebrow {
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #99e4c4;
  font-weight: 700;
}

.rp-grants-intro,
.rp-grants-deadline {
  max-width: 62ch;
  margin: 0 0 12px;
  color: #e6f3f0;
}

.rp-grants-section {
  margin-top: 44px;
}

.rp-grants-section h2 {
  margin: 0 0 14px;
  color: #0e2f45;
}

.rp-grants-timing__grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.rp-grants-timing__grid article {
  border: 1px solid #d5e5e2;
  padding: 18px;
  background: #f8fcfb;
}

.rp-grants-timing__grid h3 {
  margin: 0 0 6px;
  font-size: 22px;
  line-height: 1.2;
}

.rp-grants-form {
  border: 1px solid var(--rp-grants-border);
  margin-left: 64px;
  margin-right: 64px;
  padding: 28px 36px;
  background: #ffffff;
  box-shadow: 0 16px 38px -30px rgba(14, 47, 69, 0.7);
}

.rp-grants-form > h2 {
  margin: 0;
  color: var(--rp-grants-heading);
  font-family: "Sora", sans-serif !important;
  font-weight: 700;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

.rp-grants-form > p {
  margin: 10px 0 22px;
  color: var(--rp-grants-body);
  font-size: 1rem;
}

.rp-grants-form .forminator-ui {
  border-top: 1px solid #e4eeec;
  padding-top: 18px;
}

.rp-grants-form .forminator-ui .forminator-page,
.rp-grants-form .forminator-ui .forminator-row {
  margin-bottom: 14px;
}

.rp-grants-form .forminator-ui h3,
.rp-grants-form .forminator-ui .forminator-title {
  margin: 20px 0 8px;
  color: var(--rp-grants-heading);
  font-family: "Sora", sans-serif;
  font-size: clamp(1.15rem, 1.7vw, 1.35rem);
  font-weight: 700;
  letter-spacing: -0.01em;
}

.rp-grants-form .forminator-ui .forminator-label,
.rp-grants-form .forminator-ui label {
  color: #1f3f53;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  letter-spacing: 0;
}

.rp-grants-form .forminator-ui .forminator-description,
.rp-grants-form .forminator-ui .forminator-description p,
.rp-grants-form .forminator-ui .forminator-character-limit {
  color: #4c6679;
}

.rp-grants-form .forminator-ui .forminator-input,
.rp-grants-form .forminator-ui .forminator-textarea,
.rp-grants-form .forminator-ui .forminator-select select {
  background-color: #fff;
  border-color: #bfd4d0;
  color: #103347;
}

.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-input,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-input:hover,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-input:focus,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-input:active,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-textarea,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-textarea:hover,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-textarea:focus,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-textarea:active,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-select select,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-select select:hover,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-select select:focus,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-select select:active,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-input,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-input:hover,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-input:focus,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-input:active,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-textarea,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-textarea:hover,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-textarea:focus,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-textarea:active,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-select select,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-select select:hover,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-select select:focus,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-select select:active {
  background-color: #fff !important;
}

.rp-grants-form .forminator-ui .select2-container .selection .select2-selection,
.rp-grants-form .forminator-ui .forminator-checkbox .forminator-checkbox-box,
.rp-grants-form .forminator-ui .forminator-radio .forminator-radio-bullet {
  background-color: #fff;
}

.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"]
  select.forminator-select2 + .forminator-select .selection span[role="combobox"].select2-selection--single,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"]
  select.forminator-select2 + .forminator-select .selection span[role="combobox"].select2-selection--multiple,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default
  select.forminator-select2 + .forminator-select .selection span[role="combobox"].select2-selection--single,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default
  select.forminator-select2 + .forminator-select .selection span[role="combobox"].select2-selection--multiple,
.rp-grants-form .forminator-ui .select2-container--default .select2-selection--single,
.rp-grants-form .forminator-ui .select2-container--default .select2-selection--multiple {
  background-color: #fff !important;
}

.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-radio .forminator-radio-bullet,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-radio .forminator-radio-image,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-radio .forminator-radio-bullet,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-radio .forminator-radio-image {
  background-color: #fff !important;
  border-color: #bfd4d0 !important;
}

.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-radio .forminator-radio-bullet::before,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-radio .forminator-radio-bullet::before {
  background-color: var(--rp-grants-accent) !important;
}

.rp-grants-form .forminator-ui .forminator-button-submit {
  background: linear-gradient(90deg, #1dc480, #12906d 43%, #064f56);
  border: none;
  border-radius: 999px;
  color: #fff !important;
  font-family: "Sora", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  padding: 12px 24px;
}

.rp-grants-form .forminator-ui .forminator-button-submit:hover {
  filter: brightness(1.06);
}

.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-button.forminator-button-submit,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-button.forminator-button-submit:hover,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-button.forminator-button-submit:focus,
.rp-grants-form .forminator-ui.forminator-custom-form[data-design="default"] .forminator-button.forminator-button-submit:active,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-button.forminator-button-submit,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-button.forminator-button-submit:hover,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-button.forminator-button-submit:focus,
.rp-grants-form .forminator-ui#forminator-module-1245.forminator-design--default .forminator-button.forminator-button-submit:active {
  background: linear-gradient(90deg, #1dc480, #12906d 43%, #064f56) !important;
  border: none !important;
  border-radius: 999px !important;
  color: #fff !important;
  font-weight: 700 !important;
}

.rp-grants-form .forminator-ui .sdev-terms-box {
  margin: 20px 0 18px;
  border: 1px solid var(--rp-grants-border);
  background: #f8fcfb;
  padding: 14px 16px 16px;
  max-height: 320px;
  overflow-y: auto;
}

.rp-grants-form .forminator-ui #html-6.sdev-terms-box .forminator-field {
  padding-top: 10px;
  padding-bottom: 12px;
}

.rp-grants-form .forminator-ui .sdev-terms-box h3 {
  margin-top: 0;
}

.rp-grants-form .forminator-ui .sdev-terms-box ul {
  margin: 0 0 10px;
  padding-left: 18px;
}

.rp-grants-form .forminator-ui .sdev-terms-box p,
.rp-grants-form .forminator-ui .sdev-terms-box li {
  color: var(--rp-grants-body);
}

.rp-grants-form .forminator-ui .forminator-row:has(> #html-5) {
  margin-bottom: 0 !important;
}

.rp-grants-form .forminator-ui #html-5 .forminator-field p {
  margin-bottom: 0 !important;
}

.rp-grants-terms {
  margin: 18px 0 26px;
  border: 1px solid var(--rp-grants-border);
  background: #f8fcfb;
  padding: 14px 16px 16px;
}

.rp-grants-terms h3 {
  margin: 0 0 8px;
  color: var(--rp-grants-heading);
  font-family: "Sora", sans-serif;
}

.rp-grants-terms p {
  margin: 0 0 10px;
  color: var(--rp-grants-body);
}

.rp-grants-terms ul {
  margin: 0;
  padding-left: 18px;
}

.rp-grants-terms li {
  margin-bottom: 8px;
  color: var(--rp-grants-body);
}

.rp-grants-form__placeholder {
  background: #f6faf9;
  border: 1px dashed #9fbfba;
  padding: 18px;
}

@media (max-width: 900px) {
  .rp-grants-timing__grid {
    grid-template-columns: 1fr;
  }

  .rp-grants-form {
    margin-left: 16px;
    margin-right: 16px;
  }
}

@media (max-width: 767px) {
  .block-editor-block-list__layout .rp-grants-page .rp-grants-section.container-block,
  .theme-html .rp-grants-page .rp-grants-section.container-block {
    max-width: none;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .rp-grants-hero {
    padding: 72px 0 52px;
  }

  .rp-grants-form {
    margin-left: 16px;
    margin-right: 16px;
    padding: 16px;
    border: 0;
    box-shadow: none;
  }

  .rp-grants-form .forminator-ui {
    border-top: 0;
    padding-top: 0;
  }
}

@media (max-width: 767px) {
  .blog-single__faqs {
    margin-top: 3.5rem;
  }

  .blog-single__faq-question {
    gap: 1rem;
    padding: 1rem 0;
  }

  .blog-single__faq-question-text {
    font-size: 16px;
  }

  .blog-single__faqs-title {
    font-size: 23px;
  }

  .blog-single__faq-answer {
    padding: 0 1rem 1.1rem 0;
  }

  .blog-single__faq-answer p,
  .blog-single__faq-answer li {
    font-size: 15px;
  }

  .blog-single__post-disclaimer {
    font-size: 0.72rem;
  }
}

/* Header / footer child overrides */

#page-header .uhc-table .nav-cell nav.main-navigation > a:last-of-type,
#page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a:last-of-type {
  display: inline-block !important;
}

#page-header .uhc-table .nav-cell nav.main-navigation > a.menu-item-blog:last-of-type,
#page-header .uhc-table .nav-cell nav.main-navigation > a.menu-item-journal:last-of-type {
  display: inline-block !important;
}

#page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu {
  margin-left: 15px !important;
}

#page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a {
  color: inherit !important;
}

@media (min-width: 768px) {
  #page-header .uhc-table .nav-cell nav.main-navigation {
    overflow: visible;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu {
    margin-left: 24px !important;
    position: relative;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a {
    align-items: center;
    border-radius: 999px;
    display: inline-flex !important;
    gap: 8px;
    line-height: 1;
    padding: 15px 0;
    position: relative;
    text-decoration: none;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret,
  .theme-html #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret {
    align-items: center;
    color: currentColor;
    display: inline-flex;
    flex-shrink: 0;
    height: 16px !important;
    justify-content: center;
    transition: transform 0.2s ease;
    width: 10px !important;
  }

  #page-header:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a,
  #page-header:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a span,
  #page-header:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret,
  #page-header:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg,
  #page-header:not(.sticky-mode) .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg path {
    color: #fff !important;
    stroke: currentColor !important;
  }

  #page-header.page-header--opaque .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a,
  #page-header.page-header--opaque .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a span,
  #page-header.page-header--opaque .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret,
  #page-header.page-header--opaque .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg,
  #page-header.page-header--opaque .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg path,
  #page-header.sticky-mode .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a,
  #page-header.sticky-mode .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a span,
  #page-header.sticky-mode .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret,
  #page-header.sticky-mode .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg,
  #page-header.sticky-mode .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg path {
    color: #004e57 !important;
    stroke: currentColor !important;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:hover > a,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:hover > a span,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:hover > a .menu-caret,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:hover > a .menu-caret svg,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:hover > a .menu-caret svg path,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:focus-within > a,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:focus-within > a span,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:focus-within > a .menu-caret,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:focus-within > a .menu-caret svg,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:focus-within > a .menu-caret svg path,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.nav-active > a,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.nav-active > a span,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.nav-active > a .menu-caret,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.nav-active > a .menu-caret svg,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.nav-active > a .menu-caret svg path,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-item > a,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-item > a span,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-item > a .menu-caret,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-item > a .menu-caret svg,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-item > a .menu-caret svg path,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-ancestor > a,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-ancestor > a span,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-ancestor > a .menu-caret,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-ancestor > a .menu-caret svg,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-menu-ancestor > a .menu-caret svg path,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-page-ancestor > a,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-page-ancestor > a span,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-page-ancestor > a .menu-caret,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-page-ancestor > a .menu-caret svg,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu.current-page-ancestor > a .menu-caret svg path {
    color: #d2805f !important;
    stroke: currentColor !important;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg,
  .theme-html #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a .menu-caret svg {
    display: block;
    height: 16px !important;
    width: 10px !important;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav {
    background: #fff;
    border: 1px solid rgba(0, 78, 87, 0.12);
    box-shadow: 0 18px 45px rgba(0, 78, 87, 0.12);
    left: 0 !important;
    list-style: none;
    margin: 0;
    min-width: 220px;
    opacity: 0;
    overflow: hidden;
    padding: 8px;
    pointer-events: none;
    text-align: left;
    top: 100%;
    transform: translateY(0) !important;
    transition: opacity 0.2s ease, transform 0.2s ease;
    z-index: 50;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav li,
  .theme-html #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav li {
    border-bottom: 0;
    margin: 0 !important;
    opacity: 1;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav li + li {
    margin-top: 2px;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav li a,
  .theme-html #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav li a {
    background: #fff;
    border-radius: 12px;
    color: #004e57;
    display: block;
    font-family: "Inter", sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.35;
    padding: 11px 14px;
    text-align: left;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav li a:hover,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav li a:focus,
  .theme-html #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav li a:hover,
  .theme-html #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu .sub-nav li a:focus {
    background: transparent;
    color: #00bf7d;
    text-decoration: none;
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:hover > a .menu-caret,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:focus-within > a .menu-caret {
    transform: rotate(180deg);
  }

  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:hover .sub-nav,
  #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu:focus-within .sub-nav {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) !important;
    z-index: 60;
  }
}

/* Parent's compiled dist/style.css still has `#mobile-menu nav a:last-of-type {gradient pill}`
 * which was designed for an old hardcoded Contact us CTA link. Now that Contact is a real
 * menu item managed in WP Admin, that rule wrongly paints it as a button. Reset it back to
 * normal nav-item styling so Contact stacks with Family/Intergenerational/etc. */
#page-header #mobile-menu nav > a:last-of-type {
  background: none !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #004e57 !important;
  display: block !important;
  font-family: "Inter", sans-serif !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.2em !important;
  padding: 0 0 30px !important;
  text-decoration: none !important;
}

/* Mobile menu CTA — applied to the Book a Meeting <button>, not the last <a>.
 * Renders as a block on its own line below the menu items. */
#page-header #mobile-menu nav .rp-book-meeting-btn.mobile-book-meeting {
  background: linear-gradient(90deg, #1dc480, #12906d 43%, #064f56);
  border: 0;
  border-radius: 40px;
  color: #fff !important;
  cursor: pointer;
  display: inline-block;
  font-family: "Sora", sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 21px;
  margin-top: 28px;
  padding: 16px 32px;
  text-decoration: none;
  width: auto;
}

#page-header #mobile-menu nav .has-sub-menu > a {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #004e57 !important;
  display: block !important;
  font-family: "Inter", sans-serif;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.2em;
  padding: 0 0 10px;
  text-decoration: none;
}

/* Bring the two odd-one-out links into line with the rest (18px, 18px bottom
   gap, no right offset). Contact (last <a>) has a reset rule forcing
   24px/30px !important; "Our Prosperity" (.has-sub-menu > a) inherits the
   parent's 30px-bottom + 15px-right padding. The .theme-html prefix raises
   specificity and !important + later source guarantees the override. */
.theme-html #page-header #mobile-menu nav > a:last-of-type,
.theme-html #page-header #mobile-menu nav .has-sub-menu > a {
  font-size: 18px !important;
  padding: 0 0 18px !important;
}

.theme-html #page-header #mobile-menu nav .has-sub-menu > a span {
  font-size: 18px !important;
}

#page-header #mobile-menu nav .has-sub-menu > a span,
.theme-html #page-header #mobile-menu nav .has-sub-menu > a span {
  color: #004e57 !important;
}

#page-header #mobile-menu nav .has-sub-menu > a::after,
.theme-html #page-header #mobile-menu nav .has-sub-menu > a::after {
  content: none !important;
}

#page-header #mobile-menu nav .has-sub-menu > a .menu-caret,
.theme-html #page-header #mobile-menu nav .has-sub-menu > a .menu-caret,
#page-header #mobile-menu nav .has-sub-menu > a .menu-caret svg,
.theme-html #page-header #mobile-menu nav .has-sub-menu > a .menu-caret svg {
  display: none !important;
}

#page-header #mobile-menu nav .has-sub-menu .sub-nav {
  display: block !important;
  opacity: 1 !important;
  padding-left: 0;
  pointer-events: auto !important;
  text-align: center;
  transform: none !important;
  visibility: visible !important;
  height: auto !important;
  overflow: visible !important;
}

#page-header #mobile-menu nav .has-sub-menu.sub-nav-active .sub-nav,
.theme-html #page-header #mobile-menu nav .has-sub-menu.sub-nav-active .sub-nav,
#page-header #mobile-menu nav .has-sub-menu > a.sub-nav-active + .sub-nav,
.theme-html #page-header #mobile-menu nav .has-sub-menu > a.sub-nav-active + .sub-nav {
  display: block !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  text-align: center;
}

#page-header #mobile-menu nav .has-sub-menu .sub-nav li a,
.theme-html #page-header #mobile-menu nav .has-sub-menu .sub-nav li a {
  background: none !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #004e57 !important;
  display: block !important;
  font-family: "Inter", sans-serif;
  font-size: 24px;
  font-weight: 700 !important;
  line-height: 1.2em;
  padding: 0 0 18px;
  text-align: center;
  text-decoration: none;
}

/* ===========================================================================
   MOBILE NAV — single authoritative spacing model.
   Root cause of the uneven gaps: top-level links get their spacing from the
   <a>, but sub-items got <a> padding PLUS leftover .sub-nav / <li> spacing, so
   their gaps were larger. Fix: ALL spacing lives on the links (18px bottom gap,
   nothing on top/sides); ALL wrappers contribute zero. Result — every gap
   between every item (Family … Contact, incl. the Our Prosperity dropdown and
   its sub-items) is an identical 18px. !important + last-in-source beats the
   parent theme and all earlier patches.
   =========================================================================== */
.theme-html #page-header #mobile-menu nav .has-sub-menu,
.theme-html #page-header #mobile-menu nav .has-sub-menu .sub-nav,
.theme-html #page-header #mobile-menu nav .has-sub-menu .sub-nav li {
  margin: 0 !important;
  padding: 0 !important;
}

.theme-html #page-header #mobile-menu nav > a,
.theme-html #page-header #mobile-menu nav > a:last-of-type,
.theme-html #page-header #mobile-menu nav .has-sub-menu > a,
.theme-html #page-header #mobile-menu nav .has-sub-menu .sub-nav li a {
  display: block !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.2em !important;
  margin: 0 !important;
  padding: 0 0 18px !important;
}

#page-footer .footer-menu nav a,
#page-footer .footer-menu nav a:last-of-type {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #fff !important;
  display: block !important;
  font-family: "Inter", sans-serif !important;
  font-size: 14px !important;
  font-style: normal !important;
  font-weight: 500 !important;
  line-height: 21px !important;
  margin-top: 0 !important;
  padding: 0 !important;
  text-decoration: none !important;
}

#page-footer .footer-menu nav a:last-of-type::after {
  content: none !important;
  display: none !important;
}

/* Our Prosperity mobile fixes */

@media (max-width: 767px) {
  .block--regional-prosperity-carousel .container-block__content .carousel-content {
    width: 100%;
    overflow-x: clip;
  }

  .block--regional-prosperity-carousel .container-block__content .carousel-content::after {
    width: 100%;
  }

  .block--regional-prosperity-carousel .container-block__content .carousel-content .owl-nav {
    right: 0;
  }

  .block--building-prosperity .container-block .tabs-wrapper .tab-wrapper .image-content .img-bottom {
    display: block;
    position: absolute;
    top: calc(100% - 28px);
    left: 0;
    width: 110px;
    height: 28px;
  }
}

/* Child our-team override */

.block--our-team .container-block__inner .dflex-stacks .team-wrapper {
  min-width: 0;
}

.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content .hover-content__inner,
.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content p {
  font-family: "Inter", sans-serif;
  font-size: 18px;
  line-height: 28px;
  font-weight: 400;
  color: #2a2a2a;
  letter-spacing: -0.352px;
  margin: 0;
  max-height: 100%;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(42, 42, 42, 0.4) transparent;
}

.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content .hover-content__inner::-webkit-scrollbar,
.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content p::-webkit-scrollbar {
  width: 4px;
}

.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content .hover-content__inner::-webkit-scrollbar-track,
.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content p::-webkit-scrollbar-track {
  background: transparent;
}

.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content .hover-content__inner::-webkit-scrollbar-thumb,
.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content p::-webkit-scrollbar-thumb {
  background: rgba(42, 42, 42, 0.4);
  border-radius: 999px;
}

.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content .hover-content__inner::-webkit-scrollbar-thumb:hover,
.block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content p::-webkit-scrollbar-thumb:hover {
  background: rgba(42, 42, 42, 0.6);
}

.block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-details {
  display: none;
}

@media (max-width: 1024px) {
  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .hover-content {
    display: none;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 14px;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content h3 {
    margin: 0;
    font-size: 18px;
    line-height: 24px;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content small {
    line-height: 16px;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-details {
    display: block;
    margin-top: 8px;
    width: 100%;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-toggle {
    align-items: center;
    background: none;
    border: 0;
    color: #004e57;
    cursor: pointer;
    display: inline-flex;
    gap: 10px;
    list-style: none;
    padding: 0;
    text-align: left;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-toggle::-webkit-details-marker {
    display: none;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-toggle__label {
    font-family: "Sora", sans-serif;
    font-size: 14px;
    line-height: 18px;
    font-weight: 600;
    color: #004e57;
    letter-spacing: -0.308px;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-toggle__label--open {
    display: none;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-toggle__icon {
    flex-shrink: 0;
    transition: transform 0.2s ease;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-panel {
    display: none;
    margin-top: 14px;
    max-height: 200px;
    overflow-y: auto;
    padding-right: 10px;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 78, 87, 0.35) transparent;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-panel::-webkit-scrollbar {
    width: 4px;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-panel::-webkit-scrollbar-track {
    background: transparent;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-panel::-webkit-scrollbar-thumb {
    background: rgba(0, 78, 87, 0.35);
    border-radius: 999px;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-panel::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 78, 87, 0.5);
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-panel,
  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-panel p {
    font-family: "Inter", sans-serif;
    font-size: 14px;
    line-height: 21px;
    font-weight: 400;
    color: #004e57;
    letter-spacing: -0.308px;
    margin: 0;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-panel p + p {
    margin-top: 12px;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-details[open] .team-bio-toggle__label--closed {
    display: none;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-details[open] .team-bio-toggle__label--open {
    display: inline;
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-details[open] .team-bio-toggle__icon {
    transform: rotate(45deg);
  }

  .block--our-team .container-block__inner .dflex-stacks .team-wrapper .team-bottom-content .team-bio-details[open] .team-bio-panel {
    display: block;
  }
}

.blog-single__cite {
  font-size: 0.7em;
  line-height: 1;
  vertical-align: super;
  margin: 0 1px;
}

.blog-single__cite a {
  text-decoration: none;
  color: #0b7c5f;
  border-bottom: none;
  padding: 1px 5px;
  border-radius: 3px;
  background-color: rgba(11, 124, 95, 0.08);
  font-weight: 600;
  font-family: "Sora", sans-serif;
  transition: background-color 0.2s ease, color 0.2s ease;
  scroll-margin-top: 110px;
}

.blog-single__cite a:hover,
.blog-single__cite a:focus {
  background-color: rgba(11, 124, 95, 0.18);
  color: #0b4f43;
}

.blog-single__references {
  --rp-ref-heading: #17334d;
  --rp-ref-text: #2a2a2a;
  --rp-ref-muted: #5c5c5c;
  --rp-ref-rule: rgba(11, 79, 67, 0.18);
  --rp-ref-accent: #0b7c5f;
  margin-top: 3rem;
}

.blog-single__references-details {
  border-top: 1px solid var(--rp-ref-rule);
  border-bottom: 1px solid var(--rp-ref-rule);
}

.blog-single__references-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem 0;
}

.blog-single__references-summary::-webkit-details-marker {
  display: none;
}

.blog-single__references-summary::marker {
  content: "";
}

.blog-single__content h2.blog-single__references-title,
.blog-single__references-title {
  margin: 0;
  max-width: none;
  font-family: "Sora", sans-serif;
  font-size: 26px;
  color: var(--rp-ref-heading);
  line-height: 1.25;
  letter-spacing: 0;
}

.blog-single__references-toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}

.blog-single__references-toggle-h,
.blog-single__references-toggle-v {
  position: absolute;
  background: var(--rp-ref-accent);
  border-radius: 1px;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.blog-single__references-toggle-h {
  width: 12px;
  height: 1.5px;
}

.blog-single__references-toggle-v {
  width: 1.5px;
  height: 12px;
}

.blog-single__references-details[open] .blog-single__references-toggle-v {
  opacity: 0;
  transform: scaleY(0);
}

.blog-single__references-list {
  margin: 0 0 1.5rem;
  padding-left: 2rem;
  list-style: decimal;
}

.blog-single__references-item {
  margin-bottom: 1rem;
  font-family: "Sora", sans-serif;
  font-size: 14px;
  line-height: 1.65;
  color: var(--rp-ref-text);
  scroll-margin-top: 110px;
}

.blog-single__references-item::marker {
  color: var(--rp-ref-accent);
  font-weight: 600;
}

.blog-single__references-item:target {
  background-color: rgba(11, 124, 95, 0.1);
  border-radius: 4px;
  padding: 0.25rem 0.5rem;
  margin-left: -0.5rem;
  transition: background-color 1.2s ease;
}

.blog-single__references-text {
  display: inline;
}

.blog-single__references-text > p {
  display: inline;
  margin: 0;
}

.blog-single__references-link {
  display: block;
  margin-top: 0.25rem;
  word-break: break-all;
  color: var(--rp-ref-accent);
  text-decoration: underline;
  font-size: 13px;
}

.blog-single__references-back {
  display: inline-block;
  margin-left: 0.5rem;
  text-decoration: none;
  color: var(--rp-ref-muted);
  font-size: 14px;
  opacity: 0.55;
  transition: opacity 0.2s ease;
}

.blog-single__references-back:hover,
.blog-single__references-back:focus {
  opacity: 1;
  color: var(--rp-ref-accent);
}

@media (max-width: 600px) {
  .blog-single__content h2.blog-single__references-title,
  .blog-single__references-title {
    font-size: 23px;
  }

  .blog-single__references-list {
    padding-left: 1.5rem;
  }
}

.blog-single__general-warning {
  margin: 2.5rem 0 0;
  padding: 1.15rem 1.4rem;
  background-color: #f4f4f2;
  border-radius: 4px;
}

.blog-single__general-warning-body {
  font-family: "Sora", sans-serif;
  font-size: 13.5px;
  line-height: 1.6;
  color: #2a2a2a;
}

.blog-single__general-warning-body p {
  margin: 0 0 0.75rem;
}

.blog-single__general-warning-body p:last-child {
  margin-bottom: 0;
}

.blog-single__general-warning-body strong {
  color: #0b4f43;
  font-weight: 700;
}

.blog-single__important-info {
  --rp-info-heading: #17334d;
  --rp-info-text: #2a2a2a;
  --rp-info-rule: rgba(11, 79, 67, 0.18);
  --rp-info-accent: #0b7c5f;
  margin-top: 1.5rem;
}

.blog-single__important-info-details {
  border-top: 1px solid var(--rp-info-rule);
  border-bottom: 1px solid var(--rp-info-rule);
}

.blog-single__important-info-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem 0;
}

.blog-single__important-info-summary::-webkit-details-marker {
  display: none;
}

.blog-single__important-info-summary::marker {
  content: "";
}

.blog-single__content h2.blog-single__important-info-title,
.blog-single__important-info-title {
  margin: 0;
  max-width: none;
  font-family: "Sora", sans-serif;
  font-size: 26px;
  color: var(--rp-info-heading);
  line-height: 1.25;
  letter-spacing: 0;
}

.blog-single__important-info-toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}

.blog-single__important-info-toggle-h,
.blog-single__important-info-toggle-v {
  position: absolute;
  background: var(--rp-info-accent);
  border-radius: 1px;
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.blog-single__important-info-toggle-h {
  width: 12px;
  height: 1.5px;
}

.blog-single__important-info-toggle-v {
  width: 1.5px;
  height: 12px;
}

.blog-single__important-info-details[open] .blog-single__important-info-toggle-v {
  opacity: 0;
  transform: scaleY(0);
}

.blog-single__important-info-body {
  padding: 0 0 1.5rem;
  font-family: "Sora", sans-serif;
  font-size: 14px;
  line-height: 1.7;
  color: var(--rp-info-text);
}

.blog-single__important-info-body p {
  margin: 0 0 1rem;
}

.blog-single__important-info-body p:last-child {
  margin-bottom: 0;
}

.blog-single__important-info-body strong {
  color: var(--rp-info-heading);
}

.blog-single__important-info-body a {
  color: var(--rp-info-accent);
  text-decoration: underline;
}

@media (max-width: 600px) {
  .blog-single__general-warning {
    padding: 0.95rem 1.1rem;
  }

  .blog-single__general-warning-body {
    font-size: 12.75px;
  }

  .blog-single__content h2.blog-single__important-info-title,
  .blog-single__important-info-title {
    font-size: 23px;
  }
}

/* === Reusable Book a Meeting CTA button === */
.rp-book-meeting-btn {
  display: inline-block;
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  cursor: pointer;
  padding: 12px 28px;
  background: linear-gradient(90deg, #1dc480, #12906d 43%, #064f56);
  background-size: 100%;
  border-radius: 40px;
  color: #fff;
  font-family: "Sora", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.308px;
  text-decoration: none;
  text-align: center;
  transition: background-size 0.3s ease, transform 0.2s ease;
}

.rp-book-meeting-btn:hover,
.rp-book-meeting-btn:focus {
  background-size: 400%;
  -webkit-animation: Gradient 10s ease infinite;
  animation: Gradient 10s ease infinite;
  color: #fff;
}

/* Header-specific sizing tweak so it fits the nav row height */
#page-header .contact-us-btn {
  text-align: right;
  white-space: nowrap;
}

#page-header .contact-us-btn .rp-book-meeting-btn.header-book-meeting {
  width: auto;
  padding: 8px 20px;
  font-size: 14px;
  line-height: 21px;
  margin: 15px 0;
}

/* ==========================================================================
   Booking Confirm + Thank You page templates
   tmpl-booking-confirm.php / tmpl-thank-you.php
   ========================================================================== */

.rp-booking-confirm,
.rp-thank-you {
  padding: 120px 0 80px;
  color: #1f2a2a;
}

.rp-thank-you__inner h2 {
  font-family: "Sora", sans-serif;
  font-size: 44px;
  line-height: 1.15;
  font-weight: 700;
  margin: 0 0 20px;
}

@media (max-width: 720px) {
  .rp-thank-you__inner h2 {
    font-size: 34px;
  }
}

.rp-booking-confirm__inner,
.rp-thank-you__inner {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 var(--rp-blog-gutter, 60px);
}

.rp-booking-confirm__intro,
.rp-thank-you__subhead {
  font-size: 18px;
  line-height: 1.5;
  margin: 0 0 36px;
}

.rp-booking-confirm__section-title {
  font-size: 26px;
  line-height: 1.2;
  margin: 48px 0 16px;
}

.rp-booking-confirm__stages-list {
  padding-left: 22px;
  margin: 0 0 24px;
  font-size: 17px;
  line-height: 1.5;
}

.rp-booking-confirm__stages-list li {
  margin-bottom: 10px;
}

.rp-booking-confirm__placeholder-note {
  color: #777;
  font-size: 14px;
  margin: 0 0 16px;
}

.rp-booking-confirm__presenter-role {
  color: #555;
  margin: 0 0 16px;
  font-size: 16px;
}

.rp-booking-confirm__video-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  overflow: hidden;
  margin: 0 0 32px;
}

.rp-booking-confirm__video-wrap iframe,
.rp-booking-confirm__video-wrap video,
.rp-booking-confirm__video-wrap mux-player,
.rp-booking-confirm__video-wrap > * {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.rp-booking-confirm__cta {
  margin-top: 40px;
}

.rp-booking-confirm__cta-btn {
  display: inline-block;
  padding: 12px 24px;
  background: #005a63;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  font-weight: 600;
}

.rp-booking-confirm__cta-btn:hover {
  background: #004b53;
  color: #fff;
}

@media (max-width: 720px) {
  .rp-booking-confirm,
  .rp-thank-you {
    padding: 80px 0 60px;
  }
  .rp-booking-confirm__inner,
  .rp-thank-you__inner {
    padding: 0 24px;
  }
}

.rp-thank-you__image {
  margin: 0 0 36px;
}
.rp-thank-you__image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
}

.rp-thank-you__steps {
  margin: 8px 0 8px;
}
.rp-thank-you__steps-title {
  font-family: "Sora", sans-serif;
  font-size: 24px;
  line-height: 1.2;
  font-weight: 700;
  margin: 0 0 20px;
}
.rp-thank-you__steps-list {
  list-style: none;
  counter-reset: rp-ty-step;
  margin: 0;
  padding: 0;
}
.rp-thank-you__step {
  counter-increment: rp-ty-step;
  position: relative;
  padding: 0 0 20px 52px;
  min-height: 36px;
}
.rp-thank-you__step:last-child {
  padding-bottom: 0;
}
.rp-thank-you__step::before {
  content: counter(rp-ty-step);
  position: absolute;
  left: 0;
  top: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #005a63;
  color: #fff;
  font-family: "Sora", sans-serif;
  font-weight: 700;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rp-thank-you__step-title {
  display: block;
  font-weight: 700;
  font-size: 18px;
  margin: 2px 0 4px;
}
.rp-thank-you__step-text {
  display: block;
  font-size: 16px;
  line-height: 1.5;
  color: #3a4646;
}

/* Reviews carousel embedded as a full-width band. When present, the main's
   bottom padding is dropped (below) so the band sits flush above the footer. */
.rp-thank-you--has-reviews {
  padding-bottom: 0;
}
.rp-thank-you__reviews {
  margin-top: 64px;
  padding: 56px 0 64px;
  background: #f2f5f5;
  border-top: 1px solid #e2e8e8;
}
.rp-thank-you__reviews .block--testimonial-carousel {
  margin: 0;
}

/* ============================================================
   Thank You (Branded) — tmpl-thank-you-branded.php
   Namespaced .rp-tyb; palette scoped so it can't leak. Headings
   use Sora (the live site font); the mockup's Onest is a stand-in.
   ============================================================ */
.rp-tyb {
  --tyb-teal: #004e57;
  --tyb-green: #00bf7d;
  --tyb-green-bright: #06d98a;
  --tyb-mist: #e6edee;
  --tyb-coral: #f5825d;
  --tyb-muted: #3d7078;
  --tyb-max: 1240px;
  color: var(--tyb-teal);
}
.rp-tyb__inner {
  max-width: var(--tyb-max);
  margin: 0 auto;
  padding: 0 clamp(24px, 5vw, 64px);
}
/* Selectors are scoped under .rp-tyb (specificity 0,2,0) so they beat the parent
   theme's .theme-html p / .theme-html h1,h2 rules (0,1,1), which otherwise force
   Inter, 14px, weight 400 and the inherited (dark) colour onto our text. */
.rp-tyb .rp-tyb__eyebrow {
  margin: 0;
  font-family: "Sora", sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.3;
  text-transform: uppercase;
  color: var(--tyb-green);
}

/* Hero */
.rp-tyb__hero {
  position: relative;
  overflow: hidden;
  background: var(--tyb-teal);
  padding: 150px 24px 120px;
  text-align: center;
}
.rp-tyb__hero-inner {
  position: relative;
  z-index: 1;
  max-width: 880px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
}
.rp-tyb .rp-tyb__hero .rp-tyb__eyebrow {
  color: var(--tyb-green-bright);
}
.rp-tyb .rp-tyb__title {
  margin: 0;
  font-family: "Sora", sans-serif;
  font-size: clamp(40px, 7vw, 76px);
  line-height: 1.05;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #fff;
  text-wrap: balance;
}
.rp-tyb .rp-tyb__title .rp-tyb__accent {
  color: var(--tyb-green-bright);
}
.rp-tyb .rp-tyb__lead {
  margin: 0;
  max-width: 560px;
  font-size: 19px;
  line-height: 1.55;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.85);
}
.rp-tyb__bar {
  position: absolute;
  height: 44px;
  z-index: 0;
}
.rp-tyb__bar--tr {
  top: 0;
  right: -30px;
  width: 220px;
  background: linear-gradient(90deg, #00bf7d 0%, #00b0bf 100%);
}
.rp-tyb__bar--bl {
  bottom: 0;
  left: 0;
  width: 180px;
  background: linear-gradient(90deg, #e9b54b 0%, #f5825d 100%);
}

/* What happens next */
.rp-tyb__next {
  background: #fff;
  padding: 96px 0 110px;
}
.rp-tyb__next-head {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 56px;
}
.rp-tyb .rp-tyb__section-title {
  margin: 0;
  font-family: "Sora", sans-serif;
  font-size: clamp(30px, 3.4vw, 40px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: normal;
  color: var(--tyb-teal);
}
.rp-tyb .rp-tyb__section-title b {
  font-weight: 800;
}
.rp-tyb__steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.rp-tyb__step {
  background: var(--tyb-mist);
  padding: 40px 36px 44px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.rp-tyb__step-num {
  font-family: "Sora", sans-serif;
  font-size: 60px;
  font-weight: 800;
  line-height: 1;
  color: var(--tyb-green);
}
.rp-tyb .rp-tyb__step-title {
  margin: 0;
  font-family: "Sora", sans-serif;
  font-size: 27px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: normal;
  color: var(--tyb-teal);
}
.rp-tyb .rp-tyb__step-body {
  margin: 0;
  font-size: 16.5px;
  font-weight: 400;
  line-height: 1.55;
  color: var(--tyb-teal);
}
.rp-tyb .rp-tyb__callnote {
  margin: 56px 0 0;
  text-align: center;
  font-size: 17px;
  line-height: 1.5;
  color: var(--tyb-muted);
}
.rp-tyb__callnote b {
  color: var(--tyb-teal);
}
.rp-tyb__callnote a {
  color: inherit;
  text-decoration: none;
}
.rp-tyb__callnote a:hover {
  text-decoration: underline;
}

/* Testimonials */
.rp-tyb__reviews {
  background: var(--tyb-mist);
  padding: 0 0 96px;
  overflow: hidden;
}
.rp-tyb__reviews-head {
  display: flex;
  align-items: flex-end;
  gap: 56px;
  max-width: var(--tyb-max);
  margin: 0 auto;
  padding: 96px clamp(24px, 5vw, 64px) 64px;
}
.rp-tyb__reviews-photo {
  width: 180px;
  height: 220px;
  object-fit: cover;
  margin-top: -96px;
  display: block;
  flex: none;
}
.rp-tyb__reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  max-width: var(--tyb-max);
  margin: 0 auto;
  padding: 0 clamp(24px, 5vw, 64px);
}
.rp-tyb__card {
  background: #fff;
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  border: 1px solid var(--tyb-coral);
}
.rp-tyb .rp-tyb__quote {
  margin: 0;
  font-size: 16.5px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--tyb-teal);
}
.rp-tyb__who {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 14px;
}
.rp-tyb__avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  flex: none;
}
.rp-tyb__who-text {
  display: flex;
  flex-direction: column;
}
.rp-tyb .rp-tyb__who-name {
  display: block;
  font-family: "Sora", sans-serif;
  font-weight: 600;
  color: var(--tyb-teal);
}
.rp-tyb .rp-tyb__who-role {
  display: block;
  font-family: "Sora", sans-serif;
  font-size: 14px;
  color: var(--tyb-muted);
}

@media (max-width: 900px) {
  .rp-tyb__steps,
  .rp-tyb__reviews-grid {
    grid-template-columns: 1fr;
  }
  .rp-tyb__reviews-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }
  .rp-tyb__reviews-photo {
    margin-top: -64px;
  }
}
@media (max-width: 720px) {
  .rp-tyb__hero {
    padding: 120px 24px 80px;
  }
  .rp-tyb__next {
    padding: 64px 0 72px;
  }
}

.rp-location-remote-cta {
  background: #e6edee;
  padding: 64px 24px;
  margin: 48px 0 0;
  text-align: center;
}
.rp-location-remote-cta h2 {
  max-width: 720px;
  margin: 0 auto 16px;
  font-size: 28px;
  line-height: 1.25;
}
.rp-location-remote-cta p {
  max-width: 640px;
  margin: 0 auto 24px;
  font-size: 17px;
  line-height: 1.55;
}
.rp-location-remote-cta .rp-book-meeting-btn {
  margin-top: 8px;
}
@media (max-width: 720px) {
  .rp-location-remote-cta {
    padding: 40px 20px;
  }
  .rp-location-remote-cta h2 {
    font-size: 22px;
  }
  .rp-location-remote-cta p {
    font-size: 16px;
  }
}

/* ── Partners block ───────────────────────────────────────────────── */
.block--partners {
  --rp-partner-heading: #0e2f45;
  --rp-partner-body: #355468;
  --rp-partner-accent: #0d8d6f;
  --rp-partner-border: #d5e5e2;
  padding: 56px 0;
}

.rp-partners-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

@media (max-width: 1023px) {
  .rp-partners-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .rp-partners-grid {
    grid-template-columns: 1fr;
  }
}

.rp-partner-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--rp-partner-border);
  border-radius: 12px;
  overflow: hidden;
  background: #ffffff;
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.rp-partner-card:hover,
.rp-partner-card:focus-within {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px -22px rgba(14, 47, 69, 0.55);
  border-color: #c2dad5;
}

/* Kill the theme's content-area link underline on cards (.post-content-area a,
   p a). The double class wins on specificity without needing !important. */
.block--partners .rp-partner-card,
.block--partners .rp-partner-card:hover,
.block--partners .rp-partner-card:focus {
  text-decoration: none;
}

/* Partners with no website URL render as a plain tile — no link, no lift. */
.rp-partner-card--static {
  cursor: default;
}

.rp-partner-card--static:hover {
  transform: none;
  box-shadow: none;
  border-color: var(--rp-partner-border);
}

.rp-partner-card__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 3 / 2;
  background: #ffffff;
  border-bottom: 1px solid var(--rp-partner-border);
  padding: 24px;
  overflow: hidden;
}

.rp-partner-card__logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  margin: auto;
  object-fit: contain;
}

.rp-partner-card__logo-fallback {
  font-family: "Sora", sans-serif;
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--rp-partner-heading);
  text-align: center;
}

.rp-partner-card__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 20px 22px 22px;
}

.rp-partner-card__name {
  font-family: "Sora", sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
  line-height: 1.25;
  color: var(--rp-partner-heading);
}

.rp-partner-card__desc {
  font-family: "Inter", sans-serif;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--rp-partner-body);
}

/* Secondary link (e.g. a case study). Sits above the stretched "Visit website"
   link (z-index) so it stays independently clickable; align-self keeps its hit
   area to the text width, so the rest of the card still opens the website.
   Scoped with .block--partners (double class) to win over the theme's
   content-area link underline — same trick as the card rule above. */
.block--partners .rp-partner-card__case {
  position: relative;
  z-index: 1;
  align-self: flex-start;
  margin-top: auto;
  padding-top: 6px;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--rp-partner-accent);
  text-decoration: none;
}

/* The "Visit website" link is stretched via ::after to cover the whole card,
   making the card read as one big link to the partner's site. */
.block--partners .rp-partner-card__more {
  margin-top: auto;
  padding-top: 6px;
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--rp-partner-accent);
  text-decoration: none;
}

.rp-partner-card__more::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
}

/* When a case study link is present it takes the top margin, so the website
   link should sit directly beneath it rather than claiming the free space. */
.rp-partner-card__case + .rp-partner-card__more {
  margin-top: 0;
}

.rp-partners-empty {
  color: var(--rp-partner-body);
  font-size: 1.05rem;
}


/* ============================================================
   Adviser / team-member profile (single-team_member.php)
   Ports the "bio v2" design (screenshots/bio-*-v2.html). All
   rules are scoped under .rp-bio so they can't touch the rest
   of the site; the design's standalone topbar/footer are
   dropped in favour of the live site header/footer.
   ============================================================ */
.rp-bio{
  --forest:#054F57; --field:#1CBF80; --sky:#1CB0C2;
  --clay:#BF8061; --ruby:#7D264D; --earth:#573B4A; --gold:#C79E40; --ember:#F78761;
  --rpbio-bg:#EEF2F1; --rpbio-offwhite:#F7F9F8; --rpbio-white:#FFFFFF;
  --rpbio-border:#D8E2DF; --rpbio-muted:#5A7068; --rpbio-text:#1A2B28;
  --rpbio-sans:'Sora',Arial,system-ui,sans-serif;
  background:var(--rpbio-bg);
  color:var(--rpbio-text);
  font-family:var(--rpbio-sans);
  line-height:1.65;
}
.rp-bio a{color:var(--forest);text-decoration:none}
.rp-bio a:hover{text-decoration:underline}
.rp-bio img{max-width:100%;display:block}
/* Opaque (white) header bar: symmetric 24px top/bottom padding on every page
   that uses this variant — Contact, booking/thank-you, adviser profiles, 404.
   Overrides the parent's asymmetric values at all breakpoints. */
#page-header.page-header--opaque .upper-header-wrapper.container-block{padding-top:14.5px;padding-bottom:14.5px}

/* The site header is position:fixed and OVERLAYS content, so the first element
   (the breadcrumb) must be pushed clear of it. With the 24/24 header bar above,
   the bar is ~88px tall — this clears it with a small gap. */
body.single-team_member .rp-bio{padding-top:24px}

/* breadcrumb */
.rp-bio .crumbs{max-width:1120px;margin:0 auto;padding:18px 32px 0;font-size:12.5px;color:var(--rpbio-muted)}
.rp-bio .crumbs a{color:var(--rpbio-muted)}
.rp-bio .crumbs span{color:var(--rpbio-text);font-weight:500}

/* step device */
.rp-bio .step{display:flex;align-items:flex-end;margin-bottom:28px}
.rp-bio .step span{height:24px;display:block}
.rp-bio .step span:nth-child(1){width:168px;background:linear-gradient(90deg,var(--field),var(--forest))}
.rp-bio .step span:nth-child(2){width:92px;background:linear-gradient(90deg,var(--gold),var(--ember));margin-bottom:24px}
.rp-bio .step span:nth-child(3){width:126px;background:linear-gradient(90deg,var(--ember),var(--earth));margin-bottom:48px}

/* hero */
.rp-bio .bio-hero{max-width:1120px;margin:0 auto;padding:40px 32px 20px}
.rp-bio .bio-hero-grid{display:grid;grid-template-columns:300px 1fr;gap:44px;align-items:stretch}
.rp-bio .bio-photo{position:relative;height:100%}
.rp-bio .bio-photo .frame{border-radius:0;overflow:hidden;height:100%;min-height:400px;background:linear-gradient(160deg,var(--forest),#0a6b6f);display:flex;align-items:center;justify-content:center}
.rp-bio .bio-photo .frame .initials{font-family:var(--rpbio-sans);font-weight:700;font-size:64px;color:rgba(255,255,255,.85)}
.rp-bio .bio-photo .frame img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.rp-bio .bio-head .eyebrow{font-family:var(--rpbio-sans);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--sky);margin-bottom:10px}
.rp-bio .bio-head h1{font-family:var(--rpbio-sans);font-weight:600;font-size:clamp(30px,4.4vw,46px);line-height:1.08;color:var(--forest);margin-bottom:6px}
.rp-bio .bio-head .role{font-family:var(--rpbio-sans);font-weight:500;font-size:17px;color:var(--clay);margin-bottom:18px}
.rp-bio .bio-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.rp-bio .bio-meta .chip{font-size:12.5px;font-weight:500;background:var(--rpbio-white);border:1px solid var(--rpbio-border);border-radius:30px;padding:6px 14px;color:var(--forest);box-shadow:0 1px 4px rgba(5,79,87,.06)}
.rp-bio .bio-meta .chip b{font-weight:600}
.rp-bio .bio-intro{font-size:17px;color:var(--rpbio-muted)}
.rp-bio .bio-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:22px}
/* The primary CTA reuses the site's .rp-book-meeting-btn (identical to the nav
   button + booking trigger). The phone is a plain underlined secondary link. */
.rp-bio .bio-call{font-family:var(--rpbio-sans);font-weight:600;font-size:15px;color:var(--forest);text-decoration:underline}
.rp-bio .bio-call:hover{text-decoration:underline;opacity:.8}

/* sections */
.rp-bio section{max-width:1120px;margin:0 auto;padding:44px 32px}
.rp-bio .section-head{margin-bottom:24px}
.rp-bio .section-head .phase{font-family:var(--rpbio-sans);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--sky);margin-bottom:6px}
.rp-bio h2{font-family:var(--rpbio-sans);font-weight:600;font-size:clamp(25px,3.2vw,36px);line-height:1.14;color:var(--forest);margin-bottom:14px}
.rp-bio .prose p{font-size:16px;color:var(--rpbio-muted);margin-bottom:16px}
.rp-bio .prose p strong{color:var(--rpbio-text)}

/* credentials panel */
.rp-bio .creds{background:var(--rpbio-white);border:1px solid var(--rpbio-border);border-radius:0;padding:30px 32px;box-shadow:0 2px 8px rgba(5,79,87,.08)}
.rp-bio .creds h3{font-family:var(--rpbio-sans);font-weight:600;font-size:18px;color:var(--forest);margin-bottom:18px}
.rp-bio .creds-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 32px}
.rp-bio .cred-item{border-left:3px solid var(--field);padding-left:14px}
.rp-bio .cred-item:nth-child(2){border-left-color:var(--sky)}
.rp-bio .cred-item:nth-child(3){border-left-color:var(--clay)}
.rp-bio .cred-item:nth-child(4){border-left-color:var(--gold)}
.rp-bio .cred-item .k{font-family:var(--rpbio-sans);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--rpbio-muted);margin-bottom:4px}
.rp-bio .cred-item .v{font-size:16px;color:var(--rpbio-text);line-height:1.45}
.rp-bio .cred-item .v a{color:var(--forest);text-decoration:underline}

/* specialises-in cards */
.rp-bio .spec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rp-bio .spec{background:var(--rpbio-white);border:1px solid var(--rpbio-border);border-top:4px solid var(--field);border-radius:0;padding:22px 20px;box-shadow:0 2px 8px rgba(5,79,87,.08)}
.rp-bio .spec:nth-child(2){border-top-color:var(--sky)}
.rp-bio .spec:nth-child(3){border-top-color:var(--clay)}
.rp-bio .spec h3{font-family:var(--rpbio-sans);font-weight:600;font-size:16.5px;color:var(--forest);margin-bottom:7px}
.rp-bio .spec p{font-size:16px;color:var(--rpbio-muted)}

/* related links */
.rp-bio .related{display:flex;flex-wrap:wrap;gap:12px}
.rp-bio .related a{font-family:var(--rpbio-sans);font-size:14px;font-weight:500;background:var(--rpbio-white);border:1px solid var(--rpbio-border);border-radius:30px;padding:8px 18px;color:var(--forest);box-shadow:0 1px 4px rgba(5,79,87,.06)}
.rp-bio .related a:hover{border-color:var(--field);text-decoration:none}

/* CTA */
.rp-bio .cta{background:linear-gradient(120deg,var(--forest),#0a6b6f);border-radius:0;color:#fff;display:grid;grid-template-columns:1fr;overflow:hidden}
/* Two columns only when an adviser photo is present; otherwise the text spans
   the full panel (no empty column). */
.rp-bio .cta--has-img{grid-template-columns:1.15fr .85fr}
.rp-bio .cta-img{min-height:340px;background-size:cover;background-position:center 22%}
.rp-bio .cta-content{padding:50px 44px;text-align:left}
.rp-bio .cta .step span:nth-child(1){background:linear-gradient(90deg,var(--field),var(--sky))}
.rp-bio .cta .step span:nth-child(2){background:linear-gradient(90deg,var(--gold),var(--ember))}
.rp-bio .cta .step span:nth-child(3){background:linear-gradient(90deg,var(--ember),var(--sky))}
.rp-bio .cta h2{color:#fff;margin-bottom:12px}
.rp-bio .cta p{color:rgba(255,255,255,.78);max-width:560px;margin:0 0 24px;font-size:16.5px}
/* Bottom-CTA button: rounded solid-green pill (single colour, no gradient),
   with a static hover (no colour shift). */
.rp-bio .cta-btn{display:inline-block;font-family:var(--rpbio-sans);font-weight:600;font-size:16px;background:#1dc480;color:#fff;padding:14px 30px;border-radius:40px;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.rp-bio .cta-btn:hover,
.rp-bio .cta-btn:focus{background:#1dc480;color:#fff;text-decoration:none;background-size:100%;-webkit-animation:none;animation:none}

/* Hero booking button: solid green (single colour) on this page, overriding the
   site button's green-to-teal gradient and its animated hover. */
.rp-bio .bio-actions .rp-book-meeting-btn,
.rp-bio .bio-actions .rp-book-meeting-btn:hover,
.rp-bio .bio-actions .rp-book-meeting-btn:focus{background:#1dc480;background-size:100%;-webkit-animation:none;animation:none}
.rp-bio .cta .sub{font-size:13px;color:rgba(255,255,255,.6);margin-top:16px}

/* compliance */
.rp-bio .compliance{max-width:1120px;margin:0 auto;padding:8px 32px 30px}
.rp-bio .compliance .box{background:var(--rpbio-offwhite);border:1px solid var(--rpbio-border);border-radius:0;padding:20px 24px;font-size:12.5px;color:var(--rpbio-muted);line-height:1.6}
.rp-bio .compliance .box strong{color:var(--rpbio-text)}

@media(max-width:860px){
  .rp-bio .cta,.rp-bio .cta--has-img{grid-template-columns:1fr}
  /* Hide the CTA photo on mobile — the panel is text-only there. */
  .rp-bio .cta-img{display:none}
  .rp-bio .bio-hero-grid{grid-template-columns:1fr;gap:24px}
  /* Photo: full content width, capped to a sensible portrait so it doesn't
     dominate the screen. The step device sits below it in the stacked layout. */
  .rp-bio .bio-photo{max-width:100%;height:auto}
  .rp-bio .bio-photo .frame{height:auto;min-height:0;aspect-ratio:4/5;max-height:60vh}
  .rp-bio .spec-grid{grid-template-columns:1fr}
  .rp-bio .creds-grid{grid-template-columns:1fr}
  /* Hide the step device on the stacked mobile layout — its bars overflow the
     phone width and add little here. */
  .rp-bio .step{display:none}
}
@media(max-width:640px){
  .rp-bio .bio-hero,.rp-bio .crumbs,.rp-bio section,.rp-bio .compliance{padding-left:20px;padding-right:20px}
  /* Tighten the CTA padding so the panel + its copy fit the phone width. */
  .rp-bio .cta-content{padding:32px 24px}
}

/* ============================================================
   CASE STUDY (/case-studies/) — in-body content components
   Ported from the designed case-study mockups in
   docs/case-studies/*.html. Case studies reuse the journal
   article template (single-post.php via single-case_study.php),
   so the hero, author card, FAQ accordion + FAQPage schema,
   references and CTA all come from there. ONLY the three
   distinctive in-body blocks are ported here — stat row, pull
   quote, outcome box — authored into the article body as
   Custom-HTML blocks.

   Palette maps to the brand tokens used elsewhere (forest /
   field-green / clay — the same values as the .rp-bio palette),
   defined locally so the components don't depend on .rp-bio
   scope. Everything is scoped to body.single-case_study so it
   never leaks onto journal posts. The stat card surface is a
   faint forest tint + hairline border (the mockups used solid
   white cards on an off-white page; the live article sits on
   white, so a tint keeps the card legible).
   ============================================================ */
body.single-case_study {
  --rp-cs-forest: #054F57;
  --rp-cs-field: #1CBF80;
  --rp-cs-clay: #BF8061;
  --rp-cs-card-bg: rgba(5, 79, 87, 0.035);
  --rp-cs-card-border: rgba(5, 79, 87, 0.10);
}

/* Case studies show a plain published date in the hero instead of an
   author card (no personal byline). Matches the journal meta styling. */
body.single-case_study .blog-single__hero-main .blog-single__hero-date {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 14px;
  font-weight: 500;
  color: rgba(0, 78, 87, 0.6);
  margin: 0;
}

/* Stat row — a 3-up grid of key figures, collapses to one column
   on narrow screens. Markup:
   <div class="rp-cs-stat-row">
     <div class="rp-cs-stat">
       <div class="rp-cs-stat__num">$13M</div>
       <div class="rp-cs-stat__lbl">Net asset position</div>
     </div> … ×3
   </div>
   Use <span class="rp-cs-stat__unit">ac</span> inside __num for a
   smaller trailing unit (e.g. 3,500 ac). */
body.single-case_study .rp-cs-stat-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 40px 0;
}

body.single-case_study .rp-cs-stat {
  background: var(--rp-cs-card-bg);
  border: 1px solid var(--rp-cs-card-border);
  border-radius: 0;
  padding: 24px 20px;
  text-align: center;
}

body.single-case_study .rp-cs-stat__num {
  font-size: 34px;
  font-weight: 700;
  color: var(--rp-cs-forest);
  line-height: 1;
  margin-bottom: 6px;
}

body.single-case_study .rp-cs-stat__unit {
  font-size: 20px;
}

body.single-case_study .rp-cs-stat__lbl {
  font-size: 12px;
  font-weight: 600;
  color: var(--rp-cs-clay);
  text-transform: uppercase;
  letter-spacing: 1px;
}

@media (max-width: 560px) {
  body.single-case_study .rp-cs-stat-row {
    grid-template-columns: 1fr;
  }
}

/* Pull quote — left-bordered italic callout. Markup:
   <blockquote class="rp-cs-pullquote"><p>…</p></blockquote> */
body.single-case_study .rp-cs-pullquote {
  border-left: 4px solid var(--rp-cs-field);
  margin: 40px 0;
  padding: 20px 28px;
  background: rgba(28, 191, 128, 0.06);
  border-radius: 0;
}

body.single-case_study .rp-cs-pullquote p {
  font-size: 20px;
  font-weight: 500;
  color: var(--rp-cs-forest);
  line-height: 1.5;
  margin: 0;
  font-style: italic;
}

/* ==========================================================================
   Journal "About the author" box (end of a post's content). Renders from the
   author's WP-user profile (bio + full-profile link). See kanes-blog-post.html.
   ========================================================================== */
.blog-single__content .about-author {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 24px;
  align-items: start;
  background: #ece4d1; /* --sand */
  padding: 30px 32px;
  margin: 48px 0 0;
}
.blog-single__content .about-author img {
  width: 96px;
  height: 96px;
  object-fit: cover;
  object-position: center 25%;
  background: #e4eaef;
}
.blog-single__content .about-author__eyebrow {
  font-family: "Sora", sans-serif;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #005a63; /* --teal-2 */
  margin: 0 0 6px;
}
.blog-single__content .about-author__name {
  font-family: "Sora", sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.2;
  color: #004e57; /* --teal */
  margin: 0 0 2px;
}
.blog-single__content .about-author__role {
  font-family: "Inter", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.35;
  color: rgba(5, 79, 87, 0.7);
  margin: 0 0 12px;
}
.blog-single__content .about-author__bio {
  font-family: "Inter", sans-serif;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(5, 79, 87, 0.85);
  margin: 0 0 12px;
}
.blog-single__content .about-author__link {
  font-family: "Sora", sans-serif;
  font-size: 14px;
  font-weight: 600;
  margin: 0;
}
.blog-single__content .about-author__link a {
  color: #004e57;
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (max-width: 600px) {
  .blog-single__content .about-author {
    grid-template-columns: 1fr;
    padding: 26px 22px;
  }
  .blog-single__content .about-author img {
    width: 96px;
  }
}

/* ==========================================================================
   Journal pull quote — restyle the core Pullquote block to the brand
   left-border callout (see screenshots/...2.31.41 PM.png). In a journal post:
   insert a "Pullquote" block, type the quote, then fill the citation line with
   the attribution (e.g. "Kane Leersen, Founder & Director, Regional Prosperity").
   ========================================================================== */
.blog-single__content .wp-block-pullquote {
  border: 0;
  border-left: 4px solid #1cbf80; /* --field */
  margin: 40px 0;
  padding: 4px 0 4px 32px;
  text-align: left;
  background: none;
  color: inherit;
}
.blog-single__content .wp-block-pullquote blockquote {
  margin: 0;
  padding: 0;
  border: 0;
  max-width: none;
}
.blog-single__content .wp-block-pullquote p {
  font-family: "Inter", sans-serif;
  font-size: 22px;
  line-height: 1.35;
  font-style: normal;
  color: #054f57; /* dark teal */
  margin: 0 0 12px;
  text-transform: none;
}
.blog-single__content .wp-block-pullquote cite {
  display: block;
  margin-top: 6px;
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0;
  text-transform: none;
  color: #1cbf80; /* --field */
}

/* Outcome box — dark forest panel summarising the result. Markup:
   <div class="rp-cs-outcome">
     <div class="rp-cs-outcome__label">The outcome in plain terms</div>
     <h3>What this delivered</h3>
     <ul class="rp-cs-outcome__list"><li>…</li></ul>
   </div> */
body.single-case_study .rp-cs-outcome {
  background: var(--rp-cs-forest);
  color: #ffffff;
  border-radius: 0;
  padding: 36px 36px 32px;
  margin: 48px 0;
}

body.single-case_study .rp-cs-outcome__label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--rp-cs-field);
  margin-bottom: 16px;
}

body.single-case_study .rp-cs-outcome h3 {
  font-size: 20px;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 20px;
}

body.single-case_study .rp-cs-outcome__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

body.single-case_study .rp-cs-outcome__list li {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.85);
  display: flex;
  gap: 12px;
  line-height: 1.6;
}

body.single-case_study .rp-cs-outcome__list li::before {
  content: '';
  width: 6px;
  height: 6px;
  background: var(--rp-cs-field);
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 8px;
}

/* ============================================================
   FULL-WIDTH IMAGE BANNERS — remove the decorative "square"
   The full-width-banner block (parent theme) overlays a 2px
   outlined box (.bordered) on the right of the banner image.
   The block + its per-page ACF toggle (hide_bordered_box) live
   in the parent theme, which does NOT ship via Git — so this
   child-theme override is the deployable way to switch the box
   off site-wide. The toggle stays in the editor but has no
   visual effect. Banner image + title/text are unchanged; the
   left content column now sits over the full image.
   ============================================================ */
.block--custom-layout__full-width-banner .bordered {
  display: none !important;
}

/* ============================================================
   HTML SITEMAP  (page-sitemap.php — "HTML Sitemap" template)
   Simple, self-maintaining sitemap page. No banner; sits under
   the standard site header like /contact/.
   ============================================================ */
.rp-sitemap {
  --rp-sm-forest: #054F57;
  --rp-sm-accent: #0b7c5f;
  --rp-sm-clay: #BF8061;
  --rp-sm-text: #263f54;
  --rp-sm-rule: rgba(5, 79, 87, 0.14);
  padding: clamp(110px, 12vw, 150px) 0 clamp(48px, 7vw, 88px);
}

.rp-sitemap__inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 clamp(20px, 5vw, 60px);
  box-sizing: border-box;
}

.rp-sitemap__head {
  max-width: 720px;
  margin-bottom: clamp(32px, 5vw, 56px);
}

.rp-sitemap h1.rp-sitemap__title {
  margin: 0 0 14px;
  color: #004e57;
  font-family: "Sora", sans-serif;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
}

.rp-sitemap__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: clamp(28px, 3.5vw, 44px) clamp(24px, 3vw, 40px);
  align-items: start;
}

.rp-sitemap h2.rp-sitemap__section {
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  color: #004e57;
  font-family: "Sora", sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
}

.rp-sitemap__section a {
  color: inherit;
  text-decoration: none;
}

.rp-sitemap__section a:hover {
  color: var(--rp-sm-accent);
}

.rp-sitemap__subheading {
  margin: 18px 0 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rp-sm-clay);
}

.rp-sitemap__list {
  list-style: none !important;
  margin: 0 0 4px;
  padding: 0;
}

.rp-sitemap__item {
  margin: 0;
  padding: 0;
  list-style: none !important;
  border-bottom: 1px solid var(--rp-sm-rule);
}

.rp-sitemap__item::marker,
.rp-sitemap__item::before {
  content: none;
}

.rp-sitemap__item:last-child {
  border-bottom: 0;
}

.rp-sitemap__item a {
  display: block;
  padding: 9px 0;
  color: var(--rp-sm-text);
  text-decoration: none;
  font-size: 15px;
  line-height: 1.45;
  transition: color 0.15s ease, padding-left 0.15s ease;
}

.rp-sitemap__item a:hover,
.rp-sitemap__item a:focus {
  color: var(--rp-sm-accent);
  padding-left: 6px;
}

/* ============================================================
   CASE STUDIES GRID — placeholder for cards without a featured
   image. The [case_studies] shortcode reuses the journal post-grid
   markup (.block--blog-post-grid), whose image area is a fixed
   220px box. A case study published without a featured image would
   otherwise show an empty box, so fill it with a branded placeholder
   matching the journal card. Setting a real featured image on the
   case study replaces this automatically.
   ============================================================ */
.block--blog-post-grid .blog-post-grid__placeholder {
  display: grid;
  place-items: center;
  height: 220px;
  background: linear-gradient(120deg, #e8f3f6, #f6ece5);
  font-family: "Sora", sans-serif;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #2f5f73;
}

/* ─────────────────────────────────────────────────────────────────────────
 * NEAREST OFFICE BLOCK (blocks/nearest-office/)
 * Branded design from Design Files/offices.css. Variants: --single (one card),
 * --all (Contact-page grid), --map (one card + Google Map embed). The Onest
 * font is enqueued in functions.php (rp-onest handle), not @import-ed here.
 * ──────────────────────────────────────────────────────────────────────── */
:root {
  --rp-font-sans: "Onest", ui-sans-serif, system-ui, sans-serif;
  --rp-teal-900: #004E57;
  --rp-green-500: #00BF7D;
  --rp-mist-100: #E6EDEE;
  --rp-coral-400: #F5825D;
  --rp-text-h2: clamp(30px, 3.4vw, 40px);
  --rp-text-h3: 26px;
  --rp-text-body: 16.5px;
  --rp-text-body-leading: 1.55;
  --rp-text-small: 14px;
  --rp-text-muted: #3D7078;
  --rp-radius-none: 0;
  --rp-space-2: 8px;
  --rp-space-5: 24px;
  --rp-space-6: 32px;
  --rp-space-8: 64px;
  --rp-container-max: 1440px;
  --rp-container-pad-x: clamp(24px, 5vw, 80px);
  --rp-ease-brand: cubic-bezier(.4, 0, .2, 1);
  --rp-dur-fast: 150ms;
}
.rp-offices { font-family: var(--rp-font-sans); color: var(--rp-teal-900); padding: var(--rp-space-8) 0; }
.rp-offices .container-block__inner { max-width: var(--rp-container-max); margin: 0 auto; padding: 0 var(--rp-container-pad-x); }
.rp-offices__heading { margin: 0 0 var(--rp-space-6); font-size: var(--rp-text-h2); font-weight: 500; line-height: 1.15; color: var(--rp-teal-900); }
.rp-offices__grid { display: grid; gap: var(--rp-space-5); grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.rp-offices--single .rp-offices__grid { grid-template-columns: minmax(0, 440px); }
/* All-offices listing (e.g. /locations/): 3 across, collapsing on smaller screens. */
.rp-offices--all { padding-top: 0; }
.rp-offices--all .rp-offices__grid { grid-template-columns: repeat(3, 1fr); }
/* "Our offices" heading: smaller + bold. */
.rp-offices--all .rp-offices__heading { font-size: 26px; font-weight: 700; }
/* Linked card names keep the teal, no default link styling; green on hover. */
.rp-offices .rp-office-card__name a { color: inherit; text-decoration: none; }
.rp-offices .rp-office-card__name a:hover { color: var(--rp-green-500); text-decoration: underline; }
@media (max-width: 900px) { .rp-offices--all .rp-offices__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) {
  .rp-offices--all .rp-offices__grid { grid-template-columns: 1fr; }
  /* Wider cards on mobile: drop the block's own side padding (the parent
   * .container-block already pads), so cards aren't double-padded/squeezed. */
  .rp-offices .container-block__inner { padding-left: 0; padding-right: 0; }
}
.rp-office-card { background: var(--rp-mist-100); padding: 30px 32px; display: flex; flex-direction: column; gap: 10px; border-radius: var(--rp-radius-none); text-align: left; }
/* Two-class specificity to beat the parent theme's ".container-block h3" size + centring rules. */
.rp-offices .rp-office-card__name { margin: 0; font-size: 22px; font-weight: 600; line-height: 1.25; color: var(--rp-teal-900); }
/* Force every card item hard-left: the card is a flex column and the parent
 * theme was centring its items (align-items). flex-start + text-align:left
 * (with specificity to beat inherited rules) pins name, address, hours, phone. */
/* Card fills the row height (matches the map); items hard-left, centred vertically. */
.rp-offices .rp-office-card { align-items: flex-start; align-self: stretch; justify-content: center; }
.rp-offices .rp-office-card,
.rp-offices .rp-office-card__name,
.rp-offices .rp-office-card__address,
.rp-offices .rp-office-card__hours,
.rp-offices .rp-office-card__phone { text-align: left !important; }
.rp-offices .rp-office-card__name,
.rp-offices .rp-office-card__address,
.rp-offices .rp-office-card__hours,
.rp-offices .rp-office-card__phone { align-self: flex-start; }
.rp-office-card__address { font-style: normal; font-size: var(--rp-text-body); line-height: var(--rp-text-body-leading); }
.rp-office-card__address a, a.rp-office-card__address { color: inherit; text-decoration: underline; text-underline-offset: 3px; transition: color var(--rp-dur-fast) var(--rp-ease-brand); }
.rp-office-card__address a:hover, a.rp-office-card__address:hover { color: var(--rp-green-500); }
.rp-office-card__hours { margin: 0; font-size: var(--rp-text-small); color: var(--rp-text-muted); }
.rp-office-card__phone { margin-top: var(--rp-space-2); align-self: flex-start; font-weight: 700; font-size: var(--rp-text-body); color: var(--rp-teal-900); text-decoration: underline; text-underline-offset: 3px; transition: color var(--rp-dur-fast) var(--rp-ease-brand); }
.rp-office-card__phone:hover { color: var(--rp-green-500); }
/* "Everywhere else" CTA card — closes an all-offices grid (rp_everywhere_else_card_html). */
.rp-office-card--everywhere { border-top: 3px solid var(--rp-green-500); }
.rp-office-card__blurb { margin: 0; font-size: var(--rp-text-body); line-height: var(--rp-text-body-leading); color: var(--rp-text-muted); }
/* --map variant: equal-width card + map, tight gap */
.rp-offices__layout { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; }
.rp-offices--map .rp-offices__grid { grid-template-columns: 1fr; }
.rp-offices--map .rp-offices__grid .rp-office-card { height: 100%; }
.rp-offices__map { position: relative; height: 300px; min-height: 300px; background: var(--rp-mist-100); }
.rp-offices__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
@media (max-width: 760px) {
  .rp-offices__layout { grid-template-columns: 1fr; }
  .rp-offices__map { min-height: 300px; }
}
/* Contact page: cards stacked in the left column beside the form (no section padding) */
.rp-offices--contact { padding: 0; }
.rp-offices--contact .rp-offices__grid { grid-template-columns: 1fr; gap: 16px; }
.rp-offices--contact .rp-office-card { padding: 22px 24px; height: auto; align-self: start; justify-content: flex-start; }
/* Beat the parent theme's ".contact-left-content h3" (brown, uppercase) — the card
 * name must be the dark teal, normal case, in the block's own font. */
.rp-offices--contact .rp-office-card__name {
  color: var(--rp-teal-900) !important;
  font-family: var(--rp-font-sans) !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
  margin: 0 !important;
}
/* "CONTACT US" eyebrow (the page_name h3, direct child) — brand green + larger.
 * ">" scopes to the eyebrow only, NOT the office-card names (also h3, nested). */
.contact-page-wrapper .contact-left-content > h3 {
  color: var(--rp-green-500) !important;
  font-size: 22px !important;
  line-height: 1.2 !important;
}

/* ==========================================================================
   OFFICE LOCATION LANDING PAGES  (single-office-location.php)
   Conversion "Retirement Planning in {town}" design for the 5 office pages.
   Everything is scoped under .rp-loc and prefixed .rpl-* so it can't collide
   with the rest of the site stylesheet. Fonts are inherited from the site
   (the mock's 'Sora' is intentionally not loaded). Colour tokens are scoped
   here, not on :root, so they don't leak either.
   ========================================================================== */
.rp-loc{
  --rpl-forest:#054F57; --rpl-field:#1CBF80; --rpl-sky:#1CB0C2;
  --rpl-clay:#BF8061; --rpl-earth:#573B4A; --rpl-gold:#C79E40; --rpl-ember:#F78761;
  --rpl-bg:#EEF2F1; --rpl-offwhite:#F7F9F8; --rpl-white:#FFFFFF;
  --rpl-border:#D8E2DF; --rpl-muted:#5A7068; --rpl-text:#1A2B28;
  /* Shared content width — hero content and every section use this so they
     always align. Bump this one value to widen the whole layout. */
  --rpl-max:1240px;
  /* Base font for the whole office landing design (matches the mock's --sans).
     Set once here so no element falls back to the theme's body font. */
  font-family:"Sora",sans-serif;
  color:var(--rpl-text); line-height:1.6;
}
.rp-loc a,.rp-loc button,.rp-loc input,.rp-loc select,.rp-loc textarea{font-family:inherit}
.rp-loc *{box-sizing:border-box}
.rp-loc h1,.rp-loc h2,.rp-loc h3{line-height:1.14;margin:0}
.rp-loc a{color:var(--rpl-forest);text-decoration:none}
.rp-loc p{margin:0}

/* ---- hero ---- */
/* Full-bleed band: the teal background stretches edge-to-edge across the
   viewport, while .rpl-hero-inner keeps the headline + form boxed to --rpl-max
   (same pattern as the trust bar below). */
.rp-loc .rpl-hero{position:relative;width:100%;min-height:880px;display:flex;align-items:center;overflow:hidden;
  /* Horizontal fade: solid teal on the left (behind the headline), clear
     (transparent) by the halfway point so the right side blends into the page.
     Fades to a zero-alpha teal (not black) to avoid a grey wash mid-fade. */
  background:linear-gradient(90deg,#054F57 0%,#0c7d83 20%,rgba(12,125,131,0) 80%)}
.rp-loc .rpl-hero--img{
  background-image:
    linear-gradient(90deg, rgba(4,54,60,.9) 0%, rgba(5,79,87,.74) 36%, rgba(5,79,87,.22) 62%, rgba(5,79,87,0) 82%),
    linear-gradient(180deg, rgba(4,54,60,.28) 0%, rgba(4,54,60,0) 32%, rgba(4,54,60,.42) 100%),
    var(--rpl-hero);
  background-size:cover;background-position:42% 28%}
.rp-loc .rpl-hero-inner{max-width:var(--rpl-max);margin:0 auto;padding:112px 32px;width:100%;
  display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:56px;align-items:center}
.rp-loc .rpl-hero-content{max-width:580px;justify-self:start}
.rp-loc .rpl-eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:#6fe0f0;margin-bottom:14px}
.rp-loc .rpl-hero h1{font-family:"Sora",sans-serif;font-weight:700;font-size:clamp(34px,4.4vw,54px);line-height:1.06;color:#fff;margin-bottom:16px;letter-spacing:-.01em;text-shadow:0 2px 18px rgba(4,54,60,.35)}
.rp-loc .rpl-hero h1 em{font-style:normal;color:var(--rpl-field)}
.rp-loc .rpl-subhead{font-size:18px;color:rgba(255,255,255,.87);max-width:520px;margin-bottom:22px}
.rp-loc .rpl-ticks{list-style:none;margin:0 0 26px;padding:0}
.rp-loc .rpl-ticks li{display:flex;align-items:center;gap:10px;font-size:15px;color:rgba(255,255,255,.92);margin-bottom:9px}
.rp-loc .rpl-ticks svg{flex-shrink:0}
.rp-loc .rpl-hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.rp-loc .rpl-btn-primary{display:inline-block;font:inherit;font-weight:600;font-size:16px;background:var(--rpl-field);color:var(--rpl-forest);padding:15px 30px;border-radius:8px;box-shadow:0 6px 22px rgba(28,191,128,.45);border:1.5px solid transparent;cursor:pointer}
.rp-loc .rpl-btn-primary:hover{background:#23d490}
.rp-loc .rpl-btn-secondary{display:inline-block;font:inherit;font-weight:600;font-size:16px;background:#fff;color:var(--rpl-forest);padding:15px 30px;border:1.5px solid #fff;border-radius:8px;box-shadow:0 6px 22px rgba(4,54,60,.18);cursor:pointer}
.rp-loc .rpl-btn-secondary:hover{background:var(--rpl-offwhite);border-color:var(--rpl-offwhite)}
.rp-loc .rpl-btn-outline{display:inline-block;font-weight:600;font-size:15px;color:#fff;border:1.5px solid rgba(255,255,255,.7);padding:13px 26px;border-radius:8px}

/* Hero CTAs — matched to the design mock (docs/location-templates/
   rp-geelong-landing_1.html): green fill, dark-green (forest) label, 8px radius,
   and simply a lighter green (#23d490) on hover — no gradient. Sora is set
   explicitly (the mock's --sans is Sora). "Call us" keeps the solid white
   secondary treatment (forest label), squared to pair with the primary. */
.rp-loc .rpl-hero-cta .rpl-btn-primary,
.rp-loc .rpl-hero-cta .rpl-btn-secondary{
  appearance:none;-webkit-appearance:none;
  font-family:"Sora",sans-serif;font-size:16px;font-weight:600;
  padding:15px 30px;border-radius:8px;text-align:center;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.rp-loc .rpl-hero-cta .rpl-btn-primary{
  border:none;
  background:var(--rpl-field);color:var(--rpl-forest);
  box-shadow:0 6px 22px rgba(28,191,128,.45);
}
.rp-loc .rpl-hero-cta .rpl-btn-primary:hover,
.rp-loc .rpl-hero-cta .rpl-btn-primary:focus{
  background:#23d490;color:var(--rpl-forest);
}
.rp-loc .rpl-hero-cta .rpl-btn-secondary{
  border:1.5px solid #fff;background:#fff;color:var(--rpl-forest);
  box-shadow:0 6px 22px rgba(4,54,60,.16);
}
.rp-loc .rpl-hero-cta .rpl-btn-secondary:hover,
.rp-loc .rpl-hero-cta .rpl-btn-secondary:focus{
  background:var(--rpl-offwhite);border-color:var(--rpl-offwhite);color:var(--rpl-forest);
}
.rp-loc .rpl-btn-outline:hover{background:rgba(255,255,255,.12)}
.rp-loc .rpl-btn-outline--dark{color:#fff;border-color:rgba(255,255,255,.7)}
.rp-loc .rpl-step{display:flex;align-items:flex-end;margin-bottom:24px}
.rp-loc .rpl-step span{height:18px;display:block}
.rp-loc .rpl-step span:nth-child(1){width:130px;background:linear-gradient(90deg,var(--rpl-field),var(--rpl-sky))}
.rp-loc .rpl-step span:nth-child(2){width:70px;background:linear-gradient(90deg,var(--rpl-gold),var(--rpl-ember));margin-bottom:18px}
.rp-loc .rpl-step span:nth-child(3){width:96px;background:linear-gradient(90deg,var(--rpl-ember),var(--rpl-sky));margin-bottom:36px}

/* lead form */
.rp-loc .rpl-lead{background:rgba(255,255,255,.97);backdrop-filter:blur(4px);border:1px solid var(--rpl-border);border-radius:4px;padding:28px;box-shadow:0 24px 60px rgba(4,54,60,.35);font-family:"Sora",sans-serif}
.rp-loc .rpl-lead h2{font-size:20px;font-weight:600;color:var(--rpl-forest);margin-bottom:4px}
.rp-loc .rpl-lead-tag{font-size:13px;color:var(--rpl-muted);margin-bottom:18px}
.rp-loc .rpl-lead label{display:block;font-size:12.5px;font-weight:600;color:var(--rpl-forest);margin:0 0 5px}
.rp-loc .rpl-lead input,.rp-loc .rpl-lead select{width:100%;font:inherit;font-size:15px;color:var(--rpl-text);background:var(--rpl-offwhite);border:1px solid var(--rpl-border);border-radius:8px;padding:12px 14px;margin-bottom:13px;outline:none}
.rp-loc .rpl-lead input:focus,.rp-loc .rpl-lead select:focus{border-color:var(--rpl-field);background:#fff}
.rp-loc .rpl-lead button,.rp-loc .rpl-lead .rpl-btn-primary{width:100%}
.rp-loc .rpl-lead-fine{font-size:11.5px;color:var(--rpl-muted);text-align:center;margin-top:12px;line-height:1.5}
.rp-loc .rpl-lead-fine code{background:var(--rpl-offwhite);padding:1px 5px;border-radius:4px;font-size:11px}

/* ---- Live Forminator lead form (id 1537) — restyled to match the mock design
   (docs/location-templates/rp-geelong-landing_1.html .lead form). Forminator
   ships heavy default styling, so these overrides use the same belt-and-braces
   specificity as the grants form (#forminator-module id + design--default). */

/* Reset Forminator's wrapper chrome so it sits flush inside the .rpl-lead card. */
.rp-loc .rpl-lead .forminator-ui.forminator-custom-form{border:0;padding:0;margin:0;background:transparent}
.rp-loc .rpl-lead .forminator-ui .forminator-row{margin:0 0 13px}
.rp-loc .rpl-lead .forminator-ui .forminator-row:last-of-type{margin-bottom:0}
.rp-loc .rpl-lead .forminator-ui .forminator-field{padding:0}

/* Labels — forest, semibold, tight to their field (mock .lead label). */
.rp-loc .rpl-lead .forminator-ui .forminator-label,
.rp-loc .rpl-lead .forminator-ui label{
  display:block;font-family:"Sora",sans-serif;font-size:12.5px;font-weight:600;
  color:var(--rpl-forest);margin:0 0 5px;letter-spacing:0;
}
.rp-loc .rpl-lead .forminator-ui .forminator-required{color:var(--rpl-ember)}
/* Hide Forminator's character counter (e.g. the "0 / 4" under the Postcode field). */
.rp-loc .rpl-lead .forminator-ui .forminator-description [data-type="characters"]{display:none !important}

/* Text inputs + the select2 box — offwhite fill, thin border, 8px radius
   (mock .lead input). High specificity to beat Forminator's default skin. */
.rp-loc .rpl-lead .forminator-ui.forminator-custom-form[data-design="default"] .forminator-input,
.rp-loc .rpl-lead .forminator-ui.forminator-custom-form[data-design="default"] .forminator-textarea,
.rp-loc .rpl-lead .forminator-ui.forminator-custom-form[data-design="default"] .forminator-select select,
.rp-loc .rpl-lead .forminator-ui#forminator-module-1537.forminator-design--default .forminator-input,
.rp-loc .rpl-lead .forminator-ui#forminator-module-1537.forminator-design--default .forminator-textarea,
.rp-loc .rpl-lead .forminator-ui#forminator-module-1537.forminator-design--default .forminator-select select{
  width:100% !important;box-sizing:border-box;
  font-family:"Sora",sans-serif !important;font-size:15px !important;
  color:var(--rpl-text) !important;background-color:var(--rpl-offwhite) !important;
  border:1px solid var(--rpl-border) !important;border-radius:8px !important;
  min-height:46px;height:auto !important;padding:12px 14px !important;
  box-shadow:none !important;margin:0 !important;line-height:1.3 !important;
}

/* The topic field is enhanced by select2 (a JS widget with its own DOM).
   Style the selection box to look identical to the inputs. We do NOT require the
   `--default` theme class — Forminator doesn't always add it, which is why the
   box was rendering unstyled (no fill, square corners). */
.rp-loc .rpl-lead .forminator-ui .select2-container{width:100% !important;max-width:100%}
.rp-loc .rpl-lead .forminator-ui .select2-container .select2-selection{
  box-sizing:border-box;
  background-color:var(--rpl-offwhite) !important;
  border:1px solid var(--rpl-border) !important;border-radius:8px !important;
  min-height:46px !important;height:46px !important;padding:0 14px !important;
  box-shadow:none !important;display:flex !important;align-items:center;
}
.rp-loc .rpl-lead .forminator-ui .select2-container .select2-selection--single .select2-selection__rendered{
  font-family:"Sora",sans-serif !important;font-size:15px !important;
  color:var(--rpl-text) !important;line-height:44px !important;padding:0 !important;
}
.rp-loc .rpl-lead .forminator-ui .select2-container .select2-selection--single .select2-selection__arrow{
  height:44px !important;right:10px !important;
}

/* Focus / open state — green border, white fill (mock :focus). */
.rp-loc .rpl-lead .forminator-ui .forminator-input:focus,
.rp-loc .rpl-lead .forminator-ui .forminator-textarea:focus,
.rp-loc .rpl-lead .forminator-ui .forminator-select select:focus,
.rp-loc .rpl-lead .forminator-ui .select2-container--open .select2-selection{
  border-color:var(--rpl-field) !important;background-color:#fff !important;outline:none !important;
}
/* The open dropdown panel. Forminator inits select2 without the --default theme
   class, so its default panel styling (white fill, option padding) never
   applied — the panel rendered transparent and the fields behind it showed
   through. The panel is appended OUTSIDE .rp-loc, so these rules are global but
   only touch select2 dropdowns (literal colours — the --rpl vars don't cascade
   out here). Safe across the site's other Forminator forms. */
.select2-container .select2-dropdown,
.select2-container--open .select2-dropdown{
  background:#fff !important;
  border:1px solid #D8E2DF !important;
  border-radius:8px !important;
  box-shadow:0 14px 34px rgba(4,54,60,.20) !important;
  overflow:hidden;
  z-index:100001;
}
.select2-container .select2-results,
.select2-container .select2-results__options{background:#fff !important}
.select2-container .select2-results__option{
  font-family:"Sora",sans-serif;font-size:15px;color:#1A2B28;
  padding:11px 14px;background:#fff;
}
.select2-container .select2-results__option--highlighted,
.select2-container .select2-results__option[aria-selected="true"]{
  background:#EEF2F1 !important;color:#054F57 !important;
}

/* Submit button — full-width green, forest label, 8px radius (mock .btn-primary
   + .lead button{width:100%}). "Book my free chat →". */
.rp-loc .rpl-lead .forminator-ui .forminator-button-submit,
.rp-loc .rpl-lead .forminator-ui.forminator-custom-form[data-design="default"] .forminator-button.forminator-button-submit,
.rp-loc .rpl-lead .forminator-ui#forminator-module-1537.forminator-design--default .forminator-button.forminator-button-submit{
  display:flex;width:100% !important;justify-content:center;align-items:center;
  font-family:"Sora",sans-serif !important;font-size:17px !important;font-weight:700 !important;
  line-height:1.2 !important;letter-spacing:-0.01em !important;
  background:var(--rpl-field) !important;color:var(--rpl-forest) !important;
  border:none !important;border-radius:8px !important;padding:16px 30px !important;
  box-shadow:0 6px 22px rgba(28,191,128,.45) !important;margin-top:5px !important;
}
.rp-loc .rpl-lead .forminator-ui .forminator-button-submit:hover,
.rp-loc .rpl-lead .forminator-ui .forminator-button-submit:focus{
  background:#23d490 !important;color:var(--rpl-forest) !important;
}
/* Trailing arrow to match the mock ("Book my free chat →") without editing the
   Forminator button label. Hidden while the form is submitting (loader shows). */
.rp-loc .rpl-lead .forminator-ui .forminator-button-submit:not(.forminator-button-onload)::after{content:"\00a0\2192";}

/* ---- trust bar ---- */
.rp-loc .rpl-trustbar{background:var(--rpl-offwhite);border-top:1px solid var(--rpl-border);border-bottom:1px solid var(--rpl-border)}
.rp-loc .rpl-trustbar-inner{max-width:var(--rpl-max);margin:0 auto;padding:22px 32px;
  display:grid;grid-template-columns:repeat(var(--rpl-ti-count,3),1fr);align-items:center;
  font-family:"Sora",sans-serif;font-size:14px;color:var(--rpl-forest)}
.rp-loc .rpl-trustbar-item{display:flex;align-items:center;justify-content:center;gap:8px;
  padding:0 24px;text-align:center;line-height:1.4}
.rp-loc .rpl-trustbar-item:not(:last-child){border-right:1px solid var(--rpl-border)}
.rp-loc .rpl-ti-icon{flex-shrink:0;color:var(--rpl-forest);opacity:.72}
.rp-loc .rpl-stars{color:var(--rpl-gold);letter-spacing:2px;font-size:15px;flex-shrink:0}
.rp-loc .rpl-google-logo{height:18px;width:auto;vertical-align:-4px;margin:0 1px}
.rp-loc .rpl-trustbar b{color:var(--rpl-forest);font-weight:600}

/* ---- sections ---- */
.rp-loc .rpl-section{max-width:var(--rpl-max);margin:0 auto;padding:60px 32px}
.rp-loc .rpl-section--tight{padding-top:0}
/* Section headings sized + set in Sora to match the reviews carousel headline
   (parent theme: Sora, 44px desktop / 32px mobile) so all page headlines match. */
.rp-loc .rpl-section h2{font-family:"Sora",sans-serif;font-weight:600;font-size:clamp(32px,4vw,44px);line-height:1.14;color:var(--rpl-forest);margin-bottom:10px}
.rp-loc .rpl-sub{font-size:16.5px;color:var(--rpl-muted);max-width:640px;margin-bottom:34px}

/* services */
.rp-loc .rpl-svc{display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:auto auto;gap:16px}
.rp-loc .rpl-dominant{grid-row:1 / span 2;background:var(--rpl-forest);border-radius:0;padding:34px 30px;color:#fff;display:flex;flex-direction:column;justify-content:center}
.rp-loc .rpl-dominant h3{font-size:24px;font-weight:600;margin-bottom:10px}
.rp-loc .rpl-dominant p{font-size:15px;color:rgba(255,255,255,.8);margin-bottom:18px}
.rp-loc .rpl-dominant a{color:var(--rpl-field);font-weight:600;font-size:14.5px}
.rp-loc .rpl-scard{background:var(--rpl-white);border:1px solid var(--rpl-border);border-radius:0;padding:22px}
.rp-loc .rpl-scard h3{font-size:16.5px;font-weight:600;color:var(--rpl-forest);margin-bottom:5px}
.rp-loc .rpl-scard p{font-size:13.5px;color:var(--rpl-muted)}
.rp-loc .rpl-scard:nth-of-type(2){border-top:3px solid var(--rpl-sky)}
.rp-loc .rpl-scard:nth-of-type(3){border-top:3px solid var(--rpl-clay)}
.rp-loc .rpl-scard:nth-of-type(4){border-top:3px solid var(--rpl-gold)}
.rp-loc .rpl-scard:nth-of-type(5){border-top:3px solid var(--rpl-earth)}
/* Ways-to-meet list on the light "We come to you" section — rpl-ticks is
   white-on-dark for the hero, so this variant reads on a light background. */
.rp-loc .rpl-ways{list-style:none;margin:8px 0 0;padding:0}
.rp-loc .rpl-ways li{display:flex;align-items:flex-start;gap:10px;font-size:15.5px;color:var(--rpl-muted);margin-bottom:12px;line-height:1.5}
.rp-loc .rpl-ways li strong{color:var(--rpl-forest)}
.rp-loc .rpl-ways svg{flex-shrink:0;margin-top:3px}

/* who we are */
.rp-loc .rpl-who{display:grid;grid-template-columns:1fr 1.15fr;gap:44px;align-items:center}
.rp-loc .rpl-who-photo{border-radius:0;overflow:hidden;aspect-ratio:4/3;
  background:linear-gradient(180deg,rgba(5,79,87,0) 50%,rgba(4,54,60,.7) 100%),
  radial-gradient(120% 130% at 30% 20%,#0c7d83 0%,#054F57 60%,#04363c 100%);
  display:flex;align-items:flex-end;padding:20px}
/* When an "Advisers photo" is uploaded (--rpl-who set inline), fill the panel with
   it; keep a bottom-up dark gradient so the caption stays legible over any image. */
.rp-loc .rpl-who-photo--img{
  background:linear-gradient(180deg,rgba(4,54,60,0) 45%,rgba(4,54,60,.72) 100%),
  var(--rpl-who) center/cover no-repeat}
.rp-loc .rpl-who p{font-size:16.5px;color:var(--rpl-muted);margin-bottom:14px}
.rp-loc .rpl-who p strong{color:var(--rpl-text)}

/* team */
.rp-loc .rpl-team{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.rp-loc .rpl-tcard{background:var(--rpl-white);border:1px solid var(--rpl-border);border-radius:0;overflow:hidden}
.rp-loc .rpl-hs{aspect-ratio:1/1;background:linear-gradient(160deg,#dfe9e6,#c6d6d1) center/cover no-repeat}
.rp-loc .rpl-nm{padding:14px 16px}
.rp-loc .rpl-nm b{display:block;font-size:15px;color:var(--rpl-forest)}
.rp-loc .rpl-nm small{font-size:12.5px;color:var(--rpl-muted)}

/* reviews */
.rp-loc .rpl-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}
.rp-loc .rpl-rcard{background:var(--rpl-white);border:1px solid var(--rpl-border);border-radius:14px;padding:24px 22px}
.rp-loc .rpl-rcard .rpl-stars{font-size:14px;margin-bottom:10px}
.rp-loc .rpl-rcard p{font-size:14.5px;color:var(--rpl-muted);margin-bottom:12px}
.rp-loc .rpl-who2{font-size:13px;font-weight:600;color:var(--rpl-forest)}
.rp-loc .rpl-gplink{font-weight:600;font-size:14.5px;color:var(--rpl-forest);text-decoration:underline}

/* office + map */
/* "Our location" reuses the shared .rp-offices--map component; drop its default
   vertical padding so it sits flush under the landing section heading. */
.rp-loc .rp-offices{padding:0}

/* faq */
/* FAQ reuses the shared blog/journal accordion (.blog-single__faq-* styles + JS).
   Those styles read --rp-faq-* custom properties normally set on the block's
   .blog-single__faqs wrapper, which the office markup omits — so define the palette
   here, themed to the office page: brand-green +/- toggle, forest headings, and the
   divider rules between questions. Without this the toggle icon and rules are
   invisible (undefined colour). */
.rp-loc .js-rp-faq{
  --rp-faq-heading:var(--rpl-forest);
  --rp-faq-text:var(--rpl-text);
  --rp-faq-muted:var(--rpl-muted);
  --rp-faq-rule:var(--rpl-border);
  --rp-faq-accent:var(--rpl-field);
}
/* Slightly larger, bolder toggle so the +/- reads clearly at office-page scale. */
.rp-loc .js-rp-faq .blog-single__faq-toggle{width:18px;height:18px}
.rp-loc .js-rp-faq .blog-single__faq-toggle-h{width:14px;height:2px}
.rp-loc .js-rp-faq .blog-single__faq-toggle-v{width:2px;height:14px}

/* last-chance CTA */
.rp-loc .rpl-cta{background:linear-gradient(120deg,var(--rpl-forest),#0a6b6f);border-radius:0;padding:52px 40px;text-align:center;color:#fff}
.rp-loc .rpl-cta h2{color:#fff;margin-bottom:22px}
.rp-loc .rpl-cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* compliance */
.rp-loc .rpl-compliance{max-width:var(--rpl-max);margin:0 auto;padding:0 32px 40px}
.rp-loc .rpl-compliance-box{background:var(--rpl-offwhite);border:1px solid var(--rpl-border);border-radius:0;padding:20px 24px;font-size:12.5px;color:var(--rpl-muted);line-height:1.6}
.rp-loc .rpl-compliance-box strong{color:var(--rpl-text)}

/* responsive */
@media(max-width:940px){
  /* Hero: stack the headline over the form and let it hug its content instead of
     the desktop 880px band. Swap the desktop left→right fade for a vertical dark
     overlay so the white headline stays legible over the photo when it's shown
     full-width. */
  .rp-loc .rpl-hero{min-height:auto}
  .rp-loc .rpl-hero--img{
    background-image:
      linear-gradient(180deg, rgba(4,54,60,.88) 0%, rgba(5,79,87,.6) 44%, rgba(4,54,60,.72) 100%),
      var(--rpl-hero);
    background-position:50% 26%}
  .rp-loc .rpl-hero-inner{grid-template-columns:1fr;gap:32px;padding:96px 32px 48px}
  .rp-loc .rpl-hero-content{max-width:none}
  .rp-loc .rpl-svc{grid-template-columns:1fr}
  .rp-loc .rpl-dominant{grid-row:auto}
  .rp-loc .rpl-who{grid-template-columns:1fr;gap:28px}
  .rp-loc .rpl-team{grid-template-columns:1fr 1fr}
  .rp-loc .rpl-reviews{grid-template-columns:1fr}
}
@media(max-width:640px){
  .rp-loc .rpl-hero-inner,.rp-loc .rpl-trustbar-inner,.rp-loc .rpl-section,.rp-loc .rpl-compliance{padding-left:20px;padding-right:20px}
  /* Hero on phones: tighter top/bottom, smaller headline, full-width stacked CTAs. */
  .rp-loc .rpl-hero-inner{padding-top:80px;padding-bottom:40px;gap:26px}
  .rp-loc .rpl-hero h1{font-size:32px}
  .rp-loc .rpl-subhead{font-size:16px}
  .rp-loc .rpl-hero-cta{flex-direction:column;align-items:stretch;gap:12px}
  .rp-loc .rpl-hero-cta .rpl-btn-primary,.rp-loc .rpl-hero-cta .rpl-btn-secondary{width:100%}
  .rp-loc .rpl-lead{padding:22px}
  /* Trust bar on phones: a clean left-aligned list — icons in a tidy left column,
     text left-aligned, icon pinned to the first line so long labels (AFSL) read
     cleanly instead of centring with a detached icon. */
  .rp-loc .rpl-trustbar-inner{grid-template-columns:1fr;gap:0;padding-top:6px;padding-bottom:6px}
  .rp-loc .rpl-trustbar-item{justify-content:flex-start;align-items:flex-start;text-align:left;gap:12px;padding:14px 4px}
  .rp-loc .rpl-trustbar-item:not(:last-child){border-right:none;border-bottom:1px solid var(--rpl-border)}
  .rp-loc .rpl-ti-icon,.rp-loc .rpl-stars{margin-top:2px}
  .rp-loc .rpl-ti-text{font-size:15px;line-height:1.4}
}

/* Testimonial carousel (parent-theme Owl nav): centre the prev/next arrows
   inside their buttons — they were sitting off-centre. Global so it applies
   wherever the carousel appears (home + office pages). */
.block--testimonial-carousel .owl-nav button.owl-prev,
.block--testimonial-carousel .owl-nav button.owl-next{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  line-height:0;
}
.block--testimonial-carousel .owl-nav button.owl-prev svg,
.block--testimonial-carousel .owl-nav button.owl-next svg{
  display:block;
  margin:0;
}

/* Equal-height testimonial cards + bottom-aligned author block, so the photo,
   name and title line up across every slide regardless of quote length. Owl
   items are inline-block by default (content height); flexing the stage stretches
   them all to the tallest, then margin-top:auto drops the author row to the base. */
.block--testimonial-carousel .carousel-content .owl-stage{display:flex}
.block--testimonial-carousel .carousel-content .owl-item{display:flex;height:auto}
.block--testimonial-carousel .carousel-content__testimonial{
  display:flex;flex-direction:column;height:100%;
}
.block--testimonial-carousel .carousel-content__testimonial__flex{margin-top:auto}

/* Reviews carousel headline weight on the office (location) pages only — the
   carousel renders inside .rp-loc there, but not on the home page, so home keeps
   its regular weight. */
.rp-loc .block--testimonial-carousel h2{font-weight:600 !important}

/* ── Regional-vic landing extras (page-regional-vic.php) ─────────────────── */
/* Award / eyebrow pill — white-on-teal in the hero, light on the award section. */
.rp-loc .rpl-badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;
  padding:7px 14px;border-radius:999px;margin-bottom:18px;line-height:1.35}
.rp-loc .rpl-badge--hero span{opacity:.85;font-weight:500}
.rp-loc .rpl-who .rpl-badge{background:var(--rpl-offwhite);border-color:var(--rpl-border);color:var(--rpl-forest)}

/* How it works — three numbered steps */
.rp-loc .rpl-how{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rp-loc .rpl-how li{background:var(--rpl-white);border:1px solid var(--rpl-border);padding:26px 24px}
.rp-loc .rpl-how-num{display:block;font-family:"Sora",sans-serif;font-size:34px;font-weight:700;color:var(--rpl-field);line-height:1;margin-bottom:12px}
.rp-loc .rpl-how h3{font-size:18px;font-weight:600;color:var(--rpl-forest);margin-bottom:8px}
.rp-loc .rpl-how p{font-size:14.5px;color:var(--rpl-muted);line-height:1.55}

/* Dark CTA sub-line */
.rp-loc .rpl-cta-sub{max-width:640px;margin:-6px auto 22px;color:rgba(255,255,255,.9);font-size:16.5px;line-height:1.5}

@media(max-width:940px){
  .rp-loc .rpl-how{grid-template-columns:1fr}
}
@media(max-width:640px){
  .rp-loc .rpl-badge--hero span{display:none}
  /* Regional-vic hero on phones: extra breathing room up top. */
  .rp-loc--rv .rpl-hero-inner{padding-top:120px}
  /* Kill the parent theme's large carousel top margin on mobile for this page. */
  .rp-loc.rp-loc--rv .block--testimonial-carousel{margin-top:0}
}

/* ==========================================================================
   Shared layout tokens + container  (child-theme design system)
   --------------------------------------------------------------------------
   These mirror the parent theme's existing content line so anything we build
   in the child theme aligns to the SAME vertical edges as the parent blocks:
     parent  $containerMaxWidth = 1440px   (globals/global.variables.scss)
     parent  $gutterWider       = 60px     -> .container-block padding
   Use .rp-container (or var(--rp-container-maxw)/var(--rp-gutter)) for any new
   section so every section shares one left/right edge. --rp-hero-gutter is the
   homepage hero's intentionally-wider inset (the coral frame sits at 36px, not
   the standard 60px) and should only be used for the hero/home header.
   ========================================================================== */
:root {
  --rp-container-maxw: 1440px; /* = parent $containerMaxWidth */
  --rp-gutter: 60px;           /* = parent $gutterWider (standard content line) */
  --rp-hero-gutter: 36px;      /* homepage hero frame's wider inset only */
}

/* Drop-in content container — matches the parent theme's .container-block.
   Wrap a new section's inner content in this to align it site-wide. */
.rp-container {
  width: 100%;
  max-width: var(--rp-container-maxw);
  margin-inline: auto;
  padding-inline: var(--rp-gutter);
  box-sizing: border-box;
}

/* ==========================================================================
   Homepage hero + header alignment (design review, Oct 2026)
   Scoped to the front page (body.home) only. The Blog page (page-id-1135)
   reuses .block--home-image-banner in a compact, border-less form and must
   stay untouched — hence every selector below is prefixed with body.home.

   Shared left line ("--frame-x" in the brief): the hero frame is a 1368px
   box centred inside a 36px gutter, i.e. a 1440px content box. We give the
   header the same 1440px box (--rp-container-maxw + --rp-hero-gutter) so the
   logo sits exactly above the frame's left edge, and pin the bottom gradient
   step to left:0 so it shares that edge too.
   ========================================================================== */

/* --- 1. Navigation row + logo alignment (desktop only; <=1200px is the
       hamburger menu, unchanged). One flex row, vertically centred, even
       gaps, uniform weight, boxed to the same 1440px line as the frame. --- */
@media (min-width: 1201px) {
  /* Let the 1440px .uhc-table box below own the horizontal gutters. */
  body.home #page-header .upper-header-wrapper.container-block {
    padding-left: 0;
    padding-right: 0;
  }

  body.home #page-header .uhc-table {
    display: flex !important;
    align-items: center !important; /* shared vertical centre line */
    width: 100%;
    max-width: var(--rp-container-maxw);
    margin: 0 auto;
    padding: 0 var(--rp-hero-gutter); /* 36px -> sits above the hero frame */
    box-sizing: border-box;
  }

  body.home #page-header .uhc-table > .logo-cell,
  body.home #page-header .uhc-table > .contact-us-btn {
    flex: 0 0 auto;
    width: auto !important;
  }

  body.home #page-header .uhc-table > .nav-cell--right {
    flex: 1 1 auto;
    width: auto !important;
  }

  /* Even spacing via flex gap instead of per-item margins. */
  body.home #page-header .uhc-table .nav-cell--right nav.main-navigation {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: nowrap;
    gap: 28px !important;
  }

  body.home #page-header .uhc-table .nav-cell nav.main-navigation > a,
  body.home #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Uniform Medium (500) weight for every top-level nav item. */
  body.home #page-header .uhc-table .nav-cell nav.main-navigation > a,
  body.home #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a,
  body.home #page-header .uhc-table .nav-cell nav.main-navigation .has-sub-menu > a span {
    font-weight: 500 !important;
  }

  /* Drop the button's own top/bottom margin so align-items centres it. */
  body.home #page-header .uhc-table .contact-us-btn .rp-book-meeting-btn.header-book-meeting {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}

/* --- 2. Bottom gradient step: left edge flush with the frame's left edge.
       -2px cancels the frame's 2px border so the step's outer edge lands on
       the same line as the (border-less) logo, not 2px inside it. --- */
body.home .block--home-image-banner .banner-content__img-bottom {
  left: -2px !important;
}

/* --- 3. Top gradient accent: tuck it inside the frame's top-right corner
       (parent theme hangs it 38px outside the right edge). --- */
body.home .block--home-image-banner .banner-content__img-top {
  top: 0 !important;
  right: 0 !important;
}

/* ==========================================================================
   Homepage section 2 ("I WANT to:" two-column block)
   The intro paragraph ("We know you're busy...") had a 13rem right padding
   that squeezed it into a ~450px strip inside its 660px column. Reclaim that
   width so the copy reads wider (keeps a small right gutter). Desktop only —
   on stacked mobile the parent already zeroes the padding.
   ========================================================================== */
/* ROOT CAUSE: the parent rule `.tab-item p { padding-right: 13rem }` is a
   DESCENDANT selector, so it pads EVERY <p> under .tab-item — including the
   card descriptions, not just the intro. That 13rem (208px) right padding
   capped the card text at ~491px regardless of column width. Reset it on the
   cards (all widths) so the copy uses the full card width. */
body.home .block--two-column-hovered-content .tab-item__wrapper p {
  padding-right: 0 !important;
}

@media (min-width: 1201px) {
  /* Intro paragraph: same 13rem cap, reclaimed (keeps a small right gutter). */
  body.home .block--two-column-hovered-content .tab-item > p {
    padding-right: 2rem !important;
  }

  /* Text column a touch wider than the 50/50 default (pulled back from 56%
     so the copy isn't full-bleed); image flexes to fill its column. */
  body.home .block--two-column-hovered-content .container-block > .tab-item {
    width: 52% !important;
  }
  body.home .block--two-column-hovered-content .container-block > .img-content {
    width: 48% !important;
  }
  /* Only the MAIN photo fills the (now slightly narrower) column. Exclude the
     decorative bottom-right accent (.img-content__img-bottom) so it keeps its
     original 370px size and position sitting on the image. */
  body.home .block--two-column-hovered-content .img-content > img:not(.img-content__img-bottom) {
    width: 100% !important;
  }

  /* Consistent card height: CSS grid with equal rows makes all three cards
     match the tallest one automatically (no magic-number min-heights). The
     12px gap carries over from the parent's flex rule. */
  body.home .block--two-column-hovered-content .tab-item__wrapper {
    display: grid !important;
    grid-auto-rows: 1fr !important;
  }
}

/* ==========================================================================
   Homepage section 3 (regional-prosperity-carousel)
   The parent capped the heading (h2 960px), the intro paragraph (p 480px) and
   the bottom "Call us" line (h3 960px), wrapping them early. Drop the caps so
   they run the full
   panel width before wrapping. The carousel panels/slider are left untouched.
   ========================================================================== */
body.home .block--regional-prosperity-carousel .top-content h2,
body.home .block--regional-prosperity-carousel .top-content p,
body.home .block--regional-prosperity-carousel .bottom-content h3 {
  max-width: none !important;
}

/* ==========================================================================
   Adviser profile — "Articles by ..." section (tm_articles journal posts).
   Cards use the .rp-bio design-system variables so they match the page.
   ========================================================================== */
/* Fixed 3-up grid: a card always takes a third of the row — one card sits in
   the first third rather than stretching full width. */
.rp-bio .tm-articles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
@media (max-width: 900px) {
  .rp-bio .tm-articles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .rp-bio .tm-articles { grid-template-columns: 1fr; }
}
.rp-bio .tm-article-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: var(--rpbio-white);
  border: 1px solid var(--rpbio-border);
  border-top: 4px solid var(--field); /* accent; alternates per card below */
  border-radius: 4px;
  padding: 20px 24px 22px;
  text-decoration: none;
  box-shadow: 0 1px 4px rgba(5, 79, 87, 0.05);
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.rp-bio .tm-article-card:nth-child(2) { border-top-color: var(--sky); }
.rp-bio .tm-article-card:nth-child(3) { border-top-color: var(--clay); }
.rp-bio .tm-article-card:nth-child(4) { border-top-color: var(--gold); }
.rp-bio .tm-article-card:hover {
  box-shadow: 0 10px 26px rgba(5, 79, 87, 0.12);
  transform: translateY(-2px);
}
.rp-bio .tm-article-card__cat {
  font-family: var(--rpbio-sans);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--rpbio-muted);
}
.rp-bio .tm-article-card__title {
  font-family: var(--rpbio-sans);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.25;
  color: var(--forest);
}
.rp-bio .tm-article-card__excerpt {
  font-size: 15px;
  line-height: 1.5;
  color: var(--rpbio-muted);
  display: -webkit-box;
  -webkit-line-clamp: 3; /* cap at 3 lines even if the excerpt is long */
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rp-bio .tm-article-card__more {
  margin-top: auto;
  padding-top: 6px;
  font-family: var(--rpbio-sans);
  font-weight: 600;
  font-size: 15px;
  color: var(--forest);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ==========================================================================
   Full-width-banner page heroes (family / intergenerational / business /
   our-prosperity / locations + the individual office-location pages — they all
   share block--custom-layout__full-width-banner and its .img-bottom rule).
   Designer: the bottom gradient bar is too long — halve it and left-align it
   with the hero text (it currently starts 60px left of the text, x:-60 -> 660).
   Each is a single gradient image, so its right-hand tip stays at the bar's
   right end automatically. Desktop only; mobile layout untouched.
   ========================================================================== */
@media (min-width: 1201px) {
  .block--custom-layout__full-width-banner .bg-image .container-block .img-bottom {
    width: 360px !important; /* halved from 720 */
    left: 60px !important;   /* left edge aligns with the hero text */
  }
}

/* ==========================================================================
   Homepage section 6 (banner-cta — "Not sure what you need?")
   The "Call us..." line (h2) was capped at max-width:992px, wrapping it early.
   Drop the cap so it runs the full panel width before wrapping. (The paragraph
   above it is already uncapped.)
   ========================================================================== */
body.home .block--banner-cta .banner-content h2 {
  max-width: none !important;
}

/* ==========================================================================
   Business page (page-id-62) — "The Adapt Way" banner-cta panel
   Two designer tweaks:
   1. The heading (h2, capped at 996px) and body paragraphs (capped at 660px)
      both wrapped early. Drop the caps so they run the full container width
      before wrapping.
   2. Add more leading to the heading (line-height was too tight).
   3. Put the heading back in Sora — the shipped parent dist/style.css forces
      this panel's h2 to Inter, unlike every other banner-cta heading.
   Parent selectors are more specific, so !important is required to win.
   ========================================================================== */
body.page-id-62 .banner-cta-business-page .banner-content p,
body.page-id-62 .banner-cta-business-page .banner-content h2 {
  max-width: none !important;
}

body.page-id-62 .banner-cta-business-page .banner-content h2 {
  font-family: "Sora", sans-serif !important;
  line-height: 1.3 !important;
}

/* ==========================================================================
   Newsletter-signup block (journal page) — "Subscribe Now" trigger button
   The parent's base rule leaves an orange glow (box-shadow:0 6px 23px rgba
   (250,129,95,.3)) under the button even after the background is recoloured
   to teal. Drop the shadow.
   ========================================================================== */
.newsletter-signup__trigger {
  box-shadow: none !important;
}
