:root {
  --ink: #002c44;
  --blue: #0070c0;
  --ice: #9dc3e6;
  --pale: #d8e7f5;
  --paper: #ffffff;
  --muted: rgba(0, 44, 68, 0.68);
  --rule: rgba(0, 44, 68, 0.35);
  --container: min(81.45vw, 1564px);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: #efecec;
  color: var(--ink);
  font-family: "Roboto", Arial, sans-serif;
  font-size: 18px;
  line-height: 1.45;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

button {
  color: inherit;
  font: inherit;
}

.container {
  width: var(--container);
  max-width: calc(100vw - 48px);
  margin: 0 auto;
}

.section-pad {
  padding: clamp(70px, 6.5vw, 124px) 0;
}

.site-header {
  position: fixed;
  z-index: 20;
  top: 50px;
  left: 50%;
  display: grid;
  width: var(--container);
  max-width: calc(100vw - 48px);
  grid-template-columns: 296px 1fr auto;
  align-items: center;
  gap: clamp(34px, 3.6vw, 70px);
  color: #fff;
  transform: translateX(-50%);
  transition:
    top 180ms ease,
    padding 180ms ease,
    background 180ms ease,
    box-shadow 180ms ease;
}

.site-header.is-scrolled,
.site-header.is-open {
  top: 18px;
  padding: 16px 22px;
  border-radius: 999px;
  background: rgba(0, 44, 68, 0.88);
  box-shadow: 0 20px 60px rgba(0, 44, 68, 0.24);
  backdrop-filter: blur(18px);
}

.brand img {
  width: 296px;
  max-width: min(296px, 25vw);
}

.main-nav,
.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(24px, 2.9vw, 56px);
}

.nav-item > a,
.nav-contact {
  display: inline-flex;
  align-items: center;
  font-family: "Roboto", Arial, sans-serif;
  font-size: clamp(15px, 1.25vw, 24px);
  font-weight: 400;
  line-height: 1;
}

.nav-contact {
  font-weight: 500;
}

.nav-item > a::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-left: 13px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-3px) rotate(45deg);
}

.nav-item {
  position: static;
}

.mega-menu {
  position: absolute;
  top: calc(100% + 42px);
  left: 50%;
  display: grid;
  width: var(--container);
  min-height: clamp(520px, 44vw, 840px);
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
  gap: clamp(54px, 5.4vw, 104px);
  padding: clamp(58px, 6.1vw, 116px) clamp(52px, 5.5vw, 106px);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 28px 90px rgba(0, 44, 68, 0.2);
  color: var(--ink);
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transform: translate(-50%, 12px);
  transition:
    opacity 160ms ease,
    transform 160ms ease,
    visibility 160ms ease;
  backdrop-filter: blur(20px);
}

.nav-item:hover .mega-menu,
.nav-item:focus-within .mega-menu,
.nav-item.is-open .mega-menu {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transform: translate(-50%, 0);
}

.mega-menu__columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(36px, 4.2vw, 82px);
  align-content: start;
}

.mega-menu__columns h3 {
  margin: 0 0 clamp(44px, 4.7vw, 92px);
  color: var(--blue);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(16px, 1.25vw, 24px);
  font-weight: 500;
}

.mega-menu__columns a {
  display: block;
  margin-bottom: clamp(28px, 3vw, 58px);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(22px, 1.56vw, 30px);
  font-weight: 500;
  line-height: 1.15;
}

.mega-menu__columns a::after,
.mega-menu__feature a::after {
  content: none;
}

.mega-menu__feature {
  display: grid;
  grid-template-columns: 46% 1fr;
  gap: clamp(28px, 3.1vw, 58px);
  align-items: stretch;
}

.mega-menu__feature--image-only {
  grid-template-columns: 1fr;
}

.mega-menu__feature img {
  width: 100%;
  min-height: 280px;
  max-height: 560px;
  object-fit: cover;
}

.mega-menu__feature h3 {
  margin: 0 0 22px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(24px, 2.25vw, 42px);
  font-weight: 600;
  line-height: 1.13;
}

.mega-menu__feature p {
  margin: 0 0 32px;
  color: rgba(0, 44, 68, 0.74);
  font-size: clamp(17px, 1.25vw, 24px);
  line-height: 1.35;
}

.mega-menu__feature a {
  color: var(--blue);
  font-weight: 500;
}

.icon-button,
.menu-toggle {
  border: 0;
  background: transparent;
  cursor: pointer;
}

.icon-button {
  position: relative;
  width: 32px;
  height: 32px;
  padding: 0;
}

.icon-button span {
  position: absolute;
  inset: 4px 7px 8px 4px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.icon-button span::after {
  content: "";
  position: absolute;
  right: -7px;
  bottom: -6px;
  width: 10px;
  height: 2px;
  background: currentColor;
  transform: rotate(45deg);
}

.menu-toggle {
  display: none;
  justify-self: end;
  width: 42px;
  padding: 8px 4px;
}

.menu-toggle span {
  display: block;
  height: 2px;
  margin: 7px 0;
  background: #fff;
}

.hero {
  position: relative;
  min-height: min(1024px, 58vw);
  background:
    linear-gradient(90deg, rgba(0, 112, 192, 0.18), rgba(0, 44, 68, 0.05)),
    url("assets/figma/01-homepage-pages-home-page-header-main-header-rectangle-1.png")
      center / cover;
  color: #fff;
}

.subpage-hero {
  position: relative;
  min-height: 720px;
  background-color: #8c9aa3;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
}

.subpage-hero__copy {
  display: flex;
  min-height: 720px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding-top: 92px;
}

.subpage-hero h1 {
  width: min(760px, 100%);
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(44px, 2.95vw, 56px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.035em;
}

.subpage-hero p:not(.eyebrow) {
  width: min(792px, 100%);
  margin: 42px 0;
  font-size: clamp(20px, 1.7vw, 32px);
  line-height: 1.18;
}

.product-overview,
.product-detail {
  background: #fff;
}

.product-proof {
  background: var(--ink);
  color: #fff;
  padding: clamp(92px, 8.5vw, 162px) 0;
}

.product-proof--image {
  background:
    linear-gradient(90deg, rgba(0, 44, 68, 0.82), rgba(0, 44, 68, 0.42)),
    var(--proof-bg) center / cover;
}

.product-proof__inner {
  display: grid;
  grid-template-columns: 42% 1fr;
  gap: 64px;
  align-items: center;
}

.product-proof strong,
.product-metrics strong {
  display: block;
  font-family: "Roboto Serif", Georgia, serif;
  font-size: clamp(96px, 12vw, 228px);
  font-weight: 600;
  line-height: 0.95;
  letter-spacing: -0.065em;
}

.product-proof h2 {
  color: #fff;
}

.product-proof p {
  margin: 34px 0 76px;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(22px, 1.9vw, 36px);
  line-height: 1.25;
}

.product-proof small {
  color: var(--ice);
  font-family: "Poppins", sans-serif;
  font-size: clamp(16px, 1.25vw, 24px);
}

.product-metrics {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  margin-top: clamp(70px, 7vw, 124px);
}

.product-metrics article {
  border-top: 1px solid var(--ink);
  padding-top: 28px;
}

.product-metrics span {
  display: block;
  margin-bottom: 30px;
  font-family: "Poppins", sans-serif;
  font-size: clamp(14px, 1vw, 18px);
  font-weight: 500;
}

.product-metrics strong {
  font-size: clamp(54px, 5vw, 96px);
}

.product-metrics p {
  margin: 10px 0 0;
  font-size: clamp(16px, 1.1vw, 20px);
}

.service-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: clamp(70px, 7vw, 124px);
}

.service-cards--four {
  grid-template-columns: repeat(4, 1fr);
}

.service-cards article {
  min-height: 310px;
  border-top: 1px solid var(--rule);
  padding: 32px 0 0;
}

.service-cards span {
  display: block;
  margin-bottom: 38px;
  color: var(--blue);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(15px, 1.15vw, 20px);
  font-weight: 500;
}

.service-cards h3 {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(22px, 1.9vw, 34px);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.025em;
}

.invest-cta--light {
  background: var(--pale);
  color: var(--ink);
}

.invest-cta--light h2 {
  color: var(--ink);
}

.invest-cta--light p {
  color: var(--muted);
}

.about-team {
  background: #fff;
}

.about-team__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: clamp(48px, 5vw, 92px);
  align-items: end;
}

.about-team__grid p {
  margin: 34px 0;
  color: var(--muted);
  font-size: clamp(18px, 1.65vw, 32px);
  line-height: 1.28;
}

.about-team__grid img {
  width: 100%;
  height: min(700px, 43vw);
  object-fit: cover;
}

.contact-hero {
  padding-top: clamp(170px, 14vw, 250px);
  background:
    linear-gradient(180deg, rgba(216, 231, 245, 0.9), rgba(255, 255, 255, 1));
}

.contact-hero__grid,
.contact-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap: clamp(48px, 6vw, 110px);
  align-items: start;
}

.contact-hero h1 {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(44px, 4.4vw, 84px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.045em;
}

.contact-hero p,
.contact-form-grid > div p {
  margin: 34px 0 0;
  color: var(--muted);
  font-size: clamp(18px, 1.65vw, 32px);
  line-height: 1.28;
}

.contact-hero aside {
  border-top: 1px solid var(--rule);
  padding-top: 32px;
}

.contact-hero aside span,
.contact-hero aside a,
.contact-hero aside p {
  display: block;
  margin: 0 0 26px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.55vw, 30px);
  font-weight: 500;
}

.contact-form-section {
  background: #fff;
}

.contact-page {
  background: #fff;
}

.contact-title {
  min-height: 520px;
  padding: clamp(190px, 15vw, 290px) 0 clamp(100px, 9vw, 170px);
  background: var(--ink);
  color: #fff;
}

.contact-title__inner {
  max-width: var(--container);
}

.contact-title__eyebrow {
  margin: 0 0 24px;
  color: #b74c3f;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(14px, 1.05vw, 18px);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.contact-title h1 {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(64px, 6.3vw, 120px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.055em;
}

.contact-main {
  background: #f7f5f1;
  padding-top: clamp(92px, 8.4vw, 162px);
  padding-bottom: clamp(92px, 8.4vw, 162px);
}

.contact-main__grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.38fr) minmax(0, 0.62fr);
  gap: clamp(60px, 8vw, 156px);
  align-items: start;
}

.contact-office {
  padding-top: 10px;
}

.contact-office__eyebrow,
.contact-form-card__header span {
  margin: 0;
  color: var(--ink);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(14px, 1.05vw, 18px);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.contact-office__address {
  margin: clamp(54px, 5vw, 96px) 0 0;
  color: var(--muted);
  font-style: normal;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.55vw, 30px);
  font-weight: 500;
  line-height: 1.45;
}

.contact-social {
  display: flex;
  gap: 14px;
  margin-top: clamp(40px, 4vw, 76px);
}

.contact-social a {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: var(--ink);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}

.contact-form-card {
  background: #fff;
  border: 1px solid rgba(0, 44, 68, 0.18);
  padding: clamp(40px, 4.4vw, 84px) clamp(36px, 4.2vw, 80px);
}

.contact-form-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}

.contact-form-card__header p {
  margin: 0;
  color: #b74c3f;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(13px, 0.95vw, 16px);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.contact-form-card h2 {
  margin: 0 0 clamp(40px, 4.2vw, 80px);
  font-size: clamp(38px, 3.15vw, 60px);
  line-height: 1.05;
  letter-spacing: -0.035em;
}

.figma-contact-form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px 28px;
}

.figma-contact-form label {
  display: grid;
  gap: 12px;
  color: var(--ink);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
}

.figma-contact-form input,
.figma-contact-form select,
.figma-contact-form textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(0, 44, 68, 0.38);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 400;
  padding: 12px 0 15px;
}

.figma-contact-form textarea {
  border: 1px solid rgba(0, 44, 68, 0.32);
  min-height: 150px;
  padding: 16px;
  resize: vertical;
}

.figma-contact-form__wide,
.figma-contact-form button {
  grid-column: 1 / -1;
}

.figma-contact-form button {
  justify-self: start;
  border: 0;
  cursor: pointer;
}

.contact-page-nav {
  display: grid;
  min-height: 180px;
  grid-template-columns: 1fr 1fr;
  background: #cecaa7;
  color: var(--ink);
}

.contact-page-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 40px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(24px, 2.4vw, 46px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.03em;
}

.contact-page-nav a + a {
  border-left: 1px solid rgba(0, 44, 68, 0.24);
}

.contact-page-nav span {
  font-family: "Roboto", Arial, sans-serif;
  font-size: 0.72em;
}

.contact-funding {
  background: var(--ink);
  color: #fff;
  padding: clamp(74px, 8vw, 154px) 0;
}

.contact-funding__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.46fr) minmax(0, 0.54fr);
  gap: clamp(58px, 7vw, 134px);
  align-items: center;
}

.contact-funding img {
  width: 100%;
  height: min(386px, 28vw);
  object-fit: cover;
}

.contact-funding h2 {
  color: #fff;
  font-size: clamp(40px, 3.15vw, 60px);
}

.contact-funding p {
  margin: 34px 0 46px;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(20px, 1.65vw, 32px);
  line-height: 1.28;
}

.resource-grid,
.people-grid,
.faq-list {
  display: grid;
  gap: 32px;
  margin-top: clamp(58px, 6.4vw, 124px);
}

.resource-grid {
  grid-template-columns: repeat(3, 1fr);
}

.people-grid {
  grid-template-columns: repeat(4, 1fr);
}

.resource-card,
.person-card,
.faq-item {
  border-top: 1px solid var(--rule);
  padding-top: 30px;
}

.resource-card span,
.person-card span,
.faq-item span {
  display: block;
  margin-bottom: 28px;
  color: var(--blue);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(15px, 1.15vw, 20px);
  font-weight: 500;
}

.resource-card h3,
.person-card h3,
.faq-item h3 {
  margin: 0 0 24px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(24px, 1.95vw, 36px);
  font-weight: 500;
  line-height: 1.14;
  letter-spacing: -0.025em;
}

.resource-card p,
.person-card p,
.faq-item p {
  margin: 0;
  color: var(--muted);
  font-size: clamp(17px, 1.2vw, 22px);
  line-height: 1.35;
}

.person-card img,
.resource-card img {
  width: 100%;
  height: min(320px, 22vw);
  margin-bottom: 30px;
  object-fit: cover;
}

.faq-list {
  grid-template-columns: 1fr;
}

.faq-item {
  display: grid;
  grid-template-columns: minmax(220px, 0.38fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 92px);
}

.lead-form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 26px;
}

.lead-form label {
  display: grid;
  gap: 10px;
  color: var(--ink);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
}

.lead-form input,
.lead-form select,
.lead-form textarea {
  width: 100%;
  border: 1px solid rgba(0, 44, 68, 0.28);
  border-radius: 0;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-family: "Roboto", Arial, sans-serif;
  font-weight: 400;
  padding: 18px;
}

.lead-form textarea {
  resize: vertical;
}

.lead-form__wide,
.lead-form button {
  grid-column: 1 / -1;
}

.lead-form button {
  border: 0;
  cursor: pointer;
  justify-self: start;
}

