/* UR Drive Top Section Header v4.4.5 */
.topsection-root,
.topsection-root * {
    box-sizing: border-box;
}

.topsection-root {
    position: relative;
    z-index: 9990;
    width: 100%;
    margin: 0;
    padding: 0;
    color: var(--topsection-text);
    background: var(--topsection-surface);
    font-family: inherit;
    font-size: 16px;
    line-height: 1.35;
    isolation: isolate;
}

.topsection-root ul,
.topsection-root li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.topsection-root a,
.topsection-root a:hover,
.topsection-root a:focus {
    color: inherit;
    text-decoration: none;
}

.topsection-root button,
.topsection-root input,
.topsection-root select {
    font: inherit;
}

.topsection-root button,
.topsection-root input,
.topsection-root select,
.topsection-root label {
    margin: 0;
}

.topsection-root svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.topsection-root .screen-reader-text {
    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;
}

.topsection-container {
    width: min(100%, 1280px);
    margin: 0 auto;
    padding-inline: 24px;
}

/* Desktop office strip */
.topsection-desktop-info-strip {
    border-top: 1px solid #efe5dc;
    border-bottom: 1px solid var(--topsection-border);
    background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.topsection-desktop-info-grid {
    display: grid;
    grid-template-columns: minmax(330px, 1.22fr) minmax(350px, 1.38fr) minmax(220px, .82fr) minmax(245px, .96fr);
    min-height: 90px;
    padding-inline: 6px;
}

.topsection-desktop-info-grid.topsection-cards-3 {
    grid-template-columns: 1.15fr 1.35fr .95fr;
}

.topsection-desktop-info-grid.topsection-cards-2 {
    grid-template-columns: 1fr 1.6fr;
}

.topsection-desktop-info-grid.topsection-cards-1 {
    grid-template-columns: minmax(320px, 560px);
}

.topsection-info-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 13px;
    min-width: 0;
    padding: 15px 18px;
}

.topsection-info-card + .topsection-info-card::before {
    content: "";
    position: absolute;
    top: 18px;
    bottom: 18px;
    left: 0;
    width: 1px;
    background: var(--topsection-border);
}

.topsection-icon-badge {
    display: grid;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(145deg, #2e76ea, var(--topsection-primary));
    box-shadow: 0 8px 20px rgba(23, 100, 216, .18);
}

.topsection-icon-badge svg {
    width: 24px;
    height: 24px;
}

.topsection-info-copy {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 3px;
}

.topsection-info-copy strong {
    overflow: hidden;
    color: var(--topsection-text);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.25;
    text-overflow: ellipsis;
}

.topsection-info-copy span,
.topsection-info-copy a {
    color: var(--topsection-muted);
    font-size: 13px;
    line-height: 1.42;
}

.topsection-info-copy a:hover,
.topsection-info-copy a:focus {
    color: var(--topsection-primary);
}

.topsection-office-selector-card {
    display: grid;
    grid-template-columns: 44px minmax(128px, 1fr) minmax(108px, auto);
}

.topsection-location-select-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-width: 108px;
}

.topsection-root .topsection-location-select-wrap select {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 36px 0 14px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 1px solid #cbd5e5 !important;
    border-radius: 7px !important;
    outline: 0 !important;
    color: var(--topsection-text) !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 40px !important;
    cursor: pointer;
}

.topsection-root .topsection-location-select-wrap select:focus {
    border-color: var(--topsection-primary) !important;
    box-shadow: 0 0 0 3px rgba(23, 100, 216, .13) !important;
}

.topsection-select-arrow {
    position: absolute;
    right: 11px;
    width: 18px;
    height: 18px;
    color: var(--topsection-text);
    pointer-events: none;
}

/* Desktop logo and search */
.topsection-desktop-brand-row {
    background: #fff;
}

.topsection-brand-search-grid {
    display: grid;
    grid-template-columns: minmax(150px, 260px) minmax(0, 1fr);
    align-items: center;
    gap: clamp(28px, 4.8vw, 62px);
    min-height: 112px;
    padding-block: 16px;
}

.topsection-logo-wrap {
    display: flex;
    align-items: center;
    min-width: 0;
    line-height: 0;
}

.topsection-logo-wrap .custom-logo-link,
.topsection-logo-wrap .topsection-fallback-logo-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
}

.topsection-root .topsection-logo-wrap img,
.topsection-root .topsection-logo-wrap .custom-logo {
    display: block !important;
    width: var(--topsection-logo-width) !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 80px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    object-fit: contain !important;
    box-shadow: none !important;
}

.topsection-text-logo {
    color: var(--topsection-primary-dark);
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.1;
}

/* Search - isolated from theme styles */
.topsection-search {
    position: relative;
    width: 100%;
    min-width: 0;
    margin: 0 !important;
}

.topsection-root .topsection-search-input-row {
    position: relative;
    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) 82px;
    align-items: stretch;
    width: 100% !important;
    min-height: 56px;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid #c8d2e1 !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: 0 1px 2px rgba(15, 31, 61, .04) !important;
}

.topsection-search:focus-within .topsection-search-input-row {
    border-color: var(--topsection-primary) !important;
    box-shadow: 0 0 0 3px rgba(23, 100, 216, .12) !important;
}

.topsection-search-leading {
    display: grid;
    place-items: center;
    color: #101a2d;
    background: #fff;
}

.topsection-search-leading svg {
    width: 23px;
    height: 23px;
}

.topsection-root .topsection-search input[type="search"],
.topsection-root .topsection-search input[data-topsection-search-input] {
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    height: 54px !important;
    min-height: 54px !important;
    margin: 0 !important;
    padding: 0 12px 0 0 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    color: var(--topsection-text) !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 54px !important;
}

.topsection-root .topsection-search input[type="search"]::-webkit-search-cancel-button,
.topsection-root .topsection-search input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

.topsection-root .topsection-search input::placeholder {
    color: #748196 !important;
    opacity: 1 !important;
}

.topsection-root .topsection-search-button {
    display: grid !important;
    place-items: center;
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 54px !important;
    margin: 0 !important;
    padding: 0 !important;
    appearance: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    color: #fff !important;
    background: linear-gradient(145deg, #2b74e5, #155cc7) !important;
    box-shadow: none !important;
    cursor: pointer;
}

.topsection-root .topsection-search-button:hover,
.topsection-root .topsection-search-button:focus-visible {
    filter: brightness(.96);
}

.topsection-search-button svg {
    width: 27px;
    height: 27px;
}

.topsection-search-results {
    position: absolute;
    top: calc(100% + 7px);
    right: 0;
    left: 0;
    z-index: 120;
    max-height: 360px;
    overflow: auto;
    border: 1px solid var(--topsection-border);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(4, 25, 61, .16);
}

.topsection-search-results[hidden] {
    display: none !important;
}

.topsection-search-result-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid #eef2f7;
    color: var(--topsection-text) !important;
    background: #fff;
    font-size: 14px;
    font-weight: 650;
}

.topsection-search-result-item:last-child {
    border-bottom: 0;
}

.topsection-search-result-item:hover,
.topsection-search-result-item:focus {
    color: var(--topsection-primary) !important;
    background: #f5f8ff;
}

.topsection-search-result-item::before {
    content: "";
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: var(--topsection-primary);
}

.topsection-search-status {
    padding: 15px;
    color: var(--topsection-muted);
    font-size: 13px;
    text-align: center;
}

.topsection-search-loader {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid #dbe6f7;
    border-top-color: var(--topsection-primary);
    border-radius: 50%;
    animation: topsection-spin .7s linear infinite;
}

@keyframes topsection-spin {
    to { transform: rotate(360deg); }
}

