/* ========================================================================== 
   Ganjeh Kala Cart — canonical cart layout
   One layout owner, one responsive path. Checkout-specific presentation lives
   in checkout.css; this file only exposes the shared stepper/free-shipping UI.
   ========================================================================== */

.gk-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

body.gk-cart-modern {
    background: var(--gk-cc-page-bg, var(--gk-background));
}

body.gk-cart-modern .gk-commerce-host,
body.gk-cart-modern .gk-commerce-entry,
body.gk-cart-modern .gk-commerce-entry__content {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

body.gk-cart-modern .woocommerce,
body.gk-cart-modern .woocommerce * {
    box-sizing: border-box;
}

/* --- Purchase steps: canonical shared UI for Cart + Checkout --- */
.gk-checkout-steps {
    --gk-step-size: 34px;
    --gk-step-line: var(--gk-cc-border-color, var(--gk-border-color));
    width: 100%;
    padding: 12px 16px;
    color: var(--gk-cc-text-color, var(--gk-text));
    background: var(--gk-cc-card-bg, var(--gk-surface));
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color));
    border-radius: var(--gk-cc-card-radius, var(--gk-radius-lg));
    box-shadow: var(--gk-cc-card-shadow, var(--gk-shadow-sm));
}

.gk-checkout-steps__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    direction: rtl;
}

.gk-checkout-steps__item {
    position: relative;
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gk-checkout-steps__item::after {
    content: '';
    position: absolute;
    z-index: 0;
    top: calc(var(--gk-step-size) / 2 - 1px);
    inset-inline-start: calc(50% + (var(--gk-step-size) / 2) + 8px);
    width: calc(100% - var(--gk-step-size) - 16px);
    height: 2px;
    background: var(--gk-step-line);
    border-radius: 999px;
}

.gk-checkout-steps__item:last-child::after {
    display: none;
}

.gk-checkout-steps__item.is-completed::after {
    background: var(--gk-cc-primary, var(--gk-primary));
}

.gk-checkout-steps__content {
    position: relative;
    z-index: 1;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 2px 8px;
    color: inherit;
    text-align: center;
    text-decoration: none !important;
    border-radius: 10px;
}

.gk-checkout-steps__item.is-completed .gk-checkout-steps__content {
    cursor: pointer;
}

.gk-checkout-steps__item.is-completed .gk-checkout-steps__content:hover .gk-checkout-steps__label,
.gk-checkout-steps__item.is-completed .gk-checkout-steps__content:focus-visible .gk-checkout-steps__label {
    color: var(--gk-cc-primary, var(--gk-primary));
}

.gk-checkout-steps__item.is-completed .gk-checkout-steps__content:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 45%, transparent);
    outline-offset: 3px;
}

.gk-checkout-steps__marker {
    position: relative;
    z-index: 2;
    display: inline-grid;
    width: var(--gk-step-size);
    height: var(--gk-step-size);
    flex: 0 0 var(--gk-step-size);
    place-items: center;
    color: var(--gk-neutral-500);
    background: var(--gk-cc-card-bg, var(--gk-surface));
    border: 1.5px solid var(--gk-cc-border-color, var(--gk-border-color));
    border-radius: 50%;
    box-shadow: 0 0 0 4px var(--gk-cc-card-bg, var(--gk-surface));
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}

.gk-checkout-steps__check {
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    min-width: 17px;
    min-height: 17px;
}

.gk-checkout-steps__text {
    display: grid;
    min-width: 0;
    gap: 1px;
}

.gk-checkout-steps__label {
    overflow: hidden;
    color: var(--gk-neutral-600);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.55;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: color .18s ease;
}

.gk-checkout-steps__state {
    color: var(--gk-neutral-400);
    font-size: 9.5px;
    font-weight: 650;
    line-height: 1.5;
    white-space: nowrap;
}

.gk-checkout-steps__item.is-current .gk-checkout-steps__marker {
    color: #fff;
    background: var(--gk-cc-primary, var(--gk-primary));
    border-color: var(--gk-cc-primary, var(--gk-primary));
    box-shadow:
        0 0 0 4px var(--gk-cc-card-bg, var(--gk-surface)),
        0 4px 12px color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 24%, transparent);
}

.gk-checkout-steps__item.is-current .gk-checkout-steps__label,
.gk-checkout-steps__item.is-current .gk-checkout-steps__state {
    color: var(--gk-cc-primary, var(--gk-primary));
}

.gk-checkout-steps__item.is-completed .gk-checkout-steps__marker {
    color: var(--gk-cc-primary, var(--gk-primary));
    background: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 10%, var(--gk-cc-card-bg, #fff));
    border-color: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 52%, var(--gk-cc-border-color, var(--gk-border-color)));
}

.gk-checkout-steps__item.is-completed .gk-checkout-steps__label {
    color: var(--gk-cc-text-color, var(--gk-text));
}

.gk-checkout-steps__item.is-completed .gk-checkout-steps__state {
    color: var(--gk-neutral-500);
}