.hero-copy {
  position: absolute;
  top: clamp(190px, 23vw, 337px);
  left: max(24px, calc((100vw - var(--container)) / 2 + 812px));
  width: min(810px, calc(100vw - 48px));
}

.hero h1,
.final-cta h2 {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(42px, 3.05vw, 56px);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.035em;
}

.hero p {
  width: min(792px, 100%);
  margin: 48px 0 48px;
  font-size: clamp(20px, 1.9vw, 36px);
  line-height: 1.1;
}

.ghost-button,
.primary-button {
  display: inline-flex;
  min-height: 56px;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  padding: 0 30px;
  font-family: "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.25vw, 24px);
  font-weight: 500;
  line-height: 1;
  transition:
    transform 160ms ease,
    background 160ms ease,
    color 160ms ease;
}

.ghost-button {
  min-width: 214px;
  border: 1px solid rgba(255, 255, 255, 0.9);
  background: transparent;
  color: #fff;
}

.primary-button {
  min-width: 204px;
  border: 1px solid var(--blue);
  background: var(--blue);
  color: #fff;
}

.primary-button.light {
  color: var(--ice);
}

.primary-button--wide {
  min-width: 277px;
}

.ghost-button:hover,
.primary-button:hover {
  transform: translateY(-2px);
}

.intro {
  background:
    linear-gradient(180deg, rgba(216, 231, 245, 0.72), rgba(255, 255, 255, 0) 54%),
    #fff;
}

.intro-grid,
.split-copy {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
}

h2 {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(34px, 2.4vw, 46px);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -0.025em;
}

.intro-copy p,
.split-copy p,
.advantage-top p,
.insights-grid p,
.invest-inner p,
.final-cta p {
  margin: 0 0 30px;
  color: var(--muted);
  font-size: clamp(18px, 1.65vw, 32px);
  line-height: 1.28;
}

.stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 82px;
}

.stats article {
  border-top: 1px solid var(--ink);
  padding-top: 28px;
}

.stats span,
.section-rule > span,
.section-kicker,
.eyebrow {
  display: block;
  margin-bottom: 28px;
  font-size: clamp(14px, 1.1vw, 18px);
  font-weight: 500;
}

.stats strong {
  display: block;
  font-family: "Roboto Serif", Georgia, serif;
  font-size: clamp(42px, 3.75vw, 72px);
  font-weight: 600;
  letter-spacing: -0.06em;
  line-height: 1.15;
}

.stats p {
  margin: 8px 0 0;
  font-size: clamp(14px, 1vw, 18px);
}

.work {
  min-height: min(1024px, 58vw);
  background:
    linear-gradient(rgba(0, 44, 68, 0.54), rgba(0, 44, 68, 0.54)),
    url("assets/figma/02-homepage-pages-home-page-body-how-we-work-section-bg-image.png")
      center / cover;
  color: #fff;
}

.work-inner {
  display: flex;
  min-height: min(1024px, 58vw);
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(70px, 6.4vw, 124px) 0;
}

.section-kicker {
  display: flex;
  justify-content: space-between;
}

.work-tabs {
  display: flex;
  gap: clamp(30px, 4.4vw, 80px);
}

.work-tabs button {
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  font-family: "Roboto Serif", Georgia, serif;
  font-size: clamp(18px, 1.45vw, 28px);
  font-weight: 500;
}

.work-tabs .is-active {
  color: #fff;
}

.work-copy {
  width: min(900px, 100%);
}

.work-copy h2 {
  color: #fff;
  font-size: clamp(38px, 3.2vw, 60px);
}

.work-copy p {
  width: min(668px, 100%);
  margin: 32px 0;
  font-size: clamp(22px, 2vw, 40px);
  line-height: 1;
}

.advantage {
  overflow: hidden;
  background: #fff;
}

.advantage-top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 86px;
  border-top: 1px solid var(--rule);
  padding-top: 82px;
}

.advantage-top a {
  color: var(--blue);
  font-weight: 500;
}

.steps {
  display: grid;
  gap: 44px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.steps li {
  display: grid;
  grid-template-columns: 68px 1fr;
  gap: 32px;
}

.steps li > span {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: var(--ink);
  color: #fff;
  font-weight: 600;
}

.steps h3 {
  margin: 0 0 16px;
  font-size: clamp(24px, 1.9vw, 36px);
  font-weight: 500;
}

.steps p {
  margin: 0;
  color: var(--muted);
  font-size: clamp(16px, 1.2vw, 24px);
}

.carousel-wrap {
  position: relative;
  width: min(100%, 2224px);
  margin: clamp(80px, 8vw, 150px) auto 0;
}

.carousel {
  display: flex;
  gap: 32px;
  transition: transform 240ms ease;
}

.carousel-card {
  position: relative;
  flex: 0 0 min(75vw, 1440px);
  height: clamp(460px, 39.5vw, 760px);
  overflow: hidden;
  background: var(--ink);
  color: #fff;
}

.carousel-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.carousel-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 44, 68, 0.78), rgba(0, 44, 68, 0.04));
}

.carousel-card > div {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: clamp(42px, 7vw, 160px);
  width: min(590px, 52%);
  transform: translateY(-50%);
}

.carousel-card span {
  color: var(--ice);
  font-size: clamp(20px, 2vw, 46px);
  text-transform: uppercase;
}

.carousel-card h3 {
  margin: 20px 0 92px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(30px, 3.1vw, 60px);
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: -0.035em;
}

.carousel-card p {
  margin: 0 0 28px;
  font-size: clamp(16px, 1.25vw, 24px);
}

.carousel-card a {
  color: var(--ice);
  font-weight: 500;
}

.carousel-button {
  position: absolute;
  z-index: 2;
  top: 50%;
  display: grid;
  width: 80px;
  height: 80px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.82);
  color: var(--ink);
  cursor: pointer;
  font-size: 54px;
  line-height: 1;
  transform: translateY(-50%);
}

.carousel-button.prev {
  left: clamp(18px, 3vw, 76px);
}

.carousel-button.next {
  right: clamp(18px, 3vw, 76px);
}

.benefits,
.insights {
  background: #fff;
}

.section-rule {
  border-top: 1px solid var(--rule);
  padding-top: 82px;
}

.feature-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 86px;
}

.feature-cards article {
  position: relative;
  display: flex;
  min-height: 500px;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  padding: 40px;
  background:
    linear-gradient(rgba(0, 44, 68, 0.56), rgba(0, 44, 68, 0.56)),
    var(--bg) center / cover;
  color: #fff;
}

.feature-cards span {
  color: var(--ice);
  font-size: 18px;
  font-weight: 500;
}

