/**
 * AOPC Cart Page — modern classic cart override.
 */

/* Theme cart chrome suppression / isolation */
body.aopc-full-cart .woocommerce-breadcrumb,
body.aopc-full-cart .breadcrumbs,
body.aopc-full-cart .breadcrumb,
body.aopc-full-cart #breadcrumbs,
body.aopc-full-cart .ux-breadcrumbs,
body.aopc-full-cart .cart-page-title,
body.aopc-full-cart .shop-page-title,
body.aopc-full-cart .page-title,
body.aopc-full-cart .entry-title,
body.aopc-full-cart .page-header,
body.aopc-full-cart header.entry-header {
    display: none !important;
}

body.aopc-full-cart main,
body.aopc-full-cart article,
body.aopc-full-cart .page-wrapper,
body.aopc-full-cart .entry-content {
    overflow: visible !important;
}

body.aopc-full-cart .woocommerce {
    width: 100%;
}

body.aopc-full-cart .woocommerce > .woocommerce-notices-wrapper {
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}

.aopc-cart-page,
.aopc-cart-page * {
    box-sizing: border-box;
}

.aopc-cart-page {
    --aopc-cart-text: var(--aopc-text-color, currentColor);
    --aopc-cart-muted: var(--aopc-muted-color, #64748b);
    --aopc-cart-border: #dbe3ee;
    --aopc-cart-soft: #f8fafc;
    --aopc-cart-panel: var(--aopc-drawer-bg, #ffffff);
    --aopc-cart-accent: var(--aopc-accent, #476b99);
    max-width: 1280px;
    margin: 0 auto;
    padding: 28px 24px 64px;
    background: transparent;
    color: var(--aopc-cart-text);
    font-size: inherit;
}

.aopc-cart-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--aopc-cart-border);
}

.aopc-cart-kicker {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--aopc-cart-muted);
}

.aopc-cart-title {
    margin: 0;
    font-size: var(--aopc-heading-size, clamp(28px, 3vw, 42px));
    line-height: 1.05;
    font-weight: 650;
    letter-spacing: -.04em;
    color: var(--aopc-heading-color, var(--aopc-cart-text));
}

.aopc-cart-continue {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 16px;
    border: 1px solid var(--aopc-cart-border);
    border-radius: 999px;
    color: var(--aopc-cart-text);
    background: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 550;
    white-space: nowrap;
}

.aopc-cart-continue:hover {
    color: var(--aopc-cart-text);
    border-color: #b8c5d7;
    background: var(--aopc-cart-soft);
}

.aopc-cart-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
}

.aopc-cart-left {
    min-width: 0;
}

.aopc-cart-right {
    min-width: 0;
}

.aopc-cart-summary-sticky {
    position: sticky;
    top: var(--aopc-cart-sticky-top, 96px);
    z-index: 1;
}


.aopc-cart-summary-panel {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--aopc-cart-border);
    border-radius: calc(var(--aopc-radius, 10px) + 12px);
    background: var(--aopc-cart-panel);
    box-shadow: 0 24px 70px rgba(15, 23, 42, .08);
}

.aopc-cart-summary-panel.aopc-is-refreshing::after,
.aopc-cart-items-target.aopc-is-refreshing::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, .55);
    pointer-events: none;
}

.aopc-cart-items-target,
.aopc-cart-summary-panel {
    position: relative;
}

.aopc-cart-items {
    border-top: 1px solid var(--aopc-cart-border);
}

.aopc-cart-item {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 18px;
    padding: 22px 0;
    border-bottom: 1px solid var(--aopc-cart-border);
}

.aopc-cart-item__media a,
.aopc-cart-item__media {
    display: block;
}

.aopc-cart-item__media img {
    display: block;
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: calc(var(--aopc-radius, 10px) + 4px);
    background: var(--aopc-cart-soft);
}

.aopc-cart-item__main {
    min-width: 0;
}

.aopc-cart-item__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.aopc-cart-item__name {
    display: inline-block;
    color: var(--aopc-cart-text);
    text-decoration: none;
    font-weight: 650;
    line-height: 1.3;
}

.aopc-cart-item__name:hover {
    color: var(--aopc-cart-accent);
}

