/*
 * ============================================================
 * PS CULTURE PAGE — Scoped CSS
 * File: ps-culture.css
 *
 * Wrapper: .psb-culture
 * Enqueue conditionally via functions.php (e.g. is_page('culture') or is_page(ID)).
 *
 * NO CONFLICT with:
 *   pbCareers.css       — scoped under .page-careers
 *   careersTestStyles.css — scoped under .psb-careers
 *   Bootstrap           — psb- prefix avoids all Bootstrap class names
 *   Theme utilities     — theme uses unprefixed names (mybtn, sec-indexed, etc.)
 *
 * Theme cascades that reach inside .psb-culture:
 *   body        font-family Oswald 300, size 1.2em, color #4d4d4f
 *   h1-h3       Trajan Pro 3 weight 600, line-height 1.2
 *   h2          color #00aae7 — overridden per section below
 *   h1-h6       margin 25px 0 15px (992px+: 30px 0 20px)
 *   p           margin 15px 0 25px (992px+: 20px 0 30px)
 *   img         max-width 100%; height auto
 *   a           color #00aae7; hover: color #0054a6
 *   body        overflow: hidden (preloader — already reset in pbCareers.css)
 *
 * Fonts: Trajan Pro 3 (weight 600 only) and Oswald (300/bold)
 *        are enqueued by theme @font-face. No import needed here.
 * ============================================================
 */

/* ---- Scoped box-sizing reset ---- */
.psb-culture *,
.psb-culture *::before,
.psb-culture *::after {
  box-sizing: border-box;
}

/* ---- Brand tokens ---- */
.psb-culture {
  --ps-navy:   #002B55;
  --ps-navy-2: #002D57;
  --ps-blue:   #0054A6;
  --ps-cyan:   #01ABE8;
  --ps-green:  #80BC00;
  --ps-body:   #4C4C4E;
  --ps-light:  #F3F5F7;
  --ps-border: #E9E9E9;
  --ps-wrap:   1200px;
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  color: var(--ps-body);
}

section#myidx-1 {
  padding: 0px;
}

section.sec-banner.coverbk{
  display: none;
}

/* ---- Shared utilities ---- */
.psb-culture .psb-wrap {
  max-width: var(--ps-wrap);
  margin: 0 auto;
  padding: 0 40px;
}

.psb-culture .psb-eyebrow {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 13px;
  letter-spacing: 0.28em;
  color: var(--ps-cyan);
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 0;   /* override theme p { margin: 15px 0 25px } */
  margin-bottom: 14px;
}

.psb-culture .psb-eyebrow::after {
  content: '';
  display: inline-block;
  width: 30px;
  height: 2px;
  background: var(--ps-cyan);
}

.psb-culture .psb-eyebrow--center {
  justify-content: center;
}
.psb-culture .psb-eyebrow--center::after { display: none; }

/* Dash before the text instead of after — used on Our Culture eyebrow */
.psb-culture .psb-eyebrow--before::after {
  display: none; /* suppress the default trailing line */
}
.psb-culture .psb-eyebrow--before::before {
  content: '';
  display: inline-block;
  width: 30px;
  height: 2px;
  background: var(--ps-cyan);
  flex-shrink: 0;
}

/*
 * .psb-btn
 * font-weight 600 matches the only available Trajan Pro 3 @font-face weight.
 * color !important overrides theme a { color: #00aae7 } on <a> elements.
 */
.psb-culture .psb-btn {
  display: inline-block;
  background: var(--ps-cyan);
  color: #fff !important; /* override theme a { color: #00aae7 } */
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;       /* theme @font-face only registers weight 600, not 700 */
  font-size: 16px;
  letter-spacing: -0.01em;
  text-decoration: none;
  padding: 18px 36px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}

.psb-culture .psb-btn:hover {
  background: #019fd6;
  color: #fff !important; /* prevent theme a:hover { color: #0054a6 } */
}

/* Replaces former inline style="margin-top:8px;" on Our Culture CTA */
.psb-culture .psb-btn--top-offset {
  margin-top: 8px;
}