.feature-cards h3 {
  margin: 18px 0 42px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(24px, 2.35vw, 46px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -0.035em;
}

.feature-cards a {
  color: var(--ice);
  font-weight: 500;
}

.insights-grid {
  display: grid;
  grid-template-columns: 479px 1fr;
  gap: 82px;
  align-items: end;
}

.insights-grid h2 {
  margin-bottom: 56px;
  font-size: clamp(36px, 3.2vw, 60px);
}

.insights-grid time {
  display: block;
  margin-bottom: 28px;
  color: rgba(0, 0, 0, 0.5);
  font-size: 18px;
}

.insights-grid img {
  width: 100%;
  height: min(700px, 43vw);
  object-fit: cover;
}

.invest-cta {
  background: var(--ink);
  color: #fff;
  padding: 99px 0;
}

.invest-inner {
  display: grid;
  grid-template-columns: 46% 1fr;
  gap: 64px;
  align-items: center;
}

.invest-inner img {
  width: 100%;
  height: 346px;
  object-fit: cover;
}

.invest-inner h2 {
  color: #fff;
}

.invest-inner p {
  color: rgba(255, 255, 255, 0.78);
}

.final-cta {
  min-height: 748px;
  padding: clamp(120px, 11vw, 215px) 0;
  background:
    linear-gradient(90deg, rgba(0, 112, 192, 0.15), rgba(0, 44, 68, 0.12)),
    url("assets/figma/07-homepage-pages-home-page-body-ctas-fmpc-cta-bg-rectangle-1.png")
      center / cover;
  color: #fff;
}

.final-cta .container {
  width: min(726px, calc(100vw - 48px));
  margin-left: max(24px, calc((100vw - var(--container)) / 2));
}

.final-cta p {
  color: #fff;
  margin-top: 48px;
}

.site-footer {
  background: #fff;
  padding: 98px 0 58px;
}

.footer-main {
  display: grid;
  grid-template-columns: 524px 1fr;
  gap: 96px;
}

.footer-brand img {
  width: 403px;
}

.footer-brand p {
  margin: 80px 0 52px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(24px, 1.45vw, 28px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.025em;
}

.social {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: var(--ink);
  color: #fff;
  font-weight: 600;
}

.footer-menu {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.footer-menu h3 {
  display: block;
  margin: 0;
  color: var(--blue);
  font-size: clamp(24px, 1.875vw, 36px);
  font-weight: 600;
  line-height: 1.35;
}

.footer-menu a {
  display: block;
  margin: 12px 0 0;
  font-size: clamp(20px, 1.55vw, 30px);
  font-weight: 400;
  line-height: 1.55;
}

.footer-legal {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 82px;
  color: rgba(0, 0, 0, 0.35);
  font-size: 18px;
}

.footer-legal p {
  margin: 0;
}

.footer-legal div {
  display: flex;
  gap: 34px;
}

@media (max-width: 1180px) {
  .site-header {
    grid-template-columns: 180px 1fr auto;
  }

  .main-nav,
  .header-actions {
    gap: 18px;
  }

  .site-header {
    grid-template-columns: 210px 1fr auto;
  }

  .brand img {
    width: 210px;
  }

  .main-nav a,
  .nav-contact {
    font-size: 16px;
  }

  .hero-copy {
    left: 24px;
    right: 24px;
    width: auto;
  }

  .intro-grid,
  .split-copy,
  .advantage-top,
  .insights-grid,
  .invest-inner,
  .footer-main,
  .about-team__grid,
  .contact-main__grid,
  .contact-funding__grid,
  .contact-hero__grid,
  .contact-form-grid {
    grid-template-columns: 1fr;
  }

  .feature-cards {
    grid-template-columns: 1fr;
  }

  .service-cards,
  .service-cards--four,
  .resource-grid,
  .people-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .feature-cards article {
    min-height: 420px;
  }
}

@media (max-width: 840px) {
  :root {
    --container: calc(100vw - 32px);
  }

  body {
    font-size: 16px;
  }

  .site-header {
    top: 18px;
    grid-template-columns: 1fr auto;
    padding: 16px 18px;
    border-radius: 28px;
    background: rgba(0, 44, 68, 0.9);
  }

  .brand img {
    width: 142px;
  }

  .main-nav,
  .header-actions {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    left: 0;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    padding: 24px;
    border-radius: 24px;
    background: rgba(0, 44, 68, 0.96);
  }

  .site-header.is-open .main-nav,
  .site-header.is-open .header-actions {
    display: flex;
  }

  .site-header.is-open .header-actions {
    top: calc(100% + 284px);
  }

  .mega-menu {
    position: static;
    display: none;
    width: 100%;
    min-height: 0;
    grid-template-columns: 1fr;
    margin-top: 18px;
    padding: 20px;
    box-shadow: none;
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transform: none;
  }

  .nav-item:hover .mega-menu,
  .nav-item:focus-within .mega-menu,
  .nav-item.is-open .mega-menu {
    display: grid;
    transform: none;
  }

  .mega-menu__columns,
  .mega-menu__feature {
    grid-template-columns: 1fr;
  }

  .mega-menu__feature img {
    max-height: 220px;
  }

  .menu-toggle {
    display: block;
  }

  .hero {
    min-height: 760px;
  }

  .hero-copy {
    top: 170px;
    left: 24px;
    right: 24px;
  }

  .stats,
  .footer-menu,
  .service-cards,
  .service-cards--four,
  .resource-grid,
  .people-grid,
  .faq-item {
    grid-template-columns: 1fr;
  }

  .work,
  .work-inner {
    min-height: 760px;
  }

  .work-tabs {
    flex-direction: column;
    gap: 12px;
  }

  .carousel {
    gap: 16px;
  }

  .carousel-card {
    flex-basis: calc(100vw - 32px);
  }

  .carousel-card > div {
    width: calc(100% - 64px);
  }

  .carousel-button {
    width: 56px;
    height: 56px;
    font-size: 40px;
  }

  .invest-inner img {
    height: 240px;
  }

  .lead-form,
  .figma-contact-form,
  .contact-page-nav {
    grid-template-columns: 1fr;
  }

  .contact-page-nav a + a {
    border-top: 1px solid rgba(0, 44, 68, 0.24);
    border-left: 0;
  }

  .final-cta {
    min-height: 620px;
  }

  .contact-title {
    min-height: 360px;
  }

  .contact-funding img {
    height: 260px;
  }

  .footer-legal {
    flex-direction: column;
  }
}

/* Salient migrated page reset */
body.page:not(.home) #header-outer, body.page:not(.home) #header-space, body.page:not(.home) #slide-out-widget-area, body.page:not(.home) #footer-outer { display: none !important; }
/* Belt-and-suspenders: even if a host with populated salient_redux
   re-shows #header-space (its height comes from the Redux header-size
   default, ~90px), zero its dimensions on every migrated page so the
   .parabilis-page-wrap's -120px top-margin slides under our own
   global-section header rather than under a Salient space-holder. */
body.page:not(.home) #header-space { height: 0 !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; }
body.page:not(.home) #ajax-content-wrap, body.page:not(.home) .container-wrap { background: #fff !important; }
body.page:not(.home) .container-wrap, body.page:not(.home) .main-content, body.page:not(.home) .row { margin: 0 !important; padding: 0 !important; }
body.page:not(.home) .container.main-content, body.page:not(.home) .container-wrap > .container, body.page:not(.home) .wpb_row, body.page:not(.home) .wpb_wrapper { width: 100% !important; max-width: none !important; }
.parabilis-page-wrap { margin: 0; }
/* Pull sub-page content up under the 120px transparent global header so the
   hero image starts at viewport y=0 (matches the home page treatment). The
   nav/logo are designed white-on-dark and need a dark canvas behind them;
   the dark hero now sits there. Without this margin, the header band reads
   as white-on-white and effectively disappears (rhythm-pass MAJOR on
   migrations/about/page-rhythm-rewrite-1.md flagged this).
   The `html` prefix bumps specificity from (0,2,1) to (0,2,2) so the
   rule survives hosts with fully-populated Salient inline CSS (staging /
   production); see notes in parabilis-salient.css for the same
   white-bar-on-staging fix on the home page. */
html body.page:not(.home) .parabilis-page-wrap { margin-top: -120px !important; }
html body.page:not(.home) .nectar-global-section.after-nav { background: transparent !important; }
body.page:not(.home) .psh-site-header { color: #fff; }

/* Reserve 120px at the top of every sub-page hero variant so the
 * `.parabilis-page-wrap { margin-top: -120px }` hoist above doesn't drag
 * the hero's content (eyebrow / h1 / lede) up underneath the transparent
 * header. Without this, on pages where the hero `min-height` is set such
 * that flex-centering puts the content close to the top edge — most
 * visibly Contact (520px), About (760px), Clients, plus all
 * `.psh-photo-hero` / `.psh-podcast-hero` Figma-pass pages — the eyebrow
 * line slides up into the 120px header band where it competes with the
 * logo and nav items.
 *
 * Two-part fix:
 *   1. Pad the hero element by 120 so its background reserves the
 *      header-band region even when nothing visible lives there.
 *   2. Pad the inner copy/inner container by an extra 120 so the
 *      flex-centered content cluster doesn't ride up into the header
 *      band when the content stack is tall enough to crowd the
 *      centering area. Without (2), flex centering in a too-short
 *      min-height container positions content with NEGATIVE offset
 *      from padding-top — which is exactly what Contact (520px) and
 *      About (760px-but-tall-content) were doing.
 *
 * Pages that already have enough vertical headroom (Team, Careers,
 * Insights) just get extra breathing room; the layout still reads
 * right because their heroes have `min-height` and `align-items` set
 * to absorb the additional padding gracefully.
 *
 * `html` prefix bumps specificity to (0,2,2) so this beats the various
 * per-page hero overrides at (0,2,1) without each one needing the
 * `!important` escalation. */
html body.page:not(.home) .subpage-hero,
html body.page:not(.home) .pab-hero,
html body.page:not(.home) .contact-hero,
html body.page:not(.home) .psh-photo-hero,
html body.page:not(.home) .psh-podcast-hero {
  padding-top: 120px;
}
/* Switch the inner copy/inner container from flex-centering to
 * flex-start with an explicit, generous padding-top. The base rule
 * uses `justify-content: center` on a flex column with min-height,
 * which lets tall content overflow the padding-top boundary back UP
 * into the header band. Flex-start guarantees the content cluster
 * starts at exactly padding-top, regardless of cluster height. The
 * 240px padding-top (120 header band + 120 breathing room) puts the
 * eyebrow line well below the transparent header on every page.
 *
 * Specificity matters here: the hero copy is `.container.subpage-hero__copy`,
 * and Salient ships a `body .container .container:not(.tab-container):
 * not(.recent-post-container):not(.normal-container) { padding-top: 0
 * !important }` reset (spec 0,5,1, with !important) that fires because
 * the WPBakery / page-builder wrapper outside is also a `.container`.
 * To beat that, the selectors below add the `.parabilis-page-wrap`
 * ancestor + the `.container` class on the copy element itself so the
 * resulting specificity is (0,7,2) — comfortably above Salient's
 * (0,5,1) reset.
 *
 * `align-items: flex-start` preserves the left-anchored layout the
 * base rule defined.
 *
 * `!important` is required because several Figma-pass per-page
 * overrides (e.g. `.parabilis-about .pab-hero .subpage-hero__copy
 * { padding-top: 172px !important }`) already use !important. */
html body.page:not(.home) .parabilis-page-wrap .subpage-hero .container.subpage-hero__copy,
html body.page:not(.home) .parabilis-page-wrap .pab-hero .container.subpage-hero__copy,
html body.page:not(.home) .parabilis-page-wrap .contact-hero .container.subpage-hero__copy,
html body.page:not(.home) .parabilis-page-wrap .psh-photo-hero .container.psh-photo-hero__inner,
html body.page:not(.home) .parabilis-page-wrap .psh-podcast-hero .container.psh-podcast-hero__inner {
  justify-content: flex-start !important;
  align-items: flex-start !important;
  padding-top: 240px !important;
  padding-bottom: 88px !important;
}
/* Contact hero is centered horizontally per the Figma pass — keep its
 * inline-axis alignment as center even though we switched the rest to
 * flex-start. */
html body.page:not(.home) .parabilis-page-wrap .contact-hero .container.subpage-hero__copy {
  align-items: center !important;
  text-align: center;
}

/* ============================================================
   ABOUT PAGE (rewrite per migrations/about/page-rhythm-baseline.md)
   Adds the three missing full-bleed photo bands (Our Story / Who We Support
   / Where We Work), the tan navigation-pager strip, and the dedicated-team
   CTA the rhythm pass flagged as section-order blockers. Hero, final CTA,
   and base typography continue to use the cross-page primitives above.
   ============================================================ */

/* Hero text/CTA tightening so the dark factory image reads correctly under
   the global header at the 120px header band height. */
.parabilis-about .pab-hero {
  min-height: 760px;
}
.parabilis-about .pab-hero .subpage-hero__copy {
  min-height: 760px;
  padding-top: 156px; /* clear the 120px global header + breathing room */
}
.parabilis-about .pab-hero .eyebrow {
  margin: 0 0 18px;
  color: var(--ice);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(15px, 1.1vw, 18px);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.parabilis-about .ghost-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  padding: 16px 28px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 6px;
  color: #fff;
  font-family: "Roboto", Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  text-decoration: none;
  transition: background 180ms ease, border-color 180ms ease;
}
.parabilis-about .ghost-button:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #fff;
}
.parabilis-about .ghost-button--light {
  border-color: var(--ice);
  color: var(--ice);
}

/* Full-bleed photo bands. .product-proof + .product-proof--image already
   sets the navy-gradient overlay + cover-positioned bg from --proof-bg.
   We just tighten layout + content sizing for the about-page rhythm. */
.parabilis-about .pab-band {
  padding: clamp(96px, 8.5vw, 162px) 0;
}
.parabilis-about .pab-band .product-proof__inner {
  grid-template-columns: 1fr 1fr;
  gap: 96px;
  align-items: center;
}
.parabilis-about .pab-band small {
  display: block;
  margin: 0 0 22px;
  color: var(--ice);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(14px, 1.05vw, 18px);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.parabilis-about .pab-band h2 {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(34px, 3.1vw, 56px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: #fff;
}
.parabilis-about .pab-band p {
  margin: 0 0 36px;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(18px, 1.5vw, 24px);
  line-height: 1.45;
}

/* Who We Are / Dedicated Team CTA — single-column heading + body + CTA
   on white, sits between the photo bands and the tan pager. Bottom
   padding is tightened relative to top per the rhythm pass — the
   pager is meant to read as a continuation of this section, not as
   its own page-flow band, so the gap to the pager should be ~half
   the top-of-section breathing room. */
.parabilis-about .pab-team-cta {
  background: #fff;
  padding: clamp(96px, 8vw, 156px) 0 clamp(56px, 5vw, 88px);
}
.parabilis-about .pab-team-cta .eyebrow {
  display: block;
  margin: 0 0 32px;
  color: var(--ink);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(14px, 1.05vw, 18px);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.parabilis-about .pab-team-cta__grid {
  display: grid;
  grid-template-columns: 1fr;
  border-top: 1px solid rgba(0, 44, 68, 0.3);
  padding-top: 56px;
}
.parabilis-about .pab-team-cta__copy {
  max-width: 1200px;
}
.parabilis-about .pab-team-cta h2 {
  margin: 0 0 28px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(40px, 3.6vw, 64px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.parabilis-about .pab-team-cta p {
  margin: 0 0 40px;
  color: var(--muted);
  font-size: clamp(18px, 1.5vw, 24px);
  line-height: 1.45;
  max-width: 980px;
}

/* Tan/beige pager strip (Giving Back ← → News & Insights). The figma
   reference shows a warm putty tone — pulled from sibling pages in the
   "Auxiliary" Figma frame. */
.parabilis-about .pab-pager {
  background: #c8b89a; /* warm-tan putty per figma */
  color: var(--ink);
  padding: clamp(28px, 3vw, 44px) 0;
}
.parabilis-about .pab-pager__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.parabilis-about .pab-pager__item {
  display: inline-flex;
  flex-direction: column;
  gap: 8px;
  color: var(--ink);
  text-decoration: none;
  transition: opacity 180ms ease;
}
.parabilis-about .pab-pager__item--next {
  align-items: flex-end;
  text-align: right;
}
.parabilis-about .pab-pager__direction {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(14px, 1.05vw, 18px);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.parabilis-about .pab-pager__label {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(28px, 2.8vw, 44px);
  font-weight: 500;
  line-height: 1.12;
}
.parabilis-about .pab-pager__item:hover {
  opacity: 0.78;
}

/* Final CTA — already covered by .final-cta, but the about page wants a
   slightly tighter padding profile so the seam with the tan pager reads
   as one continuous block, not two stacked panels. */
.parabilis-about .pab-final-cta {
  padding: clamp(96px, 7vw, 156px) 0;
}

/* Responsive: stack the photo-band grid below the breakpoint where the
   2-column layout starts to crowd. */
@media (max-width: 980px) {
  .parabilis-about .pab-band .product-proof__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .parabilis-about .pab-pager__inner {
    flex-direction: column;
    align-items: stretch;
  }
  .parabilis-about .pab-pager__item--next {
    align-items: flex-start;
    text-align: left;
  }
}

/* ============================================================
   CONTACT PAGE — qualifying lead form (engagement letter §3.4)
   ============================================================ */

.parabilis-contact .contact-hero {
  min-height: 520px;
}
.parabilis-contact .contact-hero .subpage-hero__copy {
  min-height: 520px;
  padding-top: 156px;
}
.parabilis-contact .contact-hero .eyebrow {
  margin: 0 0 18px;
  color: var(--ice);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(15px, 1.1vw, 18px);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.parabilis-contact .contact-form-section {
  background: #fff;
  padding: clamp(80px, 7vw, 140px) 0;
}
.parabilis-contact .contact-form-section__inner {
  display: grid;
  grid-template-columns: minmax(0, 480px) minmax(0, 1fr);
  gap: clamp(48px, 5vw, 96px);
  align-items: start;
}
.parabilis-contact .contact-form-section__intro .eyebrow {
  display: inline-block;
  margin: 0 0 24px;
  color: var(--blue);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(14px, 1.05vw, 18px);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.parabilis-contact .contact-form-section__intro h2 {
  margin: 0 0 24px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(36px, 2.8vw, 52px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -0.02em;
}
.parabilis-contact .contact-form-section__intro p {
  margin: 0 0 36px;
  color: var(--muted);
  font-size: clamp(17px, 1.3vw, 22px);
  line-height: 1.45;
}
.parabilis-contact .contact-form-section__perks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 18px;
}
.parabilis-contact .contact-form-section__perks li {
  font-size: clamp(15px, 1.1vw, 18px);
  line-height: 1.45;
  color: var(--ink);
  border-top: 1px solid rgba(0, 44, 68, 0.18);
  padding-top: 14px;
}

/* Legacy CF7 form styling — REMOVED 2026-05-12. Gravity Forms swap.
   See the "Gravity Forms styling" block in the REFINEMENT PASS section
   below for the live form CSS. */

.parabilis-contact .contact-alt {
  background: var(--pale);
  padding: clamp(64px, 6vw, 96px) 0;
}
.parabilis-contact .contact-alt__inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.parabilis-contact .contact-alt article {
  border-top: 1px solid rgba(0, 44, 68, 0.3);
  padding-top: 24px;
}
.parabilis-contact .contact-alt span {
  display: block;
  margin: 0 0 12px;
  color: var(--blue);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.parabilis-contact .contact-alt h3 {
  margin: 0 0 8px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.6vw, 26px);
  font-weight: 500;
  line-height: 1.18;
  color: var(--ink);
}
.parabilis-contact .contact-alt p {
  margin: 0;
  font-size: clamp(15px, 1.1vw, 18px);
  color: var(--muted);
}
.parabilis-contact .contact-alt a {
  color: var(--blue);
  text-decoration: underline;
}

@media (max-width: 980px) {
  .parabilis-contact .contact-form-section__inner {
    grid-template-columns: 1fr;
  }
  .parabilis-contact .contact-alt__inner {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   EVENT FUNNEL TEMPLATE (engagement letter §3.7)
   Used by wp-content/themes/salient-child/template-event-funnel.php for
   QR-driven event landing pages (Navy Summit, AFCEA, FedScoop, etc.).
   ============================================================ */

.parabilis-event-funnel .event-funnel__hero {
  position: relative;
  min-height: 620px;
  background-size: cover;
  background-position: center;
  color: #fff;
}
.parabilis-event-funnel .event-funnel__hero-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-height: 620px;
  padding-top: 156px;
  padding-bottom: 60px;
}
.parabilis-event-funnel .event-funnel__eyebrow {
  margin: 0 0 20px;
  color: var(--ice);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(15px, 1.15vw, 18px);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.parabilis-event-funnel .event-funnel__headline {
  margin: 0 0 28px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(40px, 3.5vw, 64px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.025em;
  max-width: 880px;
}
.parabilis-event-funnel .event-funnel__subhead {
  margin: 0 0 36px;
  font-size: clamp(18px, 1.5vw, 26px);
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.92);
  max-width: 720px;
}
.parabilis-event-funnel .event-funnel__cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 18px 32px;
  background: var(--blue);
  color: #fff;
  border-radius: 8px;
  font-family: "Roboto", Arial, sans-serif;
  font-size: clamp(16px, 1.2vw, 20px);
  font-weight: 500;
  text-decoration: none;
  transition: background-color 180ms ease, transform 180ms ease;
}
.parabilis-event-funnel .event-funnel__cta:hover {
  background: #005a9c;
  transform: translateX(2px);
}
.parabilis-event-funnel .event-funnel__cta span {
  font-size: 1.2em;
}

.parabilis-event-funnel .event-funnel__perks {
  background: #fff;
  padding: clamp(72px, 6vw, 120px) 0;
  border-bottom: 1px solid rgba(0, 44, 68, 0.08);
}
.parabilis-event-funnel .event-funnel__perks-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 64px;
  align-items: center;
}
.parabilis-event-funnel .event-funnel__perks-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 22px;
}
.parabilis-event-funnel .event-funnel__perks-list li {
  position: relative;
  padding-left: 36px;
  font-size: clamp(17px, 1.3vw, 22px);
  line-height: 1.4;
  color: var(--ink);
}
.parabilis-event-funnel .event-funnel__perks-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.4em;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--blue);
}
.parabilis-event-funnel .event-funnel__qr {
  margin: 0;
  text-align: center;
  max-width: 220px;
}
.parabilis-event-funnel .event-funnel__qr img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid rgba(0, 44, 68, 0.15);
  border-radius: 8px;
}
.parabilis-event-funnel .event-funnel__qr figcaption {
  margin-top: 14px;
  font-size: 13px;
  color: var(--muted);
}

@media (max-width: 880px) {
  .parabilis-event-funnel .event-funnel__perks-inner {
    grid-template-columns: 1fr;
  }
  .parabilis-event-funnel .event-funnel__qr {
    margin: 0 auto;
  }
}

/* ============================================================
   REFINEMENT PASS — 2026-05-12 (sub-page polish, post audit-refinement-1)
   Cross-page fixes from migrations/<page>/audit-refinement-1.md. Keep
   this block append-only so the per-page-state authors can read it as
   "the most recent CSS-level intent" without unwinding earlier blocks.
   ============================================================ */

/* --- Sub-page hero: strengthen overlay so headline is legible over
   any portion of the bg image, and centre content vertically with
   sane padding so the hero doesn't feel too tall or too tight.
   Audit flagged this on /products/, /insights/, /contact/. --- */
body.page:not(.home) .subpage-hero,
body.page:not(.home) .pab-hero {
  position: relative;
  isolation: isolate;
}
body.page:not(.home) .subpage-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0, 30, 50, 0.55) 0%,
    rgba(0, 30, 50, 0.35) 50%,
    rgba(0, 30, 50, 0.55) 100%
  );
  z-index: 0;
  pointer-events: none;
}
body.page:not(.home) .subpage-hero > * {
  position: relative;
  z-index: 1;
}
body.page:not(.home) .subpage-hero h1,
body.page:not(.home) .subpage-hero p,
body.page:not(.home) .subpage-hero .eyebrow {
  color: #fff !important;
  text-shadow: 0 2px 14px rgba(0, 18, 32, 0.35);
}
body.page:not(.home) .subpage-hero .ghost-button {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.85);
}
body.page:not(.home) .subpage-hero .ghost-button:hover {
  background: rgba(255, 255, 255, 0.18);
}

/* Container narrowing — sub-page sections were running edge-to-edge of
   the viewport because the .page:not(.home) reset zeroed the row
   margins. Restore a sane container max-width and re-introduce the
   horizontal gutter pattern home uses (clamp 24-72px each side). */
body.page:not(.home) .parabilis-page-wrap section > .container {
  width: 100%;
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(24px, 4vw, 72px);
  padding-right: clamp(24px, 4vw, 72px);
  box-sizing: border-box;
}
/* Subpage-hero copy column should stop at ~720px so headlines don't
   stretch into 5-line walls of text on 1920px viewports. */
body.page:not(.home) .subpage-hero__copy {
  width: 100%;
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(24px, 4vw, 72px);
  padding-right: clamp(24px, 4vw, 72px);
  padding-top: 156px;
  padding-bottom: 88px;
  align-items: flex-start;
  box-sizing: border-box;
}
body.page:not(.home) .subpage-hero h1 {
  max-width: 760px;
}
body.page:not(.home) .subpage-hero p:not(.eyebrow) {
  max-width: 640px;
  font-size: clamp(18px, 1.4vw, 24px);
  line-height: 1.4;
  margin: 26px 0 32px;
}

/* --- product-proof full-bleed bands: the original grid is 42% / 1fr
   which leaves a wide right column. When that right column has only
   a paragraph + button (no large image), it looks half-empty. Switch
   to a balanced 1fr / 1fr with align-items:start so the eye reads
   left-heading + right-body as a paired unit. Limit padding so the
   bands aren't 250px tall when content is two lines. --- */
.parabilis-about .pab-band {
  padding: clamp(72px, 6vw, 120px) 0;
}
.parabilis-about .pab-band .product-proof__inner {
  grid-template-columns: 6fr 5fr;
  gap: 72px;
  align-items: start;
}
.parabilis-about .pab-band p {
  margin: 0 0 28px;
  font-size: clamp(17px, 1.35vw, 22px);
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.88);
}
.parabilis-about .pab-band h2 {
  margin: 6px 0 0;
  font-size: clamp(30px, 2.6vw, 44px);
  line-height: 1.15;
}

/* About hero: slightly tighter height, copy block max-width capped so
   the paragraph doesn't wrap awkwardly. */
.parabilis-about .pab-hero {
  min-height: 620px;
}
.parabilis-about .pab-hero .subpage-hero__copy {
  min-height: 620px;
  padding-top: 156px;
  padding-bottom: 96px;
}

/* About team-CTA: kill the centred-grid spacer above the headline so
   the eyebrow sits closer to the divider line, and the headline
   doesn't have a giant whitespace orphan above it. */
.parabilis-about .pab-team-cta {
  padding-top: clamp(72px, 6vw, 112px);
  padding-bottom: clamp(48px, 4.5vw, 76px);
}
.parabilis-about .pab-team-cta__grid {
  padding-top: 40px;
}
.parabilis-about .pab-team-cta h2 {
  font-size: clamp(34px, 3vw, 52px);
}

/* About pager: tighter padding, stronger link weight, divider between
   prev/next so the tan strip reads as intentional navigation, not
   accidental footer content. */
.parabilis-about .pab-pager {
  padding: clamp(24px, 2.5vw, 36px) 0;
}
.parabilis-about .pab-pager__inner {
  position: relative;
}
.parabilis-about .pab-pager__inner::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 1px;
  height: 56%;
  background: rgba(0, 44, 68, 0.22);
}
.parabilis-about .pab-pager__label {
  font-weight: 600;
  font-size: clamp(22px, 2vw, 32px);
}
.parabilis-about .pab-pager__item:hover .pab-pager__label {
  text-decoration: underline;
}
@media (max-width: 980px) {
  .parabilis-about .pab-pager__inner::before { display: none; }
}

/* About final-cta: small bottom-padding so the gap between pager and
   final-cta reads as a deliberate seam, not two stacked panels. */
.parabilis-about .pab-final-cta {
  padding: clamp(80px, 7vw, 124px) 0;
}

/* --- Final-CTA contrast (all sub-pages): headline must be solid #fff
   with a subtle shadow over the gradient bubble bg. Audit flagged
   this on /insights/ and /contact/. --- */
body.page:not(.home) .final-cta h2,
body.page:not(.home) .final-cta p,
body.page:not(.home) .pab-final-cta h2,
body.page:not(.home) .pab-final-cta p {
  color: #fff !important;
  text-shadow: 0 2px 14px rgba(0, 18, 32, 0.28);
}
body.page:not(.home) .final-cta,
body.page:not(.home) .pab-final-cta {
  background:
    linear-gradient(90deg, rgba(0, 44, 68, 0.55), rgba(0, 44, 68, 0.25)),
    url("assets/figma/07-homepage-pages-home-page-body-ctas-fmpc-cta-bg-rectangle-1.png")
      center / cover;
}
body.page:not(.home) .final-cta .primary-button,
body.page:not(.home) .pab-final-cta .primary-button {
  background: #fff;
  color: #002c44;
  font-weight: 600;
  padding: 16px 32px;
  border-radius: 6px;
}
body.page:not(.home) .final-cta .primary-button:hover,
body.page:not(.home) .pab-final-cta .primary-button:hover {
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 4px 14px rgba(0, 18, 32, 0.18);
}

/* --- Contact page refinements: form + intro into a proper 2-col
   layout, narrower hero copy, form field consistency, button promotion.
   Audit flagged the form layout as broken and the inputs as too narrow. --- */
.parabilis-contact .contact-hero {
  min-height: 480px;
}
.parabilis-contact .contact-hero h1 {
  max-width: 720px;
}
.parabilis-contact .contact-hero p {
  max-width: 580px;
  font-size: clamp(17px, 1.3vw, 22px);
  line-height: 1.5;
}
.parabilis-contact .contact-form-section {
  padding: clamp(56px, 5vw, 88px) 0 clamp(72px, 6vw, 112px);
}
.parabilis-contact .contact-form-section__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 56px;
  align-items: start;
  grid-auto-flow: row;
}
/* Explicit placement: intro on the left, form on the right. Without
   this, an upstream rule was visually swapping them, producing a
   broken "form in left column / intro in right" layout with vertical
   stacking. */
