
}

/* Dropdown link styling */
.elementor-nav-menu--main .elementor-nav-menu--dropdown a {
    display: block;
    padding: 8px 16px;
    color: #0066B2;
    text-decoration: none;
}

/* Hover effect */
.elementor-nav-menu--main .elementor-nav-menu--dropdown a:hover {
    background-color: #0066B2;
    color: white;
}

/* Make sure header does not hide dropdown */
header, .elementor-location-header, .elementor-sticky--active {
    overflow: visible !important;
}

/* Header buttons font - consistent across all pages */
.elementor-nav-menu--main .elementor-item,
.elementor-nav-menu--main .elementor-item:link,
.elementor-nav-menu--main .elementor-item:visited {
    font-family: "Roboto Slab", serif !important;  /* matches ueber-uns page */
    font-weight: 500 !important;                   /* adjust if needed */
    font-size: 16px !important;                    /* adjust size if needed */
    text-transform: none !important;              /* optional: remove uppercase if applied */
}
/* Main navigation links */
.elementor-nav-menu--main .elementor-item,
.elementor-nav-menu--main .elementor-item:link,
.elementor-nav-menu--main .elementor-item:visited {
    font-family: "Roboto", sans-serif !important;
    font-weight: 400 !important;
    font-size: 16px !important; /* main menu size */
}

/* Dropdown (sub-menu) links — smaller */
.elementor-nav-menu--main .elementor-sub-item,
.elementor-nav-menu--main .elementor-sub-item:link,
.elementor-nav-menu--main .elementor-sub-item:visited {
    font-family: "Roboto", sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important; /* smaller font size */
}

/* Make homepage fonts match the header font */
body,
h1, h2, h3, h4, h5, h6,
p, a, button {
  font-family: "Roboto", "Helvetica Neue"
}
  /* ==============================
   Desktop Dropdown Styles
============================== */
.elementor-nav-menu .sub-menu {
    display: none; /* hide by default */
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 999;
    background-color: #fff;
    min-width: 180px;
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}
/* --------------------------
   Desktop Dropdown
-------------------------- */
.elementor-nav-menu .sub-menu {
    display: none; /* hide by default */
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 999;
    background-color: #fff;
    min-width: 180px;
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

@media (min-width: 1025px) {
    .elementor-nav-menu .menu-item-has-children:hover > .sub-menu {
        display: block;
        opacity: 1;
        transform: translateY(0);
    }
}

.elementor-nav-menu .sub-menu li a {
    padding: 10px 15px;
    color: #000;
    display: block;
    text-decoration: none;
}

/* --------------------------
   Mobile Dropdown
-------------------------- */
@media (max-width: 1024px) {
    .elementor-nav-menu .sub-menu {
        position: static; /* prevents overlapping hamburger */
        display: none;   /* hidden by default */
        opacity: 1;
        transform: none;
    }

    .elementor-nav-menu .menu-item-has-children > a {
        cursor: pointer;
        position: relative;
    }

    .elementor-nav-menu .menu-item-has-children > a::after {
        content: "▼";
        font-size: 0.7em;
        margin-left: 5px;
    }
}

/* --------------------------
   Hamburger Button Fix
-------------------------- */
.elementor-menu-toggle {
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 99999 !important;
}
/* 1. Make image full width */
.elementor-widget-image img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

/* 2. Accordion header - dark blue with white text */
.elementor-accordion .elementor-tab-title {
    background-color: #003366 !important; /* Dark Blue */
    color: #ffffff !important; /* White text */
    font-weight: 700 !important;
}

/* 3. Accordion header hover */
.elementor-accordion .elementor-tab-title:hover {
    background-color: #002244 !important; /* Slightly darker blue */
}

/* 4. Accordion icon color */
.elementor-accordion .elementor-accordion-icon i {
    color: #ffffff !important;
}

/* 5. Accordion content - light grey with black text */
.elementor-accordion .elementor-tab-content {
    background-color: #f1f1f1 !important; /* Light grey */
    color: #000000 !important; /* Black text */
}

/* 6. Ensure active tab content keeps correct style */
.elementor-accordion .elementor-tab-title.elementor-active {
    background-color: #003366 !important;
    color: #ffffff !important;
}
/* Make ONLY the main page image full width */
.elementor-widget-image[data-id="8b71f0e"] img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}

