﻿/* MACONIA underpages
   Shared extension layer for the final homepage system. The homepage files stay untouched. */

body.subpage {
  background: #f3f2ee;
}

.subpage main {
  overflow: hidden;
}

.subpage .site-header .brand img {
  filter: brightness(0);
}

.subpage .nav-item > .nav-menu-button.is-current::after,
.subpage .nav-item > .nav-direct-link.is-current::after {
  width: 100%;
}

.subpage .section-head .section-intro {
  max-width: 850px;
  margin-top: 1.35rem;
  color: #1b1b1b;
  font-size: var(--type-body);
}

.subpage .dark-section .section-head::after {
  background:
    linear-gradient(var(--orange), var(--orange)) left center / 34px 8px no-repeat,
    linear-gradient(#373734, #373734) 44px center / calc(100% - 44px) 1px no-repeat;
}

.subpage .dark-section .section-head .section-kicker,
.subpage .dark-section .section-head .section-intro {
  color: #aaa9a3;
}

.button-secondary-dark {
  color: #fff;
  border: 1px solid rgba(255,255,255,.45);
  background: transparent;
}

.button-secondary-dark:hover {
  color: #11110f;
  border-color: #fff;
  background: #fff;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 500;
}

.text-link::after {
  content: "\2192";
  color: #ff5a24;
  transition: transform .2s ease;
}

.text-link:hover::after {
  transform: translateX(4px);
}

.dark-section .text-link,
.dark-panel .text-link {
  color: #fff;
}

.graphic-cross {
  position: absolute;
  top: 0;
  right: clamp(1.5rem, 4vw, 5rem);
  width: clamp(100px, 12vw, 190px);
  height: clamp(120px, 14vw, 220px);
  pointer-events: none;
  opacity: .8;
}

.graphic-cross::before,
.graphic-cross::after {
  content: "";
  position: absolute;
  top: -25%;
  right: 46%;
  width: 1.5px;
  height: 150%;
  transform-origin: center;
}

.graphic-cross::before {
  background: linear-gradient(180deg, transparent, #ff5a24 35%, rgba(255,90,36,.2) 80%, transparent);
  transform: rotate(31deg);
}

.graphic-cross::after {
  background: linear-gradient(180deg, transparent, rgba(255,90,36,.22) 22%, #ff5a24 62%, transparent);
  transform: rotate(-31deg);
}

/* Hero */
.sub-hero {
  position: relative;
  min-height: 680px;
  overflow: hidden;
  color: #fff;
  background: #11110f;
}

.sub-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(13,13,12,.99) 0%, rgba(13,13,12,.97) 36%, rgba(13,13,12,.72) 63%, rgba(13,13,12,.38) 100%),
    linear-gradient(180deg, rgba(13,13,12,.18), rgba(13,13,12,.5)),
    var(--hero-image, url("assets/images/hero-orange-reflection.jpg")) center / cover no-repeat;
}

.sub-hero.is-light {
  color: #11110f;
  background: #f3f2ee;
}

.sub-hero.is-light::before {
  background:
    linear-gradient(90deg, rgba(243,242,238,1) 0%, rgba(243,242,238,.98) 52%, rgba(243,242,238,.76) 78%, rgba(243,242,238,.52) 100%),
    linear-gradient(180deg, rgba(243,242,238,.82), transparent 32%, rgba(243,242,238,.18)),
    var(--hero-image, url("assets/images/hero-orange-reflection.jpg")) center / cover no-repeat;
}

.sub-hero-inner {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: 680px;
  align-items: center;
  padding-top: 7rem;
  padding-bottom: 9.25rem;
}

.sub-hero-copy {
  display: flex;
  width: min(66%, 950px);
  flex-direction: column;
  align-items: flex-start;
}

.sub-hero .section-kicker {
  color: #c3c3c3;
}

.sub-hero.is-light .section-kicker {
  color: #65645e;
}

.sub-hero h1 {
  max-width: 980px;
  font-size: var(--type-hero);
  font-weight: 400;
  line-height: 1.015;
  letter-spacing: -.032em;
  text-wrap: balance;
}

.sub-hero-description {
  max-width: 670px;
  margin-top: 1.65rem;
  color: #c3c3c3;
  font-size: clamp(1.05rem, .4vw + .98rem, 1.3rem);
  line-height: 1.55;
}

.sub-hero.is-light .sub-hero-description {
  color: #1b1b1b;
}

.sub-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
  margin-top: 2.35rem;
}

.sub-hero-portrait::before {
  background:
    linear-gradient(90deg, rgba(243,242,238,1) 0%, rgba(243,242,238,.98) 48%, rgba(243,242,238,.2) 78%),
    var(--hero-image) 86% 24% / min(48vw, 720px) auto no-repeat;
}

/* ISMS reference detail page
   The remaining service pages intentionally keep the previous layout until
   this pattern has been reviewed and approved. */
.detail-page-pattern {
  --service-section-space: var(--section-space);
}

.detail-page-pattern .sub-hero,
.detail-page-pattern .sub-hero-inner {
  min-height: 720px;
}

.detail-page-pattern .sub-hero {
  background-color: #0d0d0c;
  background-image: none;
}

.detail-page-pattern .sub-hero-background {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.detail-page-pattern .graphic-cross {
  z-index: 3;
}

.detail-page-pattern .sub-hero::before {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(13,13,12,.97) 0%, rgba(13,13,12,.9) 36%, rgba(13,13,12,.5) 65%, rgba(13,13,12,.08) 100%),
    linear-gradient(180deg, rgba(13,13,12,.08), rgba(13,13,12,.26));
}

.detail-page-pattern .sub-hero-inner {
  align-items: center;
  padding-top: 8.25rem;
  padding-bottom: 6.5rem;
}

.detail-page-pattern .sub-hero-copy {
  width: min(64%, 900px);
}

.detail-page-pattern .sub-hero h1 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.detail-page-pattern .service-client-logo-strip {
  margin-top: 0;
}

/* Use broad paper-tone chapters instead of switching every section. */
.detail-page-pattern main > .briefing-intro,
.detail-page-pattern main > .briefing-intro + .section-space,
.detail-page-pattern main > .briefing-intro + .section-space + .section-space,
.detail-page-pattern main > .service-client-logo-strip + .section-space {
  background: #fff;
}

.detail-page-pattern main > .compact-case-reference,
.detail-page-pattern main > .compact-certificates-section,
.detail-page-pattern main > .service-client-logo-strip,
.detail-page-pattern main > .contact-form-section {
  background: #f3f2ee;
}

.detail-page-pattern main > .section-space,
.detail-page-pattern main > .briefing-reasons,
.detail-page-pattern main > .compact-module.section-space {
  padding-block: var(--service-section-space);
}

.detail-page-pattern .briefing-intro {
  padding-block: var(--service-section-space);
}

.detail-page-pattern .briefing-intro + .section-space {
  padding-top: 0;
}

.detail-page-pattern .section-head {
  margin-bottom: clamp(3.5rem, 6vw, 6rem);
}

/* Keep the homepage hierarchy intact on the reference page. */
.detail-page-pattern .briefing-intro-copy > p:not(.section-kicker),
.detail-page-pattern .section-head .section-intro,
.detail-page-pattern .numbered-item p,
.detail-page-pattern .info-card p,
.detail-page-pattern .briefing-reason-row p,
.detail-page-pattern .compact-certificate p,
.detail-page-pattern .related-card p,
.detail-page-pattern .compact-case-reference .compact-case-main > p:not(.section-kicker),
.detail-page-pattern .compact-case-facts dd,
.detail-page-pattern .faq-answer p,
.detail-page-pattern .contact-form-section .section-intro {
  color: #1b1b1b;
  font-size: var(--type-body);
  font-weight: 400;
  line-height: 1.6;
}

.detail-page-pattern .section-kicker,
.detail-page-pattern .related-card > span:first-child,
.detail-page-pattern .compact-case-facts dt {
  font-size: 1rem;
  font-weight: 450;
  letter-spacing: .14em;
}

.detail-page-pattern .section-head h2,
.detail-page-pattern .briefing-intro-copy h2 {
  font-size: var(--type-h2);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.045em;
}

.detail-page-pattern main > section:not(.sub-hero) p:not(.section-kicker) {
  font-size: var(--type-body);
  font-weight: 400;
  line-height: 1.6;
}

.detail-page-pattern .dark-section p:not(.section-kicker),
.detail-page-pattern .dark-section .section-intro {
  color: #c3c3c3;
}

.detail-page-pattern main h2 {
  font-size: var(--type-h2);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.045em;
}

.detail-page-pattern main h3 {
  font-size: var(--type-h3);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.025em;
}

.detail-page-pattern main h4 {
  font-size: var(--type-h4);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -.025em;
}

.detail-page-pattern .info-card {
  min-height: 310px;
  padding: clamp(1.5rem, 2.1vw, 2.25rem);
}

.detail-page-pattern .info-card .line-icon {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  margin-bottom: clamp(2.5rem, 4vw, 4rem);
}

.detail-page-pattern .info-card h3 {
  min-height: 2.25em;
  margin-top: 0;
  font-size: var(--type-h3);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.025em;
}

@media (min-width: 901px) {
  .detail-page-pattern .info-card h3 {
    max-width: 100%;
    min-height: 2.36em;
    font-size: clamp(1rem, 1vw, var(--type-h4));
    line-height: 1.18;
    letter-spacing: -.035em;
    overflow-wrap: anywhere;
    word-break: normal;
  }
}

.detail-page-pattern .info-card p {
  margin-top: 1rem;
}

.detail-page-pattern .split-module {
  min-height: 500px;
}

.detail-page-pattern .split-media {
  min-height: 500px;
}

.detail-page-pattern .split-copy {
  padding: clamp(3rem, 4.5vw, 5rem);
}

.detail-page-pattern .split-copy h2 {
  font-size: var(--type-h3);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.025em;
}

.detail-page-pattern .split-module.is-dark .text-link {
  color: #fff;
}

.detail-page-pattern .split-module.is-dark .section-kicker,
.detail-page-pattern .split-module.is-dark .split-copy p:not(.section-kicker) {
  color: #c3c3c3;
}

.detail-page-pattern .split-module.is-dark .text-link:hover {
  color: var(--orange);
}

.detail-page-pattern .compact-case-card,
.detail-page-pattern .compact-case-card figure {
  min-height: 470px;
}

.detail-page-pattern .compact-case-card {
  grid-template-columns: minmax(0, .9fr) minmax(480px, 1.1fr);
}

.detail-page-pattern .compact-case-copy {
  padding: clamp(2.75rem, 4vw, 4.5rem);
}

.detail-page-pattern .compact-case-copy h2 {
  margin-top: 1rem;
  font-size: clamp(2rem, 2.65vw, 3.25rem);
}

.detail-page-pattern .compact-case-reference .compact-case-card {
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr);
  min-height: 390px;
  overflow: hidden;
  border: 1px solid #cac8c1;
  color: #1b1b1b;
  background: #fff;
}