.parabilis-contact .contact-form-section__intro {
  grid-column: 1;
  grid-row: 1;
  padding-top: 8px;
}
.parabilis-contact .contact-form-section__form {
  grid-column: 2;
  grid-row: 1;
}
.parabilis-contact .contact-form-section__intro .eyebrow {
  display: block;
  margin: 0 0 14px;
  color: #0070c0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.parabilis-contact .contact-form-section__intro h2 {
  margin: 0 0 18px;
  font-size: clamp(28px, 2.2vw, 38px);
  line-height: 1.18;
  letter-spacing: -0.02em;
}
.parabilis-contact .contact-form-section__intro p {
  margin: 0 0 24px;
  font-size: 17px;
  line-height: 1.55;
  color: #4a5663;
  max-width: 520px;
}
.parabilis-contact .contact-form-section__perks {
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
}
.parabilis-contact .contact-form-section__perks li {
  position: relative;
  padding-left: 28px;
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 1.45;
  color: #2a3744;
}
.parabilis-contact .contact-form-section__perks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 12px;
  height: 12px;
  background: #0070c0;
  border-radius: 50%;
}
/* --- Gravity Forms styling (lead form swap 2026-05-12) ---
   The Contact page now renders [gravityform id=1]. The CSS below
   matches Gravity's actual DOM (.gform_wrapper -> form -> ul.gform_fields
   -> li.gfield -> label + .ginput_container > input/select/textarea).
   We use the parabilis-leadform__row--split class added per-field to
   pair name+email and company+phone into 2-column rows on desktop.

   Outer __form wrapper holds the card; .gform_wrapper inside is
   transparent so there is no double-card. */
