/* Interaction mechanics only. Managed Elementor classes own the visual design. */
[data-ksf-directory] [hidden] { display: none !important; }
.ksf-sidebar { position: sticky; top: var(--ksf-sticky-top, 110px); align-self: start; }
.ksf-mobile-toolbar { display: none; }
.ksf-sheet { position: fixed; inset: auto 0 0; margin: 0; width: 100%; max-width: none; height: 80vh; height: 80dvh; max-height: 80dvh; border: 0; box-sizing: border-box; overflow: hidden; transform: translateY(100%); opacity: 0; transition: transform 220ms ease, opacity 220ms ease; }
.ksf-sheet[open] { display: flex; flex-direction: column; }
.ksf-sheet.is-open { transform: translateY(0); opacity: 1; }
.ksf-sheet::backdrop { background: rgb(33 27 89 / .35); }
.ksf-sheet-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.ksf-sheet-footer { flex-shrink: 0; padding-bottom: max(20px, env(safe-area-inset-bottom)); }
@media (max-width: 1024px) {
  .ksf-directory .ksf-desktop { display: none; }
  .ksf-mobile-toolbar { display: flex; }
  .ksf-sidebar { z-index: 15; top: var(--ksf-mobile-sticky-top, 0px); }
}
@media (prefers-reduced-motion: reduce) {
  .ksf-sheet { transition: none; }
}
.ksf-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
