/* Quick actions are tablet-only; other viewports retain original utilities. */
.cei-tablet-rail-actions { display: none; }
/* ========================================================================
   CEI responsive navigation stabilization layer
   Single final owner for breakpoint visibility, control geometry and menu
   interaction states. Loaded after legacy, page and mobile optimisation CSS.
   Breakpoints: phone <=767px, tablet 768-1099px, desktop >=1100px.
   ======================================================================== */

/* ------------------------------------------------------------------------
   PHONE
   ------------------------------------------------------------------------ */
@media screen and (max-width: 767px) {
    html body .cei-phone-v2-launcher {
        display: inline-flex;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        position: absolute;
        top: 8px;
        left: 8px;
        align-items: center;
        justify-content: center;
        width: 40px;
        min-width: 40px;
        height: 40px;
        min-height: 40px;
        margin: 0;
        padding: 0;
        border: 1px solid #6f9bb9;
        border-radius: 7px;
        background: var(--cei-shared-ink-fff);
        color: #173b5b;
        box-shadow: none;
        appearance: none;
    }

    html body .cei-phone-v2-launcher:hover,
    html body .cei-phone-v2-launcher:focus-visible {
        border-color: #2a628c;
        background: #f5f8fa;
    }

    html body .cei-phone-v2-launcher__icon > span {
        display: block;
        height: 2.5px;
        border-radius: 999px;
        background: currentColor;
    }

    /* Closed phone header: burger | Samples | Order on one compact row. */
    html body .site-header .header-top,
    html body .site-header .header-top > .wrap {
        min-height: 56px;
        height: auto;
        margin: 0;
        border: 0;
        box-shadow: none;
        background: var(--cei-shared-ink-fff);
    }

    html body .site-header .header-top { padding: 0; }
    html body .site-header .header-top > .wrap {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        width: 100%;
        padding: 8px 12px 8px 60px;
        box-sizing: border-box;
    }

    html body .site-header .header-top .header-top-right {
        display: flex;
        float: none;
        align-items: center;
        justify-content: center;
        width: 100%;
        max-width: none;
        min-height: 40px;
        margin: 0;
        padding: 0;
        border: 0;
    }

    html body .site-header .header-top .header-top-right .widget,
    html body .site-header .header-top .header-top-right .widget_nav_menu,
    html body .site-header .header-top .header-top-right [class*="menu-"][class*="-container"] {
        display: block;
        float: none;
        width: 100%;
        max-width: 280px;
        margin: 0 auto;
        padding: 0;
        border: 0;
        transform: translateX(-8px);
    }

    html body .site-header .header-top .header-top-right ul {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
        width: 100%;
        max-width: 280px;
        margin: 0 auto;
        padding: 0;
        border: 0;
        transform: none;
        list-style: none;
    }

    html body .site-header .header-top .header-top-right li,
    html body .site-header .header-top .header-top-right li::before,
    html body .site-header .header-top .header-top-right li::after,
    html body .site-header .header-top .header-top-right ul::before,
    html body .site-header .header-top .header-top-right ul::after {
        border: 0;
        box-shadow: none;
    }

    html body .site-header .header-top .header-top-right li {
        display: block;
        float: none;
        width: auto;
        min-width: 0;
        margin: 0;
        padding: 0;
    }

    html body .site-header .header-top .header-top-right li::before,
    html body .site-header .header-top .header-top-right li::after,
    html body .site-header .header-top .header-top-right ul::before,
    html body .site-header .header-top .header-top-right ul::after {
        content: none;
        display: none;
    }

    html body .site-header .header-top .header-top-right li > a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 40px;
        min-height: 40px;
        margin: 0;
        border-radius: 7px;
        box-shadow: none;
        box-sizing: border-box;
    }

    html body .site-header .header-top .header-top-right li:first-child > a {
        padding-left: 14px;
        padding-right: 14px;
        border-color: #9fc2da;
        background: #f5fafe;
        color: #214f70;
    }

    /* Phone drawer stays isolated from the legacy navigation band. */
    html body .site-header .navigation-top,
    html body .site-header .navigation-top > .wrap,
    html body .site-header #site-navigation {
        min-height: 0;
        height: 0;
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        overflow: visible;
    }

    html body .cei-phone-v2-submenu,
    html body .cei-phone-v2-has-children.is-open > .cei-phone-v2-submenu,
    html body .cei-phone-v2-submenu li,
    html body .cei-phone-v2-submenu a {
        background-color: var(--cei-shared-ink-fff);
    }

    html body .cei-phone-v2-submenu a:hover,
    html body .cei-phone-v2-submenu a:focus-visible {
        background-color: #eef5fa;
        color: #173b5b;
    }

    html body .cei-phone-v2-submenu-toggle {
        border-left: 0;
        border-right: 0;
        box-shadow: none;
    }

    html body .cei-phone-v2-submenu-toggle span {
        color: #17699d;
        font-size: 20px;
        font-weight: 700;
        opacity: 1;
    }

    html body .cei-phone-v2-brand .custom-logo-link {
        display: block;
        max-width: 220px;
        margin: 0;
        padding: 0;
        line-height: 0;
    }

    html body .cei-phone-v2-close {
        position: relative;
        font-size: 0;
        background: var(--cei-shared-ink-fff);
        border-color: #cfdbe4;
        color: #173b5b;
    }

    html body .cei-phone-v2-close::before,
    html body .cei-phone-v2-close::after {
        content: "";
        position: absolute;
        left: 50%;
        top: 50%;
        width: 17px;
        height: 2.5px;
        border-radius: 999px;
        background: currentColor;
        transform-origin: center;
    }
    html.cei-phone-v2-open body .cei-phone-v2-launcher {
        opacity: 0;
        pointer-events: none;
    }

    /* Mobile navigation geometry and surface: consolidated from the global compatibility layer. */
    .site-header .navigation-top {
        pointer-events: auto;
    }
    .site-header .navigation-top > .wrap {
        pointer-events: auto;
    }
    .site-header .navigation-top .main-navigation {
        width: 48px;
        min-width: 48px;
        height: 48px;
        margin: 0;
        padding: 0;
        pointer-events: auto;
    }

    .site-header .navigation-top,
    .site-header .navigation-top > .wrap,
    .site-header .navigation-top .main-navigation {
        background: transparent;
        background-color: transparent;
        background-image: none;
        border: 0;
        box-shadow: none;
    }
}

