/*=================================
Footer Top Ribon
==================================*/
.footer-top-ribon {
    text-align: center;
    padding-top: 98px;
    padding-bottom: 170px;
}
.footer-top-ribon .section-heading > h2 {
    padding-bottom: 32px;
    padding-top: 0;
    margin-top: 0;
    color: #000;
}
.footer-top-ribon p {
    width: 65%;
    margin: auto auto 44px;
    font-size: 22px;
    line-height: 36px;
}

/* Back to Top Button styles */
.rul-back-to-top-btn {
    opacity: 0;
    visibility: hidden;
    padding: 3px 9px;
    position: fixed;
    right: 10px;
    top: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    border-radius: 50px;
    background-color: #fff;
    color: #000;
    box-shadow: 0 2px 14px rgba(0,0,0,0.15);
    height: 46px;
    transform-origin: 100% 50%;
    transform: rotate(90deg) translate(50%, 50%);
    transition: opacity .4s ease,
                visibility .4s ease,
                background-color .3s ease,
                box-shadow .3s ease;
    z-index: 999;
}
.rul-back-to-top-btn.show {
    opacity: 1;
    visibility: visible;
}
.rul-back-to-top-btn:hover {
    background-color: #f0f0f0;
    box-shadow: 0 4px 20px rgba(0,0,0,0.2);
}
.rul-back-to-top-btn::before,
.rul-back-to-top-btn::after {
    content: none;
}
.rul-back-to-top-btn .b2t-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    transform: rotate(180deg);
    flex-direction: row-reverse;
}
.rul-back-to-top-btn .b2t-inner svg {
    transform: rotateZ(90deg);
    width: 37px;
    height: 37px;
    flex-shrink: 0;
    display: block;
}
.rul-back-to-top-btn .b2t-label {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    padding: 0 9px 0 5px;
    display: flex;
    align-items: center;
    font-family: inherit;
    color: #000;
    text-transform: uppercase;
    white-space: nowrap;
    letter-spacing: 0;
}


/* Padding conflict with Unyson section */
section.fw-main-row >div.fw-container>section:first-of-type {
    padding-top: 0;
}
section.fw-main-row >div.fw-container>section:last-of-type {
    padding-bottom: 0;
}
section.fw-main-row>div.fw-container>section+div.inner-page-content {
    padding-top: 80px;
}
section.fw-main-row>div.fw-container-fluid>section + div.inner-page-content {
    padding-bottom: 80px;
}

/*=================================
Footer Section
==================================*/
/*
 * Scope RUL tokens on the footer (header-foundation only scopes .rul-header).
 * Also beat legacy build/wp-default/css/footer.css `footer:not(.comment-meta)` rules.
 */
