/* ==========================================
   DIGIBIRD - FLOATING HEADER & CTA
   1rem = 10px
========================================== */

:root {
    --db-header-bg: #1E0E45;
    --db-header-height: 7.2rem;
}

/* ==========================================
   DESKTOP HEADER — existing Elementor header
========================================== */
@media (min-width: 768px) {
    body .elementor-location-header {
        z-index: 9990;
        transition: transform .3s ease, box-shadow .3s ease;
    }
    body .elementor-location-header.active {
        position: fixed !important;
        inset: 0 0 auto 0 !important;
        width: 100% !important;
        max-width: none !important;
        z-index: 9990 !important;
        background: #1e0e45 !important;
        background-image: none !important;
        box-shadow: 0 .4rem 2rem rgba(0,0,0,.15);
        transform: translateY(0);
    }
    body .elementor-location-header.active .db-main-header {
        min-height: 7.2rem !important;
        height: 7.2rem;
        background: #1e0e45 !important;
        background-image: none !important;
    }
    body .elementor-location-header.active.db-header-hidden {
        transform: translateY(-110%) !important;
        pointer-events: none;
        visibility: hidden;
    }
    /* The mobile bottom sheet must never be visible on desktop. */
    body .db-sheet, body .db-mobile-cta { display: none !important; }
}

/* ==========================================
   MOBILE CTA
========================================== */

.db-mobile-cta {
    display: none;
}

@media (max-width: 767px) {

    .db-mobile-cta {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 9991;

        display: flex;
        align-items: center;

        padding: 1.2rem 1.6rem;
        padding-bottom: calc(
            1.2rem + env(safe-area-inset-bottom, 0px)
        );

        background: #fff;
        box-shadow: 0 -.4rem 2rem rgba(0,0,0,.12);

        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(110%);

        transition:
            opacity .3s ease,
            transform .3s ease,
            visibility .3s ease;
    }

    .db-mobile-cta.is-visible {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .db-mobile-cta-button {
        display: block;
        width: 100%;
        min-height: 5.2rem;
        padding: 1.2rem 2rem;

        border: 0;
        border-radius: 10rem;

        background: var(--db-header-bg);
        color: #fff;

        font-family: inherit;
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 1.4;

        cursor: pointer;
    }
}

/* ==========================================
   BOTTOM SHEET
========================================== */

.db-sheet-source {
    display: none !important;
}

.db-sheet {
    position: fixed;
    inset: 0;
    z-index: 10000;

    visibility: hidden;
    pointer-events: none;
}

.db-sheet.is-open {
    visibility: visible;
    pointer-events: auto;
}

.db-sheet-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15,5,35,.7);
    opacity: 0;
    transition: opacity .3s ease;
}

.db-sheet.is-open .db-sheet-backdrop {
    opacity: 1;
}

.db-sheet-panel {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;

    width: 100%;
    max-width: 100%;
    max-height: 92vh;
    max-height: 92dvh;

    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    box-sizing: border-box;

    padding: 1.6rem;
    padding-bottom: calc(
        2rem + env(safe-area-inset-bottom, 0px)
    );

    background: #fff;
    border-radius: 2.4rem 2.4rem 0 0;

    transform: translateY(105%);
    transition: transform .35s cubic-bezier(.2,.8,.2,1);
}

.db-sheet.is-open .db-sheet-panel {
    transform: translateY(0);
}

.db-sheet-close {
    position: sticky;
    top: 0;
    z-index: 20;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 4rem;
    height: 4rem;
    margin-inline-start: auto;

    border: 0;
    border-radius: 50%;

    background: #f2eff8;
    color: var(--db-header-bg);

    font-family: inherit;
    font-size: 2.6rem;
    cursor: pointer;
}

.db-sheet-content,
.db-sheet-content .db-lead,
.db-sheet-content .db-lead-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.db-sheet-content .db-lead-card {
    box-shadow: none;
}

body.db-sheet-open {
    overflow: hidden;
}

.db-sheet-close:focus-visible,
.db-mobile-cta-button:focus-visible,
.db-header-cta:focus-visible {
    outline: .3rem solid #8065d4;
    outline-offset: .3rem;
}