@media screen and (min-width: 768px) and (max-width: 1099px) {
    html body .site-header #site-navigation,
    html body .site-header #site-navigation > .cei-tablet-navigation {
        min-height: 36px;
        height: 36px;
    }

    html body .site-header .cei-tablet-free-report,
    html body .site-header .cei-tablet-menu-toggle {
        display: inline-flex;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        height: 36px;
        min-height: 36px;
        box-sizing: border-box;
    }

    html body .site-header .cei-tablet-free-report {
        /* Grow to the label instead of squeezing the longer sample CTA. */
        flex: 0 0 auto;
        width: max-content;
        min-width: 202px;
        padding: 0 15px;
        align-items: center;
        justify-content: center;
        gap: 8px;
        border: 1px solid #d4e0e8;
        border-radius: 6px;
        background: var(--cei-shared-ink-fff);
        color: #173b5b;
        box-shadow: none;
        font-size: 13px;
        font-weight: 600;
        line-height: 1;
        white-space: nowrap;
        text-decoration: none;
    }

    html body .site-header .cei-tablet-free-report span {
        color: currentColor;
        font-size: 16px;
        font-weight: 600;
        line-height: 1;
        transform: none;
    }

    html body .site-header .cei-tablet-free-report:hover,
    html body .site-header .cei-tablet-free-report:focus-visible {
        background: #f5f8fa;
        border-color: #b9cbd8;
        color: #173b5b;
        box-shadow: none;
        transform: none;
    }

    html body .site-header .cei-tablet-menu-toggle {
        min-width: 88px;
        padding: 0 10px;
        gap: 6px;
        align-items: center;
        justify-content: center;
        border: 1px solid rgba(255,255,255,.82);
        border-radius: 6px;
        background: rgba(255,255,255,.04);
        color: var(--cei-shared-ink-fff);
        box-shadow: none;
        overflow: visible;
    }

    html body .site-header .cei-tablet-menu-toggle:hover,
    html body .site-header .cei-tablet-menu-toggle:focus-visible,
    html body .site-header .cei-tablet-navigation.is-open .cei-tablet-menu-toggle {
        border-color: var(--cei-shared-ink-fff);
        background: rgba(255,255,255,.10);
        color: var(--cei-shared-ink-fff);
    }

    html body .site-header .cei-tablet-menu-toggle__icon {
        position: relative;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        width: 20px;
        min-width: 20px;
        height: 16px;
        flex: 0 0 20px;
        gap: 5px;
        overflow: visible;
    }

    html body .site-header .cei-tablet-menu-toggle__icon span {
        position: static;
        display: block;
        height: 2.5px;
        border-radius: 999px;
        background: currentColor;
        transform: none;
    }
    /* Open state: compact X-only control. */
    html body .site-header .cei-tablet-navigation.is-open .cei-tablet-menu-toggle {
        width: 42px;
        min-width: 42px;
        max-width: 42px;
        padding: 0;
        gap: 0;
    }

    html body .site-header .cei-tablet-navigation.is-open .cei-tablet-menu-toggle__icon {
        width: 18px;
        min-width: 18px;
        height: 18px;
        flex: 0 0 18px;
        gap: 0;
    }

    html body .site-header .cei-tablet-navigation.is-open .cei-tablet-menu-toggle__icon span {
        position: absolute;
        left: 2px;
        top: 50%;
        width: 14px;
        height: 2px;
        transform-origin: center;
    }
    html body .site-header .cei-tablet-submenu-toggle {
        border-left: 0;
        border-right: 0;
        box-shadow: none;
    }

    html body .site-header .cei-tablet-submenu-toggle span {
        color: #17699d;
        font-size: 20px;
        font-weight: 700;
        opacity: 1;
    }

    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li.is-submenu-open,
    html body .site-header .cei-tablet-menu-tree li.is-submenu-open > ul.sub-menu,
    html body .site-header .cei-tablet-menu-tree li.is-submenu-open > ul.children,
    html body .site-header .cei-tablet-menu-tree .sub-menu > li,
    html body .site-header .cei-tablet-menu-tree .children > li,
    html body .site-header .cei-tablet-menu-tree .sub-menu > li > a,
    html body .site-header .cei-tablet-menu-tree .children > li > a {
        background-color: var(--cei-shared-ink-fff);
    }

    html body .site-header .cei-tablet-menu-tree .sub-menu > li > a:hover,
    html body .site-header .cei-tablet-menu-tree .sub-menu > li > a:focus-visible,
    html body .site-header .cei-tablet-menu-tree .children > li > a:hover,
    html body .site-header .cei-tablet-menu-tree .children > li > a:focus-visible {
        background-color: #eef5fa;
        color: #173b5b;
    }

    }