/* ---- Shared two-tone heading span utilities ---- */
.psb-culture .psb-heading--blue { color: #0054A6; }
.psb-culture .psb-heading--cyan  { color: #01ABE8; }

/* ============================================================
   SECTION 1 — Hero / Blueprint Hero
============================================================ */
.psb-culture .psb-hero {
  background-color: var(--ps-navy);
  padding: 70px 0 40px; /* bottom padding sits below photo strip */
  text-align: center;
}

.psb-culture .psb-hero__eyebrow {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 13px;
  letter-spacing: 0.28em;
  color: rgba(255,255,255,0.75);
  text-transform: uppercase;
  display: block;
  margin-top: 0;
  margin-bottom: 20px;
}

/*
 * h1 responsive sizes from theme (1.25em → 2.5em at 992px) would
 * override our clamp value without !important.
 */
.psb-culture .psb-hero__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(44px, 6vw, 76px) !important; /* override theme h1 responsive sizes */
  line-height: 1.05 !important;
  letter-spacing: -0.01em;
  color: #fff;
  margin: 0 0 32px;
}

.psb-culture .psb-hero__title .psb-hero__title--accent {
  color: var(--ps-cyan);
  display: block;
}

.psb-culture .psb-hero__title .psb-hero__line {
  display: block;
}

.psb-culture .psb-hero__cta {
  display: inline-block;
  margin-bottom: 40px;
}

/* ============================================================
   SECTION 2 — Photo strip (inside .psb-hero)
   Photos sit fully within the navy hero, flush to the bottom.
   No overlap trick needed — hero bottom padding provides spacing.
============================================================ */
.psb-culture .psb-photo-strip {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
}

.psb-culture .psb-photo-strip__col {
  aspect-ratio: 2/3;
  border-radius: 12px;
  overflow: hidden;
}

.psb-culture .psb-photo-strip__col img {
  width: 100%;
  height: 100% !important; /* override theme img { height: auto } */
  object-fit: cover;
  object-position: center top; /* keep faces in frame */
  display: block;
  border: 2px solid var(--ps-green);
  border-radius: 12px;
}

/* ============================================================
   SECTION 3 — Our Impact By The Numbers
============================================================ */
.psb-culture .psb-stats {
  background: var(--ps-light);
  padding: 80px 0;
}

/* Figma layout: heading occupies left column, 2x2 stats grid on the right */
.psb-culture .psb-stats__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.psb-culture .psb-stats__header {
  text-align: left;
}

/*
 * Theme h2 cascades as #00aae7. Override to blue.
 */
.psb-culture .psb-stats__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(28px, 3.2vw, 44px) !important; /* override theme h2 responsive sizes */
  color: var(--ps-blue) !important;               /* override theme h2 { color: #00aae7 } */
  margin: 0;
  line-height: 1.15 !important;
}

/* 2x2 grid matching Figma — two stats per row */
.psb-culture .psb-stats__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 36px 24px;
}

.psb-culture .psb-stat {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.psb-culture .psb-stat__number {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(36px, 4vw, 50px) !important;
  letter-spacing: -0.01em;
  color: var(--ps-blue);
  line-height: 1;
}

.psb-culture .psb-stat__label {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--ps-body);
  text-transform: uppercase;
}

/* ============================================================
   SECTION 4 — Our Culture (2-col)
============================================================ */
.psb-culture .psb-our-culture {
  background: #fff;
  padding: 80px 0;
}

.psb-culture .psb-our-culture__inner {
  display: grid;
  grid-template-columns: 1fr 480px;
  gap: 60px;
  align-items: center;
}

/* Inner wrapper prevents wpautop injecting empty <p> between siblings */
.psb-culture .psb-our-culture__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Suppress any empty <p> tags wpautop injects */
.psb-culture .psb-our-culture__content p:empty,
.psb-culture .psb-our-culture__left p:empty {
  display: none;
  margin: 0;
  padding: 0;
}

/* Theme h2 cascades as #00aae7 — override to blue */
.psb-culture .psb-our-culture__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(32px, 3.8vw, 52px) !important;
  color: var(--ps-blue) !important;
  margin: 0 0 20px;
  line-height: 1.05 !important;
  text-align: left;
}

/* Each span on its own line */
.psb-culture .psb-our-culture__title--blue {
  color: #0054A6;
  display: block;
}

.psb-culture .psb-our-culture__title--cyan {
  color: #01ABE8;
  display: block;
}

/* Override theme p margins — <span> used to prevent wpautop wrapping */
.psb-culture .psb-our-culture__text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 15px;
  line-height: 1.65;
  color: var(--ps-body);
  margin: 0 0 16px;
  display: block;
  text-align: left;
}

/* Quote block with left cyan border */
.psb-culture .psb-our-culture__quote {
  border-left: 3px solid var(--ps-cyan);
  margin: 4px 0 24px;
  padding: 4px 0 4px 16px;
}

.psb-culture .psb-our-culture__quote-text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.65;
  color: var(--ps-body);
  margin: 0 0 6px;
  font-style: italic;
  text-align: left;
}

