/*
 * .gp-cart-drawer — slide-out cart panel + backdrop.
 *
 * Triggered by [data-gp-cart-toggle]; JS adds .is-open to both elements.
 * WooCommerce mini-cart output is rendered inside .widget_shopping_cart_content.
 */

/* ── Cart icon button (utility bar + mobile menu) ────────────────────── */

.gp-cart-btn-wrap {
    display: inline-flex;
    align-items: center;
}

.gp-cart-btn {
    position: relative;
    background: transparent;
    border: 0;
    padding: 0;
    color: var(--gp-text);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    transition: color var(--gp-dur-base) var(--gp-ease-standard);
    line-height: 1;
}
.gp-cart-btn:hover { color: var(--gp-gold); }
.gp-cart-btn svg   { display: block; }

.gp-cart-btn__badge {
    position: absolute;
    top: -6px;
    right: -8px;
    background: var(--gp-gold);
    color: var(--gp-text-on-gold);
    font-family: var(--gp-font-mono);
    font-size: 9px;
    font-weight: 500;
    min-width: 16px;
    height: 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    padding: 0 2px;
}

/* ── Backdrop ─────────────────────────────────────────────────────────── */

.gp-cart-overlay {
    position: fixed;
    inset: 0;
    z-index: 290;
    background: rgba(0, 0, 0, 0.6);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--gp-dur-slow) var(--gp-ease-standard);
}
.gp-cart-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
}

/* ── Drawer panel ─────────────────────────────────────────────────────── */

.gp-cart-drawer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100%;
    width: 380px;
    max-width: 100vw;
    z-index: 300;
    background: var(--gp-surface);
    border-left: var(--gp-border-w) solid var(--gp-border);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform var(--gp-dur-slow) var(--gp-ease-out);
}
.gp-cart-drawer.is-open {
    transform: translateX(0);
}

/* Lock body scroll when drawer is open */
body.gp-cart-open { overflow: hidden; }

/* ── Drawer header ────────────────────────────────────────────────────── */

.gp-cart-drawer__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: var(--gp-border-w-strong) solid var(--gp-gold);
    flex-shrink: 0;
}
.gp-cart-drawer__title {
    font-family: var(--gp-font-display);
    font-size: 22px;
    font-weight: 400;
    letter-spacing: var(--gp-ls-display-wide);
    text-transform: uppercase;
    color: var(--gp-text);
    line-height: 1;
}
.gp-cart-drawer__close {
    background: transparent;
    border: 0;
    color: var(--gp-text-dim);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    padding: 4px 8px;
    transition: color var(--gp-dur-base) var(--gp-ease-standard);
}
.gp-cart-drawer__close:hover { color: var(--gp-gold); }

/* ── Drawer body (scrollable) ─────────────────────────────────────────── */

.gp-cart-drawer__body {
    flex: 1 1 auto;
    overflow-y: auto;
}

/* ── WooCommerce mini-cart skin ──────────────────────────────────────── */

/* Product list */
.gp-cart-drawer .woocommerce-mini-cart {
    list-style: none;
    margin: 0;
    padding: 0;
}
.gp-cart-drawer .woocommerce-mini-cart-item {
    display: flex;
    align-items: flex-start;
    gap: var(--gp-space-4);
    padding: 16px 24px;
    border-bottom: var(--gp-border-w) solid var(--gp-border);
}

/* Thumbnail */
.gp-cart-drawer .woocommerce-mini-cart-item img {
    width: 60px;
    height: 60px;
    object-fit: cover;
    flex-shrink: 0;
}

/* Remove button (WC renders it as the first child <a>) */
.gp-cart-drawer .woocommerce-mini-cart-item .remove_from_cart_button {
    order: 3;
    margin-left: auto;
    flex-shrink: 0;
    font-size: 18px;
    line-height: 1;
    color: var(--gp-text-muted);
    text-decoration: none;
    transition: color var(--gp-dur-base) var(--gp-ease-standard);
}
.gp-cart-drawer .woocommerce-mini-cart-item .remove_from_cart_button:hover {
    color: var(--gp-gold);
}

