.hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:83px 0 105px;
  color:#fff;
  background:var(--purple);
}

.hero::before, .hero::after {
  content:"";
  position:absolute;
  z-index:-1;
  border-radius:var(--radius-round);
}

.hero::before {
  width:360px;
  height:360px;
  right:-90px;
  top:-185px;
  background:var(--cyan);
}

.hero::after {
  width:190px;
  height:190px;
  right:17%;
  bottom:-120px;
  background:var(--orange);
}

.hero .eyebrow {
  color:var(--cyan);
}

.hero h1 {
  max-width:780px;
  margin:12px 0 19px;
  font-size:var(--text-display);
  line-height:1;
  letter-spacing:var(--tracking-tighter);
}

.hero p {
  max-width:650px;
  margin:0;
  color:var(--on-dark);
  font-size:var(--text-lead);
}

.hero .actions {
  margin-top:28px;
}

.breadcrumb {
  margin-bottom:27px;
  color:var(--on-dark);
  font-size:var(--text-sm);
}

.breadcrumb a {
  color:#fff;
  text-decoration:underline;
  text-underline-offset:3px;
}

section {
  padding:80px 0;
}

.head {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:28px;
  margin-bottom:30px;
}

/* Section-level H2: deliberately smaller than the hero H1 (clamp up to 3.2rem)
   so page title vs. section title stay unambiguous while scanning. */
.head h2,
.section-head h2,
.feature h2 {
  color:var(--purple-deep);
  font-size:var(--text-h2);
  line-height:1.08;
  letter-spacing:var(--tracking-tighter);
}

.head h2 {
  max-width:650px;
  margin:7px 0 0;
}

.head p {
  max-width:460px;
  margin:0;
  color:var(--muted);
}

.section-head {
  max-width:720px;
  margin-bottom:30px;
}

.section-head h2 {
  margin:8px 0 12px;
}

.section-head p {
  margin:0;
  color:var(--muted);
}

/* Learning hub: path cards */
.path-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.path-card {
  display:flex;
  flex-direction:column;
  min-height:260px;
  padding:25px;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:#fff;
}

.path-card:hover, .path-card:focus-visible {
  border-color:var(--cyan);
  box-shadow:0 14px 28px rgba(50,16,109,.08);
}

.path-card .icon {
  display:grid;
  place-items:center;
  width:var(--ds-icon-sm);
  height:var(--ds-icon-sm);
  margin-bottom:18px;
  border-radius:var(--radius-md);
  background:var(--purple-tint);
  color:var(--purple);
}

.path-card .icon svg {
  width:22px;
  height:22px;
}

.path-card:nth-child(2) .icon { background:var(--cyan-tint); color:var(--cyan-ink); }
.path-card:nth-child(3) .icon { background:var(--orange-tint); color:var(--orange-deep); }
.path-card:nth-child(4) .icon { background:var(--purple-tint); }

.path-card h3 {
  margin:0 0 10px;
  color:var(--purple-deep);
  font-size:var(--text-lg);
  line-height:1.15;
}

.path-card p {
  margin:0 0 18px;
  color:var(--muted);
  font-size:var(--text-md);
}

.text-link {
  margin-top:auto;
  color:var(--purple);
  font-weight: 700;
  font-size:var(--text-md);
}

/* Feature split: copy + supporting panel */
.feature {
  background:var(--mist);
}

.feature-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}

.feature h2 {
  margin:8px 0 14px;
}

.feature p {
  margin:0 0 20px;
  max-width:540px;
  color:var(--muted);
}

.feature .link {
  color:var(--purple);
  font-weight: 700;
}

.note {
  padding:24px;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:#fff;
  color:var(--muted);
  font-size:var(--text-md);
}

.note strong {
  display:block;
  margin-bottom:8px;
  color:var(--purple-deep);
}

.tile {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:30px;
  border-radius:var(--radius-lg);
  background:var(--purple-deep);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:280px;
}

.tile::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:220px;
  height:220px;
  right:-70px;
  top:-90px;
  border:36px solid rgba(5,191,224,.18);
  border-radius:var(--radius-round);
}

