/* ── Foodi360 Connector — Cart, mini cart, add to cart ─────
 *  Woodmart styles the markup itself (shop_table, cart_totals, div.quantity,
 *  widget_shopping_cart, single_add_to_cart_button). This file adds what it
 *  does not cover: option chips, add-on rows, loading states, toasts, and
 *  :where() fallbacks for other themes. Tokens: foodi360-public.css.
 * ───────────────────────────────────────────────────────── */

/* ── Quantity (Woodmart div.quantity; fallback below) ────── */
.foodi360-qty .foodi360-qty__input { -moz-appearance: textfield; appearance: textfield; }
.foodi360-qty .foodi360-qty__input::-webkit-outer-spin-button,
.foodi360-qty .foodi360-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.foodi360-qty--small { --wd-form-height: 32px; }
.foodi360-qty--small .foodi360-qty__input { font-size: 13px; }

:where(.foodi360-qty) { display: inline-flex; align-items: stretch; vertical-align: top; }
:where(.foodi360-qty .foodi360-qty__btn) {
    min-width: 30px;
    padding: 0 5px;
    border: 1px solid var(--foodi360-form-border);
    background: var(--foodi360-bg);
    color: var(--foodi360-strong);
    cursor: pointer;
}
:where(.foodi360-qty .foodi360-qty__input) {
    width: 40px;
    min-height: var(--foodi360-form-height);
    padding: 0;
    border: 1px solid var(--foodi360-form-border);
    border-inline: 0;
    text-align: center;
}

/* ── Add to cart form (single product: Woodmart form.cart) ── */
.foodi360-add-to-cart { margin-block: 20px; }
.foodi360-add-to-cart > .foodi360-add-to-cart__message { flex-basis: 100%; }
.foodi360-add-to-cart__submit .foodi360-spinner { margin-inline-end: 6px; }

.foodi360-option-group {
    margin: 0 0 20px;
    padding: 0;
    border: 0;
    min-width: 0;
}
.foodi360-option-group__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-block-end: 10px;
    padding: 0;
    color: var(--wd-title-color, var(--foodi360-title));
    font-weight: 600;
}
.foodi360-option-group__required {
    padding: 1px 8px;
    border-radius: 999px;
    background-color: color-mix(in srgb, var(--foodi360-primary) 12%, transparent);
    color: var(--foodi360-primary);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.6;
    text-transform: uppercase;
}

