/* Source: /site-shell-v45.css */
/* Bergermann Consulting — shared scroll header, progress control and hover integrity. */

:root {
  --bc-header-full: 94px;
  --bc-header-compact: 68px;
  --bc-hover-line: rgba(49, 94, 32, 0.34);
  --bc-hover-surface: #ffffff;
  --bc-hover-inset: rgba(49, 94, 32, 0.055);
  --bc-hover-shadow: rgba(31, 47, 34, 0.15);
  --bc-progress-track: rgba(49, 94, 32, 0.22);
  --bc-progress-stroke: #4f9137;
  --bc-progress-surface: rgba(247, 248, 243, 0.94);
  --bc-progress-ink: #23451e;
}

/* Mobile polish: keep the two-column tool grid complete and simplify projects. */
@media (max-width: 600px) {
  #root .tool-grid > .tool-card:nth-child(-n + 6) {
    border-bottom-width: 1px !important;
    border-bottom-style: solid !important;
  }

  #root .tool-grid > .tool-card:nth-last-child(-n + 2) {
    border-bottom-width: 0 !important;
  }

  #root .sector-list .arrow {
    display: none !important;
  }
}

html[data-theme="dark"] {
  --bc-hover-line: rgba(203, 225, 191, 0.31);
  --bc-hover-surface: #27342b;
  --bc-hover-inset: rgba(203, 225, 191, 0.045);
  --bc-hover-shadow: rgba(0, 0, 0, 0.32);
  --bc-progress-track: rgba(211, 230, 201, 0.18);
  --bc-progress-stroke: #91bd78;
  --bc-progress-surface: rgba(26, 37, 30, 0.94);
  --bc-progress-ink: #e7eee2;
}

html {
  scroll-padding-top: calc(var(--bc-header-compact) + 20px);
}

/* The header remains present from the first pixel and morphs into its compact state. */
#root .site-header,
.detail-header,
.legal-header {
  z-index: 60;
  transition:
    height 380ms cubic-bezier(0.22, 1, 0.36, 1),
    min-height 380ms cubic-bezier(0.22, 1, 0.36, 1),
    padding 380ms cubic-bezier(0.22, 1, 0.36, 1),
    background-color 280ms ease,
    border-color 280ms ease,
    box-shadow 320ms ease,
    backdrop-filter 320ms ease;
  will-change: height, min-height;
}

#root .site-header,
.detail-header {
  position: fixed !important;
  inset: 0 0 auto 0;
  width: 100%;
}

.legal-header {
  position: sticky !important;
  top: 0;
  min-height: var(--bc-header-full) !important;
  padding-inline: max(clamp(24px, 5vw, 72px), calc((100vw - 1320px) / 2)) !important;
}

.legal-header img {
  display: block;
  width: clamp(225px, 16vw, 285px) !important;
}

/* Keep the legal-page footer in the same fixed composition as the homepage. */
.legal-footer {
  min-height: 120px;
  padding: 25px 5vw;
  display: flex;
  align-items: center;
  gap: 4vw;
  color: rgba(255, 255, 255, 0.45);
  font-size: 9px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.legal-footer-brand {
  display: flex;
  align-items: center;
  margin-right: auto;
  color: #fff;
}

.legal-footer-brand img {
  display: block;
  width: 220px;
  height: auto;
}

.legal-footer > p {
  margin: 0;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

.legal-footer-links {
  display: flex;
  align-items: center;
  gap: 22px;
}

.legal-footer a {
  color: #b9dd9f;
  text-decoration: none;
}

.legal-footer > span {
  margin-left: 0;
}

#root .site-header .brand-logo,
.detail-header .detail-logo,
.legal-header img,
#root .site-header .header-actions,
.detail-header .detail-header-actions {
  transition:
    width 380ms cubic-bezier(0.22, 1, 0.36, 1),
    gap 380ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 380ms cubic-bezier(0.22, 1, 0.36, 1);
}

#root .site-header.is-compact,
.detail-header.is-compact {
  height: var(--bc-header-compact) !important;
  box-shadow: 0 12px 34px rgba(17, 25, 19, 0.13);
}

.legal-header.is-compact {
  min-height: var(--bc-header-compact) !important;
  box-shadow: 0 12px 34px rgba(17, 25, 19, 0.13);
}

html[data-theme="dark"] #root .site-header.is-compact,
html[data-theme="dark"] .detail-header.is-compact,
html[data-theme="dark"] .legal-header.is-compact {
  background-color: rgba(14, 20, 16, 0.9) !important;
  border-bottom-color: rgba(185, 221, 159, 0.19) !important;
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(20px) saturate(118%);
  -webkit-backdrop-filter: blur(20px) saturate(118%);
}

html[data-theme="light"] #root .site-header.is-compact,
html[data-theme="light"] .detail-header.is-compact,
html[data-theme="light"] .legal-header.is-compact {
  background-color: rgba(247, 248, 243, 0.9) !important;
  border-bottom-color: rgba(49, 95, 43, 0.2) !important;
  box-shadow: 0 14px 36px rgba(35, 51, 38, 0.12);
  backdrop-filter: blur(20px) saturate(112%);
  -webkit-backdrop-filter: blur(20px) saturate(112%);
}

#root .site-header.is-compact .brand-logo,
.detail-header.is-compact .detail-logo,
.legal-header.is-compact img {
  width: 195px !important;
}

#root .site-header.is-compact .header-actions,
.detail-header.is-compact .detail-header-actions {
  gap: 17px !important;
}

#root .site-header.is-compact .contact-link {
  padding-block: 8px !important;
}

/* The topic bar docks beneath the compact header on desktop deep-dive pages. */
@media (min-width: 901px) {
  .topic-nav {
    top: var(--bc-header-compact) !important;
  }
}

@media (max-width: 900px) {
  .legal-header {
    padding-inline: clamp(24px, 5vw, 72px) !important;
  }
}

/* Keep the mobile dropdown attached to the header at both header heights. */
#root .site-header nav.open {
  top: 100% !important;
}

/* All elevated grid fields retain a complete one-pixel perimeter on hover. */
#root .service-card,
#root .mandate-list article,
#root .tool-card,
#root .deep-dive-topic-grid a,
#root .project-experience-grid article,
.project-experience-grid article,
.definition-grid article,
.failure-grid article,
.support-grid article,
.landscape-card {
  transition:
    background-color 220ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease,
    outline-color 220ms ease;
}

/* The tool area is a true 4 Ã— 2 / 2 Ã— 4 grid, including its row lines. */
#root .tool-grid > .tool-card {
  border-right-width: 1px;
  border-right-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}

@media (min-width: 901px) {
  #root .tool-grid > .tool-card:nth-child(4n) {
    border-right-width: 0;
  }

  #root .tool-grid > .tool-card:nth-last-child(-n + 4) {
    border-bottom-width: 0;
  }
}

@media (max-width: 900px) {
  #root .tool-grid > .tool-card:nth-child(2n) {
    border-right-width: 0;
  }

  #root .tool-grid > .tool-card:nth-last-child(-n + 2) {
    border-bottom-width: 0;
  }
}

@media (hover: hover) {
  #root .service-card:hover,
  #root .mandate-list article:hover,
  #root .tool-card:hover,
  #root .deep-dive-topic-grid a:hover,
  #root .project-experience-grid article:hover,
  .project-experience-grid article:hover,
  .definition-grid article:hover,
  .failure-grid article:hover,
  .support-grid article:hover,
  .landscape-card:hover {
    z-index: 3;
    transform: none !important;
    --bc-card-content-lift: -3px;
    background: var(--bc-hover-surface) !important;
    outline: 1px solid var(--bc-hover-line);
    outline-offset: -1px;
    border-color: var(--bc-hover-line) !important;
    box-shadow:
      inset 0 0 0 1px var(--bc-hover-line),
      inset 0 14px 34px var(--bc-hover-inset) !important;
  }
}

