/* CSA advisory pages extend the approved Infinite architectural design. */
.certification-page .cert-hero {
  padding: 106px 0 58px;
}
.certification-page .cert-hero .breadcrumb {
  margin: 0 0 34px;
  font-size: 12px;
  flex-wrap: wrap;
}
.cert-hero-grid {
  display: grid;
  grid-template-columns: 1.18fr 1fr;
  gap: clamp(32px, 5.5vw, 80px);
  align-items: center;
}
.cert-hero-copy {
  min-width: 0;
}
.certification-page .cert-hero h1 {
  color: var(--color-text);
  font-size: clamp(38px, 4.25vw, 62px);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 1.12;
  margin: 18px 0 24px;
}
.cert-hero-copy > p {
  font-size: 17px;
  line-height: 1.7;
  color: var(--color-text-secondary);
  max-width: 460px;
}
.cert-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 26px;
  align-items: center;
  margin-top: 30px;
}
.certification-page .cert-actions .btn {
  gap: 12px;
}
.certification-page .btn svg {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
}
.cert-text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 650;
  color: var(--color-text);
  padding-block: 10px;
}
.cert-text-link svg {
  width: 15px;
  height: 15px;
}
.cert-hero-image {
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
  background: #e6eef6;
  aspect-ratio: 1.04;
}
.cert-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 53%;
  display: block;
}
.cert-hero-overview .cert-hero-image {
  aspect-ratio: 1;
}
.cert-hero-overview .cert-hero-image img {
  object-position: 48% center;
}
.cert-hero-overview .cert-hero-grid {
  grid-template-columns: 1.2fr 1fr;
}
.cert-hero-overview .cert-hero-copy h1 {
  font-size: clamp(36px, 3.8vw, 55px);
}
.provider-band {
  border-block: 1px solid var(--color-border);
  background: #f0f4fa;
}
.provider-inner {
  display: flex;
  align-items: center;
  gap: 22px;
  padding-block: 25px;
}
.provider-mark {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex-shrink: 0;
  color: var(--color-accent);
}
.provider-mark svg {
  width: 32px;
  height: 32px;
  stroke-width: 1.5;
}
.provider-inner p {
  font-size: 12px;
  color: var(--color-text-secondary);
  margin: 3px 0;
}
.provider-inner .provider-label {
  font-size: 14px;
  color: var(--color-text);
}
.provider-link {
  margin-left: auto;
  flex-shrink: 0;
}
.provider-link a,
.cert-source-inline a,
.source-links a,
.funding-layout a,
.cert-faq-answer a,
.cert-intro a,
.cert-scope-layout a,
.cert-path > a:not(.btn),
.cert-role-note a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-color: #a2bde5;
  font-size: 12px;
  line-height: 1.75;
}
.certification-page a:not(.btn):hover {
  text-decoration-color: currentColor;
}
.provider-link svg,
.cert-source-inline svg,
.source-links svg,
.funding-layout a svg,
.cert-faq-answer a svg,
.cert-intro a svg,
.cert-scope-layout a svg,
.cert-path > a:not(.btn) svg,
.cert-role-note a svg {
  display: inline;
  vertical-align: -3px;
  margin-left: 5px;
  width: 14px;
  height: 14px;
}
.cert-section {
  padding-block: clamp(64px, 7vw, 104px);
}
.cert-tinted {
  background: var(--color-bg-alt);
}
.certification-page .cert-section h2,
.cert-closing h2 {
  font-size: clamp(30px, 3.2vw, 46px);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.18;
  margin: 0 0 24px;
  color: var(--color-text);
}
.cert-section p {
  color: var(--color-text-secondary);
  line-height: 1.75;
  font-size: 15px;
}
.cert-section-heading {
  max-width: 690px;
  margin-bottom: 44px;
}
.cert-section-heading .eyebrow {
  margin-bottom: 18px;
}
.cert-section-heading p {
  max-width: 610px;
}
.cert-intro {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: clamp(40px, 9vw, 130px);
  align-items: start;
}
.cert-intro > div > p {
  margin-bottom: 20px;
}
.cert-facts {
  display: grid;
  gap: 24px;
}
.cert-facts > div {
  padding-left: 22px;
  border-left: 2px solid #c8d8ef;
}
.cert-facts dt {
  font-size: 21px;
  letter-spacing: -0.02em;
  font-weight: 600;
  color: var(--color-text);
}
.cert-facts dd {
  font-size: 13px;
  line-height: 1.7;
  color: var(--color-text-secondary);
  margin: 5px 0 0;
}
.essentials-map {
  display: grid;
  grid-template-columns: 0.72fr 1.6fr;
  gap: clamp(32px, 5vw, 72px);
  align-items: start;
}
.essentials-map-label {
  position: sticky;
  top: 112px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  aspect-ratio: 1;
  border: 1px solid #aec5e5;
  border-radius: 50%;
  text-align: center;
  color: var(--color-accent);
  font-size: clamp(18px, 1.8vw, 26px);
  font-weight: 600;
  max-width: 290px;
  margin-top: 24px;
  box-shadow:
    inset 0 0 0 20px #e8eff9,
    inset 0 0 0 21px #c8d8ee;
}
.essentials-map-label span {
  font-size: 11px;
  font-weight: 450;
  color: var(--color-text-secondary);
  margin-top: 9px;
}
.domain-disclosure {
  border-bottom: 1px solid #d3ddeb;
}
.domain-disclosure:first-child {
  border-top: 1px solid #d3ddeb;
}
.domain-disclosure summary {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 0;
  cursor: pointer;
  list-style: none;
}
.domain-disclosure summary::-webkit-details-marker,
.cert-faq summary::-webkit-details-marker {
  display: none;
}
.domain-number {
  font-size: 11px;
  color: var(--color-text-tertiary);
  font-variant-numeric: tabular-nums;
}
.domain-icon {
  width: 34px;
  color: var(--color-accent);
  flex-shrink: 0;
}
.domain-icon svg {
  width: 26px;
  height: 26px;
  stroke-width: 1.5;
}
.domain-heading {
  flex: 1;
}
.domain-heading strong {
  display: block;
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: var(--color-text);
}
.domain-heading > span {
  display: block;
  margin-top: 5px;
  color: var(--color-text-secondary);
  font-size: 12px;
  line-height: 1.6;
}
.domain-disclosure summary > svg,
.cert-faq summary > svg {
  width: 18px;
  height: 18px;
  color: var(--color-accent);
  flex-shrink: 0;
  transition: transform 180ms ease;
}
.domain-disclosure[open] summary > svg,
.cert-faq details[open] summary > svg {
  transform: rotate(45deg);
}
.domain-answer {
  padding: 0 34px 25px 89px;
}
.domain-answer p {
  font-size: 13px;
}
.certification-page .cert-source-inline {
  margin-top: 28px;
  font-size: 11px;
  line-height: 1.9;
  max-width: 800px;
}
.technology-map {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
}
.technology-map article {
  padding: 24px 0 0;
  border-top: 2px solid #b6cce9;
}
.technology-icon {
  display: inline-flex;
  color: var(--color-accent);
  margin-bottom: 22px;
}
.technology-icon svg {
  width: 32px;
  height: 32px;
  stroke-width: 1.4;
}
.technology-map h3 {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-bottom: 12px;
}
.technology-map p {
  font-size: 13px;
}
.cert-journey {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  padding: 0;
}
.cert-journey li {
  position: relative;
  min-width: 0;
  border-top: 2px solid #a8c3e8;
  padding-top: 22px;
}
.journey-index {
  display: block;
  font-size: 12px;
  color: var(--color-accent);
  margin-bottom: 24px;
}
.cert-journey h3 {
  font-size: 19px;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: -0.025em;
  margin-bottom: 14px;
  min-height: 53px;
}
.cert-journey p {
  font-size: 13px;
  min-height: 92px;
}
.journey-output {
  display: block;
  font-size: 10px;
  color: var(--color-text-tertiary);
  margin: 25px 0 8px;
}
.cert-journey strong {
  font-size: 12px;
  color: var(--color-text);
  font-weight: 600;
}
.cert-journey .journey-independent {
  border-top-style: dashed;
  border-color: #8493a8;
}
.funding-layout {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(40px, 9vw, 120px);
}
.funding-lead .eyebrow {
  margin-bottom: 18px;
}
.funding-lead > p:not(.funding-number) {
  max-width: 330px;
  margin-bottom: 22px;
}
.certification-page .funding-number {
  margin: 28px 0 12px;
  color: var(--color-accent);
  line-height: 1;
  font-size: clamp(82px, 9vw, 126px);
  font-weight: 550;
  letter-spacing: -0.065em;
}
.funding-number span:first-child {
  display: block;
  color: var(--color-text-secondary);
  font-size: 14px;
  letter-spacing: 0;
  margin-bottom: 12px;
  font-weight: 450;
}
.funding-number span:last-child {
  font-size: 0.48em;
  letter-spacing: -0.03em;
}
.funding-details {
  display: grid;
  gap: 34px;
  padding-top: 6px;
}
.funding-details > div {
  padding-top: 25px;
  border-top: 1px solid var(--color-border);
}
.funding-details h3 {
  font-size: 19px;
  letter-spacing: -0.02em;
  font-weight: 600;
  margin-bottom: 14px;
}
.funding-details p {
  font-size: 13px;
  margin-bottom: 12px;
}
.cert-faq-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.4fr;
  gap: clamp(40px, 7vw, 100px);
}
.cert-faq-layout header {
  max-width: 300px;
}
.cert-faq-layout header p {
  font-size: 14px;
}
.cert-faq details {
  border-bottom: 1px solid var(--color-border);
}
.cert-faq details:first-child {
  border-top: 1px solid var(--color-border);
}
.cert-faq summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: space-between;
  padding: 23px 0;
  font-weight: 600;
  font-size: 14px;
  color: var(--color-text);
  line-height: 1.6;
}
.cert-faq-answer {
  padding: 0 30px 25px 0;
}
.cert-faq-answer p {
  font-size: 13px;
  margin-bottom: 13px;
}
.cert-closing {
  padding-block: clamp(64px, 7vw, 100px);
  background: #edf3fa url("assets/images/architectural-background.webp") right
    center / cover no-repeat;
}
.cert-closing h2 {
  max-width: 710px;
}
.cert-closing p {
  max-width: 510px;
  margin-bottom: 28px;
  color: #405269;
  font-size: 15px;
  line-height: 1.75;
}
.cert-sources {
  padding-block: 40px;
  border-bottom: 1px solid var(--color-border);
}
.cert-sources h2 {
  color: var(--color-text);
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 12px;
}
.cert-sources p {
  font-size: 11px;
  color: var(--color-text-secondary);
  line-height: 1.8;
}
.source-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  margin-block: 15px;
}
.cert-sources .source-note {
  font-size: 10px;
  max-width: 900px;
}
.cert-paths {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.cert-path {
  padding: clamp(26px, 3.3vw, 46px);
  background: #fdfefe;
  border: 1px solid var(--color-border);
  border-radius: 14px;
}
.cert-path-essentials {
  background: #edf3fc;
  border-color: #c4d6ef;
}
.path-symbol {
  color: var(--color-accent);
  margin-bottom: 30px;
}
.path-symbol svg {
  width: 38px;
  height: 38px;
  stroke-width: 1.25;
}
.certification-page .path-kicker {
  font-size: 11px;
  color: var(--color-accent);
  margin-bottom: 12px;
}
.cert-path h3 {
  font-size: clamp(24px, 2.5vw, 32px);
  font-weight: 600;
  letter-spacing: -0.03em;
  margin-bottom: 16px;
}
.cert-path > p:not(.path-kicker) {
  font-size: 14px;
  min-height: 74px;
}
.cert-path ul {
  list-style: none;
  padding: 0;
  margin: 26px 0 30px;
  display: grid;
  gap: 14px;
}
.cert-path li {
  font-size: 12px;
  color: var(--color-text-secondary);
  padding-left: 17px;
  position: relative;
  line-height: 1.7;
}
.cert-path li::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #5783bf;
  position: absolute;
  left: 0;
  top: 7px;
}
.cert-path .btn {
  gap: 10px;
}
.cert-path > a:not(.btn) {
  display: block;
  margin-top: 22px;
}
.advisory-work {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: clamp(40px, 8vw, 110px);
}
.advisory-work-intro {
  max-width: 340px;
}
.advisory-work-icon {
  display: inline-block;
  color: var(--color-accent);
  margin: 8px 0 28px;
}
.advisory-work-icon svg {
  width: 52px;
  height: 52px;
  stroke-width: 1.2;
}
.advisory-work-intro h3 {
  font-size: clamp(25px, 2.6vw, 36px);
  font-weight: 550;
  letter-spacing: -0.035em;
  line-height: 1.35;
  margin-bottom: 25px;
}
.advisory-work-intro p {
  font-size: 13px;
}
.advisory-work-list article {
  display: flex;
  gap: 24px;
  padding: 26px 0;
  border-bottom: 1px solid var(--color-border);
}
.advisory-work-list article:first-child {
  padding-top: 0;
}
.advisory-work-list article > span {
  font-size: 11px;
  color: var(--color-accent);
  padding-top: 4px;
}
.advisory-work-list h3 {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 10px;
}
.advisory-work-list p {
  font-size: 13px;
}
.cert-role-note {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 50px;
  padding: 24px;
  background: #e7edf5;
  border-radius: 8px;
}
.cert-role-note > svg {
  flex-shrink: 0;
  width: 25px;
  color: var(--color-accent);
}
.cert-role-note p {
  font-size: 12px;
}
.cert-role-note a {
  margin-left: auto;
  flex-shrink: 0;
}
.cert-scope-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 8vw, 110px);
  align-items: center;
}
.cert-scope-layout .eyebrow {
  margin-bottom: 18px;
}
.cert-scope-layout p {
  margin-bottom: 20px;
}
.scope-diagram {
  padding: 34px;
  border: 1px solid #c8d8ec;
  border-radius: 14px;
  background: #f1f5fb;
  text-align: center;
}
.scope-core {
  border: 1px solid #afc6e6;
  border-radius: 8px;
  padding: 24px 12px;
  font-size: 22px;
  font-weight: 550;
  color: var(--color-accent);
  background: #fdfefe;
}
.scope-core span {
  display: block;
  margin-top: 7px;
  font-size: 11px;
  color: var(--color-text-secondary);
  font-weight: 450;
}
.scope-nodes {
  padding-top: 30px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.scope-nodes span {
  display: flex;
  flex-direction: column;
  gap: 13px;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  color: var(--color-text);
}
.scope-nodes svg {
  width: 25px;
  color: var(--color-accent);
  stroke-width: 1.5;
}
.scope-diagram > p {
  margin: 28px 0 0;
  font-size: 10px;
}
@media (max-width: 1000px) {
  .cert-hero-grid,
  .cert-hero-overview .cert-hero-grid {
    gap: 28px;
  }
  .certification-page .cert-hero h1 {
    font-size: 42px;
  }
  .provider-inner {
    flex-wrap: wrap;
    gap: 12px;
  }
  .provider-link {
    margin-left: 58px;
  }
  .cert-role-note {
    flex-wrap: wrap;
  }
  .cert-role-note a {
    margin-left: 47px;
  }
  .cert-journey {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 36px;
  }
  .cert-journey h3,
  .cert-journey p {
    min-height: 0;
  }
  .cert-path > p:not(.path-kicker) {
    min-height: 0;
  }
}
@media (max-width: 767px) {
  .certification-page .cert-hero {
    padding: 94px 0 32px;
  }
  .certification-page .cert-hero .breadcrumb {
    font-size: 10px;
    gap: 8px;
    margin-bottom: 30px;
  }
  .cert-hero-grid,
  .cert-hero-overview .cert-hero-grid,
  .cert-intro,
  .essentials-map,
  .funding-layout,
  .cert-faq-layout,
  .cert-paths,
  .advisory-work,
  .cert-scope-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
  }
  .certification-page .cert-hero h1 {
    font-size: clamp(34px, 7.7vw, 50px);
    margin: 15px 0 20px;
  }
  .cert-hero-copy > p {
    font-size: 15px;
    max-width: 490px;
  }
  .cert-actions {
    gap: 8px 22px;
    margin-top: 24px;
  }
  .cert-text-link {
    font-size: 12px;
  }
  .cert-hero-image,
  .cert-hero-overview .cert-hero-image {
    aspect-ratio: 1.6;
  }
  .cert-hero-image img {
    object-position: center 56%;
  }
  .provider-inner {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    column-gap: 14px;
    row-gap: 9px;
    padding-block: 22px;
  }
  .provider-mark {
    width: 28px;
    height: 32px;
    align-self: start;
  }
  .provider-mark svg {
    width: 25px;
  }
  .provider-inner .provider-label {
    font-size: 13px;
  }
  .provider-inner p {
    font-size: 11px;
  }
  .provider-link {
    grid-column: 2;
    margin: 0;
  }
  .provider-link a {
    font-size: 11px;
  }
  .cert-section-heading {
    margin-bottom: 32px;
  }
  .cert-section p {
    font-size: 14px;
  }
  .cert-facts {
    gap: 21px;
  }
  .cert-facts dt {
    font-size: 18px;
  }
  .essentials-map-label {
    display: none;
  }
  .domain-disclosure summary {
    gap: 13px;
    padding-block: 21px;
  }
  .domain-number {
    font-size: 10px;
  }
  .domain-icon {
    width: 24px;
  }
  .domain-icon svg {
    width: 23px;
  }
  .domain-heading strong {
    font-size: 18px;
  }
  .domain-heading > span {
    font-size: 11px;
  }
  .domain-answer {
    padding: 0 5px 23px 66px;
  }
  .certification-page .domain-answer p {
    font-size: 12px;
  }
  .technology-map {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px 22px;
  }
  .technology-map h3 {
    font-size: 16px;
  }
  .certification-page .technology-map p,
  .certification-page .cert-journey p {
    font-size: 12px;
  }
  .cert-journey {
    gap: 32px 22px;
  }
  .cert-journey h3 {
    font-size: 17px;
  }
  .cert-journey strong {
    font-size: 11px;
  }
  .funding-layout {
    gap: 44px;
  }
  .certification-page .funding-details p {
    font-size: 13px;
  }
  .funding-number {
    margin-top: 26px;
  }
  .cert-faq-layout header {
    max-width: 400px;
  }
  .cert-faq summary {
    font-size: 13px;
  }
  .certification-page .cert-faq-answer p {
    font-size: 13px;
  }
  .cert-closing {
    background-image: none;
  }
  .cert-closing p {
    font-size: 14px;
  }
  .cert-sources {
    padding-block: 32px;
  }
  .source-links {
    gap: 10px;
    flex-direction: column;
    align-items: flex-start;
  }
  .certification-page .path-kicker {
    font-size: 11px;
  }
  .cert-role-note {
    gap: 15px;
    padding: 20px;
  }
  .certification-page .cert-role-note p {
    font-size: 12px;
  }
  .cert-role-note a {
    margin-left: 0;
  }
  .advisory-work-intro {
    max-width: 420px;
  }
  .advisory-work-intro h3 br {
    display: none;
  }
  .advisory-work-intro h3 {
    max-width: 360px;
  }
  .advisory-work-icon {
    margin-bottom: 16px;
  }
  .scope-diagram {
    padding: 25px 20px;
  }
  .scope-nodes {
    gap: 9px;
  }
  .scope-nodes span {
    font-size: 10px;
  }
  .certification-page .scope-diagram > p {
    font-size: 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .domain-disclosure summary > svg,
  .cert-faq summary > svg {
    transition: none;
  }
}
/* Evidence links are primary reading actions, including on small touchscreens. */
.provider-link a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 13px;
}
.source-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 13px;
}
.funding-lead > a,
.funding-details > div > a,
.cert-intro > div > a,
.cert-scope-layout > div > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 13px;
}
@media (max-width: 767px) {
  .source-links {
    gap: 0;
  }
  .provider-link a {
    font-size: 13px;
  }
}
@media (min-width: 768px) {
  .advisory-work-intro {
    max-width: 400px;
  }
}
.certification-page main section[id] {
  scroll-margin-top: var(--nav-h);
}