.aopc-cart-item__meta,
.aopc-cart-item__meta p,
.aopc-cart-item__meta dl,
.aopc-cart-item__meta dd,
.aopc-cart-item__meta dt {
    margin: 4px 0 0;
    color: var(--aopc-cart-muted);
    font-size: 13px;
    line-height: 1.45;
}

.aopc-cart-item__price,
.aopc-cart-item__subtotal {
    color: var(--aopc-cart-text);
    font-weight: 600;
    white-space: nowrap;
}

.aopc-cart-item__bottom {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.aopc-cart-item__subtotal {
    margin-left: auto;
}

.aopc-qty {
    align-items: center !important;
    background: #f8fafc !important;
    border: 1px solid #d9e1ec !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    display: inline-flex !important;
    height: 34px !important;
    min-width: 98px !important;
    overflow: hidden !important;
}

.aopc-qty__btn {
    align-items: center !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: #40566f !important;
    display: inline-flex !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    height: 32px !important;
    justify-content: center !important;
    line-height: 1 !important;
    min-width: 30px !important;
    padding: 0 !important;
    width: 30px !important;
}

.aopc-qty__btn:hover {
    background: #eef3f8 !important;
    color: #111827 !important;
}

.aopc-qty__input {
    -moz-appearance: textfield !important;
    appearance: textfield !important;
    background: #fff !important;
    border-bottom: 0 !important;
    border-left: 1px solid #d9e1ec !important;
    border-radius: 0 !important;
    border-right: 1px solid #d9e1ec !important;
    border-top: 0 !important;
    box-shadow: none !important;
    color: #334155 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    height: 32px !important;
    line-height: 32px !important;
    margin: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    width: 38px !important;
}

.aopc-qty__input::-webkit-inner-spin-button,
.aopc-qty__input::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

.aopc-cart-item__remove {
    appearance: none;
    border: 0;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    padding: 0 2px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.aopc-cart-item__remove:hover {
    color: #ef4444;
}

.aopc-cart-native-actions {
    display: none;
}

.aopc-cart-summary-inner {
    float: none !important;
    width: auto !important;
    padding: 24px;
}

.aopc-cart-summary-title {
    margin: 0 0 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--aopc-cart-border);
    color: var(--aopc-cart-text);
    font-size: 24px;
    line-height: 1.15;
    font-weight: 650;
    letter-spacing: -.03em;
}

.aopc-cart-coupon {
    margin: 0 0 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--aopc-cart-border);
}

.aopc-cart-coupon__row {
    display: flex;
    gap: 8px;
}

.aopc-cart-coupon__input {
    flex: 1 1 auto;
    min-width: 0;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 1px solid var(--aopc-cart-border) !important;
    border-radius: var(--aopc-radius, 10px) !important;
    background: #fff !important;
    box-shadow: none !important;
    color: var(--aopc-cart-text) !important;
    font-size: 14px !important;
}

.aopc-cart-coupon__button {
    flex: 0 0 auto;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid var(--aopc-cart-border);
    border-radius: var(--aopc-radius, 10px);
    background: var(--aopc-cart-soft);
    color: var(--aopc-cart-text);
    cursor: pointer;
    font-size: 13px;
    font-weight: 550;
}

.aopc-cart-coupon__button:hover {
    border-color: #b8c5d7;
}

.aopc-cart-coupon__button:disabled {
    opacity: .55;
    cursor: wait;
}

.aopc-cart-coupon__notice {
    display: none;
    margin-top: 9px;
    font-size: 13px;
    line-height: 1.4;
}

.aopc-cart-coupon__notice.is-visible {
    display: block;
}

.aopc-cart-coupon__notice.is-success {
    color: #15803d;
}

.aopc-cart-coupon__notice.is-error {
    color: #b91c1c;
}

.aopc-cart-total-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 11px 0;
    border-bottom: 1px solid #edf2f7;
    color: #475569;
    font-size: 14px;
}

.aopc-cart-total-row strong,
.aopc-cart-total-row .amount {
    color: var(--aopc-cart-text);
    font-weight: 600;
    white-space: nowrap;
}

.aopc-cart-total-row-grand {
    margin-top: 8px;
    padding-top: 18px;
    padding-bottom: 18px;
    border-top: 1px solid var(--aopc-cart-text);
    border-bottom: 0;
    color: var(--aopc-cart-text);
    font-size: 20px;
    font-weight: 550;
}

.aopc-cart-total-row-grand strong,
.aopc-cart-total-row-grand .amount {
    font-size: 20px;
    font-weight: 600;
}

