:root {
    --chc-cart-color: #fff;
    --chc-cart-hover: #061329;
    --chc-account-color: #fff;
    --chc-account-hover: #061329;
    --chc-search-color: #fff;
    --chc-search-hover: #061329;
    --chc-hover-bg: #08bdf4;
    --chc-icon-size: 21px;
    --chc-search-icon-size: 17px;
    --chc-button-size: 33px;
    --chc-radius: 4px;
    --chc-icon-spacing: 20px;
    --chc-side-spacing: 10px;
    --chc-cart-x: 0px;
    --chc-cart-y: 0px;
    --chc-account-x: 15px;
    --chc-account-y: 0px;
    --chc-search-x: -1px;
    --chc-search-y: 0px;
    --chc-outline-width: 0px;
    --chc-outline-color: rgba(255,255,255,.6);
    --chc-outline-hover-width: 0px;
    --chc-outline-hover-color: rgba(255,255,255,.6);
}

.header .cart-item,
.header .account-item {
    margin-left: 0 !important;
}

/* One shared square hit/hover area for Cart, Account and FiboSearch. */
.header .cart-item > a.chc-cart-link,
.header .account-item > a.chc-account-link,
.chc-search-link {
    position: relative;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 var(--chc-button-size) !important;
    width: var(--chc-button-size) !important;
    height: var(--chc-button-size) !important;
    min-width: var(--chc-button-size) !important;
    min-height: var(--chc-button-size) !important;
    max-width: var(--chc-button-size) !important;
    max-height: var(--chc-button-size) !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    margin-left: var(--chc-side-spacing) !important;
    margin-right: var(--chc-side-spacing) !important;
    border: var(--chc-outline-width) solid var(--chc-outline-color) !important;
    border-radius: var(--chc-radius) !important;
    outline: none !important;
    line-height: 1 !important;
    transition: background-color .2s ease, color .2s ease;
}

/* Neutralise FiboSearch compact-layout styles around the icon so its anchor
   behaves like the Cart and Account buttons. */
.dgwt-wcas-search-wrapp.dgwt-wcas-layout-icon {
    line-height: 1 !important;
}

.dgwt-wcas-search-wrapp.dgwt-wcas-layout-icon > .chc-search-link,
.dgwt-wcas-search-wrapp .chc-search-link.dgwt-wcas-search-icon {
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    position: relative !important;
    overflow: visible !important;
}

.chc-cart-link {
    transform: translate(var(--chc-cart-x), var(--chc-cart-y));
}

.chc-account-link {
    transform: translate(var(--chc-account-x), var(--chc-account-y));
}

.chc-search-link {
    transform: translate(var(--chc-search-x), var(--chc-search-y));
}

.chc-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    width: var(--chc-icon-size);
    height: var(--chc-icon-size);
    flex: 0 0 var(--chc-icon-size);
}

.chc-lucide {
    width: var(--chc-icon-size);
    height: var(--chc-icon-size);
    display: block;
    pointer-events: none;
}

/* Normalise FiboSearch's own icon box so it cannot enlarge the hover square. */
/* FiboSearch: keep the clickable anchor at shared button size.
   Only normalise the SVG inside the anchor. */
.chc-search-link > svg,
.chc-search-link svg.dgwt-wcas-ico-magnifier-handler,
.chc-search-link .dgwt-wcas-ico-magnifier-handler {
    width: var(--chc-search-icon-size) !important;
    height: var(--chc-search-icon-size) !important;
    min-width: var(--chc-search-icon-size) !important;
    min-height: var(--chc-search-icon-size) !important;
    max-width: var(--chc-search-icon-size) !important;
    max-height: var(--chc-search-icon-size) !important;
    padding: 0 !important;
    margin: 0 !important;
    display: block !important;
    position: static !important;
    transform: none !important;
    pointer-events: none !important;
}

.chc-search-link svg path {
    fill: currentColor !important;
}

.chc-cart-link,
.chc-cart-link .chc-cart-icon {
    color: var(--chc-cart-color) !important;
}

.chc-account-link,
.chc-account-link .chc-account-icon {
    color: var(--chc-account-color) !important;
}

.chc-search-link {
    color: var(--chc-search-color) !important;
}