.gk-checkout-steps__item.is-pending .gk-checkout-steps__content {
    opacity: .78;
}

/* --- Free shipping progress: shared by Cart + Checkout --- */
.gk-free-shipping {
    display: grid;
    gap: 10px;
    margin: 0 0 16px;
    padding: 13px 14px;
    color: var(--gk-cc-text-color, var(--gk-text));
    background: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 4%, var(--gk-cc-card-bg, #fff));
    border: 1px solid color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 18%, var(--gk-cc-border-color, var(--gk-border-color)));
    border-radius: min(var(--gk-cc-card-radius, 14px), 14px);
}

.gk-free-shipping__label {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.8;
}
.gk-free-shipping__icon { flex: 0 0 auto; font-size: 17px; }
.gk-free-shipping__text { min-width: 0; }
.gk-free-shipping__text--success { color: #15803d; }
.gk-free-shipping__bar {
    height: 7px;
    overflow: hidden;
    background: var(--gk-neutral-100);
    border-radius: 999px;
}
.gk-free-shipping__bar-inner {
    height: 100%;
    background: var(--gk-cc-primary, var(--gk-primary));
    border-radius: inherit;
    transition: width .25s ease;
}


/* --- Notices: one visual language for cart feedback --- */
body.gk-cart-modern .woocommerce-notices-wrapper:empty { display: none; }
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-message,
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-info,
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-error {
    position: relative;
    display: flex;
    min-height: 48px;
    align-items: center;
    gap: 10px;
    margin: 0 0 10px !important;
    padding: 12px 16px !important;
    color: var(--gk-cc-text-color, var(--gk-text)) !important;
    background: var(--gk-cc-card-bg, var(--gk-surface)) !important;
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color)) !important;
    border-inline-start: 4px solid var(--gk-cc-primary, var(--gk-primary)) !important;
    border-radius: 12px !important;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .035);
    font-size: 12.5px;
    line-height: 1.8;
    list-style: none !important;
}
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-error {
    border-inline-start-color: #dc2626 !important;
    background: color-mix(in srgb, #dc2626 3%, var(--gk-cc-card-bg, #fff)) !important;
}
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-message {
    border-inline-start-color: #16a34a !important;
    background: color-mix(in srgb, #16a34a 3%, var(--gk-cc-card-bg, #fff)) !important;
}
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-message::before,
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-info::before,
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-error::before {
    position: static !important;
    flex: 0 0 auto;
    margin: 0 !important;
}
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-error { display: grid; }
body.gk-cart-modern .woocommerce-notices-wrapper > .woocommerce-error li { margin: 0; }
body.gk-cart-modern .woocommerce-notices-wrapper .button {
    margin-inline-start: auto;
    color: var(--gk-cc-primary, var(--gk-primary)) !important;
    background: transparent !important;
    border: 0 !important;
    font-size: 11.5px !important;
    font-weight: 850 !important;
    text-decoration: none;
}

/* --- Shipping / coupon rows inside the summary card --- */
body.gk-cart-modern .cart_totals ul#shipping_method {
    display: grid;
    gap: 8px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
body.gk-cart-modern .cart_totals ul#shipping_method li {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 7px;
    margin: 0 !important;
    padding: 0 !important;
    text-align: right;
}
body.gk-cart-modern .cart_totals ul#shipping_method input[type='radio'] {
    flex: 0 0 auto;
    margin: 5px 0 0 5px;
    accent-color: var(--gk-cc-primary, var(--gk-primary));
}
body.gk-cart-modern .cart_totals .woocommerce-shipping-destination {
    margin: 9px 0 0;
    color: var(--gk-neutral-500);
    font-size: 11px;
    line-height: 1.8;
}
body.gk-cart-modern .cart_totals .shipping-calculator-button {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    color: var(--gk-cc-primary, var(--gk-primary));
    font-size: 11.5px;
    font-weight: 800;
    text-decoration: none;
}
body.gk-cart-modern .cart_totals .shipping-calculator-form {
    display: grid;
    gap: 8px;
    margin-top: 10px;
    padding: 11px;
    background: var(--gk-neutral-50);
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color));
    border-radius: 10px;
}
body.gk-cart-modern .cart_totals .shipping-calculator-form .form-row {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.gk-cart-modern .cart_totals .shipping-calculator-form input.input-text,
body.gk-cart-modern .cart_totals .shipping-calculator-form select,
body.gk-cart-modern .cart_totals .shipping-calculator-form .select2-selection--single {
    width: 100% !important;
    min-height: 40px;
    margin: 0 !important;
    padding: 0 10px !important;
    color: var(--gk-cc-text-color, var(--gk-text));
    background: var(--gk-cc-card-bg, #fff) !important;
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color)) !important;
    border-radius: var(--gk-cc-input-radius, 9px) !important;
    font: inherit;
}
body.gk-cart-modern .cart_totals .shipping-calculator-form button {
    width: 100%;
    min-height: 40px;
    color: #fff !important;
    background: var(--gk-cc-primary, var(--gk-primary)) !important;
    border: 1px solid var(--gk-cc-primary, var(--gk-primary)) !important;
    border-radius: var(--gk-cc-button-radius, 9px) !important;
    font-size: 11.5px !important;
    font-weight: 850 !important;
}
body.gk-cart-modern .cart_totals .woocommerce-remove-coupon {
    display: inline-flex;
    margin-inline-start: 5px;
    color: #dc2626;
    font-size: 10.5px;
    font-weight: 750;
    text-decoration: none;
}