.psb-culture .psb-our-culture__quote-cite {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--ps-cyan);
  text-transform: uppercase;
  font-style: normal;
  display: block;
  text-align: left;
}

/* Clean 2×2 grid — all 4 images equal, no spanning */
.psb-culture .psb-our-culture__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
  height: 440px;
}

.psb-culture .psb-our-culture__photos img {
  width: 100%;
  height: 100% !important; /* override theme img { height: auto } */
  object-fit: cover;
  border-radius: 10px;
  display: block;
}

/* ============================================================
   SECTION 5 — We Build Tomorrow
============================================================ */
.psb-culture .psb-build {
  background: var(--ps-light);
  padding: 80px 0;
}

.psb-culture .psb-build__inner {
  display: grid;
  grid-template-columns: 460px 1fr;
  gap: 60px;
  align-items: center;
}

.psb-culture .psb-build__photo {
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 4/5;
}

.psb-culture .psb-build__photo img {
  width: 100%;
  height: 100% !important; /* override theme img { height: auto } */
  object-fit: cover;
}

/* Block utility — makes title spans stack on separate lines */
.psb-culture .psb-heading--block {
  display: block;
}

/* Inner wrapper prevents wpautop injecting empty <p> between siblings */
.psb-culture .psb-build__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}

/* Suppress any empty <p> tags wpautop injects */
.psb-culture .psb-build__body p:empty,
.psb-culture .psb-build__content p:empty {
  display: none;
  margin: 0;
  padding: 0;
}

/* Theme h2 cascades as #00aae7 — override to blue */
.psb-culture .psb-build__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(40px, 5vw, 64px) !important;
  color: var(--ps-blue) !important; /* fallback; spans override per word */
  margin: 0 0 8px;
  line-height: 1.0 !important;
  text-align: left;
}

/* Divider line under heading */
.psb-culture .psb-build__divider {
  width: 48px;
  height: 4px;
  background: var(--ps-blue);
  margin: 0 0 28px;
  border-radius: 2px;
}

/* <span> used to prevent wpautop wrapping — display: block for paragraph spacing */
.psb-culture .psb-build__text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.7;
  color: var(--ps-body);
  margin: 0 0 20px;
  display: block;
  text-align: left;
}

.psb-culture .psb-build__pillars {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

/*
 * Vertical cyan bar via ::before on <li>.
 * Icon + body sit in a flex row. Label and text use <strong> + <span>
 * so WordPress wpautop cannot inject <p></p> between them.
 */
.psb-culture .psb-build__pillar {
  display: flex;
  gap: 16px;
  align-items: center;
  position: relative;
  padding-left: 22px;
}

.psb-culture .psb-build__pillar::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--ps-green);
  border-radius: 2px;
}

.psb-culture .psb-build__pillar-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  background: #F2F8ED;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Body: label + text stacked */
.psb-culture .psb-build__pillar-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* <strong> — prevents WP empty p injection */
.psb-culture .psb-build__pillar-label {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: 16px !important;
  color: var(--ps-blue);
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1.2;
}

/* <span> for body text — WP won't wrap in <p> */
.psb-culture .psb-build__pillar-text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.5;
  color: var(--ps-body);
  display: block;
}

/* ============================================================
   SECTION 6 — PrimeStar Recognition
============================================================ */
.psb-culture .psb-primestar {
  background: var(--ps-navy);
  padding: 80px 0;
  text-align: center;
}

.psb-culture .psb-primestar__eyebrow {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 13px;
  letter-spacing: 0.28em;
  color: var(--ps-cyan);
  text-transform: uppercase;
  display: block;
  margin-top: 0;
  margin-bottom: 12px;
  text-align: center;
}

/* Theme h2 cascades as #00aae7 — override to white on dark background */
.psb-culture .psb-primestar__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(36px, 4vw, 52px) !important;
  color: #fff !important; /* override theme h2 { color: #00aae7 } */
  margin: 0 0 20px;
  letter-spacing: 0.01em;
}

.psb-culture .psb-primestar__title span {
  color: var(--ps-cyan);
}

/* Override theme p margins */
.psb-culture .psb-primestar__sub {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255,255,255,0.78);
  max-width: 640px;
  margin: 0 auto 14px;
}

.psb-culture .psb-primestar__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  max-width: 1000px;
  margin: 40px auto 0;
  text-align: left;
}

.psb-culture .psb-primestar__card {
  border-radius: 12px;
  padding: 36px;
}

