/* Match the page grid: percentages exclude the desktop scrollbar, unlike vw. */
@media (min-width: 1381px) {
  :root {
    --navbar-grid-width: min(var(--page), calc(100% - 64px));
    --navbar-grid-edge: max(32px, calc((100% - var(--page)) / 2));
  }
}
@media (min-width: 721px) and (max-width: 1380px) {
  .site-header,
  .site-header:not(.is-scrolled),
  .site-header.is-scrolled,
  .catalogue-page .site-header {
    left: max(32px, calc((100% - var(--page)) / 2)) !important;
    width: min(var(--page), calc(100% - 64px)) !important;
  }
}
@media (max-width: 720px) {
  .site-header,
  .site-header:not(.is-scrolled),
  .site-header.is-scrolled { width: calc(100% - 40px) !important; }
}
/* The support card uses the same vertical, left-aligned layout as access. */
.business-page .b-solution-support .b-card-copy {
  align-items: stretch;
  text-align: left;
}
.business-page .b-solution-support .b-card-copy h3,
.business-page .b-solution-support .b-card-copy p {
  align-self: stretch;
  text-align: left;
}
.business-page .b-solution-support .b-card-action {
  align-self: stretch;
  justify-content: space-between;
  text-align: left;
}
/* Keep the return link directly above the service's single H1. */
.business-page .b-service-layout .b-breadcrumb { margin: 0 0 18px; }
.business-page .b-service-layout .b-breadcrumb a { min-height: 36px; }
/* A shared row grid aligns both CTAs even when translations wrap differently. */
@media (min-width: 761px) {
  .business-page .b-choice-grid { grid-template-rows: auto auto auto auto auto; }
  .business-page .b-choice-grid > article {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: 1 / span 5;
    align-content: start;
    justify-items: start;
  }
  .business-page .b-choice-grid > article > .button { align-self: start; margin-top: 0; }
  .business-page .b-choice-grid > article > p { margin-top: 0; }
}
/* Language control progressively enhances the original working select. */
.site-header .language { position: relative; }
.site-header .language [data-language][hidden] { display: none !important; }
.site-header .language-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 0 3px;
  border: 0;
  border-radius: 6px;
  color: inherit;
  background: transparent;
  font: inherit;
  cursor: pointer;
}
.site-header .language-trigger::after {
  content: '';
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .2s ease;
}
.site-header .language-trigger[aria-expanded=true]::after { transform: translateY(2px) rotate(225deg); }
.site-header .language-trigger:hover { color: #bcebff; }
.site-header .language-trigger:focus-visible { outline: 2px solid #82d5f7; outline-offset: 3px; }
.site-header .language-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: -8px;
  z-index: 60;
  display: grid;
  width: 176px;
  padding: 9px;
  border: 1px solid rgba(205,239,255,.16);
  border-radius: 10px;
  background: rgba(13,18,21,.96);
  box-shadow: 0 18px 42px rgba(0,0,0,.3);
  backdrop-filter: blur(18px) saturate(135%);
}
.site-header .language-menu[hidden] { display: none !important; }
.site-header .language-menu a {
  display: flex !important;
  align-items: center;
  gap: 11px;
  min-height: 42px !important;
  height: auto !important;
  padding: 9px 11px !important;
  border: 0 !important;
  border-radius: 6px;
  color: #f4f7f8 !important;
  opacity: 1 !important;
  font: inherit;
  font-size: 13px;
  line-height: 1.3;
}
.site-header .language-menu a:hover,
.site-header .language-menu a:focus-visible,
.site-header .language-menu a[aria-checked=true] { background: rgba(63,182,249,.12); color: #bcebff !important; }
.site-header .language-menu span {
  width: auto;
  height: auto;
  margin: 0;
  border: 0;
  transform: none;
}
.site-header .language-menu a::after {
  content: none;
  position: static;
  width: auto;
  height: auto;
  background: none;
  border: 0;
  transform: none;
}
.site-header .language-menu a[aria-checked=true]::after { content: '✓'; margin-left: auto; color: #69c9f1; }
.site-header .language-menu .language-code { display: block !important; font-weight: 600; min-width: 20px; }
.site-header .language-menu .language-name { display: block !important; font-size: 12px; }
@media (max-width: 1100px) {
  .site-header .main-nav.open > .language { display: block; height: auto; width: 100%; }
  .site-header .main-nav.open .language-trigger { padding: 8px 12px; }
  .site-header .main-nav.open .language-menu { position: static; width: 100%; margin: 4px 0 8px; }
}
/* Make selectable systems visible beside every building model. */
.business-page .b-layer-controls { gap: 8px; }
.business-page .b-layer-controls button {
  margin-left: 0;
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid #75b9d62b;
  border-radius: 8px;
  background: #ffffff05;
  color: #d7e7ee;
  transition: border-color .2s, background .2s, color .2s;
}
.business-page .b-layer-controls button[aria-pressed=true] { background: #4fa3c512; border-color: #75b9d653; color: #f0f8fc; }
.business-page .b-layer-controls button:hover,
.business-page .b-layer-controls button:focus-visible { background: #64bce321; border-color: #8bc6de; color: #fff; }
.business-page .b-layer-controls button[aria-pressed=false] { opacity: 1; color: #afc4d0; }
.business-page .b-layer-controls .b-icon { width: 22px; height: 22px; color: #7bcbed; }
.business-page .b-layer-controls .b-layer-dot { display: none; }
.business-page .b-layer-state {
  flex-shrink: 0;
  margin-left: auto;
  padding: 4px 7px;
  border-radius: 5px;
  color: #a7def3;
  background: #63b7da16;
  font-size: 11px;
  line-height: 1.4;
  white-space: nowrap;
}
.business-page .b-layer-state::before { content: '✓'; padding-right: 5px; }
.business-page [aria-pressed=false] .b-layer-state { color: #b8cad4; background: #ffffff0a; }
.business-page [aria-pressed=false] .b-layer-state::before { content: '+'; }
@media (max-width: 720px) {
  .business-page .b-layer-controls { grid-template-columns: 1fr; gap: 7px; }
  .business-page .b-layer-controls button { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .language-trigger::after,
  .business-page .b-layer-controls button { transition: none; }
}