.aopc-cart-total-row--shipping {
    display: block;
}

.aopc-cart-shipping-title {
    display: block;
    margin-bottom: 8px;
    color: var(--aopc-cart-text);
    font-weight: 650;
}

.aopc-cart-shipping-methods ul,
.aopc-cart-shipping-methods #shipping_method {
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;
}

.aopc-cart-shipping-methods li {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 !important;
    padding: 12px !important;
    border: 1px solid var(--aopc-cart-border);
    border-radius: calc(var(--aopc-radius, 10px) + 2px);
    background: var(--aopc-cart-soft);
}

.aopc-cart-shipping-methods input[type="radio"] {
    width: 16px;
    height: 16px;
    margin: 0;
}

.aopc-cart-shipping-methods label {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0;
    color: var(--aopc-cart-text);
    font-size: 13px;
    font-weight: 550;
}

.aopc-cart-shipping-methods .woocommerce-shipping-calculator {
    margin-top: 12px;
}

.aopc-cart-shipping-methods .shipping-calculator-button {
    color: var(--aopc-cart-accent);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.aopc-cart-shipping-methods .shipping-calculator-form {
    margin-top: 12px;
}

.aopc-cart-shipping-methods .shipping-calculator-form input,
.aopc-cart-shipping-methods .shipping-calculator-form select {
    width: 100% !important;
    height: 40px !important;
    min-height: 40px !important;
    border: 1px solid var(--aopc-cart-border) !important;
    border-radius: var(--aopc-radius, 10px) !important;
    box-shadow: none !important;
}

.aopc-cart-checkout {
    margin: 18px 0 0;
    padding: 0;
}

.aopc-cart-checkout .checkout-button,
.aopc-cart-checkout a.checkout-button,
.aopc-cart-checkout .button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-height: 52px;
    margin: 0 !important;
    padding: 0 18px !important;
    border: 0 !important;
    border-radius: var(--aopc-radius, 10px) !important;
    background: var(--aopc-cart-accent) !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 15px !important;
    font-weight: 550 !important;
    letter-spacing: 0 !important;
    text-align: center;
    text-decoration: none !important;
    text-transform: none !important;
}

.aopc-cart-checkout .checkout-button:hover,
.aopc-cart-checkout .button:hover {
    background: var(--aopc-accent-hover, var(--aopc-cart-accent)) !important;
}

.aopc-cart-empty {
    max-width: 720px;
    margin: 32px auto;
    padding: 46px 28px;
    border: 1px solid var(--aopc-cart-border);
    border-radius: calc(var(--aopc-radius, 10px) + 12px);
    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .06);
    text-align: center;
}

.aopc-cart-empty h2 {
    margin: 0 0 18px;
    color: var(--aopc-cart-text);
    font-size: clamp(24px, 3vw, 34px);
    font-weight: 650;
    letter-spacing: -.03em;
}

.aopc-cart-empty__button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 20px !important;
    border-radius: var(--aopc-radius, 10px) !important;
    background: var(--aopc-cart-accent) !important;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 550 !important;
}

body.aopc-full-cart .woocommerce table.shop_table,
body.aopc-full-cart .woocommerce .cross-sells,
body.aopc-full-cart .woocommerce .cart-collaterals {
    display: none;
}

body.aopc-full-cart .woocommerce .aopc-cart-page table.shop_table,
body.aopc-full-cart .woocommerce .aopc-cart-page .cart-collaterals {
    display: initial;
}

@media (max-width: 1024px) {
    .aopc-cart-page {
        padding: 22px 18px 48px;
    }

    .aopc-cart-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .aopc-cart-summary-sticky {
        position: static;
        top: auto;
    }
}

@media (max-width: 640px) {
    .aopc-cart-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

    .aopc-cart-item {
        grid-template-columns: 74px minmax(0, 1fr);
        gap: 14px;
        padding: 18px 0;
    }

    .aopc-cart-item__media img {
        width: 74px;
        height: 74px;
        border-radius: calc(var(--aopc-radius, 10px) + 2px);
    }

    .aopc-cart-item__top {
        display: block;
        margin-bottom: 14px;
    }

    .aopc-cart-item__price {
        margin-top: 6px;
    }

    .aopc-cart-item__bottom {
        gap: 10px;
    }

    .aopc-cart-item__subtotal {
        flex-basis: 100%;
        margin-left: 0;
    }

    .aopc-cart-summary-inner {
        padding: 20px;
    }

    .aopc-cart-coupon__row {
        flex-direction: column;
    }

    .aopc-cart-coupon__button {
        width: 100%;
    }
}