.psb-culture .psb-primestar__card--dark {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(233,233,233,0.2);
}

.psb-culture .psb-primestar__card--light {
  background: #fff;
}

.psb-culture .psb-primestar__card-icon {
  width: 50px;
  height: 50px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.psb-culture .psb-primestar__card-icon img {
  width: 40px;
  height: 40px !important; /* override theme img { height: auto } */
}

/* Theme h3 cascades: Trajan Pro 3, 600. Override size and color. */
.psb-culture .psb-primestar__card-title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: 18px !important;
  letter-spacing: 0.06em;
  color: #fff;
  margin: 0 0 18px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.psb-culture .psb-primestar__card--light .psb-primestar__card-title {
  color: var(--ps-navy);
}

.psb-culture .psb-primestar__card-title-icon {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Override theme p margins */
.psb-culture .psb-primestar__card-text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 17px;
  line-height: 1.65;
  color: rgba(255,255,255,0.8);
  margin: 0 0 20px;
}

.psb-culture .psb-primestar__card--light .psb-primestar__card-text {
  color: var(--ps-body);
}

/* Override theme p margins */
.psb-culture .psb-primestar__card-quote {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-style: italic;
  font-size: 17px; /* matches psb-primestar__card-text size */
  line-height: 1.65;
  color: var(--ps-green);
  margin: 16px 0 0;
}

.psb-culture .psb-primestar__card-list-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 14px;
  color: var(--ps-body);
  line-height: 1.5;
}

.psb-culture .psb-primestar__card-list-icon {
  flex-shrink: 0;
  margin-top: 2px;
}

.psb-culture .psb-primestar__cta {
  display: block;
  width: 100%;
  text-align: center;
  margin-top: 22px;
  background: var(--ps-cyan);
  color: #fff !important; /* override theme a { color: #00aae7 } */
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-decoration: none;
  padding: 16px 24px;
  border-radius: 8px;
  transition: background 0.2s;
}

.psb-culture .psb-primestar__cta:hover {
  background: #019fd6;
  color: #fff !important; /* prevent theme a:hover { color: #0054a6 } */
}

/* ============================================================
   SECTION 7 — The Blueprint (values diagram)
============================================================ */
.psb-culture .psb-blueprint {
  background: #fff;
  padding: 80px 0 100px;
  text-align: center;
  border-top: 1px solid rgba(255,255,255,0.08);
}

.psb-culture .psb-blueprint__eyebrow {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 13px;
  letter-spacing: 0.28em;
  color: var(--ps-cyan);
  text-transform: uppercase;
  display: block;
  margin-top: 0;
  margin-bottom: 12px;
  text-align: center;
}

/* Theme h2 cascades as #00aae7 — override to blue */
.psb-culture .psb-blueprint__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(34px, 4vw, 50px) !important;
  color: var(--ps-blue) !important; /* fallback; spans override per word */
  margin: 0 0 20px;
  letter-spacing: 0.02em;
}

/* Override theme p margins */
.psb-culture .psb-blueprint__sub {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 15px;
  line-height: 1.65;
  color: var(--ps-body);
  max-width: 700px;
  margin: 0 auto 36px;
}

.psb-culture .psb-blueprint__home {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--ps-navy);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 36px;
}

.psb-culture .psb-blueprint__group {
  max-width: 880px;
  margin: 0 auto 28px;
  background: var(--ps-navy);
  border-radius: 14px;
  padding: 36px 36px 28px;
  color: #fff;
}

.psb-culture .psb-blueprint__group-eyebrow {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 11px;
  letter-spacing: 0.3em;
  color: rgba(255,255,255,0.7);
  text-transform: uppercase;
  display: block;
  margin-top: 0;
  margin-bottom: 10px;
}

/* Modifier: muted white for "Who We Care For" eyebrow inside dark panel */
.psb-culture .psb-blueprint__group-eyebrow--cyan {
  color: #003363;
}

/* Theme h3 cascades. Override size and color for dark panel. */
.psb-culture .psb-blueprint__group-title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(26px, 3vw, 38px) !important;
  letter-spacing: 0.02em;
  margin: 0;
  color: #fff;
}

