/* ============================================================
   BRAVO MAIN CSS — loaded by functions.php after hello-elementor-child
   ============================================================ */

/* Montserrat — header typeface (Figma) */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');

/* Global gradient utilities */
.bravo-gradient-primary   { background: linear-gradient(90deg, #033F6B 0%, #0761A2 100%); }
.bravo-gradient-secondary { background: linear-gradient(290deg, rgba(94,202,218,0.45) 0%, #5ECADA 100%); }
.bravo-gradient-hero      { background: linear-gradient(0deg, #8062DE 0%, #FFFFFF 63%); }


/* ============================================================
   CSS CUSTOM PROPERTIES — header/footer design tokens
   Update all values to match Figma spec.
   ============================================================ */
:root {
    /* Colors */
    --bravo-header-bg:            #201d49;   /* jacarta/950 */
    --bravo-header-border:        rgba(255,255,255,0.08);
    --bravo-header-text:          #FFFFFF;
    --bravo-header-link:          #FFFFFF;
    --bravo-header-link-hover:    #C4B5FD;   /* Figma */
    --bravo-header-link-active:   #A78BFA;   /* Figma */
    --bravo-header-accent:        #A78BFA;   /* Blog item */

    /* CTA button */
    --bravo-cta-bg:               #43b9cd;   /* viking/400 */
    --bravo-cta-bg-hover:         #37a8bb;   /* viking/500 */
    --bravo-cta-text:             #FFFFFF;
    --bravo-cta-radius:           8px;       /* rounded-lg */
    --bravo-cta-padding:          10px 20px; /* py-2.5 px-5 */
    --bravo-cta-font-size:        14px;
    --bravo-cta-font-weight:      500;       /* Montserrat Medium */

    /* Elementor global colors */
    --bravo-grey-300:             #D1D5DB;   /* Grey 300 */

    /* Desktop dimensions */
    --bravo-header-height:        84px;      /* py-24 + logo-36 + py-24 */
    --bravo-logo-max-width:       129px;
    --bravo-logo-height:          36px;

    /* Tablet/Mobile dimensions */
    --bravo-header-height-mobile: 84px;
    --bravo-logo-width-tablet:    129px;
    --bravo-logo-width-mobile:    100px;

    /* Desktop nav */
    --bravo-nav-font-size:        16px;      /* text-base */
    --bravo-nav-font-weight:      500;       /* Montserrat Medium */
    --bravo-nav-item-px:          0px;
    --bravo-nav-item-py:          0px;
    --bravo-nav-gap:              32px;      /* gap-8 */

    /* Dropdown */
    --bravo-submenu-bg:           #FFFFFF;
    --bravo-submenu-text:         #201d49;   /* jacarta */
    --bravo-submenu-radius:       6px;
    --bravo-submenu-shadow:       0 1px 1px rgba(0,0,0,0.08);

    /* Search bar */
    --bravo-search-bg:            #FFFFFF;
    --bravo-search-text:          #1A1040;
    --bravo-search-placeholder:   #9CA3AF;
    --bravo-search-height:        52px;
    --bravo-search-icon-color:    #6B7280;

    /* Search results */
    --bravo-result-text:          #1A1040;
    --bravo-result-hover-bg:      #F3F0FF;
    --bravo-result-active-bg:     #EDE9FE;
    --bravo-result-active-text:   #4C1D95;

    /* Mobile label */
    --bravo-mobile-label-size:    14px;
    --bravo-mobile-label-weight:  500;

    /* Hamburger */
    --bravo-hamburger-size:       22px;      /* bar width */
    --bravo-hamburger-height:     2px;       /* bar thickness */
    --bravo-hamburger-gap:        5px;

    /* Content boxing
       Desktop  ≤1440px  → 1280px max content width
       Widescreen ≥1441px → 2272px max content width */
    --bravo-inner-max-desktop:    1280px;
    --bravo-inner-max-bigscreen:  2272px;
    --bravo-inner-px-desktop:     80px;
    --bravo-inner-px-tablet:      16px;     /* px-4 */
    --bravo-inner-px-mobile:      16px;     /* px-4 */

    /* Transitions */
    --bravo-transition:           0.25s ease;
}


/* ============================================================
   ELEMENTOR OVERRIDES — DESKTOP + WIDESCREEN
   Targets: "Header Desktop + BS" Theme Builder template.
   Selectors map to Elementor Advanced settings:
     .bravo-header-wrap     → root container (HTML tag: header)
     .bravo-nav-main        → nav-menu widget
     .bravo-logo-img        → theme-site-logo widget
     .bravo-btn-cta-desktop → button widget
   Tablet/Mobile rules belong in the separate mobile/tablet template.
   ============================================================ */


/* 1. Sticky positioning on the <header> element (Theme Builder wrapper).
   Applying sticky here — not on the inner .bravo-header-wrap — ensures the
   element stays in the document flow (no content overlap) and sticks on scroll.
   The inner container is the same height as #masthead, so sticky on it alone
   has no parent height to work against. */
#masthead.site-header,
.elementor-location-header {
    position: sticky;
    top: 0;
    z-index: 999;
    width: 100%;
}

/* 1b. Visual styles remain on the inner container */
.bravo-header-wrap {
    background-color: var(--bravo-header-bg);
    border-bottom: 1px solid var(--bravo-header-border);
    transition: box-shadow var(--bravo-transition);
}

/* .is-scrolled toggled by scroll listener in functions.php */
.bravo-header-wrap.is-scrolled {
    border-bottom-color: transparent;
    box-shadow: 0 2px 24px rgba(0, 0, 0, 0.28);
}


/* 2. Inner content wrapper — typeface fallback */
.bravo-header-wrap > .e-con-inner,
.bravo-header-wrap > .e-con > .e-con-inner {
    font-family: 'Montserrat', sans-serif;
}


/* 3. Logo — Figma: 129 × 36px */
.bravo-logo-img img,
.bravo-logo-img .elementor-image img {
    display: block;
    width: auto;
    max-width: var(--bravo-logo-max-width);
    height: var(--bravo-logo-height);
    object-fit: contain;
}


/* 4. Nav menu — top-level items
   text-shadow fakes bold on hover/active to avoid layout shift. */
.bravo-nav-main .elementor-nav-menu--main .elementor-item {
    font-family: 'Montserrat', sans-serif;
    font-size: var(--bravo-nav-font-size);
    font-weight: 500;                                /* fixed — avoids CLS on state change */
    color: var(--bravo-header-link);
    text-decoration: none;
    text-shadow: none;
    transition: color 0.2s ease-in-out, text-shadow 0.2s ease-in-out;
}

.bravo-nav-main .elementor-nav-menu--main .elementor-item:hover {
    color: var(--bravo-header-link-hover);
}

/* current page, ancestor, and parent-of-active states */
.bravo-nav-main .elementor-nav-menu--main .elementor-item-active,
.bravo-nav-main .elementor-nav-menu--main .current-menu-item > .elementor-item,
.bravo-nav-main .elementor-nav-menu--main .current-menu-ancestor > .elementor-item,
.bravo-nav-main .elementor-nav-menu--main .current-menu-parent > .elementor-item {
    color: var(--bravo-header-link-active);
    font-weight: 700;
}

/* Ancestor active — JS-applied class; !important overrides Elementor's elementor-item styles */
.bravo-nav-main a.bravo-ancestor-active {
    color: var(--bravo-header-link-active) !important;
    font-weight: 700 !important;
}
.bravo-nav-main a.bravo-ancestor-active .sub-arrow svg,
.bravo-nav-main a.bravo-ancestor-active .sub-arrow i {
    color: var(--bravo-header-link-active) !important;
    fill: var(--bravo-header-link-active) !important;
}


/* Blog item accent (WP menu CSS class: bravo-mi-blog) */
.bravo-nav-main .bravo-mi-blog > .elementor-item {
    color: var(--bravo-header-accent);
}
.bravo-nav-main .bravo-mi-blog > .elementor-item:hover {
    color: var(--bravo-header-link-hover);
}


/* 5. Submenu arrow — rotation transition only; size/color set in Elementor panel */
.bravo-nav-main .sub-arrow svg,
.bravo-nav-main .sub-arrow i {
    transform-origin: center center;
    transition: transform 0.25s ease-in-out;
}

.bravo-nav-main .menu-item-has-children:hover > a .sub-arrow svg,
.bravo-nav-main .menu-item-has-children:hover > a .sub-arrow i {
    transform: rotate(180deg);
}


/* 6. Dropdown
   min-width !important overrides SmartMenus computed inline width.
   overflow:hidden clips children to border-radius. */
.bravo-nav-main .elementor-nav-menu--dropdown {
    border-radius: var(--bravo-submenu-radius);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    min-width: 220px !important;                     /* overrides SmartMenus inline width */
    box-sizing: border-box;
}

/* Elementor uses .elementor-sub-item on dropdown links (not .elementor-item) */
.bravo-nav-main .elementor-nav-menu--dropdown .elementor-sub-item {
    font-family: 'Montserrat', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: var(--bravo-submenu-text);
    background-color: var(--bravo-submenu-bg);
    padding: 10px 16px;
    display: block;
    white-space: nowrap;
    box-sizing: border-box;
    width: 100%;
}

.bravo-nav-main .elementor-nav-menu--dropdown .elementor-sub-item:hover {
    color: #4C1D95;                                  /* violet-900 */
    background-color: #F3F0FF;                       /* violet-50 */
    font-weight: 500;
    white-space: nowrap;
}

.bravo-nav-main .elementor-nav-menu--dropdown li {
    border-bottom: 1px solid #EDE9FE;                /* violet-100 */
}
.bravo-nav-main .elementor-nav-menu--dropdown li:last-child {
    border-bottom: none;
}



/* 7. CTA button — Figma: viking/400 #43b9cd, 8px radius */
.bravo-btn-cta-desktop .elementor-button {
    background-color: var(--bravo-cta-bg);
    color: var(--bravo-cta-text);
    border-radius: var(--bravo-cta-radius);
    padding: var(--bravo-cta-padding);
    font-family: 'Montserrat', sans-serif;
    font-size: var(--bravo-cta-font-size);
    font-weight: var(--bravo-cta-font-weight);
    line-height: 1.5;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color var(--bravo-transition);
    border: none;
}

.bravo-btn-cta-desktop .elementor-button:hover {
    background-color: var(--bravo-cta-bg-hover);    /* viking/500 */
    color: var(--bravo-cta-text);
}


/* ============================================================
   APP DOWNLOAD BUTTONS
   Shortcode: [bravo_app_buttons apple="URL" google="URL" huawei="URL"]
   ============================================================ */

.bravo-app-buttons {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.bravo-app-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 32px;
    padding: 4px 6px;
    border-radius: 6px;
    border: 1px solid #ffffff;
    text-decoration: none;
    background-color: transparent;
    transition: background-color var(--bravo-transition);
    flex-shrink: 0;
}

/* hover uses Elementor Global Color Grey 300 — keep in sync with Site Settings */
.bravo-app-btn:hover {
    background-color: var(--bravo-grey-300, #D1D5DB);
    border-color: var(--bravo-grey-300, #D1D5DB);
}

/* Variante outline — para página de contactos
   Default: contorno Primary Mid (#302D71), fundo transparente
   Hover: fundo Primary Mid, texto/ícone Grey 50 (#F9FAFB) */
.bravo-app-buttons--outline .bravo-app-btn {
    border-color: #302D71;
    color: #302D71;
    background-color: transparent;
}

.bravo-app-buttons--outline .bravo-app-btn:hover {
    background-color: #302D71;
    border-color: #302D71;
    color: #F9FAFB;
}

.bravo-app-buttons--outline .bravo-app-btn__label,
.bravo-app-buttons--outline .bravo-app-btn__store {
    color: currentColor;
}

.bravo-app-btn__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.bravo-app-btn__text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.bravo-app-btn__label {
    display: block;
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 8px;
    font-weight: 400;
    line-height: 8px;
    white-space: nowrap;
}

.bravo-app-btn__store {
    display: block;
    color: #ffffff;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 15px;
    white-space: nowrap;
}

/* Lock body scroll when mobile menu is open */
body.bravo-menu-open {
    overflow: hidden;
}

/* ============================================================
   MOBILE/TABLET HEADER — .menu-mobile nav scope
   Applied via Elementor CSS Class on the mobile/tablet header container.
   ============================================================ */

/* Submenu color tokens — edit values here */
:root {
    --bravo-mobile-submenu-bg:    #3D2D71; /* Primary Mid */
    --bravo-mobile-submenu-color: #A5B4FC;
}

/* Hide active top-level item (WP adds current-menu-item / current_page_item to <li>) */
.menu-mobile .elementor-nav-menu > li.current-menu-item,
.menu-mobile .elementor-nav-menu > li.current_page_item {
    display: none;
}

/* Arrow icon in span.sub-arrow — flex space-between pushes it right */
.menu-mobile .menu-item-has-children > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.menu-mobile .menu-item-has-children > a .sub-arrow {
    flex-shrink: 0;
    transition: transform var(--bravo-transition, 0.25s ease);
}

/* SmartMenus sets aria-expanded="true" on open — rotate arrow to match */
.menu-mobile .menu-item-has-children > a[aria-expanded="true"] .sub-arrow {
    transform: rotate(180deg);
}


/* Level-2 submenu — !important overrides Elementor/SmartMenus inline styles */
.menu-mobile .sub-menu {
    background-color: var(--bravo-mobile-submenu-bg) !important;
    border-top:    1px solid #6B7280 !important;
    border-bottom: 1px solid #6B7280 !important;
}

/* Strip dividers Elementor may inject between child items */
.menu-mobile .sub-menu li {
    border-top:    none !important;
    border-bottom: none !important;
    margin-left:   0    !important;
}

/* 16px left indent aligns child text with parent level */
.menu-mobile .sub-menu .elementor-sub-item {
    padding-left: 16px !important;
    margin-left:  0    !important;
}

.menu-mobile .sub-menu .elementor-sub-item {
    color: var(--bravo-mobile-submenu-color);
}

.menu-mobile .sub-menu .elementor-sub-item:hover,
.menu-mobile .sub-menu .current-menu-item .elementor-sub-item {
    color: #ffffff;
}

/* ============================================================
   LINK UTILITIES
   ============================================================ */

/* Unavailable link (e.g. unpublished PDF) — blocks pointer events */
.bravo-link-disabled {
    opacity: 0.45;
    pointer-events: none;
    cursor: not-allowed;
}

/* download="" attribute injected at runtime by JS in functions.php */
.bravo-link-download {
    cursor: pointer;
}

/* ============================================================
   BRAVO SEARCH — live search via WP REST API
   HTML: Elementor HTML widget — see elementor/snippets/bravo-search.html
   ============================================================ */

.bravo-search {
    position: relative;
    width: 100%;
    font-family: 'Montserrat', sans-serif;
}

.bravo-search__bar {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    background: #ffffff !important;
    border-radius: 6px !important;
    padding: 8px 16px !important;
    margin: 0 !important;
    border: 1px solid #D1D5DB !important;     /* Gray-300 */
    box-shadow: 0 1px 2px rgba(0,0,0,0.08) !important;
    min-height: 42px !important;
    transition: border-radius 0.15s ease, border-bottom-color 0.15s ease;
}

/* Fuse bar with results panel when open */
.bravo-search.has-results .bravo-search__bar {
    border-radius: 6px 6px 0 0 !important;
    border-bottom-color: #E5E7EB !important;
    box-shadow: none !important;
}

.bravo-search__icon {
    flex-shrink: 0;
    color: #3D359E;                           /* violet — Figma */
}

.bravo-search__input {
    flex: 1;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    font-family: inherit;
    font-size: 14px;
    font-weight: 400;
    color: #3D359E;                           /* violet — Figma */
    line-height: 1.25;
    padding: 0 !important;
    -webkit-appearance: none;
    appearance: none;
}

.bravo-search__input::placeholder {
    color: #3D359E;
    opacity: 0.55;
}

/* Clear button — hidden until input has value */
.bravo-search__clear {
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 14px !important;
    height: 14px !important;
    min-width: unset !important;
    min-height: unset !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    padding: 0 !important;
    color: #3D359E !important;               /* violet — Figma */
    box-shadow: none !important;
    line-height: 1 !important;
    opacity: 0.7;
    transition: opacity 0.15s ease;
}

.bravo-search__clear:hover {
    opacity: 1 !important;
    background: transparent !important;
}

.bravo-search__clear[hidden] { display: none !important; }

/* Results panel — flush below bar; border-top removed to fuse edges */
.bravo-search__results {
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    margin: 0 !important;
    padding-bottom: 8px !important;
    background: #ffffff !important;
    border: 1px solid #D1D5DB !important;    /* Gray-300 */
    border-top: none !important;
    border-radius: 0 0 6px 6px !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08) !important;
    overflow: hidden;
    z-index: 1000;
}

.bravo-search__results[hidden] { display: none !important; }

.bravo-search__list {
    list-style: none;
    margin: 0;
    padding: 4px 0 0;
}

.bravo-search__item { margin: 0; }

/* Figma: 48px left indent (32px outer + 16px inner) */
.bravo-search__link {
    display: block;
    padding: 8px 16px 8px 48px;
    font-size: 14px;
    font-weight: 400;
    color: #9CA3AF;                          /* Gray-400 */
    text-decoration: none;
    line-height: 1.25;
    transition: color 0.12s ease, font-weight 0.12s ease;
}

.bravo-search__link:hover,
.bravo-search__link--active {
    color: #8062DE !important;
    font-weight: 700 !important;
    background: transparent;
}

@media screen and (max-width: 767px) {
    .bravo-search__link {
        padding-left: 24px;
    }
}

/* ── Search: type badges ─────────────────────────────────── */
.bravo-search__link {
    display: flex;
    align-items: center;
    gap: 10px;
}

.bss-badge {
    flex-shrink: 0;
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 100px;
    line-height: 1.5;
}

.bss-badge--post {
    background: #EDE9FE;
    color: #4C1D95;
}

.bss-badge--cat {
    background: #DBEAFE;
    color: #1E40AF;
}

.bss-title {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Search: empty state ─────────────────────────────────── */
.bravo-search__empty {
    padding: 14px 16px;
    font-size: 13px;
    color: #6B7280;
    list-style: none;
}

/* ── Search: "Ver todos" footer ──────────────────────────── */
.bravo-search__footer {
    border-top: 1px solid #F3F4F6;
    list-style: none;
}

.bravo-search__all {
    display: block;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 600;
    color: #302D71 !important;
    text-decoration: none !important;
    text-align: right;
    transition: background 0.15s;
}

.bravo-search__all:hover {
    background: #F3F0FF;
    color: #201d49 !important;
}

/* ── .bravo-tabs — scope for Elementor Pro nested Tabs widget (CSS Class on widget) ── */

/* Force single-row layout; Elementor Pro generates flex-wrap:wrap via dynamic CSS. */
.bravo-tabs .e-n-tabs-heading {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin-bottom: 24px;
    overflow-x: auto;          /* scrollable fallback on very narrow viewports */
    scrollbar-width: none;     /* Firefox */
    -ms-overflow-style: none;  /* IE/Edge */
}
.bravo-tabs .e-n-tabs-heading::-webkit-scrollbar { display: none; }

.bravo-tabs .e-n-tab-title {
    flex: 1 1 0 !important;
    width: auto !important;      /* override any Elementor inline width */
    min-width: 0 !important;     /* allow shrink below intrinsic width */
    max-width: none !important;
    border-radius: 0 !important; /* reset; corners applied per-position below */
    text-align: center !important;
}

/* Round only the outer corners of the first and last tab (button-group pattern). */
.bravo-tabs .e-n-tabs-heading .e-n-tab-title:first-child {
    border-radius: 8px 0 0 8px !important;
}
.bravo-tabs .e-n-tabs-heading .e-n-tab-title:last-child {
    border-radius: 0 8px 8px 0 !important;
}

.bravo-tabs .e-n-tab-title[aria-selected="true"],
.bravo-tabs .e-n-tab-title:hover {
    background: #302D71 !important;
    color: #F9FAFB !important;
}

/* Elementor injects a pseudo-element underline indicator; suppress it. */
.bravo-tabs .e-n-tab-title .e-n-tab-title-inner-text::after,
.bravo-tabs .e-n-tab-title::after { display: none !important; }

/* Stack the two <span> children injected by wrapLastWords() so the last word sits on its own line. */
.bravo-tabs .e-n-tab-title-inner-text {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

/* ── Mobile custom dropdown — injected by bravo-tabs-mobile.js ── */

/* Hidden above the mobile breakpoint. */
.bravo-tabs-dd-wrap { display: none; }

@media (max-width: 767px) {
    /* Native tab heading replaced by the JS-injected custom dropdown. */
    .bravo-tabs .e-n-tabs-heading { display: none !important; }

    .bravo-tabs-dd-wrap {
        display: block;
        width: 100%;
        margin-bottom: 20px;
        box-sizing: border-box;
    }

    /* Trigger button — matches Figma Select Input (Large / Default).
       !important needed to override Elementor's active-tab colour cascade. */
    .bravo-dd__trigger {
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        box-sizing: border-box;
        padding: 14px 16px !important;
        background: #F9FAFB !important;
        border: none !important;
        border-radius: 8px !important;
        outline: 1px solid #D1D5DB !important;
        outline-offset: -1px;
        color: #3D359E !important;
        font-size: 16px !important;
        font-family: inherit !important;
        font-weight: 400 !important;
        line-height: 24px !important;
        text-align: left !important;
        cursor: pointer;
    }

    /* Label — flex column so the last-word split spans stack vertically. */
    .bravo-dd__label {
        flex: 1;
        display: flex;
        flex-direction: column;
    }

    /* Chevron rotates 180° when the list is open. */
    .bravo-dd__chevron {
        flex-shrink: 0;
        margin-left: 10px;
        display: flex;
        align-items: center;
        transition: transform 0.2s ease;
    }
    .bravo-tabs-dd-wrap.is-open .bravo-dd__chevron {
        transform: rotate(180deg);
    }

    /* Options list — in normal flow so it pushes tab content downward. */
    .bravo-dd__list {
        list-style: none;
        margin: 4px 0 0;
        padding: 0;
        border-radius: 8px;
        outline: 1px solid #D1D5DB;
        outline-offset: -1px;
        overflow: hidden;
        background: #F9FAFB;
    }

    .bravo-dd__option {
        display: flex;
        flex-direction: column;        /* last-word split spans stack vertically */
        padding: 14px 16px;
        color: #3D359E;
        font-size: 16px;
        font-family: inherit;
        font-weight: 400;
        line-height: 24px;
        cursor: pointer;
    }

    .bravo-dd__option + .bravo-dd__option {
        border-top: 1px solid #D1D5DB;
    }

    .bravo-dd__option.is-active,
    .bravo-dd__option:hover {
        background: #302D71;
        color: #F9FAFB;
    }

    .bravo-tabs .e-n-tabs-content .e-n-tab-content:not([aria-hidden="false"]) {
        display: none;
    }
}

/* ── Sticky footer ─────────────────────────────────────────────
   margin-top:auto no footer empurra-o para o fundo sem depender
   da estrutura exata do DOM (funciona com Elementor Theme Builder).
──────────────────────────────────────────────────────────────── */
body {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
}

.elementor-location-footer {
    margin-top: auto;
}

/* ── WordPress Gallery nativa — fix overflow mobile ─────────────────── */
@media (max-width: 767px) {
    .gallery {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        gap: 8px;
    }

    .gallery-columns-3,
    .gallery-columns-4,
    .gallery-columns-5 {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .gallery-item {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        float: none !important;
    }

    .gallery-item img {
        width: 100% !important;
        height: auto !important;
        max-width: 100% !important;
        display: block;
    }
}

/* ── Página 404 — altura total sem scroll ────────────────────────────── */
:root {
    --bravo-footer-height: 260px;
}

.bravo-404-main {
    min-height: calc(100dvh - var(--bravo-header-height) - var(--bravo-footer-height));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

@media (max-width: 1199px) {
    :root {
        --bravo-footer-height: 320px;
    }
}

@media (max-width: 767px) {
    :root {
        --bravo-footer-height: 420px;
    }
}