/* ========================================================================== 
   v1.3.4 refinements: cart page has no wrapper background and coupon CTA
   matches the main action button. Typography inherits the active theme.
   ========================================================================== */
.aopc-cart-page {
    background: transparent !important;
    font-family: inherit !important;
    font-size: inherit !important;
}

.aopc-cart-coupon__button {
    background: var(--aopc-cart-accent) !important;
    border: 0 !important;
    color: #fff !important;
    border-radius: var(--aopc-radius, 10px) !important;
    min-height: 42px !important;
    height: 42px !important;
    padding: 0 16px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    box-shadow: none !important;
}

.aopc-cart-coupon__button:hover {
    background: var(--aopc-accent-hover, var(--aopc-cart-accent)) !important;
    color: #fff !important;
    box-shadow: none !important;
}

.aopc-cart-coupon__button:disabled {
    opacity: .55 !important;
}

.aopc-cart-title,
.aopc-cart-summary-title {
    font-family: inherit !important;
}

/* ========================================================================== 
   v1.3.5 — Cart page buttons match the drawer button system.
   ========================================================================== */
.aopc-cart-coupon__button,
.aopc-cart-checkout .checkout-button,
.aopc-cart-checkout a.checkout-button,
.aopc-cart-checkout .button,
.aopc-cart-empty__button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--aopc-accent, var(--aopc-cart-accent, #2271b1)) !important;
    border: 2px solid var(--aopc-accent, var(--aopc-cart-accent, #2271b1)) !important;
    border-radius: var(--aopc-radius, 8px) !important;
    box-shadow: none !important;
    color: #fff !important;
    cursor: pointer !important;
    font-family: inherit !important;
    font-size: .95em !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    min-height: 46px !important;
    padding: 13px 20px !important;
    text-align: center !important;
    text-decoration: none !important;
    text-transform: none !important;
    transition: all var(--aopc-transition, .28s cubic-bezier(.4,0,.2,1)) !important;
}

.aopc-cart-coupon__button {
    flex: 0 0 auto !important;
    min-height: 42px !important;
    height: 42px !important;
    padding: 0 16px !important;
    font-size: 13px !important;
    white-space: nowrap !important;
}

.aopc-cart-checkout .checkout-button,
.aopc-cart-checkout a.checkout-button,
.aopc-cart-checkout .button {
    width: 100% !important;
}

.aopc-cart-coupon__button:hover,
.aopc-cart-checkout .checkout-button:hover,
.aopc-cart-checkout a.checkout-button:hover,
.aopc-cart-checkout .button:hover,
.aopc-cart-empty__button:hover,
.aopc-cart-coupon__button:focus,
.aopc-cart-checkout .checkout-button:focus,
.aopc-cart-checkout a.checkout-button:focus,
.aopc-cart-checkout .button:focus,
.aopc-cart-empty__button:focus {
    background: #fff !important;
    border-color: var(--aopc-accent, var(--aopc-cart-accent, #2271b1)) !important;
    color: var(--aopc-accent, var(--aopc-cart-accent, #2271b1)) !important;
    box-shadow: none !important;
    outline: 0 !important;
    text-decoration: none !important;
    transform: none !important;
}

.aopc-cart-coupon__button:disabled {
    opacity: .6 !important;
    cursor: not-allowed !important;
}

.aopc-cart-continue {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 40px !important;
    padding: 10px 16px !important;
    border: 2px solid var(--aopc-accent, var(--aopc-cart-accent, #2271b1)) !important;
    border-radius: var(--aopc-radius, 8px) !important;
    background: #fff !important;
    color: var(--aopc-accent, var(--aopc-cart-accent, #2271b1)) !important;
    font-size: .85em !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transition: all var(--aopc-transition, .28s cubic-bezier(.4,0,.2,1)) !important;
}

.aopc-cart-continue:hover,
.aopc-cart-continue:focus {
    background: var(--aopc-accent, var(--aopc-cart-accent, #2271b1)) !important;
    color: #fff !important;
    text-decoration: none !important;
}