/* ==========================================================================
   Cart v2 — one responsive component for desktop + mobile
   ========================================================================== */
body.gk-cart-modern .woocommerce {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) var(--gk-cc-cart-summary-width, 340px) !important;
    grid-template-areas:
        'steps steps'
        'tabs tabs'
        'notices notices'
        'cart summary'
        'cross cross';
    gap: 18px 22px !important;
    width: min(var(--gk-site-width, 1320px), calc(100% - 40px)) !important;
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding: clamp(24px, 3vw, 42px) 0 clamp(54px, 6vw, 88px) !important;
    background: transparent !important;
    direction: rtl;
    align-items: start !important;
}
body.gk-cart-modern .gk-checkout-steps { grid-area: steps; margin: 0 !important; }
body.gk-cart-modern .gk-next-tabs { grid-area: tabs; min-width: 0; margin: 0 !important; }
body.gk-cart-modern .woocommerce-notices-wrapper { grid-area: notices; min-width: 0; }
body.gk-cart-modern .woocommerce-cart-form,
body.gk-cart-modern #gk-next-purchase-panel { grid-area: cart; min-width: 0 !important; width: 100% !important; margin: 0 !important; }
body.gk-cart-modern .cart-collaterals { grid-area: summary; min-width: 0; width: 100% !important; margin: 0 !important; padding: 0 !important; background: transparent !important; }
body.gk-cart-modern .gk-cart-cross-sells,
body.gk-cart-modern .cross-sells.gk-cart-cross-sells { grid-area: cross; min-width: 0; width: 100%; }

body.gk-cart-modern .cart-collaterals .cart_totals {
    position: sticky !important;
    top: calc(var(--gk-sticky-stack-offset, 0px) + 18px) !important;
    z-index: 3;
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
    padding: 20px !important;
    background: var(--gk-cc-card-bg, var(--gk-surface)) !important;
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color)) !important;
    border-radius: var(--gk-cc-card-radius, 16px) !important;
    box-shadow: var(--gk-cc-card-shadow, 0 12px 34px rgba(15, 23, 42, .055));
}
body.gk-cc-no-sticky-summary.gk-cart-modern .cart-collaterals .cart_totals { position: static !important; top: auto !important; }

/* Cart list: keep WooCommerce markup/API contracts, replace only presentation. */
body.gk-cart-modern table.shop_table,
body.gk-cart-modern table.shop_table tbody { display: block !important; width: 100% !important; margin: 0 !important; border: 0 !important; }
body.gk-cart-modern table.shop_table thead { display: none !important; }
body.gk-cart-modern tr.cart_item {
    position: relative;
    display: grid !important;
    grid-template-columns: 92px minmax(0, 1fr) minmax(138px, auto) 150px 38px !important;
    grid-template-rows: auto auto;
    gap: 7px 16px !important;
    align-items: center;
    min-height: 120px;
    margin: 0 0 12px;
    padding: min(var(--gk-cc-card-padding, 24px), 18px) !important;
    background: var(--gk-cc-card-bg, var(--gk-surface));
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color));
    border-radius: var(--gk-cc-card-radius, 16px) !important;
    box-shadow: 0 7px 22px rgba(15, 23, 42, .025);
    transition: opacity .18s ease, border-color .18s ease, box-shadow .18s ease;
}
body.gk-cart-modern tr.cart_item:hover { border-color: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 16%, var(--gk-cc-border-color, #e5e7eb)); box-shadow: 0 9px 26px rgba(15,23,42,.04); }
body.gk-cart-modern tr.cart_item.is-updating { opacity: .58; pointer-events: none; }
body.gk-cart-modern tr.cart_item > td { min-width: 0; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: right !important; }
body.gk-cart-modern tr.cart_item > td::before { display: none !important; content: none !important; }

body.gk-cart-modern td.product-thumbnail { grid-column: 1; grid-row: 1 / span 2; display: block !important; }
body.gk-cart-modern td.product-thumbnail a { display: block; }
body.gk-cart-modern td.product-thumbnail img {
    display: block;
    width: 86px !important;
    height: 86px !important;
    margin: 0 !important;
    padding: 5px;
    object-fit: contain;
    background: var(--gk-neutral-50, #f8fafc);
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color));
    border-radius: 12px;
}
body.gk-cart-modern td.product-name { grid-column: 2; grid-row: 1 / span 2; align-self: center; padding: 0 !important; }
body.gk-cart-modern td.product-name > a,
body.gk-cart-modern td.product-name > strong,
body.gk-cart-modern td.product-name .product-name {
    display: -webkit-box;
    max-width: 100%;
    margin: 0 0 5px;
    overflow: hidden;
    color: var(--gk-cc-text-color, var(--gk-text));
    font-size: 14px;
    font-weight: 850;
    line-height: 1.75;
    text-decoration: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
body.gk-cart-modern td.product-name > a:hover { color: var(--gk-cc-primary, var(--gk-primary)); }
body.gk-cart-modern dl.variation {
    display: flex !important;
    flex-wrap: wrap;
    gap: 5px 7px !important;
    margin: 0 !important;
    color: var(--gk-neutral-600);
    font-size: 10.5px;
    line-height: 1.65;
}
body.gk-cart-modern dl.variation dt,
body.gk-cart-modern dl.variation dd { float: none !important; display: inline-flex !important; align-items: center; margin: 0 !important; }
body.gk-cart-modern dl.variation dt { display: none !important; }
body.gk-cart-modern dl.variation dd {
    padding: 3px 7px;
    color: var(--gk-neutral-700);
    background: var(--gk-neutral-50);
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color));
    border-radius: 7px;
    font-weight: 700;
}
body.gk-cart-modern dl.variation dd::before { content: none !important; }
body.gk-cart-modern dl.variation dd p { margin: 0 !important; }
body.gk-cart-modern .gk-next-cart-row-actions { margin-top: 6px; }
body.gk-cart-modern .gk-next-move-from-cart {
    min-height: 28px;
    padding: 3px 7px;
    color: var(--gk-neutral-500);
    background: transparent;
    border: 0;
    font-size: 10.5px;
    font-weight: 750;
}
body.gk-cart-modern .gk-next-move-from-cart:hover { color: var(--gk-cc-primary, var(--gk-primary)); background: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 6%, transparent); }