.chc-cart-link:hover {
    background-color: var(--chc-hover-bg) !important;
    color: var(--chc-cart-hover) !important;
}

.chc-account-link:hover {
    background-color: var(--chc-hover-bg) !important;
    color: var(--chc-account-hover) !important;
}

.chc-search-link:hover {
    background-color: var(--chc-hover-bg) !important;
    color: var(--chc-search-hover) !important;
}

.chc-cart-link:hover .chc-cart-icon,
.chc-account-link:hover .chc-account-icon,
.chc-search-link:hover svg {
    color: inherit !important;
}

/* Hide Flatsome's original account/cart icon glyphs if they remain in alternate markup. */
.chc-cart-link > i[class*="icon-shopping"],
.chc-account-link > i[class*="icon-user"] {
    display: none !important;
}

/* Preserve cart count badge and text while only replacing the icon. */
.chc-cart-link .cart-icon strong,
.chc-cart-link .cart-item .cart-icon strong,
.chc-cart-link .header-cart-title,
.chc-account-link .nav-top-link {
    position: relative;
    z-index: 2;
}

/* Frontend icon tooltips. Kept outside the button hit area so they do not
   interfere with Flatsome dropdowns, cart links or FiboSearch clicks. */
@media (hover: hover) and (pointer: fine) {
    .chc-cart-link[data-chc-tooltip]::after,
    .chc-account-link[data-chc-tooltip]::after,
    .chc-search-link[data-chc-tooltip]::after {
        content: attr(data-chc-tooltip);
        position: absolute;
        left: 50%;
        top: calc(100% + 8px);
        z-index: 99999;
        transform: translate(-50%, -4px);
        display: block;
        width: max-content;
        max-width: 180px;
        padding: 6px 9px;
        border-radius: 4px;
        background: rgba(0, 0, 0, 0.88);
        color: #fff;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.25;
        letter-spacing: 0;
        text-transform: none;
        white-space: nowrap;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
    }

    .chc-cart-link[data-chc-tooltip]::before,
    .chc-account-link[data-chc-tooltip]::before,
    .chc-search-link[data-chc-tooltip]::before {
        content: '';
        position: absolute;
        left: 50%;
        top: calc(100% + 3px);
        z-index: 100000;
        transform: translateX(-50%);
        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
        border-bottom: 5px solid rgba(0, 0, 0, 0.88);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .15s ease, visibility .15s ease;
    }

    .chc-cart-link[data-chc-tooltip]:hover::after,
    .chc-account-link[data-chc-tooltip]:hover::after,
    .chc-search-link[data-chc-tooltip]:hover::after,
    .chc-cart-link[data-chc-tooltip]:focus-visible::after,
    .chc-account-link[data-chc-tooltip]:focus-visible::after,
    .chc-search-link[data-chc-tooltip]:focus-visible::after {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
    }

    .chc-cart-link[data-chc-tooltip]:hover::before,
    .chc-account-link[data-chc-tooltip]:hover::before,
    .chc-search-link[data-chc-tooltip]:hover::before,
    .chc-cart-link[data-chc-tooltip]:focus-visible::before,
    .chc-account-link[data-chc-tooltip]:focus-visible::before,
    .chc-search-link[data-chc-tooltip]:focus-visible::before {
        opacity: 1;
        visibility: visible;
    }
}


/* Optional shared hover outline. */
.chc-cart-link:hover,
.chc-cart-link:focus,
.chc-account-link:hover,
.chc-account-link:focus,
.chc-search-link:hover,
.chc-search-link:focus {
    border: var(--chc-outline-hover-width) solid var(--chc-outline-hover-color) !important;
    outline: none !important;
}

/* v2.1.7: reliable WooCommerce cart quantity badge. */
.chc-cart-link .chc-cart-count {
    position: absolute !important;
    top: -6px !important;
    right: -6px !important;
    z-index: 6 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 17px !important;
    height: 17px !important;
    padding: 0 4px !important;
    border-radius: 999px !important;
    background: #ffcd18 !important;
    color: #061329 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 17px !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
}

.chc-cart-link .chc-cart-count:empty,
.chc-cart-link .chc-cart-count:is([aria-label^="0 "]) {
    display: none !important;
}
