/* Shared contact bar. Social profiles sit immediately before the phone number. */
.site-header .utility-inner { justify-content: flex-end; gap: 16px; min-height: 40px; height: auto; padding-block: 0; }
.utility-socials { display: flex; align-items: center; gap: 4px; border-right: 1px solid var(--line); padding-right: 14px; }
.utility-social { display: grid; place-items: center; width: 36px; height: 36px; flex-shrink: 0; color: var(--blue); border-radius: 3px; }
.utility-social > .icon { width: 18px; height: 18px; stroke-width: 1.7; }
.utility-social[href]:hover { color: var(--red); background: #edf1ef; }
.utility-social:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
@media (max-width:1280px) { .utility-social { width: 44px; height: 44px; } }

/* Schmitz composition: category rail, product families, contextual overview. */
.mega-menu { background: #0b1523; border-top: 1px solid #3c4f6c; box-shadow: 0 28px 45px #05101f50; }
.equipment-shell { width: 100%; display: grid; grid-template-columns: minmax(430px, 36%) minmax(0, 1fr) 250px; height: min(665px, calc(100dvh - var(--header-height) - 12px)); min-height: 0; overflow: hidden; }
.equipment-rail { min-width: 0; min-height: 0; display: flex; flex-direction: column; background: #0a1421; border-right: 1px solid #253247; }
.equipment-rail-heading { padding: 25px 26px 18px; flex-shrink: 0; }
.equipment-rail-heading > .section-kicker { color: #8b9fbd; font-size: 8px; letter-spacing: 1.5px; }
.equipment-rail-heading h2 { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: #fff; font-size: 23px; letter-spacing: -.8px; margin-top: 8px; }
.equipment-rail-heading h2 span { color: #91a9cf; font-family:var(--font-sans); font-size: 10px; border: 1px solid #334359; padding: 4px 6px; border-radius: 1px; letter-spacing: .5px; }
.equipment-tabs { min-height: 0; flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(var(--category-rows, 8), minmax(0, 1fr)); grid-auto-flow: column; gap: 0 8px; padding: 0 16px 14px; }
.equipment-tabs > button { position: relative; display: flex; align-items: center; gap: 9px; width: 100%; min-width: 0; text-align: left; padding: 10px 9px; min-height: 0; color: #b1bfd4; border: 1px solid transparent; border-bottom-color: #ffffff0b; border-radius: 1px; font-size: 11px; line-height: 1.45; transition: background 150ms ease, color 150ms ease; }
.equipment-tabs > button > span:nth-child(2) { flex: 1; }
.equipment-tabs > button > .icon { flex-shrink: 0; width: 10px; height: 10px; color: #7e94b5; transform: rotate(-90deg); }
.equipment-tabs > button[aria-selected=true] { color: #fff; background: #21324b; border-color: #3b506f; }
.equipment-tabs > button[aria-selected=true]::before { content: ''; position: absolute; left: -1px; top: 15px; bottom: 15px; width: 2px; background: #ed3341; }
.equipment-tabs > button:focus-visible { outline-offset: -4px; outline-color: #a4caff; }
.equipment-panel { min-width: 0; min-height: 0; background: #122033; padding: 26px 27px 17px; display: flex; flex-direction: column; }
.equipment-panel-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 23px; flex-shrink: 0; }
.equipment-panel-heading .section-kicker { color: #90a6c8; font-size: 8px; letter-spacing: 1.4px; }
.equipment-panel-heading h2 { font-size: 24px; font-weight: 400; letter-spacing: -.9px; line-height: 1.25; color: #eef4ff; margin-top: 10px; }
.subcategory-grid { min-height: 0; flex: 1; overflow-y: auto; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-content: start; gap: 13px; padding: 1px 8px 6px 1px; scrollbar-width: thin; scrollbar-color: #5d7193 #122033; overscroll-behavior: contain; }
.subcategory-grid { grid-auto-rows: max-content; }
.equipment-feature { min-width: 0; min-height: 0; overflow-y: auto; background: #1a2b43; padding: 25px 24px 20px; display: flex; flex-direction: column; scrollbar-width: thin; scrollbar-color: #5d7193 #1a2b43; }
.equipment-context-photo { height: 157px; flex-shrink: 0; border-radius: 2px; background-size: cover; background-position: 70% 50%; width: 100%; object-fit: cover; object-position: center; display: block; }
.equipment-feature-body { padding-top: 25px; }
.equipment-feature-body .section-kicker { color: #a6bbda; font-size: 8px; letter-spacing: 1.3px; }
.equipment-feature-body h3 { color: #f2f6ff; font-size: 22px; font-weight: 400; letter-spacing: -.7px; line-height: 1.35; margin: 11px 0 15px; }
.equipment-feature-body p { color: #bbcae0; font-size: 11px; line-height: 1.85; margin-bottom: 23px; }
.equipment-feature-body .button { padding: 13px 18px; min-height: 43px; width: 100%; justify-content: space-between; font-size: 11px; }
.equipment-feature-footer { border-top: 1px solid #51648075; margin-top: auto; padding-top: 19px; margin-bottom: 2px; }
.equipment-feature-footer > span { display: block; color: #afc0da; font-size: 10px; margin-top: 18px; }
.equipment-feature-footer > .text-link { color: #dae8ff; display: flex; justify-content: space-between; margin-top: 8px; font-size: 11px; }

/* Occasional overlays use a short, interruptible transition from their anchor. */
.menu, .mobile-menu { transform-origin: top center; opacity: 1; transform: translateY(0); transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out), display 200ms allow-discrete; }
.menu[hidden], .mobile-menu[hidden] { opacity: 0; transform: translateY(-6px); }
@starting-style { .menu:not([hidden]), .mobile-menu:not([hidden]) { opacity: 0; transform: translateY(-6px); } }
.menu-backdrop { transition: opacity 200ms var(--ease-out), display 200ms allow-discrete; opacity: 1; }
.menu-backdrop[hidden] { opacity: 0; }
@starting-style { .menu-backdrop:not([hidden]) { opacity: 0; } }
.keyboard-input .menu, .keyboard-input .mobile-menu, .keyboard-input .menu-backdrop { transition: none; }

@media (hover:hover) and (pointer:fine) {
 .equipment-tabs > button:hover { background:#1d2b42;color:#fff; }
}
@media (max-width:1280px) {
 .equipment-shell { grid-template-columns:420px minmax(0,1fr) 220px; }
 .equipment-panel { padding-inline:20px; }
 .equipment-panel-heading { display:block;margin-bottom:18px; }
 .equipment-panel-heading h2 { font-size:22px;margin-bottom:8px; }
 .equipment-feature { padding:23px 20px; }
 .equipment-feature-body h3 { font-size:20px; }
 .equipment-tabs { padding-inline:12px;gap:0 6px; }
 .equipment-tabs > button { padding-inline:7px;gap:7px;font-size:10.5px; }
 .subcategory-grid { gap:10px; }
}
@media (min-width:1101px) and (max-height:740px) {
 .equipment-rail-heading { padding:17px 25px 14px; }
 .equipment-rail-heading h2 { margin-top:5px; }
 .equipment-tabs { padding-bottom:8px; }
 .equipment-tabs > button { padding-block:6px;line-height:1.35; }
 .equipment-panel { padding-top:20px; }
 .equipment-panel-heading { margin-bottom:15px; }
 .equipment-context-photo { height:120px; }
 .equipment-feature-body { padding-top:18px; }
 .equipment-feature-body h3 { margin-block:9px 11px;font-size:20px; }
 .equipment-feature-body p { margin-bottom:16px; }
 .equipment-feature-footer { padding-top:10px; }
 .equipment-feature-footer > span { margin-top:10px; }
}
/* At extreme zoom or very short windows, let the whole menu scroll as a unit. */
@media (min-width:1101px) and (max-height:590px) {
 .mega-menu { max-height:calc(100dvh - var(--header-height));overflow-y:auto; }
 .equipment-shell { height:480px; }
}
@media (max-width:1100px) {
 .mobile-main .mobile-category { border-bottom:1px solid #dbe3f0; }
 .mobile-category > summary { cursor:pointer;list-style:none;font-size:13px;color:#183665;display:flex;justify-content:space-between;gap:20px;padding:15px 10px;line-height:1.5; }
 .mobile-category > summary::after { content:'+';flex-shrink:0; }
 .mobile-category[open] > summary { background:#edf2fa; }
 .mobile-category[open] > summary::after { content:'−'; }
 .mobile-category > div { margin:0 8px 8px 14px;padding-left:10px;border-left:1px solid #d6dfec; }
 .mobile-main .mobile-category > div > button { font-size:12px;padding:11px 5px; }
 .mobile-main .mobile-category > div > .mobile-category-overview { font-weight:700;color:#26428a;display:flex;justify-content:space-between;gap:12px; }
}
@media (prefers-reduced-motion:reduce) { .menu,.mobile-menu,.menu-backdrop { transition:none;transform:none; } }

/* Compact dropdowns are positioned from their trigger by app.js. */
.services-menu { left: auto; right: auto; }
