@view-transition {
  navigation: auto;
}

:root {
  --ksi-fluid-gutter: clamp(1rem, 5vw, 5.625rem);
  --ksi-focus: #72c7ff;
  --ksi-touch-target: 2.75rem;
}

html {
  overflow-x: clip;
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  min-width: 20rem;
  overflow-x: clip;
  overscroll-behavior-y: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html:has(.ksi-site-loader) {
  overflow: hidden;
}

.ksi-site-loader {
  display: grid;
  position: fixed;
  z-index: 2147483646;
  inset: 0;
  align-content: center;
  justify-items: center;
  gap: 1.25rem;
  padding: 2rem;
  background: #00001c;
  opacity: 1;
  visibility: visible;
  transition:
    opacity 380ms ease,
    visibility 380ms ease;
}

.ksi-site-loader__logo {
  inline-size: clamp(11rem, 28vw, 24rem);
  animation: ksi-loader-pulse 1.4s ease-in-out infinite;
}

.ksi-site-loader__track {
  position: relative;
  inline-size: clamp(9rem, 20vw, 17rem);
  block-size: 2px;
  overflow: hidden;
  background: rgb(255 255 255 / 20%);
}

.ksi-site-loader__track > span {
  display: block;
  position: absolute;
  inset: 0;
  background: #4d9cd3;
  transform: translateX(-105%);
  animation: ksi-loader-progress 1.15s ease-in-out infinite;
}

.ksi-site-loader__label {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

html.ksi-site-ready {
  overflow: auto;
}

html.ksi-site-ready .ksi-site-loader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@keyframes ksi-loader-pulse {
  0%,
  100% {
    opacity: 0.72;
    transform: scale(0.985);
  }

  50% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes ksi-loader-progress {
  0% {
    transform: translateX(-105%);
  }

  55%,
  100% {
    transform: translateX(105%);
  }
}

img,
picture,
svg,
video,
canvas {
  max-inline-size: 100%;
}

img,
video {
  block-size: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: anywhere;
  text-wrap: balance;
}

p,
li {
  text-wrap: pretty;
}

a,
button,
input,
select,
summary,
textarea {
  -webkit-tap-highlight-color: rgb(77 156 211 / 28%);
}

:where(a, button, input, select, summary, textarea):focus-visible {
  outline: 3px solid var(--ksi-focus) !important;
  outline-offset: 4px !important;
  border-radius: 2px;
}

.ea11y-skip-to-content-link,
.ksi-skip-link {
  position: fixed;
  z-index: 2147483647;
  inset-block-start: 0.75rem;
  inset-inline-start: 0.75rem;
  padding: 0.75rem 1rem;
  color: #00001c;
  background: #fff;
  border: 2px solid var(--ksi-focus);
  border-radius: 0.25rem;
  font: 600 0.875rem/1.2 Inter, sans-serif;
  transform: translateY(-200%);
  transition: transform 160ms ease;
}

.ea11y-skip-to-content-link:focus,
.ksi-skip-link:focus {
  transform: translateY(0);
}

:is(
    .elementor[data-elementor-type="wp-page"],
    .elementor-location-single
  )
  > .e-con.e-parent.e-con-boxed
  > .e-con-inner {
  inline-size: min(
    calc(100% - (2 * var(--ksi-fluid-gutter))),
    var(--container-max-width, 70rem)
  );
  max-inline-size: 100%;
}

.elementor-element-69ca9806 {
  min-block-size: 72.5625rem !important;
}

.elementor-element-69ca9806 .elementor-background-slideshow {
  min-block-size: 100%;
}

.elementor-nav-menu--dropdown a,
.elementor-button,
button {
  min-block-size: var(--ksi-touch-target);
}

.elementor-widget-text-editor :where(p, li) {
  max-inline-size: 78ch;
}

@media (width <= 64rem) {
  :root {
    --ksi-fluid-gutter: clamp(1.25rem, 4vw, 2.75rem);
  }
}

@media (width >= 64.0625rem) {
  [data-elementor-type="header"]
    .elementor-nav-menu--main
    .menu-item-has-children {
    position: relative;
  }

  [data-elementor-type="header"]
    .elementor-nav-menu--main
    .menu-item-has-children:hover
    > .sub-menu,
  [data-elementor-type="header"]
    .elementor-nav-menu--main
    .menu-item-has-children:focus-within
    > .sub-menu {
    display: block !important;
    position: absolute;
    z-index: 1100;
    inset-block-start: 100%;
    inset-inline-start: 0;
    min-inline-size: max-content;
  }
}

@media (width <= 47.9375rem) {
  [data-elementor-type="header"] > .elementor-element {
    min-block-size: 99px !important;
  }

  :root {
    --ksi-fluid-gutter: clamp(1rem, 5vw, 1.5rem);
  }

  .elementor-element-69ca9806 {
    min-block-size: clamp(32rem, 70svh, 37.5rem) !important;
  }

  .elementor-nav-menu--dropdown a,
  .elementor-button,
  button {
    min-block-size: 3rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  @view-transition {
    navigation: none;
  }

  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .ksi-site-loader__logo,
  .ksi-site-loader__track > span {
    animation: none !important;
  }

  .elementor-invisible {
    visibility: visible !important;
  }

  .elementor-motion-effects-element,
  .elementor-background-slideshow {
    transform: none !important;
  }
}

@media (prefers-contrast: more) {
  :where(a, button):focus-visible {
    outline-color: currentColor !important;
    outline-width: 4px !important;
  }
}

@media (forced-colors: active) {
  :where(a, button, input, select, summary, textarea):focus-visible {
    outline-color: Highlight !important;
  }
}

/* Native static replacements for former page-builder interactions. */
[data-elementor-type="header"] {
  position: sticky;
  z-index: 1000;
  inset-block-start: 0;
}

[data-elementor-type="header"] > .elementor-element {
  position: fixed !important;
  inset: 0 0 auto;
  inline-size: 100%;
  margin-block-start: 0 !important;
}

[data-elementor-type="wp-page"],
.elementor-location-single {
  margin-block-start: 60px;
}

.ksi-static-background {
  background-image: var(--ksi-static-background) !important;
  background-position: center;
  background-size: cover;
}

.elementor-main-swiper {
  position: relative;
  overflow: hidden;
}

.elementor-main-swiper > .swiper-wrapper {
  display: flex;
  transform: translate3d(0, 0, 0);
  transition: transform 400ms ease;
}

.elementor-main-swiper .swiper-slide {
  flex: 0 0 100%;
  inline-size: 100%;
}

.elementor-main-swiper .swiper-pagination {
  display: flex;
  position: absolute;
  z-index: 3;
  inset-block-end: 0.75rem;
  inset-inline: 50% auto;
  gap: 0.4rem;
  transform: translateX(-50%);
}

.elementor-main-swiper .swiper-pagination button {
  min-block-size: 0.65rem;
  inline-size: 0.65rem;
  block-size: 0.65rem;
  padding: 0;
  border: 1px solid #fff;
  border-radius: 50%;
  background: transparent;
}

.elementor-main-swiper .swiper-pagination button[aria-current="true"] {
  background: #fff;
}

.ksi-a11y-toggle {
  display: grid;
  position: fixed;
  z-index: 2000;
  inset-block-end: 1rem;
  inset-inline-end: 1rem;
  inline-size: 2.75rem;
  block-size: 2.75rem;
  min-block-size: 2.75rem;
  padding: 0;
  place-items: center;
  color: #fff;
  background: #2563eb;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 4px 16px rgb(0 0 0 / 30%);
  font: 700 1rem/1 Inter, sans-serif;
}

.ksi-a11y-panel {
  display: none;
  position: fixed;
  z-index: 1999;
  inset-block-end: 4.5rem;
  inset-inline-end: 1rem;
  inline-size: min(19rem, calc(100vw - 2rem));
  padding: 1rem;
  color: #13294b;
  background: #fff;
  border: 1px solid #4d9cd3;
  border-radius: 0.4rem;
  box-shadow: 0 12px 36px rgb(0 0 0 / 28%);
  font: 400 0.875rem/1.4 Inter, sans-serif;
}

.ksi-a11y-panel[aria-hidden="false"] {
  display: grid;
  gap: 0.6rem;
}

.ksi-a11y-panel strong {
  font-size: 1rem;
}

.ksi-a11y-panel button {
  padding: 0.55rem 0.75rem;
  color: #fff;
  background: #13294b;
  border: 0;
  text-align: start;
}

[data-id="2003ba8"],
[data-id="a7c0571"] {
  display: none !important;
}

[data-id="ac0a1a7"] {
  --width: 100% !important;
  flex-basis: 100% !important;
  inline-size: 100% !important;
  max-inline-size: 100% !important;
}

[data-id="9e9d4ac"] {
  --width: 100% !important;
  inline-size: 100% !important;
  max-inline-size: 100% !important;
  margin-inline: 0 !important;
}

@media (width >= 48rem) {
  [data-id="714440dc"],
  [data-id="5d9884df"] {
    --width: 50% !important;
    flex-basis: 50% !important;
    inline-size: 50% !important;
    max-inline-size: 50% !important;
  }
}

.ksi-sbg-credit {
  color: inherit;
  text-decoration: none;
}

.ksi-sbg-credit:is(:hover, :focus-visible) {
  color: #4d9cd3;
  text-decoration: underline;
}

html.ksi-large-text {
  font-size: 118%;
}

html.ksi-high-contrast {
  filter: contrast(135%);
}

html.ksi-reduce-motion *,
html.ksi-reduce-motion *::before,
html.ksi-reduce-motion *::after {
  animation-duration: 0.01ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.01ms !important;
}

@media (width <= 64rem) {
  .elementor-nav-menu__container[aria-hidden="true"] {
    display: none !important;
  }

  .elementor-nav-menu__container.ksi-menu-open {
    display: block !important;
  }

  .elementor-nav-menu__container .sub-menu {
    display: none !important;
  }

  .elementor-nav-menu__container
    .menu-item-has-children.ksi-submenu-open
    > .sub-menu {
    display: block !important;
  }
}

/* Maintained responsive layer for the static site. */
.ksi-retired-page {
  min-width: 0;
  margin: 0;
}

.ksi-retired-page *,
.ksi-retired-page *::before,
.ksi-retired-page *::after {
  box-sizing: border-box;
}

.ksi-retired-page main {
  inline-size: 100%;
  max-inline-size: 100%;
  padding-inline: clamp(1rem, 5vw, 2rem) !important;
}

:where(
    .elementor-widget-text-editor,
    .elementor-widget-theme-post-content,
    .elementor-heading-title,
    .elementor-button-text,
    .elementor-post__title,
    .elementor-post__excerpt,
    .ksi-menu-item-link-5588,
    .ksi-submenu-5588
  ) {
  min-inline-size: 0;
  overflow-wrap: anywhere;
}

:where(.elementor-widget-image, .elementor-image, .elementor-post__thumbnail) img {
  display: block;
  inline-size: 100%;
  max-inline-size: 100%;
  object-fit: cover;
}

.elementor-posts-container,
.elementor-loop-container,
.elementor-grid {
  min-inline-size: 0;
}

:where(.elementor-posts-container, .elementor-loop-container) > * {
  min-inline-size: 0;
}

.elementor-post__thumbnail__link {
  display: block;
  overflow: hidden;
}

.elementor-widget-theme-post-content
  :where(p, li, blockquote, figcaption),
.elementor-location-single
  :where(.elementor-widget-text-editor, .elementor-widget-theme-post-content)
  :where(p, li) {
  max-inline-size: 72ch;
  line-height: 1.7;
}

.elementor-widget-theme-post-content
  :where(table, pre, code, iframe, embed),
.elementor-widget-text-editor :where(table, pre, code, iframe, embed) {
  max-inline-size: 100%;
}

.elementor-widget-theme-post-content :where(pre, table),
.elementor-widget-text-editor :where(pre, table) {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.elementor-widget-theme-post-content a,
.elementor-widget-text-editor a {
  overflow-wrap: anywhere;
}

.e-n-accordion-item > summary,
.elementor-tab-title {
  min-block-size: var(--ksi-touch-target);
  padding-block: max(0.65rem, env(safe-area-inset-top, 0px));
  cursor: pointer;
  overflow-wrap: anywhere;
}

.e-n-accordion-item > summary::marker {
  font-size: 1em;
}

.ksi-service-menu-5588,
.ksi-menu-list-5588,
.ksi-submenu-5588 {
  max-inline-size: 100%;
}

.ksi-menu-list-5588,
.ksi-submenu-5588 {
  padding-inline-start: 0;
  list-style: none;
}

.ksi-menu-item-link-5588,
.ksi-submenu-item-5588 > a {
  display: flex;
  min-block-size: var(--ksi-touch-target);
  align-items: center;
  gap: 0.5rem;
  padding: 0.7rem 0.75rem;
}

[data-ksi-protected-form] :where(input, select, textarea, button) {
  max-inline-size: 100%;
  min-block-size: var(--ksi-touch-target);
}

[data-ksi-protected-form] :where(input, select, textarea) {
  inline-size: 100%;
}

.ksi-form-honeypot {
  position: absolute !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  min-block-size: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.ksi-form-message {
  margin-block: 0.75rem;
  font: inherit;
}

@media (width <= 64rem) {
  [data-elementor-type="header"] .elementor-nav-menu__container {
    max-block-size: calc(100svh - 6rem);
    overflow: auto;
    overscroll-behavior: contain;
  }

  [data-elementor-type="header"] .elementor-nav-menu--dropdown {
    inline-size: min(100%, 32rem);
    max-inline-size: 100vw;
  }

  [data-elementor-type="header"] .elementor-menu-toggle {
    min-inline-size: 3rem;
    min-block-size: 3rem;
  }

  [data-elementor-type="header"] .sub-menu a {
    padding-inline-start: clamp(1.5rem, 7vw, 3rem);
    white-space: normal;
  }
}

@media (width <= 47.9375rem) {
  :where(
      .elementor-posts-container,
      .elementor-loop-container
    ) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  :where(.e-con, .e-con-inner) {
    min-inline-size: 0;
  }

  .elementor-widget-wrap,
  .elementor-column,
  .elementor-column-wrap {
    min-inline-size: 0;
    max-inline-size: 100%;
  }

  .elementor-button {
    max-inline-size: 100%;
    padding-inline: clamp(1rem, 5vw, 1.5rem);
    white-space: normal;
  }

  .elementor-widget-theme-post-content
    :where(h1, h2, h3, h4, p, li, blockquote),
  .elementor-location-single
    .elementor-widget-text-editor
    :where(h1, h2, h3, h4, p, li, blockquote) {
    max-inline-size: 100%;
  }

  .elementor-post__thumbnail img {
    aspect-ratio: 16 / 10;
  }

  .ksi-service-menu-5588 {
    inline-size: 100%;
  }
}

@media (width <= 30rem) {
  :root {
    --ksi-fluid-gutter: 1rem;
  }

  h1 {
    font-size: clamp(2rem, 11vw, 3.25rem) !important;
  }

  h2 {
    font-size: clamp(1.65rem, 8vw, 2.5rem) !important;
  }

  .ksi-a11y-toggle {
    inset-block-end: max(0.75rem, env(safe-area-inset-bottom));
    inset-inline-end: 0.75rem;
  }

  .ksi-a11y-panel {
    inset-inline: 0.75rem;
    inline-size: auto;
  }
}

/* Responsive and viewport-safety refinements (320px–1920px). */
:root {
  --ksi-header-height: 3.9375rem;
  --ksi-header-offset: calc(
    var(--ksi-header-height) + env(safe-area-inset-top, 0px)
  );
  --ksi-safe-inline-start: env(safe-area-inset-left, 0px);
  --ksi-safe-inline-end: env(safe-area-inset-right, 0px);
}

html {
  scroll-padding-block-start: calc(var(--ksi-header-offset) + 1rem);
}

body {
  min-block-size: 100svh;
  padding-inline:
    var(--ksi-safe-inline-start)
    var(--ksi-safe-inline-end);
}

:where(
    main,
    [data-elementor-type="wp-page"],
    .elementor-location-single,
    [id]
  ) {
  scroll-margin-block-start: calc(var(--ksi-header-offset) + 1rem);
}

[data-elementor-type="header"] > .elementor-element {
  inset-block-start: env(safe-area-inset-top, 0px);
  max-inline-size: 100%;
  padding-inline:
    var(--ksi-safe-inline-start)
    var(--ksi-safe-inline-end);
}

[data-elementor-type="header"]
  :where(
    .elementor-item,
    .elementor-sub-item,
    .elementor-menu-toggle,
    .elementor-button
  ),
.elementor-social-icon,
.elementor-cta__button,
.elementor-swiper-button,
.swiper-pagination button {
  min-inline-size: var(--ksi-touch-target);
  min-block-size: var(--ksi-touch-target);
}

[data-elementor-type="header"] .elementor-item,
[data-elementor-type="header"] .elementor-sub-item {
  display: flex;
  align-items: center;
}

[data-elementor-type="header"] .elementor-menu-toggle {
  justify-content: center;
}

[data-elementor-type="header"] img {
  max-block-size: min(3.25rem, calc(var(--ksi-header-height) - 0.75rem));
  inline-size: auto;
  object-fit: contain;
}

.elementor-main-swiper .swiper-pagination {
  align-items: center;
  gap: 0;
}

.elementor-main-swiper .swiper-pagination button {
  display: grid;
  inline-size: var(--ksi-touch-target);
  block-size: var(--ksi-touch-target);
  border: 0;
  place-items: center;
}

.elementor-main-swiper .swiper-pagination button::before {
  inline-size: 0.65rem;
  block-size: 0.65rem;
  border: 1px solid #fff;
  border-radius: 50%;
  content: "";
}

.elementor-main-swiper
  .swiper-pagination
  button[aria-current="true"] {
  background: transparent;
}

.elementor-main-swiper
  .swiper-pagination
  button[aria-current="true"]::before {
  background: #fff;
}

.ea11y-skip-to-content-link,
.ksi-skip-link {
  min-block-size: var(--ksi-touch-target);
}

.ksi-services-page [data-elementor-type="wp-page"] > .e-con:nth-child(2)
  .e-con-inner {
  align-items: start;
  gap: clamp(1rem, 4vw, 4rem);
}

.ksi-services-page
  [data-elementor-type="wp-page"]
  > .e-con:nth-child(n + 3):has(> .e-con-inner > a.e-con)
  > .e-con-inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: clamp(1rem, 2.5vw, 2rem);
}

.ksi-services-page
  [data-elementor-type="wp-page"]
  > .e-con:nth-child(n + 3):has(> .e-con-inner > a.e-con)
  > .e-con-inner
  > a.e-con {
  inline-size: 100% !important;
  min-block-size: clamp(18rem, 32vw, 30rem);
  overflow: hidden;
  background-position: center;
  background-size: cover;
}

.ksi-profile-page [data-elementor-type="wp-page"] > .e-con:nth-child(2) {
  min-inline-size: 0;
}

.ksi-profile-page
  [data-elementor-type="wp-page"]
  > .e-con:nth-child(2)
  > .e-con {
  min-inline-size: 0;
}

.ksi-profile-page
  [data-elementor-type="wp-page"]
  > .e-con:nth-child(2)
  .e-grid {
  grid-template-columns: minmax(0, 1fr);
}

.ksi-profile-page
  [data-elementor-type="wp-page"]
  > .e-con:nth-child(2)
  .elementor-social-icon {
  display: inline-grid;
  place-items: center;
}

.ksi-profile-page
  [data-elementor-type="wp-page"]
  > .e-con:nth-child(2)
  .elementor-widget-text-editor {
  min-inline-size: 0;
}

.ksi-profile-page
  [data-elementor-type="wp-page"]
  > .e-con:nth-child(2)
  .elementor-widget-text-editor
  :where(p, li) {
  max-inline-size: 72ch;
  line-height: 1.65;
}

.ksi-profile-page
  [data-elementor-type="wp-page"]
  > .e-con:nth-child(2)
  > .e-con:last-child
  > .e-con {
  min-block-size: clamp(24rem, 58vw, 52rem);
  background-position: center top;
  background-size: cover;
}

.elementor-location-footer :where(a, .elementor-icon) {
  min-block-size: var(--ksi-touch-target);
}

@media (width >= 90rem) {
  :root {
    --ksi-fluid-gutter: clamp(4rem, 6vw, 7.5rem);
  }

  :is(
      .elementor[data-elementor-type="wp-page"],
      .elementor-location-single
    )
    > .e-con.e-parent.e-con-boxed
    > .e-con-inner {
    --container-max-width: 90rem;
  }
}

@media (width <= 64rem) {
  :root {
    --ksi-header-height: 6.1875rem;
  }

  [data-elementor-type="header"] .elementor-nav-menu__container {
    max-block-size: calc(
      100dvh - var(--ksi-header-offset) - env(safe-area-inset-bottom, 0px)
    );
    padding-block-end: env(safe-area-inset-bottom, 0px);
  }

  [data-elementor-type="header"] .elementor-nav-menu--dropdown {
    inline-size: 100%;
  }

  [data-elementor-type="header"]
    .elementor-nav-menu--dropdown
    :where(.elementor-item, .elementor-sub-item) {
    min-block-size: 3rem;
    padding-block: 0.75rem;
    padding-inline-end: max(1rem, var(--ksi-safe-inline-end));
  }

  [data-elementor-type="header"] .sub-arrow {
    display: inline-grid;
    min-inline-size: var(--ksi-touch-target);
    min-block-size: var(--ksi-touch-target);
    margin-inline-start: auto;
    place-items: center;
  }
}

@media (width >= 48rem) {
  .ksi-profile-page
    [data-elementor-type="wp-page"]
    > .e-con:nth-child(2) {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
    align-items: stretch;
  }

  .ksi-profile-page
    [data-elementor-type="wp-page"]
    > .e-con:nth-child(2)
    > .e-con {
    inline-size: 100%;
  }
}

@media (width <= 47.9375rem) {
  .ksi-profile-page
    [data-elementor-type="wp-page"]
    > .e-con:nth-child(2) {
    display: flex;
    flex-direction: column;
  }

  .ksi-profile-page
    [data-elementor-type="wp-page"]
    > .e-con:nth-child(2)
    > .e-con:last-child {
    order: -1;
  }

  .ksi-profile-page
    [data-elementor-type="wp-page"]
    > .e-con:nth-child(2)
    > .e-con:last-child
    > .e-con {
    min-block-size: clamp(22rem, 118vw, 38rem);
  }

  .elementor-location-footer .e-con-inner {
    min-inline-size: 0;
  }
}

@media (width <= 22.5rem) {
  :root {
    --ksi-fluid-gutter: 0.875rem;
  }

  .elementor-button,
  .elementor-cta__button {
    inline-size: 100%;
    justify-content: center;
  }

  .ksi-a11y-panel {
    inset-inline:
      max(0.5rem, var(--ksi-safe-inline-start))
      max(0.5rem, var(--ksi-safe-inline-end));
  }
}