.parabilis-contact .contact-form-section__form {
  background: #fff;
  border: 1px solid rgba(0, 44, 68, 0.12);
  border-radius: 10px;
  padding: clamp(28px, 3vw, 44px) clamp(28px, 3vw, 44px) clamp(20px, 2vw, 32px);
  box-shadow: 0 6px 24px rgba(0, 18, 32, 0.06);
}
.parabilis-contact .contact-form-section__form .gform_wrapper {
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
.parabilis-contact .contact-form-section__form .gform_wrapper form {
  margin: 0;
}
/* Field list: turn the gform <ul> into a grid container so we can pair
   .parabilis-leadform__row--split fields into 2-column rows. Each li
   defaults to spanning both columns. */
.parabilis-contact .contact-form-section__form .gform_fields {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 16px 18px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.parabilis-contact .contact-form-section__form .gform_fields .gfield {
  grid-column: 1 / -1;
  margin: 0;
}
.parabilis-contact .contact-form-section__form .gform_fields .parabilis-leadform__row--split {
  grid-column: span 1;
}
/* Section break ('Tell us about the contract'): full-width, with a
   subtle hairline + small eyebrow above so it acts as a visual divider
   inside the card. */
.parabilis-contact .contact-form-section__form .gfield--type-section {
  grid-column: 1 / -1;
  margin: 12px 0 4px;
  padding-top: 18px;
  border-top: 1px solid rgba(0, 44, 68, 0.12);
}
.parabilis-contact .contact-form-section__form .gfield--type-section .gsection_title,
.parabilis-contact .contact-form-section__form .gfield--type-section .gfield_label {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #002c44;
  margin: 0 0 6px;
}
.parabilis-contact .contact-form-section__form .gfield--type-section .gsection_description {
  font-size: 14px;
  color: #4a5663;
  margin: 0 0 4px;
}
/* Labels */
.parabilis-contact .contact-form-section__form .gfield_label {
  display: block;
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 500;
  color: #002c44;
  letter-spacing: 0.01em;
}
.parabilis-contact .contact-form-section__form .gfield_required {
  margin-left: 4px;
  color: #0070c0;
}
.parabilis-contact .contact-form-section__form .gfield_required_asterisk {
  font-weight: 600;
}
/* Inputs / textareas / selects share a single visual treatment */
.parabilis-contact .contact-form-section__form input[type="text"],
.parabilis-contact .contact-form-section__form input[type="email"],
.parabilis-contact .contact-form-section__form input[type="tel"],
.parabilis-contact .contact-form-section__form input[type="url"],
.parabilis-contact .contact-form-section__form input[type="number"],
.parabilis-contact .contact-form-section__form textarea,
.parabilis-contact .contact-form-section__form select {
  width: 100% !important;
  max-width: none !important;
  padding: 12px 14px;
  border: 1px solid #d3dbe5;
  border-radius: 6px;
  font-size: 15px;
  font-family: inherit;
  background: #fff;
  color: #002c44;
  box-sizing: border-box;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.parabilis-contact .contact-form-section__form textarea {
  min-height: 110px;
  resize: vertical;
}
.parabilis-contact .contact-form-section__form select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='%23002c44' d='M6 8L0 0h12z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 10px 7px;
  padding-right: 36px;
}
.parabilis-contact .contact-form-section__form input:focus,
.parabilis-contact .contact-form-section__form textarea:focus,
.parabilis-contact .contact-form-section__form select:focus {
  outline: none;
  border-color: #0070c0;
  box-shadow: 0 0 0 3px rgba(0, 112, 192, 0.18);
}
/* Phone field — Gravity wraps the input in a div with extra
   "instruction" small text we don't want shown. */
.parabilis-contact .contact-form-section__form .gfield_phone_instructions,
.parabilis-contact .contact-form-section__form .gfield_description.instruction {
  display: none;
}
/* Consent checkbox row */
.parabilis-contact .contact-form-section__form .gfield--type-checkbox {
  margin-top: 8px;
}
.parabilis-contact .contact-form-section__form .gfield--type-checkbox .gfield_label {
  display: none;
}
.parabilis-contact .contact-form-section__form .gfield_checkbox label {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.45;
  color: #4a5663;
  cursor: pointer;
}
.parabilis-contact .contact-form-section__form .gfield_checkbox input[type="checkbox"] {
  margin-top: 2px;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  accent-color: #0070c0;
}
.parabilis-contact .contact-form-section__form .gfield_checkbox a {
  color: #0070c0;
  text-decoration: underline;
}
/* Submit footer */
.parabilis-contact .contact-form-section__form .gform_footer {
  grid-column: 1 / -1;
  margin: 12px 0 0;
  padding: 0;
}
.parabilis-contact .contact-form-section__form .gform_button {
  display: inline-block;
  padding: 14px 32px;
  font-size: 16px;
  font-weight: 600;
  background: #0070c0;
  color: #fff;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  transition: background 180ms ease;
}
.parabilis-contact .contact-form-section__form .gform_button:hover {
  background: #005a9c;
}
/* Validation / errors */
.parabilis-contact .contact-form-section__form .gfield_validation_message {
  margin-top: 6px;
  padding: 8px 10px;
  background: rgba(220, 38, 38, 0.08);
  color: #b91c1c;
  border-radius: 4px;
  font-size: 13px;
}
.parabilis-contact .contact-form-section__form .gform_validation_errors {
  margin: 0 0 16px;
  padding: 14px 16px;
  background: rgba(220, 38, 38, 0.08);
  border-left: 3px solid #b91c1c;
  color: #b91c1c;
  border-radius: 4px;
}
/* Confirmation message after submit */
.parabilis-contact .contact-form-section__form .gform_confirmation_wrapper {
  padding: 28px 32px;
  background: rgba(0, 112, 192, 0.06);
  border: 1px solid rgba(0, 112, 192, 0.15);
  border-radius: 8px;
  color: #002c44;
}
.parabilis-contact .contact-form-section__form .parabilis-leadform__success h3 {
  margin: 0 0 8px;
  font-size: 22px;
  color: #002c44;
}
.parabilis-contact .contact-form-section__form .parabilis-leadform__success p {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: #4a5663;
}
@media (max-width: 700px) {
  .parabilis-contact .contact-form-section__form .gform_fields {
    grid-template-columns: 1fr;
  }
  .parabilis-contact .contact-form-section__form .gform_fields .parabilis-leadform__row--split {
    grid-column: 1 / -1;
  }
}
.parabilis-contact .contact-form-section__form label {
  display: block;
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #002c44;
  letter-spacing: 0.01em;
}
.parabilis-contact .contact-form-section__form input[type="text"],
.parabilis-contact .contact-form-section__form input[type="email"],
.parabilis-contact .contact-form-section__form input[type="tel"],
.parabilis-contact .contact-form-section__form input[type="url"],
.parabilis-contact .contact-form-section__form input[type="number"],
.parabilis-contact .contact-form-section__form textarea,
.parabilis-contact .contact-form-section__form select {
  width: 100%;
  max-width: none;
  padding: 12px 14px;
  border: 1px solid #d3dbe5;
  border-radius: 6px;
  font-size: 15px;
  font-family: inherit;
  background: #fff;
  box-sizing: border-box;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.parabilis-contact .contact-form-section__form select {
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='%23002c44' d='M6 8L0 0h12z'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 10px 7px;
  padding-right: 36px;
}
.parabilis-contact .contact-form-section__form input:focus,
.parabilis-contact .contact-form-section__form textarea:focus,
.parabilis-contact .contact-form-section__form select:focus {
  outline: none;
  border-color: #0070c0;
  box-shadow: 0 0 0 3px rgba(0, 112, 192, 0.18);
}
.parabilis-contact .contact-form-section__form fieldset {
  border: 0;
  padding: 0;
  margin: 24px 0 12px;
}
.parabilis-contact .contact-form-section__form fieldset legend {
  padding: 0;
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 600;
  color: #002c44;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.parabilis-contact .contact-form-section__form .wpcf7-submit,
.parabilis-contact .contact-form-section__form input[type="submit"] {
  display: inline-block;
  margin-top: 4px;
  padding: 14px 32px;
  font-size: 16px;
  font-weight: 600;
  background: #0070c0;
  color: #fff;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  transition: background 180ms ease;
}
.parabilis-contact .contact-form-section__form .wpcf7-submit:hover,
.parabilis-contact .contact-form-section__form input[type="submit"]:hover {
  background: #005a9c;
}
.parabilis-contact .contact-alt {
  background: #f4f6f9;
  padding: clamp(56px, 5vw, 88px) 0;
}
.parabilis-contact .contact-alt__inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px;
  align-items: start;
  grid-auto-flow: row;
}
/* Explicit grid placement — the auto-placement algorithm was starting
   items in column 2 (unclear why; possibly a Salient pseudo-element
   inserted into the grid). Forcing explicit columns guarantees a clean
   3-up row. */
.parabilis-contact .contact-alt article:nth-of-type(1) { grid-column: 1; grid-row: 1; }
.parabilis-contact .contact-alt article:nth-of-type(2) { grid-column: 2; grid-row: 1; }
.parabilis-contact .contact-alt article:nth-of-type(3) { grid-column: 3; grid-row: 1; }
.parabilis-contact .contact-alt article {
  padding: 8px 0;
}
.parabilis-contact .contact-alt .eyebrow {
  display: block;
  margin: 0 0 10px;
  color: #0070c0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.parabilis-contact .contact-alt h3 {
  margin: 0 0 10px;
  font-size: 22px;
  line-height: 1.3;
  color: #002c44;
}
.parabilis-contact .contact-alt p {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  color: #4a5663;
}
.parabilis-contact .contact-alt a {
  color: #0070c0;
  text-decoration: underline;
}
@media (max-width: 900px) {
  .parabilis-contact .contact-form-section__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  /* When the grid collapses to a single column, the explicit
     grid-column:1 / grid-column:2 placements above force the form into
     an implicit second column.  Reset them so the form stacks under
     the intro instead. */
  .parabilis-contact .contact-form-section__intro,
  .parabilis-contact .contact-form-section__form {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  .parabilis-contact .contact-alt__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  /* Reset explicit grid-column placements on the alt articles so they
     stack in a single column instead of being forced into implicit
     columns 2 and 3 (same trap the contact-form-section had). */
  .parabilis-contact .contact-alt article:nth-of-type(1),
  .parabilis-contact .contact-alt article:nth-of-type(2),
  .parabilis-contact .contact-alt article:nth-of-type(3) {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
}

/* --- Insights page refinements: tighter hero, 3-col card grid,
   eyebrow as micro-label, kill featured-section right empty column. --- */
.parabilis-insights .subpage-hero,
body.page-id-insights .subpage-hero,
body.parent-pageid-insights .subpage-hero {
  min-height: 460px;
}
body.page:not(.home) .insights-featured,
body.page:not(.home) .insights-intro {
  padding: clamp(56px, 4.5vw, 88px) 0 clamp(32px, 3vw, 48px);
}
body.page:not(.home) .insights-featured .container,
body.page:not(.home) .insights-intro .container {
  display: block;
  max-width: 920px;
  text-align: left;
}
body.page:not(.home) .insights-featured h2,
body.page:not(.home) .insights-intro h2 {
  font-size: clamp(28px, 2.4vw, 40px);
  line-height: 1.16;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}
body.page:not(.home) .insights-featured p,
body.page:not(.home) .insights-intro p {
  max-width: 720px;
  font-size: 17px;
  line-height: 1.55;
}
body.page:not(.home) .insights-grid,
body.page:not(.home) .post-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 32px;
  padding: clamp(32px, 3vw, 56px) 0 clamp(64px, 5vw, 96px);
}
body.page:not(.home) .insights-grid article,
body.page:not(.home) .post-grid article,
body.page:not(.home) .insights-grid .post-card {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
body.page:not(.home) .insights-grid article h3,
body.page:not(.home) .post-grid article h3,
body.page:not(.home) .insights-grid .post-card h3 {
  font-size: 20px;
  line-height: 1.3;
  margin: 16px 0 10px;
}
body.page:not(.home) .insights-grid .category,
body.page:not(.home) .post-grid .category,
body.page:not(.home) .insights-grid .post-eyebrow {
  font-size: 12px;
  font-weight: 600;
  color: #0070c0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
  display: block;
}
@media (max-width: 1100px) {
  body.page:not(.home) .insights-grid,
  body.page:not(.home) .post-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 700px) {
  body.page:not(.home) .insights-grid,
  body.page:not(.home) .post-grid {
    grid-template-columns: 1fr !important;
  }
}

/* --- Services & Products page refinements: tame the giant
   inter-section padding that wpautop+default vc_row settings leave
   behind, normalize stat row alignment, and force 3-up grids to stay
   3-up at desktop widths so the third item doesn't drop alone. --- */
body.page-id-services .parabilis-page-wrap section,
body.page-id-products .parabilis-page-wrap section,
body.page:not(.home) .parabilis-page-wrap > section {
  padding-top: clamp(72px, 6vw, 112px);
  padding-bottom: clamp(72px, 6vw, 112px);
}
body.page-id-services .parabilis-page-wrap .subpage-hero,
body.page-id-products .parabilis-page-wrap .subpage-hero,
body.page:not(.home) .parabilis-page-wrap > .subpage-hero {
  padding-top: 0;
  padding-bottom: 0;
}
body.page-id-services .parabilis-page-wrap .final-cta,
body.page-id-products .parabilis-page-wrap .final-cta,
body.page:not(.home) .parabilis-page-wrap > .final-cta {
  padding-top: clamp(96px, 8vw, 156px);
  padding-bottom: clamp(96px, 8vw, 156px);
}
/* 3-up grid recovery: force `repeat(3, 1fr)` on any row that the
   audits flagged as having one item drop alone. The class names vary
   across home/services/products so we target a few common patterns. */
body.page:not(.home) .product-trio,
body.page:not(.home) .product-trio__inner,
body.page:not(.home) .services-trio,
body.page:not(.home) .three-up,
body.page:not(.home) .stat-row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: clamp(28px, 3vw, 56px);
  align-items: start;
}
@media (max-width: 1100px) {
  body.page:not(.home) .product-trio,
  body.page:not(.home) .product-trio__inner,
  body.page:not(.home) .services-trio,
  body.page:not(.home) .three-up,
  body.page:not(.home) .stat-row {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 700px) {
  body.page:not(.home) .product-trio,
  body.page:not(.home) .product-trio__inner,
  body.page:not(.home) .services-trio,
  body.page:not(.home) .three-up,
  body.page:not(.home) .stat-row {
    grid-template-columns: 1fr !important;
  }
}

/* product-proof grid balance — when there's just paragraph+button on
   the right (no stat or image), make the grid more balanced so the
   left heading column doesn't dominate. Already overridden for
   .parabilis-about above; do the same for products/services. */
body.page-id-products .parabilis-page-wrap .product-proof:not(.product-proof--image) .product-proof__inner,
body.page-id-services .parabilis-page-wrap .product-proof:not(.product-proof--image) .product-proof__inner {
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 64px;
}

/* Header on sub-pages — explicit override for any page that has a
   light hero (Contact most notably). The default transparent header
   relies on the dark hero behind it for contrast. Where the hero is
   light, force the header into its "scrolled" dark-on-light state by
   giving the header bar a translucent backdrop so the white logo +
   nav text are still legible on lighter portions of any hero image. */
body.page:not(.home) #header-outer.transparent {
  background: linear-gradient(180deg, rgba(0, 22, 38, 0.45), rgba(0, 22, 38, 0)) !important;
}
body.page:not(.home) #header-outer.transparent .sf-menu > li > a {
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
}

/* ─────────────────────────────────────────────────────────────────────
   ABOUT PAGE — 3 dark-band refinement
   ─────────────────────────────────────────────────────────────────────
   Per VLM audit (migrations/about/audit-refinement-2.md, BLOCKER):
   the Our Story / Who We Support / Where We Work sections were a
   2-col grid where the LEFT col held body + CTA and the RIGHT col
   held eyebrow + heading. Visually this read as "broken/missing
   asset" because each side had a huge empty quadrant relative to
   the other. The fix is option (b) from the audit: collapse to a
   SINGLE centered column (max-width ~720) so eyebrow → heading →
   body → CTA stack as one cohesive reading unit.
   ───────────────────────────────────────────────────────────────── */

/* Stack the two inner <div>s vertically and center the whole stack
   in a ~720 max-width frame. The first <div> still carries the
   eyebrow + h2; the second carries body + CTA. With single column
   they read top→bottom as expected. */
.parabilis-about .pab-band .product-proof__inner {
  grid-template-columns: minmax(0, 1fr) !important;
  max-width: 720px !important;
  margin: 0 auto !important;
  gap: 28px !important;
  align-items: start !important;
}

/* Tighter section padding — the 162-px top/bottom default was making
   each band ~700 px tall and the three of them stacked were a giant
   wall. clamp(80, 8vw, 120) keeps them readable but proportional. */
.parabilis-about .pab-band {
  padding: clamp(80px, 8vw, 120px) 0 !important;
}

/* Tiny visual rhythm: a 1-px ivory hairline between the bands so the
   user can see where one ends and the next begins, even with all 3
   sharing the same navy overlay. Skip on the FIRST band so the seam
   only appears between bands 2/3 and 3/2. */
.parabilis-about .pab-band + .pab-band {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* Heading + body + small refinement to match the new single-col flow */
.parabilis-about .pab-band .product-proof__inner small {
  display: block;
  margin: 0 0 18px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}
.parabilis-about .pab-band .product-proof__inner h2 {
  margin: 0 0 28px !important;
  font-size: clamp(32px, 3vw, 52px) !important;
  line-height: 1.15 !important;
}
.parabilis-about .pab-band .product-proof__inner > div:first-child {
  /* eyebrow + heading pair — no bottom margin since outer grid gap
     already provides spacing to the next stacked div */
  margin: 0;
}
.parabilis-about .pab-band .product-proof__inner > div:last-child p {
  /* body — bump contrast to the WCAG-friendly value the audit asked
     for (rgba 0.9 on the dark overlay clears the 4.5:1 ratio) and
     widen the line-length so it doesn't feel cramped. */
  margin: 0 0 32px !important;
  max-width: 600px !important;
  font-size: clamp(18px, 1.35vw, 22px) !important;
  line-height: 1.5 !important;
  color: rgba(255, 255, 255, 0.90) !important;
}

/* CTAs on the dark bands — the audit flagged the ghost-button as low
   visibility on the busy bg. Promote to a filled white button so the
   primary action reads clearly. Keep the same hover behavior pattern
   (subtle inversion) for affordance. */
.parabilis-about .pab-band .ghost-button.ghost-button--light {
  background: #fff !important;
  color: #002c44 !important;
  border-color: #fff !important;
  font-weight: 600;
  padding: 14px 30px;
}
.parabilis-about .pab-band .ghost-button.ghost-button--light:hover {
  background: rgba(255, 255, 255, 0.88) !important;
  color: #002c44 !important;
}

/* Mobile — single column already, but tighten the max-width frame to
   the viewport gutters so the stack reads naturally on small screens.
   Salient's responsive.css has a high-specificity rule that pins
   `.container` to 880 px below 1000 px viewport (so it can use horiz
   scroll on tablets). We have to escape that by setting BOTH width
   AND min-width on the inner. Use body-level prefix for specificity. */
@media (max-width: 999px) {
  body.parabilis-about .pab-band .container.product-proof__inner,
  body.page-id-7 .pab-band .container.product-proof__inner {
    max-width: none !important;
    width: auto !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}

/* ─── About hero refinement (audit MAJOR) ────────────────────────────
   The hero CTA "Start a conversation" was a thin ghost outline over
   a busy photo — promote to filled white pill so it reads as the
   primary action. Also add ~16 px to the top padding so the eyebrow
   has room above the transparent header band. */
.parabilis-about .pab-hero .ghost-button {
  background: #fff !important;
  color: #002c44 !important;
  border-color: #fff !important;
  font-weight: 600;
  padding: 14px 30px;
}
.parabilis-about .pab-hero .ghost-button:hover {
  background: rgba(255, 255, 255, 0.88) !important;
  color: #002c44 !important;
}
.parabilis-about .pab-hero .subpage-hero__copy {
  padding-top: 172px !important;
}

/* ─── About pager refinement (audit MINOR) ───────────────────────────
   The tan/beige Previous/Next strip clashed with the navy/white
   palette. Restyle to white-on-navy hairline strip so it reads as
   site-native navigation. */
.parabilis-about .pab-pager {
  background: #fff !important;
  border-top: 1px solid rgba(0, 44, 68, 0.10);
  border-bottom: 1px solid rgba(0, 44, 68, 0.10);
}
.parabilis-about .pab-pager__item {
  color: #002c44 !important;
}
.parabilis-about .pab-pager__direction {
  color: rgba(0, 44, 68, 0.55) !important;
}

/* ─── About "Who We Are" team-CTA refinement (audit MINOR) ───────────
   The 1-px hairline between the eyebrow and the heading was making
   the eyebrow look like it belonged to the band ABOVE instead of
   the section it actually anchors. Remove the divider and tighten
   the eyebrow→heading margin so they read as one unit. */
.parabilis-about .pab-team-cta__grid {
  border-top: 0 !important;
  padding-top: 0 !important;
}
.parabilis-about .pab-team-cta .eyebrow {
  margin-bottom: 16px !important;
}

/* ============================================================
   Shared listing/card primitive (.psh-listing-grid / .psh-listing-card)
   Used by Insights, Podcast, Events, Whitepapers, Careers.
   3-col @ wide, 2-col @ 980, 1-col @ 680. Card = image header + body
   (eyebrow, title, meta, link).  No JS, no Salient shortcode coupling.
   ============================================================ */
.psh-listing {
  background: #fff;
  padding: clamp(72px, 7vw, 132px) 0;
}
.psh-listing--alt {
  background: #f4f6f8;
}
.psh-listing__head {
  max-width: 760px;
  margin: 0 auto clamp(40px, 4vw, 72px);
  text-align: center;
}
.psh-listing__head .eyebrow {
  display: block;
  margin: 0 0 14px;
  color: rgba(0, 44, 68, 0.55);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.psh-listing__head h2 {
  margin: 0 0 18px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(34px, 3vw, 56px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #002c44;
}
.psh-listing__head p {
  margin: 0;
  color: rgba(0, 44, 68, 0.7);
  font-size: clamp(17px, 1.25vw, 20px);
  line-height: 1.55;
}
.psh-listing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.psh-listing-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(0, 44, 68, 0.09);
  border-radius: 14px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.psh-listing-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 48px rgba(0, 44, 68, 0.12);
  border-color: rgba(0, 44, 68, 0.18);
}
.psh-listing-card__media {
  aspect-ratio: 16 / 10;
  background: rgba(0, 44, 68, 0.85) center / cover no-repeat;
  background-image: var(--card-bg);
  position: relative;
}
.psh-listing-card__date {
  position: absolute;
  top: 16px;
  left: 16px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background: #fff;
  color: #002c44;
  border-radius: 10px;
  line-height: 1;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  box-shadow: 0 4px 18px rgba(0, 44, 68, 0.2);
}
.psh-listing-card__date strong {
  display: block;
  font-size: 22px;
  font-weight: 700;
}
.psh-listing-card__date span {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.7);
}
.psh-listing-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 26px 28px 30px;
}
.psh-listing-card__eyebrow {
  margin: 0 0 12px;
  color: rgba(0, 44, 68, 0.55);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.psh-listing-card__title {
  margin: 0 0 14px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.5vw, 24px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.015em;
  color: #002c44;
}
.psh-listing-card__excerpt {
  margin: 0 0 22px;
  color: rgba(0, 44, 68, 0.72);
  font-size: 16px;
  line-height: 1.55;
  flex: 1;
}
.psh-listing-card__meta {
  margin: 0 0 18px;
  font-size: 13px;
  color: rgba(0, 44, 68, 0.55);
  letter-spacing: 0.04em;
}
.psh-listing-card__cta {
  margin-top: auto;
  color: #002c44;
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  position: relative;
}
.psh-listing-card__cta::after {
  content: " →";
  transition: margin-left 0.18s ease;
}
.psh-listing-card:hover .psh-listing-card__cta::after {
  margin-left: 6px;
}

@media (max-width: 980px) {
  .psh-listing-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
}
@media (max-width: 680px) {
  .psh-listing-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* ============================================================
   Team grid (.psh-team-grid)
   4-col headshot grid w/ name, title, optional bio + LinkedIn.
   ============================================================ */
.psh-team {
  background: #fff;
  padding: clamp(72px, 7vw, 120px) 0;
}
.psh-team__head {
  max-width: 760px;
  margin: 0 auto clamp(40px, 4vw, 72px);
  text-align: center;
}
.psh-team__head .eyebrow {
  display: block;
  margin: 0 0 14px;
  color: rgba(0, 44, 68, 0.55);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.psh-team__head h2 {
  margin: 0 0 18px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(34px, 3vw, 56px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #002c44;
}
.psh-team__head p {
  margin: 0;
  color: rgba(0, 44, 68, 0.7);
  font-size: clamp(17px, 1.25vw, 20px);
  line-height: 1.55;
}
.psh-team__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 36px 32px;
}
.psh-team__member {
  display: flex;
  flex-direction: column;
}
.psh-team__photo {
  position: relative;
  aspect-ratio: 4 / 5;
  background: linear-gradient(180deg, rgba(0, 44, 68, 0.04), rgba(0, 44, 68, 0.12));
  border-radius: 14px;
  background-image: var(--photo);
  background-size: cover;
  background-position: center top;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
/* Placeholder initials sit centered on top of the gradient photo so
   each card still reads as "a person card" before real headshots land.
   Removed automatically when an actual <img> is dropped into the slot. */
.psh-team__initials {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 500;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.78);
}
.psh-team__name {
  margin: 0 0 4px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 20px;
  font-weight: 600;
  color: #002c44;
  letter-spacing: -0.01em;
}
.psh-team__role {
  margin: 0 0 12px;
  font-size: 14px;
  color: rgba(0, 44, 68, 0.65);
  letter-spacing: 0.04em;
}
.psh-team__bio {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(0, 44, 68, 0.72);
}
.psh-team__links {
  margin: auto 0 0;
  display: flex;
  gap: 12px;
}
.psh-team__linkedin {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 8px;
  border-radius: 999px;
  background: rgba(0, 44, 68, 0.06);
  color: rgba(0, 44, 68, 0.82);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background-color 150ms ease, color 150ms ease;
}
.psh-team__linkedin:hover {
  background: #002c44;
  color: #fff;
}
.psh-team__linkedin svg {
  display: block;
}
.psh-team__linkedin-label {
  line-height: 1;
}
@media (max-width: 1100px) {
  .psh-team__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 820px) {
  .psh-team__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  .psh-team__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   FAQ accordion (.psh-faq-list)
   Native <details>/<summary> — no JS, accessible, keyboard-navigable.
   ============================================================ */
.psh-faq {
  background: #fff;
  padding: clamp(72px, 7vw, 132px) 0;
}
.psh-faq__head {
  max-width: 760px;
  margin: 0 auto clamp(40px, 4vw, 72px);
  text-align: center;
}
.psh-faq__head .eyebrow {
  display: block;
  margin: 0 0 14px;
  color: rgba(0, 44, 68, 0.55);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.psh-faq__head h2 {
  margin: 0 0 18px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(34px, 3vw, 56px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #002c44;
}
.psh-faq-list {
  max-width: 920px;
  margin: 0 auto;
}
.psh-faq-list details {
  border-top: 1px solid rgba(0, 44, 68, 0.12);
  padding: 0;
}
.psh-faq-list details:last-child {
  border-bottom: 1px solid rgba(0, 44, 68, 0.12);
}
.psh-faq-list details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 4px;
  cursor: pointer;
  list-style: none;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(18px, 1.35vw, 22px);
  font-weight: 600;
  line-height: 1.35;
  color: #002c44;
  letter-spacing: -0.005em;
  transition: color 0.18s ease;
}
.psh-faq-list details > summary::-webkit-details-marker {
  display: none;
}
.psh-faq-list details > summary::after {
  content: "+";
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 24px;
  font-weight: 400;
  color: #002c44;
  background: rgba(0, 44, 68, 0.06);
  border-radius: 50%;
  transition: transform 0.22s ease, background 0.22s ease;
}
.psh-faq-list details[open] > summary::after {
  content: "−";
  background: #002c44;
  color: #fff;
}
.psh-faq-list details:hover > summary {
  color: rgba(0, 44, 68, 0.78);
}
.psh-faq-list details > div {
  padding: 0 4px 26px;
  max-width: 760px;
  font-size: 16px;
  line-height: 1.65;
  color: rgba(0, 44, 68, 0.78);
}
.psh-faq-list details > div p {
  margin: 0 0 14px;
}
.psh-faq-list details > div p:last-child {
  margin-bottom: 0;
}

/* ============================================================
   Sub-page hero shared overrides
   Tighten hero+intro spacing on the listing-style sub-pages so the
   hero copy doesn't float in a giant void above the first content row.
   ============================================================ */
body.page-id-8 .subpage-hero,
body.page-id-9 .subpage-hero,
body.page-id-11 .subpage-hero,
body.page-id-12 .subpage-hero,
body.page-id-13 .subpage-hero,
body.page-id-14 .subpage-hero,
body.page-id-15 .subpage-hero {
  padding-bottom: clamp(80px, 7vw, 132px) !important;
}

/* ============================================================
   Clearfix-vs-grid fix
   Salient ships `.container::before / ::after { content:" "; display:table }`
   as a legacy clearfix.  When `.container` is also given `display: grid`,
   those pseudo elements become grid items occupying the first and last
   cells, which pushes real content one column to the right (see Services
   `.stats` / `.service-cards` / `.intro-grid` layouts).
   Suppress the clearfix specifically on the `.container.<grid-class>`
   combos used by the Parabilis page content.
   ============================================================ */
.container.intro-grid::before,
.container.intro-grid::after,
.container.split-copy::before,
.container.split-copy::after,
.container.stats::before,
.container.stats::after,
.container.service-cards::before,
.container.service-cards::after,
.container.feature-cards::before,
.container.feature-cards::after,
.container.insights-grid::before,
.container.insights-grid::after,
.container.invest-inner::before,
.container.invest-inner::after,
.container.product-metrics::before,
.container.product-metrics::after,
.container.product-proof__inner::before,
.container.product-proof__inner::after,
.container.about-team__grid::before,
.container.about-team__grid::after,
.container.contact-main__grid::before,
.container.contact-main__grid::after,
.container.contact-funding__grid::before,
.container.contact-funding__grid::after,
.container.contact-hero__grid::before,
.container.contact-hero__grid::after,
.container.contact-form-section__inner::before,
.container.contact-form-section__inner::after,
.container.contact-form-grid::before,
.container.contact-form-grid::after,
.container.psh-listing-grid::before,
.container.psh-listing-grid::after,
.container.psh-team__grid::before,
.container.psh-team__grid::after,
.container.psh-faq-list::before,
.container.psh-faq-list::after,
.container.psh-detail-body__inner::before,
.container.psh-detail-body__inner::after,
.container.psh-hub-body__inner::before,
.container.psh-hub-body__inner::after,
.container.psh-values-grid__inner::before,
.container.psh-values-grid__inner::after,
.container.psh-offices__grid::before,
.container.psh-offices__grid::after {
  content: none !important;
  display: none !important;
}

/* ============================================================
   Contact page audit-v4 polish (2026-05-15)
   - Center hero copy so it reads as a statement, not a left-floating block
   - Add a "What happens next" 3-step timeline below the perks list so the
     intro column visually balances the (longer) Gravity form column
   - Final-CTA inner constrained to .final-cta__inner for proportional band
   ============================================================ */
.parabilis-contact .contact-hero .subpage-hero__copy {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
  padding-top: 156px;
}
.parabilis-contact .contact-hero .subpage-hero__copy h1 {
  margin-left: auto;
  margin-right: auto;
  max-width: 18ch;
}
.parabilis-contact .contact-hero .subpage-hero__copy > p {
  max-width: 56ch;
  margin-left: auto;
  margin-right: auto;
}

.parabilis-contact .contact-form-section__timeline {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid rgba(0, 44, 68, 0.18);
}
.parabilis-contact .contact-form-section__timeline-title {
  margin: 0 0 22px;
  color: var(--blue);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(14px, 1.05vw, 16px);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.parabilis-contact .contact-form-section__timeline-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 22px;
}
.parabilis-contact .contact-form-section__timeline-list li {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 18px;
  align-items: start;
}
.parabilis-contact .contact-form-section__timeline-step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--ink);
  color: #fff;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.parabilis-contact .contact-form-section__timeline-list li > div {
  font-size: clamp(15px, 1.1vw, 17px);
  line-height: 1.5;
  color: var(--muted);
}
.parabilis-contact .contact-form-section__timeline-list li > div strong {
  display: block;
  margin: 0 0 4px;
  color: var(--ink);
  font-weight: 600;
}

/* Final-CTA inner copy width so the band doesn't read as a giant void
   when the copy is short.  Mirrors the home/about __inner pattern. */
.parabilis-contact .final-cta .final-cta__inner {
  max-width: 920px;
  margin: 0 auto;
  text-align: center;
}
.parabilis-contact .final-cta .final-cta__inner h2 {
  max-width: 22ch;
  margin: 0 auto 18px;
}
.parabilis-contact .final-cta .final-cta__inner p {
  max-width: 64ch;
  margin: 0 auto 30px;
}

@media (max-width: 980px) {
  .parabilis-contact .contact-form-section__timeline-list li {
    grid-template-columns: 44px 1fr;
  }
}

/* ============================================================
   Detail-page placeholder layout (.parabilis-detail)
   Used by /insights/<slug>/, /podcast/<slug>/, /events/<slug>/,
   /whitepapers/<slug>/, /careers/<slug>/.
   Two-column body (article 7fr + sidebar rail 4fr), collapses to
   single column at 900.
   ============================================================ */
.psh-detail-body {
  background: #fff;
  padding: clamp(72px, 7vw, 120px) 0;
}
.psh-detail-body__inner {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(280px, 4fr);
  gap: clamp(48px, 5vw, 96px);
  align-items: start;
}
/* Explicit placement — Salient's main-styles.css sets a `<aside>`-as-
   widget-rail rule somewhere that floats <aside> to column 1 and shoves
   the <article> to column 2. Override here so the article (wider) sits
   on the LEFT and the rail (narrower) sits on the RIGHT. */
.psh-detail-body__copy {
  grid-column: 1;
  grid-row: 1;
}
.psh-detail-body__rail {
  grid-column: 2;
  grid-row: 1;
}
.psh-detail-body__copy {
  color: rgba(0, 44, 68, 0.82);
  font-size: clamp(17px, 1.25vw, 19px);
  line-height: 1.65;
}
.psh-detail-body__lede {
  margin: 0 0 36px;
  padding-bottom: 28px;
  border-bottom: 1px solid rgba(0, 44, 68, 0.12);
  font-size: clamp(20px, 1.5vw, 24px);
  line-height: 1.5;
  color: #002c44;
  font-weight: 500;
}
.psh-detail-body__copy h2 {
  margin: 0 0 18px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(28px, 2.2vw, 38px);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.02em;
  color: #002c44;
}
.psh-detail-body__copy h3 {
  margin: 32px 0 14px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.5vw, 24px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-detail-body__copy p {
  margin: 0 0 18px;
}
.psh-detail-body__copy ul {
  margin: 0 0 24px;
  padding-left: 22px;
}
.psh-detail-body__copy ul li {
  margin: 0 0 10px;
}
.psh-detail-body__cta {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin: 36px 0 0;
  padding-top: 28px;
  border-top: 1px solid rgba(0, 44, 68, 0.12);
}
.psh-detail-body__cta .ghost-button {
  color: #002c44 !important;
  border: 1px solid rgba(0, 44, 68, 0.4) !important;
}
.psh-detail-body__cta .ghost-button:hover {
  background: rgba(0, 44, 68, 0.06) !important;
}

.psh-detail-body__rail {
  display: flex;
  flex-direction: column;
  gap: 22px;
  position: sticky;
  top: 120px;
}
.psh-detail-rail-card {
  padding: 28px 26px 30px;
  background: rgba(0, 44, 68, 0.04);
  border: 1px solid rgba(0, 44, 68, 0.09);
  border-radius: 14px;
}
.psh-detail-rail-card .eyebrow {
  display: block;
  margin: 0 0 10px;
  color: rgba(0, 44, 68, 0.55);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.psh-detail-rail-card h4 {
  margin: 0 0 12px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-detail-rail-card p {
  margin: 0 0 16px;
  font-size: 15px;
  line-height: 1.55;
  color: rgba(0, 44, 68, 0.72);
}
.psh-detail-rail-card__cta {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #002c44;
  text-decoration: none;
}
.psh-detail-rail-card__cta:hover {
  text-decoration: underline;
}
.psh-detail-rail-card--accent {
  background: #002c44;
  border-color: #002c44;
}
.psh-detail-rail-card--accent .eyebrow,
.psh-detail-rail-card--accent p {
  color: rgba(255, 255, 255, 0.7);
}
.psh-detail-rail-card--accent h4 {
  color: #fff;
}
.psh-detail-rail-card--accent .psh-detail-rail-card__cta {
  color: #fff;
}

@media (max-width: 900px) {
  .psh-detail-body__inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .psh-detail-body__copy,
  .psh-detail-body__rail {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
  .psh-detail-body__rail {
    position: static;
  }
}

/* ============================================================
   Hub-page layout (.parabilis-hub)
   Used by /clients/, /news/.  Hero + 4-card grid + final CTA.
   ============================================================ */
.psh-hub-body {
  background: #fff;
  padding: clamp(72px, 7vw, 120px) 0;
}
.psh-hub-body__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}
.psh-hub-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 36px 32px 32px;
  background: rgba(0, 44, 68, 0.04);
  border: 1px solid rgba(0, 44, 68, 0.09);
  border-radius: 16px;
  text-decoration: none;
  color: inherit;
  transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.psh-hub-card:hover {
  transform: translateY(-2px);
  border-color: rgba(0, 44, 68, 0.22);
  background: rgba(0, 44, 68, 0.06);
}
.psh-hub-card__eyebrow {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.55);
}
.psh-hub-card__title {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(22px, 1.7vw, 26px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-hub-card__body {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
  color: rgba(0, 44, 68, 0.72);
}
.psh-hub-card__cta {
  margin-top: auto;
  padding-top: 16px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #0a66e0;
}
@media (max-width: 768px) {
  .psh-hub-body__inner {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

/* ============================================================
   Legal-document layout (.parabilis-legal)
   Used by /privacy/, /terms/, /cookies/.
   Single-column, reading-width article.
   ============================================================ */
.psh-legal-doc {
  background: #fff;
  padding: clamp(72px, 7vw, 120px) 0;
}
.psh-legal-doc__inner {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(0, 44, 68, 0.82);
  font-size: clamp(16px, 1.15vw, 18px);
  line-height: 1.65;
}
.psh-legal-doc__updated {
  margin: 0 0 32px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(0, 44, 68, 0.12);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.5);
}
.psh-legal-doc__inner h2 {
  margin: 36px 0 14px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(22px, 1.7vw, 28px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-legal-doc__inner p {
  margin: 0 0 16px;
}
.psh-legal-doc__inner a {
  color: #0a66e0;
}
.psh-legal-doc__contact {
  margin-top: 40px;
  padding: 22px 24px;
  background: rgba(0, 44, 68, 0.05);
  border: 1px solid rgba(0, 44, 68, 0.09);
  border-radius: 12px;
  font-size: 15px;
}

/* ============================================================
   Client-portal stub layout (.parabilis-portal)
   ============================================================ */
.psh-portal-body {
  background: #fff;
  padding: clamp(72px, 7vw, 120px) 0;
}
.psh-portal-body__inner {
  max-width: 640px;
  margin: 0 auto;
}
.psh-portal-card {
  padding: 40px 36px 36px;
  background: rgba(0, 44, 68, 0.04);
  border: 1px solid rgba(0, 44, 68, 0.09);
  border-radius: 16px;
  text-align: center;
}
.psh-portal-card h2 {
  margin: 0 0 12px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(22px, 1.8vw, 28px);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-portal-card > p {
  margin: 0 0 24px;
  color: rgba(0, 44, 68, 0.7);
  line-height: 1.55;
}
.psh-portal-card__actions {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.psh-portal-card__actions .ghost-button {
  color: #002c44 !important;
  border: 1px solid rgba(0, 44, 68, 0.4) !important;
  background: transparent !important;
}
.psh-portal-card__actions .ghost-button:hover {
  background: rgba(0, 44, 68, 0.06) !important;
}
.psh-portal-card__note {
  margin: 24px 0 0;
  padding-top: 20px;
  border-top: 1px solid rgba(0, 44, 68, 0.12);
  font-size: 14px;
  line-height: 1.55;
  color: rgba(0, 44, 68, 0.6);
}

/* ============================================================
   /about/values/ — mission band + values grid
   ============================================================ */
.psh-values-mission {
  background: #fff;
  padding: clamp(72px, 7vw, 120px) 0 clamp(40px, 4vw, 64px);
}
.psh-values-mission__inner {
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
}
.psh-values-mission__inner .eyebrow {
  display: block;
  margin: 0 0 18px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.55);
}
.psh-values-mission__inner h2 {
  margin: 0 0 22px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(30px, 2.6vw, 44px);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.02em;
  color: #002c44;
}
.psh-values-mission__inner > p {
  margin: 0;
  font-size: clamp(17px, 1.25vw, 19px);
  line-height: 1.6;
  color: rgba(0, 44, 68, 0.72);
}
.section-pad-bottom {
  padding-bottom: clamp(72px, 7vw, 120px);
}
.psh-values-grid__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.psh-value-card {
  padding: 30px 28px 28px;
  background: rgba(0, 44, 68, 0.04);
  border: 1px solid rgba(0, 44, 68, 0.09);
  border-radius: 14px;
}
.psh-value-card__eyebrow {
  margin: 0 0 10px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.55);
}
.psh-value-card__title {
  margin: 0 0 10px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.6vw, 24px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-value-card__body {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(0, 44, 68, 0.72);
}
@media (max-width: 768px) {
  .psh-values-grid__inner {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   /about/history/ — vertical timeline
   ============================================================ */
.psh-timeline-section {
  background: #fff;
  padding: clamp(72px, 7vw, 120px) 0;
}
.psh-timeline__inner {
  max-width: 880px;
  margin: 0 auto;
}
.psh-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}
.psh-timeline::before {
  content: "";
  position: absolute;
  left: 90px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: rgba(0, 44, 68, 0.14);
}
.psh-timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 56px;
  padding: 0 0 40px;
  align-items: start;
}
.psh-timeline__item:last-child {
  padding-bottom: 0;
}
.psh-timeline__item::before {
  content: "";
  position: absolute;
  left: 86px;
  top: 8px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #0a66e0;
  box-shadow: 0 0 0 4px #fff;
}
.psh-timeline__year {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.6vw, 24px);
  font-weight: 600;
  color: #0a66e0;
  line-height: 1;
  letter-spacing: -0.01em;
  text-align: right;
  padding-right: 0;
}
.psh-timeline__title {
  margin: 0 0 10px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.6vw, 24px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-timeline__body p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(0, 44, 68, 0.72);
}
@media (max-width: 768px) {
  .psh-timeline::before {
    left: 6px;
  }
  .psh-timeline__item {
    grid-template-columns: 1fr;
    gap: 4px;
    padding-left: 32px;
  }
  .psh-timeline__item::before {
    left: 0;
    top: 10px;
  }
  .psh-timeline__year {
    text-align: left;
  }
}

/* ============================================================
   /about/locations/ — office cards
   ============================================================ */
.psh-offices {
  background: #fff;
  padding: clamp(72px, 7vw, 120px) 0;
}
.psh-offices__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.psh-office-card {
  padding: 32px 30px 30px;
  background: rgba(0, 44, 68, 0.04);
  border: 1px solid rgba(0, 44, 68, 0.09);
  border-radius: 14px;
}
.psh-office-card__eyebrow {
  margin: 0 0 10px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.55);
}
.psh-office-card__title {
  margin: 0 0 12px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(22px, 1.7vw, 26px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-office-card__body {
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(0, 44, 68, 0.72);
}
.psh-office-card__address {
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid rgba(0, 44, 68, 0.12);
  font-size: 14px;
  line-height: 1.55;
  color: rgba(0, 44, 68, 0.65);
}
@media (max-width: 768px) {
  .psh-offices__grid {
    grid-template-columns: 1fr;
  }
}

/* ===================================================================
 * Figma-pattern listing primitives
 * Used by /insights/, /podcast/, /events/, /whitepapers/, /faq/
 * (rewrite-listing-pages.php).  Anchored to the Insights and Auxiliary
 * pages in the Figma source so the page reads as the design intent
 * rather than the previous "uniform dark grid".
 * =================================================================== */

/* ---- Figma photo hero -------------------------------------------------- */
.psh-photo-hero {
  position: relative;
  min-height: 520px;
  padding: clamp(80px, 8vw, 140px) 0 clamp(60px, 6vw, 100px);
  background-color: #001a2b;
  background-size: cover;
  background-position: center;
  color: #fff;
  overflow: hidden;
}
.psh-photo-hero--tall {
  min-height: 620px;
}
.psh-photo-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(0, 22, 38, 0.62) 0%,
    rgba(0, 22, 38, 0.48) 45%,
    rgba(0, 22, 38, 0.68) 100%);
}
.psh-photo-hero__overlay--strong {
  background: linear-gradient(180deg,
    rgba(0, 18, 32, 0.78) 0%,
    rgba(0, 18, 32, 0.62) 55%,
    rgba(0, 18, 32, 0.82) 100%);
}
.psh-photo-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 920px;
}
.psh-photo-hero__eyebrow {
  margin: 0 0 18px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}
.psh-photo-hero__title {
  margin: 0 0 22px !important;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(40px, 4.6vw, 64px);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.018em;
  color: #fff !important;
  max-width: 14em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.30);
}
.psh-photo-hero__lede {
  margin: 0;
  font-size: clamp(17px, 1.3vw, 20px);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.92) !important;
  max-width: 40em;
}
.psh-photo-hero__eyebrow {
  color: rgba(255, 255, 255, 0.92) !important;
}

/* ---- Figma listing section + heading --------------------------------- */
.psh-figma-listing {
  padding: clamp(72px, 7vw, 120px) 0 clamp(56px, 5vw, 96px);
  background: #fff;
}
.psh-figma-listing + .psh-figma-listing {
  padding-top: clamp(24px, 3vw, 56px);
}
.psh-figma-listing__heading {
  margin: 0 0 24px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.55);
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0, 44, 68, 0.12);
}

/* ---- Filter bar (visual placeholder) --------------------------------- */
.psh-filter-bar {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  margin: 0 0 28px;
  padding: 0;
}
.psh-filter-bar__search {
  position: relative;
  display: flex;
  align-items: center;
}
.psh-filter-bar__search svg {
  position: absolute;
  left: 12px;
  color: rgba(0, 44, 68, 0.55);
  pointer-events: none;
}
.psh-filter-bar__search input {
  width: 100%;
  padding: 12px 14px 12px 38px;
  border: 1px solid rgba(0, 44, 68, 0.16);
  border-radius: 8px;
  background: #fff;
  font-size: 14px;
  color: rgba(0, 44, 68, 0.85);
  font-family: inherit;
}
.psh-filter-bar__search input::placeholder {
  color: rgba(0, 44, 68, 0.45);
}
.psh-filter-bar__actions {
  display: flex;
  gap: 8px;
  align-items: center;
}
.psh-filter-bar__chip,
.psh-filter-bar__filter {
  padding: 11px 16px;
  border: 1px solid rgba(0, 44, 68, 0.16);
  border-radius: 8px;
  background: #fff;
  color: rgba(0, 44, 68, 0.75);
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  cursor: not-allowed;
}
.psh-filter-bar__filter {
  background: #0a66e0;
  color: #fff;
  border-color: #0a66e0;
}
.psh-filter-bar__filter[disabled] {
  opacity: 0.85;
}
@media (max-width: 768px) {
  .psh-filter-bar {
    grid-template-columns: 1fr;
  }
  .psh-filter-bar__actions {
    flex-wrap: wrap;
  }
}

/* ---- Figma listing card (image-top with overlay title) ---------------- */
.psh-figma-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}
.psh-figma-grid--3col {
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.psh-figma-card {
  position: relative;
  display: block;
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  isolation: isolate;
  transition: transform 220ms ease;
  aspect-ratio: 16 / 9;
  min-height: 220px;
}
.psh-figma-card:hover {
  transform: translateY(-2px);
}
.psh-figma-card__media {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-color: #0a1f33;
}
.psh-figma-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(0, 22, 38, 0.05) 0%,
    rgba(0, 22, 38, 0.45) 55%,
    rgba(0, 22, 38, 0.92) 100%);
}
.psh-figma-card__meta-row {
  position: absolute;
  top: 16px;
  left: 18px;
  right: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  z-index: 1;
  color: rgba(255, 255, 255, 0.95);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.psh-figma-card__eyebrow {
  background: rgba(0, 0, 0, 0.35);
  padding: 4px 10px;
  border-radius: 4px;
  backdrop-filter: blur(4px);
}
.psh-figma-card__date {
  color: rgba(255, 255, 255, 0.92);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.psh-figma-card__title {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 1;
  color: #fff;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(16px, 1.2vw, 19px);
  font-weight: 600;
  line-height: 1.32;
  letter-spacing: -0.005em;
}
@media (max-width: 768px) {
  .psh-figma-grid,
  .psh-figma-grid--3col {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

/* ---- Upcoming-event highlight (Insights listing) --------------------- */
.psh-upcoming {
  padding: 0 0 clamp(72px, 7vw, 120px);
  background: #fff;
}
.psh-upcoming__heading {
  margin: 0 0 22px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.55);
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(0, 44, 68, 0.12);
}
.psh-upcoming__card {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 4fr);
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  background: #f5f7fa;
  min-height: 320px;
  transition: transform 220ms ease;
}
.psh-upcoming__card:hover {
  transform: translateY(-2px);
}
.psh-upcoming__media {
  position: relative;
  background-size: cover;
  background-position: center;
  min-height: 280px;
}
.psh-upcoming__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
    rgba(0, 22, 38, 0.15) 0%,
    rgba(0, 22, 38, 0.55) 100%);
}
.psh-upcoming__badge {
  position: absolute;
  top: 18px;
  left: 18px;
  padding: 5px 12px;
  background: #c9ad6e;
  color: #fff;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: 3px;
  z-index: 1;
}
.psh-upcoming__body {
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 3vw, 44px);
  background: #fff;
  gap: 10px;
}
.psh-upcoming__date {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #0a66e0;
}
.psh-upcoming__title {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(22px, 1.8vw, 28px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-upcoming__excerpt {
  font-size: 15px;
  line-height: 1.55;
  color: rgba(0, 44, 68, 0.72);
}
.psh-upcoming__cta {
  margin-top: auto;
  padding-top: 12px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #0a66e0;
}
@media (max-width: 880px) {
  .psh-upcoming__card {
    grid-template-columns: 1fr;
  }
}

/* ---- Podcast hero + featured episode ---------------------------------- */
.psh-podcast-hero {
  position: relative;
  min-height: 520px;
  padding: clamp(80px, 8vw, 140px) 0;
  background-color: #08263e;
  background-size: cover;
  background-position: center;
  color: #fff;
  overflow: hidden;
}
.psh-podcast-hero__overlay {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 80% at 50% 50%, rgba(8, 38, 62, 0.45) 0%, rgba(8, 38, 62, 0.95) 100%),
    linear-gradient(180deg, rgba(8, 38, 62, 0.55) 0%, rgba(8, 38, 62, 0.85) 100%);
}
.psh-podcast-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 880px;
  text-align: center;
  margin: 0 auto;
}
.psh-podcast-hero__eyebrow {
  margin: 0 0 18px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92) !important;
}
.psh-podcast-hero__title {
  margin: 0 0 22px !important;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(40px, 4.6vw, 64px);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.018em;
  color: #fff !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}
.psh-podcast-hero__lede {
  margin: 0 auto;
  font-size: clamp(17px, 1.3vw, 20px);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.92) !important;
  max-width: 40em;
}
.psh-podcast-featured {
  background: #fff;
  padding-top: clamp(72px, 7vw, 120px);
  padding-bottom: clamp(56px, 5vw, 96px);
}
.psh-podcast-featured__inner {
  max-width: 760px;
  margin: 0 auto;
}
.psh-podcast-featured__meta {
  text-align: center;
  margin-bottom: 32px;
}
.psh-podcast-featured__eyebrow {
  display: inline-block;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.55);
  margin-bottom: 14px;
}
.psh-podcast-featured__title {
  margin: 0 0 12px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(28px, 2.4vw, 38px);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.012em;
  color: #002c44;
}
.psh-podcast-featured__date {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: rgba(0, 44, 68, 0.55);
}
.psh-podcast-featured__guest {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px 0;
  border-top: 1px solid rgba(0, 44, 68, 0.10);
  border-bottom: 1px solid rgba(0, 44, 68, 0.10);
  margin: 0 0 28px;
}
.psh-podcast-featured__photo {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.psh-podcast-featured__initials {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 24px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: 0.02em;
}
.psh-podcast-featured__guest-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.psh-podcast-featured__guest-name {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: #002c44;
}
.psh-podcast-featured__guest-role {
  margin: 0;
  font-size: 13px;
  color: rgba(0, 44, 68, 0.62);
}
.psh-podcast-featured__body {
  margin: 0 0 28px;
  font-size: 17px;
  line-height: 1.65;
  color: rgba(0, 44, 68, 0.78);
}
.psh-podcast-featured__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: #0a66e0;
  border: 1px solid #0a66e0;
  color: #fff !important;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-radius: 6px;
  transition: background 200ms ease, transform 200ms ease;
}
.psh-podcast-featured__cta:hover {
  background: #0852b6;
  transform: translateY(-1px);
}
.psh-podcast-featured__cta:after {
  content: "→";
  margin-left: 4px;
}

/* ---- Featured event card (Events listing) ----------------------------- */
.psh-featured-event {
  background: #fff;
  padding-top: clamp(72px, 7vw, 120px);
  padding-bottom: clamp(40px, 4vw, 72px);
}
.psh-featured-event__inner {
  max-width: 1080px;
  margin: 0 auto;
}
.psh-featured-event__card {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 5fr);
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  background: #f5f7fa;
  min-height: 380px;
  transition: transform 220ms ease;
}
.psh-featured-event__card:hover {
  transform: translateY(-2px);
}
.psh-featured-event__media {
  position: relative;
  background-size: cover;
  background-position: center;
  min-height: 280px;
}
.psh-featured-event__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
    rgba(0, 22, 38, 0.20) 0%,
    rgba(0, 22, 38, 0.50) 100%);
}
.psh-featured-event__badge {
  position: absolute;
  top: 18px;
  left: 18px;
  padding: 5px 12px;
  background: #c9ad6e;
  color: #fff;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: 3px;
  z-index: 1;
}
.psh-featured-event__play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #0a66e0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}
.psh-featured-event__body {
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 3vw, 44px);
  background: #fff;
  gap: 12px;
}
.psh-featured-event__eyebrow {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.55);
}
.psh-featured-event__date {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #0a66e0;
}
.psh-featured-event__title {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(24px, 2vw, 30px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-featured-event__excerpt {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(0, 44, 68, 0.74);
}
.psh-featured-event__location {
  font-size: 13px;
  line-height: 1.55;
  color: rgba(0, 44, 68, 0.60);
}
.psh-featured-event__location strong {
  color: rgba(0, 44, 68, 0.85);
  font-weight: 600;
}
.psh-featured-event__cta {
  margin-top: auto;
  padding-top: 8px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #0a66e0;
}
@media (max-width: 880px) {
  .psh-featured-event__card {
    grid-template-columns: 1fr;
  }
  .psh-featured-event__play-icon {
    width: 64px;
    height: 64px;
  }
}

/* ---- Featured report card (Whitepapers listing) ----------------------- */
.psh-featured-report {
  background: #fff;
  padding-top: clamp(72px, 7vw, 120px);
  padding-bottom: clamp(40px, 4vw, 72px);
}
.psh-featured-report__inner {
  max-width: 1080px;
  margin: 0 auto;
}
.psh-featured-report__card {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 5fr);
  border-radius: 8px;
  overflow: hidden;
  text-decoration: none;
  background: #f5f7fa;
  min-height: 380px;
  transition: transform 220ms ease;
}
.psh-featured-report__card:hover {
  transform: translateY(-2px);
}
.psh-featured-report__media {
  position: relative;
  background-size: cover;
  background-position: center;
  min-height: 280px;
}
.psh-featured-report__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
    rgba(0, 22, 38, 0.10) 0%,
    rgba(0, 22, 38, 0.45) 100%);
}
.psh-featured-report__badge {
  position: absolute;
  top: 18px;
  left: 18px;
  padding: 5px 12px;
  background: rgba(255, 255, 255, 0.92);
  color: #0a66e0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  border-radius: 3px;
  z-index: 1;
}
.psh-featured-report__body {
  display: flex;
  flex-direction: column;
  padding: clamp(28px, 3vw, 44px);
  background: #fff;
  gap: 14px;
}
.psh-featured-report__pages {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(0, 44, 68, 0.55);
}
.psh-featured-report__title {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(24px, 2vw, 30px);
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: #002c44;
}
.psh-featured-report__excerpt {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(0, 44, 68, 0.74);
}
.psh-featured-report__cta {
  margin-top: auto;
  padding-top: 8px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #0a66e0;
}
@media (max-width: 880px) {
  .psh-featured-report__card {
    grid-template-columns: 1fr;
  }
}