.tile .eyebrow {
  color:var(--cyan);
}

.tile h3 {
  max-width:340px;
  margin:18px 0;
  font-size:var(--text-xl);
  line-height:1.14;
}

.tile p {
  margin:0 0 20px;
  max-width:340px;
  color:var(--on-dark);
}

/* Numbered step row: full-width, matches the section-head + grid rhythm
   used by the resource and path grids elsewhere on these pages. */
.step-list {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  padding-left:0;
  list-style:none;
}

.step-item {
  display:flex;
  flex-direction:column;
  gap:14px;
}

.step-item .icon {
  display:grid;
  place-items:center;
  width:var(--ds-icon-sm);
  height:var(--ds-icon-sm);
  border-radius:var(--radius-md);
  background:var(--purple-tint);
  color:var(--purple);
}

.step-item .icon svg {
  width:22px;
  height:22px;
}

.step-item:nth-child(2) .icon { background:var(--cyan-tint); color:var(--cyan-ink); }
.step-item:nth-child(3) .icon { background:var(--orange-tint); color:var(--orange-deep); }

.step-item strong {
  display:block;
  margin-bottom:4px;
  color:var(--purple-deep);
  font-size:var(--text-base);
}

.step-item span {
  display:block;
  color:var(--muted);
  font-size:var(--text-md);
}

/* External resource cards */
.resource-section {
  padding:84px 0;
}

.resource-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
}

.resource {
  display:flex;
  gap:16px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:#fff;
}

.resource:hover, .resource:focus-visible {
  border-color:var(--cyan);
}

.resource .icon {
  display:grid;
  place-items:center;
  flex:0 0 44px;
  width:var(--ds-icon-sm);
  height:var(--ds-icon-sm);
  border-radius:var(--radius-md);
  background:var(--purple-tint);
  color:var(--purple);
  font-weight: 700;
  font-size:var(--text-lg);
}

.resource:nth-child(2) .icon { background:var(--cyan-tint); color:var(--cyan-ink); }
.resource:nth-child(3) .icon { background:var(--orange-tint); color:var(--orange-deep); }

/* Internal (on-site) resource card: tinted surface distinguishes it from
   the external PMI cards without introducing an off-brand colour. */
.resource--internal {
  background:var(--mist);
}

.resource h3 {
  margin:0 0 5px;
  color:var(--purple-deep);
  font-size:var(--text-lead);
}

.resource p {
  margin:0;
  color:var(--muted);
  font-size:var(--text-md);
}

.resource small {
  display:block;
  margin-top:8px;
  color:var(--purple);
  font-weight: 700;
  font-size:var(--text-xs);
}

/* PMI Talent Triangle: intro copy paired with the official diagram */
.triangle-intro {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:48px;
  align-items:center;
  margin-bottom:40px;
}

.triangle-intro .section-head {
  margin-bottom:0;
}

.triangle-diagram {
  margin:0;
  text-align:center;
}

.triangle-diagram img {
  display:block;
  width:100%;
  max-width:300px;
  height:auto;
  margin:0 auto;
}

.triangle-diagram figcaption {
  margin-top:10px;
  color:var(--muted);
  font-size:var(--text-xs);
}

/* PMI Talent Triangle pillars */
.triangle-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

.pillar {
  min-height:300px;
  padding:28px;
  border:1px solid var(--line);
  border-top:5px solid var(--line);
  border-radius:var(--radius-lg);
  background:#fff;
}

/* Colour is tied to each pillar's identity, not its position in the grid,
   so the accent stays correct however the three cards are ordered. */
.pillar--acumen { border-top-color:var(--purple); }
.pillar--ways { border-top-color:var(--cyan); }
.pillar--power { border-top-color:var(--orange); }

.pillar .icon {
  display:grid;
  place-items:center;
  width:var(--ds-icon-sm);
  height:var(--ds-icon-sm);
  margin-bottom:16px;
  border-radius:var(--radius-md);
}

.pillar .icon svg {
  width:22px;
  height:22px;
}

.pillar--acumen .icon { background:var(--purple-tint); color:var(--purple); }
.pillar--ways .icon { background:var(--cyan-tint); color:var(--cyan-ink); }
.pillar--power .icon { background:var(--orange-tint); color:var(--orange-deep); }

