/* U&PI unified header: SVG-based two-row layout. Only this widget is styled. */
.elementor-widget-upi-unified-header,
.elementor-widget-upi-unified-header > .elementor-widget-container { width:100%; max-width:100%; overflow:visible!important; }
.upi-hc, .upi-hc * { box-sizing:border-box; }
.upi-hc {
    --upi-hc-nav:#205093; --upi-hc-accent:#205093;
    --upi-hc-surface:#fff; --upi-hc-soft:#EDF7FD;
    position:relative; width:100%; max-width:100%; color:#13276A;
    font-family:inherit,Arial,sans-serif; box-shadow:0 2px 12px rgba(19,39,106,.06);
}
.upi-hc a, .upi-hc button { -webkit-tap-highlight-color:transparent; }
.upi-hc a:focus-visible, .upi-hc button:focus-visible, .upi-hc input:focus-visible { outline:2px solid #3A8FDE; outline-offset:3px; }
.upi-hc--sticky { position:sticky; top:0; z-index:8000; }
body.admin-bar .upi-hc--sticky { top:32px; }
.upi-hc__nav-top { background:var(--upi-hc-nav); color:#fff; width:100%; }
.upi-hc__nav-inner {
    display:flex; align-items:center; justify-content:space-between; gap:clamp(8px,1.5vw,30px);
    max-width:1450px; min-height:60px; margin:0 auto; padding:0 clamp(18px,2.25vw,34px);
}
.upi-hc__nav-inner a,.upi-hc__nav-inner .upi-hc__nav-unlinked {
    display:inline-flex; align-items:center; justify-content:center; min-width:0; padding:8px 0;
    color:#fff; text-decoration:none; font-size:clamp(11px,.76vw,14px); font-weight:500; line-height:1.35;
    white-space:normal; text-align:center; transition:opacity .2s ease;
}
.upi-hc__nav-inner a:hover { color:#fff; opacity:.78; }
.upi-hc__nav-unlinked { opacity:.65; cursor:default; }
.upi-hc__main { position:relative; width:100%; background:var(--upi-hc-surface); }
.upi-hc__main-inner {
    display:grid; grid-template-columns: minmax(135px,190px) auto minmax(180px,1fr) auto;
    align-items:center; column-gap:clamp(12px,2vw,30px);
    max-width:1450px; min-height:80px; margin:0 auto;
    padding:10px clamp(16px,2vw,30px);
}
.upi-hc__logo { display:flex; align-items:center; min-width:0; max-width:190px; }
.upi-hc__logo a { display:flex; flex-direction:column; justify-content:center; min-width:0; text-decoration:none; color:#13276A; }
.upi-hc__logo img { display:block; width:auto; height:auto; max-height:62px; max-width:160px; object-fit:contain; }
.upi-hc__logo strong { display:block; font-size:clamp(20px,2vw,29px); letter-spacing:-.035em; line-height:1.05; white-space:nowrap; }
.upi-hc__logo small { color:var(--upi-hc-accent); font-size:8px; font-weight:600; line-height:1.35; letter-spacing:.07em; white-space:nowrap; }
.upi-hc__category { min-width:0; flex-shrink:0; position:relative; }
.upi-hc__category .dc-header-categories { --dc-hcat-trigger-bg:var(--upi-hc-soft); --dc-hcat-trigger-bg-hover:#e1efff; --dc-hcat-trigger-text:var(--upi-hc-accent); --dc-hcat-trigger-icon:var(--upi-hc-accent); --dc-hcat-trigger-text-hover:var(--upi-hc-accent); --dc-hcat-trigger-icon-hover:var(--upi-hc-accent); --dc-hcat-menu-bg:#fff; --dc-hcat-menu-width:272px; --dc-hcat-item-hover-text:var(--upi-hc-accent); --dc-hcat-item-active-text:var(--upi-hc-accent); }
.upi-hc__category .dc-header-categories__trigger { font-size:13px; font-weight:500; }
.upi-hc__category .dc-header-categories__trigger-icon { display:inline-flex; }
.upi-hc__search { min-width:0; width:100%; }
.upi-hc__search .dc-header-search { width:100%; --dc-hs-width:100%; --dc-hs-height:42px; --dc-hs-bg:#FCFCFC; }
.upi-hc__search .dc-header-search__input { min-width:0; max-width:100%; font-size:13px; }
.upi-hc__search .dc-header-search__submit svg { width:20px; height:20px; }
.upi-hc__cart { min-width:0; justify-self:end; }
.upi-hc__cart .dc-header-cart { --dc-hcart-bg:var(--upi-hc-soft); --dc-hcart-bg-hover:#e1efff; --dc-hcart-color:var(--upi-hc-accent); --dc-hcart-color-hover:var(--upi-hc-accent); --dc-hcart-icon:var(--upi-hc-accent); --dc-hcart-icon-hover:var(--upi-hc-accent); --dc-hcart-height:38px; --dc-hcart-pad-x:14px; font-size:13px; }
.upi-hc__cart-unavailable { color:#6b7f9a; font-size:12px; }
.upi-hc__mobile-toggle,.upi-hc__mobile-panel,.upi-hc__mobile-shade { display:none; }
.upi-hc__mobile-toggle button,.upi-hc__mobile-head button { cursor:pointer; border:none; background:var(--upi-hc-soft); color:var(--upi-hc-accent); border-radius:999px; padding:10px 12px; display:inline-flex; align-items:center; gap:6px; font-size:13px; }
@media (max-width:1200px) and (min-width:1025px) {
    .upi-hc__nav-inner { gap:10px; }
    .upi-hc__main-inner { grid-template-columns:minmax(110px,145px) auto minmax(120px,1fr) auto; column-gap:12px; }
    .upi-hc__logo img { max-width:130px; }
}
@media (max-width:1024px) {
    .upi-hc__nav-top { display:none; }
    .upi-hc__main-inner { grid-template-columns:clamp(112px,34vw,145px) minmax(0,1fr) max-content 42px; gap:10px 12px; padding:12px 16px; min-height:72px; }
    .upi-hc__logo { grid-column:1; grid-row:1; }
    .upi-hc__logo img { max-height:46px; max-width:125px; }
    .upi-hc__mobile-toggle { display:flex; grid-column:4; grid-row:1; }
    .upi-hc__cart { grid-column:3; grid-row:1; }
    .upi-hc__category { grid-column:1; grid-row:2; }
    .upi-hc__search { grid-column:2 / 5; grid-row:2; }
    .upi-hc__search .dc-header-search { --dc-hs-height:40px; }
    .upi-hc__mobile-shade { position:fixed; inset:0; z-index:99980; background:rgba(19,39,106,.48); opacity:0; visibility:hidden; pointer-events:none; display:block; transition:opacity .2s,visibility .2s; }
    .upi-hc__mobile-panel { display:flex; flex-direction:column; position:fixed; z-index:99981; top:0; left:0; bottom:0; width:min(360px,92vw); max-width:100vw; height:100dvh; background:#fff; color:#13276A; transform:translateX(-101%); visibility:hidden; transition:transform .22s ease,visibility .22s; padding:22px 18px; box-shadow:12px 0 28px rgba(19,39,106,.15); }
    .upi-hc.is-nav-open .upi-hc__mobile-shade { opacity:1; visibility:visible; pointer-events:auto; }
    .upi-hc.is-nav-open .upi-hc__mobile-panel { transform:translateX(0); visibility:visible; }
    .upi-hc__mobile-head { display:flex; justify-content:space-between; gap:10px; align-items:center; padding-bottom:17px; margin-bottom:6px; border-bottom:1px solid #e4eef8; }
    .upi-hc__mobile-head strong { font-size:18px; }
    .upi-hc__mobile-links { display:flex; flex-direction:column; gap:2px; overflow:auto; min-height:0; padding:8px 0; }
    .upi-hc__mobile-links a,.upi-hc__mobile-links .upi-hc__nav-unlinked { display:block; padding:13px 11px; border-radius:9px; text-decoration:none; color:#13276A; font-size:15px; line-height:1.4; }
    .upi-hc__mobile-links a:hover { background:var(--upi-hc-soft); color:var(--upi-hc-accent); }
    .upi-hc__mobile-links .upi-hc__nav-unlinked { color:#8994a8; }
}
@media (max-width:480px) {
    .upi-hc__main-inner { gap:9px; padding:10px 12px; }
    .upi-hc__logo strong { font-size:23px; }
    .upi-hc__logo small { font-size:6.8px; letter-spacing:.02em; }
    .upi-hc__logo img { max-width:100px; }
    .upi-hc__mobile-toggle button { padding:9px; }
    .upi-hc__mobile-toggle button span { display:none; }
    .upi-hc__cart .dc-header-cart { --dc-hcart-pad-x:11px; --dc-hcart-height:36px; font-size:12px; }
    .upi-hc__category .dc-header-categories__trigger { --dc-hcat-trigger-height:38px; --dc-hcat-trigger-pad-x:12px; font-size:12px; }
    .upi-hc__search .dc-header-search__input { font-size:12px; padding-left:12px; }
}
@media (max-width:340px) {
    .upi-hc__cart .dc-header-cart__label { display:none; }
    .upi-hc__main-inner { column-gap:6px; }
    .upi-hc__category .dc-header-categories__trigger { --dc-hcat-trigger-pad-x:9px; --dc-hcat-trigger-gap:5px; }
}
@media (max-width:782px) { body.admin-bar .upi-hc--sticky { top:46px; } }
@media (prefers-reduced-motion:reduce) { .upi-hc * { transition:none!important; scroll-behavior:auto!important; } }

/* v1.1: full desktop + mobile viewport sticky. JS fixes the header to the viewport
   and reserves its original document space. Avoid relying on a short Elementor parent
   for position:sticky (it would stop sticking at that parent's bottom). */
.upi-hc.upi-hc--sticky { position:relative; top:auto; z-index:8000; }
.upi-hc.upi-hc--sticky.is-stuck {
    position:fixed !important;
    inset:auto auto auto auto;
    top:var(--upi-hc-fixed-top, 0px) !important;
    left:var(--upi-hc-fixed-left, 0px) !important;
    width:var(--upi-hc-fixed-width, 100%) !important;
    max-width:none;
    margin:0 !important;
    z-index:8000;
    box-shadow:0 6px 22px rgba(19,39,106,.12);
}
.upi-hc-sticky-spacer { display:block; height:0; width:100%; max-width:100%; padding:0; margin:0; border:0; pointer-events:none; visibility:hidden; }

/* Elementor / theme button styles should never tint, resize or shift the mobile
   menu button; scope the reset so normal buttons outside this header are untouched. */
@media (max-width:1024px) {
    .upi-hc .upi-hc__main-inner {
        grid-template-columns:clamp(112px,34vw,145px) minmax(0,1fr) max-content 42px;
        grid-template-rows:minmax(46px,auto) minmax(40px,auto);
        align-items:center;
        gap:9px 12px;
    }
    .upi-hc .upi-hc__logo,
    .upi-hc .upi-hc__mobile-toggle,
    .upi-hc .upi-hc__cart { align-self:center; margin:0; }
    .upi-hc .upi-hc__mobile-toggle { display:flex; align-items:center; justify-content:center; width:42px; height:42px; }
    .elementor .upi-hc .upi-hc__mobile-toggle > button,
    .upi-hc .upi-hc__mobile-toggle > button,
    .elementor .upi-hc .upi-hc__mobile-head button,
    .upi-hc .upi-hc__mobile-head button {
        display:inline-flex !important;
        align-items:center !important;
        justify-content:center !important;
        flex:none;
        width:42px !important;
        height:42px !important;
        min-width:42px !important;
        min-height:42px !important;
        padding:0 !important;
        margin:0 !important;
        border:0 !important;
        border-radius:50% !important;
        background:var(--upi-hc-soft) !important;
        background-color:var(--upi-hc-soft) !important;
        background-image:none !important;
        color:var(--upi-hc-accent) !important;
        box-shadow:none !important;
        text-shadow:none !important;
        font-size:0 !important;
        line-height:1 !important;
        letter-spacing:normal !important;
        transform:none !important;
        appearance:none;
        -webkit-appearance:none;
        cursor:pointer;
    }
    .elementor .upi-hc .upi-hc__mobile-toggle > button:hover,
    .elementor .upi-hc .upi-hc__mobile-toggle > button:focus,
    .elementor .upi-hc .upi-hc__mobile-toggle > button:active,
    .upi-hc .upi-hc__mobile-toggle > button:hover,
    .upi-hc .upi-hc__mobile-toggle > button:focus,
    .upi-hc .upi-hc__mobile-toggle > button:active,
    .upi-hc .upi-hc__mobile-head button:hover,
    .upi-hc .upi-hc__mobile-head button:focus {
        background:var(--upi-hc-soft) !important;
        background-color:var(--upi-hc-soft) !important;
        color:var(--upi-hc-accent) !important;
        box-shadow:none !important;
        transform:none !important;
    }
    .upi-hc .upi-hc__mobile-toggle > button > svg,
    .upi-hc .upi-hc__mobile-head button > svg {
        display:block !important;
        width:20px !important;
        height:20px !important;
        flex:0 0 20px !important;
        color:inherit !important;
        fill:none !important;
        stroke:currentColor !important;
    }
    .upi-hc .upi-hc__mobile-toggle > button > span { display:none !important; }
    .upi-hc .upi-hc__cart { justify-self:end; }
    .upi-hc .upi-hc__category { justify-self:start; max-width:100%; }
}
@media (max-width:480px) {
    .upi-hc .upi-hc__main-inner { grid-template-columns:clamp(112px,34vw,145px) minmax(0,1fr) max-content 42px; gap:9px 8px; }
    .upi-hc .upi-hc__mobile-toggle { grid-column:4; }
    .upi-hc .upi-hc__logo img { max-height:46px; }
}
@media (max-width:340px) {
    .upi-hc .upi-hc__main-inner { column-gap:6px; }
}

/* Elementor often sets global button padding, radius and background on all buttons,
   not just .elementor-button. Protect all controls in this widget independently. */
.elementor .upi-hc .upi-hc__category button.dc-header-categories__trigger,
.upi-hc .upi-hc__category button.dc-header-categories__trigger {
    display:inline-flex !important;
    height:var(--dc-hcat-trigger-height) !important;
    min-height:0 !important;
    width:auto !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 var(--dc-hcat-trigger-pad-x) !important;
    border:0 !important;
    border-radius:var(--dc-hcat-trigger-radius,999px) !important;
    background:var(--upi-hc-soft) !important;
    background-color:var(--upi-hc-soft) !important;
    background-image:none !important;
    box-shadow:none !important;
    color:var(--upi-hc-accent) !important;
    font-family:inherit !important;
    font-size:inherit;
    line-height:normal !important;
}
.elementor .upi-hc .upi-hc__category button.dc-header-categories__trigger:hover,
.upi-hc .upi-hc__category button.dc-header-categories__trigger:hover,
.upi-hc .upi-hc__category .is-open button.dc-header-categories__trigger {
    background:#e1efff !important;
    color:var(--upi-hc-accent) !important;
}
.elementor .upi-hc .upi-hc__cart button.dc-header-cart,
.upi-hc .upi-hc__cart button.dc-header-cart {
    display:inline-flex !important;
    width:auto !important;
    min-width:0 !important;
    height:var(--dc-hcart-height,38px) !important;
    min-height:0 !important;
    padding:0 var(--dc-hcart-pad-x,14px) !important;
    margin:0 !important;
    border:0 !important;
    border-radius:999px !important;
    background:var(--upi-hc-soft) !important;
    background-color:var(--upi-hc-soft) !important;
    background-image:none !important;
    box-shadow:none !important;
    color:var(--upi-hc-accent) !important;
    line-height:normal !important;
}
.elementor .upi-hc .upi-hc__cart button.dc-header-cart:hover,
.upi-hc .upi-hc__cart button.dc-header-cart:hover {
    background:#e1efff !important;
    color:var(--upi-hc-accent) !important;
}
.upi-hc .upi-hc__cart .dc-header-cart__icon,
.upi-hc .upi-hc__cart .dc-header-cart__label { color:var(--upi-hc-accent) !important; }
.elementor .upi-hc .upi-hc__search button.dc-header-search__submit,
.upi-hc .upi-hc__search button.dc-header-search__submit {
    position:absolute !important;
    top:50% !important;
    right:var(--dc-hs-button-offset) !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:var(--dc-hs-button-size) !important;
    min-width:0 !important;
    height:var(--dc-hs-button-size) !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;
    transform:translateY(-50%) !important;
    border:0 !important;
    border-radius:var(--dc-hs-button-radius,999px) !important;
    background:var(--dc-hs-button-bg,#e6eff7) !important;
    background-color:var(--dc-hs-button-bg,#e6eff7) !important;
    background-image:none !important;
    box-shadow:none !important;
    color:var(--upi-hc-accent) !important;
    line-height:1 !important;
}
.upi-hc .upi-hc__search button.dc-header-search__submit:hover {
    background:var(--dc-hs-button-bg-hover,#daeafb) !important;
    color:var(--upi-hc-accent) !important;
}

/* v1.2: Mobile row order is Logo | Cart | Menu (on the far right).
   Keep the category + search as a separate full-width row. On narrow phones,
   reserve space for the 42px menu so it never sits over the Woo cart button. */
@media (max-width:1024px) {
    .upi-hc .upi-hc__main-inner {
        grid-template-columns:clamp(112px,34vw,145px) minmax(0,1fr) max-content 42px;
        grid-template-rows:minmax(46px,auto) minmax(40px,auto);
    }
    .upi-hc .upi-hc__logo { grid-column:1; grid-row:1; justify-self:start; }
    .upi-hc .upi-hc__cart { grid-column:3; grid-row:1; justify-self:end; }
    .upi-hc .upi-hc__mobile-toggle {
        position:static;
        display:flex;
        grid-column:4;
        grid-row:1;
        justify-self:end;
        align-self:center;
        transform:none;
        left:auto;
        top:auto;
        z-index:1;
    }
    .upi-hc .upi-hc__category { grid-column:1; grid-row:2; }
    .upi-hc .upi-hc__search { grid-column:2 / 5; grid-row:2; }
}
@media (max-width:480px) {
    .upi-hc .upi-hc__main-inner { gap:9px 8px; }
}
@media (max-width:340px) {
    .upi-hc .upi-hc__main-inner { column-gap:6px; }
}
/* WordPress admin bar is accounted for by JS when fixed; do not offset the
   un-stuck header inside its normal Elementor container. */
body.admin-bar .upi-hc.upi-hc--sticky:not(.is-stuck) { top:auto !important; }
