/* FM Cart Mini Cart Styles - Force all styles with !important and WooCommerce selectors */

/* Cart Toggle Button */
.fm-cart-toggle,
body.woocommerce .fm-cart-toggle,
body.woocommerce-page .fm-cart-toggle,
body.single-product .fm-cart-toggle,
body.archive .fm-cart-toggle {
    background-color: #000000 !important;
    border: none !important;
    color: #ffffff !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease !important;
    padding: 0 !important;
    line-height: 1 !important;
    position: relative !important;
}

.fm-cart-toggle-float,
body.woocommerce .fm-cart-toggle-float,
body.woocommerce-page .fm-cart-toggle-float {
    position: fixed !important;
    top: auto !important;
    right: 20px !important;
    bottom: 20px !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 50% !important;
    z-index: 999998 !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2) !important;
}

/* Bottom-positioned float icon doesn't need admin bar offsets */

.fm-cart-toggle-static,
body.woocommerce .fm-cart-toggle-static,
body.woocommerce-page .fm-cart-toggle-static {
    position: relative !important;
    width: auto !important;
    height: auto !important;
    border-radius: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    gap: 8px !important;
}

.fm-cart-count,
body.woocommerce .fm-cart-count,
body.woocommerce-page .fm-cart-count {
    position: absolute !important;
    top: -8px !important;
    right: -8px !important;
    background-color: #941b14 !important;
    color: #ffffff !important;
    border-radius: 50% !important;
    min-width: 20px !important;
    height: 20px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 12px !important;
    font-weight: bold !important;
    line-height: 1 !important;
}

.fm-cart-toggle-static .fm-cart-count,
body.woocommerce .fm-cart-toggle-static .fm-cart-count,
body.woocommerce-page .fm-cart-toggle-static .fm-cart-count {
    position: static !important;
    top: auto !important;
    right: auto !important;
    margin-left: 0 !important;
    border-radius: 9999px !important;
    min-width: 20px !important;
    height: 20px !important;
    padding: 0 6px !important;
}

/* Static icon color should match site text (but keep readable) */
.fm-cart-toggle-static,
body.woocommerce .fm-cart-toggle-static,
body.woocommerce-page .fm-cart-toggle-static {
    color: #000000 !important;
}

/* Overlay */
.fm-cart-overlay,
body.woocommerce .fm-cart-overlay,
body.woocommerce-page .fm-cart-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    bottom: 0 !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    z-index: 999998 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.3s ease, visibility 0.3s ease !important;
}

body.admin-bar .fm-cart-overlay,
body.admin-bar.woocommerce .fm-cart-overlay,
body.admin-bar.woocommerce-page .fm-cart-overlay {
    top: 32px !important;
    height: auto !important;
    bottom: 0 !important;
}

@media screen and (max-width: 782px) {
    body.admin-bar .fm-cart-overlay,
    body.admin-bar.woocommerce .fm-cart-overlay,
    body.admin-bar.woocommerce-page .fm-cart-overlay {
        top: 46px !important;
        height: auto !important;
        bottom: 0 !important;
    }
}

.fm-cart-overlay.is-visible,
body.woocommerce .fm-cart-overlay.is-visible,
body.woocommerce-page .fm-cart-overlay.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Cart Panel */
.fm-cart-panel,
body.woocommerce .fm-cart-panel,
body.woocommerce-page .fm-cart-panel,
body.single-product .fm-cart-panel,
body.archive .fm-cart-panel {
    line-height: 1.5em !important;
    position: fixed !important;
    top: 0 !important;
    right: -400px !important;
    width: 100% !important;
    max-width: 400px !important;
    height: auto !important;
    bottom: 0 !important;
    background: #fff !important;
    z-index: 999999 !important;
    border: 1px solid #ccc !important;
    padding: 10px !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    transition: right 0.4s ease !important;
}

body.admin-bar .fm-cart-panel,
body.admin-bar.woocommerce .fm-cart-panel,
body.admin-bar.woocommerce-page .fm-cart-panel {
    top: 32px !important;
    height: auto !important;
    bottom: 0 !important;
}

@media screen and (max-width: 782px) {
    body.admin-bar .fm-cart-panel,
    body.admin-bar.woocommerce .fm-cart-panel,
    body.admin-bar.woocommerce-page .fm-cart-panel {
        top: 46px !important;
        height: auto !important;
        bottom: 0 !important;
    }
}