.detail-page-pattern .compact-case-reference .compact-case-card figure {
  min-height: 390px;
}

.detail-page-pattern .compact-case-reference .compact-case-card figure::after {
  background: linear-gradient(90deg, transparent 70%, rgba(17,17,15,.08));
}

.detail-page-pattern .compact-case-reference .compact-case-card img {
  filter: saturate(.82) contrast(1.03);
}

.detail-page-pattern .compact-case-reference .compact-case-copy {
  --case-copy-pad: clamp(2rem, 3.2vw, 3.5rem);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: stretch;
  justify-content: stretch;
  padding: 0;
  color: #1b1b1b;
  background: #fff;
}

.detail-page-pattern .compact-case-reference .compact-case-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  padding: var(--case-copy-pad);
}

.detail-page-pattern .compact-case-reference .compact-case-main h2 {
  max-width: 760px;
  margin-top: .8rem;
  font-size: var(--type-h2);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.045em;
}

.detail-page-pattern .compact-case-reference .compact-case-main > p:not(.section-kicker) {
  max-width: 760px;
  margin-top: 1rem;
}

.detail-page-pattern .compact-case-reference .text-link {
  margin-top: 1.35rem;
  color: var(--orange);
}

.detail-page-pattern .compact-case-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid #cac8c1;
}

.detail-page-pattern .compact-case-facts > div {
  min-width: 0;
  padding: 1.25rem clamp(1rem, 1.6vw, 1.6rem);
  border-right: 1px solid #cac8c1;
}

.detail-page-pattern .compact-case-facts > div:first-child {
  padding-left: var(--case-copy-pad);
}

.detail-page-pattern .compact-case-facts > div:last-child {
  border-right: 0;
}

.detail-page-pattern .compact-case-facts dt {
  color: #65645e;
  font-size: 1rem;
  font-weight: 450;
  letter-spacing: .14em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.detail-page-pattern .compact-case-facts dd {
  margin: .55rem 0 0;
  font-size: 1rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.detail-page-pattern .compact-case-meta {
  margin-top: .85rem;
}

.detail-page-pattern .related-card {
  min-height: 290px;
  padding: clamp(1.5rem, 2.1vw, 2.25rem);
}

.detail-page-pattern .related-card > span:first-child {
  flex: 0 0 auto;
}

.detail-page-pattern .related-card h3 {
  min-height: 2.4em;
  margin-top: 1.75rem;
  font-size: var(--type-h3);
  font-weight: 400;
  line-height: 1.12;
}

.detail-page-pattern .compact-certificate h3 {
  font-size: var(--type-h3);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -.025em;
}

.detail-page-pattern .compact-certificates-section + .section-space {
  padding-top: 0;
}

.detail-page-pattern .briefing-reason-row h3 {
  font-size: clamp(1.2rem, 1.35vw, 1.55rem);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -.025em;
}

.detail-page-pattern .briefing-reason-row p {
  font-size: clamp(1.45rem, 1.8vw, 1.8rem);
  font-weight: 300;
  line-height: 1.2;
}

.detail-page-pattern .related-card p {
  min-height: 4.8em;
  margin-top: 1rem;
}

.detail-page-pattern .related-card .text-link {
  margin-top: auto;
  padding-top: 1.4rem;
}

.detail-page-pattern .contact-person-copy p,
.detail-page-pattern .contact-person-copy > span {
  color: #c3c3c3;
}

.detail-page-pattern .faq-list {
  margin-top: 0;
}

.detail-page-pattern .contact-form-section .section-intro {
  max-width: 820px;
}

.detail-page-pattern .section-head h2,
.detail-page-pattern .briefing-intro h2,
.detail-page-pattern .split-copy h2,
.detail-page-pattern .compact-case-copy h2,
.detail-page-pattern .faq-list summary {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

@media (max-width: 900px) {
  .detail-page-pattern .compact-case-card {
    grid-template-columns: 1fr;
  }

  .detail-page-pattern .compact-case-reference .compact-case-card {
    grid-template-columns: 1fr;
  }

  .detail-page-pattern .compact-case-card figure,
  .detail-page-pattern .split-media {
    min-height: 380px;
  }
}

@media (max-width: 640px) {
  .detail-page-pattern {
    --service-section-space: var(--section-space);
  }

  .detail-page-pattern .sub-hero,
  .detail-page-pattern .sub-hero-inner {
    min-height: max(760px, 100svh);
  }

  .detail-page-pattern .sub-hero::before {
    background: linear-gradient(180deg, rgba(13,13,12,.46) 0%, rgba(13,13,12,.74) 58%, rgba(13,13,12,.96) 100%);
  }

  .detail-page-pattern .sub-hero-background {
    object-position: 63% center;
  }

  .detail-page-pattern .sub-hero-inner {
    align-items: flex-end;
    padding-top: 8rem;
    padding-bottom: 3.5rem;
  }

  .detail-page-pattern .sub-hero-copy {
    width: 100%;
  }

  .detail-page-pattern main h2,
  .detail-page-pattern .service-client-logo-strip + .section-space .section-head h2 {
    max-width: 100%;
    font-size: clamp(1.9rem, 8.2vw, 2.2rem);
    line-height: 1.04;
    overflow-wrap: break-word;
  }

  .detail-page-pattern .section-head h2 {
    overflow-wrap: anywhere;
  }

  .detail-page-pattern .briefing-intro-copy,
  .detail-page-pattern .split-copy,
  .detail-page-pattern .section-head > div:last-child,
  .detail-page-pattern .compact-case-copy {
    width: 100%;
    min-width: 0;
  }

  .detail-page-pattern .compact-case-main {
    width: auto;
    min-width: 0;
  }

  .detail-page-pattern .compact-case-main h2,
  .detail-page-pattern .split-copy h2,
  .detail-page-pattern .briefing-intro-copy h2 {
    width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .detail-page-pattern .info-card h3,
  .detail-page-pattern .related-card h3,
  .detail-page-pattern .related-card p {
    min-height: 0;
  }

  .detail-page-pattern .compact-case-facts {
    grid-template-columns: 1fr;
  }

  .detail-page-pattern .compact-case-reference .compact-case-card figure {
    width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .detail-page-pattern .compact-case-reference .compact-case-card img {
    width: 100%;
    min-width: 0;
  }

  .detail-page-pattern .compact-case-facts > div {
    border-right: 0;
    border-bottom: 1px solid #cac8c1;
  }

  .detail-page-pattern .compact-case-facts > div:last-child {
    border-bottom: 0;
  }
}

.number-item.number-value-text strong {
  font-size: clamp(2.15rem, 3.5vw, 4.25rem);
  line-height: .95;
  letter-spacing: -.055em;
}

/* Numbered editorial rows */
.numbered-list {
  border-top: 1px solid #cac8c1;
}

.numbered-item {
  display: grid;
  grid-template-columns: 90px minmax(220px, .72fr) minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 4rem);
  align-items: start;
  padding-block: clamp(1.6rem, 2.7vw, 2.6rem);
  border-bottom: 1px solid #cac8c1;
}

.numbered-item > span {
  color: #ff5a24;
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: .12em;
}

.numbered-item h3 {
  font-size: var(--type-h3);
  font-weight: 400;
  line-height: 1.12;
}

.numbered-item p {
  max-width: 760px;
  color: #1b1b1b;
}

.dark-section .numbered-list,
.dark-section .numbered-item {
  border-color: #383835;
}

.dark-section .numbered-item p {
  color: #c3c3c3;
}

/* Card families */
.info-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.info-grid-count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.info-grid-count-3,
.info-grid-count-6 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.info-grid-count-5 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.info-grid-count-5 .info-card {
  grid-column: span 2;
}

.info-grid-count-5 .info-card:nth-last-child(-n + 2) {
  grid-column: span 3;
}

.info-card {
  position: relative;
  display: flex;
  min-height: 280px;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.5rem, 2.4vw, 2.6rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: rgba(255,255,255,.32);
}

.info-card .line-icon {
  width: 32px;
  height: 32px;
  margin-bottom: auto;
  color: #ff5a24;
  stroke-width: 1.25;
}

.info-card h3 {
  margin-top: 2rem;
  font-size: var(--type-h3);
}

.info-card p {
  margin-top: .9rem;
  color: #1b1b1b;
}

.info-card .text-link {
  margin-top: auto;
  padding-top: 1.5rem;
}

.dark-section .info-grid,
.dark-section .info-card {
  border-color: #383835;
}

.dark-section .info-card {
  background: rgba(255,255,255,.018);
}

.dark-section .info-card p {
  color: #c3c3c3;
}

.dark-section .info-card:hover {
  background: rgba(255,90,36,.06);
}

.tag {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: .3rem .7rem;
  color: #ff5a24;
  border: 1px solid rgba(255,90,36,.55);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

/* Service overview and menu-inspired portfolio */
.portfolio-directory {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid #383835;
}

.directory-column {
  min-width: 0;
  padding: clamp(1.5rem, 2.3vw, 2.5rem);
  border-right: 1px solid #383835;
}

.directory-column:last-child {
  border-right: 0;
}

.directory-title {
  display: flex;
  min-height: 76px;
  align-items: center;
  gap: 1rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid #383835;
}

.directory-title .line-icon {
  flex: 0 0 36px;
  color: #ff5a24;
}

.directory-title h2,
.directory-title h3 {
  font-size: var(--type-h3);
  font-weight: 400;
}

.directory-column > p {
  min-height: 90px;
  margin: 1.25rem 0;
  color: #c3c3c3;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.55;
}

.directory-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.directory-list a {
  display: grid;
  grid-template-columns: 14px minmax(0,1fr);
  gap: .75rem;
  padding: .9rem 0;
  border-top: 1px solid #32322f;
  color: #f4f2ec;
  font-size: 1rem;
  line-height: 1.4;
}

.directory-list a::before {
  content: "\203A";
  color: #ff5a24;
  font-size: 1.4rem;
  line-height: 1;
}

.directory-list a:hover {
  color: #ff5a24;
}

/* Sector cards */
.sector-directory {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: #cac8c1;
  border: 1px solid #cac8c1;
}

.sector-directory-card {
  display: grid;
  grid-template-columns: minmax(210px, .78fr) minmax(0, 1.22fr);
  min-height: 350px;
  background: #f3f2ee;
}

.sector-directory-card figure {
  position: relative;
  min-height: 350px;
  margin: 0;
  overflow: hidden;
  background: #222;
}

.sector-directory-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.86) contrast(1.04);
  transition: transform .7s var(--ease);
}

.sector-directory-card:hover img {
  transform: scale(1.035);
}

.sector-card-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.5rem, 2.7vw, 3rem);
}

.sector-card-copy h2,
.sector-card-copy h3 {
  font-size: var(--type-h3);
}

.sector-card-copy p {
  margin-top: 1rem;
  color: #1b1b1b;
}

.sector-card-copy .text-link {
  margin-top: auto;
  padding-top: 1.5rem;
}

/* Split media module */
.split-module {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: 590px;
  background: #fff;
}

.split-media {
  position: relative;
  min-height: 520px;
  margin: 0;
  overflow: hidden;
  background: #151513;
}

.split-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.87) contrast(1.04);
}

