/* Quantity and add-to-cart layout. */
.quantity-container { max-width: 140px; flex: 0 0 auto; }
.add-to-cart-button { flex: 1 1 auto; white-space: nowrap; }

@media (max-width: 576px) {
    .h2-lg { font-size: 1.4rem; }
}

.ace-thumb { opacity: .75; border: 2px solid transparent; }
.ace-thumb.active-thumb { opacity: 1; border-color: var(--bs-primary); }

@media (max-width: 992px) {
    body.single-product { padding-bottom: 90px; }
}

.d-lg-none.fixed-bottom {
    z-index: 1030;
}

.badge { font-size: .85rem; }

@media (max-width: 576px) {
    .badge { font-size: .8rem; }
}

.sticky-atc .sticky-desc {
    font-size: .78rem;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.ace-prod-info {
    border-radius: 0.75rem;
    overflow: hidden;
}

.ace-prod-info-inner {
    padding: 0.75rem 0.75rem 0.75rem;
}

.ace-prod-tabs-nav {
    border-bottom: none;
    background: #f8f9fa;
    border-radius: 0.75rem 0.75rem 0 0;
    padding: 0.25rem;
}

.ace-prod-tabs-nav .nav-link {
    border-radius: 999px;
    margin-right: 0.35rem;
    padding: 0.35rem 1rem;
    font-weight: 600;
    font-size: 0.9rem;
    color: #495057;
    border: none;
}

.ace-prod-tabs-nav .nav-link:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

.ace-prod-tabs-nav .nav-link.active {
    background-color: var(--bs-primary);
    color: #fff;
}

.ace-prod-tabs-inner {
    border-top: 1px solid #dee2e6;
    background: #fff;
    border-radius: 0 0 0.75rem 0.75rem;
}

.ace-thumb {
    opacity: .75;
    border: 2px solid transparent;
    cursor: pointer;
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
}

.ace-thumb.active-thumb {
    opacity: 1;
    border-color: var(--bs-primary);
}

.ace-thumb-col {
    max-width: 70px;
}

.ace-variant-thumb-col {
    width: 72px;
    max-width: 72px;
}

.ace-variant-thumb {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    cursor: pointer;
}

.ace-breadcrumb-shell {
    position: relative;
}

.ace-breadcrumb {
    font-size: 0.85rem;
}

@media (max-width: 767.98px) {
    .ace-breadcrumb {
        white-space: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        padding-right: 1.5rem;
        scrollbar-width: none;
    }

    .ace-breadcrumb::-webkit-scrollbar {
        display: none;
    }

    .ace-breadcrumb-shell::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        width: 32px;
        height: 100%;
        pointer-events: none;
        background: linear-gradient(
            to right,
            rgba(255, 255, 255, 0),
            rgba(255, 255, 255, 1)
        );
    }
}

@media (min-width: 768px) {
    .ace-breadcrumb {
        white-space: normal;
        overflow: visible;
    }

    .ace-breadcrumb-shell::after {
        content: none;
    }
}

@media (min-width: 992px) {
    #aceDesktopInfoAcc .accordion-button {
        padding: .75rem 1rem;
        font-weight: 600;
    }

    #aceDesktopInfoAcc .accordion-body {
        padding: 1rem;
    }
}

.ace-main-wrap img#ace-main-image {
    will-change: transform, opacity;
}

.ace-slide-out-left {
    animation: aceSlideOutLeft 0.18s ease-in forwards;
}

.ace-slide-out-right {
    animation: aceSlideOutRight 0.18s ease-in forwards;
}

.ace-slide-in-left {
    animation: aceSlideInLeft 0.18s ease-out forwards;
}

.ace-slide-in-right {
    animation: aceSlideInRight 0.18s ease-out forwards;
}

@keyframes aceSlideOutLeft {
    to {
        transform: translateX(-100%);
        opacity: 0;
    }
}

@keyframes aceSlideOutRight {
    to {
        transform: translateX(100%);
        opacity: 0;
    }
}

@keyframes aceSlideInLeft {
    from {
        transform: translateX(-100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes aceSlideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.ace-variants-table {
    table-layout: fixed;
    width: 100%;
}

.ace-variants-table col.ace-col-thumb {
    width: 72px;
}

.ace-variants-table col.ace-col-price {
    width: 110px;
}

.ace-variants-table col.ace-col-stock {
    width: 48px;
}

.ace-variants-table col.ace-col-buy {
    width: 110px;
}

.ace-variants-table col.ace-col-title {
    width: auto;
}

.ace-variant-thumb-col {
    width: 72px;
    max-width: 72px;
}

@media (max-width: 576px) {
    .ace-variants-table col.ace-col-price {
        width: 90px;
    }

    .ace-variants-table col.ace-col-buy {
        width: 80px;
    }
}

@media (max-width: 767.98px) {
    .ace-variants-table tbody tr + tr {
        border-top: none;
    }

    .ace-variants-table .ace-variant-thumb-col {
        vertical-align: top;
    }
}

.ace-variants-table td.bg-light {
    border-top: none;
    font-size: 0.9rem;
}

.ace-variant-jump {
    font-size: .78rem;
    font-weight: 600;
    text-decoration: none;
    opacity: .55;
    color: inherit;
    white-space: nowrap;
}

.ace-variant-jump:hover {
    opacity: .85;
    text-decoration: underline;
}

.ace-variant-jump i {
    position: relative;
    top: 1px;
}

.ace-prod-tags a.ace-tag {
    font-size: .78rem;
    font-weight: 600;
    padding: .35rem .55rem;
    opacity: .9;
    transition: opacity .12s ease, background-color .12s ease, border-color .12s ease, transform .12s ease;
}

.ace-prod-tags a.ace-tag:hover,
.ace-prod-tags a.ace-tag:focus,
.ace-prod-tags a.ace-tag:focus-visible {
    opacity: 1;
    background-color: rgba(0, 0, 0, .04) !important;
    border-color: rgba(0, 0, 0, .18) !important;
    transform: translateY(-1px);
    text-decoration: none !important;
    outline: none;
}

.ace-prod-tags a.ace-tag:focus-visible {
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}
