/* Primary navigation. Keep these tokens and rules independent of Foundation. */
.ks-header-nav {
    --ks-nav-blue: #102694;
    --ks-nav-actions-bg: #0d2185;
    --ks-nav-yellow: #ffcc00;
    position: relative;
    z-index: 100;
    width: 100%;
    background: var(--ks-nav-blue);
    color: #f5f7ff;
    font-family: "Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 0.9375rem;
    font-weight: 600;
    font-style: normal;
    line-height: 1.4;
    text-align: start;
}
.ks-header-nav *, .ks-header-nav *::before, .ks-header-nav *::after { box-sizing: border-box; }
.ks-header-nav__inner { max-width: 1450px; margin-inline: auto; padding: 8px 20px 0; }
.ks-header-nav ul { list-style: none; margin: 0; padding: 0; font: inherit; }
.ks-header-nav li { position: relative; margin: 0; padding: 0; font: inherit; }
.ks-header-nav__list { display: flex; align-items: center; justify-content: space-between; gap: 2px; }
.ks-header-nav__list > li { display: flex; align-items: center; }
.ks-header-nav a,
.ks-header-nav button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    min-height: 48px;
    margin: 0;
    padding: 12px 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    letter-spacing: 0;
    text-align: start;
    text-decoration: none;
    text-transform: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    /* The legacy theme applies transition:all!important to every anchor. */
    transition: color 140ms ease, background-color 140ms ease !important;
}
.ks-header-nav__list > li > a, .ks-header-nav__parent-toggle { white-space: nowrap; }
.ks-header-nav a:focus-visible,
.ks-header-nav button:focus-visible {
    outline: 3px solid var(--ks-nav-yellow) !important;
    outline-offset: -3px;
    z-index: 1;
}
.ks-header-nav a:hover,
.ks-header-nav button:hover { color: var(--ks-nav-yellow); }
.ks-header-nav__list > li > [aria-current="page"],
.ks-header-nav__list > .current-menu-ancestor > a,
.ks-header-nav__list > .current-menu-ancestor > .ks-header-nav__parent-toggle { color: var(--ks-nav-yellow); }
.ks-header-nav .ks-header-nav__submenu-toggle { display: none; width: 32px; flex-shrink: 0; padding: 0; justify-content: center; }
.ks-header-nav-ready .ks-header-nav .ks-header-nav__submenu-toggle { display: inline-flex; }
.ks-header-nav a + .ks-header-nav__submenu-toggle::before {
    content: "";
    position: absolute;
    inset-block: 12px;
    inset-inline-start: 0;
    border-inline-start: 1px solid rgba(201, 211, 255, 0.25);
}
.ks-header-nav__chevron { display: block; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); flex-shrink: 0; }
.ks-header-nav.is-enhanced [aria-expanded="true"] > .ks-header-nav__chevron { transform: rotate(225deg) translate(-1px, -1px); }
.ks-header-nav .ks-header-nav__submenu {
    position: absolute;
    inset-block-start: 100%;
    inset-inline-start: 0;
    z-index: 2;
    width: 280px;
    padding: 8px;
    border: 0;
    border-radius: 0;
    background: #f0f4ff;
    color: var(--ks-nav-blue);
    box-shadow: none;
    font-size: 0.9375rem;
    font-weight: 500;
}
.ks-header-nav__submenu li { display: flex; flex-wrap: wrap; align-items: center; }
.ks-header-nav__submenu a, .ks-header-nav__submenu .ks-header-nav__parent-toggle { flex: 1; min-width: 0; min-height: 44px; padding: 10px 12px; overflow-wrap: anywhere; }
.ks-header-nav__submenu a:hover,
.ks-header-nav__submenu button:hover,
.ks-header-nav__submenu [aria-current="page"]:hover { background: var(--ks-nav-blue); color: #fff; text-decoration: none; }
.ks-header-nav__submenu a:focus-visible, .ks-header-nav__submenu button:focus-visible { outline-color: currentColor !important; }
.ks-header-nav__submenu [aria-current="page"] { color: var(--ks-nav-blue); font-weight: 700; }
.ks-header-nav__submenu a + .ks-header-nav__submenu-toggle::before { border-color: rgba(16, 38, 148, 0.25); }
.ks-header-nav__submenu .ks-header-nav__submenu { inset-inline-start: 100%; inset-block-start: -3px; }
.ks-header-nav .ks-header-nav__submenu.is-aligned-end { inset-inline-start: auto; inset-inline-end: 0; }
.ks-header-nav__submenu .ks-header-nav__submenu.is-aligned-end { inset-inline-end: 100%; }
.ks-header-nav-ready .ks-header-nav .ks-header-nav__submenu { display: none; }
.ks-header-nav-ready .ks-header-nav .is-open > .ks-header-nav__submenu { display: block; }
.ks-header-nav__panel { display: block; }
.ks-header-nav .ks-header-nav__mobile-toggle,
.ks-header-nav .ks-header-nav__backdrop,
.ks-header-nav .ks-header-nav__close,
.ks-header-nav__panel-header,
.ks-header-nav__actions { display: none; }
html.ks-header-nav-modal-open { overflow: hidden; }

/* Without JavaScript all destinations remain visible and in the document flow. */
html:not(.ks-header-nav-ready) .ks-header-nav__list { align-items: flex-start; flex-wrap: wrap; }
html:not(.ks-header-nav-ready) .ks-header-nav__list > li { flex-wrap: wrap; }
html:not(.ks-header-nav-ready) .ks-header-nav__submenu { position: static; width: 100%; }
html:not(.ks-header-nav-ready) .ks-header-nav__parent-toggle { cursor: default; }

/* Switch before the eleven labels would need smaller type or a cramped second row. */
@media (min-width: 80rem) {
    /* Keep a padded hover target while aligning the first label with the breadcrumb. */
    .ks-header-nav__list > li:first-child { margin-inline-start: -10px; }
    .ks-header-nav__submenu [aria-current="page"] { background: #dfe8ff; color: var(--ks-nav-blue); font-weight: 700; }
}
@media (max-width: 79.99rem) {
    .ks-header-nav { font-size: 1rem; }
    .ks-header-nav__inner { padding-block: 8px 0; }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__mobile-toggle { display: flex; justify-content: space-between; width: 100%; min-height: 48px; padding-inline: 0; }
    .ks-header-nav__menu-icon { width: 20px; height: 14px; margin-inline-end: 3px; border-block: 2px solid currentColor; background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat; }
    .ks-header-nav__mobile-toggle[aria-expanded="true"] .ks-header-nav__menu-icon { height: 20px; border: 0; background: linear-gradient(45deg, transparent 46%, currentColor 47%, currentColor 53%, transparent 54%), linear-gradient(-45deg, transparent 46%, currentColor 47%, currentColor 53%, transparent 54%); }
    .ks-header-nav .ks-header-nav__list { display: block; }
    .ks-header-nav-ready .ks-header-nav.is-menu-open { z-index: 1000; }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__panel {
        --ks-nav-panel-header-height: 76px;
        display: none;
        position: fixed;
        inset: 0 0 auto auto;
        flex-direction: column;
        z-index: 1002;
        width: min(88vw, 380px);
        height: 100vh;
        height: 100dvh;
        overflow: hidden;
        overscroll-behavior: contain;
        border: 0;
        border-radius: 0;
        background: var(--ks-nav-blue);
        box-shadow: none;
    }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__backdrop {
        display: none;
        position: fixed;
        inset: 0;
        z-index: 1001;
        width: 100%;
        height: 100%;
        min-height: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: rgba(0, 0, 0, 0.45);
        box-shadow: none;
        cursor: default;
        transition: none !important;
    }
    .ks-header-nav-ready .ks-header-nav.is-menu-open .ks-header-nav__panel { display: flex; }
    .ks-header-nav-ready .ks-header-nav.is-menu-open .ks-header-nav__backdrop { display: block; }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__panel-header { display: flex; flex-shrink: 0; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; }
    /* Service templates set negative tracking on every h2; keep it out of the menu. */
    .ks-header-nav__panel-header h2 { margin: 0; color: inherit; font: inherit; font-size: 1.125rem; font-weight: 700; line-height: 1.2; letter-spacing: normal; }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; min-height: 44px; padding: 0; font-size: 1.75rem; line-height: 1; }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__scroll { position: relative; flex: 1 1 auto; min-height: 0; overflow: hidden; }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__list {
        height: 100%;
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior-y: contain;
        scroll-padding-block: 8px 24px;
        padding: 0 20px 20px;
    }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__list,
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__actions { scrollbar-width: thin; scrollbar-color: #8495cf var(--ks-nav-blue); }
    .ks-header-nav__list::-webkit-scrollbar,
    .ks-header-nav__actions::-webkit-scrollbar { width: 6px; }
    .ks-header-nav__list::-webkit-scrollbar-track { background: var(--ks-nav-blue); }
    .ks-header-nav__actions::-webkit-scrollbar-track { background: var(--ks-nav-actions-bg); }
    .ks-header-nav__list::-webkit-scrollbar-thumb,
    .ks-header-nav__actions::-webkit-scrollbar-thumb { background: #8495cf; border-radius: 0; }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__actions {
        display: grid;
        position: relative;
        z-index: 3;
        flex-shrink: 0;
        max-height: min(60%, calc(100% - var(--ks-nav-panel-header-height) - 44px));
        overflow-y: auto;
        gap: 10px;
        margin-block-start: 0;
        padding: 20px 20px max(20px, env(safe-area-inset-bottom));
        border: 0;
        background: var(--ks-nav-actions-bg);
        scrollbar-color: #8495cf var(--ks-nav-actions-bg);
    }
    .ks-header-nav__availability { text-align: center; }
    .ks-header-nav .ks-header-nav__availability-region { margin: 0; color: #c9d3ff; font-size: 0.8125rem; line-height: 1.4; }
    .ks-header-nav .ks-header-nav__availability-hours { margin: 2px 0 0; color: var(--ks-nav-yellow); font-size: 0.9375rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
    .ks-header-nav .ks-header-nav__cta {
        --ks-cta-divider: rgba(16, 38, 148, 0.3);
        display: grid;
        grid-template-columns: 45px minmax(0, 1fr);
        align-items: center;
        gap: 0;
        justify-self: center;
        width: min(100%, 280px);
        min-height: 48px;
        padding: 10px 0;
        border: 0;
        border-radius: 6px;
        background: var(--ks-nav-yellow);
        color: var(--ks-nav-blue);
        font-size: 18px;
        text-align: center;
        overflow-wrap: anywhere;
    }
    .ks-header-nav .ks-header-nav__cta:hover { background: #e6b800; color: var(--ks-nav-blue); }
    .ks-header-nav .ks-header-nav__cta--call { --ks-cta-divider: rgba(201, 211, 255, 0.25); padding-block: 9px; border: 1px solid #8899d5; background: var(--ks-nav-actions-bg); color: #fff; }
    .ks-header-nav .ks-header-nav__cta--call:hover { border-color: #c9d3ff; background: #0b1a6b; color: #fff; }
    .ks-header-nav .ks-header-nav__cta--book:focus-visible { outline-color: var(--ks-nav-blue) !important; }
    .ks-header-nav__cta-label { min-width: 0; padding-inline: 12px; font-weight: 700; }
    .ks-header-nav__cta-icon { box-sizing: content-box; width: 20px; height: 20px; padding: 4px 12px; border-inline-end: 1px solid var(--ks-cta-divider); }
    .ks-header-nav__list > li { flex-wrap: wrap; border-top: 1px solid rgba(201, 211, 255, 0.16); border-radius: 0; }
    .ks-header-nav__list > li > a, .ks-header-nav__list > li > .ks-header-nav__parent-toggle { flex: 1; min-width: 0; min-height: 44px; padding: 0; white-space: normal; }
    .ks-header-nav .ks-header-nav__parent-toggle { justify-content: space-between; }
    .ks-header-nav__list > li > .ks-header-nav__parent-toggle { flex-basis: 100%; display: grid; grid-template-columns: minmax(0, 1fr) 44px; column-gap: 0; }
    .ks-header-nav__list > li > .ks-header-nav__parent-toggle > .ks-header-nav__chevron { justify-self: center; }
    .ks-header-nav .ks-header-nav__submenu-toggle { width: 44px; min-height: 44px; }
    .ks-header-nav .ks-header-nav__submenu { position: static; width: 100%; margin-block: 0 8px; box-shadow: none; font-size: 1rem; }
    .ks-header-nav .ks-header-nav__submenu a,
    .ks-header-nav .ks-header-nav__submenu .ks-header-nav__parent-toggle { padding-block: 8px; }
    .ks-header-nav .ks-header-nav__submenu .ks-header-nav__submenu { margin-inline: 8px; width: calc(100% - 16px); }
}
@media (max-width: 39.99rem) {
    .ks-header-nav__menu-icon { margin-inline-end: 0; }
}
@media (max-width: 22.49rem) {
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__panel {
        /* Mobile layout overflow can move a fixed right edge beyond the visual viewport. */
        inset-inline-start: max(12vw, calc(100vw - 380px));
        inset-inline-end: auto;
    }
}
@media (max-width: 319.98px) {
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__panel {
        inset-inline-start: 0;
        width: 100vw;
    }
}
@media (max-width: 79.99rem) and (max-height: 480px) {
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__panel { --ks-nav-panel-header-height: 60px; }
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__panel-header { padding-block: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    .ks-header-nav a, .ks-header-nav button { transition: none !important; }
}
@media (forced-colors: active) {
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__list,
    .ks-header-nav-ready .ks-header-nav .ks-header-nav__actions { scrollbar-color: auto; }
    .ks-header-nav a:focus-visible, .ks-header-nav button:focus-visible { outline-color: Highlight !important; }
    .ks-header-nav [aria-current="page"] { text-decoration: underline; }
    .ks-header-nav .ks-header-nav__submenu { border: 1px solid CanvasText; }
    .ks-header-nav .ks-header-nav__cta--book:focus-visible { outline-color: Highlight !important; }
    .ks-header-nav__submenu a:focus-visible, .ks-header-nav__submenu button:focus-visible { outline-color: Highlight !important; }
}