body.gk-cart-modern td.product-price { grid-column: 3; grid-row: 1; align-self: end; display: block !important; }
body.gk-cart-modern td.product-subtotal { grid-column: 3; grid-row: 2; align-self: start; display: block !important; padding: 0 !important; font-size: inherit; font-weight: inherit; text-align: right !important; white-space: normal; }
body.gk-cart-modern .gk-cart-price-field { display: grid; gap: 2px; min-width: 0; }
body.gk-cart-modern .gk-cart-price-field__label { color: var(--gk-neutral-500); font-size: 10px; font-weight: 650; line-height: 1.5; }
body.gk-cart-modern .gk-cart-price-field__value { color: var(--gk-cc-text-color, var(--gk-text)); font-size: 12.5px; font-weight: 850; line-height: 1.7; white-space: nowrap; }
body.gk-cart-modern .gk-cart-price-field--total .gk-cart-price-field__value { font-size: 14px; font-weight: 900; }

body.gk-cart-modern td.product-quantity { grid-column: 4; grid-row: 1 / span 2; display: flex !important; align-items: center; justify-content: center; }
body.gk-cart-modern .gk-cart-quantity-field { display: grid; justify-items: center; gap: 5px; }
body.gk-cart-modern .gk-cart-quantity-field__label { color: var(--gk-neutral-500); font-size: 10px; font-weight: 650; }
body.gk-cart-modern .gk-cart-quantity-field__control { min-width: 0; }
body.gk-cart-modern .quantity {
    display: inline-flex !important;
    height: 40px;
    align-items: stretch;
    overflow: hidden;
    background: var(--gk-cc-card-bg, var(--gk-surface));
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color));
    border-radius: 10px;
}
body.gk-cart-modern .quantity input.qty {
    width: 48px !important;
    min-width: 42px;
    height: 38px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    color: var(--gk-cc-text-color, var(--gk-text)) !important;
    background: transparent !important;
    border: 0 !important;
    border-inline: 1px solid var(--gk-cc-border-color, var(--gk-border-color)) !important;
    border-radius: 0 !important;
    font-size: 12px;
    font-weight: 850;
    text-align: center;
    appearance: textfield;
    outline: 0;
}
body.gk-cart-modern .quantity input.qty::-webkit-inner-spin-button,
body.gk-cart-modern .quantity input.qty::-webkit-outer-spin-button { appearance: none; margin: 0; }
body.gk-cart-modern .gk-qty-btn {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    padding: 0;
    color: var(--gk-cc-primary, var(--gk-primary));
    background: transparent;
    border: 0;
    cursor: pointer;
}
body.gk-cart-modern .gk-qty-btn .gk-quantity-icon { display: block; width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; vector-effect: non-scaling-stroke; }
body.gk-cart-modern .gk-qty-btn:hover:not(:disabled) { background: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 7%, transparent); }
body.gk-cart-modern .gk-qty-btn:disabled { color: var(--gk-neutral-400); opacity: .38; cursor: not-allowed; }
body.gk-cart-modern .gk-unit-cart-qty { display: grid; justify-items: center; gap: 5px; }
body.gk-cart-modern .gk-unit-cart-qty__unit { color: var(--gk-neutral-500); font-size: 9.5px; font-weight: 700; }

