/* =============================================================================
   Kinwi: Store List page — map buttons & filter area styling
   ============================================================================= */

/* Map type-control buttons (Map, Satellite) — Lora upload italic with spacing */
.gm-style .gm-style-mtc button {
    font-family: 'Lora upload', serif !important;
    font-style: italic !important;
}

/* Add spacing between Map and Satellite button groups */
.gm-style .gm-style-mtc {
    margin-right: 8px !important;
}

/* Terrain sub-menu — permanently hidden (only target the actual menu list/items) */
.gm-style .gm-style-mtc ul,
.gm-style .gm-style-mtc [role="menu"],
.gm-style .gm-style-mtc li[title*="terrain" i],
.gm-style .gm-style-mtc li[aria-label*="Terrain" i],
.gm-style .gm-style-mtc button[title*="terrain" i],
.gm-style .gm-style-mtc-bbw ul,
.gm-style .gm-style-mtc-bbw [role="menu"] {
    display: none !important;
}

/* Ensure the Dokan store list map has enough height for the Pegman to initialize properly */
#dokan-geolocation-locations-map {
    min-height: 250px !important;
}

/* --- Right-side map controls: default = black icons, hover = black bg / green icons --- */

/* Force Elementor to not break the Google Map defaults, but make the button bg green as requested */
.gm-style .gm-control-active,
.gm-style .gm-fullscreen-control,
.gm-style gmp-internal-camera-control button {
    background-color: #00967d !important;
}

/* Default state: make all control icons BLACK */
.gm-style .gm-control-active img,
.gm-style .gm-control-active svg,
.gm-style .gm-fullscreen-control img,
.gm-style .gm-fullscreen-control svg,
.gm-style gmp-internal-camera-control img,
.gm-style gmp-internal-camera-control svg {
    filter: brightness(0) !important;
}

/* ---------------------------------------------------- */
/* PEGMAN BULLETPROOF OVERLAY FIX
   Elementor's global rules break the complex Google Maps sprite injection.
   To guarantee visibility, we style the button to match the theme (green/black),
   hide Google's broken empty sprite container, and overlay our own Pegman SVG.
   Because of `pointer-events: none`, the real native Google Map functions still work perfectly underneath. */
/* ---------------------------------------------------- */

/* Force button to match theme colors */
.gm-style .gm-svpc {
    background-color: #00967d !important;
    position: relative !important;
    overflow: visible !important;
}

/* Hide the broken layout elements from Google so they don't clip */
.gm-style .gm-svpc > div {
    display: none !important;
}

