body.has-solution-switcher { padding-bottom: 0; }
/* Dock clearance belongs inside the footer, never after the page. */
body.has-solution-switcher .site-footer { padding-bottom: 108px; }
html { overscroll-behavior-y: none; }
.solution-switcher {
  position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%);
  z-index: 110; width: max-content; max-width: calc(100vw - 24px);
  color: #e3edf0; font-family: "Astreon Sans",Arial,sans-serif;
  --switcher-accent: #a5d8d3;
}
.switcher-dock {
  display: flex; align-items: center; gap: 5px; padding: 7px;
  background: linear-gradient(135deg, #172b31f5, #213d42f5);
  border: 1px solid #769b9f; border-radius: 18px;
  box-shadow: 0 12px 35px #081b2d30, inset 0 1px 0 #d2edee12;
  backdrop-filter: blur(20px);
}
.switcher-dock svg { width: 21px; height: 21px; flex-shrink: 0; }
.switcher-toggle, .switcher-link {
  position: relative; display: flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 17px; border: 0; border-radius: 12px;
  color: #d0e2e5; background: transparent; font-size: .83rem; font-weight: 600;
  text-decoration: none; cursor: pointer; transition: background .18s, color .18s;
}
.switcher-toggle { background: #314e53; color: #f4f9fa; }
.switcher-chevron { margin-left: 5px; color: #bddedc; font-size: 1rem; transition: transform .2s; }
.is-open .switcher-chevron { transform: rotate(180deg); }
.switcher-divider { height: 25px; width: 1px; background: #78999d55; margin: 0 5px; }
.switcher-link:hover, .switcher-toggle:hover { background: #3a5b60; color: #fff; }
.switcher-link.is-active { color: #173c38; background: #bde4d8; box-shadow: inset 0 0 0 1px #e9fff480; }
.switcher-link.is-active i { width: 5px; height: 5px; background: #2b695c; border-radius: 50%; }
.switcher-panel {
  position: absolute; bottom: calc(100% + 14px); left: 50%; transform: translateX(-50%);
  width: 760px; max-width: calc(100vw - 32px); max-height: calc(100dvh - 190px); overflow-y: auto;
  background: #f4f8f7; color: #233b3d; border: 1px solid #9ebcbd;
  border-radius: 20px; box-shadow: 0 25px 90px #102a3545; padding: 26px;
  animation: switcher-enter .2s ease-out;
}
.switcher-panel[hidden] { display: none; }
.switcher-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 22px; }
.switcher-eyebrow { display: block; font-size: .67rem; letter-spacing: .1em; font-weight: 600; color: #526f70; margin-bottom: 8px; }
.switcher-panel h2 { font-size: 1.6rem !important; margin: 0; line-height: 1.25 !important; }
.switcher-close { width: 40px; height: 40px; flex-shrink: 0; padding: 10px; border: 1px solid #b6cac9; border-radius: 50%; background: #e8f0ee; color: #365553; cursor: pointer; }
.switcher-close:hover { background: #d2e4df; }
.switcher-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.switcher-card { display: flex; flex-direction: column; border: 1px solid #c9d8d6; border-radius: 13px; overflow: hidden; background: #fff; text-decoration: none; color: #233b3d; transition: border-color .18s, box-shadow .18s; }
.switcher-card:hover, .switcher-card.is-active { border-color: #3c857a; box-shadow: 0 5px 18px #335e5112; }
.switcher-card-image { height: 110px; background: #e9eeeb; border-bottom: 1px solid #d8e3df; }
.switcher-card-image img { width: 100%; height: 100%; object-fit: cover; }
.switcher-card:first-child .switcher-card-image img { object-fit: contain; padding: 12px; background: white; }
.switcher-card-copy { display: flex; flex-direction: column; flex: 1; padding: 18px; }
.switcher-card-tag { color: #426e63; font-size: .66rem; font-weight: 600; margin-bottom: 10px; line-height: 1.5; }
.switcher-card strong { font-size: 1rem; font-weight: 600; line-height: 1.4; }
.switcher-card p { font-size: .78rem; color: #52686a; line-height: 1.65; margin: 12px 0 18px; }
.switcher-card-action { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .75rem; font-weight: 600; color: #285e52; margin-top: auto; }
.switcher-card-action svg, .switcher-panel-foot svg { width: 17px; height: 17px; }
.switcher-panel-foot { display: flex; justify-content: space-between; gap: 15px; padding-top: 20px; margin-top: 20px; border-top: 1px solid #ccdcd7; font-size: .74rem; color: #52686a; }
.switcher-panel-foot a { display: flex; align-items: center; gap: 8px; color: #285e52; font-weight: 600; }
.solution-switcher :focus-visible { outline: 3px solid #489e91 !important; outline-offset: 3px; }
@keyframes switcher-enter { from { opacity: 0; translate: 0 8px; } to { opacity: 1; translate: 0 0; } }
@media(max-width:760px) {
  .solution-switcher { bottom: 12px; width: calc(100vw - 20px); }
  .switcher-dock { gap: 2px; padding: 5px; border-radius: 16px; }
  .switcher-toggle, .switcher-link { flex: 1; flex-direction: column; gap: 5px; min-height: 58px; padding: 5px 3px; font-size: .62rem; border-radius: 11px; }
  .switcher-dock svg { width: 20px; height: 20px; }
  .switcher-chevron, .switcher-link i, .switcher-divider { display: none; }
  .switcher-panel { padding: 18px; max-height: calc(100dvh - 165px); border-radius: 16px; }
  .switcher-panel h2 { font-size: 1.3rem !important; }
  .switcher-cards { grid-template-columns: 1fr; gap: 10px; }
  .switcher-card { display: grid; grid-template-columns: 86px minmax(0,1fr); }
  .switcher-card-image { height: 100%; border-bottom: 0; border-right: 1px solid #d8e3df; }
  .switcher-card:first-child .switcher-card-image img { padding: 6px; }
  .switcher-card-copy { padding: 13px; }
  .switcher-card-tag { margin-bottom: 5px; font-size: .62rem; }
  .switcher-card strong { font-size: .9rem; }
  .switcher-card p { margin: 7px 0 10px; font-size: .72rem; }
  .switcher-card-action { font-size: .7rem; }
  .switcher-panel-foot { flex-direction: column; gap: 10px; padding-top: 14px; margin-top: 14px; }
}
@media(prefers-reduced-motion:reduce) { .switcher-panel { animation: none; } .solution-switcher * { transition: none; } }
@media print { .solution-switcher { display: none; } body.has-solution-switcher { padding-bottom: 0; } }