.split-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(2rem, 5vw, 6rem);
}

.split-copy h2 {
  font-size: var(--type-h3);
  font-weight: 400;
  line-height: 1.08;
}

.split-module-aligned .split-copy {
  padding-inline: clamp(2rem, 5vw, 6rem);
}

.split-copy p:not(.section-kicker) {
  margin-top: 1.4rem;
  color: #1b1b1b;
}

.split-copy .text-link,
.split-copy .button {
  margin-top: 2rem;
}

.split-module.is-dark {
  color: #fff;
  background: #11110f;
}

.split-module.is-dark .split-copy p:not(.section-kicker) {
  color: #c3c3c3;
}

.image-marker-cross {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  width: clamp(100px, 13vw, 190px);
  height: clamp(110px, 15vw, 220px);
}

.image-marker-cross::before,
.image-marker-cross::after {
  content: "";
  position: absolute;
  top: -26%;
  right: 45%;
  width: 1.5px;
  height: 160%;
  transform-origin: center;
}

.image-marker-cross::before {
  background: linear-gradient(180deg, transparent, #ff5a24 45%, transparent);
  transform: rotate(32deg);
}

.image-marker-cross::after {
  background: linear-gradient(180deg, transparent, rgba(255,90,36,.35) 35%, #ff5a24 72%, transparent);
  transform: rotate(-32deg);
}

/* Related links / experience band */
.related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.related-grid-count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.related-grid-count-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.related-card {
  display: flex;
  min-height: 230px;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.5rem, 2.8vw, 3rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: rgba(255,255,255,.3);
  overflow-wrap: anywhere;
}

.related-card > span {
  color: #ff5a24;
  font-size: 1rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.related-card h3 {
  margin-top: auto;
  font-size: var(--type-h3);
}

.related-card .text-link {
  margin-top: 1.2rem;
}

.experience-band {
  color: #fff;
  background: #11110f;
}

.experience-band-inner {
  display: grid;
  grid-template-columns: 1.1fr 1.9fr;
  gap: clamp(2rem, 5vw, 6rem);
  align-items: center;
  padding-block: clamp(2.2rem, 4vw, 4rem);
}

.experience-band h3 {
  font-size: var(--type-h3);
  font-weight: 400;
}

.experience-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .7rem;
}

.experience-tags span {
  padding: .65rem .85rem;
  color: #c3c3c3;
  border: 1px solid #3b3b37;
  font-size: 1rem;
}

/* FAQ */
.faq-list {
  border-top: 1px solid #cac8c1;
}

.faq-list details {
  border-bottom: 1px solid #cac8c1;
}

.faq-list summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  gap: 1.5rem;
  align-items: center;
  padding: 1.55rem 0;
  color: #11110f;
  font-family: var(--font-display);
  font-size: var(--type-h4);
  font-weight: 400;
  line-height: 1.25;
  list-style: none;
  cursor: pointer;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  content: "+";
  color: #ff5a24;
  font-family: var(--font-body);
  font-size: 1.7rem;
  font-weight: 300;
  text-align: center;
}

.faq-list details[open] summary::after {
  content: "\2212";
}

.faq-answer {
  max-width: 850px;
  padding: 0 0 1.7rem;
  color: #1b1b1b;
}

/* Courses */
.course-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.course-fact {
  min-height: 180px;
  padding: clamp(1.4rem, 2.2vw, 2.3rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
}

.course-fact dt {
  color: #65645e;
  font-size: 1rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.course-fact dd {
  margin: 1rem 0 0;
  font-family: var(--font-display);
  font-size: var(--type-h3);
  line-height: 1.2;
}

.trainer-module {
  display: grid;
  grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
  min-height: 620px;
  color: #fff;
  background: #11110f;
}

.trainer-module figure {
  min-height: 620px;
  margin: 0;
  overflow: hidden;
}

.trainer-module img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}

.trainer-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(2rem, 5vw, 6rem);
}

.trainer-copy p:not(.section-kicker) {
  max-width: 680px;
  margin-top: 1.3rem;
  color: #c3c3c3;
}

/* Solution pages */
.solution-dashboard {
  position: relative;
  min-height: 480px;
  padding: clamp(2rem, 4vw, 4.5rem);
  border: 1px solid #3a3a36;
  background:
    linear-gradient(135deg, rgba(255,90,36,.12), transparent 34%),
    #151513;
}

.dashboard-topline {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.3rem;
  border-bottom: 1px solid #3a3a36;
  color: #aaa9a3;
  font-size: 1rem;
}

.dashboard-stage {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: 2rem;
  background: #3a3a36;
}

.dashboard-stage div {
  min-height: 210px;
  padding: 1.5rem;
  background: #11110f;
}

.dashboard-stage span {
  color: #ff5a24;
  font-size: 1rem;
  letter-spacing: .12em;
}

.dashboard-stage h3 {
  margin-top: 3.5rem;
  font-size: var(--type-h3);
}

.workflow-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.workflow-step {
  min-height: 300px;
  padding: clamp(1.5rem, 2.6vw, 2.8rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
}

.workflow-step > span {
  color: #ff5a24;
  font-size: 1rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.workflow-step h3 {
  margin-top: clamp(3rem, 6vw, 6rem);
}

.workflow-step p {
  margin-top: 1rem;
  color: #1b1b1b;
}

.comparison-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1rem;
}

.comparison-table th,
.comparison-table td {
  padding: 1.25rem;
  border: 1px solid #cac8c1;
  text-align: left;
  vertical-align: top;
}

.comparison-table th {
  color: #fff;
  background: #11110f;
  font-weight: 500;
}

.comparison-table th.is-accent {
  background: #ff5a24;
}

/* Team / about */
.team-grid-sub {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.team-card-sub {
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: rgba(255,255,255,.35);
}

.team-card-sub figure {
  position: relative;
  aspect-ratio: 4 / 4.2;
  margin: 0;
  overflow: hidden;
  background: #d9d8d3;
}

.team-card-sub img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  filter: saturate(.88) contrast(1.02);
}

.team-card-copy-sub {
  display: flex;
  min-height: 250px;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.5rem, 2.5vw, 2.6rem);
}

.team-card-copy-sub > span {
  color: #65645e;
  font-size: 1rem;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.team-card-copy-sub h3 {
  margin-top: .7rem;
}

.team-card-copy-sub p {
  margin-top: .85rem;
  color: #1b1b1b;
}

.team-card-copy-sub .linkedin-link {
  margin: auto 0 0 auto;
}

.statement-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.statement-card {
  min-height: 380px;
  padding: clamp(2rem, 4vw, 4.5rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
}

.statement-card > span {
  color: #ff5a24;
  font-size: 1rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.statement-card h2,
.statement-card h3 {
  margin-top: clamp(4rem, 8vw, 8rem);
}

.statement-card p {
  margin-top: 1.25rem;
  color: #1b1b1b;
}

.video-link-panel {
  position: relative;
  display: flex;
  min-height: 620px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #fff;
  background: #11110f;
}

.video-link-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(10,10,9,.45), rgba(10,10,9,.65)),
    url("assets/images/strategy-workshop.jpg") center / cover no-repeat;
}

.video-link-panel-content {
  position: relative;
  z-index: 2;
  max-width: 760px;
  padding: 2rem;
  text-align: left;
}

.video-link-panel-content h3,
.video-link-panel-content p {
  text-align: left;
}

.video-link-panel-content h3,
.split-copy h3,
.trainer-copy h3 {
  font-size: var(--type-h3);
  font-weight: 400;
}

.video-link-panel-content p {
  margin-top: 1rem;
  color: #d0cec7;
}

.play-button {
  display: inline-flex;
  width: 74px;
  height: 74px;
  align-items: center;
  justify-content: center;
  margin-top: 2rem;
  color: #11110f;
  background: #ff5a24;
  font-size: 1.5rem;
}

/* Generic CTA band */
.cta-band {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #11110f;
}

.cta-band-inner {
  display: grid;
  grid-template-columns: minmax(0,1.3fr) auto;
  gap: 3rem;
  align-items: center;
  padding-block: clamp(4rem, 7vw, 7rem);
}

.cta-band h2 {
  max-width: 900px;
}

.cta-band p {
  max-width: 760px;
  margin-top: 1rem;
  color: #c3c3c3;
}

.subpage .contact-form-section {
  scroll-margin-top: 82px;
}

.subpage .contact-form {
  align-content: start;
}

/* Word-briefing module variants */
.compact-module .section-head {
  margin-bottom: clamp(2.5rem, 4.5vw, 4.5rem);
}

.compact-metrics-bar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
}

.compact-metric {
  display: flex;
  min-height: 190px;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(1.4rem, 2.4vw, 2.5rem);
  border-right: 1px solid #cac8c1;
}

.compact-metric:last-child {
  border-right: 0;
}

.compact-metric strong {
  color: #11110f;
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 4.2vw, 4.8rem);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .95;
  overflow-wrap: anywhere;
}

.compact-metric span {
  max-width: 210px;
  margin-top: 1.6rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.45;
}

.briefing-metrics-strip {
  border-top: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: #f3f2ee;
}

.briefing-metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.briefing-metric {
  display: flex;
  min-height: 122px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.3rem;
  border-right: 1px solid #cac8c1;
  text-align: center;
}

.briefing-metric:last-child {
  border-right: 0;
}

.briefing-metric strong {
  color: #11110f;
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 3.2vw, 3.7rem);
  font-weight: 400;
  letter-spacing: -.04em;
  line-height: .95;
}

.briefing-metric span {
  margin-top: .55rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
}

.briefing-reason-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid #cac8c1;
  list-style: none;
}

.briefing-reason-row {
  display: grid;
  grid-template-columns: 72px minmax(220px, .65fr) minmax(0, 1fr);
  gap: clamp(1.25rem, 3vw, 4rem);
  align-items: start;
  padding-block: clamp(1.6rem, 2.6vw, 2.5rem);
  border-bottom: 1px solid #cac8c1;
}

.briefing-reason-row > span {
  color: #8a8882;
  font-size: 1rem;
  letter-spacing: .12em;
}

.briefing-reason-row h3 {
  font-size: var(--type-h4);
  font-weight: 400;
  line-height: 1.2;
}

.briefing-reason-row p {
  max-width: 760px;
  color: #1b1b1b;
  font-weight: 300;
}