.fm-cart-panel.is-open,
body.woocommerce .fm-cart-panel.is-open,
body.woocommerce-page .fm-cart-panel.is-open {
    right: 0 !important;
}

/* Panel Header */
.fm-cart-panel-header,
body.woocommerce .fm-cart-panel-header,
body.woocommerce-page .fm-cart-panel-header {
    position: relative !important;
    padding: 10px 0 !important;
    overflow: visible !important;
}

.fm-cart-panel-header h2,
body.woocommerce .fm-cart-panel-header h2,
body.woocommerce-page .fm-cart-panel-header h2 {
    margin: 0 !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #000 !important;
}

.fm-cart-close,
body.woocommerce .fm-cart-close,
body.woocommerce-page .fm-cart-close {
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    font-size: 2em !important;
    cursor: pointer !important;
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    color: #000 !important;
    line-height: 1 !important;
    width: 32px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.fm-cart-close:hover,
body.woocommerce .fm-cart-close:hover,
body.woocommerce-page .fm-cart-close:hover {
    color: #666 !important;
}

/* Panel Body */
.fm-cart-panel-body,
body.woocommerce .fm-cart-panel-body,
body.woocommerce-page .fm-cart-panel-body {
    flex: 1 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
}

/* Inner wrapper (our markup) */
.fm-cart-panel-body-inner,
body.woocommerce .fm-cart-panel-body-inner,
body.woocommerce-page .fm-cart-panel-body-inner {
    flex: 1 !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

/* Cart Items */
.fm-cart-items,
body.woocommerce .fm-cart-items,
body.woocommerce-page .fm-cart-items {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: auto !important;
}

.fm-cart-item,
body.woocommerce .fm-cart-item,
body.woocommerce-page .fm-cart-item {
    display: flex !important;
    gap: 5px !important;
    align-items: center !important;
    padding: 15px 0 !important;
    border-bottom: 1px solid #e0e0e0 !important;
}

.fm-cart-item:first-child,
body.woocommerce .fm-cart-item:first-child,
body.woocommerce-page .fm-cart-item:first-child {
    padding-top: 0 !important;
}

.fm-cart-item:last-child,
body.woocommerce .fm-cart-item:last-child,
body.woocommerce-page .fm-cart-item:last-child {
    border-bottom: none !important;
}

.fm-cart-item > :first-child,
body.woocommerce .fm-cart-item > :first-child,
body.woocommerce-page .fm-cart-item > :first-child {
    display: flex !important;
    align-items: center !important;
}

.fm-cart-item-main,
body.woocommerce .fm-cart-item-main,
body.woocommerce-page .fm-cart-item-main {
    flex-grow: 1 !important;
}

/* Image Container */
.fm-cart-image-container,
body.woocommerce .fm-cart-image-container,
body.woocommerce-page .fm-cart-image-container {
    max-width: 72px !important;
    flex-shrink: 0 !important;
}

.fm-cart-image-container img,
body.woocommerce .fm-cart-image-container img,
body.woocommerce-page .fm-cart-image-container img {
    max-width: 100% !important;
    height: auto !important;
    border: 1px solid #E8E8E8 !important;
    display: block !important;
}

/* Product Name */
.fm-cart-product-name,
body.woocommerce .fm-cart-product-name,
body.woocommerce-page .fm-cart-product-name {
    font-size: 14px !important;
    padding: 0 !important;
    margin: 0 0 4px 0 !important;
    color: #000 !important;
    font-weight: 600 !important;
    display: inline-block !important;
}

.fm-cart-product-name a,
body.woocommerce .fm-cart-product-name a,
body.woocommerce-page .fm-cart-product-name a {
    display: inline-block !important;
    color: #000 !important;
    text-decoration: none !important;
}

.fm-cart-product-name a:hover,
body.woocommerce .fm-cart-product-name a:hover,
body.woocommerce-page .fm-cart-product-name a:hover {
    color: #666 !important;
}

/* Product Price */
.fm-cart-product-price,
body.woocommerce .fm-cart-product-price,
body.woocommerce-page .fm-cart-product-price,
.fm-cart-product-price *,
body.woocommerce .fm-cart-product-price *,
body.woocommerce-page .fm-cart-product-price * {
    font-size: 14px !important;
    color: #000 !important;
    margin-top: 4px !important;
}

.fm-cart-product-quantity,
body.woocommerce .fm-cart-product-quantity,
body.woocommerce-page .fm-cart-product-quantity {
    white-space: nowrap !important;
    color: #666 !important;
    margin-left: 5px !important;
}

/* Product Meta */
.fm-cart-item-meta,
body.woocommerce .fm-cart-item-meta,
body.woocommerce-page .fm-cart-item-meta,
.fm-cart-item-meta *,
body.woocommerce .fm-cart-item-meta *,
body.woocommerce-page .fm-cart-item-meta * {
    font-size: 13px !important;
    color: #666 !important;
    margin-top: 4px !important;
}

/* Remove Button */
.fm-cart-remove,
body.woocommerce .fm-cart-remove,
body.woocommerce-page .fm-cart-remove {
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    font-size: 20px !important;
    vertical-align: top !important;
    cursor: pointer !important;
    color: #666 !important;
    text-decoration: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 24px !important;
    height: 24px !important;
}

.fm-cart-remove:hover,
body.woocommerce .fm-cart-remove:hover,
body.woocommerce-page .fm-cart-remove:hover {
    color: #000 !important;
}

/* Empty Cart */
.fm-cart-empty,
body.woocommerce .fm-cart-empty,
body.woocommerce-page .fm-cart-empty {
    flex-grow: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 1em !important;
    font-weight: normal !important;
    padding: 60px 20px !important;
}

.fm-cart-empty-link,
body.woocommerce .fm-cart-empty-link,
body.woocommerce-page .fm-cart-empty-link {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
    text-decoration: none !important;
    color: #000 !important;
    text-align: center !important;
    max-width: 260px !important;
}

.fm-cart-empty-icon,
body.woocommerce .fm-cart-empty-icon,
body.woocommerce-page .fm-cart-empty-icon {
    width: 56px !important;
    height: 56px !important;
    border-radius: 50% !important;
    background: #f0f0f0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #666 !important;
    font-size: 22px !important;
}

.fm-cart-empty-text,
body.woocommerce .fm-cart-empty-text,
body.woocommerce-page .fm-cart-empty-text {
    font-size: 16px !important;
    color: #666 !important;
    font-weight: 500 !important;
}

.fm-cart-empty-cta,
body.woocommerce .fm-cart-empty-cta,
body.woocommerce-page .fm-cart-empty-cta {
    background: #000 !important;
    color: #fff !important;
    padding: 10px 14px !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    width: 100% !important;
}

.fm-cart-empty-link:hover .fm-cart-empty-cta {
    background: #333 !important;
}

/* Cart Footer */
.fm-cart-footer,
body.woocommerce .fm-cart-footer,
body.woocommerce-page .fm-cart-footer {
    margin-top: 1em !important;
    flex-shrink: 0 !important;
    margin-top: auto !important;
}

.fm-cart-subtotal,
body.woocommerce .fm-cart-subtotal,
body.woocommerce-page .fm-cart-subtotal {
    display: flex !important;
    justify-content: space-between !important;
    margin-bottom: 1em !important;
    padding: 20px 0 !important;
    border-top: 1px solid #e0e0e0 !important;
}

.fm-cart-subtotal :last-child,
body.woocommerce .fm-cart-subtotal :last-child,
body.woocommerce-page .fm-cart-subtotal :last-child {
    text-align: right !important;
}

.fm-cart-subtotal-text,
body.woocommerce .fm-cart-subtotal-text,
body.woocommerce-page .fm-cart-subtotal-text {
    font-weight: 600 !important;
    font-size: 18px !important;
    color: #000 !important;
}

.fm-cart-subtotal-value,
body.woocommerce .fm-cart-subtotal-value,
body.woocommerce-page .fm-cart-subtotal-value,
.fm-cart-subtotal-value *,
body.woocommerce .fm-cart-subtotal-value *,
body.woocommerce-page .fm-cart-subtotal-value * {
    font-weight: 600 !important;
    font-size: 18px !important;
    color: #000 !important;
}

/* Buttons */
.fm-cart-buttons,
body.woocommerce .fm-cart-buttons,
body.woocommerce-page .fm-cart-buttons {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
}

.fm-cart-buttons a,
body.woocommerce .fm-cart-buttons a,
body.woocommerce-page .fm-cart-buttons a {
    text-align: center !important;
    flex-grow: 1 !important;
}

.fm-cart-btn-cart,
.fm-cart-btn-checkout,
body.woocommerce .fm-cart-btn-cart,
body.woocommerce .fm-cart-btn-checkout,
body.woocommerce-page .fm-cart-btn-cart,
body.woocommerce-page .fm-cart-btn-checkout {
    width: 100% !important;
    padding: 14px 20px !important;
    text-align: center !important;
    background-color: #000000 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    display: inline-block !important;
    transition: background-color 0.2s ease !important;
}

.fm-cart-btn-cart:hover,
.fm-cart-btn-checkout:hover,
body.woocommerce .fm-cart-btn-cart:hover,
body.woocommerce .fm-cart-btn-checkout:hover,
body.woocommerce-page .fm-cart-btn-cart:hover,
body.woocommerce-page .fm-cart-btn-checkout:hover {
    background-color: #333333 !important;
    color: #ffffff !important;
}

/* Responsive */
@media (max-width: 480px) {
    .fm-cart-panel,
    body.woocommerce .fm-cart-panel,
    body.woocommerce-page .fm-cart-panel {
        max-width: 100% !important;
        right: -100% !important;
    }
    
    .fm-cart-image-container,
    body.woocommerce .fm-cart-image-container,
    body.woocommerce-page .fm-cart-image-container {
        max-width: 60px !important;
    }
}

/* --------------------------------------------------------------------------
   WooCommerce default mini-cart markup adapter (for Woo pages overriding HTML)
   If another theme/plugin injects the standard Woo mini-cart HTML inside our panel,
   this ensures it still matches our design.
--------------------------------------------------------------------------- */

#fm-cart-panel .woocommerce-mini-cart,
#fm-cart-panel ul.woocommerce-mini-cart {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: auto !important;
}

#fm-cart-panel .woocommerce-mini-cart-item,
#fm-cart-panel li.woocommerce-mini-cart-item {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    padding: 15px 0 !important;
    border-bottom: 1px solid #e0e0e0 !important;
}