/* ------------------------------------------------------------------------
   DESKTOP
   ------------------------------------------------------------------------ */
@media screen and (min-width: 1100px) {
    html body .cei-phone-v2-launcher,
    html body .cei-phone-v2,
    html body .site-header .cei-tablet-navigation,
    html body .site-header .cei-tablet-free-report,
    html body .site-header .cei-tablet-menu-toggle,
    html body .site-header .cei-tablet-menu-panel,
    html body .site-header .cei-tablet-menu-backdrop {
        display: none;
        visibility: hidden;
        pointer-events: none;
    }

    html body .site-header .cei-header-smart-tools {
        display: flex;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }

    html body .site-header .cei-header-smart-search,
    html body .site-header .cei-header-smart-sample {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }

    /* Utility links are injected for compact menus only, never desktop. */
    html body .site-header .navigation-top .menu > li.cei-mobile-nav-only,
    html body .site-header .navigation-top .menu > li.cei-compact-nav-only {
        display: none;
    }

    /* Desktop wrapper and primary menu own their complete layout here. */
    html body .site-header .navigation-top > .wrap {
        width: 95%;
        max-width: 1280px;
        margin-left: auto;
        margin-right: auto;
        padding: 0;
        box-sizing: border-box;
    }

    html body .site-header .navigation-top nav,
    html body .site-header .navigation-top .main-navigation {
        float: none;
        min-width: 0;
        text-align: left;
    }

    html body .site-header .navigation-top .main-navigation > div,
    html body .site-header .navigation-top .main-navigation ul.menu,
    html body .site-header .navigation-top .main-navigation ul.nav-menu {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    html body .site-header .navigation-top .main-navigation ul.menu,
    html body .site-header .navigation-top .main-navigation ul.nav-menu {
        display: flex;
        align-items: stretch;
        justify-content: flex-start;
        flex-wrap: nowrap;
        float: none;
        text-align: left;
    }

    /* Actual desktop heading spacing is LI padding, not flex gap. */
    html body .site-header .navigation-top nav > div > ul,
    html body .site-header .navigation-top nav .menu,
    html body .site-header .navigation-top .main-navigation > div > ul {
        column-gap: 0;
        gap: 0;
        justify-content: flex-start;
    }

    html body .site-header .navigation-top nav .menu > li,
    html body .site-header .navigation-top .main-navigation .menu > li,
    html body .site-header .navigation-top nav .menu > li:first-child,
    html body .site-header .navigation-top .main-navigation .menu > li:first-child {
        margin-left: 0;
        margin-right: 0;
        position: relative;
        display: block;
        flex: 0 0 auto;
        float: none;
        width: auto;
        min-width: 0;
        padding-left: 14px;
        padding-right: 14px;
        background: transparent;
        box-sizing: border-box;
    }

    /*
     * Legacy/cached menu markup may still contain old dropdown-toggle buttons.
     * The current desktop controller uses first-tap/focus on the parent link,
     * while presentation uses the single CSS chevron below.
     */
    html body .site-header .navigation-top #site-navigation > .dropdown-toggle,
    html body .site-header .navigation-top #site-navigation .menu > li > .dropdown-toggle,
    html body .site-header .navigation-top #site-navigation .nav-menu > li > .dropdown-toggle {
        display: none;
    }

    html body .site-header .navigation-top nav .menu > li > .sub-menu > li > a,
    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li > a,
    html body .site-header .navigation-top nav .menu > li > .sub-menu > li > a > span,
    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li > a > span {
        font-family: 'Rubik', sans-serif;
        font-size: 14px;
        font-weight: 500;
        line-height: 1.4;
        letter-spacing: 0;
        text-transform: none;
    }

    html body .site-header .navigation-top .sub-menu .cei-menu-product-market {
        display: inline;
        margin: 0;
        padding: 0;
        font: inherit;
        color: inherit;
        letter-spacing: inherit;
        text-transform: inherit;
        white-space: normal;
    }

    /* Desktop band geometry is owned here, not in custom.css.
       Twenty Seventeen positions .navigation-top absolutely at desktop sizes.
       The former legacy CEI desktop block neutralised that with position: relative,
       but that structural declaration was lost when the legacy block was correctly
       restricted to compact layouts. Keep the navigation in normal document flow
       so it follows the white utility row consistently on every desktop template. */
    html body .site-header .navigation-top,
    html body .site-header .navigation-top > .wrap,
    html body .site-header .navigation-top .main-navigation {
        height: 51px;
        min-height: 51px;
        background-color: #1b4568;
        box-sizing: border-box;
    }

    html body .site-header .navigation-top {
        position: relative;
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;
        width: 100%;
        clear: both;
        /* Remove Twenty Seventeen's desktop top/bottom borders and shadow. */
        border: 0;
        box-shadow: none;
    }

    html body .site-header .navigation-top > .wrap,
    html body .site-header .navigation-top .main-navigation {
        display: block;
    }

    html body .site-header .navigation-top .main-navigation {
        width: 100%;
        max-width: none;
        margin: 0;
        padding-right: 54px;
        box-sizing: border-box;
    }

    html body .site-header .navigation-top .main-navigation > div,
    html body .site-header .navigation-top .main-navigation ul.menu,
    html body .site-header .navigation-top .main-navigation ul.nav-menu,
    html body .site-header .navigation-top .main-navigation ul.menu > li,
    html body .site-header .navigation-top .main-navigation ul.nav-menu > li {
        height: 51px;
        min-height: 51px;
        margin-top: 0;
        margin-bottom: 0;
        box-sizing: border-box;
    }

    html body .site-header .navigation-top .main-navigation ul.menu > li > a,
    html body .site-header .navigation-top .main-navigation ul.nav-menu > li > a {
        display: flex;
        align-items: center;
        height: 51px;
        min-height: 51px;
        margin: 0;
        padding-top: 0;
        padding-bottom: 0;
        color: rgba(255,255,255,.96);
        font-size: 15px;
        font-weight: 600;
        line-height: 1.2;
        letter-spacing: -.005em;
        box-sizing: border-box;
    }

    /* One restrained indicator for headings that own a submenu. */
    html body .site-header .navigation-top #site-navigation .menu > li.menu-item-has-children > a::after,
    html body .site-header .navigation-top #site-navigation .nav-menu > li.menu-item-has-children > a::after {
        content: "";
        display: inline-block;
        flex: 0 0 auto;
        width: 6px;
        height: 6px;
        margin: -3px 0 0 8px;
        border: 0;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        background: none;
        transform: rotate(45deg);
        transform-origin: center;
        opacity: .82;
        box-sizing: border-box;
    }

    /* Clear superseded top-level pseudo indicators before applying one marker. */
    html body .site-header .navigation-top #site-navigation .menu > li::before,
    html body .site-header .navigation-top #site-navigation .menu > li > a::before {
        content: none;
        display: none;
    }

    /* One active/open marker, including the multisite URL-derived class. */
    html body .site-header .navigation-top #site-navigation .menu > li > a {
        border-left: 0;
        border-bottom: 0;
        box-shadow: none;
        background-color: transparent;
        background-image: none;
    }

    html body .site-header .navigation-top #site-navigation .menu > li:hover > a,
    html body .site-header .navigation-top #site-navigation .menu > li:focus-within > a,
    html body .site-header .navigation-top #site-navigation .menu > li.focus > a,
    html body .site-header .navigation-top #site-navigation .menu > li.current-menu-item > a,
    html body .site-header .navigation-top #site-navigation .menu > li.current-menu-ancestor > a,
    html body .site-header .navigation-top #site-navigation .menu > li.current_page_item > a,
    html body .site-header .navigation-top #site-navigation .menu > li.current_page_parent > a,
    html body .site-header .navigation-top #site-navigation .menu > li.current_page_ancestor > a,
    html body .site-header .navigation-top #site-navigation .menu > li.cei-current-section > a {
        color: var(--cei-shared-ink-fff);
        background-color: transparent;
        background-image: linear-gradient(#78b8e5, #78b8e5);
        background-repeat: no-repeat;
        background-size: calc(100% - 16px) 2px;
        background-position: center calc(100% - 4px);
        box-shadow: none;
    }

    /* Dropdown geometry, opening behaviour and panel presentation. */
    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu {
        position: absolute;
        top: calc(100% - 1px);
        left: 0;
        right: auto;
        z-index: 10000;
        display: block;
        width: 252px;
        min-width: 232px;
        max-width: 280px;
        margin: 0;
        padding: 7px;
        border: 1px solid #cddbe5;
        border-top: 2px solid #79a9c8;
        border-radius: 9px;
        background: #fbfdfe;
        box-shadow: 0 18px 42px rgba(17, 54, 82, .16), 0 5px 14px rgba(17, 54, 82, .08), inset 0 1px 0 rgba(255, 255, 255, .95);
        overflow: hidden;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(5px);
        transform-origin: top left;
        transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
        box-sizing: border-box;
    }

    html body .site-header .navigation-top .main-navigation .menu > li:hover > .sub-menu,
    html body .site-header .navigation-top .main-navigation .menu > li:focus-within > .sub-menu,
    html body .site-header .navigation-top .main-navigation .menu > li.focus > .sub-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
        transition-delay: 0s;
    }

    html body .site-header .navigation-top .main-navigation .menu > li:last-child > .sub-menu {
        left: auto;
        right: 0;
        transform-origin: top right;
    }

    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li {
        display: block;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        box-sizing: border-box;
    }

    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li + li {
        margin-top: 3px;
    }

    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li > a {
        position: relative;
        display: block;
        width: 100%;
        min-height: 0;
        padding: 8px 11px;
        border: 1px solid transparent;
        border-left-width: 2px;
        border-radius: 6px;
        background: transparent;
        color: #173e60;
        box-shadow: none;
        box-sizing: border-box;
        transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
    }

    /* Hover/focus gets a restrained surface; current-page state stays neutral. */
    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li:hover > a,
    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li:focus-within > a {
        border-color: #c2d6e3;
        border-left-color: transparent;
        background: #e2edf5;
        color: var(--cei-shared-ink-153b5c);
        box-shadow: 0 3px 9px rgba(17, 54, 82, .06);
        font-weight: 500;
    }

    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li.current-menu-item > a,
    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li.current_page_item > a,
    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu > li.current-menu-ancestor > a {
        border-color: transparent;
        background: transparent;
        color: var(--cei-shared-ink-153b5c);
        box-shadow: none;
        font-weight: 600;
    }
}