@media (min-width: 768px) {
    .db-sheet {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .elementor-location-header,
    .db-mobile-cta,
    .db-sheet-backdrop,
    .db-sheet-panel {
        transition: none !important;
    }
}


/* Desktop - keep original Elementor grid */
.db-steps-slider {
    width: 100%;
    min-width: 0;
}

/* Mobile carousel */
@media (max-width: 767px) {

    .db-steps-slider {
        display: block !important;
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
    }

    .db-steps-slider .db-steps-track {
        display: flex !important;
        align-items: stretch;
        gap: 0 !important;
        width: 100%;
        min-width: 0;
    }

    .db-steps-slider .db-steps-track > .swiper-slide {
        display: flex;
        flex-direction: column;
        flex-shrink: 0;
        width: 82%;
        height: auto;
        box-sizing: border-box;
    }

    .db-steps-slider .db-steps-track > .swiper-slide > * {
        flex: 1;
    }

    .db-steps-slider .db-steps-pagination {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: .6rem;
        margin-top: 2.4rem;
    }

    .db-steps-slider .swiper-pagination-bullet {
        width: .7rem;
        height: .7rem;
        margin: 0 !important;
        border-radius: 50%;
        background: #c9c2d7;
        opacity: 1;
    }

    .db-steps-slider .swiper-pagination-bullet-active {
        width: 2rem;
        border-radius: 1rem;
        background: #1E0E45;
    }
}


@media (max-width: 767px) {

    .db-steps-slider {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .db-steps-slider .db-steps-track {
        display: flex !important;
        width: 100%;
        gap: 0 !important;
        direction: rtl;
    }

    .db-steps-slider .db-steps-track > .swiper-slide {
        flex-shrink: 0 !important;
        min-width: 0 !important;
        max-width: none !important;
        box-sizing: border-box;
    }
}




@media (max-width: 767px) {

    /* Menu overlay */
    .db-mobile-menu .elementor-nav-menu--dropdown {
        position: fixed !important;
        inset: 0 !important;
        top: 0 !important;
        right: 0 !important;
        left: 0 !important;

        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;

        max-height: none !important;
        margin: 0 !important;

        padding: 10rem 2.4rem 3rem;
        box-sizing: border-box;

        background: #252525 !important;
        overflow-y: auto;
        overscroll-behavior: contain;

        z-index: 9998;
    }

    /* Links */
    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-nav-menu {
        display: flex;
        flex-direction: column;
        width: 100%;
    }

    .db-mobile-menu .elementor-nav-menu--dropdown
    .menu-item {
        width: 100%;
        border-bottom: 1px solid rgba(255,255,255,.16);
    }

    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-item {
        display: flex;
        align-items: center;
        justify-content: space-between;

        min-height: 6.2rem;
        padding: 1.4rem 0;

        background: transparent !important;
        color: #fff !important;

        font-family: inherit;
        font-size: 1.8rem;
        font-weight: 400;
    }

    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-item::after {
        content: "‹";
        position: static;
        display: inline-block;

        width: auto;
        height: auto;

        background: none !important;
        opacity: .65;

        font-size: 2.4rem;
        line-height: 1;
    }

    /* Menu toggle */
    .db-mobile-menu .elementor-menu-toggle {
        position: relative;
        z-index: 10001;
        background: transparent !important;
    }

    .db-mobile-menu .elementor-menu-toggle.elementor-active {
        position: fixed;
        top: 2.4rem;
        left: 2.4rem;

        width: 3.6rem;
        height: 3.6rem;

        display: flex;
        align-items: center;
        justify-content: center;

        border-radius: 50%;
        background: #444 !important;
        color: #fff !important;
    }

    .db-mobile-menu .elementor-menu-toggle
    .elementor-menu-toggle__icon--close {
        fill: #fff;
        width: 1.5rem;
        height: 1.5rem;
    }

    /* Keep menu above page content */
    .elementor-location-header:has(
        .db-mobile-menu .elementor-menu-toggle.elementor-active
    ) {
        z-index: 9999 !important;
    }
}



/* ==========================================
   DIGIBIRD MOBILE MENU
========================================== */

@media (max-width: 767px) {

    /* Header above the page */
    body.db-menu-is-open .elementor-location-header {
        z-index: 99999 !important;
    }

    /* Full screen overlay */
    .db-mobile-menu .elementor-nav-menu--dropdown {
        position: fixed !important;
        inset: 0 !important;
        top: 0 !important;
        right: 0 !important;
        left: 0 !important;

        display: flex !important;
        flex-direction: column;

        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        max-height: none !important;

        margin: 0 !important;
        padding: 2.4rem 2.2rem
            calc(2.4rem + env(safe-area-inset-bottom, 0px)) !important;

        box-sizing: border-box;

        background-color: #252525 !important;
        background-image: url('/wp-content/uploads/2026/11/g-pattern-diagonal-35%C2%B0.png') !important;
        background-position: center;
        background-repeat: no-repeat;
        background-size: cover;

        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;

        z-index: 99998 !important;
    }

    /* Hide dropdown when Elementor closes it */
    .db-mobile-menu .elementor-nav-menu--dropdown[aria-hidden="true"] {
        display: none !important;
    }

    /* Logo */
    .db-menu-top {
        display: flex;
        justify-content: flex-end;
        align-items: center;

        flex-shrink: 0;
        min-height: 4rem;
        padding-left: 5rem;
    }

    .db-menu-logo img {
        display: block;
        width: 9rem;
        height: auto;
    }

    /* Navigation */
    .db-mobile-menu .elementor-nav-menu--dropdown
    > .elementor-nav-menu {
        display: flex !important;
        flex-direction: column;

        flex-shrink: 0;
        width: 100%;

        margin: 3.2rem 0 0 !important;
        padding: 0 !important;

        background: transparent !important;
    }

    .db-mobile-menu .elementor-nav-menu--dropdown
    .menu-item {
        width: 100%;
        margin: 0 !important;
        border-bottom: 1px solid rgba(255,255,255,.2);
        background: transparent !important;
    }

    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-item {
        display: flex !important;
        align-items: center;
        justify-content: space-between;

        width: 100%;
        min-height: 6rem;
        padding: 1.2rem 0 !important;

        box-sizing: border-box;
        background: transparent !important;

        color: #fff !important;
        font-family: Heebo, sans-serif !important;
        font-size: 1.8rem !important;
        font-weight: 400 !important;
        line-height: 1.4 !important;
        text-align: right;
        text-decoration: none;
    }

    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-item:hover,
    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-item:focus,
    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-item.elementor-item-active {
        background: transparent !important;
        color: #fff !important;
    }

    /* Left arrows for RTL navigation */
    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-item::before {
        display: none !important;
    }

    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-item::after {
        content: "" !important;
        position: static !important;

        display: block !important;
        flex: 0 0 auto;

        width: .8rem !important;
        height: .8rem !important;

        border: 0 !important;
        border-left: .25rem solid #fff !important;
        border-bottom: .25rem solid #fff !important;

        border-radius: 0 !important;
        background: transparent !important;

        opacity: 1 !important;
        transform: rotate(45deg);
    }

    /* Close button */
    .db-mobile-menu .elementor-menu-toggle.elementor-active {
        position: fixed !important;
        top: 2.4rem !important;
        left: 2.2rem !important;

        display: flex !important;
        align-items: center;
        justify-content: center;

        width: 3.6rem !important;
        height: 3.6rem !important;
        padding: 0 !important;

        border: 0 !important;
        border-radius: 50% !important;

        background: #454545 !important;
        color: #fff !important;

        z-index: 100001 !important;
    }

    .db-mobile-menu .elementor-menu-toggle.elementor-active
    .elementor-menu-toggle__icon--close {
        display: block;
        width: 1.6rem;
        height: 1.6rem;
        fill: #fff !important;
    }

    /* Meeting CTA */
    .db-mobile-menu .db-menu-meeting {
        display: flex !important;
        align-items: center;
        justify-content: center;

        flex-shrink: 0;
        width: 100% !important;
        min-height: 4.8rem !important;

        margin: 2.2rem 0 0 !important;
        padding: 1rem 2rem !important;

        border: none !important;
        border-radius: 10rem !important;

        background: #fff !important;
        background-image: none !important;

        color: #1e0e45 !important;
        font-family: Heebo, sans-serif !important;
        font-size: 1.6rem !important;
        font-weight: 700 !important;

        box-shadow: none !important;
        cursor: pointer;
    }

    .db-mobile-menu .db-menu-meeting:hover,
    .db-mobile-menu .db-menu-meeting:focus {
        background: #fff !important;
        color: #1e0e45 !important;
    }

    /* Footer */
    .db-menu-bottom {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;

        flex: 1 0 auto;
        min-height: 16rem;

        margin-top: 3rem;
        padding: 0 !important;
    }

    /* Owl */
    .db-menu-owl {
        display: block;

        width: 8rem !important;
        max-width: 100%;
        height: auto;

        margin: 0 0 2.2rem auto !important;
    }

    /* Social icons and language */
    .db-menu-footer {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        width: 100%;
        direction: ltr;
    }

    .db-menu-social {
        display: flex;
        align-items: center;
        gap: .8rem;
    }

    .db-menu-social a {
        display: inline-flex;
        align-items: center;
        justify-content: center;

        flex: 0 0 auto;
        width: 3.2rem;
        height: 3.2rem;
        padding: 0;

        border-radius: 50%;
        background: #454545;

        color: #fff !important;
        text-decoration: none;

        transition: background-color .2s ease;
    }

    .db-menu-social a:hover {
        background: #606060;
    }

    .db-menu-social svg {
        display: block;
        width: 1.6rem;
        height: 1.6rem;
        fill: currentColor;
    }

    .db-menu-language {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: .5rem;

        min-height: 3.2rem;
        padding: 0 1.2rem;

        border: 1px solid rgba(255,255,255,.6);
        border-radius: 10rem;

        background: transparent;
        color: #fff !important;

        font-family: Heebo, sans-serif;
        font-size: 1.3rem;
        font-weight: 500;
        text-decoration: none;
        white-space: nowrap;
    }

    .db-mobile-menu a:focus-visible,
    .db-mobile-menu button:focus-visible {
        outline: 2px solid #fff;
        outline-offset: 3px;
    }

    body.db-menu-is-open {
        overflow: hidden;
    }
}

/* Short screens */
@media (max-width: 767px) and (max-height: 700px) {

    .db-mobile-menu .elementor-nav-menu--dropdown
    > .elementor-nav-menu {
        margin-top: 1.5rem !important;
    }

    .db-mobile-menu .elementor-nav-menu--dropdown
    .elementor-item {
        min-height: 4.8rem;
    }

    .db-menu-bottom {
        min-height: 12rem;
    }
}



@media (max-width: 767px) {

    .dialog-type-light .dialog-close-button {
        display: flex !important;
        align-items: center;
        justify-content: center;

        top: 1.6rem !important;
        right: 1.6rem !important;

        width: 3.6rem;
        height: 3.6rem;

        padding: 0 !important;
        border: 1px solid #ff2c87 !important;
        border-radius: .8rem !important;

        background: #fff !important;
        color: #ff2c87 !important;

        font-size: 1.8rem !important;
        line-height: 1;
        box-shadow: none !important;

        z-index: 10;
    }

    .dialog-type-light .dialog-close-button:hover {
        background: #fff1f7 !important;
        color: #ff2c87 !important;
    }

    .dialog-type-light .dialog-close-button:focus-visible {
        outline: 2px solid #ff2c87;
        outline-offset: 3px;
    }
}



/* ==========================================
   MOBILE HEADER — single definitive state
========================================== */
@media (max-width: 767px) {
    body .elementor-location-header {
        position: fixed !important;
        inset: 0 0 auto 0 !important;
        width: 100% !important;
        z-index: 9999 !important;
        background: transparent !important;
        background-image: none !important;
    }
    body .elementor-location-header .db-main-header {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        background: transparent !important;
        background-image: none !important;
    }
    body .elementor-location-header.db-scrolled,
    body .elementor-location-header.db-scrolled .db-main-header {
        background: #1e0e45 !important;
        background-color: #1e0e45 !important;
        background-image: none !important;
    }
    body .elementor-location-header.db-scrolled {
        box-shadow: 0 .4rem 2rem rgba(0,0,0,.15) !important;
    }
    body.db-menu-is-open .elementor-location-header {
        z-index: 99999 !important;
    }
    /* A closed sheet must not appear in the footer or page flow. */
    body .db-sheet:not(.is-open) {
        visibility: hidden !important;
        pointer-events: none !important;
    }
}
/* Bottom Sheet - completely hidden when closed */
.db-sheet:not(.is-open) {
    display: none !important;
}

/* Bottom Sheet - visible only when opened on mobile */
@media (max-width: 767px) {
    .db-sheet.is-open {
        display: block !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 100000 !important;
    }
}

/* Never show the Bottom Sheet on desktop */
@media (min-width: 768px) {
    .db-sheet {
        display: none !important;
    }
}

/* Mobile CTA: hidden by default */
.db-mobile-cta {
    display: none !important;
}

/* Show only when JS activates it on mobile */
@media (max-width: 767px) {
    .db-mobile-cta.is-visible {
        display: flex !important;
    }
}
/* CTA button must fill the bottom bar (theme button styles override defaults). */
@media (max-width: 767px) {
    body .db-mobile-cta.is-visible .db-mobile-cta-button {
        display: block !important;
        flex: 1 1 100%;
        width: 100% !important;
        max-width: none !important;
        min-height: 5.2rem;
        background: var(--db-header-bg) !important;
        color: #fff !important;
        border: 0 !important;
        border-radius: 10rem !important;
    }
}

@media (min-width: 767px) {
.cky-btn.cky-btn-reject, .cky-btn.cky-btn-preferences {
	margin: 0 8px 0 8px;
}
}