/* Divine Chi Flow — update-safe EShop mini-cart override. */
#eshop-cart {
    --dcf-cart-ink: var(--bs-gray-900, #2e3336);
    --dcf-cart-muted: var(--bs-gray-600, #7c817f);
    --dcf-cart-surface: var(--bs-white, #fbf8f2);
    --dcf-cart-soft: #f4eee5;
    --dcf-cart-border: #e2d2be;
    --dcf-cart-accent: var(--bs-primary, #2f6b76);
    position: relative;
    z-index: 30;
    color: var(--dcf-cart-ink);
}

#eshop-cart .dcf-mini-cart__trigger {
    align-items: center;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    gap: 8px;
    text-decoration: none;
}

#eshop-cart .dcf-mini-cart__trigger:focus-visible,
#eshop-cart .dcf-mini-cart__close:focus-visible,
#eshop-cart .dcf-mini-cart__quantity-button:focus-visible,
#eshop-cart .dcf-mini-cart__remove:focus-visible,
#eshop-cart .dcf-mini-cart__view-cart:focus-visible {
    outline: 2px solid var(--dcf-cart-accent);
    outline-offset: 3px;
}

#eshop-cart .dcf-mini-cart__trigger-icon {
    display: inline-flex;
    height: 22px;
    width: 22px;
}

#eshop-cart .dcf-mini-cart__trigger-icon svg {
    display: block;
    fill: currentColor;
    height: 100%;
    width: 100%;
}

#eshop-cart .dcf-mini-cart__count {
    align-items: center;
    background: var(--dcf-cart-accent);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: .72rem;
    font-weight: 600;
    height: 25px;
    justify-content: center;
    line-height: 1;
    min-width: 25px;
    padding: 0 6px;
}

#eshop-cart .dcf-mini-cart__panel {
    background: var(--dcf-cart-surface);
    border: 1px solid var(--dcf-cart-border);
    box-shadow: 0 18px 45px rgba(46, 51, 54, .18);
    box-sizing: border-box;
    color: var(--dcf-cart-ink);
    max-height: min(740px, calc(100vh - 100px));
    overflow: auto;
    left: 0;
    position: absolute;
    right: auto;
    top: calc(100% + 16px);
    transform: translateX(var(--dcf-mini-cart-shift, 0px));
    width: min(540px, calc(100vw - 24px));
}

#eshop-cart .dcf-mini-cart__panel::before {
    background: var(--dcf-cart-surface);
    border-left: 1px solid var(--dcf-cart-border);
    border-top: 1px solid var(--dcf-cart-border);
    content: "";
    height: 14px;
    position: absolute;
    left: 28px;
    top: -8px;
    transform: rotate(45deg);
    width: 14px;
}

#eshop-cart .dcf-mini-cart__header {
    align-items: center;
    border-bottom: 1px solid var(--dcf-cart-border);
    display: flex;
    justify-content: space-between;
    padding: 23px 28px;
}

#eshop-cart .dcf-mini-cart__title {
    font-size: .84rem;
    font-weight: 600;
    letter-spacing: .16em;
    margin: 0;
    text-transform: uppercase;
}

#eshop-cart .dcf-mini-cart__title span:last-child { color: var(--dcf-cart-muted); }

#eshop-cart .dcf-mini-cart__close {
    appearance: none;
    background: transparent;
    border: 0;
    color: var(--dcf-cart-muted);
    cursor: pointer;
    font-size: 1.55rem;
    line-height: 1;
    margin: -8px;
    min-height: 44px;
    min-width: 44px;
    padding: 0;
}

#eshop-cart .dcf-mini-cart__notice {
    background: #f9ece7;
    border-bottom: 1px solid #e6b5a6;
    color: #843f28;
    font-size: .84rem;
    line-height: 1.45;
    padding: 12px 28px;
}

#eshop-cart .dcf-mini-cart__items { padding: 0 28px; }

#eshop-cart .dcf-mini-cart__item {
    display: grid;
    gap: 16px;
    grid-template-columns: 82px minmax(0, 1fr);
    padding: 18px 0;
}

#eshop-cart .dcf-mini-cart__item + .dcf-mini-cart__item { border-top: 1px solid var(--dcf-cart-border); }

#eshop-cart .dcf-mini-cart__image {
    align-self: center;
    background: var(--dcf-cart-soft);
    display: block;
    height: 82px;
    overflow: hidden;
    width: 82px;
}

#eshop-cart .dcf-mini-cart__image img { height: 100%; object-fit: cover; width: 100%; }

#eshop-cart .dcf-mini-cart__item-main { min-width: 0; }

#eshop-cart .dcf-mini-cart__item-heading {
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-width: 0;
    white-space: normal !important; /* Host nav CSS sets nowrap on the cart module. */
}