/* THE (white) and BLUEPRINT (cyan) inside dark group panel */
.psb-culture .psb-blueprint__group-title .psb-heading--blue { color: #fff; }
.psb-culture .psb-blueprint__group-title .psb-heading--cyan { color: var(--ps-cyan); }

/* WINNING white, TOGETHER cyan */
.psb-culture .psb-blueprint__winning { color: #fff; }
.psb-culture .psb-blueprint__together { color: var(--ps-cyan); }

.psb-culture .psb-blueprint__group-title span {
  color: #fff;
}

.psb-culture .psb-blueprint__group--values {
  background: transparent;
  padding: 0;
  max-width: 880px;
  margin: -8px auto 36px;
}

.psb-culture .psb-blueprint__chips {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 22px;
}

.psb-culture .psb-blueprint__chip {
  background: #F6F7F8;
  border-radius: 12px;
  padding: 32px 18px 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  border: 1px solid #E5E8EC;
}

.psb-culture .psb-blueprint__chip--dark {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.15);
}

.psb-culture .psb-blueprint__chip-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.psb-culture .psb-blueprint__chip-label {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: 13px !important;
  letter-spacing: 0.12em;
  color: var(--ps-body);
  text-transform: uppercase;
}

.psb-culture .psb-blueprint__chip--dark .psb-blueprint__chip-label {
  color: #fff;
}

/* ============================================================
   SECTION 8 — Learning & Development
============================================================ */
.psb-culture .psb-learning {
  background: var(--ps-light);
  padding: 90px 0 100px;
}

.psb-culture .psb-learning__inner {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 56px;
  align-items: start;
}

.psb-culture .psb-learning__accent {
  width: 36px;
  height: 3px;
  background: var(--ps-cyan);
  display: block;
  margin-bottom: 22px;
}

/*
 * Theme h2 cascades as #00aae7. Here the design intentionally uses cyan
 * for the large title — set explicitly so it doesn't depend on the cascade.
 */
.psb-culture .psb-learning__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(40px, 4.4vw, 60px) !important;
  line-height: 1.05 !important;
  letter-spacing: 0.01em;
  color: var(--ps-blue); /* fallback; spans override per line */
  margin: 0 0 22px;
  text-align: left;
}

/* Override theme p margins */
.psb-culture .psb-learning__text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ps-body);
  margin: 0 0 28px;
  max-width: 480px;
}

.psb-culture .psb-learning__cards {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  overflow: hidden;
}

/*
 * Card layout: icon div (col 1) + body div (col 2) in a CSS grid row.
 * Both columns are block-level divs — icon never floats above text.
 * WP injection prevention: title uses <strong>, text uses <span>,
 * both inside .psb-learning__card-body. Inline elements are not
 * wrapped in <p> tags by wpautop, eliminating empty p injection.
 */
.psb-culture .psb-learning__card {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 16px;
  padding: 18px 22px;
  align-items: center;
  border-bottom: 1px solid #E9ECEF;
}

.psb-culture .psb-learning__card:last-child {
  border-bottom: none;
}

.psb-culture .psb-learning__card-icon {
  width: 44px;
  height: 44px;
  background: #EEF4D9;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Body: stacks title above text via flex column */
.psb-culture .psb-learning__card-body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  text-align: left;
}

/* <strong> — inline element, wpautop won't inject <p> before/after it */
.psb-culture .psb-learning__card-title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: 13px !important;
  letter-spacing: 0.1em;
  color: var(--ps-blue);
  text-transform: uppercase;
  display: block;
  line-height: 1.3;
  text-align: left;
}

/* <span> — inline element, wpautop won't inject <p> before/after it */
.psb-culture .psb-learning__card-text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ps-body);
  display: block;
  text-align: left;
}

.psb-culture .psb-learning__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 12px;
}

.psb-culture .psb-learning__photos img {
  width: 100%;
  object-fit: cover;
  border-radius: 8px;
  display: block;
  aspect-ratio: 4/3;
  height: auto;
}

/* First image spans full width */
.psb-culture .psb-learning__photos img:first-child {
  grid-column: 1 / -1;
  aspect-ratio: 16/7;
}

/* ============================================================
   SECTION 9 — A Team Across Every Role
============================================================ */
.psb-culture .psb-team {
  background: #fff;
  padding: 90px 0 100px;
  text-align: center;
}

/* Theme h2 cascades as #00aae7 — override to blue */
.psb-culture .psb-team__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(36px, 4vw, 52px) !important;
  line-height: 1.1 !important;
  color: var(--ps-blue) !important; /* override theme h2 { color: #00aae7 } */
  margin: 0 0 22px;
}

.psb-culture .psb-team__title-line2 {
  color: var(--ps-cyan);
  display: block;
  margin-top: 6px;
}

/* Override theme p margins */
.psb-culture .psb-team__text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 16px;
  line-height: 1.65;
  color: var(--ps-body);
  max-width: 760px;
  margin: 0 auto 48px;
}