body.gk-cart-modern td.product-remove { grid-column: 5; grid-row: 1 / span 2; display: grid !important; place-items: center; position: static !important; }
body.gk-cart-modern td.product-remove a.remove {
    display: grid !important;
    width: 32px;
    height: 32px;
    place-items: center;
    padding: 0 !important;
    color: var(--gk-neutral-400) !important;
    background: var(--gk-neutral-50) !important;
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color));
    border-radius: 9px;
    font-size: 17px !important;
    line-height: 1;
}
body.gk-cart-modern td.product-remove a.remove:hover { color: #dc2626 !important; background: #fff1f2 !important; border-color: #fecaca; }

/* Action/coupon card. Update-cart stays as no-JS fallback only. */
body.gk-cart-modern table.shop_table tbody > tr:not(.cart_item) { display: block !important; width: 100%; }
body.gk-cart-modern td.actions {
    display: flex !important;
    width: 100% !important;
    align-items: center;
    gap: 10px;
    margin-top: 2px;
    padding: min(var(--gk-cc-card-padding, 24px), 16px) !important;
    background: var(--gk-cc-card-bg, var(--gk-surface));
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color)) !important;
    border-radius: 14px;
}
body.gk-cart-modern .coupon { display: flex !important; min-width: min(100%, 440px); flex: 1 1 440px; gap: 8px; }
body.gk-cart-modern .coupon label { display: none; }
body.gk-cart-modern .coupon input#coupon_code {
    min-width: 0;
    min-height: 42px;
    flex: 1 1 auto;
    padding: 8px 12px !important;
    color: var(--gk-cc-text-color, var(--gk-text));
    background: var(--gk-neutral-50) !important;
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color)) !important;
    border-radius: var(--gk-cc-input-radius, 10px) !important;
    font: inherit;
}
body.gk-cart-modern .coupon button,
body.gk-cart-modern button[name='update_cart'],
body.gk-cart-modern .gk-next-bulk-cart {
    min-height: 42px;
    padding: 8px 14px !important;
    color: var(--gk-neutral-700) !important;
    background: var(--gk-cc-card-bg, #fff) !important;
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color)) !important;
    border-radius: var(--gk-cc-button-radius, 10px) !important;
    font-size: 11.5px !important;
    font-weight: 800 !important;
}
body.gk-cart-modern .coupon button { color: var(--gk-cc-primary, var(--gk-primary)) !important; }
body.gk-cart-modern.gk-cart-v2-js button[name='update_cart'] { display: none !important; }
body.gk-cart-modern .gk-cart-coupon-toggle { display: none; }
body.gk-cart-modern.gk-cc-hide-cart-coupon .gk-cart-coupon-toggle { display: none !important; }