@media (hover: hover) {
  html[data-theme="light"] #root .service-card:hover,
  html[data-theme="light"] #root .mandate-list article:hover,
  html[data-theme="light"] #root .tool-card:hover,
  html[data-theme="light"] #root .deep-dive-topic-grid a:hover,
  html[data-theme="light"] #root .project-experience-grid article:hover,
  html[data-theme="light"] .project-experience-grid article:hover,
  html[data-theme="dark"] #root .service-card:hover,
  html[data-theme="dark"] #root .mandate-list article:hover,
  html[data-theme="dark"] #root .tool-card:hover,
  html[data-theme="dark"] #root .deep-dive-topic-grid a:hover,
  html[data-theme="dark"] #root .project-experience-grid article:hover,
  html[data-theme="dark"] .project-experience-grid article:hover {
    background: var(--bc-hover-surface) !important;
  }
}

/* Lift the card contents while the structural grid lines remain pixel-stable. */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  #root .service-card > *,
  #root .mandate-list article > *,
  #root .tool-card > *,
  #root .deep-dive-topic-grid a > *,
  .project-experience-grid article > *,
  .definition-grid article > *,
  .failure-grid article > *,
  .support-grid article > *,
  .landscape-card > * {
    translate: 0 var(--bc-card-content-lift, 0);
    transition: translate 220ms cubic-bezier(0.22, 1, 0.36, 1);
  }
}

/* Correct the connected grids at the tablet and ultrawide layouts as well. */
@media (min-width: 601px) and (max-width: 900px) {
  #root .deep-dive-topic-grid > a,
  #root .deep-dive-topic-grid > a:last-child {
    border-right: 1px solid var(--dd-line, var(--line));
    border-bottom: 0;
  }

  #root .deep-dive-topic-grid > a:nth-child(2n) {
    border-right-width: 0;
  }

  #root .deep-dive-topic-grid > a:nth-child(-n + 2) {
    border-bottom: 1px solid var(--dd-line, var(--line));
  }
}

@media (min-width: 1900px) and (min-aspect-ratio: 19/9) {
  #root .mandate-list > article,
  #root .mandate-list > article:nth-child(2n),
  #root .mandate-list > article:nth-last-child(-n + 2) {
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }

  #root .mandate-list > article:nth-child(4n) {
    border-right-width: 0;
  }

  #root .mandate-list > article:nth-child(n + 5) {
    border-bottom-width: 0;
  }
}

.source-links a,
.theme-toggle {
  transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

html[data-theme="light"] .source-links a:hover {
  color: #315f2b;
  border-color: rgba(49, 94, 43, 0.5);
  background: #fff;
}

html[data-theme="dark"] .source-links a:hover {
  color: #d9ead0;
  border-color: rgba(185, 221, 159, 0.46);
  background: rgba(255, 255, 255, 0.055);
}

html[data-theme="dark"] .theme-toggle:hover {
  color: #eef4e9;
  border-color: rgba(185, 221, 159, 0.55);
  background: rgba(255, 255, 255, 0.075);
}

/* Start the portrait accent flush with the photo; keep its caption extension. */
#root .profile-photo::after {
  top: 0 !important;
  bottom: 0 !important;
}

/* Preserve the intended dark project-experience band inside the light theme. */
html[data-theme="light"] .content-section.project-experience {
  color: #f2f6ef;
  background:
    radial-gradient(circle at 88% 12%, rgba(103, 179, 70, 0.22), transparent 30%),
    radial-gradient(circle at 10% 92%, rgba(73, 119, 81, 0.17), transparent 28%),
    linear-gradient(128deg, #16251b, #26392d);
}

html[data-theme="light"] .content-section.project-experience h2,
html[data-theme="light"] .content-section.project-experience h3 {
  color: #f3f7f1;
}

html[data-theme="light"] .content-section.project-experience .section-head p:not(.kicker),
html[data-theme="light"] .content-section.project-experience .project-experience-grid p {
  color: rgba(239, 245, 236, 0.72);
}

html[data-theme="light"] .content-section.project-experience .project-experience-grid article {
  background: rgba(255, 255, 255, 0.025);
  border-color: rgba(185, 221, 159, 0.18);
}

@media (hover: hover) {
  html[data-theme="light"] .content-section.project-experience .project-experience-grid article:hover {
    background: rgba(255, 255, 255, 0.075) !important;
    border-color: rgba(203, 225, 191, 0.34) !important;
    outline-color: rgba(203, 225, 191, 0.34);
    box-shadow:
      inset 0 0 0 1px rgba(203, 225, 191, 0.28),
      inset 0 14px 34px rgba(203, 225, 191, 0.045) !important;
  }
}

#root .deep-dive-topic-grid a:focus-visible,
.topic-nav a:focus-visible,
.source-links a:focus-visible {
  outline: 2px solid var(--bc-progress-stroke);
  outline-offset: -3px;
}

/* Ohertannen-inspired circular scroll progress, adapted to this colour system. */
.bc-scroll-progress {
  position: fixed;
  right: max(22px, calc(env(safe-area-inset-right) + 18px));
  bottom: max(22px, calc(env(safe-area-inset-bottom) + 18px));
  z-index: 45;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  -webkit-appearance: none;
  appearance: none;
  overflow: hidden;
  background-clip: padding-box;
  isolation: isolate;
  filter: none;
  color: var(--bc-progress-ink);
  background: var(--bc-progress-surface);
  box-shadow: 0 14px 36px rgba(17, 25, 19, 0.18);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(13px) scale(0.92);
  transition:
    opacity 260ms ease,
    visibility 260ms ease,
    transform 340ms cubic-bezier(0.22, 1, 0.36, 1),
    background-color 220ms ease,
    box-shadow 220ms ease;
  -webkit-tap-highlight-color: transparent;
}

.bc-scroll-progress.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.bc-scroll-progress:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 18px 42px rgba(17, 25, 19, 0.24);
}

/* iOS can retain a rectangular native-button shadow after tapping. */
@media (hover: none), (pointer: coarse) {
  .bc-scroll-progress,
  .bc-scroll-progress:hover {
    box-shadow: none;
  }

  .bc-scroll-progress:hover {
    transform: translateY(0) scale(1);
  }
}

.bc-scroll-progress:focus-visible {
  outline: 2px solid var(--bc-progress-stroke);
  outline-offset: 4px;
}

.bc-scroll-progress .bc-progress-graphic {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.bc-scroll-progress circle {
  fill: none;
  stroke-width: 1.7;
}

.bc-scroll-progress .bc-progress-track {
  stroke: var(--bc-progress-track);
}

.bc-scroll-progress .bc-progress-value {
  stroke: var(--bc-progress-stroke);
  stroke-linecap: round;
}

.bc-scroll-progress .bc-progress-arrow {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

@media (max-width: 600px) {
  :root {
    --bc-header-full: 76px;
    --bc-header-compact: 62px;
  }

  .legal-main h1 {
    max-width: 100%;
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  .legal-header {
    min-height: var(--bc-header-full) !important;
    padding-inline: 24px !important;
  }

  .legal-header img {
    width: 178px !important;
  }

  .legal-footer {
    padding: 25px 5vw;
    flex-flow: row wrap;
    align-items: center;
    gap: 18px 30px;
  }

  .legal-footer-brand {
    width: 100%;
  }

  .legal-footer > p {
    display: none;
  }

  .legal-footer-links {
    width: 100%;
    flex-wrap: wrap;
    gap: 15px 22px;
  }

  #root .site-header.is-compact,
  .detail-header.is-compact {
    height: var(--bc-header-compact) !important;
  }

  .legal-header.is-compact {
    min-height: var(--bc-header-compact) !important;
  }

  #root .site-header.is-compact .brand-logo,
  .detail-header.is-compact .detail-logo,
  .legal-header.is-compact img {
    width: 164px !important;
  }

  .bc-scroll-progress {
    right: max(16px, calc(env(safe-area-inset-right) + 12px));
    bottom: max(16px, calc(env(safe-area-inset-bottom) + 12px));
    width: 48px;
    height: 48px;
  }

  /* Crisp, unclipped topic arrows on narrow Retina displays. */
  #root .deep-dive-topic-grid b {
    width: 20px;
    min-width: 20px;
    height: 20px;
    overflow: visible;
  }

  #root .deep-dive-topic-grid b::before {
    content: "";
    position: absolute;
    inset: 0;
    width: 20px;
    height: 20px;
    border: 0;
    background: var(--bc-progress-stroke);
    transform: none;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.25 14.75 14.75 5.25M8 5.25h6.75V12' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px 20px no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.25 14.75 14.75 5.25M8 5.25h6.75V12' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px 20px no-repeat;
  }

  #root .deep-dive-topic-grid b::after {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  #root .site-header,
  .detail-header,
  .legal-header,
  #root .site-header .brand-logo,
  .detail-header .detail-logo,
  .legal-header img,
  .bc-scroll-progress,
  #root .service-card,
  #root .mandate-list article,
  #root .tool-card,
  #root .deep-dive-topic-grid a,
  #root .project-experience-grid article,
  .project-experience-grid article,
  .definition-grid article,
  .failure-grid article,
  .support-grid article,
  .landscape-card {
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}

/* Final mobile override: preserve complete grid lines and remove project arrows. */
@media (max-width: 600px) {
  #root .tool-grid > .tool-card:nth-child(-n + 6) {
    border-bottom-width: 1px !important;
    border-bottom-style: solid !important;
  }

  #root .tool-grid > .tool-card:nth-last-child(-n + 2) {
    border-bottom-width: 0 !important;
  }

  #root .sector-list .arrow {
    display: none !important;
  }
}