.psb-culture .psb-team__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  max-width: 1100px;
  margin: 0 auto 40px;
}

.psb-culture .psb-team__card {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 4/3.4;
  background: #1a1a1a;
  border: 2px solid var(--ps-green);
}

.psb-culture .psb-team__card img {
  width: 100%;
  height: 100% !important; /* override theme img { height: auto } */
  object-fit: cover;
  display: block;
}

.psb-culture .psb-team__card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 30%, rgba(0,0,0,0.55) 60%, rgba(0,0,0,0.85) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 24px;
  text-align: left;
}

/* Theme h3 cascades. Pin size, override color for overlay. */
.psb-culture .psb-team__card-title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: 18px !important;
  letter-spacing: 0.04em;
  color: #fff;
  margin: 0 0 8px;
}

/* Override theme p margins */
.psb-culture .psb-team__card-text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255,255,255,0.85);
  margin: 0;
}

/* ============================================================
   SECTION 10 — Growing Together (community)
============================================================ */
.psb-culture .psb-growing {
  background: var(--ps-navy);
  padding: 90px 0 100px;
}

.psb-culture .psb-growing__header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  margin-bottom: 56px;
  align-items: start;
  text-align: left;
}

.psb-culture .psb-growing__eyebrow {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 12px;
  letter-spacing: 0.3em;
  color: var(--ps-cyan);
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 0;
  margin-bottom: 14px;
  text-align: left;
}

/* Line separator BEFORE "Benefits & Perks" — renders as "— Benefits & Perks" */
.psb-culture .psb-growing__eyebrow::before {
  content: '';
  display: inline-block;
  width: 30px;
  height: 2px;
  background: var(--ps-cyan);
  flex-shrink: 0;
}

/* Theme h2 cascades as #00aae7 — override to white on dark background */
.psb-culture .psb-growing__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(38px, 4.4vw, 60px) !important;
  line-height: 1.05 !important;
  color: #fff !important; /* override theme h2 { color: #00aae7 } */
  margin: 0;
  letter-spacing: 0.01em;
  text-align: left;
}

.psb-culture .psb-growing__title-line2 {
  color: var(--ps-cyan);
  display: block;
}

/* Override theme p margins */
.psb-culture .psb-growing__intro {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(255,255,255,0.78);
  margin: 0 0 16px;
  text-align: left;
}

.psb-culture .psb-growing__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.psb-culture .psb-growing__item {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 10px;
  padding: 22px 22px 24px;
  text-align: left;
}

.psb-culture .psb-growing__item-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  background: #0d3158;
  border-radius: 6px;
  color: var(--ps-cyan);
  flex-shrink: 0;
}

/* Theme h3 cascades: Trajan Pro 3, 600. Override size and color. */
.psb-culture .psb-growing__item-title {
  font-family: 'Oswald', sans-serif;
  font-weight: 700;
  font-size: 11px !important;
  color: #c8d44e !important; /* yellow-green per Figma */
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin: 0 0 10px;
  line-height: 1.3;
}

/* Override theme p margins */
.psb-culture .psb-growing__item-text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 13px;
  line-height: 1.6;
  color: rgba(255,255,255,0.7);
  margin: 0;
}

/* Photo collage — 5 photos asymmetric */
.psb-culture .psb-growing__collage {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: 200px 200px;
  gap: 12px;
  max-width: 1100px;
  margin: 56px auto 0;
}

.psb-culture .psb-growing__collage img {
  width: 100%;
  height: 100% !important; /* override theme img { height: auto } */
  object-fit: cover;
  border-radius: 8px;
  display: block;
}

.psb-culture .psb-growing__collage img:nth-child(2) {
  grid-column: 2;
  grid-row: 1 / span 2;
  height: 412px !important;
}

/* ============================================================
   SECTION 11 — Not Seeing The Right Role (centered card)
============================================================ */
.psb-culture .psb-notrole {
  background: #fff;
  padding: 70px 0 90px;
}

.psb-culture .psb-notrole__card {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 28px rgba(0,0,0,0.08);
  min-height: 380px;
}

.psb-culture .psb-notrole__left {
  background: var(--ps-navy);
  padding: 56px 52px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
}

/* Inner wrapper prevents wpautop injecting empty <p> between siblings */
.psb-culture .psb-notrole__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

/* Suppress any empty <p> tags wpautop injects inside the notrole card */
.psb-culture .psb-notrole__left p:empty,
.psb-culture .psb-notrole__content p:empty {
  display: none;
  margin: 0;
  padding: 0;
}