.compact-reasons-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.compact-reason {
  display: flex;
  min-height: 300px;
  flex-direction: column;
  padding: clamp(1.5rem, 2.4vw, 2.5rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: rgba(255,255,255,.24);
}

.compact-reason > span {
  color: #ff5a24;
  font-size: 1rem;
  letter-spacing: .12em;
}

.compact-reason h3 {
  margin-top: auto;
  padding-top: 3rem;
  font-size: var(--type-h4);
  font-weight: 400;
  line-height: 1.2;
}

.compact-reason p {
  margin-top: .9rem;
  color: #1b1b1b;
  font-weight: 300;
}

.compact-certificates-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.compact-certificate {
  display: grid;
  grid-template-columns: minmax(120px, .38fr) minmax(0, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
  min-height: 220px;
  align-items: center;
  padding: clamp(1.5rem, 2.7vw, 2.8rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: rgba(255,255,255,.3);
}

.compact-certificate-mark {
  display: flex;
  min-height: 120px;
  align-items: center;
  justify-content: center;
}

.compact-certificate-mark img {
  width: 100%;
  max-width: 160px;
  max-height: 120px;
  object-fit: contain;
}

.compact-certificate h3 {
  font-size: var(--type-h4);
  font-weight: 400;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.compact-certificate p {
  margin-top: .8rem;
  color: #1b1b1b;
  font-weight: 300;
  overflow-wrap: anywhere;
}

.compact-case-card {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, .88fr);
  min-height: 540px;
  color: #fff;
  background: #11110f;
}

.compact-case-card figure {
  position: relative;
  min-height: 540px;
  margin: 0;
  overflow: hidden;
}

.compact-case-card figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 58%, rgba(17,17,15,.48));
}

.compact-case-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.82) contrast(1.05);
}

.compact-case-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(2rem, 4vw, 4.5rem);
}

.compact-case-copy h2 {
  margin-top: 1.25rem;
  font-size: clamp(2rem, 3.2vw, 3.7rem);
  font-weight: 400;
  line-height: 1.06;
}

.compact-case-copy > p:not(.section-kicker) {
  margin-top: 1.25rem;
  color: #c3c3c3;
  font-weight: 300;
}

.compact-case-copy .text-link {
  margin-top: 2rem;
  color: #fff;
}

.compact-case-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1.2rem;
  margin: 1.15rem 0 0;
  padding: 0;
  color: #aaa9a3;
  font-size: 1rem;
  list-style: none;
}

.compact-case-meta li {
  display: flex;
  align-items: center;
  gap: .55rem;
}

.compact-case-meta li::before {
  width: 5px;
  height: 5px;
  background: #ff5a24;
  content: "";
}

.compact-logo-strip {
  padding-block: clamp(2.5rem, 4vw, 4rem);
  border-top: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: #ebeae5;
}

.compact-logo-label {
  margin-bottom: 1.5rem;
  color: #65645e;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.compact-logo-row {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.compact-client-logo {
  display: flex;
  min-height: 100px;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  color: #77766f;
  background: rgba(255,255,255,.25);
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: .06em;
  text-align: center;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  word-break: normal;
}

.compact-client-logo img {
  width: auto;
  max-width: 130px;
  height: auto;
  max-height: 54px;
  filter: grayscale(1);
  opacity: .58;
}

.compact-testimonial-track {
  display: flex;
  gap: 1px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  background: #cac8c1;
  border: 1px solid #cac8c1;
}

.compact-testimonial-track::-webkit-scrollbar {
  display: none;
}

.compact-testimonial {
  display: flex;
  min-width: min(880px, 82vw);
  min-height: 390px;
  flex: 0 0 min(880px, 82vw);
  flex-direction: column;
  justify-content: space-between;
  margin: 0;
  padding: clamp(2rem, 4.5vw, 5rem);
  scroll-snap-align: start;
  background: #fff;
}

.compact-testimonial blockquote {
  position: relative;
  max-width: 760px;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 3.35rem);
  font-weight: 400;
  line-height: 1.13;
}

.compact-testimonial blockquote::before {
  display: block;
  margin-bottom: 1.2rem;
  color: #ff5a24;
  content: "\201C";
  font-size: 3.5rem;
  line-height: .5;
}

.compact-testimonial figcaption {
  display: flex;
  flex-direction: column;
  margin-top: 3rem;
  color: #1b1b1b;
}

.compact-testimonial figcaption strong {
  font-weight: 500;
}

.compact-testimonial figcaption span {
  margin-top: .25rem;
  color: #65645e;
  font-size: 1rem;
  font-weight: 300;
}