footer.rul-footer,
.rul-footer {
    --primary-black: #000;
    --primary-white: #fff;
    /* Theme primary (not RUL orange) — drives menu/social/copyright hovers */
    --primary-color: var(--rul-primary-color, var(--primary-clr, #1c92d1));
    --default-font-size: 16px;
    background-color: #000 !important;
    color: #fff;
    padding-top: 72px;
    padding-bottom: 0;
    font-size: var(--default-font-size);
}

/* Kill legacy footer link underline animation from reto-footer SCSS */
footer.rul-footer a::after,
.rul-footer a::after {
    content: none !important;
    display: none !important;
}

/* Override Bootstrap container to match header width (1488px) */
.rul-footer > .container {
    max-width: 1488px !important;
    width: 100%;
    padding-left: 24px;
    padding-right: 24px;
}

@media (min-width: 1520px) {
    .rul-footer > .container {
        padding-left: 0;
        padding-right: 0;
    }
}
@media (min-width: 1200px) {
    .rul-footer > .container,
    header .container-fluid,
    .rul-header .container {
        padding-left: 50px;
        padding-right: 50px;
    }
}

@media screen and (max-width: 767px) {
    .rul-footer {
        padding-top: 40px;
    }
    .rul-footer > .container {
        padding-left: 16px;
        padding-right: 16px;
    }
}

.rul-footer ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rul-footer a {
    text-decoration: none !important;
}

.rul-footer p {
    margin: 0;
}

/* ===== FOOTER TOP ADDRESS =====
   Matched to Elementor: .elementor-element-a5a6117 (riseuplabs.com) */
.rul-footer .footer-addresses {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-evenly;
    align-items: stretch;
    gap: 8px;
    overflow: hidden;
    background: #202324;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 93px;
    margin-top: 28px;
}

.rul-footer .footer-address-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-evenly;
    flex: 1 1 0;
    min-width: 0;
    padding: 30px;
    border-radius: 16px;
    background: #202324;
    border: 1px solid transparent;
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.rul-footer .footer-address-item:hover {
    background-color: #474747;
    border-color: transparent;
    outline: none;
    box-shadow: none;
}

.rul-footer .footer-address-icon {
    display: block;
    width: 60px;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
    margin: 0;
}

.rul-footer .footer-address-title {
    font-family: 'DM Sans', 'Open Sans', sans-serif;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    margin: 10px 0 0;
}

.rul-footer .footer-address-description {
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px;
    color: #fff;
    margin: 10px 0 0;
}

.rul-footer .footer-address-phone {
    font-family: 'DM Sans', 'Open Sans', sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    margin: 10px 0 0;
    transition: color 0.25s linear;
}

.rul-footer a.footer-address-phone:hover,
.rul-footer a.footer-address-phone:focus-visible {
    color: #fff;
    text-decoration: underline !important;
}

@media screen and (max-width: 1024px) {
    .rul-footer .footer-addresses {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .rul-footer .footer-address-item {
        flex: 0 0 calc(50% - 4px);
        width: calc(50% - 4px);
        padding: 15px 10px;
    }

    .rul-footer .footer-address-title {
        font-size: 24px;
    }

    .rul-footer .footer-address-description {
        font-size: 14px;
        line-height: 20px;
    }

    .rul-footer .footer-address-phone {
        font-size: 14px;
        line-height: 20px;
    }
}

@media screen and (max-width: 767px) {
    .rul-footer .footer-addresses {
        flex-direction: column;
        flex-wrap: wrap;
        padding: 20px;
        margin-bottom: 32px;
    }

    .rul-footer .footer-address-item {
        flex: 0 0 auto;
        width: 100%;
    }

    .rul-footer .footer-address-title {
        line-height: 28px;
    }

    .rul-footer .footer-address-description,
    .rul-footer .footer-address-phone {
        font-size: 14px;
        line-height: 20px;
    }
}

/* ===== FOOTER DIVIDER ===== */
.rul-footer .footer-divider {
    width: 100%;
    height: 1px;
    background: rgba(216, 211, 223, 0.1);
    margin: 0;
}

/* ===== FOOTER TOP ===== */
.rul-footer .footer-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
    padding-bottom: 37px;
    padding-top: 0;
}

@media screen and (max-width: 991px) {
    .rul-footer .footer-top {
        flex-direction: column;
        gap: 32px;
        padding-bottom: 24px;
    }
}

/* Left: Logo + tagline (inline) + description below */
.rul-footer .footer-top-left {
    flex: 0 0 auto;
    max-width: 447px;
}

/* Logo and tagline on the same row */
.rul-footer .footer-logo-tagline {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 34px;
}

.rul-footer .footer-logo-tagline .main-logo {
    /* width: 94px;
    height: 72px; */
    display: block;
    flex-shrink: 0;
}

/* @media screen and (max-width: 767px) {
    .rul-footer .footer-logo-tagline .main-logo {
        width: 78px;
        height: 60px;
    }
} */

.rul-footer .footer-tagline {
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    color: #fff;
    margin: 0;
    white-space: nowrap; /* prevent wrapping */
    transform: translateY(9px);
}

.rul-footer .footer-description {
    font-size: 16px;
    line-height: 33px;
    letter-spacing: 0.01em;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
    max-width: 371px;
}

@media screen and (max-width: 767px) {
    .rul-footer .footer-top-left { max-width: 100%; }
    .rul-footer .footer-logo-tagline {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        margin-bottom: 16px;
        margin-top: 15px;
    }
    .rul-footer .footer-tagline {
        font-size: 14px;
        line-height: 21px;
        white-space: normal;
        padding-top: 10px;
        transform: translateY(0);
    }
    .rul-footer .footer-description {
        color: #c0c0c0;
        line-height: 29px;
    }
}

/* Right: Newsletter 329px + Socials 387px, both right-aligned (Figma 421:20725 / 421:20702) */
.rul-footer .footer-top-right {
    flex: 0 0 auto;
    width: 387px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 36px;
}

@media screen and (max-width: 991px) {
    .rul-footer .footer-top-right {
        width: 100%;
        align-items: stretch;
        gap: 32px;
    }
    .rul-footer .footer-newsletter { width: 100%; }
    .rul-footer .footer-socials { width: 100%; }
}

/* Newsletter */
.rul-footer .footer-newsletter {
    width: 410px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}
@media (min-width: 991px) {
    .rul-footer .footer-newsletter {
        margin-top: 21px;
    }
}

.rul-footer .footer-newsletter .newsletter-heading {
    font-family: 'Satoshi', 'Open Sans', sans-serif;
    font-size: 18px;
    line-height: 24px;
    color: rgba(248, 244, 241, 0.8);
    margin: 0;
    width: 100%;
}

.rul-footer .footer-newsletter-form {
    position: relative;
}

.rul-footer .footer-newsletter-form .newsletter-input-wrap {
    display: flex;
    align-items: center;
    background: #121212;
    border-radius: 61px;
    padding: 9px 8px 9px 18px;
    gap: 4px;
    height: 54px;
}

.rul-footer .footer-newsletter-form input[type="email"] {
    /* Beat wp-custom-css `input, select, textarea { background/border/radius !important }` */
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    box-shadow: none !important;
    outline: none;
    color: rgba(255, 255, 255, 0.6);
    font-size: 15px !important;
    font-weight: 400;
    font-family: 'Open Sans', sans-serif;
    flex: 1;
    min-width: 0;
    border-radius: 61px !important;
    /* iOS Safari paints autofill after load — delay forces our dark fill to win */
    transition: background-color 99999s ease-in-out 0s, color 99999s ease-in-out 0s;
}

.rul-footer .footer-newsletter-form input[type="email"]::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

/* Override browser autofill's light/yellow background (esp. iPad Safari) */
.rul-footer .footer-newsletter-form input[type="email"]:-webkit-autofill,
.rul-footer .footer-newsletter-form input[type="email"]:-webkit-autofill:hover,
.rul-footer .footer-newsletter-form input[type="email"]:-webkit-autofill:focus,
.rul-footer .footer-newsletter-form input[type="email"]:-webkit-autofill:active,
.rul-footer .footer-newsletter-form input.footer-newsletter-email:-webkit-autofill,
.rul-footer .footer-newsletter-form input[type="email"]:autofill {
    -webkit-text-fill-color: rgba(255, 255, 255, 0.6) !important;
    caret-color: rgba(255, 255, 255, 0.6);
    color: rgba(255, 255, 255, 0.6) !important;
    background-color: #121212 !important;
    background-image: none !important;
    -webkit-box-shadow: 0 0 0 1000px #121212 inset !important;
    box-shadow: 0 0 0 1000px #121212 inset !important;
    border: none !important;
    border-radius: 61px !important;
    transition: background-color 99999s ease-in-out 0s, color 99999s ease-in-out 0s;
}

.rul-footer .footer-newsletter-form .newsletter-btn {
    background: var(--rul-primary-color, var(--primary-clr, #1c92d1));
    color: #fff;
    border: none;
    border-radius: 88px;
    padding: 4px 18px;
    width: 112px;
    height: 36px;
    font-size: 16px;
    font-weight: 500;
    line-height: 27.2px;
    font-family: 'Open Sans', sans-serif;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.25s linear, filter 0.25s linear;
    flex-shrink: 0;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.rul-footer .footer-newsletter-form .newsletter-btn:hover {
    background: var(--rul-primary-color, var(--primary-clr, #1c92d1));
    filter: brightness(0.9);
}

.rul-footer .footer-newsletter-form .newsletter-btn.loading {
    pointer-events: none;
    opacity: 0.85;
}

.rul-footer .footer-newsletter-form .newsletter-btn.loading .newsletter-btn-text {
    opacity: 0;
}

.rul-footer .footer-newsletter-form .newsletter-btn-loader {
    display: none;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 50%;
    position: absolute;
    animation: footer-newsletter-spin 0.7s linear infinite;
}

.rul-footer .footer-newsletter-form .newsletter-btn.loading .newsletter-btn-loader {
    display: block;
}

.rul-footer .footer-newsletter-form .footer-newsletter-message {
    min-height: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease;
    position: absolute;
    width: 100%;
    left: 13px;
}

.rul-footer .footer-newsletter-form .footer-newsletter-message.is-visible {
    opacity: 1;
    visibility: visible;
}

.rul-footer .footer-newsletter-form .footer-newsletter-message-text {
    font-family: 'Open Sans', sans-serif;
    font-size: 13px;
    line-height: 1.4;
}

.rul-footer .footer-newsletter-form .footer-newsletter-message.is-success .footer-newsletter-message-text {
    color: #7dcea0;
}

.rul-footer .footer-newsletter-form .footer-newsletter-message.is-error .footer-newsletter-message-text {
    color: #ff6b6b;
}

@keyframes footer-newsletter-spin {
    to { transform: rotate(360deg); }
}

/* Social row is 387px — right edge matches the Subscribe button */
.rul-footer .footer-socials {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
    margin-top: 18px;
}

.rul-footer .footer-socials ul {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: nowrap;
}

.rul-footer .footer-socials ul li a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 35px;
    height: 35px;
    border: none;
    border-radius: 100%;
    background: #121212;
    transition: color 0.25s linear;
    color: rgba(255, 255, 255, 0.75);
}

.rul-footer .footer-socials ul li a i {
    font-size: 16px;
    color: inherit;
    transition: color 0.25s linear;
}

.rul-footer .footer-socials ul li a svg {
    width: 14px;
    height: 14px;
    display: block;
    fill: currentColor;
    color: inherit;
    transition: color 0.25s linear, fill 0.25s linear;
}

.rul-footer .footer-socials ul li a:hover,
.rul-footer .footer-socials ul li a:hover i {
    color: var(--primary-color);
}

.rul-footer .footer-socials ul li a:hover svg {
    fill: currentColor;
    color: var(--primary-color);
}

.rul-footer .footer-socials ul li a:hover svg path {
    fill: currentColor;
}

/* Divider between left and right social groups */
.rul-footer .footer-socials ul.left-social {
    position: relative;
    padding-right: 12px;
    margin-right: 13px;
}

.rul-footer .footer-socials ul.left-social::after {
    position: absolute;
    content: "";
    right: 0;
    width: 1px;
    height: 20px;
    background: #7f7f7f;
    top: 50%;
    transform: translateY(-50%);
}

.rul-footer .footer-socials ul.left-social--solo {
    padding-right: 0;
    margin-right: 0;
}

.rul-footer .footer-socials ul.left-social--solo::after {
    display: none;
}

@media screen and (max-width: 767px) {
    .rul-footer .footer-newsletter {
        width: 100%;
        gap: 16px;
        margin-top: 7px;
    }
    .rul-footer .footer-newsletter .newsletter-heading { width: 100%; max-width: 288px; }
    .rul-footer .footer-socials {
        align-items: flex-start;
        flex-wrap: nowrap;
        width: 100%;
        gap: 13px;
        margin-top: 0;
    }
    .rul-footer .footer-socials ul { gap: 13px; }
    .rul-footer .footer-socials ul li a {
        width: 32px;
        height: 32px;
        border-radius: 15px;
    }
    .rul-footer .footer-socials ul.left-social {
        padding-right: 0;
        margin-right: 0;
    }
    .rul-footer .footer-socials ul.left-social::after { display: none; }
}
@media screen and (max-width: 475px) {
    .rul-footer .footer-socials {
        flex-direction: column;
    }
}

/* ===== FOOTER MENU GRID (unchanged layout) ===== */
.rul-footer .grid-row {
    margin-top: 32px;
    margin-bottom: 48px;
    display: grid;
    gap: 47px;
    --min-grid-size: 110px;
    grid-template-columns: minmax(calc(var(--min-grid-size)), 1fr) minmax(calc(var(--min-grid-size) + 50px), 1fr) minmax(calc(var(--min-grid-size) + 110px), 1fr) repeat(auto-fit, minmax(var(--min-grid-size), 1fr));
    justify-content: space-between;
}

@media screen and (max-width: 1200px) {
    .rul-footer .grid-row {
        grid-template-columns: repeat(6, 1fr);
        gap: 20px;
    }
}

@media screen and (max-width: 991px) {
    .rul-footer .grid-row {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media screen and (max-width: 767px) {
    .rul-footer .grid-row {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 24px;
        margin-bottom: 24px;
    }
}

@media (min-width: 768px) {
    .rul-footer .grid-row .grid-col .btn-expand {
        display: none !important;
    }
}

.rul-footer .grid-row .grid-col .title {
    font-weight: 800;
    padding-bottom: 0;
    margin-bottom: 16px;
    font-size: 14.6px;
    line-height: 20px;
    font-family: "Open Sans", sans-serif;
    margin-top: 0;
    display: block;
    color: #fff;
}

/* Stacked secondary menu under primary (Figma double-menu column) */
.rul-footer .grid-row .grid-col .footer-menu-block + .footer-menu-block {
    margin-top: 30px;
}

.rul-footer .grid-row .grid-col .footer-menu-block {
    position: relative;
}

.rul-footer .grid-row .grid-col .title a {
    color: #fff;
}

.rul-footer .grid-row .grid-col .title a:hover {
    color: var(--primary-color) !important;
}

@media screen and (max-width: 1200px) {
    .rul-footer .grid-row .grid-col .title {
        font-size: var(--default-font-size);
    }
}

@media screen and (max-width: 767px) {
    .rul-footer .grid-row .grid-col .title {
        position: relative;
        cursor: pointer;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
        padding-bottom: 21px;
        margin-bottom: 0;
        font-size: 16px;
        font-weight: 700;
        line-height: 20px;
        --icon-size: 16px;
    }
    /* Figma: last title, and the open accordion title, have no bottom border */
    .rul-footer .grid-row .grid-col:last-child .footer-menu-block:last-child .title,
    .rul-footer .grid-row .grid-col:last-child > .title:last-of-type,
    .rul-footer .grid-row .grid-col .footer-menu-block.is-open .title,
    .rul-footer .grid-row .grid-col.is-open > .title {
        border-bottom: none;
        padding-bottom: 20px;
    }
    .rul-footer .grid-row .grid-col .footer-menu-block + .footer-menu-block {
        margin-top: 0;
    }
    .rul-footer .grid-row .grid-col .footer-menu-block.footer-menu-block--secondary {
        margin-top: 17px;
    }
    .rul-footer .grid-row .grid-col .btn-expand {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 31px;
        top: -4px;
        right: 0;
        padding: 0;
        color: #fff;
        background-color: #000 !important;
        border: none;
        box-shadow: none;
    }
    .rul-footer .grid-row .grid-col .btn-expand i {
        font-size: 12px;
    }
}

@media screen and (max-width: 767px) {
    .rul-footer .grid-row .grid-col .menu {
        display: none;
        /* Figma 455:6900 List — py-12, gap-12, subtle panel */
        background-color: rgba(255, 255, 255, 0.05);
        border-radius: 4px;
        padding: 12px 0;
        margin: 0;
    }
}

.rul-footer .grid-row .grid-col .menu li:not(:last-child) {
    margin-bottom: 14px;
}

@media screen and (min-width: 767px) {
    .rul-footer .grid-row .grid-col .menu {
        display: block !important;
    }
}

@media screen and (max-width: 767px) {
    .rul-footer .grid-row .grid-col .menu > li {
        background-color: transparent;
        padding: 0;
        border-bottom: none;
        margin: 0;
    }
    /* Dividers sit between items only — rgba(216,211,223,0.08), not after the last item */
    .rul-footer .grid-row .grid-col .menu > li:not(:last-child) {
        margin: 0 0 12px;
        padding-bottom: 12px;
        border-bottom: 1px solid rgba(216, 211, 223, 0.08);
    }
}

.rul-footer .grid-row .grid-col .menu a {
    color: #c0c0c0;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0.14px;
    font-weight: 400;
    transition: all 0.25s linear;
}

@media screen and (max-width: 767px) {
    .rul-footer .grid-row .grid-col .menu a {
        display: block;
        color: rgba(255, 255, 255, 0.7);
        line-height: 20px;
        letter-spacing: 0.14px;
        /* Figma list items use a transparent "M" spacer (~12px) */
        padding-left: 12px;
    }
}

.rul-footer .grid-row .grid-col .menu a:hover {
    color: var(--primary-color);
}

/* ===== FOOTER LOGOS SHARED ===== */
.rul-footer .footer-logos-title {
    font-family: 'Open Sans', sans-serif;
    font-size: 14.6px;
    font-weight: 600;
    line-height: 20px;
    color: #fff;
    margin: 0 0 16px;
}

.rul-footer .footer-logos-title-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.25s linear;
}

.rul-footer .footer-logos-title-link:hover {
    color: var(--primary-color);
}

/* =====================================================
   COMPLIANCE & CERTIFICATION + PARTNERSHIPS ROW
   ===================================================== */
.rul-footer .footer-logos-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 139px;
    padding: 48px 0;
}

@media screen and (max-width: 1100px) {
    .rul-footer .footer-logos-row {
        flex-direction: column;
        gap: 48px;
        padding-top: 6px;
    }
}

@media screen and (max-width: 767px) {
    /* .rul-footer .footer-logos-row {
        padding: 24px 0;
        gap: 24px;
    } */
    .rul-footer .footer-compliance,
    .rul-footer .footer-partnerships {
        width: 100%;
    }
}

/* --- Compliance block: Figma width 560px --- */
.rul-footer .footer-compliance {
    flex: 0 0 auto;
    width: 560px;
    min-width: 0;
}

@media screen and (max-width: 1200px) {
    .rul-footer .footer-compliance { width: auto; flex: 0 1 auto; }
}

.rul-footer .footer-cert-badges {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: nowrap;
}

.rul-footer .footer-cert-item {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

/* Each badge constrained to a fixed box */
.rul-footer .footer-cert-badges img {
    display: block;
    flex-shrink: 0;
    object-fit: contain;
    opacity: 0.9;
}

@media screen and (min-width: 768px) {
    .rul-footer .footer-cert-badges > *:nth-child(1) img { width: 74px;  height: 65px; }  /* GDPR */
    .rul-footer .footer-cert-badges > *:nth-child(2) img { width: 80px;  height: 70px; }  /* ISO 9001 */
    .rul-footer .footer-cert-badges > *:nth-child(3) img { width: 80px;  height: 70px; }  /* ISO 27001 */
    .rul-footer .footer-cert-badges > *:nth-child(4) img { width: 80px;  height: 72px; }  /* SOC2 */
    .rul-footer .footer-cert-badges > *:nth-child(5) img { width: 148px; height: 68px; }  /* PCI DSS */
}

@media screen and (max-width: 767px) {
    .rul-footer .footer-compliance {
        width: 100%;
    }
    .rul-footer .footer-cert-badges,
    .rul-footer .footer-cert-labels {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        width: 100%;
        column-gap: 6px;
        justify-items: start;
        align-items: start;
    }
    .rul-footer .footer-cert-badges {
        row-gap: 0;
    }
    .rul-footer .footer-cert-item {
        width: auto;
        justify-content: flex-start;
    }
    .rul-footer .footer-cert-badges > *:nth-child(1) img { width: 58px;  height: 51px; }
    .rul-footer .footer-cert-badges > *:nth-child(2) img { width: 64px;  height: 56px; }
    .rul-footer .footer-cert-badges > *:nth-child(3) img { width: 64px;  height: 56px; }
    .rul-footer .footer-cert-badges > *:nth-child(4) img { width: 64px;  height: 56px; }
    .rul-footer .footer-cert-badges > *:nth-child(5) img { width: auto; max-width: 100%; height: 52px; }
}
@media screen and (max-width: 380px) {
    .rul-footer .footer-cert-badges,
    .rul-footer .footer-cert-labels {
        column-gap: 2px;
    }
    .rul-footer .footer-cert-item {
        width: 100%;
        min-width: 0;
    }
    .rul-footer .footer-cert-badges > *:nth-child(1) img,
    .rul-footer .footer-cert-badges > *:nth-child(2) img,
    .rul-footer .footer-cert-badges > *:nth-child(3) img,
    .rul-footer .footer-cert-badges > *:nth-child(4) img,
    .rul-footer .footer-cert-badges > *:nth-child(5) img {
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: 40px;
        object-fit: contain;
    }
}

/* Labels row — widths match badge widths exactly */
@media screen and (min-width: 768px) {
    .rul-footer .footer-cert-labels {
        display: flex;
        align-items: center;
        gap: 24px;
        margin-top: 8px;
    }
}

.rul-footer .footer-cert-labels span {
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    letter-spacing: 0.14px;
    color: #c0c0c0;
    text-align: center;
    display: inline-block;
    white-space: nowrap;
}

@media screen and (min-width: 768px) {
    .rul-footer .footer-cert-labels span:nth-child(1) { width: 74px; }
    .rul-footer .footer-cert-labels span:nth-child(2) { width: 80px; }
    .rul-footer .footer-cert-labels span:nth-child(3) { width: 80px; }
    .rul-footer .footer-cert-labels span:nth-child(4) { width: 81px; }
    .rul-footer .footer-cert-labels span:nth-child(5) { width: 148px; }
}

@media screen and (max-width: 767px) {
    .rul-footer .footer-cert-labels {
        margin-top: 8px;
        row-gap: 0;
    }
    .rul-footer .footer-cert-labels span {
        white-space: normal;
        font-size: 9px;
        line-height: 12px;
        letter-spacing: 0;
        text-align: center;
        display: block;
    }
    .rul-footer .footer-cert-labels span:nth-child(1) { width: 58px; max-width: 100%; }
    .rul-footer .footer-cert-labels span:nth-child(2) { width: 64px; max-width: 100%; }
    .rul-footer .footer-cert-labels span:nth-child(3) { width: 64px; max-width: 100%; }
    .rul-footer .footer-cert-labels span:nth-child(4) { width: 64px; max-width: 100%; }
    .rul-footer .footer-cert-labels span:nth-child(5) { width: 100%; max-width: 112px; }
}

@media screen and (max-width: 380px) {
    .rul-footer .footer-cert-labels {
        display: none;
    }
}

/* --- Partnerships block: Figma width 780px --- */
.rul-footer .footer-partnerships {
    flex: 0 0 auto;
    width: 689px;
    min-width: 0;
}
@media (min-width: 1401px) and (max-width: 1600px) {
    .rul-footer .footer-partnerships {
        width: initial;
    }
    .rul-footer .partner-row:nth-child(2) .partner-logo-link:nth-child(3) img {
        transform: translateX(2px);
    }
}
@media screen and (max-width: 1400px) {
    .rul-footer .footer-partnerships { width: auto; flex: 1 1 auto; }
}

/* Figma 424:4151 — 4 shared columns so row 2 aligns to row 1 left edges
   (0 / 234 / 414 / 672 in the 780px frame). Row 2 has no 4th logo. */
.rul-footer .footer-partner-logos {
    display: grid;
    grid-template-columns: 30% 28.077% 22.077% 19.846%;
    justify-items: start;
    align-items: center;
    column-gap: 0;
    row-gap: 28px;
    width: 100%;
    opacity: 0.9;
}

.rul-footer .partner-row {
    display: contents;
}

.rul-footer .partner-logo-link {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

/* All partner logos — natural colors, slight opacity on dark bg */
.rul-footer .partner-logo-link img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
    opacity: 0.85;
    transition: opacity 0.25s;
}

.rul-footer .partner-logo-link:hover img { opacity: 1; }

/* Desktop sizes — must stay inside min-width or they override mobile */
@media screen and (min-width: 768px) {
    .rul-footer .partner-row:nth-child(1) .partner-logo-link:nth-child(1) img { width: 108px; height: 28px; } /* Microsoft */
    .rul-footer .partner-row:nth-child(1) .partner-logo-link:nth-child(2) img {
        width: 90px;
        height: 42px;
    }
    .rul-footer .partner-row:nth-child(1) .partner-logo-link:nth-child(3) img { width: 132px; height: 33px; } /* Google */
    .rul-footer .partner-row:nth-child(1) .partner-logo-link:nth-child(4) img { width: 108px; height: 28px; } /* Adobe */
    .rul-footer .partner-row:nth-child(2) .partner-logo-link:nth-child(1) img { width: 120px; height: 33px; } /* Moodle */
    .rul-footer .partner-row:nth-child(2) .partner-logo-link:nth-child(2) img { width: 138px; height: 32px; } /* WordPress */
    .rul-footer .partner-row:nth-child(2) .partner-logo-link:nth-child(3) img {
        width: inherit;
        height: 44px;
    }
    .rul-footer .partner-row:nth-child(2) .partner-logo-link:nth-child(4) img { height: 42px; } /* Salesforce */
}

/* Side-by-side with Compliance (narrower): keep 3-col grid */
@media screen and (min-width: 1101px) and (max-width: 1400px) {
    .rul-footer .footer-partner-logos {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 0;
        row-gap: 18px;
        align-items: center;
        width: 100%;
    }
    .rul-footer .partner-row {
        display: contents;
    }
    .rul-footer .partner-logo-link {
        width: 100%;
        min-width: 0;
        display: flex;
        justify-content: center;
    }
    /* Markup order, 3 per row: col1 left, col2 center, col3 right */
    .rul-footer .partner-row:nth-child(1) .partner-logo-link:nth-child(1),
    .rul-footer .partner-row:nth-child(1) .partner-logo-link:nth-child(4),
    .rul-footer .partner-row:nth-child(2) .partner-logo-link:nth-child(3) {
        justify-content: flex-start;
    }
    .rul-footer .partner-row:nth-child(1) .partner-logo-link:nth-child(3),
    .rul-footer .partner-row:nth-child(2) .partner-logo-link:nth-child(2) {
        justify-content: flex-end;
    }
    .rul-footer .partner-logo-link img {
        width: auto;
        max-width: 85%;
        height: 28px;
        object-fit: contain;
    }
}

/* Stacked full-width: fill first line before wrapping (no forced 3-col) */
@media screen and (max-width: 1100px) {
    .rul-footer .footer-divider {
        display: none;
    }
    .rul-footer .footer-partner-logos {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        column-gap: 47px;
        row-gap: 18px;
        width: 100%;
    }
    .rul-footer .partner-row {
        display: contents;
    }
    .rul-footer .partner-logo-link {
        width: auto;
        min-width: 0;
        display: inline-flex;
        justify-content: flex-start;
        flex: 0 0 auto;
    }
    .rul-footer .partner-logo-link img {
        width: auto;
        max-width: none;
        height: 28px;
        object-fit: contain;
    }

    .rul-footer .footer-recognized-logos img {
        width: initial !important;
        height: auto !important;
    }
}

@media screen and (max-width: 767px) {
    .rul-footer .footer-partner-logos {
        column-gap: 50px;
        row-gap: 24px;
        justify-content: flex-start;
    }
    .rul-footer .partner-logo-link img {
        height: auto;
    }
}

/* =====================================================
   RECOGNIZED BY + REVIEWS ROW
   ===================================================== */
.rul-footer .footer-recognition-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 48px;
    padding: 48px 0;
}

@media screen and (max-width: 1100px) {
    .rul-footer .footer-recognition-row {
        flex-direction: column;
        gap: 48px;
        padding-top: 0;
    }
}

@media screen and (max-width: 767px) {
    .rul-footer .footer-recognition-row {
        padding-bottom: 16px;
    }
    .rul-footer .footer-recognized {
        width: 100%;
        flex: 1 1 100%;
        max-width: 100%;
    }
}

/* Recognized By */
.rul-footer .footer-recognized { flex: 1 1 auto; min-width: 0; }

.rul-footer .footer-recognized-logos {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
@media (min-width: 1400px) {
    .rul-footer .footer-recognized-logos {
        gap: 59px;
    }
}

.rul-footer .recognized-row {
    display: contents;
}

.rul-footer .recognized-logo-link {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

/* Each recognition logo constrained by Figma dimensions — natural colors */
.rul-footer .footer-recognized-logos img {
    display: block;
    flex-shrink: 0;
    object-fit: contain;
    opacity: 0.85;
}

@media screen and (min-width: 768px) {
    .rul-footer .recognized-row--top > *:nth-child(1) img { width: 130px; height: 49px; }
    .rul-footer .recognized-row--top > *:nth-child(2) img { width: 118px; height: 49px; }
    .rul-footer .recognized-row--top > *:nth-child(3) img { width: 73px;  height: 58px; }
    .rul-footer .recognized-row--top > *:nth-child(4) img { width: 63px;  height: 59px; }
    .rul-footer .recognized-row--bottom > *:nth-child(1) img { width: 46px;  height: 57px; }
    .rul-footer .recognized-row--bottom > *:nth-child(2) img { width: 111px; height: 49px; }
    .rul-footer .recognized-row--bottom > *:nth-child(3) img { width: 59px;  height: 59px; }
}

@media screen and (min-width: 768px) and (max-width: 1100px) {
    .rul-footer .footer-recognized-logos {
        gap: 18px 47px;
    }
}

@media screen and (max-width: 767px) {
    .rul-footer .footer-recognized-logos {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        column-gap: 30px;
        row-gap: 16px;
        width: 100%;
    }
    .rul-footer .recognized-row {
        display: contents;
    }
    .rul-footer .recognized-logo-link {
        display: inline-flex;
        align-items: center;
        flex: 0 0 auto;
    }
    .rul-footer .footer-recognized-logos img {
        width: auto;
        max-width: none;
        object-fit: contain;
        flex: 0 0 auto;
        height: 42px !important;
    }
    .rul-footer .recognized-row--top > *:nth-child(1) img { width: 88px; height: 33px; }
    .rul-footer .recognized-row--top > *:nth-child(2) img { width: 80px; height: 33px; }
    .rul-footer .recognized-row--top > *:nth-child(3) img { width: 49px; height: 39px; }
    .rul-footer .recognized-row--top > *:nth-child(4) img { width: 43px; height: 40px; }
    .rul-footer .recognized-row--bottom > *:nth-child(1) img { width: 31px; height: 39px; }
    .rul-footer .recognized-row--bottom > *:nth-child(2) img { width: 75px; height: 33px; }
    .rul-footer .recognized-row--bottom > *:nth-child(3) img { width: 40px; height: 40px; }
}
/* @media screen and (max-width: 375px) {
    .rul-footer .footer-recognized-logos {
        column-gap: 10px;
        row-gap: 16px;
    }
} */

/* Reviews */
.rul-footer .footer-reviews {
    flex: 0 0 auto;
    width: 280px;
}

@media screen and (max-width: 1100px) { .rul-footer .footer-reviews { width: 100%; } }

@media screen and (max-width: 767px) {
    .rul-footer .footer-review-logos { gap: 15px; }
    .rul-footer .footer-review-logos .footer-review-logo-link img,
    .rul-footer .footer-review-logos a img {
        width: auto;
        max-width: 103px;
        height: 40px;
    }
}

.rul-footer .footer-review-logos {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: nowrap;
}

.rul-footer .footer-review-logo-link,
.rul-footer .footer-review-logos a {
    display: block;
    flex: 0 0 auto;
}

/* Clutch / Glassdoor-style review badges */
.rul-footer .footer-review-logos .footer-review-logo-link img,
.rul-footer .footer-review-logos a img {
    width: auto;
    max-width: 128px;
    height: 50px;
    object-fit: contain;
    object-position: left;
    filter: none;
    display: block;
}

/* ===== COPYRIGHT ===== */
.rul-footer .footer-copyright {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 32px 4px 32px;
    gap: 12px;
    flex-wrap: wrap;
}

@media screen and (max-width: 767px) {
    .rul-footer .footer-copyright {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
        padding-bottom: 24px;
    }
}

.rul-footer .copyright-left-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-width: 0;
    flex: 1 1 auto;
}

.rul-footer .copyright-left,
.rul-footer .footer-copyright p {
    font-size: 14px;
    line-height: 18px;
    letter-spacing: 0.01em;
    color: #fff;
    margin: 0;
}

.rul-footer .copyright-right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.rul-footer .copyright-right a {
    font-size: 14px;
    line-height: 18px;
    letter-spacing: 0.01em;
    color: #fff;
    transition: color 0.25s linear;
}

.rul-footer .copyright-right a:hover { color: var(--primary-color); }

.rul-footer .copyright-right .sep {
    color: rgba(255, 255, 255, 0.5);
    font-size: 14px;
}

/* Appilian branding under copyright text (left column) */
.rul-footer .copyright-left-wrap .branding-text {
    margin: 0;
    padding: 0;
    font-size: 13px;
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.65);
    text-align: left;
}
.rul-footer .branding-text a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: underline;
}
.rul-footer .branding-text a:hover {
    color: var(--primary-color);
}

/* Header and Footer container max-width for large screens */
@media (min-width: 1700px) {
    .rul-footer > .container, header .container-fluid, .rul-header .container {
        max-width: 1600px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* ===== AI Chatbot ===== */
#cmply-root {
    bottom: 56px !important;
    right: 10px !important;
}
@media screen and (max-width: 575px) {
    #cmply-root {
        bottom: 105px !important;
    }
}

#cmply-bubble {
    background-color: rgb(234, 84, 0) !important;
}