/* Source: /fax-contact-20260905.css */
/* Keep the fax number readable and together at every breakpoint. */
.contact-fax span,
.fax-number,
.phone-number {
  white-space: nowrap;
}

#root .contact-copy .contact-mobile,
.detail-contact .contact-mobile {
  color: inherit;
  font-size: 1rem;
  line-height: 1.6;
  margin: 0 0 .4rem;
}
#root .contact-copy a.phone-number,
.detail-contact a.phone-number {
  display: inline;
  min-width: 0;
  width: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
  transform: none;
}

#root .contact-copy .contact-fax,
.detail-contact .contact-fax {
  color: inherit;
  font-size: 1rem;
  line-height: 1.6;
  margin: 0 0 1.75rem;
}

/* The existing light-theme monogram position is shared by both themes. */
@media (min-width: 901px) {
  html[data-theme] #root .profile .monogram {
    display: block !important;
    z-index: 1 !important;
    left: max(8vw, calc((100% - 1400px) / 2)) !important;
    bottom: -45px !important;
    font-size: clamp(230px, 18vw, 340px) !important;
    line-height: 0.72 !important;
    opacity: 1 !important;
    pointer-events: none !important;
  }
}

.legal-header {
  gap: 24px;
}
.legal-header-actions {
  display: contents;
}
.legal-nav {
  order: 1;
  display: flex;
  align-items: center;
  gap: 24px;
  margin-left: auto;
}
.legal-nav a {
  color: inherit;
  font: 500 13px/1.4 var(--ui-font);
  text-decoration: none;
  white-space: nowrap;
}
.legal-nav .legal-contact-link {
  padding-block: 10px;
  border-bottom: 1px solid currentColor;
}
.legal-contact-link::after {
  content: "↗";
  margin-left: 12px;
}
.legal-nav a:hover {
  color: var(--green);
}
.legal-header > .theme-toggle {
  order: 2;
  flex-shrink: 0;
  margin-left: 0;
}
.legal-language {
  order: 3;
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
}
.legal-language button {
  min-height: 40px;
  padding: 6px 2px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  opacity: .55;
}
.legal-language button[aria-pressed="true"] {
  opacity: 1;
  font-weight: 600;
}
.legal-main [hidden] {
  display: none !important;
}
@media (max-width: 760px) {
  .legal-footer {
    flex-wrap: wrap;
  }
  .legal-footer-brand,
  .legal-footer-links {
    width: 100%;
  }
  .legal-footer-links {
    flex-wrap: wrap;
  }
  .legal-footer > p {
    display: none;
  }
  .legal-header,
  .legal-header.is-compact {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 5px 18px;
    padding-top: 12px;
    padding-bottom: 8px;
  }
  .legal-header > a {
    grid-column: 1;
    grid-row: 1;
  }
  .legal-header > .theme-toggle {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }
  .legal-nav {
    grid-column: 1;
    grid-row: 2;
    margin-left: 0;
  }
  .legal-language {
    grid-column: 2;
    grid-row: 2;
    justify-self: end;
  }
  .legal-nav a {
    font-size: 13px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
}


/* Source: /quality-polish-20260905.css */
/* Targeted polish; loaded after the shared shell and contact styles. */

/* Darker text green, not a change to the logo or the brand gradients. */
html[data-theme="light"] .legal-main a:not(.back),
html[data-theme="light"] .legal-main .kicker,
html[data-theme="light"] .legal-nav a:hover {
  color: #3f7428;
}

.detail-contact-link {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  min-height: 40px;
  padding-block: 10px;
  border-bottom: 1px solid currentColor;
  color: inherit;
  font-size: 12px;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}
.detail-contact-link::after {
  content: "↗";
  margin-left: 10px;
}
html[data-theme="light"] .detail-contact-link:hover {
  color: #3f7428;
}
html[data-theme="dark"] .detail-contact-link:hover {
  color: #b9dd9f;
}
#root .site-header nav .mobile-contact-link {
  display: none;
}

/* Enlarge the hit areas without changing the visible letter size. */
#root .site-header .language button,
.detail-header .language button,
.legal-header .language button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  min-width: 36px;
  min-height: 44px;
  padding: 0;
}

@media (max-width: 900px) {
  #root .site-header nav.open .mobile-contact-link {
    display: block;
  }
  #root .site-header .header-actions,
  #root .site-header.is-compact .header-actions {
    gap: 12px !important;
    margin-right: 0;
  }
  #root .site-header .language,
  .detail-header .language,
  .legal-header .language {
    gap: 0;
  }
  #root .site-header .language > span,
  .detail-header .language > span,
  .legal-header .language > span {
    flex: 0 0 4px;
    width: 4px;
    text-align: center;
  }
}

/* Two light rows provide Home, Contact and controls without hiding anything. */
@media (max-width: 760px) {
  html:has(.detail-header) {
    --bc-header-full: 106px;
    --bc-header-compact: 96px;
  }
  .detail-header,
  .detail-header.is-compact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-rows: 44px 36px;
    gap: 4px 12px;
    height: var(--bc-header-full) !important;
    padding-block: 10px;
  }
  .detail-header.is-compact {
    height: var(--bc-header-compact) !important;
    padding-block: 5px;
  }
  .detail-header > a {
    grid-column: 1 / 3;
    grid-row: 1;
    min-width: 0;
  }
  .detail-header-actions {
    display: contents;
  }
  .detail-header-actions > .theme-toggle {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    margin: 0;
  }
  .detail-header-actions .back-link {
    grid-column: 1;
    grid-row: 2;
    display: inline-flex;
    align-items: center;
    justify-self: start;
    min-height: 36px;
    padding: 0;
    font-size: 12px;
    white-space: nowrap;
  }
  .detail-header-actions .detail-contact-link {
    grid-column: 2;
    grid-row: 2;
    min-height: 36px;
    padding-block: 0;
  }
  .detail-header-actions .language {
    grid-column: 3;
    grid-row: 2;
    justify-self: end;
  }
  .legal-header .legal-language {
    gap: 0;
  }
}

@media (max-width: 600px) {
  /* At 393px: 178 logo + 42 menu + 36 theme + 76 language + 10 gaps = 342px.
     The existing 24px gutters leave 345px. Nothing overlaps or shrinks. */
  #root .site-header {
    gap: 2px;
  }
  #root .site-header .brand,
  #root .site-header .menu-button,
  #root .site-header .header-actions {
    flex-shrink: 0;
  }
  #root .site-header .menu-button {
    width: 42px;
    min-height: 44px;
    justify-content: center;
    padding: 10px;
  }
  #root .site-header .header-actions,
  #root .site-header.is-compact .header-actions {
    gap: 6px !important;
    margin-right: 0;
  }
  .detail-hero {
    padding-top: 154px;
  }

  /* English breaks between words, not in short words such as "creates". */
  html[lang="en"] #root h1,
  html[lang="en"] #root h2,
  html[lang="en"] #root h3,
  html[lang="en"] [data-language="en"] h1,
  html[lang="en"] [data-language="en"] h2,
  html[lang="en"] [data-language="en"] h3 {
    min-width: 0;
    max-width: 100%;
    -webkit-hyphens: none !important;
    hyphens: none !important;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: balance;
  }
  html[lang="en"] #root .hero h1,
  html[lang="en"] .detail-hero h1 {
    font-size: clamp(36px, 11vw, 48px) !important;
    line-height: 1.04;
  }
  html[lang="en"] #root .section-head h2,
  html[lang="en"] #root .profile-title h2,
  html[lang="en"] #root .contact h2,
  html[lang="en"] #root .project-experience h2,
  html[lang="en"] .section-head h2,
  html[lang="en"] .detail-contact h2 {
    font-size: clamp(32px, 9.1vw, 42px) !important;
    line-height: 1.06 !important;
  }
}