/* ---- Figma FAQ (dark photo hero + 2-col Q&A) -------------------------- */
.psh-faq-figma {
  background: #fff;
}
.psh-faq-figma__inner {
  max-width: 1080px;
  margin: 0 auto;
}
.psh-faq-row {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(28px, 4vw, 72px);
  padding: clamp(28px, 3vw, 44px) 0;
  border-bottom: 1px solid rgba(0, 44, 68, 0.10);
}
.psh-faq-row:first-child {
  padding-top: 0;
}
.psh-faq-row:last-child {
  border-bottom: 0;
}
.psh-faq-row__q {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.5vw, 24px);
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: -0.005em;
  color: #002c44;
}
.psh-faq-row__a {
  font-size: 16px;
  line-height: 1.7;
  color: rgba(0, 44, 68, 0.78);
}
.psh-faq-row__a p {
  margin: 0 0 14px;
}
.psh-faq-row__a p:last-child {
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .psh-faq-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

/* ---- Generic Salient clearfix suppression for new wrappers ------------ */
.container.psh-faq-figma__inner::before,
.container.psh-faq-figma__inner::after,
.container.psh-podcast-featured__inner::before,
.container.psh-podcast-featured__inner::after,
.container.psh-featured-event__inner::before,
.container.psh-featured-event__inner::after,
.container.psh-featured-report__inner::before,
.container.psh-featured-report__inner::after,
.container.psh-photo-hero__inner::before,
.container.psh-photo-hero__inner::after,
.container.psh-podcast-hero__inner::before,
.container.psh-podcast-hero__inner::after {
  content: none;
  display: none;
}


/* ===================================================================
 * Contact page additions: FAQ accordion + Get-Funding-within-Days card
 * (per the Figma Contact Main Page).
 * =================================================================== */
.contact-faq {
  background: #fff;
  padding-top: clamp(56px, 6vw, 96px);
  padding-bottom: clamp(40px, 4vw, 72px);
}
.contact-faq__inner {
  max-width: 880px;
  margin: 0 auto;
}
.contact-faq__head {
  text-align: center;
  margin-bottom: 40px;
}
.contact-faq__head .eyebrow {
  display: block;
  margin-bottom: 12px;
}
.contact-faq__head h2 {
  margin: 0 0 12px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(28px, 2.4vw, 38px);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.012em;
  color: #002c44;
}
.contact-faq__head p {
  margin: 0 auto;
  max-width: 36em;
  font-size: 16px;
  line-height: 1.55;
  color: rgba(0, 44, 68, 0.70);
}
.contact-faq__list {
  border-top: 1px solid rgba(0, 44, 68, 0.10);
}
.contact-faq__list details {
  border-bottom: 1px solid rgba(0, 44, 68, 0.10);
}
.contact-faq__list details summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 22px 56px 22px 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: #002c44;
  line-height: 1.32;
  letter-spacing: -0.005em;
}
.contact-faq__list details summary::-webkit-details-marker {
  display: none;
}
.contact-faq__list details summary::after {
  content: "+";
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 22px;
  line-height: 1;
  font-weight: 400;
  color: rgba(0, 44, 68, 0.5);
  transition: transform 200ms ease;
}
.contact-faq__list details[open] summary::after {
  content: "−";
  color: #0a66e0;
}
.contact-faq__list details > div {
  padding: 0 0 22px;
  font-size: 16px;
  line-height: 1.7;
  color: rgba(0, 44, 68, 0.78);
}
.contact-faq__list details > div p {
  margin: 0 0 12px;
}
.contact-faq__list details > div p:last-child {
  margin-bottom: 0;
}
.contact-faq__more {
  margin: 28px 0 0;
  text-align: center;
}
.contact-faq__more a {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #0a66e0;
  text-decoration: none;
}
.contact-faq__more a:hover {
  text-decoration: underline;
}