.pillar h2 {
  margin:0 0 12px;
  color:var(--purple-deep);
  font-size:var(--text-xl);
  line-height:1.1;
}

.pillar p {
  margin:0;
  color:var(--muted);
}

.pillar ul {
  margin:20px 0 0;
  padding-left:18px;
  color:var(--muted);
  font-size:var(--text-md);
}

.pillar li + li {
  margin-top:6px;
}

/* Authorized Training Partners */
.atp-banner {
  padding:22px 24px;
  margin-top:34px;
  border:1px solid var(--line);
  border-left:6px solid var(--cyan);
  border-radius:0 var(--radius-lg) var(--radius-lg) 0;
  background:var(--mist);
  color:var(--muted);
  font-size:var(--text-md);
}

.atp-banner strong {
  display:block;
  margin-bottom:4px;
  color:var(--purple-deep);
}

.atp-list {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
}

.atp-card {
  display:flex;
  flex-direction:column;
  padding:24px;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:#fff;
}

.atp-logo {
  display:flex;
  align-items:center;
  height:52px;
  margin-bottom:16px;
}

.atp-logo img {
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:left center;
}

.atp-card h3 {
  margin:0 0 8px;
  color:var(--purple-deep);
  font-size:var(--text-lg);
  line-height:1.2;
  font-weight: 700;
}

.atp-location {
  margin:0 0 12px;
  color:var(--purple);
  font-size:var(--text-xs);
  font-weight: 700;
  letter-spacing:var(--tracking-wide);
}

.atp-card > p {
  max-width:48ch;
  margin:0 0 18px;
  color:var(--muted);
  font-size:var(--text-md);
}

.atp-contact {
  display:grid;
  gap:8px;
  margin:0 0 18px;
  padding:16px 0 0;
  border-top:1px solid var(--line);
}

.atp-contact div {
  display:grid;
  grid-template-columns:64px 1fr;
  gap:10px;
  font-size:var(--text-sm);
}

.atp-contact dt {
  margin:0;
  color:var(--muted);
  font-weight: 700;
}

.atp-contact dd {
  margin:0;
  color:var(--purple-deep);
}

.atp-contact dd a {
  color:var(--purple);
  font-weight:700;
}

/* Partner name = link to its website: colour change on hover, no underline. */
.atp-name {
  color:inherit;
  transition:color .18s;
}

.atp-name:hover,
.atp-name:focus-visible {
  color:var(--purple);
}

.atp-card .text-link {
  margin-top:auto;
}

/* FAQ accordions */
.faq {
  background:var(--mist);
}

.faq-list {
  display:grid;
  gap:10px;
}

.faq-item {
  padding:18px 20px;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:#fff;
}

.faq-item summary {
  cursor:pointer;
  color:var(--purple-deep);
  font-weight: 700;
}

.faq-item summary:focus-visible {
  outline:3px solid var(--cyan);
  outline-offset:3px;
}

.faq-item p {
  margin:12px 0 0;
  color:var(--muted);
  font-size:var(--text-md);
}

.cta {
  padding:58px 0;
  background:var(--purple);
  color:#fff;
}

.cta .head {
  margin:0;
}

.cta .head + .actions {
  margin-top:28px;
}

.cta .eyebrow {
  color:var(--cyan);
}

.cta h2 {
  color:#fff;
}

.cta p {
  color:var(--on-dark);
}

/* Light variant: keeps this mid-page CTA from fusing visually with the dark
   footer CTA directly beneath it, and reads as a supporting nudge rather
   than a second "final" call to action. */
.cta--light {
  background:var(--mist);
  color:var(--ink);
}

.cta--light .eyebrow {
  color:var(--purple);
}

.cta--light h2 {
  color:var(--purple-deep);
}

.cta--light p {
  color:var(--muted);
}

@media (max-width:1000px) {
  .path-grid {
    grid-template-columns:repeat(2,1fr);
  }

  .resource-grid {
    grid-template-columns:1fr;
  }
}