.compact-memberships-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.compact-membership {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
  min-height: 210px;
  align-items: center;
  padding: clamp(1.5rem, 2.7vw, 2.8rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
}

.compact-membership-mark {
  display: flex;
  min-height: 100px;
  align-items: center;
  justify-content: center;
}

.compact-membership-mark img {
  width: 100%;
  max-width: 130px;
  max-height: 90px;
  object-fit: contain;
  filter: grayscale(1);
}

.compact-membership h3 {
  font-size: var(--type-h4);
  font-weight: 400;
}

.compact-membership p {
  margin-top: .75rem;
  color: #1b1b1b;
  font-weight: 300;
}

.simple-page-header {
  position: relative;
  min-height: 300px;
  overflow: hidden;
  background: #f3f2ee;
}

.simple-page-header.is-dark {
  color: #fff;
  background: #11110f;
}

.simple-page-header-inner {
  display: flex;
  min-height: 300px;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  padding-top: 7.25rem;
  padding-bottom: clamp(2.5rem, 4vw, 3.25rem);
}

.simple-page-header h1 {
  max-width: 1040px;
  font-size: var(--type-hero);
  font-weight: 400;
  letter-spacing: -.032em;
  line-height: 1.015;
}

.simple-page-header-inner > p:not(.section-kicker) {
  max-width: 760px;
  margin-top: 1.5rem;
  color: #1b1b1b;
  font-size: clamp(1.05rem, .4vw + .98rem, 1.3rem);
  font-weight: 300;
  line-height: 1.55;
}

.simple-page-header.is-dark .section-kicker,
.simple-page-header.is-dark .simple-page-header-inner > p:not(.section-kicker) {
  color: #c3c3c3;
}

.simple-page-header .button {
  margin-top: 2.1rem;
}

/* Responsive */
@media (max-width: 1180px) {
  .sub-hero-copy {
    width: 78%;
  }

  .portfolio-directory,
  .info-grid,
  .workflow-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .info-grid-count-5 .info-card,
  .info-grid-count-5 .info-card:nth-last-child(-n + 2) {
    grid-column: auto;
  }

  .directory-column:nth-child(2n) {
    border-right: 0;
  }

  .directory-column:nth-child(-n+2) {
    border-bottom: 1px solid #383835;
  }

  .sector-directory-card {
    grid-template-columns: 1fr;
  }

  .sector-directory-card figure {
    min-height: 260px;
  }

  .compact-reasons-grid,
  .compact-logo-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .related-grid-count-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

@media (max-width: 900px) {
  .sub-hero,
  .sub-hero-inner {
    min-height: 720px;
  }

  .sub-hero::before {
    background:
      linear-gradient(90deg, rgba(13,13,12,.98), rgba(13,13,12,.86)),
      linear-gradient(180deg, rgba(13,13,12,.2), rgba(13,13,12,.65)),
      var(--hero-image) center / cover no-repeat;
  }

  .sub-hero.is-light::before,
  .sub-hero-portrait::before {
    background:
      linear-gradient(90deg, rgba(243,242,238,.98), rgba(243,242,238,.8)),
      var(--hero-image) center / cover no-repeat;
  }

  .sub-hero-copy {
    width: 78%;
  }

  .numbered-item {
    grid-template-columns: 58px minmax(0,1fr);
  }

  .numbered-item p {
    grid-column: 2;
  }

  .split-module,
  .trainer-module {
    grid-template-columns: 1fr;
  }

  .split-module-aligned .split-copy {
    padding-left: clamp(2rem, 5vw, 6rem);
  }

  .split-media,
  .trainer-module figure {
    min-height: 440px;
  }

  .sector-directory {
    grid-template-columns: 1fr;
  }

  .team-grid-sub,
  .course-facts {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .related-grid {
    grid-template-columns: 1fr;
  }

  .experience-band-inner,
  .cta-band-inner {
    grid-template-columns: 1fr;
  }

  .experience-tags {
    justify-content: flex-start;
  }

  .compact-metrics-bar,
  .compact-memberships-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .compact-certificates-grid {
    grid-template-columns: 1fr;
  }

  .compact-certificate {
    grid-template-columns: minmax(96px, 150px) minmax(0, 1fr);
  }

  .briefing-reason-row {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .briefing-reason-row p {
    grid-column: 2;
  }

  .compact-metric:nth-child(2n) {
    border-right: 0;
  }

  .compact-metric:nth-child(-n + 2) {
    border-bottom: 1px solid #cac8c1;
  }

  .compact-case-card {
    grid-template-columns: 1fr;
  }

  .compact-case-card figure {
    min-height: 440px;
  }
}

@media (max-width: 640px) {
  .sub-hero,
  .sub-hero-inner {
    min-height: max(740px, 100svh);
  }

  .sub-hero-inner {
    align-items: flex-end;
    padding-top: 8rem;
    padding-bottom: 3rem;
  }

  .sub-hero-copy {
    width: 100%;
  }

  .sub-hero h1 {
    font-size: clamp(1.85rem, 8.7vw, 3.25rem);
    line-height: 1.035;
    letter-spacing: -.035em;
  }

  .sub-hero-description {
    margin-top: 1.35rem;
    font-size: 1rem;
  }

  .sub-hero-actions {
    display: grid;
    width: 100%;
  }

  .sub-hero-actions .button,
  .sub-hero-actions .button-secondary-dark {
    width: 100%;
  }

  .portfolio-directory,
  .info-grid,
  .workflow-grid,
  .team-grid-sub,
  .course-facts,
  .statement-grid {
    grid-template-columns: 1fr;
  }

  .directory-column {
    border-right: 0;
    border-bottom: 1px solid #383835;
  }

  .directory-column:last-child {
    border-bottom: 0;
  }

  .info-card,
  .workflow-step {
    border-bottom: 1px solid #cac8c1;
  }

  .numbered-item {
    grid-template-columns: 1fr;
    gap: .75rem;
  }

  .numbered-item p {
    grid-column: 1;
  }

  .sector-directory-card {
    min-height: 0;
  }

  .sector-card-copy {
    min-height: 290px;
  }

  .dashboard-stage {
    grid-template-columns: 1fr;
  }

  .comparison-table {
    display: block;
    overflow-x: auto;
  }

  .graphic-cross {
    right: -.5rem;
  }

  .compact-metrics-bar,
  .compact-reasons-grid,
  .compact-certificates-grid,
  .compact-memberships-grid {
    grid-template-columns: 1fr;
  }

  .briefing-metrics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .briefing-metric:nth-child(2n) {
    border-right: 0;
  }

  .briefing-metric:nth-child(-n + 2) {
    border-bottom: 1px solid #cac8c1;
  }

  .briefing-reason-row {
    grid-template-columns: 1fr;
    gap: .65rem;
  }

  .briefing-reason-row p {
    grid-column: 1;
  }

  .compact-metric,
  .compact-metric:nth-child(2n) {
    min-height: 150px;
    border-right: 0;
    border-bottom: 1px solid #cac8c1;
  }

  .compact-metric:last-child {
    border-bottom: 0;
  }

  .compact-certificate,
  .compact-membership {
    grid-template-columns: 96px minmax(0, 1fr);
  }

  .compact-logo-row {
    grid-template-columns: 1fr;
  }

  .compact-case-card,
  .compact-case-card figure {
    min-height: 0;
  }

  .compact-case-card figure {
    aspect-ratio: 4 / 3;
  }

  .compact-testimonial {
    min-width: calc(100vw - 3rem);
    min-height: 350px;
    flex-basis: calc(100vw - 3rem);
  }

  .simple-page-header,
  .simple-page-header-inner {
    min-height: 350px;
  }

  .simple-page-header h1 {
    font-size: clamp(1.85rem, 8.7vw, 3.25rem);
    line-height: 1.035;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sector-directory-card img,
  .text-link::after {
    transition: none;
  }
}

/* Briefing-specific page architecture */
.services-briefing-directory {
  padding-top: clamp(3.5rem, 6vw, 6rem);
}

.service-category-block {
  padding-block: clamp(3.5rem, 6vw, 6rem);
  border-top: 1px solid #cac8c1;
}

.service-category-head {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
  margin-bottom: 2.5rem;
}

.service-category-head > span {
  color: #8a8882;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 300;
}

.service-category-head > span::after {
  display: block;
  width: 34px;
  height: 3px;
  margin-top: .7rem;
  background: var(--orange);
  content: "";
}

.service-category-head h2 {
  font-size: var(--type-h2);
  font-weight: 400;
}

.service-category-head p {
  max-width: 720px;
  margin-top: .6rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
}

.service-overview-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-left: 85px;
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.service-overview-card {
  position: relative;
  display: flex;
  min-height: 300px;
  flex-direction: column;
  padding: 1.6rem;
  color: #11110f;
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: #fff;
}

.service-overview-card .line-icon {
  width: 30px;
  height: 30px;
  color: var(--orange);
}

.service-overview-card h3 {
  margin-top: 1.8rem;
  font-size: var(--type-h4);
  font-weight: 400;
}

.service-overview-card p {
  margin-top: 1rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.55;
}

.service-overview-card > span {
  margin-top: auto;
  align-self: flex-end;
  color: var(--orange);
  font-size: 1.4rem;
}

.services-briefing-directory .portfolio-directory {
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
  background: #fff;
}

.services-briefing-directory .directory-column {
  color: #11110f;
  border-right-color: #cac8c1;
}

.services-briefing-directory .directory-column > p,
.services-briefing-directory .directory-list a,
.services-briefing-directory .directory-list a:hover {
  color: #1b1b1b;
}

.services-briefing-directory .directory-list a {
  border-bottom-color: #deddd8;
}

.services-briefing-directory .directory-title .line-icon {
  color: var(--orange);
}

.branch-overview-grid {
  padding-top: clamp(3.5rem, 6vw, 6rem);
}

.briefing-intro-copy {
  max-width: 900px;
  margin-inline: 0;
  text-align: left;
}

.briefing-intro-copy .section-kicker {
  display: block;
  text-align: left;
}

.briefing-intro-copy h2 {
  font-size: var(--type-h2);
  font-weight: 400;
  line-height: 1.07;
}

.briefing-intro-copy .hero-rule {
  margin: 1.3rem 0 1.5rem;
}

.briefing-intro-copy > p:not(.section-kicker) {
  max-width: 800px;
  margin-inline: 0;
  color: #1b1b1b;
  font-weight: 300;
  line-height: 1.7;
}

.briefing-intro {
  padding-bottom: clamp(3.5rem, 6vw, 6rem);
}

.briefing-intro + .section-space {
  padding-top: 0;
}

.audience-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid #cac8c1;
  background: #fff;
}

.audience-columns article {
  min-height: 340px;
  padding: clamp(1.75rem, 3vw, 3rem);
}

.audience-columns article + article {
  border-left: 1px solid #cac8c1;
}

.audience-columns .line-icon {
  width: 34px;
  height: 34px;
  margin-bottom: 2rem;
  color: var(--orange);
}

.audience-columns h3 {
  margin-bottom: 1.3rem;
  font-size: var(--type-h3);
  font-weight: 400;
}

.audience-columns ul {
  display: grid;
  gap: .85rem;
  padding: 0;
  list-style: none;
}

.audience-columns li,
.audience-columns p {
  position: relative;
  padding-left: 1.25rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.55;
}

.audience-columns li::before,
.audience-columns p::before {
  position: absolute;
  top: .65em;
  left: 0;
  width: 6px;
  height: 6px;
  background: var(--orange);
  content: "";
}

.academy-course-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.academy-course-card {
  display: flex;
  min-height: 330px;
  flex-direction: column;
  padding: clamp(1.25rem, 1.6vw, 1.65rem);
  color: #11110f;
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: #fff;
}

.academy-certificate-mark {
  display: flex;
  align-items: center;
  gap: .8rem;
  color: var(--orange);
}

.academy-certificate-mark .line-icon {
  width: 34px;
  height: 34px;
}

.academy-certificate-mark small {
  color: #66645e;
  font-size: 1rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.academy-course-card h3 {
  margin-top: 1.8rem;
  font-size: var(--type-h4);
  font-weight: 400;
}

.academy-course-card p {
  margin-top: 1rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.55;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow-wrap: anywhere;
}

.academy-course-card .text-link {
  margin-top: auto;
  padding-top: 1.5rem;
}

.product-hero {
  position: relative;
  overflow: hidden;
  padding-top: 75px;
  color: #11110f;
  background: #f3f2ee;
}

.product-hero.is-dark {
  color: #fff;
  background: #10100f;
}

.product-hero-grid {
  display: grid;
  min-height: min(820px, calc(100svh - 75px));
  grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);
  align-items: center;
  gap: clamp(3rem, 6vw, 7rem);
  padding-block: clamp(5rem, 9vw, 9rem);
}

.product-hero-copy h1 {
  max-width: 820px;
  font-size: var(--type-hero);
  font-weight: 400;
  letter-spacing: -.032em;
  line-height: 1.015;
}

.product-hero-copy > p:not(.section-kicker) {
  max-width: 670px;
  margin-top: 1.5rem;
  color: #1b1b1b;
  font-size: var(--type-body);
  font-weight: 300;
  line-height: 1.6;
}

.product-hero.is-dark .section-kicker,
.product-hero.is-dark .product-hero-copy > p:not(.section-kicker) {
  color: #c3c3c3;
}

.product-device {
  position: relative;
  overflow: hidden;
  min-height: 480px;
  color: #11110f;
  border: 10px solid #20201e;
  border-bottom-width: 22px;
  background: #f7f7f4;
  box-shadow: 0 28px 75px rgba(0, 0, 0, .28);
  transform: perspective(1600px) rotateY(-5deg) rotateX(1deg);
}

.product-device::after {
  position: absolute;
  right: -4%;
  bottom: -34px;
  width: 108%;
  height: 22px;
  background: linear-gradient(90deg, #484844, #dadad5 45%, #5a5a55);
  content: "";
}

.product-device-bar {
  display: flex;
  height: 34px;
  align-items: center;
  gap: 6px;
  padding-inline: 12px;
  background: #191918;
}

.product-device-bar i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #5c5b57;
}

.product-device-bar i:first-child {
  background: var(--orange);
}

.product-ui {
  display: grid;
  min-height: 436px;
  grid-template-columns: 78px minmax(0, 1fr);
}

.product-ui-sidebar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  padding-top: 20px;
  color: #fff;
  background: #121210;
}

.product-ui-sidebar strong {
  color: var(--orange);
  font-size: 1rem;
}

.product-ui-sidebar i {
  width: 22px;
  height: 2px;
  background: #6e6d68;
}

.product-ui-main {
  padding: 1.2rem 1.4rem 1.5rem;
}

.product-ui-top {
  display: flex;
  justify-content: space-between;
  padding-bottom: 1rem;
  color: #77756f;
  border-bottom: 1px solid #dddcd6;
  font-size: 1rem;
}

.product-ui-top b {
  color: var(--orange);
}

.product-ui-main h3 {
  margin-top: 1.25rem;
  font-size: 1.25rem;
  font-weight: 400;
}

.product-ui-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
  margin-top: 1.4rem;
}

.product-ui-cards article {
  display: grid;
  min-height: 130px;
  align-content: start;
  gap: .7rem;
  padding: 1rem;
  border: 1px solid #dddcd6;
  background: #fff;
}

.product-ui-cards span {
  color: var(--orange);
  font-size: 1rem;
}

.product-ui-cards b {
  font-size: 1rem;
  font-weight: 400;
}

.product-ui-cards i {
  display: block;
  height: 5px;
  margin-top: auto;
  background: linear-gradient(90deg, var(--orange) var(--progress), #e5e4df var(--progress));
}

.product-ui-board {
  display: grid;
  height: 160px;
  grid-template-columns: 1fr 1.3fr .8fr;
  gap: .7rem;
  margin-top: .8rem;
}

.product-ui-board i {
  border: 1px solid #dddcd6;
  background: repeating-linear-gradient(180deg, #fff 0 27px, #ecebe7 28px 29px);
}

.product-ui-chart {
  display: flex;
  height: 115px;
  align-items: flex-end;
  gap: .7rem;
  margin-top: 1.3rem;
  padding: 1rem;
  border: 1px solid #dddcd6;
  background: #fff;
}

.product-ui-chart i {
  width: 18%;
  height: 45%;
  background: #242421;
}

.product-ui-chart i:nth-child(2) { height: 72%; }
.product-ui-chart i:nth-child(3) { height: 58%; background: var(--orange); }
.product-ui-chart i:nth-child(4) { height: 88%; }
.product-ui-chart i:nth-child(5) { height: 66%; }

.product-ui-main ul {
  margin: .8rem 0 0;
  padding: 0;
  list-style: none;
}

.product-ui-main li {
  display: grid;
  grid-template-columns: 8px 1fr auto;
  gap: .7rem;
  align-items: center;
  padding: .55rem .2rem;
  border-bottom: 1px solid #e5e4df;
  font-size: 1rem;
}

.product-ui-main li i {
  width: 6px;
  height: 6px;
  background: var(--orange);
}

.product-ui-main li b {
  font-weight: 400;
}

.standalone-product-view {
  max-width: 1050px;
  margin-inline: auto;
}

.briefing-video-panel {
  display: grid;
  min-height: 570px;
  grid-template-columns: 1.1fr .9fr;
  color: #fff;
  background: #11110f;
}

.briefing-video-panel figure {
  position: relative;
  min-height: 500px;
  overflow: hidden;
}

.briefing-video-panel figure::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 55%, rgba(17, 17, 15, .45));
  content: "";
}

.briefing-video-panel figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.briefing-video-panel > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(2rem, 5vw, 5rem);
}

.briefing-video-panel h2 {
  font-size: var(--type-h2);
  font-weight: 400;
}

.briefing-video-panel p:not(.section-kicker) {
  margin-top: 1.3rem;
  color: #c3c3c3;
  font-weight: 300;
  line-height: 1.6;
}

.briefing-video-panel .button {
  margin-top: 2rem;
}

.video-play {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  display: grid;
  width: 74px;
  height: 74px;
  place-items: center;
  color: #fff;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(17,17,15,.7);
  transform: translate(-50%, -50%);
}

.centered-action {
  display: flex;
  justify-content: center;
  padding-top: 2.4rem;
}

.comparison-wrap {
  overflow-x: auto;
  border: 1px solid #cac8c1;
}

.comparison-table {
  width: 100%;
  min-width: 820px;
  border-collapse: collapse;
  background: #fff;
}

.comparison-table th,
.comparison-table td {
  padding: 1.1rem 1.3rem;
  color: #1b1b1b;
  border-right: 1px solid #deddd8;
  border-bottom: 1px solid #deddd8;
  font-size: 1rem;
  font-weight: 300;
  text-align: left;
}

.comparison-table thead th,
.comparison-table tbody th {
  font-weight: 400;
}

.comparison-table .is-highlight {
  color: #fff;
  background: var(--orange);
}

.briefing-final-cta {
  background: #fff;
}

.briefing-final-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 3rem;
  padding-block: clamp(3rem, 5vw, 5rem);
  border-top: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
}