#fm-cart-panel li.woocommerce-mini-cart-item:last-child {
    border-bottom: none !important;
}

/* Remove button (Woo default) */
#fm-cart-panel a.remove.remove_from_cart_button {
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    width: 24px !important;
    height: 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #666 !important;
    font-size: 20px !important;
    line-height: 1 !important;
    text-decoration: none !important;
    flex: 0 0 auto !important;
}

#fm-cart-panel a.remove.remove_from_cart_button:hover {
    color: #000 !important;
}

/* Thumbnail + title link wrapper */
#fm-cart-panel li.woocommerce-mini-cart-item > a:not(.remove) {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    color: #000 !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}

#fm-cart-panel li.woocommerce-mini-cart-item > a:not(.remove):hover {
    color: #666 !important;
}

/* Image */
#fm-cart-panel li.woocommerce-mini-cart-item img {
    width: 72px !important;
    height: 72px !important;
    object-fit: cover !important;
    border: 1px solid #E8E8E8 !important;
    display: block !important;
    flex: 0 0 auto !important;
}

@media (max-width: 480px) {
    #fm-cart-panel li.woocommerce-mini-cart-item img {
        width: 60px !important;
        height: 60px !important;
    }
}

/* Quantity/price line */
#fm-cart-panel span.quantity {
    display: block !important;
    font-size: 14px !important;
    color: #000 !important;
    margin-top: 4px !important;
    font-weight: 400 !important;
}

#fm-cart-panel span.quantity * {
    color: #000 !important;
    font-size: 14px !important;
}

/* Total */
#fm-cart-panel .woocommerce-mini-cart__total {
    display: flex !important;
    justify-content: space-between !important;
    margin: 0 !important;
    padding: 20px 0 !important;
    border-top: 1px solid #e0e0e0 !important;
    border-bottom: none !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #000 !important;
    margin-top: auto !important;
}

#fm-cart-panel .woocommerce-mini-cart__total * {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: #000 !important;
}

/* Buttons */
#fm-cart-panel .woocommerce-mini-cart__buttons {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
}

#fm-cart-panel .woocommerce-mini-cart__buttons a.button {
    width: 100% !important;
    padding: 14px 20px !important;
    text-align: center !important;
    background-color: #000000 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    display: inline-block !important;
}

#fm-cart-panel .woocommerce-mini-cart__buttons a.button:hover {
    background-color: #333333 !important;
    color: #ffffff !important;
}
