/**
 * WooCommerce Mini Cart Elementor widget
 * Isolated from WooCommerce + Elementor button/list styles.
 */

.elementor-widget-woo_mini_cart,
.elementor-widget-woo_mini_cart > .elementor-widget-container,
.elementor-element.elementor-widget-woo_mini_cart {
    overflow: visible !important;
    width: auto;
    max-width: 100%;
}

.mn-mini-cart {
    --mn-mc-primary: var(--mn-theme-primary, #2563eb);
    --mn-mc-text: var(--mn-theme-text, #334155);
    --mn-mc-muted: color-mix(in srgb, var(--mn-theme-text, #334155) 58%, #fff);
    --mn-mc-border: #e8edf2;
    --mn-mc-soft: #f8fafc;
    position: relative;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    width: auto;
    max-width: 100%;
    z-index: 40;
    line-height: 1;
    text-align: start;
}

.mn-mini-cart--notice {
    display: block;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    color: #9a3412;
    font-size: 0.9rem;
    line-height: 1.6;
}

.mn-mini-cart__trigger {
    all: unset;
    box-sizing: border-box;
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: auto !important;
    max-width: 100%;
    min-height: 0;
    margin: 0;
    padding: 0.45rem 0.7rem;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--mn-mc-text);
    font-family: inherit;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    appearance: none;
    box-shadow: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.mn-mini-cart__trigger:hover,
.mn-mini-cart.is-open .mn-mini-cart__trigger {
    background: color-mix(in srgb, var(--mn-mc-primary) 10%, transparent);
    color: var(--mn-mc-text);
}

.mn-mini-cart__trigger:focus-visible {
    outline: 2px solid var(--mn-mc-primary);
    outline-offset: 2px;
}

.mn-mini-cart__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    line-height: 1;
    color: inherit;
}

.mn-mini-cart__icon i,
.mn-mini-cart__icon svg {
    display: block;
    width: 1em;
    height: 1em;
}

.mn-mini-cart__label {
    display: inline-block;
    white-space: nowrap;
}

.mn-mini-cart__count {
    position: absolute;
    top: -2px;
    inset-inline-end: -2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: #e11d48;
    color: #fff !important;
    font-size: 0.65rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 4px 10px rgba(225, 29, 72, 0.35);
    pointer-events: none;
    z-index: 1;
}

.mn-mini-cart__count .mn-cart-count {
    display: inline;
    color: inherit;
    font: inherit;
}

.mn-mini-cart__count.is-hidden,
.mn-mini-cart__count[data-count="0"].is-zero-hidden {
    opacity: 0;
    transform: scale(0.6);
}

.mn-mini-cart__backdrop {
    display: none;
}

.mn-mini-cart__dropdown {
    position: absolute;
    top: calc(100% + 10px);
    z-index: 100;
    box-sizing: border-box;
    width: 340px;
    max-width: min(92vw, 380px);
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--mn-mc-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.14);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.mn-mini-cart--align-start .mn-mini-cart__dropdown {
    inset-inline-start: 0;
    inset-inline-end: auto;
}

.mn-mini-cart--align-center .mn-mini-cart__dropdown {
    inset-inline-start: 50%;
    inset-inline-end: auto;
    transform: translate(-50%, 8px);
}

.mn-mini-cart--align-end .mn-mini-cart__dropdown {
    inset-inline-end: 0;
    inset-inline-start: auto;
}

.mn-mini-cart.is-open .mn-mini-cart__dropdown,
.mn-mini-cart--open-hover:hover .mn-mini-cart__dropdown,
.mn-mini-cart--open-hover:focus-within .mn-mini-cart__dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.mn-mini-cart--align-center.is-open .mn-mini-cart__dropdown,
.mn-mini-cart--align-center.mn-mini-cart--open-hover:hover .mn-mini-cart__dropdown,
.mn-mini-cart--align-center.mn-mini-cart--open-hover:focus-within .mn-mini-cart__dropdown {
    transform: translate(-50%, 0);
}

.mn-mini-cart__panel-inner {
    display: flex;
    flex-direction: column;
    max-height: min(70vh, 480px);
    min-height: 0;
}

.mn-mini-cart__header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
    padding: 0.9rem 1rem;
    border-bottom: 1px solid var(--mn-mc-border);
    background: #fff;
}

.mn-mini-cart__title {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.3;
    color: color-mix(in srgb, var(--mn-mc-text) 88%, #000);
}

.mn-mini-cart__header-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.4rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mn-mc-primary) 12%, transparent);
    color: var(--mn-mc-primary);
    font-size: 0.78rem;
    font-weight: 800;
}