/* Inject our own visible Pegman (drawn as a clean SVG matching the original) */
.gm-style .gm-svpc::after {
    content: '';
    display: block !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 20px !important;
    height: 38px !important;
    /* Official Google Maps High-res Vector Pegman */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 23 38'%3E%3Cpath d='M16.6 38.1h-5.5l-.2-2.9-.2 2.9H5.2L5 25.3l-.8 2a1.53 1.53 0 01-1.9.9l-1.2-.4a1.58 1.58 0 01-1-1.9v-.1c.3-.9 3.1-11.2 3.1-11.2a2.66 2.66 0 012.3-2l.6-.5a6.93 6.93 0 014.7-12 6.8 6.8 0 014.9 2 7 7 0 012 4.9 6.65 6.65 0 01-2.2 5l.7.5a2.78 2.78 0 012.4 2s2.9 11.2 2.9 11.3a1.53 1.53 0 01-.9 1.9l-1.3.4a1.63 1.63 0 01-1.9-.9l-.7-1.8zm-3.6-2h1.7l.2-15.8 1.9-.3 2.4 6.3.3-.1c-.2-.8-.8-3.2-2.8-10.9a.63.63 0 00-.6-.5h-.6l-1.1-.9h-1.9l-.3-2a4.83 4.83 0 003.5-4.7A4.78 4.78 0 0011 2.3h-.2a4.9 4.9 0 00-1.4 9.6l-.3 2H7.2l-1 .9h-.6a.74.74 0 00-.6.5c-2 7.5-2.7 10-3 10.9l.3.1L4.8 20l1.9.3.2 15.8h1.6l.6-8.4a1.52 1.52 0 011.5-1.4 1.5 1.5 0 011.5 1.4zm6.6-9.7' style='isolation:isolate' fill='%23333' opacity='.7'/%3E%3Cpath d='m5.9 13.6 1.1-.9h7.8l1.2.9' fill='%23ce592c'/%3E%3Cellipse cx='10.9' cy='13.1' rx='2.7' ry='.3' style='isolation:isolate' fill='%23ce592c' opacity='.5'/%3E%3Cpath d='m20.6 26.1-2.9-11.3a1.71 1.71 0 00-1.6-1.2H5.7a1.69 1.69 0 00-1.5 1.3L1.1 26.2a.61.61 0 00.3.7l1.1.4a.61.61 0 00.7-.3l2.7-6.7.2 16.8h3.6l.6-9.3a.47.47 0 01.44-.5h.06c.4 0 .4.2.5.5l.6 9.3h3.6l.2-16.8 2.5 6.6a.52.52 0 00.66.31l1.2-.4a.57.57 0 00.5-.7Z' fill='%23fdbf2d'/%3E%3Cpath d='m7 13.6 3.9 6.7 3.9-6.7' style='isolation:isolate' fill='%23cf572e' opacity='.6'/%3E%3Ccircle cx='10.9' cy='7' r='5.9' fill='%23fdbf2d'/%3E%3C/svg%3E") !important;
    background-size: contain !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    pointer-events: none !important; /* Crucial: lets the user drag the *real* ghost pegman underneath */
    z-index: 99 !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Hover state: black background */
.gm-style .gm-control-active:hover,
.gm-style .gm-fullscreen-control:hover,
.gm-style .gm-svpc:hover,
.gm-style gmp-internal-camera-control button:hover {
    background-color: #111111 !important;
}

/* ---------------------------------------------------- */
/* INFOWINDOW CONTENT AND CLOSE BUTTON FIXES */
/* ---------------------------------------------------- */

/* Apply Lora font to the address/location text inside the map popup */
.dokan-geo-map-info-window address {
    font-family: 'Lora upload', serif !important;
    font-style: italic !important;
    font-size: 14px !important;
    color: #333 !important;
    margin-top: 5px !important;
}

/* Fix Elementor button styles inflating the InfoWindow close button */
.gm-style-iw-c button.gm-ui-hover-effect {
    background-color: transparent !important; /* Revert to clean, native look */
    min-width: 20px !important;
    min-height: 20px !important;
    width: 20px !important;
    height: 20px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 50% !important;
    position: absolute !important;
    top: 5px !important;
    right: 5px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Force the child image/span (the X) to stay perfectly centered inside the button container and shrink it */
.gm-style-iw-c button.gm-ui-hover-effect span,
.gm-style-iw-c button.gm-ui-hover-effect img {
    margin: 0 !important;
    position: static !important;
    pointer-events: none !important;
    transform: scale(0.7) translateY(2px) !important; /* Scale down the internal cross and shift down slightly */
}

/* Ensure the X icon lines are properly colored (dark grey) rather than being filtered awkwardly */
.gm-style-iw-c button.gm-ui-hover-effect span {
    background-color: #666 !important;
}

/* Add a subtle green background hover effect for consistency */
.gm-style-iw-c button.gm-ui-hover-effect:hover {
    background-color: #00967d !important;
}
.gm-style-iw-c button.gm-ui-hover-effect:hover span {
    background-color: #fff !important;
}

/* Prevent horizontal slider/scrollbar from appearing inside the InfoWindow */
.gm-style-iw-d {
    overflow: hidden !important;
}

/* Hover state: green icons (excludes pegman so he stays his native color) */
.gm-style .gm-control-active:hover img,
.gm-style .gm-control-active:hover svg,
.gm-style .gm-fullscreen-control:hover img,
.gm-style .gm-fullscreen-control:hover svg,
.gm-style gmp-internal-camera-control button:hover img,
.gm-style gmp-internal-camera-control button:hover svg {
    filter: brightness(0) saturate(100%) invert(42%) sepia(93%) saturate(400%) hue-rotate(130deg) brightness(95%) contrast(101%) !important;
}

/* --- Filter area below the map --- */

/* "Total stores showing: X" text */
#dokan-store-listing-filter-wrap .left .store-count {
    font-family: 'Lora upload', serif !important;
    font-style: italic !important;
    font-size: 16px !important;
}

/* Filter button */
#dokan-store-listing-filter-wrap .right .dokan-store-list-filter-button {
    font-family: 'Lora upload', serif !important;
    font-style: italic !important;
    font-size: 16px !important;
}