.briefing-final-inner h2 {
  max-width: 900px;
  font-size: var(--type-h2);
  font-weight: 400;
}

.briefing-final-inner p:not(.section-kicker) {
  max-width: 720px;
  margin-top: 1.2rem;
  color: #1b1b1b;
  font-weight: 300;
}

.briefing-final-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.threshold-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.threshold-card {
  min-height: 280px;
  padding: clamp(1.5rem, 3vw, 3rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: #fff;
}

.threshold-card .line-icon {
  width: 34px;
  height: 34px;
  color: var(--orange);
}

.threshold-card strong {
  display: block;
  margin-top: 2.5rem;
  font-family: var(--font-display);
  font-size: clamp(3rem, 6vw, 6.2rem);
  font-weight: 400;
  line-height: .9;
  overflow-wrap: anywhere;
}

.threshold-card p,
.threshold-notice {
  color: #1b1b1b;
  font-weight: 300;
}

.threshold-card p {
  margin-top: 1rem;
}

.threshold-notice {
  max-width: 850px;
  margin: 2.2rem auto;
  text-align: center;
}

.threshold-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1.5rem 1.8rem;
  border: 1px solid #cac8c1;
  background: #eeece6;
}

.threshold-cta h3 {
  font-weight: 400;
}

.next-step-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #3a3a37;
  border-left: 1px solid #3a3a37;
}

.solution-next {
  color: #fff;
  background: #11110f;
}

.solution-next .section-head h2 {
  color: #fff;
}

.next-step-card {
  min-height: 260px;
  padding: 2rem;
  border-right: 1px solid #3a3a37;
  border-bottom: 1px solid #3a3a37;
}

.next-step-card > span {
  color: var(--orange);
  font-family: var(--font-display);
}

.next-step-card h3 {
  margin-top: 1.7rem;
  color: #fff;
  font-weight: 400;
}

.next-step-card p {
  margin-top: 1rem;
  color: #c3c3c3;
  font-weight: 300;
}

.solution-inline-form {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: clamp(2rem, 6vw, 6rem);
  margin-top: 2.5rem;
  padding: clamp(2rem, 4vw, 4rem);
  color: #11110f;
  background: #f3f2ee;
}

.solution-inline-form h3 {
  font-size: var(--type-h3);
  font-weight: 400;
}

.solution-inline-form > div > p:not(.section-kicker) {
  margin-top: 1rem;
  color: #1b1b1b;
  font-weight: 300;
}

.meeting-booking .section-head h2 {
  color: #fff;
}

.booking-widget {
  max-width: 1080px;
  padding: 1rem;
  color: #11110f;
  background: #fff;
}

.booking-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  border-bottom: 1px solid #cac8c1;
}

.booking-toolbar button,
.booking-days button {
  min-height: 42px;
  padding: .7rem 1rem;
  border: 1px solid #cac8c1;
  background: transparent;
}

.booking-days {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.booking-days > div {
  display: grid;
  gap: .6rem;
  padding: 1rem;
  border-right: 1px solid #deddd8;
}

.booking-days b {
  padding-bottom: .6rem;
  font-weight: 400;
}

.booking-days button:hover {
  color: #fff;
  border-color: var(--orange);
  background: var(--orange);
}

.booking-widget > p {
  padding: 1rem;
  color: #66645e;
  font-size: 1rem;
}

.compact-membership-placeholder {
  display: grid;
  width: 86px;
  height: 86px;
  place-items: center;
  color: var(--orange);
  border: 1px solid #cac8c1;
  font-family: var(--font-display);
  font-size: 2rem;
}

.career-opening {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  min-height: 500px;
  border: 1px solid #cac8c1;
  background: #fff;
}

.career-opening > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(2rem, 5vw, 5rem);
}

.career-opening > div > span {
  color: var(--orange);
  font-size: 1rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.career-opening h3 {
  margin-top: 1.5rem;
  font-size: var(--type-h3);
  font-weight: 400;
}

.career-opening p {
  margin-top: 1rem;
  color: #1b1b1b;
  font-weight: 300;
}

.career-opening .text-link {
  margin-top: 2rem;
}

.career-opening figure {
  position: relative;
  overflow: hidden;
}

.career-opening img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.reference-grid-sub {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.reference-card-sub {
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: #fff;
}

.reference-card-sub figure {
  position: relative;
  height: 230px;
  overflow: hidden;
}

.reference-card-sub img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.8) contrast(1.05);
}

.reference-card-sub > div {
  display: flex;
  min-height: 300px;
  flex-direction: column;
  padding: 1.7rem;
}

.reference-card-sub span,
.reference-card-sub small {
  color: var(--orange);
  font-size: 1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.reference-card-sub h3 {
  margin-top: 1.25rem;
  font-size: var(--type-h3);
  font-weight: 400;
}

.reference-card-sub p {
  margin-top: 1rem;
  color: #1b1b1b;
  font-weight: 300;
}

.reference-card-sub small {
  margin-top: auto;
  padding-top: 1.4rem;
  color: #66645e;
  line-height: 1.5;
}

.related-card p {
  margin-top: 1rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.5;
}

/* Course-detail modules follow the compact Word briefing instead of the
   full-height homepage hero cadence. */
.course-hero {
  position: relative;
  min-height: 680px;
  overflow: hidden;
  color: #fff;
  background: #11110f;
}

.course-hero::before {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(13,13,12,.99) 0%, rgba(13,13,12,.94) 42%, rgba(13,13,12,.48) 72%, rgba(13,13,12,.28) 100%),
    linear-gradient(180deg, rgba(13,13,12,.14), rgba(13,13,12,.56)),
    var(--hero-image) center / cover no-repeat;
  content: "";
}

.course-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 680px;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, .65fr);
  gap: clamp(3rem, 7vw, 8rem);
  align-items: end;
  padding-top: 10rem;
  padding-bottom: clamp(4rem, 7vw, 6.5rem);
}

.course-hero-copy h1 {
  max-width: 850px;
  font-size: clamp(3.1rem, 5vw, 5.45rem);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: .98;
}

.course-hero-copy > p:not(.section-kicker) {
  max-width: 690px;
  margin-top: 1.45rem;
  color: #c3c3c3;
  font-size: var(--type-body);
  font-weight: 300;
  line-height: 1.6;
}

.course-hero-copy .button {
  margin-top: 2rem;
}

.course-hero-info {
  align-self: end;
  padding: clamp(1.5rem, 2.4vw, 2.5rem);
  border-top: 1px solid rgba(255,255,255,.4);
  border-bottom: 1px solid rgba(255,255,255,.25);
  background: rgba(15,15,14,.7);
  backdrop-filter: blur(14px);
}

.course-hero-info > span {
  color: var(--orange);
  font-size: 1rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.course-hero-info dl {
  margin-top: 1.3rem;
}

.course-hero-info dl > div {
  display: grid;
  grid-template-columns: 78px 1fr;
  gap: 1rem;
  padding: .8rem 0;
  border-top: 1px solid rgba(255,255,255,.18);
}

.course-hero-info dt {
  color: #9f9e99;
  font-size: 1rem;
}

.course-hero-info dd {
  margin: 0;
  color: #fff;
  font-size: 1rem;
  font-weight: 300;
}

.course-fact .line-icon {
  width: 30px;
  height: 30px;
  margin-bottom: 1.6rem;
  color: var(--orange);
}

.course-benefit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid #cac8c1;
  background: rgba(255,255,255,.38);
}

.course-benefit-column {
  padding: clamp(2rem, 3.4vw, 3.8rem);
}

.course-benefit-column + .course-benefit-column {
  border-left: 1px solid #cac8c1;
}

.course-benefit-column h3 {
  margin-bottom: 1.6rem;
  font-size: var(--type-h3);
}

.course-benefit-column ul {
  display: grid;
  gap: .95rem;
  padding: 0;
  list-style: none;
}

.course-benefit-column li {
  position: relative;
  padding-left: 1.55rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.55;
}

.course-benefit-column li::before {
  position: absolute;
  top: .12em;
  left: 0;
  color: var(--orange);
  content: "\2713";
}

.principle-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.principle-card {
  min-height: 300px;
  padding: clamp(1.7rem, 3vw, 3.2rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: rgba(255,255,255,.32);
}

.principle-card > span {
  display: block;
  margin-bottom: clamp(3rem, 6vw, 6rem);
  color: var(--orange);
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: .1em;
}

.principle-card h3 {
  font-size: var(--type-h3);
}

.principle-card p {
  margin-top: 1rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.55;
}

.trainer-team-module {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .85fr);
  min-height: 520px;
  color: #fff;
  background: #11110f;
}

.trainer-team-module > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(2rem, 5vw, 6rem);
}

.trainer-team-module h3 {
  font-size: var(--type-h2);
  font-weight: 400;
}

.trainer-team-module p:not(.section-kicker) {
  max-width: 690px;
  margin-top: 1.25rem;
  color: #c3c3c3;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.6;
}

.trainer-team-module .text-link {
  margin-top: 2rem;
  color: #fff;
}

.trainer-team-module figure {
  position: relative;
  min-height: 520px;
  margin: 0;
  overflow: hidden;
}

.trainer-team-module img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.open-question-list {
  border-top: 1px solid #cac8c1;
}

.open-question-row {
  display: flex;
  min-height: 66px;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: 1rem .35rem;
  color: #1b1b1b;
  border-bottom: 1px solid #cac8c1;
  font-size: 1rem;
  font-weight: 300;
}

.open-question-row i {
  color: #11110f;
  font-size: 1.45rem;
  font-style: normal;
  font-weight: 300;
}

.open-questions .button {
  margin-top: 2rem;
}

.trainer-copy .linkedin-link {
  position: static;
  margin-top: 2rem;
}

@media (max-width: 1180px) {
  .academy-course-grid,
  .reference-grid-sub,
  .service-overview-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-hero-grid {
    grid-template-columns: 1fr;
  }

  .product-device {
    width: min(100%, 850px);
  }
}