/* Summary */
body.gk-cart-modern .cart_totals > h2 { margin: 0 0 12px !important; padding: 0 0 12px; color: var(--gk-cc-text-color, var(--gk-text)); border-bottom: 1px solid var(--gk-cc-border-color, var(--gk-border-color)); font-size: 17px !important; font-weight: 900; }
body.gk-cart-modern .cart_totals table,
body.gk-cart-modern .cart_totals table tbody { display: table !important; width: 100% !important; margin: 0 0 15px !important; border: 0 !important; }
body.gk-cart-modern .cart_totals table tbody { display: table-row-group !important; }
body.gk-cart-modern .cart_totals table tr { display: table-row !important; }
body.gk-cart-modern .cart_totals table th,
body.gk-cart-modern .cart_totals table td { display: table-cell !important; width: auto !important; padding: 10px 0 !important; border: 0 !important; border-bottom: 1px solid var(--gk-cc-border-color, var(--gk-border-color)) !important; vertical-align: middle; font-size: 12px; line-height: 1.75; }
body.gk-cart-modern .cart_totals table th { color: var(--gk-neutral-500); font-weight: 650; text-align: right; }
body.gk-cart-modern .cart_totals table td { color: var(--gk-cc-text-color, var(--gk-text)); font-weight: 800; text-align: left !important; }
body.gk-cart-modern .cart_totals table td::before { display: none !important; content: none !important; }
body.gk-cart-modern .cart_totals .order-total th,
body.gk-cart-modern .cart_totals .order-total td { padding-top: 14px !important; border-bottom: 0 !important; font-size: 14px !important; font-weight: 900; }
body.gk-cart-modern .cart_totals .order-total td .amount { font-size: 16px; }
body.gk-cart-modern .wc-proceed-to-checkout { padding: 0 !important; }
body.gk-cart-modern .wc-proceed-to-checkout a.checkout-button { display: flex !important; min-height: 50px; align-items: center; justify-content: center; margin: 0 !important; padding: 11px 15px !important; color: #fff !important; background: var(--gk-cc-primary, var(--gk-primary)) !important; border: 1px solid var(--gk-cc-primary, var(--gk-primary)) !important; border-radius: var(--gk-cc-button-radius, 11px) !important; font-size: 13.5px !important; font-weight: 900 !important; }
body.gk-cart-modern .cart_totals .woocommerce-shipping-destination { font-size: 10.5px; }

.gk-cart-mobile-sticky { display: none; }

/* Empty cart — dedicated theme empty state. */
body.gk-cart-modern .gk-empty-cart__extensions {
    grid-column: 1 / -1;
    min-width: 0;
}
body.gk-cart-modern .gk-empty-cart__extensions:empty { display: none; }
body.gk-cart-modern .gk-empty-cart {
    grid-column: 1 / -1;
    position: relative;
    isolation: isolate;
    display: grid;
    width: min(100%, 820px);
    min-height: 430px;
    margin: clamp(8px, 2vw, 22px) auto clamp(20px, 4vw, 52px);
    padding: clamp(34px, 5vw, 58px) clamp(22px, 6vw, 66px);
    place-items: center;
    align-content: center;
    gap: 24px;
    overflow: hidden;
    color: var(--gk-cc-text-color, var(--gk-text));
    background:
        radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 8%, transparent) 0, transparent 44%),
        var(--gk-cc-card-bg, var(--gk-surface));
    border: 1px solid var(--gk-cc-border-color, var(--gk-border-color));
    border-radius: max(var(--gk-cc-card-radius, 16px), 22px);
    box-shadow: var(--gk-cc-card-shadow, 0 16px 48px rgba(15, 23, 42, .055));
    text-align: center;
}
body.gk-cart-modern .gk-empty-cart::before,
body.gk-cart-modern .gk-empty-cart::after {
    content: '';
    position: absolute;
    z-index: -1;
    width: 180px;
    height: 180px;
    border: 1px solid color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 9%, transparent);
    border-radius: 50%;
    pointer-events: none;
}
body.gk-cart-modern .gk-empty-cart::before { top: -112px; inset-inline-start: -80px; }
body.gk-cart-modern .gk-empty-cart::after { right: auto; bottom: -124px; inset-inline-end: -72px; width: 220px; height: 220px; }
body.gk-cart-modern .gk-empty-cart__visual {
    position: relative;
    display: grid;
    width: 132px;
    height: 132px;
    place-items: center;
}
body.gk-cart-modern .gk-empty-cart__halo {
    position: absolute;
    inset: 8px;
    background: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 7%, var(--gk-cc-card-bg, var(--gk-surface)));
    border: 1px solid color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 10%, transparent);
    border-radius: 34px;
    transform: rotate(9deg);
}
body.gk-cart-modern .gk-empty-cart__icon {
    position: relative;
    z-index: 2;
    display: grid;
    width: 94px;
    height: 94px;
    place-items: center;
    color: var(--gk-cc-primary, var(--gk-primary));
    background: var(--gk-cc-card-bg, var(--gk-surface));
    border: 1px solid color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 13%, var(--gk-cc-border-color, var(--gk-border-color)));
    border-radius: 28px;
    box-shadow: 0 16px 34px color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 10%, transparent);
}
body.gk-cart-modern .gk-empty-cart__icon svg {
    width: 51px;
    height: 51px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}
body.gk-cart-modern .gk-empty-cart__spark {
    position: absolute;
    z-index: 3;
    width: 10px;
    height: 10px;
    background: var(--gk-cc-primary, var(--gk-primary));
    border: 3px solid var(--gk-cc-card-bg, var(--gk-surface));
    border-radius: 50%;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 15%, transparent);
}
body.gk-cart-modern .gk-empty-cart__spark--one { top: 18px; inset-inline-end: 13px; }
body.gk-cart-modern .gk-empty-cart__spark--two { bottom: 16px; inset-inline-start: 14px; width: 8px; height: 8px; opacity: .46; }
body.gk-cart-modern .gk-empty-cart__content { display: grid; max-width: 560px; justify-items: center; gap: 11px; }
body.gk-cart-modern .gk-empty-cart__title {
    margin: 0 !important;
    color: var(--gk-cc-text-color, var(--gk-text));
    font-size: clamp(20px, 2.25vw, 26px) !important;
    font-weight: 900 !important;
    line-height: 1.55 !important;
    letter-spacing: -.02em;
}
body.gk-cart-modern .gk-empty-cart__description {
    max-width: 500px;
    margin: 0 !important;
    color: var(--gk-neutral-500, #64748b);
    font-size: clamp(12px, 1.15vw, 13.5px);
    font-weight: 550;
    line-height: 2;
}
body.gk-cart-modern .gk-empty-cart__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 12px;
}
body.gk-cart-modern .gk-empty-cart__button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 18px;
    border: 1px solid transparent;
    border-radius: var(--gk-cc-button-radius, 11px);
    font-size: 12.5px;
    font-weight: 850;
    line-height: 1.5;
    text-decoration: none !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}