/* Below the one-row width budget, retain the logo and move controls to a row. */
@media (max-width: 391px) {
  html:has(#root .site-header) {
    --bc-header-full: 108px;
    --bc-header-compact: 98px;
  }
  #root .site-header,
  #root .site-header.is-compact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 40px 44px;
    gap: 2px 12px;
    height: var(--bc-header-full) !important;
    padding-block: 10px;
  }
  #root .site-header.is-compact {
    height: var(--bc-header-compact) !important;
    padding-block: 5px;
  }
  #root .site-header .brand {
    grid-column: 1;
    grid-row: 1;
  }
  #root .site-header .header-actions {
    display: contents;
  }
  #root .site-header .theme-toggle {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }
  #root .site-header .menu-button {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
  }
  #root .site-header .language {
    grid-column: 2;
    grid-row: 2;
    justify-self: end;
  }
  #root .hero.entry-preview {
    padding-top: 156px !important;
  }
}


/* Source: /consistency-polish-20260905.css */
/* Audited consistency fixes. Existing typography, card motion and hero design remain. */

/* An intrinsic long word must not expand a grid track beyond its own card. */
.content-section.project-experience .project-experience-grid > article,
#root .steps > article {
  min-width: 0;
}
.content-section.project-experience .project-experience-grid h3 {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}
html[lang="de"] .content-section.project-experience .project-experience-grid h3 {
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 16 5 5;
  text-wrap: balance;
}

/* Constrain text locally instead of hiding a layout failure at the page edge.
   English still wraps between words first; no automatic English hyphenation. */
@media (max-width: 1100px) {
  html[lang] #root :is(h1, h2, h3, p),
  html[lang] .content-section :is(h2, h3, p),
  html[lang] .sources :is(h2, h3, p),
  html[lang] .legal-main :is(h1, h2, h3, p) {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
  }
  html[lang="de"] #root :is(h1, h2, h3, p),
  html[lang="de"] .content-section :is(h2, h3, p),
  html[lang="de"] .sources :is(h2, h3, p),
  html[lang="de"] .legal-main :is(h1, h2, h3, p) {
    -webkit-hyphens: auto;
    hyphens: auto;
  }
  html[lang="en"] [data-language="en"] :is(h2, h3, p) {
    overflow-wrap: anywhere;
  }
  html[lang="de"] #root .service-card h3,
  html[lang="de"] .landscape-card h3 {
    hyphenate-limit-chars: 16 5 5;
    text-wrap: balance;
  }
}

@media (max-width: 900px) {
  #root .steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px 24px;
  }
  #root .steps::before {
    display: none;
  }
  /* Match the existing mobile process style, without a misleading cross-row rail. */
  #root .step-dot {
    display: none;
  }
  #root .site-header .menu-button {
    min-height: 44px;
  }
  #root .site-header nav.open {
    gap: 0;
  }
  #root .site-header nav.open a,
  #root .site-header nav.open .mobile-contact-link {
    display: flex;
    align-items: center;
    min-height: 44px;
  }
}
@media (max-width: 380px) {
  #root .steps {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (min-width: 901px) {
  /* Fit the complete word Architecture inside the portrait's text column. */
  #root .profile-title h2 {
    font-size: clamp(36px, 4.2vw, 72px);
  }
}

/* One real, accessible label at every width, not a second CSS-generated name. */
@media (max-width: 600px) {
  html[lang] #root .tool-card:last-child h3 {
    font-size: 17px;
    line-height: 1.15;
    overflow-wrap: anywhere;
  }
  html[lang="de"] #root .tool-card:last-child h3 {
    -webkit-hyphens: auto;
    hyphens: auto;
  }
  html[lang] #root .tool-card:last-child h3::after {
    content: none;
    display: none;
  }
}

/* Same understated green contact band on homepage and all four topic pages.
   Worst-case end-stop plus maximum glow gives >4.5:1 against opaque white. */