.psb-culture .psb-notrole__label {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 11px;
  letter-spacing: 0.3em;
  color: rgba(255,255,255,0.6);
  text-transform: uppercase;
  display: block;
  margin-top: 0;
  margin-bottom: 16px;
}

/* Theme h2 cascades as #00aae7 — override to white on dark background */
.psb-culture .psb-notrole__title {
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: clamp(28px, 3.2vw, 40px) !important;
  line-height: 1.1 !important;
  letter-spacing: 0.01em;
  color: #fff !important; /* override theme h2 { color: #00aae7 } */
  margin: 0 0 22px;
}

.psb-culture .psb-notrole__title-line2 {
  color: var(--ps-cyan);
  display: block;
  margin-top: 4px;
}

/* Override theme p margins — <span> used to prevent wpautop wrapping */
.psb-culture .psb-notrole__text {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.65;
  color: rgba(255,255,255,0.78);
  margin: 0 0 28px;
  max-width: 360px;
  display: block;
}

.psb-culture .psb-notrole__btn {
  display: inline-block;
  align-self: flex-start;
  background: var(--ps-cyan);
  color: #fff !important; /* override theme a { color: #00aae7 } */
  font-family: 'Trajan Pro 3', 'Trajan Pro', serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-decoration: none;
  padding: 14px 32px;
  border-radius: 6px;
  text-transform: uppercase;
  transition: background 0.2s;
}

.psb-culture .psb-notrole__btn:hover {
  background: #019fd6;
  color: #fff !important; /* prevent theme a:hover { color: #0054a6 } */
}

.psb-culture .psb-notrole__photo {
  position: relative;
  overflow: hidden;
}

.psb-culture .psb-notrole__photo img {
  width: 100%;
  height: 100% !important; /* override theme img { height: auto } */
  object-fit: cover;
  display: block;
}

/* ============================================================
   SECTION 12 — Footer
============================================================ */
/*
 * This page includes its own footer inside .psb-culture. The theme's
 * global footer { background: #152d53 } will affect <footer> elements
 * outside the wrapper. Here we scope fully under .psb-culture .psb-footer.
 */
.psb-culture .psb-footer {
  background: rgb(21,46,84);
  padding: 48px 40px;
}

.psb-culture .psb-footer__inner {
  max-width: var(--ps-wrap);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.psb-culture .psb-footer__logo img {
  height: 48px !important; /* override theme img { height: auto } */
  width: auto;
}

.psb-culture .psb-footer__contact {
  display: flex;
  gap: 48px;
}

.psb-culture .psb-footer__contact-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.psb-culture .psb-footer__contact-label {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 12px;
  letter-spacing: 0.2em;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
}

/* Override theme a { color: #00aae7 } in footer */
.psb-culture .psb-footer__contact-val {
  font-family: 'Oswald', sans-serif;
  font-weight: 300;
  font-size: 15px;
  color: rgba(255,255,255,0.85) !important;
  text-decoration: none;
}

.psb-culture .psb-footer__social {
  display: flex;
  gap: 12px;
}

.psb-culture .psb-footer__social a {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--ps-cyan);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff !important; /* override theme a { color: #00aae7 } */
  text-decoration: none;
  transition: background 0.2s;
}

.psb-culture .psb-footer__social a:hover {
  background: #019fd6;
  color: #fff !important; /* prevent theme a:hover { color: #0054a6 } */
}