.mn-mini-cart__close {
    display: none;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: var(--mn-mc-soft);
    color: var(--mn-mc-text);
    cursor: pointer;
    box-shadow: none;
}

.mn-mini-cart__empty {
    padding: 2rem 1.25rem;
    text-align: center;
    color: var(--mn-mc-muted);
}

.mn-mini-cart__empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin-bottom: 0.75rem;
    border-radius: 50%;
    background: color-mix(in srgb, var(--mn-mc-primary) 10%, transparent);
    color: var(--mn-mc-primary);
    font-size: 1.25rem;
}

.mn-mini-cart__empty p {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.7;
}

.mn-mini-cart ul.mn-mini-cart__items {
    list-style: none !important;
    margin: 0 !important;
    padding: 0.35rem 0 !important;
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
}

.mn-mini-cart li.mn-mini-cart__item {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) 28px;
    gap: 0.7rem;
    align-items: center;
    margin: 0 !important;
    padding: 0.7rem 1rem !important;
    list-style: none !important;
    border: 0;
    background: transparent;
    float: none !important;
    width: auto !important;
    transition: background 0.15s ease;
}

.mn-mini-cart li.mn-mini-cart__item:hover {
    background: var(--mn-mc-soft);
}

.mn-mini-cart__item-thumb {
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    overflow: hidden;
    border-radius: 12px;
    border: 1px solid var(--mn-mc-border);
    background: var(--mn-mc-soft);
}

.mn-mini-cart__item-thumb a {
    display: block;
    width: 100%;
    height: 100%;
    line-height: 0;
}

.mn-mini-cart__item-thumb img,
.mn-mini-cart .mn-mini-cart__item-thumb img {
    display: block !important;
    float: none !important;
    width: 56px !important;
    max-width: none !important;
    height: 56px !important;
    margin: 0 !important;
    object-fit: cover;
    border: 0;
    box-shadow: none;
}

.mn-mini-cart__item-body {
    min-width: 0;
}

.mn-mini-cart__item-name {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: color-mix(in srgb, var(--mn-mc-text) 88%, #000);
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.45;
    text-decoration: none !important;
}

.mn-mini-cart__item-name:hover {
    color: var(--mn-mc-primary);
}

.mn-mini-cart__item-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.3rem;
    color: var(--mn-mc-muted);
    font-size: 0.82rem;
    font-weight: 600;
}

.mn-mini-cart__item-price,
.mn-mini-cart__item-price .amount,
.mn-mini-cart__item-price .woocommerce-Price-amount,
.mn-mini-cart__item-price bdi {
    display: inline !important;
    float: none !important;
    color: var(--mn-mc-primary);
    font-weight: 800;
}

.mn-mini-cart__item-body .variation {
    display: block;
    margin: 0.25rem 0 0;
    padding: 0;
    overflow: hidden;
}

.mn-mini-cart__item-body .variation dt,
.mn-mini-cart__item-body .variation dd {
    display: inline;
    float: none !important;
    margin: 0;
    padding: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--mn-mc-muted);
}

.mn-mini-cart__item-body .variation dd {
    margin-inline-end: 0.4rem;
}

