/**
 * D5HM Frontend Stylesheet — v1.3.0
 *
 * Only covers functionality NOT available in standard Divi 5.
 * Divi controls (background, height, sticky, logo max-height, link colours)
 * are NOT replicated here to avoid conflicts.
 *
 * @package D5HM
 */

/* ── CSS Custom Properties ──────────────────────────────────────────────── */
:root {
    /* Topbar scroll-away */
    --d5hm-topbar-away-speed:     300ms;
    --d5hm-topbar-away-ease:      ease;
    /* Top bar overrides (empty = inherit Divi) */
    --d5hm-topbar-bg:             ;
    --d5hm-topbar-color:          ;
    --d5hm-topbar-height:         ;
    --d5hm-topbar-fsize:          ;
    /* Social icons */
    --d5hm-social-color:          ;
    --d5hm-social-hover:          ;
    --d5hm-social-size:           ;
    --d5hm-social-bg:             transparent;
    --d5hm-social-radius:         0px;
    --d5hm-social-speed:          200ms;
    --d5hm-social-hover-scale:    1.0;
    --d5hm-social-hover-rotate:   0deg;
    /* Header shrink transition (injected by JS; these are fallback defaults) */
    --d5hm-header-shrink-speed:   0ms;
    --d5hm-header-shrink-ease:    ease;
    --d5hm-header-bg-speed:       0ms;
    /* Transparent header */
    --d5hm-transparent-bg:        rgba(0,0,0,0);
    --d5hm-transparent-color:     #ffffff;
    --d5hm-scroll-bg:             ;
    --d5hm-scroll-color:          ;
    /* Logo */
    --d5hm-logo-hover:            none;
    --d5hm-logo-scale:            1.1;
    --d5hm-logo-rotate:           0deg;
    --d5hm-logo-speed:            300ms;
    --d5hm-logo-ease:             ease;
    --d5hm-logo-anim-dur:         500ms;
    --d5hm-logo-anim-delay:       0ms;
    --d5hm-logo-anim-ease:        ease-out;
    /* Nav underline */
    --d5hm-nav-underline-style:   none;
    --d5hm-nav-underline:         #4a90d9;
    --d5hm-nav-underline-h:       2px;
    --d5hm-nav-active-style:      none;
    --d5hm-nav-indicator-color:   #4a90d9;
    --d5hm-nav-indicator-size:    3px;
    --d5hm-nav-speed:             200ms;
    --d5hm-nav-ease:              ease;
    /* Dropdown */
    --d5hm-dd-bg:                 ;
    --d5hm-dd-color:              ;
    --d5hm-dd-hover:              ;
    --d5hm-dd-hover-bg:           ;
    --d5hm-dd-anim:               none;
    --d5hm-dd-speed:              200ms;
    --d5hm-dd-ease:               ease;
    --d5hm-dd-accent:             transparent;
    --d5hm-dd-accent-h:           3px;
    /* Search */
    --d5hm-search-color:          ;
    --d5hm-search-hover:          ;
    --d5hm-search-size:           ;
    --d5hm-search-btn-bg:         #4a90d9;
    --d5hm-search-btn-color:      #ffffff;
    --d5hm-search-overlay-bg:     rgba(0,0,0,0.8);
    --d5hm-search-speed:          250ms;
    /* Cart */
    --d5hm-cart-color:            ;
    --d5hm-cart-hover:            ;
    --d5hm-cart-size:             ;
    --d5hm-cart-badge-bg:         #e74c3c;
    --d5hm-cart-badge-color:      #ffffff;
    --d5hm-cart-btn-bg:           #4a90d9;
    --d5hm-cart-btn-color:        #ffffff;
    --d5hm-cart-anim:             fade;
    --d5hm-cart-anim-speed:       200ms;
    /* Mobile */
    --d5hm-burger-color:          ;
    --d5hm-burger-hover:          ;
    --d5hm-burger-size:           ;
    --d5hm-burger-line-h:         2px;
    --d5hm-burger-spacing:        5px;
    --d5hm-burger-width:          24px;
    --d5hm-mobile-bg:             #2d3743;
    --d5hm-mobile-color:          #ffffff;
    --d5hm-mobile-overlay:        rgba(0,0,0,0.55);
    --d5hm-mobile-blur:           0px;
    --d5hm-mobile-ease:           ease;
    --d5hm-mobile-speed:          350ms;
    /* CTA */
    --d5hm-cta-bg:                #4a90d9;
    --d5hm-cta-color:             #ffffff;
    --d5hm-cta-hover-bg:          #2e6da4;
    --d5hm-cta-hover-color:       #ffffff;
    --d5hm-cta-speed:             200ms;
    --d5hm-cta-hover-shadow:      0 4px 14px rgba(74,144,217,0.4);
}