body.gk-cart-modern .gk-empty-cart__button svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
body.gk-cart-modern .gk-empty-cart__button--primary {
    min-width: 154px;
    color: #fff !important;
    background: var(--gk-cc-primary, var(--gk-primary));
    border-color: var(--gk-cc-primary, var(--gk-primary));
    box-shadow: 0 8px 20px color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 19%, transparent);
}
body.gk-cart-modern .gk-empty-cart__button--secondary {
    color: var(--gk-neutral-700, #334155) !important;
    background: var(--gk-cc-card-bg, var(--gk-surface));
    border-color: var(--gk-cc-border-color, var(--gk-border-color));
}
body.gk-cart-modern .gk-empty-cart__button:hover { transform: translateY(-2px); }
body.gk-cart-modern .gk-empty-cart__button--primary:hover { color: #fff !important; box-shadow: 0 11px 26px color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 25%, transparent); }
body.gk-cart-modern .gk-empty-cart__button--secondary:hover { color: var(--gk-cc-primary, var(--gk-primary)) !important; border-color: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 30%, var(--gk-cc-border-color, var(--gk-border-color))); background: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 3%, var(--gk-cc-card-bg, var(--gk-surface))); }
body.gk-cart-modern .gk-empty-cart__button:focus-visible { outline: 3px solid color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 26%, transparent); outline-offset: 3px; }
body.gk-cart-modern .cart-empty.woocommerce-info,
body.gk-cart-modern .return-to-shop { display: none !important; }

@media (max-width: 1080px) {
    body.gk-cart-modern tr.cart_item { grid-template-columns: 86px minmax(0, 1fr) 126px 136px 34px !important; gap-inline: 12px !important; }
    body.gk-cart-modern td.product-thumbnail img { width: 80px !important; height: 80px !important; }
}

@media (max-width: 900px) {
    body.gk-cart-modern .woocommerce { grid-template-columns: minmax(0, 1fr) !important; grid-template-areas: 'steps' 'tabs' 'notices' 'cart' 'summary' 'cross'; width: min(100% - 24px, 780px) !important; gap: 14px !important; }
    body.gk-cart-modern .cart-collaterals .cart_totals { position: static !important; top: auto !important; }
}