/* Get-Funding-within-Days feature card */
.contact-funding-card {
  background: #f5f7fa;
  padding-top: clamp(56px, 6vw, 96px);
  padding-bottom: clamp(56px, 6vw, 96px);
}
.contact-funding-card__inner {
  max-width: 1080px;
  margin: 0 auto;
}
.contact-funding-card__card {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 24px 64px -28px rgba(0, 44, 68, 0.20);
}
.contact-funding-card__media {
  position: relative;
  min-height: 340px;
  background:
    radial-gradient(110% 60% at 30% 22%, rgba(45, 145, 230, 0.45), transparent 65%),
    linear-gradient(135deg, #0a4475 0%, #08263e 100%);
  overflow: hidden;
}
.contact-funding-card__media-inner {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(72% 56% at 80% 80%, rgba(255, 255, 255, 0.12), transparent 70%),
    radial-gradient(46% 36% at 20% 80%, rgba(201, 173, 110, 0.18), transparent 70%);
  pointer-events: none;
}
.contact-funding-card__body {
  padding: clamp(28px, 3vw, 48px);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.contact-funding-card__eyebrow {
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #0a66e0;
}
.contact-funding-card__body h2 {
  margin: 0;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(24px, 2vw, 32px);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.012em;
  color: #002c44;
}
.contact-funding-card__body p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: rgba(0, 44, 68, 0.74);
}
.contact-funding-card__list {
  list-style: none;
  margin: 4px 0 8px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.contact-funding-card__list li {
  position: relative;
  padding-left: 26px;
  font-size: 15px;
  line-height: 1.55;
  color: rgba(0, 44, 68, 0.78);
}
.contact-funding-card__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #0a66e0;
  box-shadow: 0 0 0 4px rgba(10, 102, 224, 0.16);
}
.contact-funding-card__list strong {
  color: #002c44;
  font-weight: 600;
}
.contact-funding-card__cta {
  align-self: flex-start;
  margin-top: 6px;
  padding: 12px 26px;
  background: #0a66e0;
  color: #fff !important;
  border-radius: 6px;
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background 200ms ease, transform 200ms ease;
}
.contact-funding-card__cta:hover {
  background: #0852b6;
  transform: translateY(-1px);
}
@media (max-width: 880px) {
  .contact-funding-card__card {
    grid-template-columns: 1fr;
  }
  .contact-funding-card__media {
    min-height: 180px;
  }
}

.container.contact-faq__inner::before,
.container.contact-faq__inner::after,
.container.contact-funding-card__inner::before,
.container.contact-funding-card__inner::after {
  content: none;
  display: none;
}

/* ===================================================================
 * Team page (real headshots pass — 2026-05-15)
 *
 * The /team/ and /about/leadership/ pages now render the real
 * Parabilis roster pulled from parabilis.com/about-1/.  The roster
 * is rendered in three groups (Executive Leadership / Leadership /
 * Relationship Management) so the page reads the same way as the
 * live company page.
 *
 * Each .psh-team__photo wraps a real <img class="psh-team__img">,
 * tagged with .psh-team__photo--has-image so the placeholder
 * gradient + initials styling is suppressed.
 * =================================================================== */

/* ---- Real-photo styling ----------------------------------------
 * The headshots pulled from parabilis.com/about-1/ are person-cutouts
 * against a near-white background, sized roughly 3:2 landscape.  We
 * crop them to a 4:5 portrait slot biased toward the face.
 *
 * We override the aspect-ratio + sizing on the IMG itself (rather than
 * relying on `position: absolute` inside the slot) because the slot
 * has display:flex which can fight absolute positioning in some
 * browsers and inherited theme stylesheets.
 */
.psh-team__photo--has-image {
  background: #ffffff !important;
  background-image: none !important;
  aspect-ratio: auto !important;   /* size from img, not from slot */
  padding: 0 !important;
  display: block !important;
}
.psh-team__img,
.psh-team__photo--has-image .psh-team__img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: cover !important;
  object-position: center 18% !important; /* bias toward face */
  border-radius: 14px !important;
  margin: 0 !important;
  max-width: none !important;
  background: #ffffff;
}
/* When a real image is present, hide the placeholder initials. */
.psh-team__photo--has-image .psh-team__initials {
  display: none !important;
}