/* Overflow fix REMOVED from frontend.css — it was unconditionally overriding
   Divi's overflow on #main-header, .container, and #et-top-navigation, which:
   a) broke Divi's mobile layout (mobile_menu_bar hidden inside collapsed container)
   b) broke Divi's search animation (needs overflow:hidden on .container)
   The overflow fix for UberMenu dropdowns now lives only in class-d5hm-ubermenu.php
   output_critical_css(), scoped to @media (min-width:981px) desktop only. */

/* ── Transparent Header (not standard in Divi outside page settings) ─────── */
#main-header.d5hm-transparent-header {
    background-color: var(--d5hm-transparent-bg) !important;
    color: var(--d5hm-transparent-color) !important;
}
#main-header.d5hm-transparent-header.d5hm-scrolled {
    background-color: var(--d5hm-scroll-bg) !important;
    color: var(--d5hm-scroll-color) !important;
}

/* ── Social icon hover (scale + rotate — NOT in Divi) ───────────────────── */
#top-header .et-social-icons li a {
    display: inline-block;
    background-color: var(--d5hm-social-bg);
    border-radius: var(--d5hm-social-radius);
    transition: color var(--d5hm-social-speed) ease,
                background-color var(--d5hm-social-speed) ease,
                transform var(--d5hm-social-speed) ease;
}
#top-header .et-social-icons li a:hover {
    transform: scale(var(--d5hm-social-hover-scale)) rotate(var(--d5hm-social-hover-rotate));
}

/* ── Logo hover transition (NOT in Divi) ────────────────────────────────── */
#main-header #logo img,
#main-header .et_pb_logo_wrap img {
    transition:
        transform var(--d5hm-logo-speed) var(--d5hm-logo-ease),
        filter    var(--d5hm-logo-speed) var(--d5hm-logo-ease),
        opacity   var(--d5hm-logo-speed) var(--d5hm-logo-ease);
}

/* ── Entrance Animations ────────────────────────────────────────────────── */
@keyframes d5hm-kf-fade-in    { from{opacity:0} to{opacity:1} }
@keyframes d5hm-kf-slide-down { from{opacity:0;transform:translateY(-30px)} to{opacity:1;transform:none} }
@keyframes d5hm-kf-slide-up   { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:none} }
@keyframes d5hm-kf-slide-left { from{opacity:0;transform:translateX(-40px)} to{opacity:1;transform:none} }
@keyframes d5hm-kf-slide-right{ from{opacity:0;transform:translateX(40px)} to{opacity:1;transform:none} }
@keyframes d5hm-kf-zoom-in    { from{opacity:0;transform:scale(0.9)} to{opacity:1;transform:scale(1)} }
@keyframes d5hm-kf-zoom-out   { from{opacity:0;transform:scale(1.1)} to{opacity:1;transform:scale(1)} }
@keyframes d5hm-kf-flip-x     { from{opacity:0;transform:perspective(600px) rotateX(-90deg)} to{opacity:1;transform:none} }
@keyframes d5hm-kf-flip-y     { from{opacity:0;transform:perspective(600px) rotateY(-90deg)} to{opacity:1;transform:none} }
@keyframes d5hm-kf-bounce     { 0%{opacity:0;transform:translateY(-20px)} 60%{transform:translateY(5px)} 80%{transform:translateY(-3px)} 100%{opacity:1;transform:none} }
@keyframes d5hm-kf-rotate-in  { from{opacity:0;transform:rotate(-10deg) scale(0.95)} to{opacity:1;transform:none} }