@media (max-width: 700px) {
    body.gk-cart-modern .woocommerce { width: 100% !important; padding: 12px 8px calc(104px + var(--gk-bottom-nav-height, 0px) + env(safe-area-inset-bottom, 0px)) !important; gap: 11px !important; overflow: hidden; }
    body.gk-cart-modern tr.cart_item {
        grid-template-columns: 76px minmax(0, 1fr) 30px !important;
        grid-template-rows: auto auto auto auto;
        gap: 7px 10px !important;
        min-height: 0;
        padding: 11px !important;
        border-radius: 14px !important;
    }
    body.gk-cart-modern td.product-thumbnail { grid-column: 1; grid-row: 1 / span 4; align-self: start; }
    body.gk-cart-modern td.product-thumbnail img { width: 72px !important; height: 72px !important; padding: 4px; border-radius: 10px; }
    body.gk-cart-modern td.product-name { grid-column: 2; grid-row: 1; padding-inline-end: 2px !important; align-self: start; }
    body.gk-cart-modern td.product-name > a,
    body.gk-cart-modern td.product-name > strong,
    body.gk-cart-modern td.product-name .product-name { margin-bottom: 4px; font-size: 12.5px; line-height: 1.65; }
    body.gk-cart-modern dl.variation { gap: 4px; font-size: 9.5px; }
    body.gk-cart-modern dl.variation dd { padding: 2px 6px; }
    body.gk-cart-modern .gk-next-cart-row-actions { margin-top: 4px; }
    body.gk-cart-modern .gk-next-move-from-cart { min-height: 26px; padding: 2px 5px; font-size: 9.5px; }
    body.gk-cart-modern td.product-remove { grid-column: 3; grid-row: 1; align-self: start; }
    body.gk-cart-modern td.product-remove a.remove { width: 28px; height: 28px; font-size: 15px !important; border-radius: 8px; }
    body.gk-cart-modern td.product-price { grid-column: 2 / span 2; grid-row: 2; }
    body.gk-cart-modern td.product-subtotal { grid-column: 2 / span 2; grid-row: 3; }
    body.gk-cart-modern .gk-cart-price-field { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
    body.gk-cart-modern .gk-cart-price-field__value { font-size: 12px; }
    body.gk-cart-modern .gk-cart-price-field--total .gk-cart-price-field__value { font-size: 13px; }
    body.gk-cart-modern td.product-quantity { grid-column: 2 / span 2; grid-row: 4; justify-content: flex-start; }
    body.gk-cart-modern .gk-cart-quantity-field { display: flex; align-items: center; justify-content: space-between; width: 100%; }
    body.gk-cart-modern .quantity { height: 38px; }
    body.gk-cart-modern .quantity input.qty { width: 44px !important; height: 36px !important; }
    body.gk-cart-modern .gk-qty-btn { width: 36px; height: 36px; flex-basis: 36px; }

    body.gk-cart-modern td.actions { display: grid !important; grid-template-columns: 1fr; align-items: stretch; padding: 10px !important; }
    body.gk-cart-modern .gk-cart-coupon-toggle {
        display: flex;
        width: 100%;
        min-height: 42px;
        align-items: center;
        gap: 9px;
        padding: 8px 10px;
        color: var(--gk-neutral-700);
        background: transparent;
        border: 0;
        font-size: 11.5px;
        font-weight: 800;
        text-align: right;
        cursor: pointer;
    }
    body.gk-cart-modern .gk-cart-coupon-toggle__icon { display: grid; width: 28px; height: 28px; place-items: center; color: var(--gk-cc-primary, var(--gk-primary)); background: color-mix(in srgb, var(--gk-cc-primary, var(--gk-primary)) 8%, transparent); border-radius: 8px; }
    body.gk-cart-modern .gk-cart-coupon-toggle svg { width: 18px; height: 18px; margin-inline-start: auto; fill: none; stroke: currentColor; stroke-width: 1.6; transition: transform .18s ease; }
    body.gk-cart-modern .gk-cart-coupon-toggle.is-open svg { transform: rotate(180deg); }
    body.gk-cart-modern.gk-cart-v2-js .coupon { display: none !important; }
    body.gk-cart-modern.gk-cart-v2-js .coupon.is-open { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; width: 100%; min-width: 0; }
    body.gk-cart-modern .coupon input#coupon_code { width: 100% !important; }
    body.gk-cart-modern .gk-next-bulk-cart { width: 100%; }

    body.gk-cart-modern .cart-collaterals .cart_totals { padding: 15px !important; border-radius: 14px !important; }
    body.gk-cart-modern .cart_totals .wc-proceed-to-checkout { display: none !important; }
    body.gk-cart-modern .gk-cart-mobile-sticky {
        position: fixed;
        z-index: 9990;
        inset-inline: 0;
        inset-block-end: var(--gk-bottom-nav-height, 0px);
        display: grid;
        grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
        gap: 10px;
        align-items: center;
        padding: 10px max(10px, env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-left, 0px));
        background: color-mix(in srgb, var(--gk-cc-card-bg, #fff) 94%, transparent);
        border-top: 1px solid var(--gk-cc-border-color, #e5e7eb);
        box-shadow: 0 -10px 30px rgba(15, 23, 42, .09);
        backdrop-filter: blur(12px);
    }
    body.gk-cart-modern .gk-cart-mobile-sticky__total { display: grid; gap: 1px; min-width: 0; }
    body.gk-cart-modern .gk-cart-mobile-sticky__total > span { color: var(--gk-neutral-500); font-size: 9.5px; font-weight: 650; }
    body.gk-cart-modern .gk-cart-mobile-sticky__total strong { min-width: 0; overflow: hidden; color: var(--gk-cc-text-color, var(--gk-text)); font-size: 12px; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
    body.gk-cart-modern .gk-cart-mobile-sticky__button { display: flex; min-height: 46px; align-items: center; justify-content: center; padding: 9px 10px; color: #fff; background: var(--gk-cc-primary, var(--gk-primary)); border-radius: var(--gk-cc-button-radius, 11px); font-size: 11.5px; font-weight: 900; text-align: center; text-decoration: none; }
}

@media (max-width: 390px) {
    body.gk-cart-modern tr.cart_item { grid-template-columns: 68px minmax(0, 1fr) 28px !important; gap-inline: 8px !important; }
    body.gk-cart-modern td.product-thumbnail img { width: 64px !important; height: 64px !important; }
    body.gk-cart-modern.gk-cart-v2-js .coupon.is-open { grid-template-columns: 1fr !important; }
    body.gk-cart-modern .coupon button { width: 100% !important; }
}

@media (prefers-reduced-motion: reduce) {
    body.gk-cart-modern tr.cart_item,
    body.gk-cart-modern .gk-cart-coupon-toggle svg { transition: none !important; }
}

/* Checkout keeps a small rhythm gap below the shared purchase stepper. */
body.gk-checkout-layout .gk-checkout-steps {
    margin: 0 0 18px;
}


@media (max-width: 700px) {
    body.gk-cart-modern .gk-empty-cart {
        min-height: 380px;
        margin: 4px auto 24px;
        padding: 34px 18px 32px;
        gap: 18px;
        border-radius: 18px;
    }
    body.gk-cart-modern .gk-empty-cart__visual { width: 112px; height: 112px; }
    body.gk-cart-modern .gk-empty-cart__icon { width: 82px; height: 82px; border-radius: 24px; }
    body.gk-cart-modern .gk-empty-cart__icon svg { width: 44px; height: 44px; }
    body.gk-cart-modern .gk-empty-cart__title { font-size: 19px !important; }
    body.gk-cart-modern .gk-empty-cart__description { max-width: 340px; font-size: 11.5px; line-height: 1.9; }
    body.gk-cart-modern .gk-empty-cart__actions { display: grid; width: min(100%, 310px); grid-template-columns: 1fr; gap: 8px; margin-top: 10px; }
    body.gk-cart-modern .gk-empty-cart__button { width: 100%; min-height: 45px; }
}

@media (prefers-reduced-motion: reduce) {
    body.gk-cart-modern .gk-empty-cart__button { transition: none; }
    body.gk-cart-modern .gk-empty-cart__button:hover { transform: none; }
}