@media (max-width: 900px) {
  .open-questions ol,
  .principle-grid,
  .trainer-team-module,
  .course-hero-grid,
  .course-benefit-grid,
  .audience-columns,
  .briefing-video-panel,
  .briefing-final-inner,
  .solution-inline-form,
  .career-opening {
    grid-template-columns: 1fr;
  }

  .audience-columns article + article {
    border-top: 1px solid #cac8c1;
    border-left: 0;
  }

  .course-hero-grid {
    min-height: 760px;
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .principle-grid {
    grid-template-columns: 1fr;
  }

  .trainer-team-module figure {
    min-height: 380px;
  }

  .course-benefit-column + .course-benefit-column {
    border-top: 1px solid #cac8c1;
    border-left: 0;
  }

  .threshold-grid,
  .next-step-grid {
    grid-template-columns: 1fr;
  }

  .threshold-cta {
    align-items: flex-start;
    flex-direction: column;
  }

  .booking-days {
    overflow-x: auto;
    grid-template-columns: repeat(5, minmax(150px, 1fr));
  }

  .career-opening figure {
    min-height: 380px;
  }
}

@media (max-width: 640px) {
  .course-hero,
  .course-hero-grid {
    min-height: 780px;
  }

  .course-hero-grid {
    padding-top: 7.5rem;
    padding-bottom: 3rem;
  }

  .course-hero-copy h1 {
    font-size: clamp(2.5rem, 12vw, 3.65rem);
  }

  .course-hero-info dl > div {
    grid-template-columns: 1fr;
    gap: .25rem;
  }

  .academy-course-grid,
  .reference-grid-sub,
  .service-overview-cards {
    grid-template-columns: 1fr;
  }

  .service-category-head {
    grid-template-columns: 1fr;
  }

  .service-overview-cards {
    margin-left: 0;
  }

  .product-hero-grid {
    min-height: auto;
    padding-block: 5rem 3rem;
  }

  .product-device {
    min-height: 360px;
    border-width: 6px;
    transform: none;
  }

  .product-ui {
    min-height: 320px;
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .product-ui-sidebar {
    gap: 16px;
  }

  .product-ui-sidebar strong {
    font-size: 1rem;
  }

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

  .product-ui-cards article:nth-child(n+3),
  .product-ui-board {
    display: none;
  }

  .briefing-final-actions,
  .briefing-final-actions .button,
  .threshold-cta .button {
    width: 100%;
  }

  .briefing-video-panel figure {
    min-height: 320px;
  }
}

/* Company, career, references and academy details use the approved detail-page
   rhythm while retaining the module architecture from their Word briefings. */
.about-detail-pattern .sub-hero {
  color: #11110f;
  background: #f3f2ee;
}

.about-detail-pattern .sub-hero::before {
  background:
    linear-gradient(90deg, rgba(243,242,238,.99) 0%, rgba(243,242,238,.94) 42%, rgba(243,242,238,.48) 70%, rgba(243,242,238,.14) 100%),
    linear-gradient(180deg, rgba(243,242,238,.06), rgba(243,242,238,.2));
}

.about-detail-pattern .sub-hero-background {
  object-position: center 42%;
}

.about-detail-pattern .sub-hero-description {
  color: #1b1b1b;
}

.about-detail-pattern main > .briefing-metrics-strip,
.references-detail-pattern main > .compact-testimonials-section,
.course-detail-pattern main > .course-benefits,
.career-detail-pattern main > .career-employer {
  background: #f3f2ee;
}

.vision-mission-head {
  max-width: 820px;
}

.vision-mission-head h2 {
  margin-top: .8rem;
}

.vision-mission-head .hero-rule {
  margin: 1.4rem 0 0;
}

.vision-mission-stack {
  margin-top: clamp(4rem, 7vw, 7rem);
  border-top: 1px solid #cac8c1;
}

.vision-mission-stack article {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 6rem);
  padding: clamp(2.5rem, 4.5vw, 4.5rem) 0;
  border-bottom: 1px solid #cac8c1;
}

.vision-mission-stack article > span {
  color: var(--orange);
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: .14em;
}

.vision-mission-stack h3 {
  font-size: var(--type-h3);
}

.vision-mission-stack p {
  max-width: 1000px;
  margin-top: 1rem;
  color: #1b1b1b;
}

.about-detail-pattern .team {
  background: #fff;
}

.career-job-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.career-job-card {
  display: flex;
  min-height: 360px;
  flex-direction: column;
  justify-content: space-between;
  gap: 2.5rem;
  padding: clamp(1.75rem, 3vw, 3.5rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: rgba(255,255,255,.55);
}

.career-job-card h3 {
  max-width: 17ch;
  margin-top: 1rem;
  font-size: var(--type-h3);
}

.career-job-card > div > p:last-child {
  max-width: 620px;
  margin-top: 1rem;
  color: #1b1b1b;
}

.career-job-card footer {
  display: flex;
  gap: 1.25rem;
  align-items: flex-end;
  justify-content: space-between;
  padding-top: 1.5rem;
  border-top: 1px solid #cac8c1;
}

.career-job-card footer > span {
  color: #686762;
  font-size: 1rem;
}

.career-job-card .text-link {
  flex: 0 0 auto;
}

.career-jobs-footer {
  display: flex;
  gap: 2rem;
  align-items: center;
  justify-content: space-between;
  padding-top: 2rem;
}

.career-jobs-footer p {
  max-width: 680px;
  color: #1b1b1b;
}

.career-benefit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.career-benefit-card {
  min-height: 300px;
  padding: clamp(1.5rem, 2.7vw, 3rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: rgba(255,255,255,.5);
}

.career-benefit-card strong {
  display: block;
  max-width: 100%;
  color: var(--orange);
  font-family: var(--font-display);
  font-size: clamp(2rem, 2.55vw, 3.25rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}

.career-benefit-card strong.is-textual {
  font-size: clamp(1.75rem, 2.15vw, 2.75rem);
  letter-spacing: -.025em;
  overflow-wrap: normal;
  white-space: nowrap;
}

.career-benefit-card h3 {
  margin-top: clamp(3rem, 5vw, 5rem);
}

.career-benefit-card p {
  margin-top: 1rem;
  color: #1b1b1b;
}

.career-benefit-list {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  border-left: 1px solid #cac8c1;
  list-style: none;
}

.career-benefit-list li {
  min-height: 92px;
  padding: 1.25rem;
  color: #1b1b1b;
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  font-size: 1rem;
  font-weight: 400;
}

.career-benefit-list li::before {
  display: block;
  width: 28px;
  height: 3px;
  margin-bottom: 1rem;
  background: var(--orange);
  content: "";
}

.career-video-frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #11110f;
}

.career-video-frame iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.career-video-launch {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  overflow: hidden;
  color: #fff;
  border: 0;
  background: #11110f;
  cursor: pointer;
  text-align: left;
}

.career-video-launch::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(17,17,15,.05) 25%, rgba(17,17,15,.78) 100%);
  content: "";
  transition: background .25s ease;
}

.career-video-launch:hover::after {
  background: linear-gradient(180deg, rgba(17,17,15,0) 15%, rgba(17,17,15,.68) 100%);
}

.career-video-launch img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}

.career-video-launch:hover img {
  transform: scale(1.015);
}

.career-video-play {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: clamp(58px, 5vw, 82px);
  aspect-ratio: 1;
  background: var(--orange);
  transform: translate(-50%, -50%);
}

.career-video-play::before {
  position: absolute;
  top: 50%;
  left: 53%;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 16px solid #fff;
  content: "";
  transform: translate(-50%, -50%);
}

.career-video-launch-copy {
  position: absolute;
  z-index: 2;
  right: clamp(1.5rem, 3vw, 3rem);
  bottom: clamp(1.5rem, 3vw, 3rem);
  left: clamp(1.5rem, 3vw, 3rem);
  display: grid;
  gap: .3rem;
}

.career-video-launch-copy strong {
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2vw, 2rem);
  font-weight: 400;
}

.career-video-launch-copy small {
  color: #e0ded8;
  font-size: 1rem;
}

.reference-filters {
  display: flex;
  gap: 0;
  margin-bottom: 2rem;
  overflow-x: auto;
  border-bottom: 1px solid #cac8c1;
  scrollbar-width: none;
}

.reference-filters::-webkit-scrollbar {
  display: none;
}

.reference-filters button {
  flex: 0 0 auto;
  padding: 1rem 1.35rem;
  color: #5f5e59;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  font: inherit;
  font-size: 1rem;
  cursor: pointer;
}

.reference-filters button[aria-pressed="true"] {
  color: #11110f;
  border-bottom-color: var(--orange);
}

.reference-card-sub[hidden] {
  display: none;
}

.references-detail-pattern .compact-testimonial-track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  overflow: visible;
  border-top: 1px solid #cac8c1;
  border-right: 0;
  border-bottom: 0;
  border-left: 1px solid #cac8c1;
  background: transparent;
}