html[data-theme="light"] #root .contact,
html[data-theme="light"] .detail-contact {
  background:
    radial-gradient(circle at 82% 20%, rgba(255, 255, 255, .06), transparent 27%),
    linear-gradient(125deg, #315e20 0%, #396c25 56%, #3f7428 100%);
}
html[data-theme="dark"] #root .contact,
html[data-theme="dark"] .detail-contact {
  background:
    radial-gradient(circle at 82% 20%, rgba(229, 238, 224, .08), transparent 27%),
    linear-gradient(125deg, #34512d 0%, #3f6235 58%, #4b743e 100%);
}
html[data-theme] #root .contact h2,
html[data-theme] #root .contact p,
html[data-theme] #root .contact .email-address,
html[data-theme] .detail-contact h2,
html[data-theme] .detail-contact p {
  color: #fff;
  opacity: 1;
}
html[data-theme] #root .contact-copy > p:first-child,
html[data-theme] .detail-contact-copy > p:first-child {
  font-size: 14px;
  line-height: 1.75;
}
html[data-theme] #root .contact .light-button,
html[data-theme] .detail-contact-copy > a:not(.phone-number) {
  color: #23451e;
  background: #fff;
}

/* Identical footer markup, rhythm and readable type on every route.
   The right gutter reserves the fixed back-to-top control's footprint. */
:is(#root, body) footer.bc-footer {
  display: grid;
  grid-template-columns: 220px minmax(120px, 1fr) auto auto;
  grid-template-areas: "brand focus links copyright";
  align-items: center;
  gap: 24px;
  min-height: 128px;
  padding: 32px max(90px, 5vw) 32px max(24px, 5vw);
  border-top: 1px solid rgba(203, 225, 191, .15);
  background: #1d241f;
  color: #c2ccc0;
  font: 400 12px/1.6 var(--ui-font, sans-serif);
  letter-spacing: .025em;
}
html[data-theme="light"] :is(#root, body) footer.bc-footer {
  background: #f3f5ef;
  color: #495547;
  border-top-color: rgba(49, 94, 32, .2);
}
:is(#root, body) footer.bc-footer > * {
  min-width: 0;
  margin: 0;
}
:is(#root, body) footer.bc-footer .bc-footer-brand {
  grid-area: brand;
  display: block;
  width: 220px;
  min-width: 220px;
  padding: 0;
  border: 0;
  background: none;
}
:is(#root, body) footer.bc-footer .bc-footer-brand img {
  display: block;
  width: 220px;
  min-width: 220px;
  max-width: none;
  height: 44px;
  object-fit: contain;
  object-position: left center;
}
html[data-theme="light"] :is(#root, body) footer.bc-footer .bc-footer-brand img {
  content: url("/bergermann-consulting-logo-dark.svg");
}
:is(#root, body) footer.bc-footer .bc-footer-description {
  grid-area: focus;
  display: block;
  max-width: 46ch;
  color: inherit;
  font: inherit;
  -webkit-hyphens: none;
  hyphens: none;
}
:is(#root, body) footer.bc-footer .bc-footer-links {
  grid-area: links;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 18px;
  width: auto;
  margin: 0;
}
:is(#root, body) footer.bc-footer .bc-footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: none;
  white-space: nowrap;
}
:is(#root, body) footer.bc-footer .bc-footer-links a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
:is(#root, body) footer.bc-footer .bc-footer-copyright {
  grid-area: copyright;
  justify-self: end;
  color: inherit;
  font: inherit;
  white-space: nowrap;
}
:is(#root, body) footer.bc-footer a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
@media (max-width: 1200px) {
  :is(#root, body) footer.bc-footer {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "brand focus" "links copyright";
    gap: 20px 24px;
  }
}
@media (max-width: 760px) {
  :is(#root, body) footer.bc-footer {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "brand" "focus" "links" "copyright";
    gap: 12px;
    padding: 28px max(24px, 5vw) max(28px, env(safe-area-inset-bottom, 0px));
  }
  :is(#root, body) footer.bc-footer .bc-footer-links {
    gap: 4px 22px;
  }
  :is(#root, body) footer.bc-footer .bc-footer-links a {
    min-height: 40px;
  }
  :is(#root, body) footer.bc-footer .bc-footer-copyright {
    justify-self: stretch;
    min-height: 32px;
    padding-right: 72px;
    display: flex;
    align-items: center;
  }
}


/* Source: /refinement-r4-20260906.css */
/* Round 2: readable inactive language choices; the active language keeps its emphasis. */
html[data-theme="light"] :is(.site-header, .detail-header) .language button:not(.active),
html[data-theme="light"] .legal-header .legal-language button:not(.active) {
  color: #59635b;
  opacity: 1;
}

/* Round 3: contrast-aware keyboard focus on light and green surfaces. */
html[data-theme="light"] #root .site-header :is(a, button):focus-visible,
html[data-theme="light"] :is(.detail-header, .legal-header, .legal-main) :is(a, button):focus-visible {
  outline: 2px solid #3f7428;
  outline-offset: 4px;
}
html[data-theme] #root .contact :is(a, button):focus-visible,
html[data-theme] .detail-contact :is(a, button):focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

/* Round 4: honor the visitor's reduced-motion preference on legal pages too. */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  .legal-main .back,
  .legal-main .back:hover {
    transition: none;
    transform: none;
  }
}


/* Source: /site-header-links-v2-20260911.css */
/* Shared header link treatment across homepage, topic, legal and offer pages. */
html{--bc-header-link-ink:#eef2ed;--bc-header-link-line:rgba(238,242,237,.4);--bc-header-link-hover:#b9dd9f}
html[data-theme="light"]{--bc-header-link-ink:#242925;--bc-header-link-line:rgba(36,41,37,.4);--bc-header-link-hover:#3f7428}
html :is(#root .site-header nav>a,#root .site-header .contact-link,.detail-header .back-link,.detail-header .detail-contact-link,.legal-header .legal-nav>a){font-family:var(--ui-font,Arial,sans-serif);font-size:var(--bc-header-link-size,14px);font-weight:500;line-height:1.4;letter-spacing:0;color:var(--bc-header-link-ink);opacity:1;text-decoration:none}
html :is(#root .site-header .contact-link,.detail-header .back-link,.detail-header .detail-contact-link,.legal-header .legal-nav>a){min-height:var(--bc-header-action-height,40px);padding:var(--bc-header-action-padding,10px 0);align-items:center;border-bottom:1px solid var(--bc-header-link-line);white-space:nowrap}
@media(min-width:761px){.detail-header .back-link{display:inline-flex}}
.legal-header .legal-nav>a{display:inline-flex}
html :is(.detail-header .detail-contact-link,.legal-header .legal-contact-link)::after{margin-left:10px}
html :is(#root .site-header nav>a,#root .site-header .contact-link,.detail-header .back-link,.detail-header .detail-contact-link,.legal-header .legal-nav>a):is(:hover,:focus-visible){color:var(--bc-header-link-hover);border-bottom-color:var(--bc-header-link-hover)}
html :is(#root .site-header nav>a,#root .site-header .contact-link,.detail-header .back-link,.detail-header .detail-contact-link,.legal-header .legal-nav>a):focus-visible{outline:2px solid var(--bc-header-link-hover);outline-offset:4px}
@media(max-width:760px){.detail-header,.legal-header{--bc-header-action-height:36px;--bc-header-action-padding:0;--bc-header-link-size:12px}}
/* Preserve the larger text and visibility rules of the mobile menu. */
@media(max-width:900px){#root .site-header nav{--bc-header-link-size:16px}}
/* Keep DE / EN readable and identical across all four page templates. */
html :is(#root .site-header,.detail-header,.legal-header) .language,
html :is(#root .site-header,.detail-header,.legal-header) .language button{font-family:var(--ui-font,Arial,sans-serif);font-size:14px;font-weight:500;line-height:1.4;letter-spacing:0}
html :is(#root .site-header,.detail-header,.legal-header) .language button[aria-pressed="true"]{font-weight:600}
/* Narrow desktop windows still have room for a single-line menu. */
@media(min-width:901px) and (max-width:1100px){
 #root .site-header{padding-inline:28px!important}
 #root .site-header nav{flex:0 0 auto;margin-inline:20px;gap:18px}
 #root .site-header nav>a{white-space:nowrap}
 #root .site-header .header-actions{flex-shrink:0;gap:14px!important}
}
/* Short hero phrases should wrap between words rather than split them. */
@media(max-width:600px){.workshops-page .detail-hero h1{-webkit-hyphens:none;hyphens:none}}


/* Source: /site-quality-20260911.css */
/* Readability and compact topic pages; the established brand is retained. */
.quality-topic-page :is(.content-section,.sources,.detail-contact) p:not(.kicker),
.quality-topic-page :is(.content-section,.sources) li {font-size:1rem;line-height:1.7}
.quality-topic-page .hero-lead {font-size:1.0625rem;line-height:1.65}
.quality-topic-page :is(.kicker,.eyebrow,.failure-grid small,.project-experience-grid span,.keyword-list span,.hero-tags span) {font-size:.75rem;line-height:1.5}
.quality-topic-page .topic-nav a {font-size:.875rem;line-height:1.4;letter-spacing:.02em;padding:22px 24px}
.quality-topic-page .source-links a {font-size:.875rem;line-height:1.5;min-height:44px;display:inline-flex;align-items:center}
.quality-topic-page .section-head h2 {font-size:clamp(2.25rem,3.6vw,3.5rem);line-height:1.12}
.quality-topic-page .section-head {margin-bottom:42px}
.quality-topic-page .support-note {font-size:1.125rem!important}
.quality-topic-page .detail-contact a {font-size:1rem;line-height:1.5}
.quality-topic-page .source-note {color:var(--dd-muted)}
.quality-topic-page :is(.quality-topic-group,.sources,.detail-contact) {scroll-margin-top:calc(var(--bc-header-full,106px) + 16px)}
.quality-topic-group > summary {display:none}
.quality-section-nav {display:none}
.quality-topic-offers {display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1320px;margin:0 auto;padding:28px var(--dd-gutter,24px);color:var(--dd-ink);border-bottom:1px solid var(--dd-line)}
.quality-topic-offers p {margin:0;font-size:1rem;line-height:1.6;color:var(--dd-muted)}
.quality-topic-offers a {font-size:1rem;line-height:1.4;font-weight:600;display:inline-flex;min-height:44px;align-items:center;border-bottom:1px solid currentColor;white-space:nowrap;color:#b9dd9f}
html[data-theme="light"] .quality-topic-offers a {color:#3f742d}
.bc-footer .bc-footer-links a,.bc-footer .bc-footer-description {font-size:.875rem;line-height:1.6}
.bc-footer .bc-footer-copyright {font-size:.75rem}
.legal-main :is(p,li) {font-size:1rem;line-height:1.7}
.ws-form[hidden] {display:none!important}
.ws-form-fallback {font-size:1rem;line-height:1.7}
.ws-form-fallback a {text-decoration:underline;text-underline-offset:4px}
.quality-noscript-language {padding:12px 24px;margin-top:var(--bc-header-full,106px);font:400 .875rem/1.5 var(--ui-font,Arial,sans-serif);display:flex;gap:24px}
.quality-noscript-language a {text-decoration:underline}
@media (max-width:700px) {
 .quality-topic-page .detail-hero {min-height:0;padding:calc(var(--bc-header-full,106px) + 30px) 24px 32px}
 .quality-topic-page .detail-hero-content {width:100%}
 .quality-topic-page .detail-hero h1 {font-size:clamp(2.125rem,9.5vw,2.875rem);line-height:1.12;hyphens:none;letter-spacing:-.035em;overflow-wrap:break-word;margin-bottom:22px}
 .quality-topic-page .hero-lead {font-size:1rem;line-height:1.65}
 .quality-topic-page .eyebrow {margin-bottom:20px;letter-spacing:.1em}
 .quality-topic-page .hero-tags {margin-top:22px;gap:6px}
 .quality-topic-page .hero-tags span {font-size:.75rem;padding:6px 8px;text-transform:none;letter-spacing:0}
 .quality-topic-page .detail-orbit {opacity:.25}
 .quality-topic-page .topic-nav {position:static;grid-template-columns:repeat(2,minmax(0,1fr));box-shadow:none;display:grid}
 .quality-topic-page .topic-nav a {font-size:.875rem;min-height:60px;padding:12px 18px;text-transform:none;letter-spacing:0}
 body.quality-topic-page .topic-nav a b {display:none}
 html[lang] body.quality-topic-page :is(.content-section,.sources) :is(h2,h3,p) {-webkit-hyphens:none;hyphens:none;overflow-wrap:break-word;word-break:normal}
 .quality-topic-page .quality-section-nav {display:flex;flex-wrap:wrap;gap:8px 18px;padding:18px 24px;border-bottom:1px solid var(--dd-line);background:var(--dd-page)}
 .quality-section-nav a {display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;line-height:1.5;text-decoration:underline;text-underline-offset:4px;color:var(--dd-ink)}
 .quality-topic-page .content-section,.quality-topic-page .sources {padding:32px 24px}
 .quality-topic-page .section-head {display:block;margin-bottom:24px}
 .quality-topic-page .section-head .kicker {margin:0 0 12px}
 .quality-topic-page .section-head h2 {font-size:1.875rem;line-height:1.18;hyphens:none;overflow-wrap:break-word}
 .quality-topic-page .section-head p:not(.kicker) {margin-top:18px}
 .quality-topic-page :is(.definition-grid,.opportunity-grid,.method-flow,.failure-grid,.context-list,.landscape-grid,.support-grid,.project-experience-grid) {grid-template-columns:minmax(0,1fr);box-shadow:none}
 .quality-topic-page :is(.definition-grid article,.failure-grid article,.support-grid article,.landscape-card,.project-experience-grid article) {padding:24px 20px;min-height:0}
 .quality-topic-page :is(.definition-grid h3,.failure-grid h3,.support-grid h3,.landscape-card h3,.context-list h3,.opportunity-grid h3,.method-flow h3,.project-experience-grid h3) {font-size:1.4375rem;line-height:1.3}
 .quality-topic-page .method-flow {gap:26px}
 .quality-topic-page .method-flow::before {display:none}
 .quality-topic-page .method-flow article {padding:0}
 .quality-topic-page .method-dot {margin-bottom:16px}
 .quality-topic-page .context-list article {display:block;padding:24px 0}
 .quality-topic-page .context-list h3 {margin-bottom:12px}
 .quality-topic-page .audit-experience {padding:24px 20px;display:block}
 .quality-topic-page .audit-experience h3 {font-size:1.5rem;margin-top:16px}
 .quality-topic-page .failure-grid small {margin-bottom:14px}
 .quality-topic-page .quality-topic-group {margin:0;background:var(--dd-surface);border-top:1px solid var(--dd-line)}
 .quality-topic-page .quality-topic-group>summary {display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;cursor:pointer;min-height:74px;padding:22px 24px;font:600 1.0625rem/1.4 var(--ui-font,Arial,sans-serif);color:var(--dd-ink)}
 .quality-topic-group>summary::-webkit-details-marker {display:none}
 .quality-topic-group>summary::after {content:'+';font-size:1.5rem;line-height:1;font-weight:400;color:#b9dd9f;flex:none}
 .quality-topic-group[open]>summary::after {content:'−'}
 html[data-theme="light"] .quality-topic-group>summary::after {color:#3f742d}
 .quality-topic-page .quality-topic-group>summary:focus-visible {outline:2px solid currentColor;outline-offset:-6px}
 .quality-topic-page .quality-topic-group .content-section {padding-top:24px;padding-bottom:28px}
 .quality-topic-page .quality-topic-offers {display:block;padding:24px}
 .quality-topic-offers a {margin-top:12px;white-space:normal}
 .quality-topic-page .sources h2 {font-size:1.75rem}
 .quality-topic-page .detail-contact {padding:34px 24px;display:block}
 .quality-topic-page .detail-contact h2 {font-size:2rem;line-height:1.15;hyphens:none}
 .quality-topic-page .detail-contact-copy {padding-top:20px}
 .quality-topic-page .detail-contact :is(p,a) {font-size:1rem}
}

/* Shared phone header. Existing menus, theme controls and desktop layout remain. */
@media (max-width:700px) {
  html:has(#root .site-header), html:has(.detail-header), html:has(.legal-header), html[data-page-key="workshops-checks"] {
    --bc-header-full:108px; --bc-header-compact:108px;
  }
  #root .site-header, #root .site-header.is-compact,
  .detail-header:not(.ws-main-header), .detail-header:not(.ws-main-header).is-compact,
  .workshops-page .ws-main-header.ws-menu-ready, .workshops-page .ws-main-header.ws-menu-ready.is-compact,
  .legal-header, .legal-header.is-compact {
    display:grid !important;
    grid-template-columns:auto auto minmax(0,1fr) auto;
    grid-template-rows:52px 44px;
    align-items:center; gap:2px 12px;
    height:108px !important; min-height:108px !important;
    padding:5px 24px !important; box-sizing:border-box;
  }
  #root .site-header .header-actions,
  .detail-header:not(.ws-main-header) .detail-header-actions,
  .workshops-page .ws-main-header.ws-menu-ready .detail-header-actions,
  .legal-header .legal-header-actions { display:contents !important; }
  #root .site-header > a.brand,
  .detail-header:not(.ws-main-header) > a,
  .workshops-page .ws-main-header.ws-menu-ready .ws-header-brand,
  .legal-header > .legal-header-brand {
    grid-column:1 / 4; grid-row:1; justify-self:start; min-width:0; margin:0;
  }
  #root .site-header .brand-logo, #root .site-header.is-compact .brand-logo,
  .detail-header .detail-logo, .detail-header.is-compact .detail-logo,
  .workshops-page .ws-main-header .detail-logo, .workshops-page .ws-main-header.is-compact .detail-logo,
  .legal-header .legal-header-brand img, .legal-header.is-compact .legal-header-brand img {
    display:block; width:164px !important; height:auto !important; max-width:100%;
  }
  .workshops-page .ws-current-label { display:block; padding:4px 0 0 9px; font-size:11px; line-height:1.2; }
  #root .site-header .theme-toggle, .detail-header .theme-toggle, .legal-header .theme-toggle {
    grid-column:4; grid-row:1; justify-self:end; margin:0 !important; padding:0 !important;
    display:flex; align-items:center; justify-content:center;
    width:44px !important; min-width:44px !important; height:44px !important;
  }
  #root .site-header .theme-toggle-label, .detail-header .theme-toggle-label, .legal-header .theme-toggle-label { display:none !important; }
  #root .site-header .language, .detail-header .language, .legal-header .legal-language {
    grid-column:4; grid-row:2; justify-self:end; display:flex; gap:0 !important; margin:0 !important;
  }
  #root .site-header .language button, .detail-header .language button, .legal-header .language button {
    min-width:32px !important; min-height:44px !important; font-size:14px !important;
  }
  #root .site-header .language > span, .detail-header .language > span, .legal-header .language > span { width:8px; text-align:center; }
  #root .site-header .menu-button, .workshops-page .ws-menu-ready .ws-menu-button {
    grid-column:1; grid-row:2; justify-self:start; margin:0 !important;
    width:44px !important; min-width:44px !important; height:44px !important; padding:10px !important;
  }
  .detail-header:not(.ws-main-header) .back-link { grid-column:1; grid-row:2; }
  .detail-header:not(.ws-main-header) .detail-contact-link { grid-column:2; grid-row:2; }
  .detail-header:not(.ws-main-header) :is(.back-link,.detail-contact-link), .legal-header .legal-nav a {
    display:inline-flex; align-items:center; min-height:44px !important; padding-block:0 !important; font-size:14px !important;
  }
  .legal-header .legal-nav { grid-column:1 / 3; grid-row:2; display:flex; gap:18px; margin:0; }
  #root .site-header nav.open, .workshops-page .ws-menu-ready .ws-primary-nav.open { top:100%; }
  .quality-topic-page .detail-hero h1 { hyphens:manual; overflow-wrap:normal; }
  .ws-choice-title { margin:0; }
  .ws-process-context { font-size:15px; line-height:1.6; }
}
/* Heading levels describe the catalogue; classes retain the established styling. */
.ws-choice-title { margin:0; }
.ws-choice > summary > .ws-summary-heading {
  grid-column:1 / -1; display:grid; grid-template-columns:inherit;
  gap:inherit; align-items:inherit; margin:0; font:inherit; letter-spacing:inherit;
}
.ws-process-context { max-width:760px; color:var(--dd-muted); margin:18px 0 0; }

/* Foundation for the existing consulting header on legal pages only. */
body[data-legal-page] { padding-top:var(--bc-header-full); }
body[data-legal-page] .ws-header-brand { text-decoration:none; }
body[data-legal-page] .ws-main-header {
  position:fixed !important; inset:0 0 auto; width:100%; z-index:60;
  min-height:0 !important; color:var(--bc-header-link-ink);
  background:rgba(14,20,16,.88); border-bottom:1px solid rgba(185,221,159,.14);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
}
html[data-theme="light"] body[data-legal-page] .ws-main-header {
  background:rgba(244,246,240,.90); border-bottom-color:rgba(49,95,43,.16);
}
body[data-legal-page] .ws-main-header .language {
  display:flex; align-items:center; gap:6px; color:var(--bc-header-link-ink);
}
body[data-legal-page] .ws-main-header .language button {
  border:0; background:none; cursor:pointer; padding:5px;
  color:var(--bc-header-link-ink); opacity:.72;
}
body[data-legal-page] .ws-main-header .language button[aria-pressed="true"] { opacity:1; }
html[data-theme="light"] body[data-legal-page] .ws-main-header .language button:not(.active) { color:#59635b; opacity:1; }
body[data-legal-page] .ws-main-header .detail-contact-link { text-decoration:none; }
@media (max-width:900px) {
  body[data-legal-page]:has(.ws-main-header:not(.ws-menu-ready)) { padding-top:0; }
}
@media (max-width:600px) {
  body[data-legal-page] .ws-main-header { background:rgba(14,20,16,.96); }
  html[data-theme="light"] body[data-legal-page] .ws-main-header { background:rgba(244,246,240,.97); }
}


/* Shared homepage-style navigation, scoped to Workshops & Checks only. */
html:has(body[data-legal-page]) { --bc-header-full:94px; --bc-header-compact:68px; }
body[data-legal-page] .ws-main-header {
  display:flex; align-items:center; justify-content:flex-start; gap:0; height:var(--bc-header-full) !important;
  padding-block:0; padding-inline:max(clamp(24px,5vw,72px),calc((100vw - 1320px)/2)) !important;
}
body[data-legal-page] .ws-main-header.is-compact { height:var(--bc-header-compact) !important; }
body[data-legal-page] .ws-header-brand { display:block; flex:0 0 auto; }
body[data-legal-page] .ws-main-header .detail-logo { display:block; width:clamp(225px,16vw,285px) !important; height:auto; }
body[data-legal-page] .ws-main-header.is-compact .detail-logo { width:195px !important; }
body[data-legal-page] .ws-current-label { display:none; }
body[data-legal-page] .ws-primary-nav {
  display:flex; align-items:center; gap:clamp(26px,2.2vw,38px);
  margin-left:clamp(34px,4vw,68px); flex-shrink:0;
}
body[data-legal-page] .ws-primary-nav a {
  display:inline-flex; align-items:center; min-height:44px;
  font:500 14px/1.4 var(--ui-font); color:var(--bc-header-link-ink);
  text-decoration:none; white-space:nowrap; border-bottom:0;
}
body[data-legal-page] .ws-primary-nav a[aria-current="page"] {
  color:var(--bc-header-link-hover); font-weight:600; box-shadow:inset 0 -2px currentColor;
}
body[data-legal-page] .ws-primary-nav a:hover { color:var(--bc-header-link-hover); }
body[data-legal-page] .ws-main-header :is(a,button):focus-visible { outline:2px solid var(--bc-header-link-hover); outline-offset:5px; }
body[data-legal-page] .ws-primary-nav .ws-mobile-nav-link { display:none; }
body[data-legal-page] .ws-main-header .detail-header-actions {
  display:flex; align-items:center; flex-shrink:0; gap:22px !important; margin-left:auto;
}
body[data-legal-page] .ws-main-header.is-compact .detail-header-actions { gap:17px !important; }
body[data-legal-page] .ws-main-header .language button { min-width:36px; }
body[data-legal-page] .ws-main-header .detail-contact-link { display:block; }
body[data-legal-page] .ws-main-header .detail-contact-link::after { content:none; }
body[data-legal-page] .ws-main-header .detail-contact-link > span { margin-left:20px; }
body[data-legal-page] .ws-main-header.is-compact .detail-contact-link { padding-block:8px !important; }
body[data-legal-page] .ws-menu-button { display:none; }
@media (min-width:901px) and (max-width:1100px) {
  body[data-legal-page] .ws-main-header { padding-inline:28px !important; }
  body[data-legal-page] .ws-primary-nav { margin-inline:20px; gap:18px; }
  body[data-legal-page] .ws-main-header .detail-header-actions,
  body[data-legal-page] .ws-main-header.is-compact .detail-header-actions { gap:14px !important; }
}
@media (max-width:900px) {
  html:has(body[data-legal-page]) { --bc-header-full:84px; --bc-header-compact:76px; }
  body[data-legal-page] .ws-main-header,
  body[data-legal-page] .ws-main-header.is-compact {
    display:flex; flex-wrap:nowrap; gap:10px; padding-block:0; padding-inline:20px !important;
  }
  body[data-legal-page] .ws-main-header .detail-logo,
  body[data-legal-page] .ws-main-header.is-compact .detail-logo { width:164px !important; }
  body[data-legal-page] .ws-current-label {
    display:block; padding-top:5px; padding-left:10px;
    font:600 11px/1.2 var(--ui-font); color:var(--bc-header-link-hover); white-space:nowrap;
  }
  body[data-legal-page] .ws-main-header .detail-header-actions,
  body[data-legal-page] .ws-main-header.is-compact .detail-header-actions { gap:8px !important; margin-left:0; }
  body[data-legal-page] .ws-main-header .detail-contact-link { display:none; }
  body[data-legal-page] .ws-main-header .theme-toggle { margin:0; width:36px; min-width:36px; height:36px; padding:0; justify-content:center; }
  body[data-legal-page] .ws-main-header .theme-toggle-label { display:none; }
  body[data-legal-page] .ws-main-header .language { display:flex; gap:0; margin:0; }
  body[data-legal-page] .ws-main-header .language button { min-width:30px; min-height:44px; font-size:13px; }
  body[data-legal-page] .ws-main-header .language > span { flex:0 0 4px; width:4px; }
  body[data-legal-page] .ws-menu-ready .ws-menu-button {
    display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px;
    width:44px; min-width:44px; height:44px; margin:0 0 0 auto; padding:8px;
    border:0; background:none; color:var(--bc-header-link-ink); cursor:pointer;
  }
  body[data-legal-page] .ws-menu-button span { display:block; width:22px; height:1.5px; background:currentColor; transition:transform .15s; }
  body[data-legal-page] .ws-menu-button[aria-expanded="true"] span:first-child { transform:translateY(3.75px) rotate(45deg); }
  body[data-legal-page] .ws-menu-button[aria-expanded="true"] span:last-child { transform:translateY(-3.75px) rotate(-45deg); }
  body[data-legal-page] .ws-primary-nav {
    display:grid; align-items:stretch; gap:0; margin:0; padding:12px 24px 20px;
    background:#101a14; border-bottom:1px solid var(--bc-header-link-line);
    max-height:calc(100dvh - var(--bc-header-compact)); overflow-y:auto;
  }
  html[data-theme="light"] body[data-legal-page] .ws-primary-nav { background:#f4f6ef; }
  body[data-legal-page] .ws-primary-nav a { font-size:16px; min-height:48px; width:100%; border-bottom:1px solid var(--bc-header-link-line); }
  body[data-legal-page] .ws-primary-nav a[aria-current="page"] { border-bottom:2px solid currentColor; box-shadow:none; }
  body[data-legal-page] .ws-primary-nav .ws-mobile-nav-link { display:flex; }
  body[data-legal-page] .ws-menu-ready .ws-primary-nav { position:absolute; top:100%; left:0; right:0; display:none; }
  body[data-legal-page] .ws-menu-ready .ws-primary-nav.open { display:grid; }
  /* If scripts fail, links remain usable instead of disappearing behind a dead menu. */
  body[data-legal-page] .ws-main-header:not(.ws-menu-ready) { position:relative !important; height:auto !important; min-height:84px; flex-wrap:wrap; padding-block:14px; }
  body[data-legal-page] .ws-main-header:not(.ws-menu-ready) .ws-primary-nav { order:3; flex-basis:100%; }
  body[data-legal-page] .ws-main-header:not(.ws-menu-ready) .detail-header-actions { margin-left:auto; }
}
@media (max-width:380px) {
  body[data-legal-page] .ws-main-header,
  body[data-legal-page] .ws-main-header.is-compact { padding-inline:14px !important; gap:4px; }
  body[data-legal-page] .ws-main-header .detail-logo,
  body[data-legal-page] .ws-main-header.is-compact .detail-logo { width:130px !important; }
  body[data-legal-page] .ws-main-header .detail-header-actions { gap:4px !important; }
  body[data-legal-page] .ws-current-label { font-size:10px; padding-left:8px; }
}
@media (prefers-reduced-motion:reduce) { body[data-legal-page] .ws-menu-button span { transition:none; } }



/* Shared phone header. Existing menus, theme controls and desktop layout remain. */
@media (max-width:700px) {
  html:has(#root .site-header), html:has(.detail-header), html:has(.legal-header), html:has(body[data-legal-page]) {
    --bc-header-full:108px; --bc-header-compact:108px;
  }
  #root .site-header, #root .site-header.is-compact,
  .detail-header:not(.ws-main-header), .detail-header:not(.ws-main-header).is-compact,
  body[data-legal-page] .ws-main-header.ws-menu-ready, body[data-legal-page] .ws-main-header.ws-menu-ready.is-compact,
  .legal-header, .legal-header.is-compact {
    display:grid !important;
    grid-template-columns:auto auto minmax(0,1fr) auto;
    grid-template-rows:52px 44px;
    align-items:center; gap:2px 12px;
    height:108px !important; min-height:108px !important;
    padding:5px 24px !important; box-sizing:border-box;
  }
  #root .site-header .header-actions,
  .detail-header:not(.ws-main-header) .detail-header-actions,
  body[data-legal-page] .ws-main-header.ws-menu-ready .detail-header-actions,
  .legal-header .legal-header-actions { display:contents !important; }
  #root .site-header > a.brand,
  .detail-header:not(.ws-main-header) > a,
  body[data-legal-page] .ws-main-header.ws-menu-ready .ws-header-brand,
  .legal-header > .legal-header-brand {
    grid-column:1 / 4; grid-row:1; justify-self:start; min-width:0; margin:0;
  }
  #root .site-header .brand-logo, #root .site-header.is-compact .brand-logo,
  .detail-header .detail-logo, .detail-header.is-compact .detail-logo,
  body[data-legal-page] .ws-main-header .detail-logo, body[data-legal-page] .ws-main-header.is-compact .detail-logo,
  .legal-header .legal-header-brand img, .legal-header.is-compact .legal-header-brand img {
    display:block; width:164px !important; height:auto !important; max-width:100%;
  }
  body[data-legal-page] .ws-current-label { display:block; padding:4px 0 0 9px; font-size:11px; line-height:1.2; }
  #root .site-header .theme-toggle, .detail-header .theme-toggle, .legal-header .theme-toggle {
    grid-column:4; grid-row:1; justify-self:end; margin:0 !important; padding:0 !important;
    display:flex; align-items:center; justify-content:center;
    width:44px !important; min-width:44px !important; height:44px !important;
  }
  #root .site-header .theme-toggle-label, .detail-header .theme-toggle-label, .legal-header .theme-toggle-label { display:none !important; }
  #root .site-header .language, .detail-header .language, .legal-header .legal-language {
    grid-column:4; grid-row:2; justify-self:end; display:flex; gap:0 !important; margin:0 !important;
  }
  #root .site-header .language button, .detail-header .language button, .legal-header .language button {
    min-width:32px !important; min-height:44px !important; font-size:14px !important;
  }
  #root .site-header .language > span, .detail-header .language > span, .legal-header .language > span { width:8px; text-align:center; }
  #root .site-header .menu-button, body[data-legal-page] .ws-menu-ready .ws-menu-button {
    grid-column:1; grid-row:2; justify-self:start; margin:0 !important;
    width:44px !important; min-width:44px !important; height:44px !important; padding:10px !important;
  }
  .detail-header:not(.ws-main-header) .back-link { grid-column:1; grid-row:2; }
  .detail-header:not(.ws-main-header) .detail-contact-link { grid-column:2; grid-row:2; }
  .detail-header:not(.ws-main-header) :is(.back-link,.detail-contact-link), .legal-header .legal-nav a {
    display:inline-flex; align-items:center; min-height:44px !important; padding-block:0 !important; font-size:14px !important;
  }
  .legal-header .legal-nav { grid-column:1 / 3; grid-row:2; display:flex; gap:18px; margin:0; }
  #root .site-header nav.open, body[data-legal-page] .ws-menu-ready .ws-primary-nav.open { top:100%; }
  .quality-topic-page .detail-hero h1 { hyphens:manual; overflow-wrap:normal; }
  .ws-choice-title { margin:0; }
  .ws-process-context { font-size:15px; line-height:1.6; }
}

/* An explicit route home on every full-navigation subpage. */
.ws-main-header .ws-home-shortcut { display:none; }
@media (min-width:901px) and (max-width:1200px) {
  :is(.workshops-page,body[data-legal-page]) { --bc-header-full:118px; --bc-header-compact:118px; }
  :is(.workshops-page,body[data-legal-page]) .ws-main-header,
  :is(.workshops-page,body[data-legal-page]) .ws-main-header.is-compact {
    display:grid; grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-rows:62px 46px; gap:0;
    height:118px !important; padding:5px 28px !important;
  }
  :is(.workshops-page,body[data-legal-page]) .ws-header-brand { grid-column:1; grid-row:1; }
  :is(.workshops-page,body[data-legal-page]) .ws-main-header .detail-header-actions { grid-column:3; grid-row:1; }
  :is(.workshops-page,body[data-legal-page]) .ws-primary-nav {
    grid-column:1 / -1; grid-row:2; justify-self:start; margin:0; gap:28px;
  }
}
@media (max-width:900px) {
  :is(.workshops-page,body[data-legal-page]) .ws-primary-nav .ws-home-nav { display:none; }
  :is(.workshops-page,body[data-legal-page]) .ws-main-header .ws-home-shortcut {
    display:inline-flex; align-items:center; min-height:44px;
    color:var(--bc-header-link-ink); font:500 14px/1.4 var(--ui-font);
    text-decoration:none; border-bottom:1px solid var(--bc-header-link-line); white-space:nowrap;
  }
  :is(.workshops-page,body[data-legal-page]) .ws-main-header .ws-home-shortcut:hover { color:var(--bc-header-link-hover); }
}
@media (max-width:700px) {
  :is(.workshops-page,body[data-legal-page]) .ws-main-header .ws-home-shortcut {
    grid-column:2 / 4; grid-row:2; justify-self:start;
  }
}