.d5hm-entrance-fade-in    { animation: d5hm-kf-fade-in    var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-slide-down { animation: d5hm-kf-slide-down var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-slide-up   { animation: d5hm-kf-slide-up   var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-slide-left { animation: d5hm-kf-slide-left var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-slide-right{ animation: d5hm-kf-slide-right var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-zoom-in    { animation: d5hm-kf-zoom-in    var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-zoom-out   { animation: d5hm-kf-zoom-out   var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-flip-x     { animation: d5hm-kf-flip-x     var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-flip-y     { animation: d5hm-kf-flip-y     var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-bounce     { animation: d5hm-kf-bounce     var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }
.d5hm-entrance-rotate-in  { animation: d5hm-kf-rotate-in  var(--d5hm-header-anim-dur,600ms) var(--d5hm-header-anim-ease,ease-out) var(--d5hm-header-anim-delay,0ms) both; }

/* Logo entrance — same keyframes, logo-specific vars */
.d5hm-logo-entrance-fade-in    { animation: d5hm-kf-fade-in    var(--d5hm-logo-anim-dur) var(--d5hm-logo-anim-ease) var(--d5hm-logo-anim-delay) both; }
.d5hm-logo-entrance-slide-left { animation: d5hm-kf-slide-left var(--d5hm-logo-anim-dur) var(--d5hm-logo-anim-ease) var(--d5hm-logo-anim-delay) both; }
.d5hm-logo-entrance-slide-right{ animation: d5hm-kf-slide-right var(--d5hm-logo-anim-dur) var(--d5hm-logo-anim-ease) var(--d5hm-logo-anim-delay) both; }
.d5hm-logo-entrance-zoom-in    { animation: d5hm-kf-zoom-in    var(--d5hm-logo-anim-dur) var(--d5hm-logo-anim-ease) var(--d5hm-logo-anim-delay) both; }
.d5hm-logo-entrance-bounce     { animation: d5hm-kf-bounce     var(--d5hm-logo-anim-dur) var(--d5hm-logo-anim-ease) var(--d5hm-logo-anim-delay) both; }

/* ── Attention Animations (NOT in Divi) ─────────────────────────────────── */
@keyframes d5hm-pulse  { 0%,100%{transform:scale(1)} 50%{transform:scale(1.08)} }
@keyframes d5hm-shake  { 0%,100%{transform:translateX(0)} 20%,60%{transform:translateX(-5px)} 40%,80%{transform:translateX(5px)} }
@keyframes d5hm-bounce-a{0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
@keyframes d5hm-swing  { 0%,100%{transform:rotate(0)} 25%{transform:rotate(8deg)} 75%{transform:rotate(-8deg)} }
@keyframes d5hm-wobble { 0%,100%{transform:none} 15%{transform:translateX(-10px)rotate(-5deg)} 30%{transform:translateX(8px)rotate(3deg)} 45%{transform:translateX(-6px)} 60%{transform:translateX(4px)} 75%{transform:translateX(-2px)} }
@keyframes d5hm-flash  { 0%,100%{opacity:1} 50%{opacity:0.3} }
@keyframes d5hm-badge-pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.35)} }

.d5hm-attention-pulse  { animation: d5hm-pulse    2s ease-in-out infinite; }
.d5hm-attention-shake  { animation: d5hm-shake    1.2s ease-in-out infinite; }
.d5hm-attention-bounce { animation: d5hm-bounce-a 1.2s ease-in-out infinite; }
.d5hm-attention-swing  { animation: d5hm-swing    2s ease-in-out infinite; }
.d5hm-attention-wobble { animation: d5hm-wobble   2s ease-in-out infinite; }
.d5hm-attention-flash  { animation: d5hm-flash    1.5s ease-in-out infinite; }
.d5hm-cart-count.d5hm-pulse { animation: d5hm-badge-pulse 1.8s ease-in-out infinite; }

/* ── Nav hover underline animations (NOT in Divi) ───────────────────────── */
#et-top-navigation ul.et-menu > li > a,
#main-header .et-menu > li > a { position: relative; }

#et-top-navigation ul.et-menu > li > a::after,
#main-header .et-menu > li > a::after {
    content: '';
    position: absolute; bottom: 0;
    height: var(--d5hm-nav-underline-h);
    background: var(--d5hm-nav-underline);
    transition: left var(--d5hm-nav-speed) var(--d5hm-nav-ease),
                right var(--d5hm-nav-speed) var(--d5hm-nav-ease),
                width var(--d5hm-nav-speed) var(--d5hm-nav-ease),
                opacity var(--d5hm-nav-speed) var(--d5hm-nav-ease);
}

/* By default hide the pseudo-element (overridden by JS-added class on body) */
#et-top-navigation ul.et-menu > li > a::after { opacity:0; left:50%; right:50%; }

body.d5hm-underline-expand-center #et-top-navigation ul.et-menu > li > a::after { left:50%; right:50%; opacity:1; }
body.d5hm-underline-expand-center #et-top-navigation ul.et-menu > li:hover > a::after { left:0; right:0; }
body.d5hm-underline-expand-left  #et-top-navigation ul.et-menu > li > a::after { left:0; width:0; opacity:1; }
body.d5hm-underline-expand-left  #et-top-navigation ul.et-menu > li:hover > a::after { width:100%; }
body.d5hm-underline-expand-right #et-top-navigation ul.et-menu > li > a::after { right:0; left:auto; width:0; opacity:1; }
body.d5hm-underline-expand-right #et-top-navigation ul.et-menu > li:hover > a::after { width:100%; }
body.d5hm-underline-slide-left  #et-top-navigation ul.et-menu > li > a::after { left:auto; right:100%; width:100%; opacity:1; }
body.d5hm-underline-slide-left  #et-top-navigation ul.et-menu > li:hover > a::after { right:0; }
body.d5hm-underline-slide-right #et-top-navigation ul.et-menu > li > a::after { left:100%; right:auto; width:100%; opacity:1; }
body.d5hm-underline-slide-right #et-top-navigation ul.et-menu > li:hover > a::after { left:0; }
body.d5hm-underline-fade  #et-top-navigation ul.et-menu > li > a::after { left:0; right:0; opacity:0; }
body.d5hm-underline-fade  #et-top-navigation ul.et-menu > li:hover > a::after { opacity:1; }
body.d5hm-underline-solid #et-top-navigation ul.et-menu > li > a::after { left:0; right:0; opacity:1; }

/* Active indicator (NOT in Divi) */
body.d5hm-active-underline #et-top-navigation ul.et-menu > li.current-menu-item > a::before,
body.d5hm-active-top-bar   #et-top-navigation ul.et-menu > li.current-menu-item > a::before {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: var(--d5hm-nav-indicator-size);
    background: var(--d5hm-nav-indicator-color);
}
body.d5hm-active-underline #et-top-navigation ul.et-menu > li.current-menu-item > a::before { bottom: 0; }
body.d5hm-active-top-bar   #et-top-navigation ul.et-menu > li.current-menu-item > a::before { top: 0; }

/* Dropdown transition override (top accent bar) */
#et-top-navigation ul.et-menu li .sub-menu,
#main-header .et-menu li .sub-menu {
    border-top: var(--d5hm-dd-accent-h) solid var(--d5hm-dd-accent);
    transition: opacity var(--d5hm-dd-speed) var(--d5hm-dd-ease),
                transform var(--d5hm-dd-speed) var(--d5hm-dd-ease),
                visibility var(--d5hm-dd-speed) var(--d5hm-dd-ease);
}

/* ── Mini-Cart ───────────────────────────────────────────────────────────── */
.et-cart-info,.d5hm-cart-icon-wrap { position:relative; }
.d5hm-mini-cart-wrapper {
    position:absolute; top:100%; right:0; min-width:300px; background:#fff;
    border:1px solid #e0e0e0; border-radius:4px;
    box-shadow:0 6px 24px rgba(0,0,0,0.12); z-index:99999;
    opacity:0; visibility:hidden; transform:translateY(8px); pointer-events:none;
}
.d5hm-mini-cart-wrapper.d5hm-open { opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }
.d5hm-mini-cart-inner { padding:16px; }
.d5hm-mini-cart-wrapper .woocommerce-mini-cart__buttons .checkout {
    background-color:var(--d5hm-cart-btn-bg) !important; color:var(--d5hm-cart-btn-color) !important;
}
.d5hm-cart-count {
    display:inline-flex; align-items:center; justify-content:center;
    background:var(--d5hm-cart-badge-bg); color:var(--d5hm-cart-badge-color);
    border-radius:50%; min-width:18px; height:18px;
    font-size:10px; font-weight:700; line-height:1; padding:0 4px;
    vertical-align:super; margin-left:2px;
}

/* ── Mobile Panel Styles (beyond Divi's slide-down) ─────────────────────── */
.d5hm-mobile-panel { transition: transform var(--d5hm-mobile-speed) var(--d5hm-mobile-ease), opacity var(--d5hm-mobile-speed) var(--d5hm-mobile-ease), max-height var(--d5hm-mobile-speed) var(--d5hm-mobile-ease); }
/* slide_down: only apply to the menu LIST inside the panel, not the trigger row.
   The trigger row (.mobile_nav) contains .mobile_menu_bar and must always be visible.
   We scope this to .d5hm-mobile-content (the sliding panel content). */
.d5hm-mobile-style-slide_down > .d5hm-mobile-content { max-height:0; overflow:hidden; opacity:0; visibility:hidden; transition: inherit; }
.d5hm-mobile-style-slide_down.d5hm-open > .d5hm-mobile-content { max-height:80vh; opacity:1; visibility:visible; overflow-y:auto; }

/* ── D5HM UberMenu Mobile Panel ─────────────────────────────────────────────
   position:fixed, top/max-height set by JS from header bottom.
   The panel itself is the scroll container (overflow-y:auto).
   UberMenu's accordion handles submenu collapse/expand natively.
   CRITICAL: do NOT set max-height on .ubermenu-submenu — it overrides
   UberMenu's accordion animation and causes all submenus to show at once. */
.d5hm-ubermenu-panel-inner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    background: #ffffff;
    border-top: 3px solid #0099cc;
    box-shadow: 0 6px 18px rgba(0,0,0,0.15);
    z-index: 999999;
    overflow-y: auto;
    overflow-x: hidden;
    height: 0;           /* set by JS: window.innerHeight - headerBottom */
    max-height: none;
    display: none;
    box-sizing: border-box;
    -webkit-overflow-scrolling: touch;
}
.d5hm-ubermenu-panel-inner.d5hm-panel-open { display: block; }

/* UberMenu nav inside panel */
.d5hm-ubermenu-panel-inner nav.ubermenu {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}
/* Hide UberMenu's own toggle */
.d5hm-ubermenu-panel-inner .ubermenu-responsive-toggle { display: none !important; }

/* Top-level item styling */
.d5hm-ubermenu-panel-inner .ubermenu-nav {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.d5hm-ubermenu-panel-inner .ubermenu-item {
    border-bottom: 1px solid #e8e8e8 !important;
}
.d5hm-ubermenu-panel-inner .ubermenu-item:last-child { border-bottom: none !important; }
.d5hm-ubermenu-panel-inner .ubermenu-target {
    display: block !important;
    padding: 12px 16px !important;
    color: #333 !important;
    text-decoration: none !important;
    font-size: 14px !important;
}
.d5hm-ubermenu-panel-inner .ubermenu-item-level-0 > .ubermenu-target { font-weight: 600 !important; }
.d5hm-ubermenu-panel-inner .ubermenu-target:hover { background: #f4f4f4 !important; color: #0099cc !important; }

/* Submenus: NO max-height override here — UberMenu's accordion CSS controls
   collapse/expand via its own max-height and overflow rules. Overriding
   max-height here would make all submenus permanently visible. */
.d5hm-ubermenu-panel-inner .ubermenu-submenu {
    padding-left: 16px !important;
    border-left: 3px solid #e8e8e8 !important;
    background: #fafafa !important;
}
.d5hm-ubermenu-panel-inner .ubermenu-submenu .ubermenu-target {
    font-weight: normal !important;
    font-size: 13px !important;
    color: #555 !important;
}

body.d5hm-mobile-slide_left  .d5hm-mobile-panel { position:fixed; top:0; left:0; bottom:0; width:300px; transform:translateX(-100%); background:var(--d5hm-mobile-bg); z-index:99999; overflow-y:auto; }
body.d5hm-mobile-slide_left  .d5hm-mobile-panel.d5hm-open { transform:translateX(0); }
body.d5hm-mobile-slide_right .d5hm-mobile-panel { position:fixed; top:0; right:0; bottom:0; width:300px; transform:translateX(100%); background:var(--d5hm-mobile-bg); z-index:99999; overflow-y:auto; }
body.d5hm-mobile-slide_right .d5hm-mobile-panel.d5hm-open { transform:translateX(0); }
.d5hm-mobile-style-fullscreen { position:fixed; inset:0; z-index:99999; background:var(--d5hm-mobile-bg); opacity:0; visibility:hidden; transform:scale(0.97); }
.d5hm-mobile-style-fullscreen.d5hm-open { opacity:1; visibility:visible; transform:scale(1); }
.d5hm-mobile-style-fade { opacity:0; visibility:hidden; position:fixed; top:0; left:0; right:0; background:var(--d5hm-mobile-bg); z-index:99999; }
.d5hm-mobile-style-fade.d5hm-open { opacity:1; visibility:visible; }
.et-overlay,.et-mobile-menu-overlay { position:fixed; inset:0; background:var(--d5hm-mobile-overlay); backdrop-filter:blur(var(--d5hm-mobile-blur)); z-index:99998; opacity:0; visibility:hidden; transition:opacity 0.3s,visibility 0.3s; }
.et-overlay.d5hm-visible,.et-mobile-menu-overlay.d5hm-visible { opacity:1; visibility:visible; }
/* Hamburger open animation classes */
.d5hm-burger-anim-rotate.is-open { transform:rotate(90deg); transition:transform 300ms ease; }
.d5hm-burger-anim-spin.is-open   { transform:rotate(360deg); transition:transform 400ms ease; }

/* ── UberMenu inside Divi mobile panel ───────────────────────────────────── */
.d5hm-mobile-ubermenu-wrap {
    display: block;
    width: 100%;
}
.d5hm-mobile-ubermenu-wrap nav.ubermenu,
.d5hm-mobile-ubermenu-wrap .ubermenu-main {
    display: block !important;
    width: 100% !important;
    background: transparent !important;
    border: none !important;
}
.d5hm-mobile-ubermenu-wrap ul.ubermenu-nav {
    display: block !important;
    width: 100%;
    margin: 0; padding: 0; list-style: none;
}
.d5hm-mobile-ubermenu-wrap .ubermenu-nav > li.ubermenu-item {
    display: block;
    width: 100%;
}
.d5hm-mobile-ubermenu-wrap .ubermenu-nav > li.ubermenu-item > a.ubermenu-target,
.d5hm-mobile-ubermenu-wrap .ubermenu-nav > li.ubermenu-item > span.ubermenu-target {
    display: block !important;
    width: 100%;
    height: auto !important;
    padding: 12px 20px !important;
    color: var(--d5hm-mobile-color, #fff) !important;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    box-sizing: border-box;
}
.d5hm-mobile-ubermenu-wrap .ubermenu-nav > li.ubermenu-item > a.ubermenu-target:hover {
    background: rgba(255,255,255,0.08) !important;
}
/* Submenu inside mobile panel */
.d5hm-mobile-ubermenu-wrap .ubermenu-submenu {
    position: static !important;
    display: none;
    background: rgba(0,0,0,0.2) !important;
    box-shadow: none !important;
}
.d5hm-mobile-ubermenu-wrap .ubermenu-item.ubermenu-active > .ubermenu-submenu {
    display: block;
}
.d5hm-mobile-ubermenu-wrap .ubermenu-submenu a.ubermenu-target {
    padding: 10px 30px !important;
    color: var(--d5hm-mobile-color, #fff) !important;
    opacity: 0.85;
}

/* ── Search Fullscreen ───────────────────────────────────────────────────── */
#d5hm-search-fs { position:fixed; inset:0; z-index:100000; background:var(--d5hm-search-overlay-bg); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity var(--d5hm-search-speed) ease; }
#d5hm-search-fs.d5hm-open { opacity:1; visibility:visible; }
.d5hm-search-fs-inner { width:90%; max-width:640px; }
.d5hm-search-fs-input { width:100%; padding:16px 20px; font-size:22px; background:transparent; border:none; border-bottom:3px solid var(--d5hm-search-btn-bg); color:#fff; outline:none; }
.d5hm-search-fs-input::placeholder { color:rgba(255,255,255,0.5); }
.d5hm-search-close { position:fixed; top:24px; right:32px; background:none; border:none; color:#fff; font-size:36px; line-height:1; cursor:pointer; opacity:0.7; transition:opacity 0.15s; }
.d5hm-search-close:hover { opacity:1; }
body.d5hm-search-open { overflow:hidden; }

/* ── CTA Button (NOT in Divi) ───────────────────────────────────────────── */
a.d5hm-cta-button {
    display:inline-flex !important; align-items:center;
    background-color:var(--d5hm-cta-bg) !important; color:var(--d5hm-cta-color) !important;
    border-radius:4px; text-decoration:none; font-weight:700; margin-left:16px; white-space:nowrap;
    transition: background-color var(--d5hm-cta-speed) ease, color var(--d5hm-cta-speed) ease, box-shadow var(--d5hm-cta-speed) ease;
}
a.d5hm-cta-button:hover { background-color:var(--d5hm-cta-hover-bg) !important; color:var(--d5hm-cta-hover-color) !important; box-shadow:var(--d5hm-cta-hover-shadow); }

/* ── Accessibility ───────────────────────────────────────────────────────── */
a.d5hm-cta-button:focus-visible { outline:2px solid var(--d5hm-cta-bg); outline-offset:3px; }