/* Accordion header - dark blue with white text */
.elementor-accordion .elementor-tab-title {
    background-color: #003366 !important; /* Dark Blue */
    font-weight: 700 !important;
}

/* Target the title link itself */
.elementor-accordion .elementor-tab-title .elementor-accordion-title {
    color: #ffffff !important; /* White text */
}

/* Accordion header hover */
.elementor-accordion .elementor-tab-title:hover {
    background-color: #002244 !important;
}

/* Accordion icon color */
.elementor-accordion .elementor-accordion-icon i {
    color: #ffffff !important;
}

/* Accordion content - light grey with black text */
.elementor-accordion .elementor-tab-content {
    background-color: #f1f1f1 !important;
    color: #000000 !important;
}

/* Active tab header stays dark blue with white text */
.elementor-accordion .elementor-tab-title.elementor-active .elementor-accordion-title {
    color: #ffffff !important;
}
/* Make ONLY the arrow image smaller */
.elementor-widget-image[data-id="f5b4e29"] img {
    width: 50px !important;   /* adjust size as needed */
    height: auto !important;
    display: block !important;
    margin: 10px 0 0 0;       /* optional: space above/below */
}
}
/* Make ONLY the arrow image smaller */
.elementor-widget-image[data-id="39945f8"] img {
    width: 50px !important;   /* adjust size as needed */
    height: auto !important;
    display: block !important;
    margin: 10px 0 0 0;       /* optional: space above/below */
}
/* ===============================
   Mobile Hamburger & Sub-menu Fix
=============================== */
@media (max-width: 1024px) {
    /* Main menu hidden by default */
    .elementor-nav-menu--main {
        display: none;
        flex-direction: column;
        transition: max-height 0.3s ease, opacity 0.3s ease;
        max-height: 0;
        overflow: hidden;
    }

    /* Show menu when active */
    .elementor-nav-menu--main.menu-active {
        display: flex;
        max-height: 1000px; /* large enough to show full menu */
        opacity: 1;
    }

    /* Sub-menus hidden by default */
    .elementor-nav-menu--main .menu-item-has-children > .sub-menu {
        display: none;
        flex-direction: column;
        padding-left: 15px;
    }

    /* Show sub-menu when parent is open */
    .elementor-nav-menu--main .menu-item-has-children.elementor-item-open > .sub-menu {
        display: flex;
    }

    /* Optional: rotate arrow when open */
    .elementor-nav-menu--main .menu-item-has-children.elementor-item-open > a::after {
        transform: rotate(180deg);
        transition: transform 0.3s ease;
    }

    .elementor-nav-menu--main .menu-item-has-children > a::after {
        content: "▼";
        font-size: 0.7em;
        margin-left: 5px;
        display: inline-block;
        transition: transform 0.3s ease;
    }
}
/* Fix mobile hamburger overlay & sticky header */
.elementor-location-header {
    position: relative; /* ensure sticky header doesn’t push hamburger */
    z-index: 9999;
}

.elementor-menu-toggle {
    position: relative !important;
    z-index: 99999 !important;
}
/* Hide sticky header nav and hamburger on mobile */
@media (max-width: 1024px) {
    .elementor-sticky--active .elementor-nav-menu__container,
    .elementor-sticky--active .elementor-menu-toggle {
        display: none !important;
    }
}
/* Make header sticky on mobile/tablet only */
@media (max-width: 1024px) {
    .elementor-location-header {
        position: fixed !important;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 9999;
        background-color: #fff; /* match your header background */
        box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* optional shadow */
    }

    /* Add spacing so content is not hidden under sticky header */
    body {
        padding-top: 80px; /* adjust to your header height */
    }

    /* Ensure mobile menu toggle works */
    .elementor-menu-toggle {
        pointer-events: auto !important;
        visibility: visible !important;
        opacity: 1 !important;
        z-index: 99999 !important;
    }

    /* Mobile menu expand/collapse */
    .elementor-nav-menu--main.menu-active {
        display: flex;
        flex-direction: column;
        max-height: 1000px;
        opacity: 1;
    }

    .elementor-nav-menu--main .menu-item-has-children.elementor-item-open > .sub-menu {
        display: flex;
        flex-direction: column;
        padding-left: 15px;
    }

    .elementor-nav-menu--main .menu-item-has-children > a::after {
        content: "▼";
        font-size: 0.7em;
        margin-left: 5px;
        display: inline-block;
        transition: transform 0.3s ease;
    }

    .elementor-nav-menu--main .menu-item-has-children.elementor-item-open > a::after {
        transform: rotate(180deg);
    }
}
/* Base button style */
.elementor-widget-button .elementor-button[href*="konto-eroeffnen"] {
    background-color: #0a1f5e !important;
    color: #ffffff !important;
    border: none !important;
    position: relative;
    overflow: hidden;
    transition: background-color 0.3s, color 0.3s;
}