@media (max-width:760px) {
  .hero {
    padding:65px 0 85px;
  }

  section, .resource-section {
    padding:60px 0;
  }

  .feature-grid, .triangle-grid, .atp-list, .step-list, .triangle-intro {
    grid-template-columns:1fr;
  }

  .triangle-intro {
    gap:28px;
    margin-bottom:32px;
  }

  .head {
    display:block;
  }

  .head p {
    margin-top:15px;
  }

  .cta {
    padding:49px 0;
  }
}

@media (max-width:460px) {
  .hero h1 {
    font-size:var(--text-4xl);
  }

  .path-grid {
    grid-template-columns:1fr;
  }
}

/* Shared accessibility and consistency controls */
.actions { margin-top:0; }
.button { min-height:47px; font-size:var(--text-md); }
:focus-visible { outline-color:var(--purple); box-shadow:0 0 0 3px #fff; }
[id] { scroll-margin-top:105px; }
.skip-link { position:absolute; top:8px; left:8px; z-index:50; padding:12px; background:#fff; color:var(--purple); transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
@media (max-width:760px) {
  [id] { scroll-margin-top:85px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .button { transition:none; }
}

/* Half-height hero variant */
.hero--half {
  display:flex;
  align-items:center;
  padding:clamp(28px,6vh,60px) 0;
  min-height:min(calc(50vh - var(--nav-height)), calc(var(--hero-max-height) / 2));
  min-height:min(calc(50svh - var(--nav-height)), calc(var(--hero-max-height) / 2));
}

.hero--half::before {
  width:230px;
  height:230px;
  right:-60px;
  top:-95px;
}

.hero--half::after {
  width:130px;
  height:130px;
  right:15%;
  bottom:-70px;
}

.hero--half h1 {
  font-size:var(--text-h1);
  margin:10px 0 14px;
}

.hero--half p {
  font-size:var(--text-base);
}

@media (max-width:760px) {
  .hero--half {
    padding:clamp(24px,6vh,50px) 0;
  }
}

@media (max-width:460px) {
  .hero--half h1 {
    font-size:var(--text-3xl);
  }
}

/* WordPress version (page-talent-triangle.php, page-certifications.php):
   Chapter sessions with their Talent Triangle® pillars; one-card grid; links
   inside copy. */
.pillar-events {
  display:grid;
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}

.pillar-events li {
  display:grid;
  gap:6px;
  padding:20px 22px;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:#fff;
}

.pillar-events a {
  color:var(--purple-deep);
  font-size:var(--text-lead);
  font-weight: 700;
  line-height:1.3;
}

.pillar-events a:hover,
.pillar-events a:focus-visible {
  text-decoration:underline;
  text-underline-offset:3px;
}

.pillar-events-when {
  color:var(--muted);
  font-size:var(--text-sm);
  font-weight:700;
}

.pillar-tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:4px;
}

.pillar-tag {
  padding:3px 10px;
  border-radius:var(--radius-pill);
  font-size:var(--text-xs);
  font-weight: 700;
}

.pillar-tag--acumen { background:var(--purple-tint); color:var(--purple); }
.pillar-tag--ways { background:var(--cyan-tint); color:var(--cyan-ink); }
.pillar-tag--power { background:var(--orange-tint); color:var(--orange-deep); }

.resource-grid--single {
  grid-template-columns:minmax(0, 720px);
}

.step-item span a,
.faq-item p a {
  color:var(--purple);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* Phones: keep the hero circles in the corners, clear of the heading (white
   text over cyan fails contrast). */
@media (max-width:760px) {
  .hero--half::before {
    width:150px;
    height:150px;
    right:-75px;
    top:-80px;
  }

  .hero--half::after {
    width:100px;
    height:100px;
    right:-30px;
    bottom:-60px;
  }
}

/* Training Partners (page-training-partners.php): last-updated line, empty state. */
.atp-updated {
  display:block;
  margin-top:6px;
  font-size:var(--text-md);
}

.atp-empty {
  margin:0 0 24px;
  color:var(--muted);
}

.atp-empty a {
  color:var(--purple);
  font-weight:700;
  text-decoration:underline;
}