/* "Sort by:" label */
#dokan-store-listing-filter-wrap .right .sort-by label {
    font-family: 'Lora upload', serif !important;
    font-style: italic !important;
    font-size: 16px !important;
}

/* Sort-by dropdown */
#dokan-store-listing-filter-wrap .right .sort-by select#stores_orderby {
    font-family: 'Lora upload', serif !important;
    font-style: italic !important;
    font-size: 16px !important;
}

/* Kinwi: Category box text – Lora upload font */
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-input .category-label,
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-input .category-items {
    font-family: 'Lora upload', serif !important;
    font-style: italic !important;
    font-size: 16px !important;
}

/* Kinwi: Category dropdown list items – Lora upload font */
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-box ul li {
    font-family: 'Lora upload', serif !important;
    font-style: italic !important;
    font-size: 15px !important;
}

/* Kinwi: Hide Featured and Open Now filter options */
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .featured.item {
    display: none !important;
}
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .open-now.item {
    display: none !important;
}

/* Kinwi: Hide Uncategorised option from category dropdown */
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-box ul li[data-slug="uncategorized"],
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-box ul li[data-slug="uncategorised"],
#store-category-dropdown option[value="uncategorized"],
#store-category-dropdown option[value="uncategorised"] {
    display: none !important;
}

/* Kinwi: Apply Lora font to the store list rating text */
#dokan-seller-listing-wrap .dokan-seller-rating .rating {
    font-family: 'Lora upload', serif !important;
    font-size: 16px !important;
}

/* Kinwi: Apply Lora font to 'No vendor found' text */
#dokan-seller-listing-wrap p.dokan-error {
    font-family: 'Lora upload', serif !important;
}

/* Kinwi: Make category search box full width */
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category.item,
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-input {
    width: 100% !important;
    max-width: 100% !important;
}

/* Kinwi: Allow category item text to expand fully */
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-input {
    display: flex !important;
    align-items: center !important;
}
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-input .category-items {
    max-width: none !important;
    width: 100% !important;
    flex: 1 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    padding-left: 5px !important;
}

/* Kinwi: Center text vertically in category dropdown boxes */
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-box ul li {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Kinwi: Add spacing above Apply filter button */
#dokan-store-listing-filter-form-wrap .apply-filter {
    margin-top: 15px !important;
}

/* Kinwi: Rating filter — keep Rating:, stars, & Up on one line with Lora font */
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-ratings {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
}
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-ratings label {
    font-family: 'Lora upload', serif !important;
    font-size: 16px !important;
    font-weight: bold !important;
    font-style: italic !important;
    white-space: nowrap !important;
    margin-right: 4px !important;
    color: #444 !important;
    padding-top: 3px !important;
}
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-ratings p.dokan-stars {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
}
#dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-ratings .dokan-stars span.up {
    font-family: 'Lora upload', serif !important;
    font-size: 16px !important;
    font-weight: bold !important;
    font-style: italic !important;
    margin-left: 4px !important;
    white-space: nowrap !important;
    color: #444 !important;
    position: relative !important;
    top: 0 !important;
    padding-top: 3px !important;
}

/* Kinwi: Show Cancel filter button on all screen sizes and fix styling */
#dokan-store-listing-filter-form-wrap .apply-filter #cancel-filter-btn {
    display: inline-block !important;
    border: 1px solid #999 !important;
    background-color: transparent !important;
    color: #333 !important;
    transition: all 0.3s ease !important;
}