/* Desktop dark navigation and category dropdown */
.topsection-desktop-nav {
    position: relative;
    z-index: 40;
    overflow: visible;
    background:
        radial-gradient(circle at 82% 10%, rgba(34, 103, 205, .17), transparent 24%),
        linear-gradient(90deg, #021633 0%, var(--topsection-nav-dark) 52%, #041c43 100%);
    box-shadow: inset 0 -1px rgba(255, 255, 255, .06);
}

/* Align the first menu label with the hero/banner text edge. */
.topsection-desktop-nav > .topsection-container {
    padding-left: 66px;
    padding-right: 24px;
}

.topsection-menu {
    display: flex;
    align-items: stretch;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.topsection-menu-item {
    position: relative;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.topsection-menu-link {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    color: inherit !important;
}

.topsection-menu-desktop > .topsection-menu-item > .topsection-menu-link {
    min-height: 54px;
    padding: 0 24px;
    color: #fff !important;
    background: transparent;
    font-size: 13px;
    font-weight: 680;
    letter-spacing: .01em;
    white-space: nowrap;
}

.topsection-menu-desktop > .topsection-has-children > .topsection-menu-link {
    padding-right: 43px;
}

.topsection-menu-icon {
    display: grid;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    place-items: center;
    color: currentColor;
}

.topsection-menu-text {
    min-width: 0;
}

.topsection-menu-depth-0.current-menu-item > .topsection-menu-link,
.topsection-menu-depth-0.current-menu-ancestor > .topsection-menu-link,
.topsection-menu-desktop > .topsection-menu-depth-0 > .topsection-menu-link:hover,
.topsection-menu-desktop > .topsection-menu-depth-0 > .topsection-menu-link:focus {
    color: #fff !important;
    background: linear-gradient(135deg, #2b74e5, #155cc7);
}

.topsection-submenu-toggle {
    position: absolute;
    top: 50%;
    right: 7px;
    z-index: 3;
    display: grid !important;
    width: 25px !important;
    height: 25px !important;
    min-width: 25px !important;
    min-height: 25px !important;
    margin: 0 !important;
    padding: 5px !important;
    place-items: center;
    transform: translateY(-50%);
    border: 0 !important;
    border-radius: 50% !important;
    color: currentColor !important;
    background: transparent !important;
    box-shadow: none !important;
    cursor: pointer;
}

.topsection-submenu-toggle svg {
    transition: transform .2s ease;
}

.topsection-submenu-toggle[aria-expanded="true"] svg,
.topsection-menu-open > .topsection-submenu-toggle svg {
    transform: rotate(180deg);
}

.topsection-menu-desktop > .topsection-menu-item > .topsection-submenu-toggle {
    color: #fff !important;
}

.topsection-sub-menu {
    margin: 0 !important;
    list-style: none !important;
}

.topsection-menu-desktop > .topsection-menu-item > .topsection-sub-menu-depth-0 {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 200;
    display: none;
    width: 310px;
    min-width: 310px;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid #d7e0ed;
    border-top: 0;
    border-radius: 0 0 4px 4px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(3, 25, 58, .25);
}

.topsection-menu-desktop > .topsection-menu-item:hover > .topsection-sub-menu-depth-0,
.topsection-menu-desktop > .topsection-menu-item:focus-within > .topsection-sub-menu-depth-0,
.topsection-menu-desktop > .topsection-menu-item.topsection-menu-open > .topsection-sub-menu-depth-0 {
    display: block;
}

.topsection-submenu-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 39px;
    padding: 0 14px;
    color: #fff;
    background: linear-gradient(135deg, #2b74e5, #1764d8);
    font-size: 11px;
    font-weight: 760;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.topsection-submenu-heading-icon {
    display: grid;
    width: 17px;
    height: 17px;
    place-items: center;
}

.topsection-sub-menu-depth-0 > .topsection-menu-item {
    border-bottom: 1px solid #e8edf4;
    background: #fff;
}

.topsection-sub-menu-depth-0 > .topsection-menu-item:last-child {
    border-bottom: 0;
}

.topsection-sub-menu-depth-0 > .topsection-menu-item > .topsection-menu-link {
    min-height: 39px;
    padding: 8px 39px 8px 13px;
    color: #202a3b !important;
    background: #fff;
    font-size: 10.7px;
    font-weight: 720;
    line-height: 1.25;
    text-transform: uppercase;
    white-space: normal;
}

.topsection-sub-menu-depth-0 > .topsection-menu-item > .topsection-menu-link:hover,
.topsection-sub-menu-depth-0 > .topsection-menu-item > .topsection-menu-link:focus,
.topsection-sub-menu-depth-0 > .current-menu-item > .topsection-menu-link,
.topsection-sub-menu-depth-0 > .current-menu-ancestor > .topsection-menu-link {
    color: var(--topsection-primary) !important;
    background: #f5f8ff;
}

.topsection-sub-menu-depth-0 > .topsection-menu-item > .topsection-menu-link .topsection-menu-icon {
    width: 17px;
    height: 17px;
    flex-basis: 17px;
    color: #313947;
}

.topsection-sub-menu-depth-0 > .topsection-has-children > .topsection-submenu-toggle {
    right: 7px;
    color: #5f6b7e !important;
}

.topsection-sub-menu-depth-0 > .topsection-has-children > .topsection-submenu-toggle:hover {
    color: var(--topsection-primary) !important;
    background: #edf4ff !important;
}

/* Category children open inside the category panel instead of flying off-screen. */
.topsection-menu-desktop .topsection-sub-menu-depth-1,
.topsection-menu-desktop .topsection-sub-menu-depth-2,
.topsection-menu-desktop .topsection-sub-menu-depth-3 {
    position: static;
    display: none;
    width: auto;
    min-width: 0;
    padding: 4px 0 6px !important;
    border: 0;
    border-top: 1px solid #eef2f7;
    border-radius: 0;
    background: #fbfcff;
    box-shadow: none;
}

.topsection-menu-desktop .topsection-sub-menu.is-open {
    display: block;
}

.topsection-menu-desktop .topsection-sub-menu-depth-1 .topsection-menu-link,
.topsection-menu-desktop .topsection-sub-menu-depth-2 .topsection-menu-link,
.topsection-menu-desktop .topsection-sub-menu-depth-3 .topsection-menu-link {
    position: relative;
    min-height: 31px;
    padding: 6px 34px 6px 42px;
    color: #4b5565 !important;
    background: transparent;
    font-size: 10.5px;
    font-weight: 560;
    line-height: 1.3;
    text-transform: none;
    white-space: normal;
}

.topsection-menu-desktop .topsection-sub-menu-depth-2 .topsection-menu-link {
    padding-left: 55px;
}

.topsection-menu-desktop .topsection-sub-menu-depth-1 .topsection-menu-link:hover,
.topsection-menu-desktop .topsection-sub-menu-depth-1 .topsection-menu-link:focus,
.topsection-menu-desktop .topsection-sub-menu-depth-2 .topsection-menu-link:hover,
.topsection-menu-desktop .topsection-sub-menu-depth-2 .topsection-menu-link:focus {
    color: var(--topsection-primary) !important;
    background: #f0f5ff;
}

.topsection-menu-desktop .topsection-sub-menu-depth-1 .topsection-menu-icon,
.topsection-menu-desktop .topsection-sub-menu-depth-2 .topsection-menu-icon {
    width: 9px;
    height: 9px;
    flex-basis: 9px;
    color: #7c8798;
}

.topsection-menu-end-arrow {
    display: grid;
    width: 13px;
    height: 13px;
    margin-left: auto;
    flex: 0 0 13px;
    color: #8b95a4;
}

.topsection-menu-missing {
    padding: 16px 22px;
    color: #fff;
    font-size: 13px;
}

.topsection-mobile {
    display: none;
}

/* Google Website Translator is only the translation engine. */
.topsection-google-translate-host {
    position: fixed !important;
    top: -9999px !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.goog-te-banner-frame,
.goog-te-banner-frame.skiptranslate,
.goog-te-gadget-icon,
#goog-gt-tt,
.goog-te-balloon-frame {
    display: none !important;
}

html body {
    top: 0 !important;
}

body.topsection-mobile-menu-open {
    overflow: hidden !important;
    touch-action: none;
}

@media (max-width: 1180px) and (min-width: 769px) {
    .topsection-container {
        padding-inline: 18px;
    }

    .topsection-desktop-nav > .topsection-container {
        padding-left: 66px;
        padding-right: 18px;
    }

    .topsection-desktop-info-grid {
        grid-template-columns: minmax(290px, 1.15fr) minmax(315px, 1.35fr) minmax(190px, .82fr) minmax(215px, .95fr);
    }

    .topsection-info-card {
        gap: 10px;
        padding-inline: 13px;
    }

    .topsection-info-copy strong {
        font-size: 13px;
    }

    .topsection-info-copy span,
    .topsection-info-copy a {
        font-size: 12px;
    }

    .topsection-menu-desktop > .topsection-menu-item > .topsection-menu-link {
        padding-inline: 18px;
        font-size: 12.5px;
    }

    .topsection-menu-desktop > .topsection-has-children > .topsection-menu-link {
        padding-right: 40px;
    }
}

@media (max-width: 768px) {
    .topsection-desktop {
        display: none !important;
    }

    .topsection-mobile {
        display: block;
        width: 100%;
        overflow: visible;
        background: #fff;
        box-shadow: 0 1px 0 var(--topsection-border);
    }

    /* Compact mobile header matching the supplied layout. */
    .topsection-mobile-topbar {
        display: grid;
        grid-template-columns: 80px minmax(0, 1fr) 72px;
        align-items: center;
        width: 100%;
        height: 64px;
        min-height: 64px;
        max-height: 64px;
        overflow: hidden;
        border-top: 3px solid var(--topsection-nav-dark);
        border-bottom: 1px solid #edf1f6;
        background: #fff;
    }

    .topsection-root .topsection-mobile-menu-button {
        align-self: stretch;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        gap: 6px;
        width: 80px !important;
        min-width: 80px !important;
        height: 61px !important;
        min-height: 61px !important;
        margin: 0 !important;
        padding: 0 8px !important;
        border: 0 !important;
        border-radius: 0 0 23px 0 !important;
        color: #fff !important;
        background: linear-gradient(135deg, #061a3c, var(--topsection-nav-dark)) !important;
        box-shadow: none !important;
        font-size: 10px !important;
        font-weight: 720 !important;
        line-height: 1 !important;
        letter-spacing: .015em;
        cursor: pointer;
    }

    .topsection-hamburger {
        display: grid;
        gap: 3px;
        width: 16px;
        flex: 0 0 16px;
    }

    .topsection-hamburger i {
        display: block;
        width: 16px;
        height: 1.5px;
        border-radius: 2px;
        background: currentColor;
    }

    .topsection-logo-mobile {
        min-width: 0;
        height: 61px;
        justify-content: center;
        padding: 4px 7px;
        overflow: hidden;
    }

    .topsection-logo-mobile .custom-logo-link,
    .topsection-logo-mobile .topsection-fallback-logo-link {
        justify-content: center !important;
        height: 100% !important;
        max-height: 100% !important;
    }

    .topsection-root .topsection-logo-mobile img,
    .topsection-root .topsection-logo-mobile .custom-logo {
        width: var(--topsection-logo-width) !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 48px !important;
        object-fit: contain !important;
    }

    .topsection-logo-mobile .topsection-text-logo {
        overflow: hidden;
        font-size: 15px;
        line-height: 1.1;
        text-align: center;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .topsection-language-select-wrap {
        position: relative;
        display: inline-grid;
        grid-template-columns: 16px minmax(24px, auto) 11px;
        align-items: center;
        gap: 3px;
        justify-self: end;
        width: 66px;
        height: 34px;
        min-height: 34px;
        margin-right: 6px;
        padding: 0 6px;
        border: 1px solid #cfd8e7;
        border-radius: 7px;
        color: var(--topsection-primary);
        background: #fff;
        box-shadow: 0 2px 8px rgba(9, 31, 70, .04);
    }

    .topsection-root .topsection-language-select-wrap select {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 32px !important;
        min-height: 32px !important;
        margin: 0 !important;
        padding: 0 !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        border: 0 !important;
        border-radius: 0 !important;
        outline: 0 !important;
        color: var(--topsection-primary-dark) !important;
        background: transparent !important;
        box-shadow: none !important;
        font-size: 10px !important;
        font-weight: 800 !important;
        line-height: 32px !important;
        cursor: pointer;
    }

    .topsection-globe {
        width: 16px;
        height: 16px;
    }

    .topsection-language-arrow {
        width: 11px;
        height: 11px;
        color: var(--topsection-muted);
    }

    /* Fixed side drawer: opens over the page and never shifts content. */
    .topsection-mobile-drawer-layer {
        position: fixed;
        inset: 0;
        z-index: 100000;
        visibility: hidden;
        pointer-events: none;
    }

    .topsection-mobile-drawer-layer.is-open {
        visibility: visible;
        pointer-events: auto;
    }

    .topsection-root .topsection-mobile-drawer-backdrop {
        position: absolute;
        inset: 0;
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: rgba(2, 18, 43, .58) !important;
        opacity: 0;
        transition: opacity .24s ease;
        cursor: default;
    }

    .topsection-mobile-drawer-layer.is-open .topsection-mobile-drawer-backdrop {
        opacity: 1;
    }

    .topsection-mobile-drawer {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        display: flex;
        width: min(88vw, 326px);
        max-width: 326px;
        flex-direction: column;
        overflow: hidden;
        border: 0;
        background: #fff;
        box-shadow: 18px 0 50px rgba(2, 18, 43, .30);
        transform: translate3d(-102%, 0, 0);
        transition: transform .26s ease;
    }

    .topsection-mobile-drawer-layer.is-open .topsection-mobile-drawer {
        transform: translate3d(0, 0, 0);
    }

    .topsection-mobile-drawer-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 58px;
        padding: 9px 12px 9px 17px;
        color: #fff;
        background: linear-gradient(135deg, #061a3c, var(--topsection-nav-dark));
    }

    .topsection-mobile-drawer-head strong {
        font-size: 13px;
        font-weight: 760;
        letter-spacing: .045em;
    }

    .topsection-root .topsection-mobile-drawer-close {
        display: grid !important;
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
        min-height: 32px !important;
        margin: 0 !important;
        padding: 0 !important;
        place-items: center !important;
        border: 1px solid rgba(255, 255, 255, .42) !important;
        border-radius: 50% !important;
        color: #fff !important;
        background: rgba(255, 255, 255, .08) !important;
        box-shadow: none !important;
        line-height: 0 !important;
        cursor: pointer;
    }

    .topsection-mobile-drawer-close svg {
        width: 16px;
        height: 16px;
        margin: auto;
    }

    .topsection-mobile-drawer-scroll {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        background: #fff;
    }

    .topsection-menu-mobile {
        display: block;
        margin: 0 !important;
        padding: 0 0 12px !important;
    }

    .topsection-menu-mobile > .topsection-menu-item {
        border-bottom: 1px solid #edf1f6;
    }

    .topsection-menu-mobile > .topsection-menu-item:last-child {
        border-bottom: 0;
    }

    .topsection-menu-mobile > .topsection-menu-item > .topsection-menu-link {
        min-height: 45px;
        padding: 9px 46px 9px 16px;
        color: var(--topsection-text) !important;
        background: #fff;
        font-size: 11.5px;
        font-weight: 720;
        line-height: 1.3;
        letter-spacing: .01em;
        white-space: normal;
    }

    .topsection-menu-mobile > .current-menu-item > .topsection-menu-link,
    .topsection-menu-mobile > .current-menu-ancestor > .topsection-menu-link,
    .topsection-menu-mobile > .topsection-menu-open > .topsection-menu-link {
        color: #fff !important;
        background: linear-gradient(135deg, #2b74e5, #155cc7);
    }

    .topsection-menu-mobile > .topsection-menu-item > .topsection-menu-link .topsection-menu-icon {
        width: 16px;
        height: 16px;
        flex-basis: 16px;
        color: var(--topsection-primary);
    }

    .topsection-menu-mobile > .current-menu-item > .topsection-menu-link .topsection-menu-icon,
    .topsection-menu-mobile > .current-menu-ancestor > .topsection-menu-link .topsection-menu-icon,
    .topsection-menu-mobile > .topsection-menu-open > .topsection-menu-link .topsection-menu-icon {
        color: #fff;
    }

    .topsection-menu-mobile > .topsection-menu-item > .topsection-submenu-toggle {
        right: 11px;
        color: var(--topsection-muted) !important;
    }

    .topsection-menu-mobile > .topsection-menu-open > .topsection-submenu-toggle,
    .topsection-menu-mobile > .current-menu-ancestor > .topsection-submenu-toggle {
        color: #fff !important;
    }

    .topsection-menu-mobile .topsection-sub-menu {
        position: static;
        display: none;
        width: auto;
        min-width: 0;
        padding: 0 !important;
        border: 0;
        border-radius: 0;
        background: #fff;
        box-shadow: none;
    }

    .topsection-menu-mobile .topsection-sub-menu.is-open {
        display: block;
    }

    .topsection-menu-mobile .topsection-submenu-heading {
        min-height: 37px;
        padding-inline: 14px;
        font-size: 10.5px;
    }

    .topsection-menu-mobile .topsection-sub-menu-depth-0 > .topsection-menu-item > .topsection-menu-link {
        min-height: 38px;
        padding: 7px 39px 7px 14px;
        color: #242e3e !important;
        background: #fff;
        font-size: 10.4px;
        font-weight: 720;
        line-height: 1.25;
        text-transform: uppercase;
    }

    .topsection-menu-mobile .topsection-sub-menu-depth-0 > .topsection-menu-item > .topsection-menu-link:hover,
    .topsection-menu-mobile .topsection-sub-menu-depth-0 > .current-menu-item > .topsection-menu-link,
    .topsection-menu-mobile .topsection-sub-menu-depth-0 > .current-menu-ancestor > .topsection-menu-link {
        color: var(--topsection-primary) !important;
        background: #f4f8ff;
    }

    .topsection-menu-mobile .topsection-sub-menu-depth-0 > .topsection-menu-item > .topsection-menu-link .topsection-menu-icon {
        width: 16px;
        height: 16px;
        flex-basis: 16px;
        color: #384150;
    }

    .topsection-menu-mobile .topsection-sub-menu-depth-0 > .topsection-has-children > .topsection-submenu-toggle {
        right: 8px;
        color: #627086 !important;
    }

    .topsection-menu-mobile .topsection-sub-menu-depth-1,
    .topsection-menu-mobile .topsection-sub-menu-depth-2,
    .topsection-menu-mobile .topsection-sub-menu-depth-3 {
        padding: 3px 0 5px !important;
        border-top: 1px solid #edf1f6;
        background: #f9fbff;
    }

    .topsection-menu-mobile .topsection-sub-menu-depth-1 .topsection-menu-link,
    .topsection-menu-mobile .topsection-sub-menu-depth-2 .topsection-menu-link,
    .topsection-menu-mobile .topsection-sub-menu-depth-3 .topsection-menu-link {
        min-height: 31px;
        padding: 6px 33px 6px 41px;
        color: #505a6b !important;
        background: transparent;
        font-size: 10px;
        font-weight: 570;
        line-height: 1.28;
        text-transform: none;
    }

    .topsection-menu-mobile .topsection-sub-menu-depth-2 .topsection-menu-link {
        padding-left: 53px;
    }

    .topsection-menu-mobile .topsection-sub-menu-depth-1 .topsection-menu-icon,
    .topsection-menu-mobile .topsection-sub-menu-depth-2 .topsection-menu-icon {
        width: 8px;
        height: 8px;
        flex-basis: 8px;
        color: #8490a2;
    }

    /* Compact office/contact block */
    .topsection-mobile-info {
        display: grid;
        grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr);
        gap: 0;
        padding: 8px 12px 4px;
        border-top: 1px solid #eef2f7;
        background: linear-gradient(180deg, #fbfcff 0%, #f5f8fd 100%);
    }

    .topsection-mobile-office-card {
        display: flex;
        align-items: center;
        gap: 8px;
        min-width: 0;
        min-height: 53px;
        padding: 4px 9px 5px 0;
        border-right: 1px solid var(--topsection-border);
    }

    .topsection-mobile-office-card .topsection-icon-badge,
    .topsection-mobile-address-card .topsection-icon-badge {
        width: 32px;
        height: 32px;
        flex-basis: 32px;
        box-shadow: 0 5px 12px rgba(23, 100, 216, .15);
    }

    .topsection-mobile-office-card .topsection-icon-badge svg,
    .topsection-mobile-address-card .topsection-icon-badge svg {
        width: 18px;
        height: 18px;
    }

    .topsection-mobile-office-card .topsection-info-copy {
        gap: 0;
    }

    .topsection-mobile-office-card .topsection-info-copy > span {
        color: #273246;
        font-size: 8.8px;
        line-height: 1.15;
    }

    .topsection-location-select-mobile {
        width: 100%;
        min-width: 0;
    }

    .topsection-root .topsection-location-select-mobile select {
        min-height: 22px !important;
        height: 22px !important;
        padding: 0 18px 0 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        color: var(--topsection-primary) !important;
        background: transparent !important;
        box-shadow: none !important;
        font-size: 10px !important;
        font-weight: 800 !important;
        line-height: 22px !important;
    }

    .topsection-location-select-mobile .topsection-select-arrow {
        right: 0;
        width: 12px;
        height: 12px;
        color: var(--topsection-primary);
    }

    .topsection-mobile-contact-stack {
        display: grid;
        align-content: center;
        gap: 5px;
        min-width: 0;
        min-height: 53px;
        padding: 4px 0 4px 10px;
    }

    .topsection-mobile-contact-line {
        display: grid;
        grid-template-columns: 21px minmax(0, 1fr);
        align-items: center;
        gap: 6px;
        min-width: 0;
    }

    .topsection-mobile-contact-line a {
        min-width: 0;
        overflow: hidden;
        color: var(--topsection-text) !important;
        font-size: 8.7px;
        font-weight: 620;
        line-height: 1.2;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .topsection-mini-icon {
        display: grid;
        width: 21px;
        height: 21px;
        padding: 5px;
        place-items: center;
        border-radius: 50%;
        color: #fff;
        background: linear-gradient(145deg, #2d74e4, var(--topsection-primary));
    }

    .topsection-mobile-address-card {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        gap: 8px;
        min-width: 0;
        min-height: 45px;
        padding: 6px 0 2px;
        border-top: 1px solid var(--topsection-border);
    }

    .topsection-mobile-address-card .topsection-info-copy {
        gap: 1px;
    }

    .topsection-mobile-address-card .topsection-info-copy strong {
        font-size: 9.2px;
        line-height: 1.2;
    }

    .topsection-mobile-address-card .topsection-info-copy span {
        display: -webkit-box;
        overflow: hidden;
        font-size: 8.2px;
        line-height: 1.28;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .topsection-mobile-search-wrap {
        padding: 4px 12px 12px;
        background: #f5f8fd;
    }

    .topsection-root .topsection-search-mobile .topsection-search-input-row {
        grid-template-columns: 37px minmax(0, 1fr) 56px;
        min-height: 38px;
        border: 1px solid #cfd8e6 !important;
        border-radius: 20px !important;
        background: #fff !important;
        box-shadow: 0 6px 16px rgba(9, 31, 70, .08) !important;
    }

    .topsection-search-mobile .topsection-search-leading {
        background: #fff !important;
    }

    .topsection-search-mobile .topsection-search-leading svg {
        width: 17px;
        height: 17px;
    }

    .topsection-root .topsection-search-mobile input[type="search"],
    .topsection-root .topsection-search-mobile input[data-topsection-search-input] {
        height: 36px !important;
        min-height: 36px !important;
        padding: 0 5px 0 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff !important;
        box-shadow: none !important;
        font-size: 10px !important;
        line-height: 36px !important;
    }

    .topsection-root .topsection-search-mobile .topsection-search-button {
        height: 36px !important;
        min-height: 36px !important;
        border: 0 !important;
        border-radius: 7px 19px 19px 7px !important;
        background: linear-gradient(145deg, #2b74e5, #155cc7) !important;
        box-shadow: none !important;
    }

    .topsection-search-mobile .topsection-search-button svg {
        width: 19px;
        height: 19px;
    }

    .topsection-search-mobile .topsection-search-results {
        top: calc(100% + 5px);
        border-radius: 10px;
    }

    .topsection-search-mobile .topsection-search-result-item {
        padding: 10px 12px;
        font-size: 11px;
    }

    body.admin-bar .topsection-mobile-drawer-layer {
        top: 46px;
    }
}

@media (min-width: 769px) {
    .topsection-mobile {
        display: none !important;
    }
}

@media (max-width: 390px) {
    .topsection-mobile-topbar {
        grid-template-columns: 76px minmax(0, 1fr) 68px;
    }

    .topsection-root .topsection-mobile-menu-button {
        width: 76px !important;
        min-width: 76px !important;
        padding-inline: 6px !important;
        font-size: 9.5px !important;
    }

    .topsection-language-select-wrap {
        width: 63px;
        margin-right: 4px;
        padding-inline: 5px;
    }

    .topsection-mobile-info {
        padding-inline: 9px;
    }

    .topsection-mobile-contact-stack {
        padding-left: 8px;
    }

    .topsection-mobile-contact-line a {
        font-size: 8.25px;
    }

    .topsection-mobile-search-wrap {
        padding-inline: 9px;
    }
}

/* ================================================================
   v2.3.4 hard fixes — all rules remain isolated under topsection.
   ================================================================ */

/* Search clear control: appears only when JavaScript removes [hidden]. */
.topsection-root .topsection-search-clear {
    position: absolute !important;
    top: 50% !important;
    right: 82px !important;
    z-index: 6 !important;
    display: grid !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    margin: 0 !important;
    padding: 7px !important;
    place-items: center !important;
    transform: translateY(-50%) !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 0 !important;
    border-radius: 50% !important;
    outline: 0 !important;
    color: #657187 !important;
    background: #eef3fa !important;
    box-shadow: none !important;
    line-height: 0 !important;
    cursor: pointer !important;
}

.topsection-root .topsection-search-clear[hidden] {
    display: none !important;
}

.topsection-root .topsection-search-clear:hover,
.topsection-root .topsection-search-clear:focus-visible {
    color: var(--topsection-primary) !important;
    background: #e5eefc !important;
}

.topsection-root .topsection-search-clear svg {
    width: 15px !important;
    height: 15px !important;
}

.topsection-root .topsection-search input[data-topsection-search-input] {
    padding-right: 42px !important;
}

/* Give the desktop product/category panel slightly more breathing room. */
.topsection-menu-desktop > .topsection-menu-item > .topsection-sub-menu-depth-0 {
    width: 342px;
    min-width: 342px;
}

/* Hide every known Google Website Translator toolbar/banner variant. */
.goog-te-banner-frame,
.goog-te-banner-frame.skiptranslate,
iframe.goog-te-banner-frame,
iframe.goog-te-banner-frame.skiptranslate,
.VIpgJd-ZVi9od-ORHb-OEVmcd,
iframe.VIpgJd-ZVi9od-ORHb-OEVmcd,
body > .VIpgJd-ZVi9od-ORHb,
body > .skiptranslate,
#goog-gt-tt,
.goog-te-balloon-frame,
.goog-te-menu-frame,
.goog-te-spinner-pos {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

html,
html.translated-ltr,
html.translated-rtl,
html body,
html.translated-ltr body,
html.translated-rtl body {
    top: 0 !important;
    margin-top: 0 !important;
}

@media (max-width: 768px) {
    /* Wider, balanced top row: full language name + protected right gap. */
    .topsection-mobile-topbar {
        grid-template-columns: 84px minmax(0, 1fr) 118px;
        height: 74px;
        min-height: 74px;
        max-height: 74px;
        padding-right: 8px;
        overflow: hidden;
    }

    .topsection-root .topsection-mobile-menu-button {
        width: 84px !important;
        min-width: 84px !important;
        height: 71px !important;
        min-height: 71px !important;
        border-radius: 0 0 25px 0 !important;
    }

    /* The mobile logo now follows the same GeneratePress Customizer width. */
    .topsection-logo-mobile {
        height: 71px;
        min-height: 71px;
        padding: 4px 8px;
        overflow: visible;
    }

    .topsection-logo-mobile .custom-logo-link,
    .topsection-logo-mobile .topsection-fallback-logo-link {
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 68px !important;
        overflow: visible !important;
    }

    .topsection-root .topsection-logo-mobile img,
    .topsection-root .topsection-logo-mobile .custom-logo {
        width: var(--topsection-logo-width) !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 66px !important;
        object-fit: contain !important;
    }

    .topsection-language-select-wrap {
        grid-template-columns: 18px minmax(0, 1fr) 12px;
        gap: 5px;
        justify-self: end;
        width: 108px;
        height: 40px;
        min-height: 40px;
        margin-right: 4px;
        padding: 0 9px;
        border-radius: 8px;
    }

    .topsection-root .topsection-language-select-wrap select {
        height: 38px !important;
        min-height: 38px !important;
        font-size: 12px !important;
        font-weight: 760 !important;
        line-height: 38px !important;
        text-overflow: ellipsis !important;
    }

    .topsection-globe {
        width: 18px;
        height: 18px;
    }

    .topsection-language-arrow {
        width: 12px;
        height: 12px;
    }

    /* Keep the full office address visible instead of clipping to “M:…”. */
    .topsection-mobile-info {
        padding: 10px 14px 6px;
    }

    .topsection-mobile-address-card {
        align-items: flex-start;
        min-height: 0;
        padding: 8px 0 6px;
    }

    .topsection-mobile-address-card .topsection-icon-badge {
        margin-top: 1px;
    }

    .topsection-mobile-address-card .topsection-info-copy strong {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }

    .topsection-mobile-address-card .topsection-info-copy span {
        display: block;
        overflow: visible;
        white-space: normal;
        word-break: normal;
        overflow-wrap: anywhere;
        font-size: 9.4px;
        line-height: 1.38;
        -webkit-box-orient: initial;
        -webkit-line-clamp: unset;
    }

    .topsection-mobile-search-wrap {
        padding: 6px 14px 14px;
    }

    .topsection-root .topsection-search-mobile .topsection-search-input-row {
        min-height: 44px;
        border-radius: 23px !important;
    }

    .topsection-root .topsection-search-mobile input[type="search"],
    .topsection-root .topsection-search-mobile input[data-topsection-search-input],
    .topsection-root .topsection-search-mobile .topsection-nozoom-field {
        height: 42px !important;
        min-height: 42px !important;
        padding: 0 39px 0 2px !important;
        border: 0 !important;
        border-radius: 0 !important;
        outline: 0 !important;
        color: var(--topsection-text) !important;
        background: #fff !important;
        box-shadow: none !important;
        font-size: 16px !important; /* iOS Safari no-focus-zoom hard fix */
        font-weight: 400 !important;
        line-height: 42px !important;
        letter-spacing: 0 !important;
        -webkit-text-size-adjust: 100% !important;
        text-size-adjust: 100% !important;
        touch-action: manipulation !important;
        transform: none !important;
        zoom: 1 !important;
    }

    .topsection-root .topsection-search-mobile .topsection-search-button {
        height: 42px !important;
        min-height: 42px !important;
        border-radius: 8px 22px 22px 8px !important;
    }

    .topsection-root .topsection-search-mobile .topsection-search-clear {
        right: 56px !important;
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        min-height: 28px !important;
        padding: 7px !important;
    }
}

@media (max-width: 390px) {
    .topsection-mobile-topbar {
        grid-template-columns: 80px minmax(0, 1fr) 110px;
        padding-right: 6px;
    }

    .topsection-root .topsection-mobile-menu-button {
        width: 80px !important;
        min-width: 80px !important;
    }

    .topsection-language-select-wrap {
        width: 102px;
        margin-right: 2px;
        padding-inline: 8px;
    }

    .topsection-root .topsection-language-select-wrap select {
        font-size: 11px !important;
    }

    .topsection-mobile-info,
    .topsection-mobile-search-wrap {
        padding-inline: 11px;
    }
}


/* =====================================================================
   v1.9.9 final hard fixes — strictly isolated inside .topsection-root.
   ===================================================================== */

/* Each office owns one phone field; multiple display numbers stay on one line. */
.topsection-root .topsection-phone-card,
.topsection-root .topsection-mobile-phone-line {
    min-width: 0 !important;
}

.topsection-root .topsection-phone-card .topsection-info-copy,
.topsection-root .topsection-mobile-phone-line .topsection-phone-text-link {
    min-width: 0 !important;
    overflow: hidden !important;
}

.topsection-root [data-topsection-field="phone"],
.topsection-root .topsection-phone-text-link {
    display: block !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    letter-spacing: -0.018em !important;
}

.topsection-root .topsection-phone-card [data-topsection-field="phone"] {
    font-size: 11px !important;
    line-height: 1.25 !important;
}

.topsection-root .topsection-phone-card [data-topsection-field="phone"].topsection-phone-compact {
    font-size: 9.7px !important;
    letter-spacing: -0.035em !important;
}

.topsection-root .topsection-phone-card [data-topsection-field="phone"].topsection-phone-ultra-compact {
    font-size: 8.7px !important;
    letter-spacing: -0.055em !important;
}

.topsection-root .topsection-call-icon {
    text-decoration: none !important;
    cursor: pointer !important;
}

.topsection-root .topsection-call-icon:hover,
.topsection-root .topsection-call-icon:focus-visible {
    filter: brightness(.96) !important;
    transform: translateY(-1px);
}

/* Strong desktop search reset to prevent GeneratePress/Capital form overlap. */
@media (min-width: 769px) {
    .topsection-root[data-topsection-root] .topsection-desktop .topsection-search-desktop {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .topsection-root[data-topsection-root] .topsection-desktop .topsection-search-desktop .topsection-search-input-row {
        display: grid !important;
        grid-template-columns: 52px minmax(0, 1fr) 76px !important;
        align-items: stretch !important;
        width: 100% !important;
        height: 54px !important;
        min-height: 54px !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 1px solid #c9d5e6 !important;
        border-radius: 10px !important;
        outline: 0 !important;
        background: #fff !important;
        box-shadow: 0 5px 16px rgba(7, 32, 74, .07) !important;
    }

    .topsection-root[data-topsection-root] .topsection-desktop .topsection-search-desktop:focus-within .topsection-search-input-row {
        border-color: var(--topsection-primary) !important;
        box-shadow: 0 0 0 3px rgba(23, 100, 216, .12), 0 7px 20px rgba(7, 32, 74, .08) !important;
    }

    .topsection-root[data-topsection-root] .topsection-desktop .topsection-search-desktop .topsection-search-leading {
        display: grid !important;
        width: 52px !important;
        height: 52px !important;
        margin: 0 !important;
        padding: 0 !important;
        place-items: center !important;
        color: #0c1930 !important;
        border: 0 !important;
        background: #fff !important;
    }

    .topsection-root[data-topsection-root] .topsection-desktop .topsection-search-desktop input[type="search"],
    .topsection-root[data-topsection-root] .topsection-desktop .topsection-search-desktop input[data-topsection-search-input] {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 52px !important;
        min-height: 52px !important;
        margin: 0 !important;
        padding: 0 44px 0 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        outline: 0 !important;
        color: var(--topsection-text) !important;
        background: #fff !important;
        box-shadow: none !important;
        font-size: 15px !important;
        font-weight: 400 !important;
        line-height: 52px !important;
        appearance: none !important;
        -webkit-appearance: none !important;
    }

    .topsection-root[data-topsection-root] .topsection-desktop .topsection-search-desktop .topsection-search-button {
        display: grid !important;
        width: 76px !important;
        min-width: 76px !important;
        height: 52px !important;
        min-height: 52px !important;
        margin: 0 !important;
        padding: 0 !important;
        place-items: center !important;
        border: 0 !important;
        border-radius: 0 9px 9px 0 !important;
        outline: 0 !important;
        color: #fff !important;
        background: linear-gradient(145deg, #2b74e5, #155cc7) !important;
        box-shadow: inset 1px 0 rgba(255, 255, 255, .12) !important;
    }

    .topsection-root[data-topsection-root] .topsection-desktop .topsection-search-desktop .topsection-search-clear {
        right: 82px !important;
    }

    /* Slightly wider menu cards on both sides. */
    .topsection-root .topsection-menu-desktop > .topsection-menu-item > .topsection-menu-link {
        padding-left: 30px !important;
        padding-right: 30px !important;
    }

    .topsection-root .topsection-menu-desktop > .topsection-has-children > .topsection-menu-link {
        padding-right: 49px !important;
    }
}

@media (max-width: 1180px) and (min-width: 769px) {
    .topsection-root .topsection-menu-desktop > .topsection-menu-item > .topsection-menu-link {
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    .topsection-root .topsection-menu-desktop > .topsection-has-children > .topsection-menu-link {
        padding-right: 43px !important;
    }
}

@media (max-width: 768px) {
    .topsection-root .topsection-mobile-phone-line {
        grid-template-columns: 32px minmax(0, 1fr) !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-mobile-phone-line .topsection-phone-text-link {
        width: 100% !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"] {
        font-size: 9.2px !important;
        line-height: 1.25 !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"].topsection-phone-compact {
        font-size: 8px !important;
        letter-spacing: -0.045em !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"].topsection-phone-ultra-compact {
        font-size: 7.25px !important;
        letter-spacing: -0.06em !important;
    }
}


/* =====================================================================
   v3.9.9 phone layout and independent call-number hard fixes.
   All selectors are isolated under .topsection-root.
   ===================================================================== */

@media (min-width: 769px) {
    /* Reserve a genuinely readable card for two displayed phone numbers. */
    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 {
        grid-template-columns:
            minmax(300px, 1.04fr)
            minmax(330px, 1.16fr)
            minmax(295px, 1.05fr)
            minmax(230px, .88fr) !important;
    }

    .topsection-root .topsection-phone-card {
        gap: 12px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .topsection-root .topsection-phone-card .topsection-info-copy {
        overflow: visible !important;
    }

    .topsection-root .topsection-phone-card .topsection-phone-text-link {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        text-align: left !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"] {
        font-size: 12.4px !important;
        font-weight: 560 !important;
        line-height: 1.28 !important;
        letter-spacing: -0.012em !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"].topsection-phone-compact {
        font-size: 11.35px !important;
        letter-spacing: -0.025em !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"].topsection-phone-ultra-compact {
        font-size: 10.25px !important;
        letter-spacing: -0.04em !important;
    }
}

@media (max-width: 1180px) and (min-width: 769px) {
    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 {
        grid-template-columns:
            minmax(275px, 1.02fr)
            minmax(300px, 1.12fr)
            minmax(270px, 1fr)
            minmax(210px, .86fr) !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"] {
        font-size: 11.7px !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"].topsection-phone-compact {
        font-size: 10.7px !important;
    }
}

@media (max-width: 768px) {
    /* Give the contact half more width and remove theme-injected anchor gaps. */
    .topsection-root .topsection-mobile-info {
        grid-template-columns: minmax(0, .94fr) minmax(0, 1.16fr) !important;
    }

    .topsection-root .topsection-mobile-contact-stack {
        padding-left: 8px !important;
    }

    .topsection-root .topsection-mobile-phone-line {
        display: grid !important;
        grid-template-columns: 28px minmax(0, 1fr) !important;
        column-gap: 7px !important;
        align-items: center !important;
        justify-items: stretch !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .topsection-root .topsection-mobile-phone-line .topsection-call-icon {
        display: grid !important;
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        min-height: 28px !important;
        margin: 0 !important;
        padding: 6px !important;
        place-items: center !important;
        justify-self: start !important;
    }

    .topsection-root .topsection-mobile-phone-line .topsection-phone-text-link {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        justify-self: stretch !important;
        text-align: left !important;
        text-indent: 0 !important;
        transform: none !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"] {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 10.35px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        letter-spacing: -0.018em !important;
        text-align: left !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"].topsection-phone-compact {
        font-size: 9.35px !important;
        letter-spacing: -0.035em !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"].topsection-phone-ultra-compact {
        font-size: 8.45px !important;
        letter-spacing: -0.05em !important;
    }
}

@media (max-width: 390px) {
    .topsection-root .topsection-mobile-phone-line {
        grid-template-columns: 26px minmax(0, 1fr) !important;
        column-gap: 6px !important;
    }

    .topsection-root .topsection-mobile-phone-line .topsection-call-icon {
        width: 26px !important;
        height: 26px !important;
        min-width: 26px !important;
        min-height: 26px !important;
        padding: 6px !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"] {
        font-size: 9.8px !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"].topsection-phone-compact {
        font-size: 8.85px !important;
    }
}

/* =====================================================================
   v4.0.0 responsive grid correction.
   Prevents the phone card from reserving excessive width and repairs
   mobile icon colour, sizing and alignment. Scoped to .topsection-root.
   ===================================================================== */

/* Anchor-based call icons must stay white; theme link colour must not win. */
.topsection-root a.topsection-icon-badge,
.topsection-root a.topsection-mini-icon,
.topsection-root a.topsection-call-icon {
    color: #fff !important;
    text-decoration: none !important;
    line-height: 0 !important;
}

.topsection-root a.topsection-icon-badge svg,
.topsection-root a.topsection-mini-icon svg,
.topsection-root a.topsection-call-icon svg {
    display: block !important;
    fill: currentColor !important;
    color: inherit !important;
    margin: auto !important;
}

@media (min-width: 1025px) {
    /* Fluid columns: every card may shrink without crossing its neighbour. */
    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 {
        grid-template-columns:
            minmax(0, 1.05fr)
            minmax(0, 1.38fr)
            minmax(0, 1.10fr)
            minmax(0, .98fr) !important;
        width: 100% !important;
        max-width: 1280px !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-desktop-info-grid .topsection-info-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-office-selector-card {
        grid-template-columns: 44px minmax(0, 1fr) minmax(96px, 112px) !important;
        column-gap: 12px !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-info-copy,
    .topsection-root .topsection-address-card .topsection-info-copy,
    .topsection-root .topsection-phone-card .topsection-info-copy,
    .topsection-root .topsection-email-card .topsection-info-copy {
        width: auto !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-phone-card {
        gap: 11px !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .topsection-root .topsection-phone-card .topsection-icon-badge {
        flex: 0 0 42px !important;
        width: 42px !important;
        height: 42px !important;
    }

    .topsection-root .topsection-phone-card .topsection-phone-text-link {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"] {
        width: 100% !important;
        max-width: 100% !important;
        font-size: clamp(11.2px, .96vw, 12.5px) !important;
        font-weight: 560 !important;
        line-height: 1.28 !important;
        letter-spacing: -0.018em !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: clip !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"].topsection-phone-compact {
        font-size: clamp(10.55px, .89vw, 11.65px) !important;
        letter-spacing: -0.03em !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"].topsection-phone-ultra-compact {
        font-size: clamp(9.8px, .82vw, 10.8px) !important;
        letter-spacing: -0.045em !important;
    }

    .topsection-root .topsection-email-card a,
    .topsection-root .topsection-email-card [data-topsection-field="email"] {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }
}

/* Tablet desktop view: use two rows instead of forcing four cards to overflow. */
@media (min-width: 769px) and (max-width: 1024px) {
    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 .topsection-info-card {
        min-width: 0 !important;
        min-height: 78px !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 .topsection-info-card:nth-child(odd)::before {
        display: none !important;
    }

    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 .topsection-info-card:nth-child(n+3) {
        border-top: 1px solid var(--topsection-border) !important;
    }

    .topsection-root .topsection-office-selector-card {
        grid-template-columns: 44px minmax(0, 1fr) minmax(96px, 112px) !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"] {
        font-size: 11.4px !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"].topsection-phone-compact {
        font-size: 10.55px !important;
    }
}

@media (max-width: 768px) {
    /* Stable two-column information panel matching the supplied mobile design. */
    .topsection-root .topsection-mobile-info {
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr) !important;
        width: 100% !important;
        padding: 10px 12px 7px !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-mobile-office-card,
    .topsection-root .topsection-mobile-contact-stack,
    .topsection-root .topsection-mobile-address-card {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-mobile-office-card {
        min-height: 62px !important;
        gap: 9px !important;
        padding: 5px 10px 5px 0 !important;
    }

    .topsection-root .topsection-mobile-office-card .topsection-icon-badge,
    .topsection-root .topsection-mobile-address-card .topsection-icon-badge {
        flex: 0 0 36px !important;
        width: 36px !important;
        height: 36px !important;
        padding: 0 !important;
        place-items: center !important;
    }

    .topsection-root .topsection-mobile-office-card .topsection-icon-badge svg,
    .topsection-root .topsection-mobile-address-card .topsection-icon-badge svg {
        width: 20px !important;
        height: 20px !important;
    }

    .topsection-root .topsection-mobile-office-card .topsection-info-copy > span {
        font-size: 10.5px !important;
        line-height: 1.2 !important;
    }

    .topsection-root .topsection-location-select-mobile {
        width: 100% !important;
        max-width: 100% !important;
    }

    .topsection-root .topsection-location-select-mobile select {
        width: 100% !important;
        height: 27px !important;
        min-height: 27px !important;
        padding: 0 22px 0 0 !important;
        font-size: 13px !important;
        line-height: 27px !important;
    }

    .topsection-root .topsection-location-select-mobile .topsection-select-arrow {
        right: 2px !important;
        width: 13px !important;
        height: 13px !important;
    }

    .topsection-root .topsection-mobile-contact-stack {
        align-content: center !important;
        min-height: 62px !important;
        gap: 7px !important;
        padding: 5px 0 5px 10px !important;
    }

    .topsection-root .topsection-mobile-contact-line,
    .topsection-root .topsection-mobile-phone-line {
        display: grid !important;
        grid-template-columns: 26px minmax(0, 1fr) !important;
        align-items: center !important;
        column-gap: 7px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-mobile-contact-line .topsection-mini-icon,
    .topsection-root .topsection-mobile-phone-line .topsection-call-icon {
        display: grid !important;
        flex: none !important;
        width: 26px !important;
        height: 26px !important;
        min-width: 26px !important;
        min-height: 26px !important;
        margin: 0 !important;
        padding: 6px !important;
        place-items: center !important;
        justify-self: start !important;
        border-radius: 50% !important;
        color: #fff !important;
        line-height: 0 !important;
    }

    .topsection-root .topsection-mobile-contact-line .topsection-mini-icon svg,
    .topsection-root .topsection-mobile-phone-line .topsection-call-icon svg {
        width: 14px !important;
        height: 14px !important;
        margin: auto !important;
        color: #fff !important;
        fill: currentColor !important;
    }

    .topsection-root .topsection-mobile-contact-line > a:not(.topsection-mini-icon),
    .topsection-root .topsection-mobile-phone-line .topsection-phone-text-link {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        color: var(--topsection-text) !important;
        line-height: 1.2 !important;
        text-align: left !important;
        text-indent: 0 !important;
        white-space: nowrap !important;
        transform: none !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"] {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: clamp(10.2px, 2.72vw, 11.25px) !important;
        font-weight: 720 !important;
        line-height: 1.2 !important;
        letter-spacing: -0.022em !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: clip !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"].topsection-phone-compact {
        font-size: clamp(9.2px, 2.45vw, 10.2px) !important;
        letter-spacing: -0.038em !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"].topsection-phone-ultra-compact {
        font-size: clamp(8.45px, 2.25vw, 9.35px) !important;
        letter-spacing: -0.05em !important;
    }

    .topsection-root .topsection-mobile-contact-line [data-topsection-field="email"] {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
        color: var(--topsection-text) !important;
        font-size: clamp(8.7px, 2.35vw, 10px) !important;
        font-weight: 650 !important;
        line-height: 1.2 !important;
        letter-spacing: -0.022em !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .topsection-root .topsection-mobile-address-card {
        min-height: 0 !important;
        gap: 9px !important;
        padding: 8px 0 6px !important;
        align-items: flex-start !important;
    }

    .topsection-root .topsection-mobile-address-card .topsection-info-copy {
        width: calc(100% - 45px) !important;
        max-width: calc(100% - 45px) !important;
        min-width: 0 !important;
        overflow: visible !important;
    }

    .topsection-root .topsection-mobile-address-card .topsection-info-copy strong {
        display: block !important;
        overflow: visible !important;
        font-size: 12px !important;
        line-height: 1.23 !important;
        text-overflow: clip !important;
        white-space: normal !important;
    }

    .topsection-root .topsection-mobile-address-card .topsection-info-copy span {
        display: block !important;
        overflow: visible !important;
        font-size: 10.4px !important;
        line-height: 1.35 !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        white-space: normal !important;
    }

    .topsection-root .topsection-mobile-search-wrap {
        padding: 7px 12px 14px !important;
    }
}

@media (max-width: 390px) {
    .topsection-root .topsection-mobile-info {
        grid-template-columns: minmax(0, .90fr) minmax(0, 1.10fr) !important;
        padding-inline: 10px !important;
    }

    .topsection-root .topsection-mobile-office-card {
        gap: 7px !important;
        padding-right: 8px !important;
    }

    .topsection-root .topsection-mobile-contact-stack {
        padding-left: 8px !important;
    }

    .topsection-root .topsection-mobile-office-card .topsection-icon-badge,
    .topsection-root .topsection-mobile-address-card .topsection-icon-badge {
        flex-basis: 34px !important;
        width: 34px !important;
        height: 34px !important;
    }

    .topsection-root .topsection-mobile-contact-line,
    .topsection-root .topsection-mobile-phone-line {
        grid-template-columns: 24px minmax(0, 1fr) !important;
        column-gap: 6px !important;
    }

    .topsection-root .topsection-mobile-contact-line .topsection-mini-icon,
    .topsection-root .topsection-mobile-phone-line .topsection-call-icon {
        width: 24px !important;
        height: 24px !important;
        min-width: 24px !important;
        min-height: 24px !important;
        padding: 5px !important;
    }

    .topsection-root .topsection-mobile-contact-line .topsection-mini-icon svg,
    .topsection-root .topsection-mobile-phone-line .topsection-call-icon svg {
        width: 14px !important;
        height: 14px !important;
    }

    .topsection-root .topsection-mobile-address-card .topsection-info-copy {
        width: calc(100% - 43px) !important;
        max-width: calc(100% - 43px) !important;
    }
}


/* =====================================================================
   v4.4.1 desktop office/email width correction.
   Gives the first selector card more usable room and keeps long office
   email addresses readable without crossing or clipping into neighbours.
   ===================================================================== */
@media (min-width: 1025px) {
    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 {
        grid-template-columns:
            minmax(0, 1.22fr)
            minmax(0, 1.28fr)
            minmax(0, .92fr)
            minmax(0, 1.13fr) !important;
    }

    .topsection-root .topsection-office-selector-card {
        grid-template-columns: 42px minmax(0, 1fr) minmax(96px, 108px) !important;
        column-gap: 11px !important;
        padding-left: 14px !important;
        padding-right: 14px !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-icon-badge {
        flex-basis: 42px !important;
        width: 42px !important;
        height: 42px !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-info-copy {
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-location-select-wrap {
        width: 100% !important;
        min-width: 96px !important;
        max-width: 108px !important;
    }

    .topsection-root .topsection-email-card {
        gap: 10px !important;
        padding-left: 14px !important;
        padding-right: 12px !important;
    }

    .topsection-root .topsection-email-card .topsection-icon-badge {
        flex: 0 0 40px !important;
        width: 40px !important;
        height: 40px !important;
    }

    .topsection-root .topsection-email-card .topsection-info-copy {
        min-width: 0 !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-email-card a,
    .topsection-root .topsection-email-card [data-topsection-field="email"] {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: hidden !important;
        color: var(--topsection-muted) !important;
        font-size: clamp(9.6px, .86vw, 10.8px) !important;
        font-weight: 500 !important;
        line-height: 1.3 !important;
        letter-spacing: -0.025em !important;
        text-overflow: clip !important;
        white-space: nowrap !important;
    }
}

@media (min-width: 1025px) and (max-width: 1120px) {
    .topsection-root .topsection-email-card a,
    .topsection-root .topsection-email-card [data-topsection-field="email"] {
        font-size: 9.35px !important;
        letter-spacing: -0.035em !important;
    }
}

/* =====================================================================
   v4.4.9 selector and multi-number visibility correction.
   Keeps full office names and one/two phone numbers visible at normal
   desktop, laptop, and mobile widths without crossing card boundaries.
   ===================================================================== */
@media (min-width: 1025px) {
    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 {
        grid-template-columns:
            minmax(0, 1.23fr)
            minmax(0, 1.25fr)
            minmax(0, 1.08fr)
            minmax(0, 1.04fr) !important;
    }

    .topsection-root .topsection-office-selector-card {
        grid-template-columns: 40px minmax(70px, 1fr) minmax(116px, 124px) !important;
        column-gap: 9px !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
        overflow: hidden !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-icon-badge {
        flex-basis: 40px !important;
        width: 40px !important;
        height: 40px !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-info-copy {
        min-width: 70px !important;
        overflow: visible !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-info-copy strong {
        display: block !important;
        overflow: visible !important;
        font-size: 12px !important;
        line-height: 1.18 !important;
        text-overflow: clip !important;
        white-space: nowrap !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-info-copy > span {
        display: block !important;
        overflow: visible !important;
        font-size: 10.8px !important;
        line-height: 1.2 !important;
        text-overflow: clip !important;
        white-space: normal !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-location-select-wrap {
        width: 100% !important;
        min-width: 116px !important;
        max-width: 124px !important;
    }

    .topsection-root .topsection-location-select-desktop select {
        padding-left: 11px !important;
        padding-right: 30px !important;
        font-size: 12.5px !important;
        letter-spacing: -0.01em !important;
    }

    .topsection-root .topsection-location-select-desktop .topsection-select-arrow {
        right: 8px !important;
        width: 16px !important;
        height: 16px !important;
    }

    .topsection-root .topsection-address-card,
    .topsection-root .topsection-phone-card,
    .topsection-root .topsection-email-card {
        gap: 9px !important;
        padding-left: 11px !important;
        padding-right: 11px !important;
    }

    .topsection-root .topsection-address-card .topsection-icon-badge,
    .topsection-root .topsection-phone-card .topsection-icon-badge,
    .topsection-root .topsection-email-card .topsection-icon-badge {
        flex: 0 0 38px !important;
        width: 38px !important;
        height: 38px !important;
    }

    .topsection-root .topsection-address-card .topsection-icon-badge svg,
    .topsection-root .topsection-phone-card .topsection-icon-badge svg,
    .topsection-root .topsection-email-card .topsection-icon-badge svg {
        width: 21px !important;
        height: 21px !important;
    }

    .topsection-root .topsection-phone-card .topsection-phone-text-link,
    .topsection-root .topsection-email-card a {
        overflow: visible !important;
    }

    .topsection-root .topsection-phone-card [data-topsection-field="phone"],
    .topsection-root .topsection-email-card [data-topsection-field="email"] {
        max-width: 100% !important;
        overflow: visible !important;
        text-overflow: clip !important;
        white-space: nowrap !important;
    }
}

/* Common 1025–1179px laptop widths need compact chrome, not clipped text. */
@media (min-width: 1025px) and (max-width: 1179px) {
    .topsection-root .topsection-container {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .topsection-root .topsection-desktop-info-grid.topsection-cards-4 {
        grid-template-columns:
            minmax(0, 1.25fr)
            minmax(0, 1.24fr)
            minmax(0, 1.10fr)
            minmax(0, 1.01fr) !important;
    }

    .topsection-root .topsection-office-selector-card {
        grid-template-columns: 36px minmax(66px, 1fr) minmax(108px, 118px) !important;
        column-gap: 7px !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-icon-badge,
    .topsection-root .topsection-address-card .topsection-icon-badge,
    .topsection-root .topsection-phone-card .topsection-icon-badge,
    .topsection-root .topsection-email-card .topsection-icon-badge {
        flex-basis: 36px !important;
        width: 36px !important;
        height: 36px !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-location-select-wrap {
        min-width: 108px !important;
        max-width: 118px !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-info-copy strong {
        font-size: 11.4px !important;
    }

    .topsection-root .topsection-office-selector-card .topsection-info-copy > span {
        font-size: 10px !important;
    }

    .topsection-root .topsection-address-card,
    .topsection-root .topsection-phone-card,
    .topsection-root .topsection-email-card {
        gap: 7px !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
}

@media (max-width: 768px) {
    .topsection-root .topsection-mobile-info {
        grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr) !important;
    }

    .topsection-root .topsection-mobile-phone-line .topsection-phone-text-link {
        overflow: visible !important;
    }

    .topsection-root .topsection-mobile-phone-line [data-topsection-field="phone"] {
        max-width: 100% !important;
        overflow: visible !important;
        text-overflow: clip !important;
        white-space: nowrap !important;
    }
}

/* v4.4.5 — use the exact same centered content line as the logo and hero text. */
@media (min-width: 769px) {
    .topsection-root[data-topsection-root] .topsection-desktop-nav > .topsection-container {
        width: min(100%, 1280px) !important;
        max-width: 1280px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
}

/* Match the same responsive side padding already used by the logo/search row. */
@media (min-width: 1025px) and (max-width: 1179px) {
    .topsection-root[data-topsection-root] .topsection-desktop-nav > .topsection-container {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .topsection-root[data-topsection-root] .topsection-desktop-nav > .topsection-container {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }
}

/* v5.5.9 — final desktop alignment and brand-row breathing room. */
@media (min-width: 769px) {
    .topsection-root[data-topsection-root] .topsection-brand-search-grid {
        min-height: 132px !important;
        padding-top: 24px !important;
        padding-bottom: 24px !important;
    }

    .topsection-root[data-topsection-root] .topsection-desktop-nav > .topsection-container {
        padding-left: 38px !important;
    }
}

@media (min-width: 1025px) and (max-width: 1179px) {
    .topsection-root[data-topsection-root] .topsection-desktop-nav > .topsection-container {
        padding-left: 24px !important;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .topsection-root[data-topsection-root] .topsection-desktop-nav > .topsection-container {
        padding-left: 30px !important;
    }
}