/* Snake border effect using ::after */
.elementor-widget-button .elementor-button[href*="konto-eroeffnen"]::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 2px solid transparent; /* initially invisible */
    border-top-color: #ffffff; /* start drawing from top center */
    box-sizing: border-box;
    pointer-events: none;
    animation: draw-border 1s linear forwards;
    transform-origin: center;
    transition: all 0.3s;
    opacity: 0; /* hidden initially */
}

/* Show border on hover */
.elementor-widget-button .elementor-button[href*="konto-eroeffnen"]:hover::after {
    opacity: 1;
    animation: draw-border 0.8s linear forwards;
}

/* Keyframes for drawing border clockwise starting from top center */
@keyframes draw-border {
    0% {
        border-top-color: #ffffff;
        border-right-color: transparent;
        border-bottom-color: transparent;
        border-left-color: transparent;
    }
    25% {
        border-top-color: #ffffff;
        border-right-color: #ffffff;
    }
    50% {
        border-top-color: #ffffff;
        border-right-color: #ffffff;
        border-bottom-color: #ffffff;
    }
    75% {
        border-top-color: #ffffff;
        border-right-color: #ffffff;
        border-bottom-color: #ffffff;
        border-left-color: #ffffff;
    }
    100% {
        border-top-color: #ffffff;
        border-right-color: #ffffff;
        border-bottom-color: #ffffff;
        border-left-color: #ffffff;
    }
}

/* Hover background color */
.elementor-widget-button .elementor-button[href*="konto-eroeffnen"]:hover {
    background-color: #003366 !important;
    color: #ffffff !important;
}

/* Force dark blue background for the specific button */
.elementor-element-34d8b0d .elementor-button {
    background-color: #001f4d !important; /* dark blue */
    color: #ffffff !important; /* text color white */
    border: none !important;
}

/* Optional: hover effect */
.elementor-element-34d8b0d .elementor-button:hover {
    background-color: #003366 !important; /* slightly lighter dark blue */
    color: #ffffff !important;
}
/* Base style for dark blue buttons */
.btn_wrap .uc_more_btn {
    background-color: #0a1f5e !important;  /* dark blue */
    color: #ffffff !important;             /* white text */
    border: 1px solid #0a1f5e !important;
    padding: 10px 22px !important;
    border-radius: 6px !important;
    text-decoration: none !important;
    display: inline-block !important;
    font-weight: 500 !important;
    transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.5s ease !important;
    /* added transform transition for smooth float */
}

/* Hover effect: lighter blue + float up slower */
.btn_wrap .uc_more_btn:hover {
    background-color: #1a3a7b !important; /* lighter blue */
    border-color: #1a3a7b !important;
    color: #ffffff !important;
    transform: translateY(-4px) !important; /* subtle upward movement */
}
.uc_classic_content {
    display: flex !important;
    flex-direction: column !important;
    height: 100%; /* fill parent (set by JS) */
}