#dokan-store-listing-filter-form-wrap .apply-filter #cancel-filter-btn:hover {
    border-color: #00967d !important;
    color: #00967d !important;
    background-color: transparent !important;
}

/* Kinwi: Responsive improvements for store list (<=625px) */
@media (max-width: 625px) {
    /* 1. Main filter wrap: stack items and reduce padding */
    #dokan-store-listing-filter-wrap {
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 5px !important;
        margin-bottom: 15px !important;
    }

    #dokan-store-listing-filter-wrap .left,
    #dokan-store-listing-filter-wrap .right {
        width: 100% !important;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        float: none !important;
    }

    #dokan-store-listing-filter-wrap .right {
        margin-top: 10px !important;
        gap: 10px !important;
    }

    /* 2. Smaller text and buttons */
    #dokan-store-listing-filter-wrap .item,
    #dokan-store-listing-filter-wrap .right .sort-by label,
    #dokan-store-listing-filter-wrap .right .sort-by select#stores_orderby,
    .dokan-store-list-filter-button {
        font-size: 14px !important;
    }

    /* 3. Filter form (search and category) */
    #dokan-store-listing-filter-form-wrap {
        padding: 15px !important;
    }

    #dokan-store-listing-filter-form-wrap .grid-item {
        margin-bottom: 15px !important;
    }

    /* 4. Fix overlap in category dropdown toggle - stack label and items */
    #dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-input {
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 10px 15px !important;
        height: auto !important;
        min-height: 60px !important;
    }

    #dokan-store-listing-filter-form-wrap .store-lists-other-filter-wrap .store-lists-category .category-input .category-items {
        padding-left: 0 !important;
        margin-top: 4px !important;
        white-space: normal !important; /* Allow wrapping */
        line-height: 1.3 !important;
        display: block !important;
    }

    /* 5. Make Apply/Cancel buttons fill the width */
    #dokan-store-listing-filter-form-wrap .apply-filter {
        display: flex !important;
        justify-content: space-between !important;
        gap: 10px !important;
        width: 100% !important;
    }

    #dokan-store-listing-filter-form-wrap .apply-filter button {
        flex: 1 !important;
        padding: 10px !important;
        white-space: nowrap !important;
    }
}

/* Kinwi: Style Dokan Follow Login Popup */
/* Ensure all text uses Lora upload 16px */
#dokan-login-form-popup,
#dokan-login-form-popup *:not(i),
#dokan-modal-login-form-popup *:not(i),
.iziModal-header-title,
.iziModal-content *:not(i),
.mfp-content:has(#dokan-login-form-popup) *:not(i),
.swal2-popup:has(#dokan-login-form-popup) *:not(i),
.mfp-wrap:has(#dokan-login-form-popup) .mfp-title,
.swal2-container:has(#dokan-login-form-popup) .swal2-title {
    font-family: "Lora upload" !important;
    font-size: 16px !important;
}

/* Ensure buttons are equal height and aligned */
#dokan-login-form-popup button#dokan-login-form-submit-btn,
#dokan-login-form-popup p.dokan-popup-create-an-account a.dokan-btn {
    height: 40px !important;
    line-height: 1 !important;
    padding: 0 20px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    border-radius: 0 !important;
    vertical-align: middle !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    margin: 0 !important;
}

#dokan-login-form-popup p.dokan-popup-create-an-account {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    vertical-align: middle !important;
}

#dokan-login-form-popup .dokan-form-group:has(#dokan-login-form-submit-btn) {
    display: inline-block !important;
    vertical-align: middle !important;
    margin-bottom: 0 !important;
}

/* Kinwi: My Account Vendors Following buttons styling */
.dokan-follow-store-button,
.dokan-follow-store-button *,
.woocommerce-account .dokan-follow-store-button,
.woocommerce-account .dokan-follow-store-button * {
    font-style: italic !important;
    font-weight: 400 !important;
}

