/**
 * BazaarMed global header/footer shell — v1.3.0
 * Mirrors the approved homepage v35 shell on every non-home route.
 */

:root {
    --bm-shell-navy: #092f4a;
    --bm-shell-blue: #1d4e89;
    --bm-shell-blue-strong: #0d5d9e;
    --bm-shell-green: #15966d;
    --bm-shell-ink: #102f49;
    --bm-shell-muted: #647b8f;
    --bm-shell-line: #dce8f0;
    --bm-shell-surface: #fff;
}

/* First-paint guard: suppress only the native shell while the approved shell
 * is being built. Page content remains visible and the guard fails open. */
html.bm-site-shell-pending body > .ribbon,
html.bm-site-shell-pending body > .uk-background-accent.uk-hidden\@s,
html.bm-site-shell-pending body > header,
html.bm-site-shell-pending body > footer {
    visibility: hidden !important;
}

/* The legacy component markup is also progressively enhanced after
 * DOMContentLoaded. Keep it behind a neutral branded loading surface until
 * every final route class and the global shell are ready. */
html.bm-site-shell-pending body > * {
    visibility: hidden !important;
}

html.bm-site-shell-pending body::before {
    content: "";
    display: block;
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    min-height: 100vh;
    visibility: visible !important;
    border-top: 3px solid transparent;
    border-image: linear-gradient(90deg, #24b783, #18a9d6 48%, #1d4e89) 1;
    background:
        linear-gradient(90deg, transparent 0 22%, rgba(29, 78, 137, .07) 22% 49%, transparent 49% 100%) 50% 42px / min(760px, 72vw) 48px no-repeat,
        linear-gradient(90deg, transparent 0 12%, rgba(21, 150, 109, .055) 12% 35%, transparent 35% 100%) 50% 112px / min(1080px, 86vw) 16px no-repeat,
        radial-gradient(circle at 72% 24%, rgba(24, 169, 214, .09), transparent 23%),
        radial-gradient(circle at 18% 72%, rgba(36, 183, 131, .08), transparent 25%),
        #f6fafc;
}

@media (max-width: 767px) {
    html.bm-site-shell-pending body::before {
        background:
            linear-gradient(90deg, transparent 0 18%, rgba(29, 78, 137, .07) 18% 60%, transparent 60% 100%) 50% 24px / 82vw 42px no-repeat,
            radial-gradient(circle at 75% 22%, rgba(24, 169, 214, .09), transparent 28%),
            #f6fafc;
    }
}

body.bm-site-shell-ready {
    padding-top: 0 !important;
}

body.bm-site-shell-ready > .ribbon,
body.bm-site-shell-ready > .uk-background-accent.uk-hidden\@s,
body.bm-site-shell-ready > header,
body.bm-site-shell-ready > footer {
    display: none !important;
}

.bm-site-shell {
    width: 100%;
    position: relative;
    z-index: 920;
    direction: rtl;
    color: var(--bm-shell-ink);
    font-family: inherit;
}

.bm-site-shell *,
.bm-site-shell *::before,
.bm-site-shell *::after {
    box-sizing: border-box;
}

.bm-site-shell a {
    text-decoration: none !important;
}

.bm-site-shell__container {
    width: min(1240px, calc(100% - 40px));
    margin-inline: auto;
}

.bm-site-shell__header {
    position: relative;
    z-index: 930;
    border-bottom: 1px solid rgba(29, 78, 137, .12);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 10px 34px rgba(15, 55, 83, .065);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.bm-site-shell__header::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, #24b783, #18a9d6 48%, #1d4e89);
}

.bm-site-shell__primary {
    min-height: 82px;
    display: grid;
    grid-template-columns: minmax(180px, .62fr) minmax(360px, 1.7fr) auto;
    grid-template-areas: "brand search utility";
    align-items: center;
    gap: 26px;
}

.bm-site-shell__brand {
    grid-area: brand;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: 10px;
    color: var(--bm-shell-ink) !important;
    font-size: 15px;
    font-weight: 900;
}

.bm-site-shell__brand img {
    display: block;
    width: auto;
    max-width: 142px;
    height: 40px;
    object-fit: contain;
}

.bm-site-shell__search {
    grid-area: search;
    min-width: 0;
    height: 50px;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 114px;
    align-items: center;
    overflow: hidden;
    border: 1px solid #c9dce9;
    border-radius: 15px;
    background: #f5f9fc;
    box-shadow: 0 8px 22px rgba(22, 74, 108, .06);
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.bm-site-shell__search:focus-within {
    border-color: #75aed3;
    background: #fff;
    box-shadow: 0 0 0 4px rgba(29, 78, 137, .09), 0 12px 28px rgba(22, 74, 108, .09);
}

.bm-site-shell__search-icon {
    display: grid;
    place-items: center;
    color: var(--bm-shell-blue);
}

.bm-site-shell__search input {
    width: 100% !important;
    min-width: 0;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 6px !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    color: var(--bm-shell-ink) !important;
    font: inherit !important;
    font-size: 12px !important;
    box-shadow: none !important;
    text-align: right;
}

.bm-site-shell__search input::placeholder {
    color: #74899b;
    opacity: 1;
}

.bm-site-shell__search button {
    align-self: stretch;
    margin: 5px;
    border: 0;
    border-radius: 11px;
    background: var(--bm-shell-green);
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
    transition: background-color .2s ease, transform .2s ease;
}

.bm-site-shell__search button:hover {
    background: #107d59;
}

.bm-site-shell__utility {
    grid-area: utility;
    display: flex;
    align-items: center;
    gap: 8px;
}

.bm-site-shell__icon,
.bm-site-shell__menu-toggle {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border: 1px solid #cbdde9;
    border-radius: 12px;
    background: #fff;
    color: var(--bm-shell-blue) !important;
    cursor: pointer;
    transition: transform .2s ease, border-color .2s ease, background-color .2s ease;
}

.bm-site-shell__icon:hover,
.bm-site-shell__menu-toggle:hover {
    transform: translateY(-2px);
    border-color: #8cb7d3;
    background: #f2f8fc;
}

.bm-site-shell__secondary {
    min-height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-top: 1px solid #edf3f7;
}

.bm-site-shell__nav {
    display: flex;
    align-items: center;
    gap: 5px;
}

.bm-site-shell__nav a {
    position: relative;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    padding: 0 14px;
    border-radius: 11px;
    color: #38536a !important;
    font-size: 12px;
    font-weight: 800;
}

.bm-site-shell__nav a:hover,
.bm-site-shell__nav a.is-active {
    color: var(--bm-shell-blue) !important;
    background: #f0f6fb;
}

.bm-site-shell__nav a.is-active::after {
    content: "";
    position: absolute;
    right: 14px;
    bottom: 3px;
    left: 14px;
    height: 3px;
    border-radius: 99px;
    background: linear-gradient(90deg, #1aa7d8, #29b886);
}

.bm-site-shell__actions {
    display: flex;
    align-items: center;
    gap: 9px;
}

.bm-site-shell__cta {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 16px;
    border-radius: 11px;
    color: #fff !important;
    font-size: 11.5px;
    font-weight: 900;
    box-shadow: 0 9px 20px rgba(15, 70, 105, .13);
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.bm-site-shell__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 13px 26px rgba(15, 70, 105, .2);
}

.bm-site-shell__cta--seller {
    background: var(--bm-shell-green);
}

.bm-site-shell__cta--seller:hover {
    background: #107c59;
}

.bm-site-shell__cta--tender {
    background: var(--bm-shell-blue);
}

.bm-site-shell__cta--tender:hover {
    background: #123f72;
}

.bm-site-shell__mobile {
    display: none;
    position: relative;
    align-items: center;
    gap: 6px;
}

.bm-site-shell__menu {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    width: min(320px, calc(100vw - 28px));
    padding: 13px;
    border: 1px solid #d5e4ee;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 22px 55px rgba(10, 50, 78, .18);
}

.bm-site-shell__menu[hidden] {
    display: none !important;
}

.bm-site-shell__menu nav {
    display: grid;
    gap: 4px;
}

.bm-site-shell__menu nav a {
    min-height: 43px;
    display: flex;
    align-items: center;
    padding: 0 12px;
    border-radius: 10px;
    color: #28475f !important;
    font-size: 12px;
    font-weight: 800;
}

.bm-site-shell__menu nav a:hover,
.bm-site-shell__menu nav a.is-active {
    color: var(--bm-shell-blue) !important;
    background: #f0f6fa;
}

.bm-site-shell__menu-actions {
    display: grid;
    gap: 7px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #e7eef3;
}

.bm-site-shell__footer {
    position: relative;
    z-index: 1;
    overflow: hidden;
    margin-top: 64px;
    background:
        radial-gradient(circle at 12% 0, rgba(30, 154, 151, .2), transparent 27%),
        linear-gradient(135deg, #082c44, #0a3853 58%, #082a42);
    color: #fff;
}

.bm-site-shell__footer::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, #1eb381, #16b7d4 52%, #1d4e89);
}

.bm-site-shell__footer-grid {
    display: grid;
    grid-template-columns:
        minmax(290px, 1.25fr)
        repeat(3, minmax(140px, .68fr))
        minmax(190px, .82fr);
    gap: 34px;
    padding-block: 54px 48px;
}

.bm-site-shell__footer h2 {
    position: relative;
    margin: 0 0 16px;
    padding-bottom: 10px;
    color: #fff;
    font-size: 13px;
    line-height: 1.7;
    font-weight: 900;
}

.bm-site-shell__footer h2::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 30px;
    height: 2px;
    border-radius: 99px;
    background: linear-gradient(90deg, #24b783 0%, #18a9d6 52%, #1d4e89 100%);
}

.bm-site-shell__footer-logo {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    margin-bottom: 17px;
    color: #fff !important;
    font-size: 25px;
    font-weight: 900;
}

.bm-site-shell__footer-logo img {
    width: auto;
    max-width: 146px;
    height: 40px;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.bm-site-shell__footer-intro {
    max-width: 390px;
    margin: 0 0 16px;
    color: #c2d0da;
    font-size: 11px;
    line-height: 2;
}

.bm-site-shell__contact {
    display: grid;
    gap: 8px;
}

.bm-site-shell__contact a,
.bm-site-shell__contact span {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #a9bdcb !important;
    font-size: 10.5px;
    line-height: 1.9;
}

.bm-site-shell__contact svg {
    flex: 0 0 auto;
    margin-top: 4px;
    color: #49d0a3;
}

.bm-site-shell__contact b {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.bm-site-shell__footer-nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.bm-site-shell__footer-nav a {
    position: relative;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    padding-right: 13px;
    color: #a9bdcb !important;
    font-size: 10.5px;
    line-height: 1.7;
    transition: color .2s ease, transform .2s ease;
}

.bm-site-shell__footer-nav a::before {
    content: "";
    position: absolute;
    right: 0;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #2cae87;
}

.bm-site-shell__footer-nav a:hover {
    color: #fff !important;
    transform: translateX(-3px);
}

.bm-site-shell__trust p {
    margin: 0 0 16px;
    color: #b8c8d4;
    font-size: 10.8px;
    line-height: 1.9;
}

.bm-site-shell__trust {
    align-self: start;
    padding: 20px 18px 18px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 18px;
    background: rgba(255, 255, 255, .045);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035);
}

.bm-site-shell__seal {
    display: flex;
    align-items: center;
    gap: 12px;
}

.bm-site-shell__seal img {
    width: 70px;
    height: 78px;
    object-fit: contain;
    border-radius: 10px;
    background: rgba(255, 255, 255, .92);
}

.bm-site-shell__seal span {
    color: #91a8b8;
    font-size: 9.5px;
    line-height: 1.8;
}

.bm-site-shell__bottom {
    border-top: 1px solid rgba(255, 255, 255, .08);
    background: rgba(0, 0, 0, .09);
}

.bm-site-shell__bottom > div {
    min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.bm-site-shell__bottom span,
.bm-site-shell__bottom a {
    color: #91a7b8 !important;
    font-size: 10px;
}

.bm-site-shell__sr-only {
    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;
    white-space: nowrap !important;
    border: 0 !important;
}

.bm-site-shell :focus-visible {
    outline: 3px solid #19aee0 !important;
    outline-offset: 3px;
}

@media (max-width: 1023px) {
    .bm-site-shell__container {
        width: min(920px, calc(100% - 30px));
    }

    .bm-site-shell__primary {
        min-height: 72px;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "brand mobile"
            "search search";
        gap: 8px 14px;
        padding-block: 11px 13px;
    }

    .bm-site-shell__brand img {
        max-width: 118px;
        height: 34px;
    }

    .bm-site-shell__utility,
    .bm-site-shell__secondary {
        display: none;
    }

    .bm-site-shell__mobile {
        grid-area: mobile;
        display: flex;
    }

    .bm-site-shell__search {
        height: 46px;
        grid-template-columns: 42px minmax(0, 1fr) 92px;
    }

    .bm-site-shell__search input {
        height: 44px !important;
    }

    .bm-site-shell__footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bm-site-shell__footer-brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .bm-site-shell__container {
        width: min(100% - 22px, 560px);
    }

    .bm-site-shell__brand span {
        display: none;
    }

    .bm-site-shell__brand img {
        max-width: 104px;
        height: 31px;
    }

    .bm-site-shell__icon,
    .bm-site-shell__menu-toggle {
        width: 39px;
        height: 39px;
        flex-basis: 39px;
    }

    .bm-site-shell__search {
        grid-template-columns: 38px minmax(0, 1fr) 75px;
        border-radius: 13px;
    }

    .bm-site-shell__search input {
        font-size: 11px !important;
    }

    .bm-site-shell__search button {
        font-size: 10.5px;
    }

    .bm-site-shell__footer {
        margin-top: 45px;
    }

    .bm-site-shell__footer-grid {
        grid-template-columns: 1fr;
        gap: 26px;
        padding-block: 40px 34px;
    }

    .bm-site-shell__footer-brand {
        grid-column: auto;
        text-align: center;
    }

    .bm-site-shell__footer-logo {
        justify-content: center;
    }

    .bm-site-shell__footer-intro {
        margin-inline: auto;
    }

    .bm-site-shell__contact {
        max-width: 430px;
        margin-inline: auto;
        text-align: right;
    }

    .bm-site-shell__footer h2 {
        padding-bottom: 8px;
    }

    .bm-site-shell__bottom > div {
        min-height: 82px;
        flex-direction: column;
        justify-content: center;
        gap: 7px;
        text-align: center;
    }
}

/* BazaarMed compact, non-clipping mobile footer — Final v8.9 */
@media (max-width: 640px) {
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer,
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: clip !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-grid {
        width: calc(100% - 24px) !important;
        max-width: 560px !important;
        min-width: 0 !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px 14px !important;
        margin-inline: auto !important;
        padding: 30px 0 26px !important;
        box-sizing: border-box !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-grid > * {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-brand,
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__trust {
        grid-column: 1 / -1 !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-brand {
        text-align: right !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-logo {
        justify-content: flex-start !important;
        margin-bottom: 10px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-intro {
        max-width: 100% !important;
        margin: 0 0 12px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__contact {
        max-width: 100% !important;
        margin: 0 !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-nav {
        align-items: stretch !important;
        padding: 14px !important;
        border: 1px solid rgba(255, 255, 255, .10);
        border-radius: 14px;
        background: rgba(255, 255, 255, .035);
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-nav h2 {
        margin-bottom: 7px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-nav a {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 44px !important;
        padding: 7px 13px 7px 3px !important;
        box-sizing: border-box !important;
        overflow-wrap: anywhere;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__trust {
        padding: 16px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__seal {
        justify-content: flex-start !important;
        flex-wrap: wrap;
    }
}

@media (max-width: 420px) {
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-grid > * {
        grid-column: 1 !important;
    }
}

/* v1.4.0 — profile canonical-footer parity.
 * The authenticated dashboard canonicalizer replaces the generated footer's
 * inner markup/class with the approved homepage v34 footer. The profile theme
 * also declares `html.bm-profile-dashboard-preview-v1 footer {background:#fff
 * !important}`, so the real homepage background must win with a narrower,
 * more-specific important rule. This selector never matches the semantic
 * footers inside `.bm-life-case` cards. */
html.bm-site-shell-v1 body.bm-site-shell-ready
.bm-site-shell--footer > footer.bmhp-v1__footer {
    display: block !important;
    margin-top: 64px !important;
    border: 0 !important;
    background:
        radial-gradient(circle at 86% 5%, rgba(36, 174, 126, .12), transparent 28%),
        radial-gradient(circle at 10% 100%, rgba(33, 132, 202, .12), transparent 30%),
        linear-gradient(145deg, #0b2338 0%, #0d2a42 54%, #0a2135 100%) !important;
    color: #fff !important;
}

@media (max-width: 640px) {
    html.bm-site-shell-v1 body.bm-site-shell-ready
    .bm-site-shell--footer > footer.bmhp-v1__footer {
        margin-top: 45px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bm-site-shell *,
    .bm-site-shell *::before,
    .bm-site-shell *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/*
 * Route-level legacy styles use `html.[route] footer { background:#fff!important; }`.
 * Keep the approved shell visually isolated from those native-footer rules.
 */
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer > footer.bm-site-shell__footer {
    display: block !important;
    margin-top: 64px !important;
    border: 0 !important;
    background:
        radial-gradient(circle at 12% 0, rgba(30, 154, 151, .2), transparent 27%),
        linear-gradient(135deg, #082c44, #0a3853 58%, #082a42) !important;
    color: #fff !important;
    box-shadow: none !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer h2 {
    color: #fff !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer-intro {
    color: #c2d0da !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__trust p {
    color: #b8c8d4 !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__seal span {
    color: #91a8b8 !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell__footer .bm-site-shell__bottom {
    border-top-color: rgba(255, 255, 255, .08) !important;
    background: rgba(0, 0, 0, .09) !important;
}

/*
 * Content routes may apply grid/width rules to every form control.
 * Pin the three header-search cells so the input can never be replaced by
 * an oversized submit button.
 */
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__search {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 114px !important;
    grid-template-rows: 50px !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__search > .bm-site-shell__search-icon {
    position: static !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 44px !important;
    height: 50px !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__search > input#bm-site-shell-search {
    position: static !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 48px !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 6px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__search > button[type="submit"] {
    position: static !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 114px !important;
    min-height: 0 !important;
    height: 40px !important;
    margin: 5px !important;
    padding: 0 12px !important;
}

@media (max-width: 640px) {
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer > footer.bm-site-shell__footer {
        margin-top: 45px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__search {
        grid-template-columns: 38px minmax(0, 1fr) 75px !important;
        grid-template-rows: 46px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__search > .bm-site-shell__search-icon {
        width: 38px !important;
        height: 46px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__search > input#bm-site-shell-search {
        height: 44px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__search > button[type="submit"] {
        max-width: 75px !important;
        height: 36px !important;
        padding-inline: 7px !important;
    }
}

/* Apply the approved compact footer on every mobile route, including pages
 * whose legacy scripts do not retain the shell state classes on html/body. */
@media (max-width: 640px) {
    .bm-site-shell--footer,
    .bm-site-shell--footer > footer.bm-site-shell__footer {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: clip !important;
    }

    .bm-site-shell--footer > footer.bm-site-shell__footer {
        margin-top: 45px !important;
    }

    .bm-site-shell--footer .bm-site-shell__footer-grid {
        width: calc(100% - 24px) !important;
        max-width: 560px !important;
        min-width: 0 !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px 14px !important;
        margin-inline: auto !important;
        padding: 30px 0 26px !important;
        box-sizing: border-box !important;
    }

    .bm-site-shell--footer .bm-site-shell__footer-grid > * {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    .bm-site-shell--footer .bm-site-shell__footer-brand,
    .bm-site-shell--footer .bm-site-shell__trust {
        grid-column: 1 / -1 !important;
    }

    .bm-site-shell--footer .bm-site-shell__footer-brand {
        text-align: right !important;
    }

    .bm-site-shell--footer .bm-site-shell__footer-logo {
        justify-content: flex-start !important;
        margin-bottom: 10px !important;
    }

    .bm-site-shell--footer .bm-site-shell__footer-intro,
    .bm-site-shell--footer .bm-site-shell__contact {
        max-width: 100% !important;
        margin-inline: 0 !important;
    }

    .bm-site-shell--footer .bm-site-shell__footer-nav {
        align-items: stretch !important;
        padding: 14px !important;
        border: 1px solid rgba(255, 255, 255, .10);
        border-radius: 14px;
        background: rgba(255, 255, 255, .035);
    }

    .bm-site-shell--footer .bm-site-shell__footer-nav a {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 44px !important;
        padding: 7px 13px 7px 3px !important;
        box-sizing: border-box !important;
        overflow-wrap: anywhere;
    }

    .bm-site-shell--footer .bm-site-shell__trust {
        padding: 16px !important;
    }
}

@media (max-width: 420px) {
    .bm-site-shell--footer .bm-site-shell__footer-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 14px !important;
    }

    .bm-site-shell--footer .bm-site-shell__footer-grid > * {
        grid-column: 1 !important;
    }
}

/* ==========================================================================
   v1.2.1 — typography + nav underline parity with the approved homepage header (v35).
   Measured from the live homepage; keeps the shell's own row heights and
   breakpoints, changes only type, the search field and link paddings.
   ========================================================================== */
@media (min-width: 1024px) {
    .bm-site-shell__primary {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 22px;
    }

    .bm-site-shell__brand {
        gap: 9px;
        color: #123b61 !important;
        font-size: 18px;
        font-weight: 850;
    }

    .bm-site-shell__brand img {
        height: 34px;
    }

    .bm-site-shell__search {
        height: 52px;
        grid-template-columns: 44px minmax(0, 1fr) 92px;
        border-color: #cadce8;
        border-radius: 14px;
        background: #f6f9fc;
        box-shadow: 0 8px 25px rgba(20, 76, 103, .06);
    }

    .bm-site-shell__search-icon svg {
        width: 22px;
        height: 22px;
    }

    .bm-site-shell__search input {
        height: 50px !important;
        padding: 0 10px !important;
        color: #173f59 !important;
        font-size: 13.5px !important;
        font-weight: 600 !important;
    }

    .bm-site-shell__search input::placeholder {
        color: #7a8fa1;
    }

    .bm-site-shell__search button {
        border-radius: 10px;
        padding: 0 12px;
        font-size: 13px;
        font-weight: 800;
    }

    .bm-site-shell__secondary {
        border-top-color: #e7eff4;
    }

    .bm-site-shell__nav a {
        padding: 0 13px;
        color: #42566b !important;
        font-size: 13.5px;
        font-weight: 700;
        transition: color .2s ease, background .2s ease;
    }

    .bm-site-shell__nav a:hover,
    .bm-site-shell__nav a.is-active {
        background: #eef6fa;
    }

    /* Animated underline on hover, as on the homepage: the bar exists under
       every link and scales in; the active link keeps it fully drawn. */
    .bm-site-shell__nav a::after,
    .bm-site-shell__nav a.is-active::after {
        content: "";
        position: absolute;
        right: 13px;
        bottom: 4px;
        left: 13px;
        height: 2.5px;
        border-radius: 99px;
        background: linear-gradient(90deg, #01affd, #2fae7d);
        transform: scaleX(0);
        transform-origin: center;
        transition: transform .2s ease;
    }

    .bm-site-shell__nav a:hover::after,
    .bm-site-shell__nav a.is-active::after {
        transform: scaleX(1);
    }

    .bm-site-shell__cta {
        font-size: 12.5px;
        font-weight: 850;
    }
}

@media (max-width: 1023px) {
    .bm-site-shell__search input {
        font-weight: 600 !important;
    }

    .bm-site-shell__search button {
        font-weight: 800;
    }

    .bm-site-shell__menu nav a {
        min-height: 44px;
        color: #344d64 !important;
        font-size: 13px;
        font-weight: 750;
    }

    .bm-site-shell__menu-actions .bm-site-shell__cta {
        font-size: 12.5px;
        font-weight: 850;
    }
}

/* ==========================================================================
   v1.3.0 — footer parity with the approved homepage footer (v35 / footer 34).
   Measured from the live homepage; typography, icons, seal and spacing.
   ========================================================================== */
.bm-site-shell__footer {
    background: linear-gradient(150deg, #051827, #0b304b);
}

.bm-site-shell__footer::before {
    height: 4px;
    background: linear-gradient(90deg, #1aa6e8 0%, #2fb27f 48%, #19a8e5 100%);
}

.bm-site-shell__footer-logo {
    min-height: 0;
    margin-bottom: 18px;
}

.bm-site-shell__footer-logo img {
    width: 130px;
    max-width: 130px;
    height: auto;
}

.bm-site-shell__footer-intro {
    margin-bottom: 20px;
    color: #c6d4df;
    font-size: 12.5px;
    line-height: 2.05;
}

.bm-site-shell__contact {
    gap: 9px;
}

.bm-site-shell__contact a,
.bm-site-shell__contact span {
    align-items: center;
    gap: 9px;
    color: #aec1cf !important;
    font-size: 11.5px;
    line-height: 1.9;
}

.bm-site-shell__contact b {
    color: #d8e5ed;
    font-weight: 620;
}

/* Homepage wraps each contact icon in a 25px bordered tile; the shell markup
   has the bare <svg>, so the tile is drawn on the svg itself. */
.bm-site-shell__contact svg {
    box-sizing: border-box;
    width: 25px;
    height: 25px;
    margin-top: 0;
    padding: 5px;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 8px;
    background: rgba(255, 255, 255, .055);
    color: #54d5a7;
}

.bm-site-shell__footer h2 {
    margin-bottom: 19px;
    padding-bottom: 12px;
    font-size: 14px;
    line-height: 1.6;
}

.bm-site-shell__footer h2::after {
    width: 34px;
    height: 3px;
    background: linear-gradient(90deg, #2fb27f, #20a8e6);
}

.bm-site-shell__footer-nav a {
    min-height: 34px;
    padding-right: 14px;
    color: #aebfcd !important;
    font-size: 11.7px;
}

.bm-site-shell__footer-nav a::before {
    background: rgba(84, 213, 167, .65);
}

.bm-site-shell__trust {
    padding: 19px;
    border-color: rgba(255, 255, 255, .09);
}

.bm-site-shell__trust p {
    color: #b8c8d4;
    font-size: 11.5px;
    line-height: 1.95;
}

.bm-site-shell__seal {
    gap: 13px;
}

.bm-site-shell__seal a {
    display: grid;
    flex: 0 0 auto;
    padding: 6px;
    border-radius: 14px;
    background: #fff;
}

.bm-site-shell__seal img {
    width: 76px;
    height: auto;
    border-radius: 0;
    background: transparent;
}

.bm-site-shell__seal span {
    color: #8fa6b8;
    font-size: 9.8px;
    line-height: 1.75;
}

.bm-site-shell__bottom > div {
    min-height: 70px;
}

.bm-site-shell__bottom span,
.bm-site-shell__bottom a {
    font-size: 10.5px;
}

@media (min-width: 1024px) {
    .bm-site-shell__footer-grid {
        gap: 43px;
        padding-block: 58px 52px;
    }
}

/* v1.3.0 — mobile: the homepage footer is one flat column; replaces the
   v8.9 card layout. Both selector forms, see the v8.9 blocks above. */
@media (max-width: 640px) {
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-grid,
    .bm-site-shell--footer .bm-site-shell__footer-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        padding: 36px 0 30px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-brand,
    .bm-site-shell--footer .bm-site-shell__footer-brand {
        text-align: center !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-logo,
    .bm-site-shell--footer .bm-site-shell__footer-logo {
        justify-content: center !important;
        margin-bottom: 18px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-intro,
    .bm-site-shell--footer .bm-site-shell__footer-intro {
        margin: 0 auto 20px !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__contact,
    .bm-site-shell--footer .bm-site-shell__contact {
        text-align: right !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-nav,
    .bm-site-shell--footer .bm-site-shell__footer-nav {
        align-items: flex-start !important;
        gap: 4px !important;
        padding: 10px 0 0 !important;
        border: 0 !important;
        border-top: 1px solid rgba(255, 255, 255, .08) !important;
        border-radius: 0 !important;
        background: transparent !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-nav h2,
    .bm-site-shell--footer .bm-site-shell__footer-nav h2 {
        margin: 0 !important;
        padding: 0 !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer h2::after,
    .bm-site-shell--footer .bm-site-shell__footer h2::after {
        display: none !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-nav a,
    .bm-site-shell--footer .bm-site-shell__footer-nav a {
        width: auto !important;
        min-height: 34px !important;
        padding: 4px 14px 4px 0 !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__trust,
    .bm-site-shell--footer .bm-site-shell__trust {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__trust h2,
    .bm-site-shell--footer .bm-site-shell__trust h2 {
        margin: 0 0 8px !important;
        padding: 0 !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__seal,
    .bm-site-shell--footer .bm-site-shell__seal {
        justify-content: center !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__bottom > div,
    .bm-site-shell--footer .bm-site-shell__bottom > div {
        min-height: 82px !important;
        gap: 7px !important;
        padding: 18px 0 !important;
    }
}
/* v1.5.0 — The global footer is static on non-home routes.  Legacy homepage
   and dashboard motion layers can leave later links, the brand logo and the
   trust seal in an opacity/transform/clip initial state even though all nodes
   exist.  Neutralise those visual-only states strictly inside the canonical
   shell footer; no content or case-card footer is affected. */
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer,
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer *,
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer *::before,
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer *::after {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    translate: none !important;
    filter: none !important;
    clip-path: none !important;
    content-visibility: visible !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-logo,
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-logo img,
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-nav a,
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__seal,
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__seal a,
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__seal img {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    filter: none !important;
}

/* v1.6.0 — A legacy footer-accordion contract can set display:none on every
   link after the first item, on the brand image and on the trust-seal row.
   The global desktop/mobile shell is not an accordion, so pin the intended
   display roles explicitly. */
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-logo {
    display: inline-flex !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-logo img {
    display: block !important;
    /* The homepage footer uses the monochrome white brand treatment. */
    filter: brightness(0) invert(1) !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-nav {
    display: flex !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__footer-nav > a {
    display: inline-flex !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__trust {
    display: block !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__seal {
    display: flex !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__seal > a {
    display: grid !important;
}

html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__seal img,
html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--footer .bm-site-shell__seal > span {
    display: block !important;
}
/* v1.7.0 — Desktop header contract. Route-specific profile/tender styles can
   hide the secondary navigation row after the global header has rendered.
   Keep the approved full header stable on every desktop route while leaving
   the <=1023px hamburger contract untouched. */
@media (min-width: 1024px) {
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header,
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header > .bm-site-shell__header {
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__secondary {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__nav,
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__actions {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__nav > a,
    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__actions > a {
        display: inline-flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        filter: none !important;
    }

    html.bm-site-shell-v1 body.bm-site-shell-ready .bm-site-shell--header .bm-site-shell__mobile {
        display: none !important;
    }
}