.uc_classic_content .uc_classic_content_container_holder {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.uc_classic_content .uc_classic_content_content {
    display: flex !important;
    flex-direction: column !important;
    flex-grow: 1 !important; /* fill remaining space */
}

.uc_classic_content .btn_wrap {
    margin-top: auto !important; /* button sticks to bottom */
}
/* Dark blue line on top of the card */
.uc_classic_content .uc_classic_content_border {
    display: block;
    width: 60px; /* adjust length if needed */
    height: 4px;  /* thickness */
    margin: 0 auto 15px auto; /* center and add bottom spacing */
    background: linear-gradient(to right, #0a1f5e, #d3d3d3); /* dark blue to light grey gradient */
    border-radius: 2px; /* optional, makes edges rounded */
}
/* Desktop */
@media(min-width: 1025px) {
    .custom-logo {
        max-width: 75% !important; /* shrink logo */
        height: auto !important;    /* maintain aspect ratio */
    }
}

/* Tablet */
@media(max-width: 1024px) {
    .custom-logo {
        max-width: 60% !important;
        height: auto !important;
    }
}

/* Mobile */
@media(max-width: 767px) {
    .custom-logo {
        max-width: 50% !important;
        height: auto !important;
    }
}
/* Shrink logo in all Elementor headers */
.elementor-location-header .elementor-widget-image img {
    max-width: 75% !important;
    height: auto !important;
}
.elementor-item .elementor-sub-menu-icon {
    margin-left: 9px; /* Adjust the space as needed */
}
/* Only change the background image for custom-1 section */
section.custom-1.elementor-element-57b1ef1f {
    background-image: url('https://www.leo-invest.de/wp-content/uploads/2023/04/vermoegen.jpg') !important;
    background-size: cover !important;
    background-position: center 35%!important;
    background-repeat: no-repeat !important;
}

/* Make overlay transparent if needed */
.custom-1 .elementor-background-overlay {
    background-color: rgba(0,0,0,0) !important;
}
/* Only change the background image for custom-1 section */
section.custom-2.elementor-element-67c83dcc {
    background-image: url('https://www.leo-invest.de/wp-content/uploads/2023/04/anlage.jpg') !important;
    background-size: cover !important;
    background-position: center 40%!important;
    background-repeat: no-repeat !important;
}

/* Make overlay transparent if needed */
.custom-2 .elementor-background-overlay {
    background-color: rgba(0,0,0,0) !important;
}
/* Reduce header section padding to original */
.elementor-element-7c0ceaa6.elementor-section {
    padding-top: 20px !important;    /* adjust to match original */
    padding-bottom: 20px !important; /* adjust to match original */
    min-height: 0 !important;
}

/* Make sure the form section has proper spacing */
.elementor-element-form-section {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}
/* Center the container horizontally and vertically */
.center-iframe-section {
    display: flex !important;
    justify-content: center;
    align-items: center;
    min-height: 80vh;  /* adjust for vertical spacing */
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Container box with spacing */
.cognito-iframe-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #fff;           /* box background */
    border-radius: 8px;         /* rounded corners */
    padding: 40px 20px;         /* <-- spacing inside the box */
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

/* Optional iframe styling */
.cognito-iframe-wrapper iframe {
    border-radius: 4px;        /* smaller corner radius for iframe itself */
    width: 100%;
    min-height: 200px;
}
/* Container that scales everything inside */
.scaled-iframe {
  transform: scale(1.2);           /* increase overall size, adjust as needed */
  transform-origin: top center;    /* anchor scaling at the top */
}

/* Keep layout responsive */
.cognito-iframe-wrapper {
  overflow: hidden;                /* prevents scrollbar clipping */
}
/* Fix top gap only on page 4085 */
.page-id-4085 .leo-portal-wrapper {
    margin-top: var(--header-height) !important;
}
/* Only affect this page */
.page-id-4085 .leo-portal-wrapper {
    height: calc(100vh - var(--header-height)) !important;
    padding: 0 !important;
    margin: 0 !important;
}

.page-id-4085 .leo-portal-iframe {
    height: 100% !important;
    display: block !important;
}
a[href*="impressum"],
a[href*="datenschutz"],
a[href*="rechtliche"] {
    color: #cccccc !important;
}

a[href*="impressum"]:hover,
a[href*="datenschutz"]:hover,
a[href*="rechtliche"]:hover {
    color: #ffffff !important;   /* white on hover */
}