#eshop-cart .dcf-mini-cart__product-name {
    color: inherit;
    flex: 1 1 auto;
    font-size: .98rem;
    font-weight: 600;
    line-height: 1.35;
    min-width: 0;
    overflow-wrap: anywhere;
    text-decoration: none;
    white-space: normal !important;
    word-break: normal;
}

#eshop-cart .dcf-mini-cart__product-name:hover,
#eshop-cart .dcf-mini-cart__view-cart:hover { color: var(--dcf-cart-accent); }

#eshop-cart .dcf-mini-cart__line-price { font-size: .98rem; font-weight: 500; white-space: nowrap; }

#eshop-cart .dcf-mini-cart__options {
    color: var(--dcf-cart-muted);
    font-size: .8rem;
    line-height: 1.4;
    margin: 5px 0 0;
}

#eshop-cart .dcf-mini-cart__options span:not(:last-child)::after { content: ", "; }

#eshop-cart .dcf-mini-cart__item-actions {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-top: 12px;
}

#eshop-cart .eshop-quantity.dcf-mini-cart__quantity {
    background: var(--dcf-cart-surface);
    border: 1px solid var(--dcf-cart-border) !important;
    border-bottom: 1px solid var(--dcf-cart-border) !important;
    border-radius: 999px;
    box-sizing: border-box;
    display: grid;
    gap: 0 !important;
    grid-template-columns: 36px minmax(0, 1fr) 36px;
    height: 44px;
    margin: 0;
    overflow: hidden;
    width: 120px;
}

#eshop-cart .dcf-mini-cart__quantity-button {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--dcf-cart-ink);
    cursor: pointer;
    display: flex;
    font-size: 1.2rem;
    justify-content: center;
    min-width: 0;
    padding: 0;
}

#eshop-cart .dcf-mini-cart__quantity-value {
    appearance: textfield;
    background: transparent;
    border: 0;
    color: var(--dcf-cart-ink);
    font: inherit;
    height: 100%;
    min-width: 0;
    padding: 0;
    text-align: center;
    width: 100% !important;
}

#eshop-cart .dcf-mini-cart__quantity-value::-webkit-inner-spin-button,
#eshop-cart .dcf-mini-cart__quantity-value::-webkit-outer-spin-button { appearance: none; margin: 0; }

#eshop-cart .dcf-mini-cart__remove,
#eshop-cart .dcf-mini-cart__view-cart {
    color: var(--dcf-cart-muted);
    font-size: .82rem;
    text-decoration: underline;
    text-underline-offset: 3px;
}

#eshop-cart .dcf-mini-cart__totals {
    background: var(--dcf-cart-soft);
    border-top: 1px solid var(--dcf-cart-border);
    margin: 0;
    padding: 17px 28px;
}

#eshop-cart .dcf-mini-cart__totals > div {
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

#eshop-cart .dcf-mini-cart__totals > div + div { margin-top: 7px; }
#eshop-cart .dcf-mini-cart__totals dt { color: var(--dcf-cart-muted); font-weight: 400; }
#eshop-cart .dcf-mini-cart__totals dd { font-weight: 600; margin: 0; text-align: right; }
#eshop-cart .dcf-mini-cart__totals > div:last-child dd { font-size: 1.35rem; font-weight: 500; }

#eshop-cart .dcf-mini-cart__footer { padding: 20px 28px 22px; text-align: center; }

#eshop-cart .dcf-mini-cart__checkout {
    align-items: center;
    background: var(--dcf-cart-accent);
    border-color: var(--dcf-cart-accent);
    box-sizing: border-box;
    color: #fff;
    display: flex;
    justify-content: center;
    letter-spacing: .14em;
    min-height: 52px;
    width: 100%;
}

#eshop-cart .dcf-mini-cart__checkout:hover { filter: brightness(.92); }
#eshop-cart .dcf-mini-cart__view-cart {
    display: block;
    margin: 16px auto 0;
    width: fit-content;
}

#eshop-cart .dcf-mini-cart__empty { padding: 36px 28px; text-align: center; }
#eshop-cart .dcf-mini-cart__empty p { margin: 0 0 20px; }

@media (max-width: 639px) {
    #eshop-cart .dcf-mini-cart__panel {
        left: auto;
        max-height: calc(100vh - 72px);
        position: fixed;
        right: 12px;
        top: 60px;
    }

    #eshop-cart .dcf-mini-cart__header,
    #eshop-cart .dcf-mini-cart__footer { padding-left: 20px; padding-right: 20px; }
    #eshop-cart .dcf-mini-cart__items { padding: 0 20px; }
    #eshop-cart .dcf-mini-cart__totals { padding-left: 20px; padding-right: 20px; }
}

@media (prefers-reduced-motion: reduce) {
    #eshop-cart .dcf-mini-cart__panel { scroll-behavior: auto; }
}