/* Product link (name + image) */
.gp-cart-drawer .woocommerce-mini-cart-item > a:not(.remove_from_cart_button) {
    display: flex;
    gap: var(--gp-space-3);
    text-decoration: none;
    flex: 1 1 auto;
}

/* Product name hover */
.gp-cart-drawer .woocommerce-mini-cart-item > a:not(.remove_from_cart_button):hover {
    color: var(--gp-gold);
}

/* Quantity × price line */
.gp-cart-drawer .woocommerce-mini-cart-item .quantity {
    display: block;
    font-family: var(--gp-font-mono);
    font-size: 12px;
    letter-spacing: var(--gp-ls-meta);
    color: var(--gp-text-dim);
    margin-top: 4px;
}
.gp-cart-drawer .woocommerce-mini-cart-item .woocommerce-Price-amount {
    color: var(--gp-gold);
}

/* Product title text */
.gp-cart-drawer .woocommerce-mini-cart-item a:not(.remove_from_cart_button) {
    color: var(--gp-text);
    font-family: var(--gp-font-body);
    font-size: 14px;
    line-height: var(--gp-lh-body);
}

/* ── Subtotal row ─────────────────────────────────────────────────────── */

.gp-cart-drawer .woocommerce-mini-cart__total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    margin: 0;
    border-bottom: var(--gp-border-w) solid var(--gp-border);
    font-family: var(--gp-font-mono);
    font-size: var(--gp-fs-meta);
    letter-spacing: var(--gp-ls-meta);
    text-transform: uppercase;
    color: var(--gp-text-dim);
}
.gp-cart-drawer .woocommerce-mini-cart__total .woocommerce-Price-amount {
    font-size: 16px;
    color: var(--gp-text);
    letter-spacing: 0;
}

/* ── Checkout buttons ─────────────────────────────────────────────────── */

.gp-cart-drawer .woocommerce-mini-cart__buttons {
    display: flex;
    flex-direction: column;
    gap: var(--gp-space-2);
    padding: 20px 24px;
    margin: 0;
}
.gp-cart-drawer .woocommerce-mini-cart__buttons a {
    display: block;
    text-align: center;
    padding: 14px var(--gp-space-6);
    font-family: var(--gp-font-display);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: var(--gp-ls-nav);
    text-transform: uppercase;
    text-decoration: none;
    line-height: 1;
    transition:
        background var(--gp-dur-base) var(--gp-ease-standard),
        color var(--gp-dur-base) var(--gp-ease-standard),
        border-color var(--gp-dur-base) var(--gp-ease-standard);
}

/* "View cart" — ghost bordered button */
.gp-cart-drawer .woocommerce-mini-cart__buttons .button:not(.checkout) {
    background: transparent;
    border: var(--gp-border-w-strong) solid var(--gp-border-strong);
    color: var(--gp-text);
}
.gp-cart-drawer .woocommerce-mini-cart__buttons .button:not(.checkout):hover {
    border-color: var(--gp-gold);
    color: var(--gp-gold);
}

/* "Checkout" — gold filled button */
.gp-cart-drawer .woocommerce-mini-cart__buttons .checkout {
    background: var(--gp-gold);
    border: var(--gp-border-w-strong) solid var(--gp-gold);
    color: var(--gp-text-on-gold);
}
.gp-cart-drawer .woocommerce-mini-cart__buttons .checkout:hover {
    background: var(--gp-gold-deep);
    border-color: var(--gp-gold-deep);
    color: var(--gp-text-on-gold);
}

/* ── Empty cart state ─────────────────────────────────────────────────── */

.gp-cart-drawer .woocommerce-mini-cart__empty-message {
    padding: 40px 24px;
    text-align: center;
    font-family: var(--gp-font-mono);
    font-size: var(--gp-fs-meta);
    letter-spacing: var(--gp-ls-meta);
    text-transform: uppercase;
    color: var(--gp-text-muted);
}

/* ── Responsive ──────────────────────────────────────────────────────── */

@media (max-width: 480px) {
    .gp-cart-drawer { width: 100vw; }
}
