/* GM STORES v1.0 RC.1 — Mobile cart, compact navigation and dark-mode hardening */

.mobile-commerce-dock,
.mobile-search-backdrop,
.cart-mobile-label,
.cart-stock-mobile {
    display: none;
}

.cart-product,
.cart-update-bar {
    display: flex;
    align-items: center;
}

.cart-product {
    min-width: 260px;
    gap: 14px;
}

.cart-product-image {
    flex: 0 0 auto;
}

.cart-product-copy {
    min-width: 0;
}

.cart-product-name {
    display: block;
    color: var(--gm-ink);
    font-weight: 750;
    line-height: 1.45;
    text-decoration: none;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.cart-product-name:hover {
    color: var(--gm-primary);
}

.cart-cell-value {
    white-space: nowrap;
}

.cart-update-bar {
    justify-content: space-between;
    gap: 18px;
    background: color-mix(in srgb, var(--gm-surface) 92%, var(--gm-bg));
}

.cart-update-bar > span {
    color: var(--gm-muted);
    font-size: .78rem;
}

.cart-remove-button {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

.cart-remove-button > span:first-child {
    font-size: 1.15rem;
    line-height: 1;
}

/* Bootstrap and legacy surfaces must inherit the selected storefront palette. */
html[data-color-scheme="dark"] body.gm-brand-v013 .summary-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .hero-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .filter-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .auth-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .success-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .product-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .category-tile,
html[data-color-scheme="dark"] body.gm-brand-v013 .empty-state,
html[data-color-scheme="dark"] body.gm-brand-v013 .coupon-box,
html[data-color-scheme="dark"] body.gm-brand-v013 .tracking-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .review-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .review-form-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .account-metric,
html[data-color-scheme="dark"] body.gm-brand-v013 .account-address-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .saved-address-option,
html[data-color-scheme="dark"] body.gm-brand-v013 .premium-payment-option,
html[data-color-scheme="dark"] body.gm-brand-v013 .modal-content,
html[data-color-scheme="dark"] body.gm-brand-v013 .offcanvas,
html[data-color-scheme="dark"] body.gm-brand-v013 .dropdown-menu,
html[data-color-scheme="dark"] body.gm-brand-v013 .list-group-item,
html[data-color-scheme="dark"] body.gm-brand-v013 .accordion-item,
html[data-color-scheme="dark"] body.gm-brand-v013 .accordion-button {
    background: var(--gm-surface) !important;
    color: var(--gm-ink) !important;
    border-color: var(--gm-border) !important;
}

html[data-color-scheme="dark"] body.gm-brand-v013 .empty-state,
html[data-color-scheme="dark"] body.gm-brand-v013 .category-tile {
    background-image: none !important;
}

html[data-color-scheme="dark"] body.gm-brand-v013 .table {
    --bs-table-color: var(--gm-ink);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--gm-border);
    --bs-table-striped-color: var(--gm-ink);
    --bs-table-striped-bg: color-mix(in srgb, var(--gm-bg) 45%, transparent);
    --bs-table-hover-color: var(--gm-ink);
    --bs-table-hover-bg: color-mix(in srgb, var(--gm-primary) 7%, transparent);
    color: var(--gm-ink);
}

html[data-color-scheme="dark"] body.gm-brand-v013 .cart-table thead th,
html[data-color-scheme="dark"] body.gm-brand-v013 .cart-update-bar,
html[data-color-scheme="dark"] body.gm-brand-v013 .coupon-box,
html[data-color-scheme="dark"] body.gm-brand-v013 .tracking-card,
html[data-color-scheme="dark"] body.gm-brand-v013 .admin-reply {
    background: color-mix(in srgb, var(--gm-bg) 82%, var(--gm-surface)) !important;
    color: var(--gm-ink) !important;
    border-color: var(--gm-border) !important;
}

html[data-color-scheme="dark"] body.gm-brand-v013 .form-control,
html[data-color-scheme="dark"] body.gm-brand-v013 .form-select,
html[data-color-scheme="dark"] body.gm-brand-v013 .input-group-text,
html[data-color-scheme="dark"] body.gm-brand-v013 textarea,
html[data-color-scheme="dark"] body.gm-brand-v013 input:not([type="checkbox"]):not([type="radio"]),
html[data-color-scheme="dark"] body.gm-brand-v013 select {
    background-color: color-mix(in srgb, var(--gm-bg) 82%, var(--gm-surface)) !important;
    color: var(--gm-ink) !important;
    border-color: var(--gm-border) !important;
}

html[data-color-scheme="dark"] body.gm-brand-v013 input::placeholder,
html[data-color-scheme="dark"] body.gm-brand-v013 textarea::placeholder {
    color: var(--gm-muted) !important;
    opacity: .9;
}

html[data-color-scheme="dark"] body.gm-brand-v013 .text-dark,
html[data-color-scheme="dark"] body.gm-brand-v013 .link-dark,
html[data-color-scheme="dark"] body.gm-brand-v013 .dropdown-item,
html[data-color-scheme="dark"] body.gm-brand-v013 .accordion-button {
    color: var(--gm-ink) !important;
}

html[data-color-scheme="dark"] body.gm-brand-v013 .text-secondary,
html[data-color-scheme="dark"] body.gm-brand-v013 .text-muted,
html[data-color-scheme="dark"] body.gm-brand-v013 .form-text {
    color: var(--gm-muted) !important;
}

html[data-color-scheme="dark"] body.gm-brand-v013 .bg-white,
html[data-color-scheme="dark"] body.gm-brand-v013 .bg-light {
    background-color: var(--gm-surface) !important;
    color: var(--gm-ink) !important;
}

html[data-color-scheme="dark"] body.gm-brand-v013 .btn-outline-dark {
    color: var(--gm-ink);
    border-color: color-mix(in srgb, var(--gm-ink) 55%, var(--gm-border));
}

html[data-color-scheme="dark"] body.gm-brand-v013 .btn-outline-dark:hover,
html[data-color-scheme="dark"] body.gm-brand-v013 .btn-outline-dark:focus-visible {
    background: var(--gm-ink);
    color: var(--gm-bg);
    border-color: var(--gm-ink);
}

html[data-color-scheme="dark"] body.gm-brand-v013 hr,
html[data-color-scheme="dark"] body.gm-brand-v013 .border,
html[data-color-scheme="dark"] body.gm-brand-v013 .border-top,
html[data-color-scheme="dark"] body.gm-brand-v013 .border-bottom {
    border-color: var(--gm-border) !important;
}

html[data-color-scheme="dark"] body.gm-brand-v013 .dropdown-item:hover,
html[data-color-scheme="dark"] body.gm-brand-v013 .dropdown-item:focus,
html[data-color-scheme="dark"] body.gm-brand-v013 .accordion-button:not(.collapsed) {
    background: color-mix(in srgb, var(--gm-primary) 10%, var(--gm-surface)) !important;
    color: var(--gm-ink) !important;
}

@media (max-width: 767.98px) {
    :root {
        --gm-mobile-dock-height: 70px;
        --gm-sticky-offset: 72px;
    }

    html {
        scroll-padding-bottom: calc(var(--gm-mobile-dock-height) + env(safe-area-inset-bottom));
    }

    body.gm-brand-v013 {
        padding-bottom: calc(var(--gm-mobile-dock-height) + env(safe-area-inset-bottom));
    }

    .gm-brand-v013 .announcement-bar {
        display: none;
    }

    .gm-brand-v013 .brand-header .premium-header-main {
        min-height: 62px;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px;
        padding: 0;
    }

    .gm-brand-v013 .brand-signature {
        min-width: 0;
    }

    .gm-brand-v013 .brand-signature .store-brand-logo {
        height: 38px;
    }

    .gm-brand-v013 .brand-signature .store-brand-logo img {
        max-height: 38px;
    }

    .gm-brand-v013 .brand-actions {
        grid-column: 2;
        grid-row: 1;
    }

    .gm-brand-v013 .brand-actions > :not(.brand-menu-toggle) {
        display: none !important;
    }

    .gm-brand-v013 .brand-menu-toggle {
        display: grid !important;
        width: 42px;
        height: 42px;
        padding: 0;
    }

    .gm-brand-v013 .brand-search {
        position: fixed;
        left: 14px;
        right: 14px;
        bottom: calc(var(--gm-mobile-dock-height) + 14px + env(safe-area-inset-bottom));
        z-index: 1090;
        width: auto;
        padding: 0;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(18px) scale(.98);
        transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    }

    .gm-brand-v013 .brand-search .nav-search {
        height: 54px;
        padding: 0 6px 0 15px;
        border: 1px solid var(--gm-border);
        border-radius: 18px;
        background: var(--gm-surface);
        box-shadow: 0 22px 65px rgba(0, 0, 0, .24);
    }

    .gm-brand-v013 .brand-search .live-search-panel {
        top: auto;
        right: 0;
        bottom: calc(100% + 9px);
        left: 0;
        width: 100%;
        min-width: 0;
        max-height: min(52vh, 420px);
        overflow-y: auto;
    }

    body.mobile-search-open .gm-brand-v013 .brand-search {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
    }

    .mobile-search-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1080;
        display: block;
        border: 0;
        background: rgba(4, 6, 10, .5);
        backdrop-filter: blur(3px);
    }

    .mobile-search-backdrop[hidden] {
        display: none;
    }

    .mobile-commerce-dock {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1100;
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(0, 1fr);
        min-height: calc(var(--gm-mobile-dock-height) + env(safe-area-inset-bottom));
        padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
        border-top: 1px solid color-mix(in srgb, var(--gm-border) 86%, transparent);
        background: color-mix(in srgb, var(--gm-surface) 94%, transparent);
        box-shadow: 0 -16px 40px rgba(5, 8, 13, .12);
        backdrop-filter: blur(20px) saturate(1.15);
    }

    .mobile-commerce-dock a,
    .mobile-commerce-dock button {
        position: relative;
        display: flex;
        min-width: 0;
        min-height: 54px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 5px 2px;
        border: 0;
        border-radius: 14px;
        background: transparent;
        color: var(--gm-muted);
        font: inherit;
        text-decoration: none;
    }

    .mobile-commerce-dock a:hover,
    .mobile-commerce-dock button:hover,
    .mobile-commerce-dock .is-active {
        background: color-mix(in srgb, var(--gm-primary) 10%, transparent);
        color: var(--gm-ink);
    }

    .mobile-commerce-dock svg {
        width: 21px;
        height: 21px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .mobile-commerce-dock small {
        max-width: 100%;
        overflow: hidden;
        font-size: .59rem;
        font-weight: 750;
        line-height: 1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mobile-commerce-dock b {
        position: absolute;
        top: 3px;
        left: calc(50% + 8px);
        display: grid;
        min-width: 17px;
        height: 17px;
        place-items: center;
        padding: 0 4px;
        border-radius: 99px;
        background: var(--gm-primary);
        color: var(--gm-on-primary);
        font-size: .54rem;
        line-height: 1;
    }

    .cart-page-section {
        padding-top: 28px !important;
        padding-bottom: 38px !important;
    }

    .cart-page-heading {
        margin-bottom: 18px;
    }

    .cart-page-heading h1 {
        font-size: clamp(2rem, 11vw, 2.8rem);
    }

    .cart-page-heading p {
        font-size: .9rem;
    }

    .cart-items-card {
        overflow: visible !important;
        border: 0;
        background: transparent !important;
        box-shadow: none;
    }

    .cart-table-shell {
        overflow: visible;
    }

    .cart-table,
    .cart-table tbody {
        display: block;
        width: 100%;
        min-width: 0 !important;
    }

    .cart-table thead {
        display: none;
    }

    .cart-table tbody {
        display: grid;
        gap: 12px;
    }

    .cart-table .cart-line-item {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 0 14px;
        padding: 15px;
        overflow: hidden;
        border: 1px solid var(--gm-border);
        border-radius: 20px;
        background: var(--gm-surface);
        box-shadow: 0 12px 32px rgba(12, 18, 30, .055);
    }

    .cart-table .cart-line-item > td {
        display: flex;
        min-width: 0;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 11px 0;
        border: 0;
        border-top: 1px solid var(--gm-border);
        background: transparent;
    }

    .cart-table .cart-product-cell {
        grid-column: 1 / -1;
        padding: 0 34px 14px 0;
        border-top: 0;
    }

    .cart-product {
        width: 100%;
        min-width: 0;
        align-items: flex-start;
        gap: 12px;
    }

    .cart-thumb {
        width: 76px;
        height: 76px;
        border-radius: 16px;
    }

    .cart-product-copy {
        padding-top: 3px;
    }

    .cart-product-name {
        display: -webkit-box;
        overflow: hidden;
        font-size: .86rem;
        line-height: 1.42;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .cart-stock-mobile {
        display: block;
        margin-top: 7px;
        color: var(--gm-muted);
        font-size: .65rem;
    }

    .cart-mobile-label {
        display: block;
        min-width: 0;
        color: var(--gm-muted);
        font-size: .61rem;
        font-weight: 700;
        line-height: 1.2;
    }

    .cart-price-cell,
    .cart-total-cell {
        flex-direction: column;
        align-items: flex-start !important;
        justify-content: center !important;
    }

    .cart-total-cell {
        align-items: flex-end !important;
        text-align: right;
    }

    .cart-cell-value {
        font-size: .8rem;
        line-height: 1.25;
    }

    .cart-quantity-cell {
        grid-column: 1 / -1;
    }

    .cart-quantity-wrap {
        display: flex;
        align-items: center;
        gap: 9px;
    }

    .cart-quantity-cell .quantity-stepper {
        width: 122px;
        grid-template-columns: 34px 1fr 34px;
    }

    .cart-quantity-cell .quantity-stepper button {
        width: 34px;
        height: 34px;
    }

    .cart-quantity-cell .quantity-input {
        min-height: 34px;
        height: 34px;
        padding: 4px;
        text-align: center;
    }

    .cart-stock-note {
        display: none;
    }

    .cart-remove-cell {
        position: absolute;
        top: 8px;
        right: 8px;
        display: block !important;
        padding: 0 !important;
        border: 0 !important;
    }

    .cart-remove-button {
        width: 34px;
        height: 34px;
        justify-content: center;
        padding: 0;
        border-radius: 50%;
        background: color-mix(in srgb, #dc3545 10%, var(--gm-surface));
    }

    .cart-remove-button > span:first-child {
        font-size: 1.3rem;
    }

    .cart-remove-button > span:last-child {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .cart-update-bar {
        position: sticky;
        bottom: calc(var(--gm-mobile-dock-height) + 8px + env(safe-area-inset-bottom));
        z-index: 20;
        margin-top: 12px;
        padding: 10px !important;
        border: 1px solid var(--gm-border) !important;
        border-radius: 18px;
        background: color-mix(in srgb, var(--gm-surface) 94%, transparent) !important;
        box-shadow: 0 16px 40px rgba(6, 10, 18, .14);
        backdrop-filter: blur(16px);
    }

    .cart-update-bar > span {
        display: none;
    }

    .cart-update-bar .btn {
        width: 100%;
        min-height: 44px;
    }

    .checkout-summary {
        padding: 20px !important;
        border-radius: 22px !important;
    }

    .coupon-box .input-group {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .coupon-box .input-group > .form-control,
    .coupon-box .input-group > .btn {
        min-width: 0;
    }

    .coupon-box .input-group > .btn {
        padding-right: 13px;
        padding-left: 13px;
    }
}

@media (max-width: 380px) {
    .mobile-commerce-dock small {
        font-size: .54rem;
    }

    .cart-table .cart-line-item {
        padding: 13px;
    }

    .cart-thumb {
        width: 68px;
        height: 68px;
    }

    .cart-product-name {
        font-size: .8rem;
    }
}
