/**
 * RightAir Foundation-owned global header.
 * One instance of each element is repositioned with CSS Grid by breakpoint.
 */
.ra-foundation-header {
    position: relative;
    z-index: 100000;
    width: 100%;
    background: var(--ra-header-bg, #f4f5f6);
    color: var(--ra-text, #303a50);
}

/* The header is rendered at wp_body_open, outside Divi's page container.
 * On a site using Divi's boxed frame it must still claim the browser width. */
body.ra-foundation-header-active > #ra-foundation-header {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

body.ra-foundation-footer-active > #ra-foundation-footer,
body.ra-foundation-footer-active > .ra-payment-methods--site {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

/* Keep the document body in its native block formatting context. Side Cart
 * mounts a zero-height body wrapper whose fixed/off-canvas descendants rely on
 * that context; making body a flex container lets those descendants extend the
 * document below the Foundation footer on shorter product pages. */

.ra-foundation-header.is-sticky {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
}

/* The header is fixed so its painted position cannot enlarge the document's
 * scrollable overflow. This measured in-flow spacer preserves the exact page
 * start previously supplied by the sticky header. */
.ra-foundation-header-spacer {
    display: block;
    width: 100%;
    height: var(--ra-sticky-header-height, 142px);
    min-height: 0;
    margin: 0;
    padding: 0;
}

.ra-foundation-header,
.ra-foundation-header * {
    box-sizing: border-box;
}

.ra-foundation-header .ra-shell {
    width: min(100%, var(--ra-header-shell, 1400px));
    margin-inline: auto;
    padding-inline: 14px;
}

.ra-foundation-header__announcement {
    background: var(--ra-header-announcement-bg, #001a35);
    color: var(--ra-header-announcement-text, #fff);
    font-size: 12px;
    line-height: 1.35;
    text-align: center;
}

.ra-foundation-header__announcement-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    padding-block: 7px;
}

.ra-foundation-header__announcement-item {
    color: var(--ra-announcement-item-color, var(--ra-header-announcement-text, #fff));
    font-weight: var(--ra-announcement-item-weight, 400);
    font-size: var(--ra-announcement-item-size, 12px);
    text-decoration: none;
    transition: color .18s ease;
}

.ra-foundation-header__announcement-item:hover,
.ra-foundation-header__announcement-item:focus-visible {
    color: var(--ra-announcement-item-hover, #5f6f84);
}

.ra-foundation-header__announcement-separator {
    display: inline-flex;
    flex: 0 0 var(--ra-header-announcement-separator-size, 4px);
    width: var(--ra-header-announcement-separator-size, 4px);
    height: var(--ra-header-announcement-separator-size, 4px);
    margin-inline: 10px;
    align-items: center;
    justify-content: center;
    align-self: center;
    color: var(--ra-header-announcement-separator, #fff);
    line-height: 0;
    vertical-align: middle;
}

.ra-foundation-header__announcement-separator-icon {
    display: block;
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.ra-foundation-header__main {
    background: var(--ra-header-bg, #f4f5f6);
}

.ra-foundation-header__grid {
    display: grid;
    grid-template-columns: minmax(190px, 1fr) minmax(260px, 3fr) minmax(180px, 1fr);
    grid-template-areas:
        "logo search actions"
        "navigation navigation navigation";
    align-items: center;
    column-gap: clamp(18px, 3vw, 52px);
    min-width: 0;
}

.ra-foundation-header__logo {
    grid-area: logo;
    min-width: 0;
    padding-block: 16px;
}

.ra-foundation-header__logo-link {
    display: inline-flex;
    align-items: center;
    max-width: var(--ra-header-logo-desktop, 190px);
    color: inherit;
    text-decoration: none;
    transform: translateY(3px);
}

.ra-foundation-header__logo-image {
    display: block;
    width: 100%;
    height: auto;
    max-height: 78px;
    object-fit: contain;
}

.ra-foundation-header__site-name {
    font-size: 22px;
    font-weight: 800;
}

.ra-foundation-header__search {
    grid-area: search;
    width: min(100%, var(--ra-header-search-max, 760px));
    min-width: 0;
    margin-inline: auto;
    padding-block: 14px;
}

.ra-foundation-header__search > *,
.ra-foundation-header__search form,
.ra-foundation-header__search .dgwt-wcas-search-wrapp,
.ra-foundation-header__search .asp_w_container {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-inline: 0 !important;
}

.ra-foundation-header__mobile-tools {
    display: none;
}

.ra-foundation-header__actions {
    grid-area: actions;
    display: flex;
    align-items: center;
    justify-content: center;
    justify-self: stretch;
    gap: var(--ra-header-action-item-gap, 6px);
    min-width: 0;
}

.ra-foundation-header__action {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    width: auto;
    min-width: 0;
    min-height: 44px;
    margin: 0;
    padding: 0;
    color: var(--ra-header-action-color, #5e6e84);
    font-size: var(--ra-header-action-font-size, 15px);
    font-weight: var(--ra-header-action-weight, 400);
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.ra-foundation-header__action:hover {
    color: var(--ra-primary-light, #48a0dc);
}

.ra-foundation-header__action-icon {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: var(--ra-header-action-icon-size, 24px);
    height: var(--ra-header-action-icon-size, 24px);
}

.ra-foundation-header__action svg {
    display: block;
    width: 100%;
    height: 100%;
}

.ra-foundation-header svg.ra-icon--fill {
    fill: currentColor;
    stroke: none;
}

.ra-foundation-header svg.ra-icon--stroke {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ra-foundation-header__cart-icon {
    overflow: visible;
    margin-right: 4px;
}

.ra-foundation-header .ra-foundation-header__cart-icon > .ra-foundation-header__cart-count {
    position: absolute !important;
    top: -8px !important;
    right: -9px !important;
    left: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
    padding: 0 2px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--ra-header-cart-count-bg, #3893d0) !important;
    color: #fff !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    line-height: 16px !important;
    text-align: center !important;
    transform: none !important;
    z-index: 2;
}

.ra-foundation-header__navigation {
    grid-area: navigation;
    position: relative;
    z-index: 1;
    min-width: 0;
}

.ra-foundation-header__navigation::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset-block: 0;
    left: 50%;
    width: var(--ra-viewport-width, 100%);
    transform: translateX(-50%);
    background: var(--ra-header-desktop-gradient, linear-gradient(90deg, #0271ba 0%, #ff0066 100%));
    pointer-events: none;
}

.ra-foundation-header__navigation-inner {
    min-width: 0;
}

.ra-foundation-header__navigation-inner > * {
    width: 100%;
    margin: 0 !important;
}

body.ra-foundation-header-hide-divi #main-header,
body.ra-foundation-header-hide-divi #top-header,
body.ra-foundation-header-hide-divi .et-l--header {
    display: none !important;
}

.admin-bar .ra-foundation-header.is-sticky {
    top: 32px;
}

@media (max-width: 767px) {
    .ra-foundation-header-spacer {
        height: var(--ra-sticky-header-height, 100px);
    }

    .ra-foundation-header__grid {
        position: relative;
        grid-template-columns: minmax(0, 1fr) minmax(0, 3fr) minmax(0, 1fr);
        grid-template-rows: 62px;
        grid-template-areas: "mobile-tools logo actions";
        column-gap: 8px;
        min-height: 0;
        padding-block: 0;
    }

    .ra-foundation-header__logo {
        justify-self: center;
        padding-block: 0;
    }

    .ra-foundation-header__logo-link {
        max-width: var(--ra-header-logo-mobile, 132px);
    }

    .ra-foundation-header__mobile-tools {
        grid-area: mobile-tools;
        align-self: center;
        justify-self: start;
        display: flex;
        align-items: center;
        gap: 0;
        height: 44px;
        padding-left: var(--ra-header-mobile-left-inset, 5px);
    }

    /* Keep 40px mobile tap targets for accessibility. The left-gap token is
       interpreted below as visible artwork-to-artwork spacing, not box gap. */
    .ra-foundation-header__menu-slot {
        display: block;
        flex: 0 0 40px;
        width: 40px;
        height: 40px;
    }

    .ra-foundation-header__mobile-control {
        appearance: none;
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        width: 40px;
        height: 40px;
        min-width: 40px;
        min-height: 40px;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 999px;
        background: transparent;
        color: var(--ra-header-action-color, #5e6e84);
        box-shadow: none;
        cursor: pointer;
    }

    .ra-foundation-header__mobile-control:hover,
    .ra-foundation-header__mobile-control:focus-visible {
        color: var(--ra-header-action-hover, #48a0dc);
        background: transparent;
    }

    .ra-foundation-header__mobile-control {
        /* Keep the 40px Search hit target, but remove the Menu control's hidden
           left-side artwork space from layout. This makes the left-gap token
           describe visible Menu-to-Search artwork spacing. */
        margin-left: calc(
            var(--ra-header-mobile-left-gap, 8px)
            - (40px - var(--ra-header-mobile-menu-size, 26px))
        );
    }

    .ra-foundation-header__mobile-control-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: var(--ra-header-mobile-search-size, 24px);
        height: var(--ra-header-mobile-search-size, 24px);
        margin-left: 0;
        transform: translateY(var(--ra-header-mobile-search-y, 0px));
    }

    .ra-foundation-header__mobile-control svg {
        display: block;
        width: 100%;
        height: 100%;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .ra-foundation-header__actions {
        align-self: center;
        justify-self: end;
        display: flex;
        align-items: center;
        gap: var(--ra-header-mobile-right-gap, 8px);
        width: max-content;
        min-width: 0;
        height: 44px;
        margin: 0;
        padding: 0 var(--ra-header-mobile-right-inset, 5px) 0 0;
    }

    .ra-foundation-header__action {
        flex: 0 0 auto;
        width: auto;
        min-width: 0;
        min-height: 36px;
        margin: 0;
        padding: 0;
        gap: 0;
    }

    .ra-foundation-header__action-label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .ra-foundation-header .ra-foundation-header__cart-icon > .ra-foundation-header__cart-count {
        top: -7px !important;
        right: -8px !important;
        left: auto !important;
        min-width: 15px !important;
        height: 15px !important;
        padding-inline: 2px !important;
        font-size: 9px !important;
        line-height: 15px !important;
    }

    .ra-foundation-header__cart-icon {
        margin-right: 0;
        transform: none;
    }

    .ra-foundation-header__account .ra-foundation-header__action-icon {
        width: var(--ra-header-mobile-account-size, 27px);
        height: var(--ra-header-mobile-account-size, 27px);
        transform: translateY(var(--ra-header-mobile-account-y, 0px));
    }

    .ra-foundation-header__cart .ra-foundation-header__action-icon {
        width: var(--ra-header-mobile-cart-size, 23px);
        height: var(--ra-header-mobile-cart-size, 23px);
        transform: translateY(var(--ra-header-mobile-cart-y, 0px));
    }

    /* Max Mega Menu remains the behavioural owner. Keep its real toggle in the
       plugin-owned wrapper so its event handlers and toggle/menu sibling
       relationship remain untouched. Foundation only positions and skins it. */
    .ra-foundation-header__navigation {
        position: absolute;
        z-index: 20;
        top: 62px;
        left: 14px;
        right: 14px;
        min-width: 0;
    }

    .ra-foundation-header__navigation .mega-menu-wrap {
        position: relative !important;
        width: 100% !important;
        margin: 0 !important;
    }

    .ra-foundation-header__navigation .mega-menu-toggle.ra-foundation-native-menu-toggle {
        position: absolute !important;
        top: -51px !important;
        left: calc(
            var(--ra-header-mobile-left-inset, 5px)
            - (40px - var(--ra-header-mobile-menu-size, 26px))
        ) !important;
        z-index: 2 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 40px !important;
        min-width: 40px !important;
        height: 40px !important;
        min-height: 40px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 999px !important;
        background: transparent !important;
        box-shadow: none !important;
        color: var(--ra-header-action-color, #5e6e84) !important;
        cursor: pointer !important;
    }

    .ra-foundation-header__navigation .mega-menu-toggle.ra-foundation-native-menu-toggle:hover,
    .ra-foundation-header__navigation .mega-menu-toggle.ra-foundation-native-menu-toggle:focus-visible {
        color: var(--ra-header-action-hover, #48a0dc) !important;
        background: transparent !important;
    }

    /* Preserve every native toggle block for Max Mega Menu's lifecycle and hit
       testing; make its original artwork transparent underneath our SVG only. */
    .ra-foundation-header__navigation .mega-menu-toggle.ra-foundation-native-menu-toggle > :not(.ra-foundation-native-menu-icon) {
        opacity: 0 !important;
    }

    .ra-foundation-native-menu-icon {
        position: absolute;
        top: 50%;
        right: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: var(--ra-header-mobile-menu-size, 26px);
        height: var(--ra-header-mobile-menu-size, 26px);
        transform: translateY(calc(-50% + var(--ra-header-mobile-menu-y, 0px)));
        pointer-events: none;
    }

    .ra-foundation-native-menu-icon svg {
        display: block;
        width: 100%;
        height: 100%;
    }

    .ra-foundation-header__navigation::before {
        display: none;
    }

    /* The desktop FiboSearch instance stays mounted so the plugin continues to
       own AJAX and mobile-overlay state, but its persistent mobile row is removed. */
    .ra-foundation-header__search {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }

    .ra-foundation-header__search::before {
        display: none;
    }
}


@media (max-width: 767px) {
    .ra-foundation-header__announcement {
        overflow: hidden;
    }

    .ra-foundation-header__announcement.has-mobile-ticker .ra-foundation-header__announcement-inner {
        width: max-content;
        max-width: none;
        margin-inline: 0;
        padding-inline: 14px;
        flex-wrap: nowrap;
        justify-content: flex-start;
        white-space: nowrap;
        transform: translate3d(0,0,0);
        will-change: transform;
        touch-action: pan-y;
        user-select: none;
        cursor: grab;
    }

    .ra-foundation-header__announcement.has-mobile-ticker .ra-foundation-header__announcement-inner.is-dragging {
        cursor: grabbing;
    }

    .ra-foundation-header__announcement.has-mobile-ticker .ra-foundation-header__announcement-item,
    .ra-foundation-header__announcement.has-mobile-ticker .ra-foundation-header__announcement-separator {
        flex: 0 0 auto;
    }
}

@media (max-width: 782px) {
    .admin-bar .ra-foundation-header.is-sticky {
        top: 46px;
    }
}

/* v0.7.1 Foundation Header design-system additions. */
.ra-foundation-header__announcement-accent {
    position: relative;
    width: 100%;
    height: var(--ra-header-announcement-accent-height, 4px);
    overflow: hidden;
    background-image: var(--ra-header-announcement-accent, linear-gradient(90deg, #0271ba 0%, #7750a7 50%, #ff0066 100%));
    background-size: 200% 100%;
    background-position: 0 50%;
    background-repeat: no-repeat;
}

.ra-foundation-header__announcement-accent::before {
    content: none;
}

.ra-foundation-header__announcement-accent.is-animated {
    background: none;
}

.ra-foundation-header__announcement-accent.is-animated::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 200%;
    background-image: var(--ra-header-announcement-accent, linear-gradient(90deg, #0271ba 0%, #7750a7 50%, #ff0066 100%));
    background-size: 50% 100%;
    background-repeat: repeat-x;
    transform: translate3d(0,0,0);
    will-change: transform;
    animation: ra-foundation-announcement-gradient var(--ra-header-announcement-animation-duration, 12s) linear infinite;
    animation-direction: var(--ra-header-announcement-animation-direction, normal);
}

@keyframes ra-foundation-announcement-gradient {
    from { transform: translate3d(0,0,0); }
    to { transform: translate3d(-50%,0,0); }
}


.ra-foundation-header__announcement-accent:not(.is-animated)::before {
    content: none !important;
    animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .ra-foundation-header__announcement-accent.is-animated::before {
        animation: none;
    }
}

.ra-foundation-header__action:hover,
.ra-foundation-header__mobile-control:hover,
.ra-foundation-header__mobile-control:focus-visible,
.ra-foundation-header__navigation .mega-menu-toggle.ra-foundation-native-menu-toggle:hover,
.ra-foundation-header__navigation .mega-menu-toggle.ra-foundation-native-menu-toggle:focus-visible {
    color: var(--ra-header-action-hover, #48a0dc) !important;
}

.ra-foundation-header__action:active,
.ra-foundation-header__mobile-control:active,
.ra-foundation-header__navigation .mega-menu-toggle.ra-foundation-native-menu-toggle:active,
.ra-foundation-header__navigation .mega-menu-toggle.mega-menu-open.ra-foundation-native-menu-toggle {
    color: var(--ra-header-action-active, #ff0066) !important;
}

/* The supplied RightAir Foundation icon library is fill-based and colourable
   through currentColor, regardless of the original artwork source. */
.ra-foundation-header svg.ra-icon--fill,
.ra-foundation-header__mobile-control svg,
.ra-foundation-native-menu-icon svg,
.ra-foundation-fibo-icon svg {
    fill: currentColor;
    stroke: none;
}


/* ==========================================================
   Foundation Footer - placement-driven grid contract
   Desktop: 10 columns. Cells 1-5 span 2 columns each; Cells 6-7 span 5 each.
   Mobile: 2 columns with explicit per-cell row/column/span placement.
   The grid adds no hidden padding or wrapper gap: every spacing value is an
   administrator-owned setting rendered as a CSS custom property.
   ========================================================== */
.ra-foundation-footer,
.ra-foundation-footer * {
    box-sizing: border-box;
}

.ra-foundation-footer {
    width: 100%;
}

.ra-foundation-footer .ra-shell {
    width: min(100%, var(--ra-footer-shell, 1400px));
    margin-inline: auto;
    padding-inline: 14px;
}

.ra-foundation-footer__grid {
    display: grid;
    grid-template-columns: repeat(10, minmax(0, 1fr));
    column-gap: var(--ra-footer-desktop-column-gap, 24px);
    row-gap: var(--ra-footer-desktop-row-gap, 0px);
    padding-top: var(--ra-footer-desktop-padding-top, 36px);
    padding-bottom: var(--ra-footer-desktop-padding-bottom, 20px);
    min-width: 0;
}

.ra-foundation-footer__cell {
    grid-row: var(--ra-footer-desktop-row, auto);
    grid-column: var(--ra-footer-desktop-column, auto) / span var(--ra-footer-desktop-span, 1);
    min-width: 0;
    padding: var(--ra-footer-desktop-pad-top, 0px)
             var(--ra-footer-desktop-pad-right, 0px)
             var(--ra-footer-desktop-pad-bottom, 0px)
             var(--ra-footer-desktop-pad-left, 0px);
}

body.ra-foundation-footer-hide-divi #main-footer,
body.ra-foundation-footer-hide-divi .et-l--footer {
    display: none !important;
}

@media (max-width: 767px) {
    .ra-foundation-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: var(--ra-footer-mobile-column-gap, 24px);
        row-gap: var(--ra-footer-mobile-row-gap, 0px);
        padding-top: var(--ra-footer-mobile-padding-top, 36px);
        padding-bottom: var(--ra-footer-mobile-padding-bottom, 36px);
    }

    .ra-foundation-footer__cell {
        grid-row: var(--ra-footer-mobile-row, auto);
        grid-column: var(--ra-footer-mobile-column, auto) / span var(--ra-footer-mobile-span, 1);
        padding: var(--ra-footer-mobile-pad-top, 0px)
                 var(--ra-footer-mobile-pad-right, 0px)
                 var(--ra-footer-mobile-pad-bottom, 0px)
                 var(--ra-footer-mobile-pad-left, 0px);
    }
}

/* Foundation Footer content blocks */
.ra-foundation-footer__cell {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.ra-foundation-footer__block {
    max-width: 100%;
}

.ra-foundation-footer__heading,
.ra-foundation-footer__item {
    margin: 0;
    color: var(--ra-footer-item-color, #fff);
    font-weight: var(--ra-footer-item-weight, 400);
    text-decoration: none;
}

.ra-foundation-footer__heading {
    font-size: 18px;
    line-height: 1.25;
}

.ra-foundation-footer__item {
    display: inline-block;
    font-size: 14px;
    line-height: 1.35;
}

a.ra-foundation-footer__item:hover,
a.ra-foundation-footer__item:focus-visible {
    text-decoration: underline;
}

.ra-foundation-footer__image-wrap,
.ra-foundation-footer__image-link {
    display: inline-flex;
    max-width: 100%;
}

.ra-foundation-footer__image {
    display: block;
    max-width: 100%;
    width: var(--ra-footer-image-width-desktop, auto);
    height: auto;
}

@media (max-width: 767px) {
    .ra-foundation-footer__image {
        width: var(--ra-footer-image-width-mobile, var(--ra-footer-image-width-desktop, auto));
    }
}

.ra-foundation-footer__social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color: var(--ra-footer-item-color, #fff);
    text-decoration: none;
}

.ra-foundation-footer__social svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: currentColor;
}


/* Footer backgrounds and interactive states */
.ra-foundation-footer {
    background: var(--ra-footer-background, #303a50);
}

.ra-foundation-footer__cell {
    background: var(--ra-footer-cell-background, transparent);
}

a.ra-foundation-footer__heading:hover,
a.ra-foundation-footer__heading:focus-visible,
a.ra-foundation-footer__item:hover,
a.ra-foundation-footer__item:focus-visible {
    color: var(--ra-footer-item-hover, var(--ra-footer-item-color, #fff));
}

/* Social presentation: solid brand circle, transparent white-ring hover. */
.ra-foundation-footer__social {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    padding: 9px;
    border: 1px solid transparent;
    border-radius: 50%;
    background: var(--ra-footer-social-bg, #303a50);
    color: #fff;
    transition: background-color .18s ease, border-color .18s ease;
}

.ra-foundation-footer__social:hover,
.ra-foundation-footer__social:focus-visible {
    border-color: #fff;
    background: transparent;
    color: #fff;
}

/* Legal-links cell: ordered inline items separated by dots, never a ticker. */
.ra-foundation-footer__cell--7 {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
}

.ra-foundation-footer__cell--7 > .ra-foundation-footer__block {
    display: inline-flex;
    align-items: center;
}

.ra-foundation-footer__cell--7 > .ra-foundation-footer__block + .ra-foundation-footer__block::before {
    content: "";
    flex: 0 0 var(--ra-footer-separator-size, 4px);
    width: var(--ra-footer-separator-size, 4px);
    height: var(--ra-footer-separator-size, 4px);
    margin-inline: 10px;
    border-radius: 50%;
    background: var(--ra-footer-separator-color, #fff);
}

@media (max-width: 767px) {
    .ra-foundation-footer__cell--7 {
        justify-content: flex-start;
    }
}


/* Footer responsive alignment and social sizing */
.ra-foundation-footer__cell {
    align-items: flex-start;
    text-align: left;
}
.ra-footer-align-desktop-center { align-items: center; text-align: center; }
.ra-footer-align-desktop-right { align-items: flex-end; text-align: right; }

@media (max-width: 767px) {
    .ra-foundation-footer__cell { align-items: flex-start; text-align: left; }
    .ra-footer-align-mobile-center { align-items: center; text-align: center; }
    .ra-footer-align-mobile-right { align-items: flex-end; text-align: right; }
}

.ra-foundation-footer__heading,
.ra-foundation-footer__item {
    line-height: var(--ra-footer-item-line-height, 1.35);
}

a.ra-foundation-footer__heading:hover,
a.ra-foundation-footer__heading:focus-visible,
a.ra-foundation-footer__item:hover,
a.ra-foundation-footer__item:focus-visible {
    text-decoration: none !important;
}

.ra-foundation-footer__social {
    width: var(--ra-footer-social-size, 46px);
    height: var(--ra-footer-social-size, 46px);
    flex-basis: var(--ra-footer-social-size, 46px);
    padding: calc((var(--ra-footer-social-size, 46px) - var(--ra-footer-social-icon-size, 24px)) / 2);
}

.ra-foundation-footer__social svg {
    width: var(--ra-footer-social-icon-size, 24px);
    height: var(--ra-footer-social-icon-size, 24px);
}

.ra-foundation-footer__cell .ra-foundation-footer__block--social {
    display: inline-flex;
}

/* Consecutive social blocks form one horizontal icon row. */
.ra-foundation-footer__cell > .ra-foundation-footer__block--social + .ra-foundation-footer__block--social {
    margin-left: var(--ra-footer-social-gap, 12px);
}

/* Legal-links cell uses its own dot contract; do not add a dot between social buttons. */
.ra-foundation-footer__cell--7 > .ra-foundation-footer__block--social + .ra-foundation-footer__block--social::before {
    display: none;
}

.ra-foundation-footer__cell--7 > .ra-foundation-footer__block--social + .ra-foundation-footer__block--social {
    margin-left: var(--ra-footer-social-gap, 12px);
}


/* v0.7.30 - Social row and full-bleed overflow correction */
.ra-foundation-footer__social-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ra-footer-social-gap, 12px);
    max-width: 100%;
}

.ra-footer-align-desktop-right .ra-foundation-footer__social-row {
    justify-content: flex-end;
}

.ra-foundation-footer__social-row .ra-foundation-footer__social {
    margin: 0 !important;
}

/* Social icons are grouped into one top-level block, so Cell 6 treats the
   complete social row as one item in its dot-separated sequence. */
.ra-foundation-footer__cell--7 > .ra-foundation-footer__block--social-row::before {
    display: block;
}


/* v0.7.33 - Footer block typography */
.ra-foundation-footer__heading,
.ra-foundation-footer__item,
.ra-foundation-footer__copyright {
    font-size: var(--ra-footer-item-size, 14px);
}

.ra-foundation-footer__heading {
    display: inline-block;
    width: auto;
    padding-bottom: 6px;
    border-bottom: var(--ra-footer-heading-underline-size, 0px) solid var(--ra-footer-heading-underline-color, currentColor);
}

.ra-foundation-footer__copyright {
    display: inline-block;
    color: var(--ra-footer-item-color, #fff);
    text-decoration: none;
    line-height: var(--ra-footer-item-line-height, 1.35);
}

.ra-foundation-footer__copyright-name {
    font-weight: var(--ra-footer-copyright-name-weight, 700);
}

.ra-foundation-footer__copyright-rest,
.ra-foundation-footer__copyright-year {
    font-weight: var(--ra-footer-copyright-rest-weight, 400);
}

a.ra-foundation-footer__copyright:hover,
a.ra-foundation-footer__copyright:focus-visible {
    color: var(--ra-footer-item-hover, var(--ra-footer-item-color, #fff));
    text-decoration: none !important;
}


/* v0.7.34 - Footer accent + line-height ownership */
.ra-foundation-footer {
    position: relative;
}

.ra-foundation-footer::before {
    content: "";
    display: block;
    width: 100%;
    height: var(--ra-footer-accent-height, 4px);
    background: var(--ra-footer-accent-gradient, linear-gradient(90deg,#0271ba 0%,#ff0066 100%)) !important;
    pointer-events: none;
}

/* Remove the old fixed inter-block gap. Text vertical rhythm is now governed
   by each cell's line-height setting. */
.ra-foundation-footer__cell {
    gap: 0 !important;
}

.ra-foundation-footer__block--heading,
.ra-foundation-footer__block--item,
.ra-foundation-footer__block--copyright {
    line-height: var(--ra-footer-item-line-height, 1.35);
}

.ra-foundation-footer__block--heading + .ra-foundation-footer__block--item,
.ra-foundation-footer__block--item + .ra-foundation-footer__block--item,
.ra-foundation-footer__block--item + .ra-foundation-footer__block--copyright,
.ra-foundation-footer__block--copyright + .ra-foundation-footer__block--item {
    margin-top: calc((var(--ra-footer-item-line-height, 1.35) - 1) * 1em);
}

/* Non-text content keeps a small structural separation. */
.ra-foundation-footer__block--image,
.ra-foundation-footer__social-row {
    margin-top: 8px;
}


/* v0.7.36 - Heading line spacing */
.ra-foundation-footer__heading {
    margin-bottom: var(--ra-footer-heading-space-below, 0px);
}


/* v0.7.39 - Per-social icon sizing and canonical hover contract */
.ra-foundation-footer__social {
    background: var(--ra-footer-social-bg, #303a50) !important;
    border: 1px solid transparent !important;
    color: #fff !important;
}

.ra-foundation-footer__social svg {
    width: var(--ra-footer-social-icon-size-item, var(--ra-footer-social-icon-size, 30px)) !important;
    height: var(--ra-footer-social-icon-size-item, var(--ra-footer-social-icon-size, 30px)) !important;
}

.ra-foundation-footer__social:hover,
.ra-foundation-footer__social:focus-visible {
    background: transparent !important;
    border-color: #fff !important;
    color: #fff !important;
}


/* v0.7.40 - Per-item social icon override must own the inner sizing too.
 * Previously the SVG used the override, but the button padding still used the
 * cell default icon size, so a larger override had no useful room to grow. */
.ra-foundation-footer__social {
    --ra-footer-social-icon-effective: var(
        --ra-footer-social-icon-size-item,
        var(--ra-footer-social-icon-size, 30px)
    );
    padding: max(
        0px,
        calc(
            (
                var(--ra-footer-social-size, 36px) -
                var(--ra-footer-social-icon-effective)
            ) / 2
        )
    ) !important;
}

.ra-foundation-footer__social svg {
    width: min(
        var(--ra-footer-social-icon-effective),
        calc(var(--ra-footer-social-size, 36px) - 2px)
    ) !important;
    height: min(
        var(--ra-footer-social-icon-effective),
        calc(var(--ra-footer-social-size, 36px) - 2px)
    ) !important;
    flex: 0 0 auto;
}


/* v0.7.44 - Placement-driven footer grid.
 * Cell 7 is an inline legal-link sequence, so its flex main-axis alignment
 * follows the same editable desktop/mobile alignment values as every cell. */
.ra-foundation-footer__cell--7.ra-footer-align-desktop-left { justify-content: flex-start; }
.ra-foundation-footer__cell--7.ra-footer-align-desktop-center { justify-content: center; }
.ra-foundation-footer__cell--7.ra-footer-align-desktop-right { justify-content: flex-end; }

@media (max-width: 767px) {
    .ra-foundation-footer__cell--7.ra-footer-align-mobile-left { justify-content: flex-start; }
    .ra-foundation-footer__cell--7.ra-footer-align-mobile-center { justify-content: center; }
    .ra-foundation-footer__cell--7.ra-footer-align-mobile-right { justify-content: flex-end; }

    /* Legal link rhythm is intentionally compact on mobile, but not a hidden
       layout gap: this is content-internal separator spacing. */
    .ra-foundation-footer__cell--7 > .ra-foundation-footer__block + .ra-foundation-footer__block::before {
        margin-inline: 5px;
    }
}

@media (max-width: 767px) {
    .ra-footer-align-mobile-left .ra-foundation-footer__social-row { justify-content: flex-start; }
    .ra-footer-align-mobile-center .ra-foundation-footer__social-row { justify-content: center; }
    .ra-footer-align-mobile-right .ra-foundation-footer__social-row { justify-content: flex-end; }
}