/* Kinwi: Product and Category Titles styling */
/* Single product page main title */
.woocommerce div.product .product_title {
    font-family: "Gabriela upload" !important;
    font-size: 28px !important;
    font-weight: 500 !important;
    font-style: normal !important;
    line-height: 1.2 !important;
}

/* Product grid titles (e.g. on store list, shop page) — Lora (only .product_title is Gabriela) */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-category__title,
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product h3,
.elementor-widget-woocommerce-products .product .woocommerce-loop-product__title,
.elementor-widget-woocommerce-products .product .woocommerce-loop-category__title,
.elementor-widget-woocommerce-products .product h2,
.elementor-widget-woocommerce-products .product h3 {
    font-family: "Gabriela upload" !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    font-style: normal !important;
    line-height: 1.3 !important;
}

/* Kinwi: WooCommerce Buttons — matches global standard (09-misc-fixes.css) */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.elementor-widget-woocommerce-products .button {
    font-weight: 500 !important;
    font-style: italic !important;
}

/* Kinwi: Add space under header to prevent breadcrumbs from touching shadow */
main#content,
main.site-main,
.elementor-location-archive,
.elementor-location-single,
.woocommerce-breadcrumb {
    padding-top: 5px !important;
}

/* Kinwi: Single Product Tabs Headings — Lora (only .product_title is Gabriela) */
.woocommerce-tabs .panel h1,
.woocommerce-tabs .panel h2,
.woocommerce-tabs .panel h3,
.woocommerce-tabs .panel h4,
.woocommerce-tabs .panel h5,
.woocommerce-tabs .panel h6 {
    font-family: "Lora upload", "Lora", serif !important;
    font-weight: 500 !important;
    font-size: 18px !important;
}

/* Kinwi: Dokan Product Q&A specific overrides */
/* Revert the "Don't see the answer you're looking for?" h3 back to Lora upload */
.woocommerce-tabs .panel .bg-slate-100 h3,
#tab-dokan_product_qa .bg-slate-100 h3 {
    font-family: "Lora upload" !important;
}

/* Post your Question button */
.woocommerce-tabs .panel .bg-slate-100 button,
#tab-dokan_product_qa .bg-slate-100 button {
    font-weight: 400 !important;
}

/* Kinwi: Product Page & Related Products Price Font Size */
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.elementor-widget-woocommerce-product-price .price,
.woocommerce ul.products li.product .price {
    font-size: 17px !important;
}

/* Kinwi: Hide Product Meta (SKU, Category, Tag) from product pages */
.product_meta .sku_wrapper,
.product_meta .posted_in,
.product_meta .tagged_as {
    display: none !important;
}

/* Kinwi: Make quantity input arrows always visible across browsers */
/* :not(th):not(td) prevents this from corrupting the order detail table's Qty column */
html body .quantity:not(th):not(td),
html body .woocommerce .quantity:not(th):not(td),
html body .woocommerce-page .quantity:not(th):not(td),
html body .tinv-wishlist .quantity:not(th):not(td),
html body .wishlist_table .quantity:not(th):not(td) {
    display: inline-flex !important;
    align-items: stretch !important;
    justify-content: center !important;
    border: 1px solid #ddd !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    height: 40px !important;
    background: #fff !important;
    padding: 0 !important;
    margin: 0 10px 0 0 !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
    border-radius: 0 !important;
}

html body .kinwi-qty-btn {
    background-color: #f7f7f7 !important;
    color: #555 !important;
    border: none !important;
    height: 100% !important;
    width: 32px !important;
    min-width: 32px !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
    box-shadow: none !important;
    outline: none !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    border-radius: 0 !important;
}

html body .kinwi-qty-btn:hover {
    background-color: #e2e2e2 !important;
    color: #333 !important;
}

html body .quantity input[type="number"].qty,
html body .woocommerce .quantity input[type="number"].qty,
html body .tinv-wishlist .quantity input[type="number"].qty,
html body .wishlist_table .quantity input[type="number"].qty {
    -moz-appearance: textfield !important;
    appearance: textfield !important;
    border: none !important;
    border-left: 1px solid #ddd !important;
    border-right: 1px solid #ddd !important;
    border-radius: 0 !important;
    height: 100% !important;
    width: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: center !important;
    box-shadow: none !important;
    background: transparent !important;
    font-size: 16px !important;
    box-sizing: border-box !important;
    border-radius: 0 !important;
}