.references-detail-pattern .compact-testimonial {
  min-width: 0;
  min-height: 430px;
  flex: initial;
  padding: clamp(2rem, 3vw, 3.5rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
}

.references-detail-pattern .compact-testimonial blockquote {
  max-width: none;
  font-size: clamp(1.55rem, 1.75vw, 2.15rem);
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.references-detail-pattern .compact-testimonial blockquote::before {
  margin-bottom: 1rem;
  font-size: 2.75rem;
}

.references-detail-pattern .compact-testimonial figcaption {
  margin-top: 2.5rem;
}

.course-audience-grid {
  display: grid;
  grid-template-columns: minmax(280px, .85fr) repeat(2, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
  background: #fff;
}

.course-audience-intro,
.course-audience-card {
  min-height: 460px;
  padding: clamp(2rem, 3.5vw, 4rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
}

.course-audience-intro {
  color: #fff;
  background: #11110f;
}

.course-audience-intro .section-kicker {
  color: #c3c3c3;
}

.course-audience-intro h2 {
  margin-top: .8rem;
  font-size: var(--type-h3) !important;
  line-height: 1.08 !important;
}

.course-audience-intro .hero-rule {
  margin: 1.35rem 0;
}

.course-audience-card p,
.course-audience-card li {
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.55;
}

.course-audience-intro > p:last-child {
  color: #c3c3c3;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.55;
}

.course-audience-card .line-icon {
  width: 42px;
  height: 42px;
  margin-bottom: clamp(3rem, 5vw, 5rem);
  color: var(--orange);
}

.course-audience-card h3 {
  margin-bottom: 1rem;
}

.course-audience-label {
  margin-bottom: 1.15rem;
  color: #66645e !important;
}

.course-audience-card ul {
  display: grid;
  gap: .72rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.course-audience-card li {
  position: relative;
  padding-left: 1rem;
}

.course-audience-card li::before {
  position: absolute;
  top: .7em;
  left: 0;
  width: 5px;
  height: 5px;
  background: var(--orange);
  content: "";
}

.course-detail-pattern .course-facts {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.course-detail-pattern .course-fact {
  min-height: 230px;
  padding: clamp(1.25rem, 2vw, 2rem);
}

.course-detail-pattern .course-fact dd {
  font-size: clamp(1rem, 1.2vw, 1.25rem);
  font-weight: 400;
  overflow-wrap: anywhere;
}

.course-benefit-column li::before {
  content: "\2713";
}

.course-trainer-card {
  display: grid;
  grid-template-columns: minmax(320px, .72fr) minmax(0, 1.28fr);
  min-height: 570px;
  color: #fff;
  background: #11110f;
}

.course-trainer-card figure {
  position: relative;
  min-height: 570px;
  margin: 0;
  overflow: hidden;
}

.course-trainer-card figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 24%;
}

.course-trainer-card > div {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(2.5rem, 5vw, 6rem);
}

.course-trainer-card h3 {
  margin-top: .8rem;
  font-size: var(--type-h2) !important;
}

.course-trainer-card p:not(.section-kicker) {
  max-width: 760px;
  margin-top: 1.2rem;
  color: #c3c3c3 !important;
}

.course-trainer-focus strong {
  display: block;
  margin-bottom: .4rem;
  color: #fff;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.course-trainer-card .text-link {
  margin-top: 2rem;
  color: #fff;
}

.course-trainer-card .linkedin-link {
  position: absolute;
  right: 2rem;
  bottom: 2rem;
}

@media (max-width: 1180px) {
  .career-job-grid,
  .career-benefit-grid,
  .references-detail-pattern .compact-testimonial-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .career-benefit-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .course-audience-grid {
    grid-template-columns: 1fr 1fr;
  }

  .course-audience-intro {
    grid-column: 1 / -1;
    min-height: 0;
  }

  .course-detail-pattern .course-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .vision-mission-stack article,
  .course-audience-grid,
  .course-trainer-card {
    grid-template-columns: 1fr;
  }

  .vision-mission-stack article {
    gap: 1.25rem;
  }

  .career-job-card footer,
  .career-jobs-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .course-audience-intro {
    grid-column: auto;
  }

  .course-audience-intro,
  .course-audience-card {
    min-height: 0;
  }

  .course-trainer-card figure {
    min-height: 460px;
  }
}

@media (max-width: 640px) {
  .career-video-play {
    top: 38%;
    width: 54px;
  }

  .career-video-launch-copy {
    right: 1rem;
    bottom: .8rem;
    left: 1rem;
    gap: .1rem;
  }

  .career-video-launch-copy strong {
    font-size: 1.1rem;
  }

  .about-detail-pattern .sub-hero::before {
    background: linear-gradient(180deg, rgba(243,242,238,.2) 0%, rgba(243,242,238,.84) 45%, rgba(243,242,238,.99) 100%);
  }

  .career-job-grid,
  .career-benefit-grid,
  .career-benefit-list,
  .references-detail-pattern .compact-testimonial-track,
  .course-detail-pattern .course-facts {
    grid-template-columns: 1fr;
  }

  .career-jobs-footer .button {
    width: 100%;
    justify-content: space-between;
  }

  .career-job-card {
    min-height: 0;
  }

  .career-job-card footer {
    align-items: stretch;
  }

  .reference-filters {
    margin-inline: calc(var(--page-gutter) * -1);
    padding-inline: var(--page-gutter);
  }

  .course-trainer-card figure {
    min-height: 390px;
  }
}

/* August 2026: shared visual system for product, academy and portfolio pages */
.solution-detail .product-hero-grid {
  min-height: min(740px, calc(100svh - 75px));
  padding-block: clamp(4.5rem, 7vw, 7rem);
}

.solution-detail .product-hero-copy h1 {
  font-size: clamp(3rem, 5.15vw, 5.4rem);
  line-height: 1.025;
}

.solution-detail main > .briefing-intro,
.solution-detail main > .comparison-section,
.solution-detail main > .solution-next,
.academy-overview main > .academy-metrics-section,
.academy-overview main > .compact-testimonials-section {
  background: #f3f2ee;
}

.solution-detail main > .open-questions,
.solution-detail main > section:has(.faq-list) {
  background: #fff;
}

/* NIS360 comparison: compact status matrix instead of a text-heavy table. */
.comparison-wrap {
  border: 0;
  background: #fff;
}

.comparison-table {
  min-width: 980px;
  border: 1px solid #cac8c1;
  border-collapse: separate;
  border-spacing: 0;
}

.comparison-table th,
.comparison-table td {
  height: 64px;
  padding: .9rem 1rem;
  border-right: 0;
  border-bottom: 1px solid #deddd8;
  font-size: 1rem;
  text-align: center;
  vertical-align: middle;
}

.comparison-table thead th {
  color: #11110f;
  background: #eeece6;
}

.comparison-table th:first-child {
  width: 34%;
  text-align: left;
}

.comparison-table tbody th {
  color: #1b1b1b;
  background: #fff;
  font-weight: 300;
}

.comparison-table .comparison-best {
  border-right: 1px solid rgba(255, 90, 36, .28);
  border-left: 1px solid rgba(255, 90, 36, .28);
  background: #fff1eb;
}

.comparison-table thead .comparison-best {
  color: #fff;
  background: var(--orange);
}

.comparison-status {
  display: inline-grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: .9rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1;
}

.comparison-status.is-yes {
  color: #14824a;
}

.comparison-status.is-limited {
  color: var(--orange);
}

.comparison-status.is-no {
  color: #8a8882;
  border-color: transparent;
  font-size: 1.15rem;
}

.comparison-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-top: 1.4rem;
  color: #66645e;
  font-size: 1rem;
}

.comparison-legend > span {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
}

.comparison-scroll-hint {
  display: none;
  margin-bottom: 1rem;
  color: #66645e;
  font-size: 1rem;
  font-weight: 300;
}

.comparison-legend .comparison-status {
  width: 22px;
  height: 22px;
  font-size: .78rem;
}

/* Product next steps now use the same editorial rhythm as service pages. */
.solution-next {
  color: #11110f;
  background: #f3f2ee;
}

.solution-next .section-head h2 {
  color: #11110f;
}

.solution-step-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid #cac8c1;
  list-style: none;
}

.solution-step-row {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  padding: clamp(1.7rem, 3vw, 2.8rem) 0;
  border-bottom: 1px solid #cac8c1;
}

.solution-step-row > span {
  color: var(--orange);
  font-family: var(--font-display);
  font-size: 1rem;
  letter-spacing: .12em;
}

.solution-step-row h3 {
  font-size: var(--type-h3);
  font-weight: 400;
}

.solution-step-row p {
  max-width: 860px;
  margin-top: .65rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.6;
}

/* Betroffenheitscheck: the values remain prominent, but no longer dominate. */
.threshold-card {
  min-height: 230px;
}

.threshold-card strong {
  margin-top: 1.8rem;
  font-size: clamp(2.15rem, 3.4vw, 3.65rem);
  line-height: 1;
}

.threshold-notice {
  margin-block: 1.8rem;
}

/* Academy overview follows the five-card Word layout with visible icons. */
.academy-overview .academy-courses {
  background: #fff;
}

.academy-overview .academy-course-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.academy-overview .academy-course-card {
  min-height: 390px;
  padding: clamp(1.4rem, 2vw, 2rem);
}

.academy-overview .academy-certificate-mark {
  display: grid;
  min-height: 78px;
  align-content: start;
  justify-items: start;
  gap: .8rem;
}

.academy-overview .academy-certificate-mark .line-icon {
  width: 42px;
  height: 42px;
}

.academy-overview .academy-certificate-mark small {
  color: #66645e;
  font-size: .9rem;
  letter-spacing: .08em;
}

.academy-overview .academy-course-card h3 {
  min-height: 3.1em;
  margin-top: 1.35rem;
  font-size: clamp(1.15rem, 1.25vw, 1.4rem);
  line-height: 1.12;
}

.academy-overview .academy-course-card p {
  -webkit-line-clamp: 3;
  hyphens: auto;
  overflow-wrap: break-word;
}

.academy-course-provider {
  display: block;
  margin-top: 1.25rem;
  color: #8a8882;
  font-size: .9rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.academy-metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
  background: rgba(255,255,255,.45);
}

.academy-metric {
  display: flex;
  min-height: 205px;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.5rem, 2.6vw, 2.6rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
}

.academy-metric .line-icon {
  width: 36px;
  height: 36px;
  color: var(--orange);
}

.academy-metric strong {
  margin-top: auto;
  color: #11110f;
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 2.6vw, 2.8rem);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1;
}

.academy-metric span {
  margin-top: .65rem;
  color: #1b1b1b;
  font-size: 1rem;
  font-weight: 300;
}

.academy-overview .compact-testimonial-track {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  overflow: visible;
  border-top: 1px solid #cac8c1;
  border-left: 1px solid #cac8c1;
}

.academy-overview .compact-testimonial {
  width: auto;
  min-width: 0;
  min-height: 310px;
  flex: initial;
  padding: clamp(1.7rem, 3vw, 3rem);
  border-right: 1px solid #cac8c1;
  border-bottom: 1px solid #cac8c1;
  background: rgba(255,255,255,.5);
}

.academy-overview .compact-testimonial blockquote {
  max-width: 100%;
  font-size: clamp(1.15rem, 1.45vw, 1.45rem);
  line-height: 1.45;
  overflow-wrap: break-word;
}

.academy-overview .compact-testimonial figcaption span {
  overflow-wrap: anywhere;
}

/* Portfolio overview: calmer rhythm and distinct service icons. */
.services-overview .simple-page-header {
  background: #fff;
}

.services-overview .services-briefing-directory {
  padding-top: 0;
  background: #f3f2ee;
}

.services-overview .service-category-block {
  padding-block: clamp(3.5rem, 5vw, 5.5rem);
}

.services-overview .service-category-block:nth-child(even) {
  background: rgba(255,255,255,.52);
  box-shadow: 0 0 0 100vmax rgba(255,255,255,.52);
  clip-path: inset(0 -100vmax);
}

.services-overview .service-overview-card {
  min-height: 280px;
}

.services-overview .service-overview-card .line-icon {
  width: 36px;
  height: 36px;
}

@media (max-width: 1180px) {
  .academy-overview .academy-course-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .academy-overview .academy-course-card h3 {
    min-height: 0;
  }
}

@media (max-width: 900px) {
  .academy-metrics-grid,
  .academy-overview .compact-testimonial-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .solution-step-row {
    grid-template-columns: 54px minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .solution-detail .product-hero-copy h1 {
    font-size: clamp(2.45rem, 11vw, 3.55rem);
  }

  .academy-overview .academy-course-grid,
  .academy-metrics-grid,
  .academy-overview .compact-testimonial-track {
    grid-template-columns: 1fr;
  }

  .academy-overview .academy-course-card,
  .academy-metric,
  .academy-overview .compact-testimonial {
    min-height: 0;
  }

  .solution-step-row {
    grid-template-columns: 1fr;
    gap: .75rem;
  }

  .comparison-wrap {
    margin-inline: calc(var(--page-gutter) * -1);
    padding-left: var(--page-gutter);
  }

  .comparison-scroll-hint {
    display: block;
  }
}