/* Option chips (radio / checkbox look like Woodmart's text swatches) */
.foodi360-choices { display: flex; flex-wrap: wrap; gap: 10px; }
.foodi360-choice {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 400;
    cursor: pointer;
}
.foodi360-choices .foodi360-choice {
    min-height: var(--foodi360-form-height);
    padding: 5px 15px;
    border: var(--wd-form-brd-width, 1px) solid var(--foodi360-form-border);
    border-radius: var(--foodi360-form-radius);
    color: var(--foodi360-strong);
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.foodi360-choices .foodi360-choice:hover { border-color: var(--foodi360-strong); }
.foodi360-choices .foodi360-choice:has(input:checked) {
    border-color: var(--foodi360-primary);
    box-shadow: inset 0 0 0 1px var(--foodi360-primary);
}
.foodi360-choices .foodi360-choice:has(input:focus-visible) { outline: 2px solid var(--foodi360-primary); outline-offset: 2px; }
.foodi360-choice input { margin: 0; accent-color: var(--foodi360-primary); }
.foodi360-choice__price { color: var(--foodi360-muted); font-size: 0.85em; }

/* Add-on rows: checkbox + quantity */
.foodi360-addons .foodi360-addon {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-block: 8px;
    border-block-end: 1px solid var(--foodi360-border);
}
.foodi360-addons .foodi360-addon:last-child { border-block-end: 0; }

/* ── Shared cart bits ────────────────────────────────────── */
.foodi360-cart-meta { color: var(--foodi360-muted); font-size: 0.9em; }
.foodi360-cart-warning { display: block; color: var(--foodi360-danger); font-size: 0.9em; }
.foodi360-cart-warning.wd-notice { font-size: inherit; }
.foodi360-cart-note { margin-block: 10px; color: var(--foodi360-muted); font-size: 0.9em; }

.foodi360-is-unavailable :is(img, .foodi360-cart__name, .wd-entities-title) { opacity: 0.5; }
.foodi360-is-updating { opacity: 0.5; pointer-events: none; transition: opacity 0.2s ease; }
[data-foodi360-cart-line] { transition: opacity 0.25s ease, transform 0.25s ease; }
.foodi360-is-removing { opacity: 0; transform: translateX(-20px); pointer-events: none; }
[dir="rtl"] .foodi360-is-removing { transform: translateX(20px); }

/* ── Mini cart (Woodmart widget_shopping_cart) ───────────── */
.foodi360-mini-cart__title { margin-block: 0 15px; }
.foodi360-header-dropdown .foodi360-mini-cart__title { display: none; }
.foodi360-mini-cart .cart-info div.quantity { margin-block: 6px 4px; }
.foodi360-mini-cart .cart-info span.quantity { display: block; color: var(--foodi360-muted); font-size: 0.9em; }
.foodi360-mini-cart__empty { text-align: center; }
.foodi360-mini-cart__empty .woocommerce-mini-cart__empty-message { margin-block: 10px 15px; }

:where(.foodi360-mini-cart__items) { margin: 0; padding: 0; list-style: none; }
:where(.foodi360-mini-cart__item) {
    position: relative;
    display: flex;
    gap: 12px;
    padding-block: 15px;
    padding-inline-end: 25px;
    border-block-end: 1px solid var(--foodi360-border);
}
:where(.foodi360-mini-cart__item .remove) { position: absolute; top: 15px; inset-inline-end: 0; text-decoration: none; }
:where(.foodi360-mini-cart__thumb) { width: 65px; height: 65px; object-fit: cover; }
:where(.foodi360-mini-cart__actions) { display: grid; gap: 10px; }
.foodi360-mini-cart__thumb { aspect-ratio: 1 / 1; object-fit: cover; }

/* ── Cart page (Woodmart .cart-content-wrapper) ──────────── */
.foodi360-cart__header { margin-block-end: 30px; }
.foodi360-cart__title { margin-block: 0 5px; }
.foodi360-cart__branch { margin: 0; color: var(--foodi360-muted); }
.foodi360-cart__thumb { aspect-ratio: 1 / 1; object-fit: cover; }
.foodi360-cart__meta { margin-block: 5px 0; }
.foodi360-cart__actions { justify-content: space-between; }
.foodi360-cart__checkout.foodi360-is-disabled { opacity: 0.5; pointer-events: none; }
.foodi360-mini-cart__actions .foodi360-is-disabled { opacity: 0.5; cursor: not-allowed; }
.foodi360-cart__notice { margin-block-end: 20px; }

/* Fallback two-column cart when Woodmart's cart CSS is not loaded */
:where(.foodi360-cart .cart-content-wrapper) { display: flex; flex-wrap: wrap; gap: 30px; align-items: flex-start; }
:where(.foodi360-cart .woocommerce-cart-form) { flex: 1 1 520px; min-width: 0; }
:where(.foodi360-cart .cart_totals) { flex: 0 1 360px; }
:where(.foodi360-cart .cart-totals-inner) { padding: 25px; border: 3px solid var(--foodi360-border-soft); }

/* ── Toasts (add to cart feedback) ───────────────────────── */
.foodi360-toasts {
    position: fixed;
    inset-block-start: 20px;
    inset-inline-end: 20px;
    z-index: 100000;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: min(360px, calc(100vw - 40px));
}
.foodi360-toast {
    padding: 15px 20px;
    border-radius: var(--foodi360-radius);
    color: #fff;
    box-shadow: 0 0 9px rgba(0, 0, 0, 0.1);
    opacity: 0;
    transform: translateX(24px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}
[dir="rtl"] .foodi360-toast { transform: translateX(-24px); }
.foodi360-toast--visible,
[dir="rtl"] .foodi360-toast--visible { opacity: 1; transform: none; }
.foodi360-toast--success { background-color: var(--foodi360-success); }
.foodi360-toast--error { background-color: var(--foodi360-warning); }

@media (max-width: 768.98px) {
    .foodi360-cart__actions { flex-direction: column; }
    .foodi360-cart__actions > * { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .foodi360-toast,
    [data-foodi360-cart-line] { transition: none; }
}