@media (prefers-reduced-motion: reduce) and (min-width: 1100px) {
    html body .site-header .navigation-top .main-navigation .menu > li > .sub-menu {
        transform: none;
        transition: none;
    }
}

@media screen and (min-width: 1280px) {
    html body .site-header .navigation-top .main-navigation {
        padding-right: 366px;
    }
}

/* Tablet header geometry: owns 768–1099px; utility labels are genuine link text. */
@media screen and (min-width: 768px) and (max-width: 1099px) {
    html body .site-header .header-top {
        min-height: 0;
        height: auto;
    }
    html body .site-header .header-top > .wrap {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 10px 20px;
        width: 100%;
        max-width: 1212px;
        min-height: 0;
        margin: 0 auto;
        padding: 12px 16px;
        box-sizing: border-box;
    }
    html body .site-header .header-top .logo {
        flex: 0 1 332px;
        min-width: 0;
        max-width: min(332px, 100%);
        margin: 0;
    }
    html body .site-header .header-top .header-top-right {
        display: block;
        position: static;
        flex: 1 1 430px;
        float: none;
        width: auto;
        min-width: 0;
        margin: 0;
        padding: 0;
    }
    html body .site-header .header-top .header-top-right > .widget-area,
    html body .site-header .header-top .header-top-right .widget-column.header-widget {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-end;
        gap: 10px 16px;
        width: 100%;
        margin: 0;
        padding: 0;
    }
    html body .site-header .header-top .header-top-right .widget:not(.widget_themeservicewidget) {
        display: block;
        position: static;
        flex: 0 1 auto;
        float: none;
        width: auto;
        margin: 0;
        padding: 0;
        transform: none;
    }
    html body .site-header .header-top .header-top-right ul {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px;
        width: auto;
        margin: 0;
        padding: 0;
    }
    html body .site-header .header-top .header-top-right li {
        width: auto;
        margin: 0;
        padding: 0;
    }
    html body .site-header .header-top .header-top-right a[href*="/contact"],
    html body .site-header .header-top .header-top-right a[href*="/order-forecast-publications/"] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        width: auto;
        min-width: max-content;
        min-height: 38px;
        height: 38px;
        margin: 0;
        padding: 0 14px;
        font-size: 13px;
        font-weight: 600;
        white-space: nowrap;
    }
    html body .site-header .header-top .header-top-right a[href*="/contact"]::before,
    html body .site-header .header-top .header-top-right a[href*="/contact"]::after,
    html body .site-header .header-top .header-top-right a[href*="/order-forecast-publications/"]::before,
    html body .site-header .header-top .header-top-right a[href*="/order-forecast-publications/"]::after {
        content: none;
        display: none;
    }
    html body .site-header .header-top .header-top-right .widget.widget_themeservicewidget {
        display: block;
        position: static;
        flex: 0 0 auto;
        width: auto;
        min-width: 136px;
        margin: 0;
        padding: 0;
        text-align: right;
        transform: none;
    }
    html body .site-header .header-top .header-top-right .widget.widget_themeservicewidget .widget-service {
        display: block;
        width: auto;
        min-width: 136px;
        text-align: right;
    }
    html body .site-header .navigation-top {
        min-height: 51px;
        height: auto;
        margin-top: 0;
    }
    html body .site-header .navigation-top > .wrap {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        width: calc(100% - 32px);
        max-width: 1180px;
        min-height: 51px;
        margin: 0 auto;
        padding: 5px 0;
        box-sizing: border-box;
    }
    html body .site-header #site-navigation {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        flex: 1 1 100%;
        width: 100%;
        min-width: 0;
        min-height: 40px;
        height: auto;
        float: none;
        margin: 0;
    }
    html body .site-header #site-navigation > .cei-tablet-navigation {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        flex: 0 0 auto;
        width: auto;
        height: 40px;
        margin: 0 0 0 auto;
    }
    html body .site-header .cei-tablet-free-report {
        display: none;
    }
    html body .site-header .cei-tablet-menu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        order: 0;
        width: auto;
        min-width: 96px;
        min-height: 40px;
        height: 40px;
        margin: 0;
        padding: 0 14px;
        border-color: rgba(255,255,255,.72);
        background: rgba(255,255,255,.09);
        color: #fff;
        font-weight: 600;
    }
    html body .site-header .cei-tablet-menu-toggle__label,
    html body .site-header .cei-tablet-menu-toggle__icon {
        color: #fff;
    }
}