.mn-mini-cart a.mn-mini-cart__remove {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 28px !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px;
    background: color-mix(in srgb, #e11d48 10%, #fff) !important;
    color: #e11d48 !important;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    text-indent: 0 !important;
    box-shadow: none !important;
}

.mn-mini-cart a.mn-mini-cart__remove:hover {
    background: color-mix(in srgb, #e11d48 18%, #fff) !important;
}

.mn-mini-cart__subtotal {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex: 0 0 auto;
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--mn-mc-border);
    background: var(--mn-mc-soft);
    color: var(--mn-mc-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.mn-mini-cart__subtotal strong,
.mn-mini-cart__subtotal .amount,
.mn-mini-cart__subtotal .woocommerce-Price-amount {
    display: inline !important;
    color: color-mix(in srgb, var(--mn-mc-text) 88%, #000);
    font-size: 1.02rem;
    font-weight: 800;
}

.mn-mini-cart__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    flex: 0 0 auto;
    padding: 0.85rem 1rem 1rem;
}

.mn-mini-cart__actions:has(.mn-mini-cart__btn:only-child) {
    grid-template-columns: 1fr;
}

.mn-mini-cart a.mn-mini-cart__btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    margin: 0 !important;
    padding: 0.6rem 0.8rem !important;
    border-radius: 12px;
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none !important;
    text-align: center;
    box-shadow: none;
}

.mn-mini-cart a.mn-mini-cart__btn--cart {
    background: #fff !important;
    color: var(--mn-mc-primary) !important;
    border: 1px solid color-mix(in srgb, var(--mn-mc-primary) 35%, var(--mn-mc-border)) !important;
}

.mn-mini-cart a.mn-mini-cart__btn--checkout {
    background: var(--mn-mc-primary) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: 0 10px 22px color-mix(in srgb, var(--mn-mc-primary) 28%, transparent);
}

@media (hover: none), (max-width: 767px) {
    .mn-mini-cart--open-hover:hover .mn-mini-cart__dropdown,
    .mn-mini-cart--open-hover:focus-within .mn-mini-cart__dropdown {
        opacity: 0;
        visibility: hidden;
        transform: translateY(8px);
        pointer-events: none;
    }

    .mn-mini-cart--open-hover.is-open .mn-mini-cart__dropdown {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}

@media (max-width: 767px) {
    .mn-mini-cart__label {
        display: none;
    }

    .mn-mini-cart__trigger {
        padding: 0.35rem;
        border-radius: 12px;
    }

    .mn-mini-cart__backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1190;
        border: 0;
        margin: 0;
        padding: 0;
        background: rgba(15, 23, 42, 0.45);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.2s ease, visibility 0.2s ease;
        cursor: pointer;
    }

    .mn-mini-cart.is-open .mn-mini-cart__backdrop {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .mn-mini-cart__dropdown,
    .mn-mini-cart--align-start .mn-mini-cart__dropdown,
    .mn-mini-cart--align-center .mn-mini-cart__dropdown,
    .mn-mini-cart--align-end .mn-mini-cart__dropdown {
        position: fixed;
        top: auto;
        bottom: 0;
        inset-inline: 0;
        width: auto !important;
        max-width: none;
        max-height: 82vh;
        border-radius: 22px 22px 0 0;
        transform: translateY(24px);
        z-index: 1200;
    }

    .mn-mini-cart.is-open .mn-mini-cart__dropdown,
    .mn-mini-cart--open-hover.is-open .mn-mini-cart__dropdown {
        transform: translateY(0);
    }

    .mn-mini-cart__panel-inner {
        max-height: 82vh;
    }

    .mn-mini-cart__close {
        display: inline-flex;
    }

    .mn-mini-cart__actions {
        grid-template-columns: 1fr;
        padding-bottom: calc(0.9rem + env(safe-area-inset-bottom));
    }

    body.mn-mini-cart-open {
        overflow: hidden;
    }
}