/* ============================================================
   RESPONSIVE — Tablet (max-width: 1024px)
============================================================ */
@media (max-width: 1024px) {
  .psb-culture .psb-wrap {
    padding: 0 28px;
  }

  .psb-culture .psb-hero {
    padding: 56px 0 32px;
  }

  .psb-culture .psb-photo-strip {
    grid-template-columns: repeat(3, 1fr);
    padding: 0 28px;
  }
  .psb-culture .psb-photo-strip__col:nth-child(4),
  .psb-culture .psb-photo-strip__col:nth-child(5) {
    display: none;
  }

  .psb-culture .psb-stats {
    padding: 64px 0;
  }
  .psb-culture .psb-stats__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .psb-culture .psb-stats__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 24px;
  }

  .psb-culture .psb-our-culture__inner,
  .psb-culture .psb-build__inner,
  .psb-culture .psb-learning__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .psb-culture .psb-our-culture,
  .psb-culture .psb-build,
  .psb-culture .psb-learning {
    padding: 64px 0;
  }

  .psb-culture .psb-primestar {
    padding: 64px 0;
  }
  .psb-culture .psb-primestar__cards {
    grid-template-columns: 1fr;
  }
  .psb-culture .psb-primestar__card {
    padding: 28px;
  }

  .psb-culture .psb-blueprint {
    padding: 64px 0 80px;
  }
  .psb-culture .psb-blueprint__chips {
    grid-template-columns: repeat(2, 1fr);
  }
  .psb-culture .psb-blueprint__group {
    padding: 28px 24px 22px;
  }

  .psb-culture .psb-team {
    padding: 64px 0;
  }
  .psb-culture .psb-team__cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .psb-culture .psb-growing {
    padding: 64px 0;
  }
  .psb-culture .psb-growing__header {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 40px;
  }
  .psb-culture .psb-growing__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .psb-culture .psb-growing__collage {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 180px 180px 180px;
    max-width: 720px;
    margin-top: 40px;
  }
  .psb-culture .psb-growing__collage img:nth-child(2) {
    grid-column: 1 / span 2;
    grid-row: 1;
    height: 100% !important;
  }

  .psb-culture .psb-notrole {
    padding: 56px 0 72px;
  }

  .psb-culture .psb-footer {
    padding: 40px 28px;
  }
  .psb-culture .psb-footer__inner {
    flex-direction: column;
    text-align: center;
    gap: 24px;
  }
}

/* ============================================================
   RESPONSIVE — Mobile (max-width: 768px)
============================================================ */
@media (max-width: 768px) {
  .psb-culture .psb-wrap {
    padding: 0 20px;
  }

  .psb-culture .psb-hero {
    padding: 44px 20px 0;
  }
  .psb-culture .psb-hero__cta {
    margin-bottom: 32px;
  }

  .psb-culture .psb-photo-strip {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 0 20px;
  }
  .psb-culture .psb-photo-strip__col:nth-child(3),
  .psb-culture .psb-photo-strip__col:nth-child(4),
  .psb-culture .psb-photo-strip__col:nth-child(5) {
    display: none;
  }

  .psb-culture .psb-stats {
    padding: 48px 0;
  }
  .psb-culture .psb-stats__inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .psb-culture .psb-stats__grid {
    grid-template-columns: 1fr 1fr;
    gap: 24px 20px;
  }

  .psb-culture .psb-our-culture,
  .psb-culture .psb-build,
  .psb-culture .psb-primestar,
  .psb-culture .psb-blueprint,
  .psb-culture .psb-learning,
  .psb-culture .psb-team,
  .psb-culture .psb-growing {
    padding: 48px 0;
  }

  .psb-culture .psb-our-culture__photos {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    height: auto;
  }
  .psb-culture .psb-our-culture__photos img {
    height: 160px !important;
  }

  .psb-culture .psb-build__photo {
    max-height: 280px;
  }

  .psb-culture .psb-primestar__card {
    padding: 24px 20px;
  }

  .psb-culture .psb-blueprint__chips {
    grid-template-columns: 1fr;
  }
  .psb-culture .psb-blueprint__group {
    padding: 24px 20px 20px;
  }

  .psb-culture .psb-learning__photos {
    grid-template-columns: 1fr;
  }
  .psb-culture .psb-learning__photos img {
    aspect-ratio: 4/3;
  }

  .psb-culture .psb-team__cards {
    grid-template-columns: 1fr;
  }

  .psb-culture .psb-growing__grid {
    grid-template-columns: 1fr;
  }
  .psb-culture .psb-growing__collage {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(5, 180px);
    max-width: 480px;
  }
  .psb-culture .psb-growing__collage img:nth-child(2) {
    grid-column: 1;
    grid-row: auto;
    height: 180px !important;
  }

  .psb-culture .psb-notrole {
    padding: 40px 0 56px;
  }
  .psb-culture .psb-notrole__card {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .psb-culture .psb-notrole__left {
    padding: 40px 28px;
  }
  .psb-culture .psb-notrole__photo {
    min-height: 260px;
    order: -1;
  }

  .psb-culture .psb-footer {
    padding: 32px 20px;
  }
  .psb-culture .psb-footer__contact {
    flex-direction: column;
    gap: 16px;
    align-items: center;
  }
}

/* ============================================================
   RESPONSIVE — Small mobile (max-width: 480px)
============================================================ */
@media (max-width: 480px) {
  .psb-culture .psb-stats__grid {
    grid-template-columns: 1fr;
  }
  .psb-culture .psb-photo-strip {
    grid-template-columns: 1fr;
  }
  .psb-culture .psb-photo-strip__col:nth-child(2) {
    display: none;
  }
}