/* Completely hide native spinners */
html body input[type="number"].qty::-webkit-inner-spin-button,
html body input[type="number"].qty::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    display: none !important;
    margin: 0 !important;
}

/* Kinwi: Fix mobile cart table alignment when variation/vendor data is empty */
@media screen and (max-width: 768px) {
    .woocommerce table.cart td,
    .woocommerce-page table.cart td {
        clear: both !important;
        display: block !important;
    }
    
    .woocommerce table.cart dl.variation::after {
        content: "";
        display: table;
        clear: both;
    }
    
    .woocommerce table.cart dl.variation {
        display: block;
        width: 100%;
        clear: both;
    }
    
    .woocommerce table.cart td.product-thumbnail::before,
    .woocommerce-page table.cart td.product-thumbnail::before,
    .woocommerce table.cart td.product-remove::before,
    .woocommerce-page table.cart td.product-remove::before {
        display: none !important;
    }
}

/* Kinwi: Fix progress bar text overlap on tablet/smaller desktop screens */
@media screen and (min-width: 768px) and (max-width: 1050px) {
    /* Reset container */
    .wpmc-tabs-wrapper-breadcrumb .wpmc-tabs-list .wpmc-tab-item {
        display: block !important;
        padding-top: 0 !important;
        line-height: 53px !important; /* Establishes a 53px line box for perfect vertical-align: middle */
        box-sizing: border-box !important;
    border-radius: 0 !important;
        text-align: left !important; 
    }
    
    /* Ensure the first item doesn't get left padding and is centered */
    .wpmc-tabs-wrapper-breadcrumb .wpmc-tabs-list .wpmc-tab-item:first-child {
        padding-left: 0 !important;
        text-align: center !important;
    }

    /* Add extra padding to account for the overlapping left arrow on non-first items (arrow is 23px wide) */
    .wpmc-tabs-wrapper-breadcrumb .wpmc-tabs-list .wpmc-tab-item:not(:first-child) {
        padding-left: 28px !important; 
    }

    .wpmc-tabs-wrapper-breadcrumb .wpmc-tabs-list .wpmc-tab-item .wpmc-tab-text {
        white-space: normal !important;
        line-height: 1.1 !important; /* Override the 53px line-height for the text itself so wrapped lines are tight */
        font-size: 14px !important;
        text-align: left !important;
        display: inline-block !important;
        vertical-align: middle !important;
        max-width: calc(100% - 35px) !important;
        margin: 0 !important;
    }

    .wpmc-tabs-wrapper-breadcrumb .wpmc-tabs-list .wpmc-tab-item .wpmc-tab-number {
        display: inline-block !important;
        vertical-align: middle !important;
        float: none !important;
        margin: 0 !important;
        margin-right: 5px !important;
    }
}

/* Kinwi: Wrap multi-step checkout progress text on smaller screens */
@media screen and (max-width: 767px) {
    /* Progress bar text */
    .wpmc-tabs-wrapper-breadcrumb .wpmc-tab-item.current .wpmc-tab-text {
        white-space: normal !important;
        line-height: 1.2 !important;
        font-size: 14px !important;
        text-align: center !important;
        display: inline-block !important;
        vertical-align: middle !important;
        width: 100% !important;
        padding: 0 15px 0 5px !important; /* Leave room for arrow on the right */
        box-sizing: border-box !important;
    border-radius: 0 !important;
        margin-top: -4px !important; /* Adjust vertical centering */
        margin-left: 18px !important; /* Push past left arrow */
    }
    
    /* Responsive bottom buttons */
    .wpmc-nav-wrapper {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 10px !important;
    }
    .wpmc-nav-wrapper button {
        float: none !important;
        margin: 0 !important;
        padding: 10px 12px !important;
        font-size: 14px !important;
        flex: 1 1 auto;
        min-width: 30%;
    }

    /* Decrease order notes font size */
    textarea#order_comments {
        font-size: 13px !important;
    }
    textarea#order_comments::placeholder {
        font-size: 13px !important;
    }
}

