/* Keep keyboard focus visible against both light and dark site backgrounds. */
body :is(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid #153d63 !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 3px #fff !important;
    transition: none !important;
}
/* Agota transitions every property, including inherited visibility. That can
   reject focus while an opened drawer/search field still computes as hidden. */
body .mobile-navigation,
body .mobile-navigation *,
body .search-switcher .search-form-container,
body .search-switcher .search-form-container * {
    transition-property: color, background-color, border-color, box-shadow !important;
}
body .ionspa-skip-link {
    position: fixed;
    left: 16px;
    top: -150px;
    z-index: 2147483647;
    padding: 12px 20px;
    background: #fff;
    color: #153d63;
    font-size: 18px;
    font-weight: 700;
    text-decoration: underline;
}
body .ionspa-skip-link:focus { top: 16px; }
body button.ionspa-icon-button,
body .quantity button.ionspa-quantity-button {
    appearance: none;
    background: transparent;
    background-image: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: inherit;
    font: inherit;
    height: auto;
    min-width: 24px;
    min-height: 24px;
    padding: 0;
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
}
body .quantity button.ionspa-quantity-button {
    display: block !important;
    position: static !important;
    float: none !important;
    flex: none !important;
    line-height: 1 !important;
    width: 24px !important;
    min-width: 24px !important;
    max-width: 24px !important;
    height: 24px !important;
    min-height: 24px !important;
    max-height: 24px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #222 !important;
    text-align: center !important;
}
body .nav-desktop .menu-item-has-children > .sub-menu { visibility: hidden; }
body .nav-desktop .menu-item-has-children:hover > .sub-menu,
body .nav-desktop .menu-item-has-children:focus-within > .sub-menu {
    visibility: visible;
    opacity: 1;
    transform: scaleY(1);
}
body .nav-desktop .ionspa-menu-ready > .sub-menu[hidden],
body .mobile-navigation .ionspa-menu-ready > .sub-menu[hidden] { display: none !important; }
body .nav-desktop .ionspa-menu-ready.ionspa-expanded > .sub-menu {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: scaleY(1) !important;
}
body .mobile-navigation .ionspa-menu-ready.ionspa-expanded > .sub-menu { display: block !important; }
body .mobile-navigation .ionspa-menu-ready > .toggle-submenu { display: none !important; }
body .mobile-navigation .ionspa-menu-ready > a[role="button"]::after {
    content: "+";
    float: right;
    padding: 0 12px;
}
body .mobile-navigation .ionspa-expanded > a[role="button"]::after { content: "−"; }
body .mobile-navigation[inert] { visibility: hidden !important; }
body .search-switcher:not(.showing) .search-form-container { visibility: hidden !important; }
/* The mobile search lives inside the menu, rather than in a separate popup. */
body .mobile-navigation .search-content-popup > .close-popup { display: none; }
/* The old theme hid the submit input with opacity:0 over its search icon. */
body .search-form-container .field-container { position: relative; }
body .search-form-container .field-container input.search-field {
    padding-right: 100px !important;
}
body .search-form-container .field-container input.btn-search {
    position: absolute !important;
    left: auto !important;
    right: 0 !important;
    top: 0 !important;
    opacity: 1 !important;
    background: #153d63 !important;
    color: #fff !important;
    font-size: 14px !important;
    width: 88px !important;
    height: 45px !important;
    padding: 0 10px !important;
    border: 0 !important;
    z-index: 2;
}
body .mobile-navigation .search-content-popup .field-container input.btn-search[type="submit"] {
    background-color: #153d63 !important;
    color: #fff !important;
}

/* Elementor authored the homepage H1 as 2px white text on white. Keep the
   useful document heading available to assistive technology without rendering
   an unreadable text speck or changing the established page layout. */
body.home .elementor-element-da80547 .elementor-heading-title {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* The first product card's image background is a uniform #3c8983. White
   measures 4.12:1 there, which fails for its 16px link and 17px mobile title.
   The matching opaque background keeps the image design visually seamless and
   gives contrast checkers a deterministic 4.80:1 pair with the dark text. */
body.home #ion_kit_rect .elementor-element-b9c1b29 p:first-child,
body.home #ion_kit_rect .elementor-element-de71b9e .elementor-button,
body.home #ion_kit_rect .elementor-element-de71b9e .elementor-button-text {
    background-color: #3c8983 !important;
    color: #050b12 !important;
}
body.home #ion_kit_rect .elementor-element-de71b9e .elementor-button {
    fill: #050b12 !important;
}