/* Tablet accordion — one layout owner, scoped to 768–1099px. */
@media screen and (min-width: 768px) and (max-width: 1099px) {
    /* Tablet uses the logo and two actions only: anniversary badge stays on desktop. */
    html body .site-header .header-top .header-top-right .widget.widget_themeservicewidget {
        display: none;
    }
    /* Compact masthead: retain the full Contact us / Order a Subscription labels. */
    html body .site-header .header-top > .wrap {
        align-items: flex-start;
        gap: 12px 14px;
        min-height: 0;
    }
    html body .site-header .header-top .logo {
        flex: 0 1 310px;
        max-width: 310px;
    }
    html body .site-header .header-top .header-top-right {
        flex: 0 1 auto;
        min-width: 0;
        width: auto;
        margin-left: auto;
        position: static;
        z-index: auto;
    }
    html body .site-header .header-top .header-top-right > .widget-area,
    html body .site-header .header-top .header-top-right .widget-column.header-widget {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        align-content: flex-start;
        align-items: center;
        gap: 10px;
        min-height: 40px;
        width: 100%;
    }
    html body .site-header .header-top .header-top-right .widget:not(.widget_themeservicewidget) {
        flex: 0 1 auto;
        position: static;
        width: auto;
        min-width: 0;
        margin: 0;
        transform: none;
    }
    html body .site-header .header-top .header-top-right a[href*="/contact"],
    html body .site-header .header-top .header-top-right a[href*="/order-forecast-publications/"] {
        max-width: none;
        width: auto;
        min-width: max-content;
        padding-inline: 13px;
        white-space: nowrap;
    }
    /* Tablet masthead actions: render genuine labels, never positional substitutes. */
    html body .site-header .header-top .header-top-right a[href*="/contact-us/"],
    html body .site-header .header-top .header-top-right a[href*="/order-forecast-publications/"] {
        text-transform: none;
        letter-spacing: normal;
        font-size: 13px;
        line-height: 1.25;
        opacity: 1;
        visibility: visible;
        text-indent: 0;
        overflow: visible;
    }
    html body .site-header .header-top .header-top-right a[href*="/contact-us/"] {
        color: #173f63;
        background: #fff;
        border: 1px solid #c5d8e7;
        border-radius: 7px;
    }
    html body .site-header .header-top .header-top-right a[href*="/order-forecast-publications/"] {
        color: #fff;
        background: #244568;
        border: 1px solid #244568;
        border-radius: 7px;
    }
    html body .site-header .header-top .header-top-right a[href*="/order-forecast-publications/"]:hover,
    html body .site-header .header-top .header-top-right a[href*="/order-forecast-publications/"]:focus-visible {
        color: #fff;
        background: #173f63;
    }
    html body .site-header .header-top .header-top-right a[href*="/contact-us/"]:hover,
    html body .site-header .header-top .header-top-right a[href*="/contact-us/"]:focus-visible {
        color: #173f63;
        background: #f2f8fc;
        border-color: #aabfce;
    }
    /* The nav rail provides the vertical anchor; the controls stay at its right. */
    html body .site-header .navigation-top > .wrap {
        position: relative;
        height: 51px;
        min-height: 51px;
        padding-block: 0;
        align-items: center;
    }
    /* Align the navigation rail with the masthead's 16px side gutters.
       The nested navigation fills that rail; it must not add a second inset. */
    html body .site-header .navigation-top > .wrap {
        display: flex;
        width: calc(100% - 32px);
        max-width: 1180px;
        justify-content: flex-end;
        align-items: center;
        margin-inline: auto;
    }
    html body .site-header .navigation-top #site-navigation > .cei-tablet-navigation {
        display: flex;
        justify-content: flex-end;
        width: 100%;
        flex: 1 1 auto;
        margin: 0;
    }
    html body .site-header .cei-tablet-menu-toggle {
        position: static;
        transform: none;
        margin: 0 0 0 auto;
        align-self: center;
        min-width: 96px;
        min-height: 36px;
        height: 36px;
        padding: 0 12px;
        gap: 7px;
        font-size: 15px;
        line-height: 1.2;
        font-weight: 600;
        background: #fff;
        color: #173f63;
        border: 1px solid #d3e0ea;
        box-shadow: none;
        outline: none;
    }
    html body .site-header .cei-tablet-menu-toggle:focus-visible {
        outline: 2px solid #9cc9ed;
        outline-offset: 2px;
    }
    html body .site-header .cei-tablet-menu-toggle__label {
        font-size: 15px;
        line-height: 1.2;
        font-weight: 500;
    }
    html body .site-header .cei-tablet-menu-toggle__label,
    html body .site-header .cei-tablet-menu-toggle__icon {
        color: inherit;
    }
    html body .site-header .cei-tablet-menu-toggle:hover,
    html body .site-header .cei-tablet-menu-toggle:focus-visible,
    html body .site-header .cei-tablet-navigation.is-open .cei-tablet-menu-toggle {
        background: #edf5fa;
        color: #173f63;
    }
    /* Keep the same right-edge anchor for Menu and Close (open state). */
    html body .site-header .navigation-top > .wrap {
        display: flex;
        box-sizing: border-box;
        width: calc(100% - 32px);
        max-width: 1180px;
        margin-inline: auto;
        justify-content: flex-end;
        align-items: center;
    }
    html body .site-header .navigation-top #site-navigation {
        display: flex;
        box-sizing: border-box;
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin: 0;
        justify-content: flex-end;
        align-items: center;
    }
    html body .site-header .navigation-top #site-navigation > .cei-tablet-navigation {
        display: flex;
        flex: 1 1 100%;
        width: 100%;
        min-width: 0;
        align-items: center;
        justify-content: flex-end;
        margin: 0;
    }
    html body .site-header .navigation-top #site-navigation .cei-tablet-menu-toggle {
        position: relative;
        inset: auto;
        flex: 0 0 auto;
        margin: 0 0 0 auto;
        align-self: center;
        transform: none;
    }
    /* Overlay remains inside the viewport, not a five-column mega-menu. */
    html body .site-header .cei-tablet-menu-panel:not([hidden]) {
        position: fixed;
        left: 16px;
        right: 16px;
        bottom: 16px;
        top: min(150px, 19vh);
        width: calc(100% - 32px);
        max-width: 680px;
        max-height: calc(100dvh - min(150px, 19vh) - 16px);
        margin-inline: auto;
        overflow-x: hidden;
        overflow-y: auto;
        box-sizing: border-box;
        border: 1px solid #d8e5ee;
        border-radius: 10px;
    }
    html body .site-header .cei-tablet-menu-panel__body,
    html body .site-header .cei-tablet-menu-tree,
    html body .site-header .cei-tablet-menu-tree > div,
    html body .site-header .cei-tablet-menu-tree > ul,
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list {
        display: block;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        margin-inline: 0;
        box-sizing: border-box;
    }
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 44px;
        grid-template-rows: auto auto;
        flex: 0 0 auto;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        margin: 0;
        padding: 0;
        border-bottom: 1px solid #e5ebef;
        box-sizing: border-box;
        float: none;
    }
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li > a {
        grid-column: 1;
        grid-row: 1;
        display: flex;
        min-width: 0;
        min-height: 50px;
        padding: 10px 12px;
        align-items: center;
        white-space: normal;
    }
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li > .cei-tablet-submenu-toggle {
        grid-column: 2;
        grid-row: 1;
        min-width: 44px;
        min-height: 50px;
    }
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li > ul.sub-menu,
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li > ul.children {
        grid-column: 1 / -1;
        grid-row: 2;
        float: none;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
        padding: 4px 8px 12px 16px;
        position: static;
        overflow: hidden;
    }
    html body .site-header .cei-tablet-menu-tree .sub-menu > li {
        display: block;
        float: none;
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }
    html body .site-header .cei-tablet-menu-tree .sub-menu > li > a {
        display: block;
        width: 100%;
        max-width: 100%;
        white-space: normal;
        overflow-wrap: anywhere;
        box-sizing: border-box;
    }
    /* Keep labels and expand controls in one row, even with inherited grid rules. */
    html body .site-header .cei-tablet-menu-panel ul.cei-tablet-menu-list > li.cei-tablet-has-submenu {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 48px;
        grid-template-rows: minmax(50px, auto) auto;
        align-items: stretch;
    }
    html body .site-header .cei-tablet-menu-panel ul.cei-tablet-menu-list > li.cei-tablet-has-submenu > a {
        grid-area: 1 / 1;
        width: 100%;
        min-width: 0;
        align-self: center;
        white-space: nowrap;
        box-sizing: border-box;
    }
    html body .site-header .cei-tablet-menu-panel ul.cei-tablet-menu-list > li.cei-tablet-has-submenu > button.cei-tablet-submenu-toggle {
        grid-area: 1 / 2;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: auto;
        min-height: 50px;
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    html body .site-header .cei-tablet-menu-panel ul.cei-tablet-menu-list > li.cei-tablet-has-submenu > ul.sub-menu {
        grid-area: 2 / 1 / 3 / 3;
    }
    /* Remove the accordion toggle from grid flow: one heading row, no empty chevron row. */
    html body .site-header .cei-tablet-menu-panel .cei-tablet-menu-tree ul.cei-tablet-menu-list > li.cei-tablet-has-submenu {
        position: relative;
        display: block;
        min-height: 50px;
        padding: 0;
    }
    html body .site-header .cei-tablet-menu-panel .cei-tablet-menu-tree ul.cei-tablet-menu-list > li.cei-tablet-has-submenu > a {
        display: flex;
        align-items: center;
        width: 100%;
        min-height: 50px;
        padding: 10px 58px 10px 6px;
        box-sizing: border-box;
        white-space: normal;
    }
    html body .site-header .cei-tablet-menu-panel .cei-tablet-menu-tree ul.cei-tablet-menu-list > li.cei-tablet-has-submenu > button.cei-tablet-submenu-toggle {
        position: absolute;
        top: 3px;
        right: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        min-height: 44px;
        margin: 0;
        padding: 0;
    }
    html body .site-header .cei-tablet-menu-panel .cei-tablet-menu-tree ul.cei-tablet-menu-list > li.cei-tablet-has-submenu > ul.sub-menu {
        display: block;
        position: static;
        width: 100%;
        clear: both;
    }
    /* Simple text-first submenu: no oversized blocks or nested flyout effects. */
    html body .site-header .cei-tablet-menu-panel__body {
        padding: 10px 18px 18px;
    }
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li > a {
        min-height: 46px;
        padding: 10px 4px;
        font-size: 14px;
        font-weight: 600;
        color: #173f63;
    }
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li > .cei-tablet-submenu-toggle {
        min-height: 46px;
        background: transparent;
    }
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li > ul.sub-menu,
    html body .site-header .cei-tablet-menu-tree ul.cei-tablet-menu-list > li > ul.children {
        padding: 3px 0 10px 15px;
        background: #fff;
        border-top: 0;
    }
    html body .site-header .cei-tablet-menu-tree .sub-menu > li > a,
    html body .site-header .cei-tablet-menu-tree .children > li > a {
        min-height: 36px;
        padding: 8px 6px;
        border: 0;
        background: transparent;
        color: #47657a;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.4;
    }
    html body .site-header .cei-tablet-utility-links {
        display: block;
        margin-top: 12px;
        padding-top: 12px;
        border-top: 1px solid #e5ebef;
    }
    /* The order and sample actions are in the tablet rail; Contact is the final menu link. */
    html body .site-header .cei-tablet-utility-links a[href*="/order-forecast-publications/"] {
        display: none;
    }
    html body .site-header .cei-tablet-utility-links a[href*="/contact-us/"] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        min-height: 42px;
        padding: 9px 12px;
        white-space: normal;
        box-sizing: border-box;
        color: #173f63;
        font-weight: 600;
        background: #edf5fa;
    }

    /* Tablet actions live beside Menu, not in a competing masthead column. */
    html body .site-header .header-top .header-top-right {
        display: none;
    }
    html body .site-header #site-navigation > .cei-tablet-navigation {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        min-width: 0;
    }
    html body .site-header .cei-tablet-rail-actions {
        display: flex;
        flex: 0 1 auto;
        min-width: 0;
        margin-left: 0;
        margin-right: 0;
        align-items: center;
        gap: 10px;
    }
    html body .site-header .cei-tablet-rail-actions a {
        display: inline-flex;
        flex: 0 0 auto;
        justify-content: center;
        align-items: center;
        box-sizing: border-box;
        min-height: 42px;
        height: 42px;
        padding: 0 15px;
        border: 1px solid #7fb3d5;
        border-radius: 7px;
        background: #eaf4fb;
        color: #173f63;
        font-size: 13px;
        font-weight: 600;
        line-height: 1.2;
        letter-spacing: normal;
        text-transform: none;
        white-space: nowrap;
        text-decoration: none;
    }
    html body .site-header .cei-tablet-rail-actions .cei-tablet-rail-order {
        border-color: #8eb6db;
        background: #153b5c;
        color: #fff;
    }
    html body .site-header .cei-tablet-rail-actions .cei-tablet-rail-contact:hover,
    html body .site-header .cei-tablet-rail-actions .cei-tablet-rail-contact:focus-visible {
        background: #fff;
        color: #173f63;
    }
    html body .site-header .cei-tablet-rail-actions .cei-tablet-rail-order:hover,
    html body .site-header .cei-tablet-rail-actions .cei-tablet-rail-order:focus-visible {
        background: #0f2f4d;
        color: #fff;
    }
    html body .site-header .cei-tablet-rail-actions a:focus-visible {
        outline: 2px solid #9cc9ed;
        outline-offset: 2px;
    }
    html body .site-header .cei-tablet-navigation > .cei-tablet-menu-toggle {
        flex: 0 0 auto;
        margin-left: 0;
    }
}