/* Kinwi: Fix progress bar text overflowing on extra-small mobile screens (e.g. 280px) */
@media screen and (max-width: 380px) {
    .wpmc-tabs-wrapper-breadcrumb .wpmc-tab-item.current .wpmc-tab-text {
        font-size: 13px !important;
        line-height: 1.0 !important;
        margin-top: -8px !important;
    }
}

/* Kinwi: Add small padding below checkout buttons to separate from footer */
.wpmc-nav-wrapper,
form.woocommerce-checkout {
    padding-bottom: 20px !important;
    margin-bottom: 10px !important;
}

/* Kinwi: Align checkout checkboxes (Create an account / Ship to different address) */
.woocommerce-checkout .create-account label.checkbox,
.woocommerce-checkout #ship-to-different-address label.checkbox {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 10px !important;
}
.woocommerce-checkout .create-account label.checkbox input[type="checkbox"],
.woocommerce-checkout #ship-to-different-address label.checkbox input[type="checkbox"] {
    margin: 0 !important;
    position: static !important; /* Overrides any absolute positioning that breaks flex */
}

/* Kinwi: Fix product/category title line-height on mobile — Elementor kit CSS sets 1.5px (bug) on h2 below 880px */
@media (max-width: 880px) {
    .woocommerce div.product .product_title {
        font-size: 24px !important;
    }
    .woocommerce-loop-product__title,
    .woocommerce-loop-category__title,
    .woocommerce ul.products li.product h2,
    .woocommerce ul.products li.product h3 {
        font-size: 16px !important;
        line-height: 1.3 !important;
    }
}

/* Kinwi: Product titles — small mobile (≤480px) */
@media (max-width: 480px) {
    .woocommerce div.product .product_title {
        font-size: 22px !important;
    }
    .woocommerce-loop-product__title,
    .woocommerce-loop-category__title,
    .woocommerce ul.products li.product h2,
    .woocommerce ul.products li.product h3 {
        font-size: 15px !important;
    }
}

/* Kinwi: Product titles — extra-small mobile (≤400px) */
@media (max-width: 400px) {
    .woocommerce div.product .product_title {
        font-size: 20px !important;
    }
    .woocommerce-loop-product__title,
    .woocommerce-loop-category__title,
    .woocommerce ul.products li.product h2,
    .woocommerce ul.products li.product h3 {
        font-size: 14px !important;
    }
}

#kinwi-mobile-wishlist-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 24px !important;
    height: 36px !important;
    text-decoration: none !important;
    transition: transform 0.2s ease !important;
    
    /* Center it perfectly in the free space between the Logo and the Cart */
    position: static !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: none !important;
    z-index: 999 !important;
}
#kinwi-mobile-wishlist-icon svg {
    width: 20px !important;
    height: 20px !important;
    display: block !important;
    overflow: visible !important;
}
#kinwi-mobile-wishlist-icon:hover {
    transform: scale(1.15) !important;
}

/* Make sure the cart column lays out children horizontally */
@media (max-width: 880px) {
    .elementor-element-43d78b2,
    .elementor-element-43d78b2.e-con,
    .elementor-element-43d78b2 > .e-con-inner,
    .elementor-element-43d78b2 > .elementor-widget-wrap {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-end !important;
        flex-wrap: nowrap !important;
        position: static !important;
    }

    /* Prevent the Elementor Cart Widget wrapper from taking 100% width */
    .elementor-element-43d78b2 > .elementor-widget-wrap > .elementor-widget,
    .elementor-element-43d78b2 .elementor-widget-woocommerce-menu-cart,
    .elementor-element-43d78b2 .elementor-widget-container {
        width: auto !important;
        flex: 0 0 auto !important;
    }

    /* Aggressively strip ALL invisible footprint from the left of the Cart widget.
       This shrinks the cart\'s bounding box, maximizing the mathematical free space
       which forces the Heart\'s auto-margin to push it further right, away from the logo. */
    .elementor-element-43d78b2 .elementor-widget-woocommerce-menu-cart,
    .elementor-element-43d78b2 .elementor-widget-container,
    .elementor-element-43d78b2 .elementor-menu-cart__toggle,
    .elementor-element-43d78b2 .elementor-button--view-cart {
        margin-left: 0 !important;
        padding-left: 0 !important;
    }

    /* Keep right padding so the counter badge isn\'t cut off */
    .elementor-element-43d78b2 .elementor-menu-cart__toggle,
    .elementor-element-43d78b2 .elementor-button--view-cart {
        padding-right: 12px !important;
    }
}