/* ---- Group sectioning ------------------------------------------ */
.psh-team__group {
  margin: 0 0 clamp(56px, 5vw, 88px);
}
.psh-team__group:last-child {
  margin-bottom: 0;
}
.psh-team__group-heading {
  margin: 0 0 clamp(28px, 2.4vw, 40px);
  padding: 0 0 14px;
  border-bottom: 1px solid rgba(0, 44, 68, 0.12);
  font-family: "Poppins", "Roboto", Arial, sans-serif;
  font-size: clamp(20px, 1.6vw, 26px);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #002c44;
}

/* ---- Per-group column counts ----------------------------------- */
.psh-team__grid--4col { grid-template-columns: repeat(4, 1fr); }
.psh-team__grid--5col { grid-template-columns: repeat(5, 1fr); }
.psh-team__grid--3col { grid-template-columns: repeat(3, 1fr); }
.psh-team__grid--2col {
  grid-template-columns: repeat(2, minmax(0, 320px));
  justify-content: start;
}

/* Slightly tighter type inside the 5-col Leadership row so the
   cards don't overflow vertically with the long verbatim bios. */
.psh-team__grid--5col .psh-team__bio {
  font-size: 13px;
  line-height: 1.5;
}
.psh-team__grid--5col .psh-team__name {
  font-size: 18px;
}

/* Narrow-breakpoint stacking */
@media (max-width: 1180px) {
  .psh-team__grid--5col { grid-template-columns: repeat(3, 1fr); }
  .psh-team__grid--4col { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .psh-team__grid--5col,
  .psh-team__grid--4col,
  .psh-team__grid--3col,
  .psh-team__grid--2col {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 560px) {
  .psh-team__grid--5col,
  .psh-team__grid--4col,
  .psh-team__grid--3col,
  .psh-team__grid--2col {
    grid-template-columns: 1fr;
  }
}