/* Kinwi: Heart icon positioning.
   Now using a 5-column layout on mobile where the heart is its own flex item.
   The flex: 1 on both Search and Heart columns ensures they take equal space,
   centering the icons perfectly on either side of the logo. */

@media (max-width: 880px) {
    #kinwi-mobile-wishlist-icon {
        transform: none !important;
    }
    #kinwi-mobile-wishlist-icon:hover {
        transform: scale(1.15) !important;
    }
}
@media (min-width: 881px) {
    #kinwi-mobile-wishlist-icon {
        display: none !important;
    }
}

/* Disable sticky header in landscape mode on phones to prevent the virtual keyboard from obscuring the search input */
@media (max-height: 500px) and (orientation: landscape) {
    /* Un-fix the entire Elementor sticky ecosystem */
    html body .elementor-location-header, 
    html body header, 
    html body .elementor-section--fixed, 
    html body .elementor-sticky, 
    html body .elementor-sticky--active,
    html body [data-settings*="sticky"] {
        position: relative !important;
        top: 0 !important;
        transform: none !important;
        transition: none !important;
    }
    
    /* Aggressively un-fix any Superfly native buttons using max specificity */
    html body #sfm-mob-navbar, 
    html body .sfm-navicon, 
    html body .sfm-navicon-button, 
    html body .sfm-rollback,
    html body .superfly-menu-toggle {
        position: absolute !important;
    }
}

/* Kinwi: Store List Typography Updates */
.dokan-single-seller .store-data h2 a,
.dokan-single-seller .store-data h2 {
    font-family: "Gabriela upload" !important;
    font-weight: 500 !important;
    font-style: normal !important;
}

.dokan-single-seller .store-data .store-address {
    font-family: "Lora upload" !important;
    font-size: 16px !important;
}


/* --------------------------------------------------------------------------
 * Store Reviews Page Styling
 * -------------------------------------------------------------------------- */

/* Write a Review Button */
.dokan-store-reviews-list-wrap a.dokan-btn, 
#dokan-store-review-single a.dokan-btn,
button.add-review-btn.dokan-btn,
.dokan-btn.add-review-btn {
  font-family: "Lora upload" !important;
  font-size: 16px !important;
}

/* Review text and meta */
.dokan-store-reviews-list-wrap .kinwi-review-meta,
.dokan-store-reviews-list-wrap .kinwi-review-meta span,
.dokan-store-reviews-list-wrap .kinwi-review-description p,
#dokan-store-review-single .kinwi-review-meta,
#dokan-store-review-single .kinwi-review-meta span,
#dokan-store-review-single .kinwi-review-description p,
.kinwi-review-meta,
.kinwi-review-meta span,
.kinwi-review-description p {
  font-family: "Lora upload" !important;
  font-size: 16px !important;
  font-style: normal !important;
}

/* Review for: Product Name title */
.dokan-store-reviews-list-wrap .kinwi-product-review-title,
#dokan-store-review-single .kinwi-product-review-title,
.kinwi-product-review-title {
  font-family: "Lora upload" !important;
  font-size: 16px !important;
  margin-bottom: 8px !important;
}

.dokan-store-reviews-list-wrap .kinwi-product-review-title a,
#dokan-store-review-single .kinwi-product-review-title a,
.kinwi-product-review-title a {
  font-size: 16px !important;
  font-weight: 600 !important;
}
