/**
 * PrestaShop module created by VEKIA, a guy from official PrestaShop community ;-)
 *
 * @author    VEKIA Miłosz Myszczuk VATEU PL9730945634
 * @copyright 2010-9999 VEKIA
 * @license   This program is not free software and you can't resell and redistribute it
 *
 * CONTACT WITH DEVELOPER http://mypresta.eu
 * support@mypresta.eu
 */

#ct_matrix .ctp_checked {
    background: #F8FCC9;
}

#ct_matrix .ctp_checked:hover {
    background: #F0F5BD !important;
}

#add_to_cart_bulk {
    clear: both;
    overflow: hidden;
    float: right;
    display: inline-block;
}

#add_to_cart_bulk button {
    float: right;
}

#ct_matrix thead th {
    padding-right: 14px;
    margin-right: 5px;
    background: url('../img/sortOff.gif') right 2px center no-repeat;
}

#ct_matrix thead th.tablesorter-headerAsc {
    background: url('../img/sortUp.gif') right 2px center no-repeat;
}

#ct_matrix thead th.tablesorter-headerDesc {
    background: url('../img/sortDown.gif') right 2px center no-repeat;
}

#ct_matrix thead th.nosort {
    background: none !important;
    padding: 5px !important;
    margin-right: 0px !important;
    cursor: default !important;
}

#ct_matrix thead {
    cursor: pointer;
}

#ct_matrix thead.nosort {
    cursor: default;
}

#ct_matrix thead.nosort th {
    background: none !important;
    padding: 5px !important;
    margin-right: 0px !important;
    cursor: default !important;
}

#ct_matrix {
    background: #FFF;
}

#ct_matrix {
    width: 100%;
    border-spacing: 2px;
    border-collapse: separate;
    font-size: 12px;
}

#ct_matrix tr.ct_matrix_row:hover {
    background: #f1f1f1;
}

#ct_matrix tr.ct_matrix_row:hover td {
    border: 1px solid #f2f2f2;
}

#ct_matrix .ct_matrix_head {
    font-weight: bold;
    text-shadow: 1px 1px 0px #FFF;
    background: #ffffff; /* Old browsers */
    background: -moz-linear-gradient(top, #ffffff 0%, #e5e5e5 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #e5e5e5)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #ffffff 0%, #e5e5e5 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #ffffff 0%, #e5e5e5 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #ffffff 0%, #e5e5e5 100%); /* IE10+ */
    background: linear-gradient(to bottom, #ffffff 0%, #e5e5e5 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e5e5e5', GradientType=0); /* IE6-9 */
}

#ct_matrix .volume_discount {
    display: block;
    clear: both;
    margin-bottom: 5px;
}

#ct_matrix td, #ct_matrix th {
    padding: 5px;
    border: 1px solid #f1f2f4;
    text-align: center;
}

#ct_matrix .qty {
    padding: 1px;
    margin: 0px;
    border: 1px solid #c0c0c0;
    font-size: 11px;
    text-align: center;
    border-left: none;
    border-right: none;
    width: 30px;
    /*
    top: 1px;
    */
    position: relative;
    margin-bottom: 10px;
}

#ct_matrix .qty.no_plus_minus_buttons {
    border: 1px solid #c0c0c0;
}

#ct_matrix .ct_submit_nostock {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

.bulk_option_add_to_cart {
    display: block;
    clear: both;
    overflow: hidden;
    padding: 5px;
}

.bulk_option_add_to_cart p {
    display: block;
    clear: both;
    overflow: hidden;
    margin: 0px;
    padding: 0px;
}

.bulk_option_add_to_cart .buttons_bottom_block {
    padding: 0px;
}

.increase_quantity, .decrease_quantity {
    cursor: pointer;
}

.ctd_price {
    font-size: 12px;
}

.ctd_price strike {
    color: #c0c0c0;
}

.combinations_tab_price {
    text-align: right;
    margin: 0;
    display: none;
    float: none;
}

.combinations_tab_price:not(:empty) {
    display: inline-flex;
    align-items: center;
}

.combinations_tab_price img {
    height: 20px;
    width: auto;
    display: block;
}

.colormobile {
    display: none;
}



.pagination_show {
    display: table-row !important;
}

.pagination_hide {
    display: none !important;
}

nav.ct_pagination {
    margin: 0px;
}

.coloroncolor {
    background: #000;
    color: #FFF;
    padding: 1px 3px;
    border-radius: 5px;
}

@media (max-width: 768px) {
    .coloroncolor {
        display: none !important
    }

    .colormobile {
        display: block !important;
    }

    table#ct_matrix tbody, table#ct_matrix {
        display: block !important;
        width: 100%;
    }

    table#ct_matrix th {
        display: none;
    }

    table#ct_matrix tr {
        margin-bottom: 40px;
        border-top: 5px solid #cecece;
        border-bottom: 5px solid #cecece;
        border-radius: 5px;
    }

    table#ct_matrix tr, table#ct_matrix td {
        display: block;
        clear: both;
        width: 100% !important;
    }

    table#ct_matrix td {
        border-top: 1px;
    }

    table#ct_matrix td:before {
        content: attr(data-label);
        float: left;
        font-weight: bold;
    }

    table#ct_matrix td:before {
        width: 40%;
        text-align: right;
        display: block;
        height: 100%;
    }

    table#ct_matrix .ctd_image::before {
        display: none !important;
    }

    #ct_matrix tr.ct_matrix_row:hover td, #ct_matrix td, #ct_matrix th {
        padding: 5px;
        border: 0px;
        border-left: 1px solid #f1f2f4;
        border-right: 1px solid #f1f2f4;
        border-bottom: 1px solid #f1f2f4;
        text-align: center;
    }

    #ct_matrix tr.ct_matrix_row:hover {
        background: none;
    }

    .pagination_show {
        display: block !important;
    }

    .pagination_hide {
        display: none !important;
    }
}

.atc_spinner {
    -webkit-animation-name: spin;
    -webkit-animation-duration: 2000ms;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: cubic-bezier(0.04, 0.71, 0.75, 0.2);
    -moz-animation-name: spin;
    -moz-animation-duration: 2000ms;
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: cubic-bezier(0.04, 0.71, 0.75, 0.2);
    -ms-animation-name: spin;
    -ms-animation-duration: 2000ms;
    -ms-animation-iteration-count: infinite;
    -ms-animation-timing-function: cubic-bezier(0.04, 0.71, 0.75, 0.2);
    animation-name: spin;
    animation-duration: 2000ms;
    animation-iteration-count: infinite;
    animation-timing-function: cubic-bezier(0.04, 0.71, 0.75, 0.2);
}

@-ms-keyframes spin {
    from {
        -ms-transform: rotate(0deg);
    }
    to {
        -ms-transform: rotate(360deg);
    }
}

@-moz-keyframes spin {
    from {
        -moz-transform: rotate(0deg);
    }
    to {
        -moz-transform: rotate(360deg);
    }
}

@-webkit-keyframes spin {
    from {
        -webkit-transform: rotate(0deg);
    }
    to {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.ctpAlert {
    margin: 0px;
    text-align: center;
}

#ct_matrix_head_hide {
    display: none !important;
}

.cth_addtocart {
    min-width: 95px !important;
}

.ctp_switch td {
    cursor: pointer;
}

#ct_matrix .percentageBadge {
    background: red;
    padding: 2px;
    color: #FFF;
    font-weight: bold;
}

a.ctpf {
    opacity: 0.6;
}

a.ctpf.active {
    opacity: 1.0;
}

.table-ct-filters {
    background: #FFF;
    font-size: 12px;
}

.table-ct-filters-label {
    vertical-align: middle!important;
    text-align: right;
}

/* === Modern FO filters === */
.ctp-filters {
    --ctp-f-accent: #2f6b4f;
    --ctp-f-accent-soft: #e8f3ec;
    --ctp-f-border: #e6e8eb;
    --ctp-f-text: #1a1d21;
    --ctp-f-muted: #6b7280;
    --ctp-f-bg: #fafbfc;
    margin: 0 0 16px;
    padding: 16px 18px;
    border: 1px solid var(--ctp-f-border);
    border-radius: 14px;
    background:
            linear-gradient(180deg, #ffffff 0%, var(--ctp-f-bg) 100%);
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.ctp-filters__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.ctp-filters__title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--ctp-f-text);
    letter-spacing: -0.01em;
    line-height: 1.3;
}

.ctp-filters__meta {
    margin: 4px 0 0;
    font-size: 0.78rem;
    color: var(--ctp-f-muted);
    line-height: 1.3;
}

.ctp-filters__count {
    font-variant-numeric: tabular-nums;
}

.ctp-filters__clear {
    appearance: none;
    border: 1px solid var(--ctp-f-border);
    background: #fff;
    color: var(--ctp-f-text);
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1;
    padding: 8px 12px;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
    white-space: nowrap;
}

.ctp-filters__clear:hover {
    border-color: #c45b5b;
    color: #a33;
    background: #fff7f7;
}

.ctp-filters__clear-icon {
    font-size: 1.05rem;
    line-height: 1;
    font-weight: 700;
}

.ctp-filters__groups {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ctp-filters__group {
    display: grid;
    grid-template-columns: minmax(72px, 110px) 1fr;
    gap: 10px 14px;
    align-items: start;
}

.ctp-filters__label {
    padding-top: 8px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ctp-f-muted);
}

.ctp-filters__values {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ctp-filters__chip {
    appearance: none;
    border: 1px solid var(--ctp-f-border);
    background: #fff;
    color: var(--ctp-f-text);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.2;
    padding: 8px 12px;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition:
            background 0.15s ease,
            border-color 0.15s ease,
            color 0.15s ease,
            box-shadow 0.15s ease,
            transform 0.12s ease,
            opacity 0.15s ease;
    max-width: 100%;
}

.ctp-filters__chip:hover {
    border-color: #b8c0c8;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
}

.ctp-filters__chip:active {
    transform: translateY(1px);
}

.ctp-filters__chip:focus-visible {
    outline: 2px solid var(--ctp-f-accent);
    outline-offset: 2px;
}

.ctp-filters__chip.active {
    background: var(--ctp-f-accent-soft);
    border-color: var(--ctp-f-accent);
    color: var(--ctp-f-accent);
    box-shadow: inset 0 0 0 1px rgba(47, 107, 79, 0.12);
}

.ctp-filters__chip.is-unavailable {
    opacity: 0.35;
    cursor: not-allowed;
    box-shadow: none;
}

.ctp-filters__chip.is-unavailable:hover {
    border-color: var(--ctp-f-border);
    box-shadow: none;
}

.ctp-filters__chip-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ctp-filters__chip--swatch {
    padding-left: 8px;
}

.ctp-filters__swatch {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    flex: 0 0 18px;
    border: 1px solid rgba(0, 0, 0, 0.12);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}

.ctp-filters__chip.active .ctp-filters__swatch {
    box-shadow:
            0 0 0 2px #fff,
            0 0 0 3px var(--ctp-f-accent);
}

.ctp-filters__empty {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #fff8e8;
    border: 1px solid #f0dfb0;
    color: #7a5b14;
    font-size: 0.82rem;
    font-weight: 600;
}

.ctp-filters--active {
    border-color: #d5e5db;
}

.ctp-filters-no-results #ct_matrix {
    opacity: 0.35;
    pointer-events: none;
    filter: grayscale(0.15);
    transition: opacity 0.2s ease;
}

#ct_matrix .ct_matrix_row {
    transition: opacity 0.15s ease;
}

@media (max-width: 767px) {
    .ctp-filters {
        padding: 14px;
        border-radius: 12px;
        position: sticky;
        top: 0;
        z-index: 5;
        backdrop-filter: blur(8px);
        background: rgba(250, 251, 252, 0.94);
    }

    .ctp-filters__group {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .ctp-filters__label {
        padding-top: 0;
    }

    .ctp-filters__values {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 4px;
        margin: 0 -2px;
        padding-left: 2px;
        padding-right: 2px;
        scrollbar-width: thin;
    }

    .ctp-filters__chip {
        flex: 0 0 auto;
    }
}
/* === Combinations Tab Pro 3.0 === */
.ctp-best-price { background: #f3faf0 !important; box-shadow: inset 3px 0 0 #70b580; }
.ctp-savings-badge { display:inline-block; background:#70b580; color:#fff; padding:2px 6px; border-radius:3px; font-size:12px; }
.ctp-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
#ct_matrix thead th { position: sticky; top: 0; z-index: 2; background: #f8f8f8; }
#ct_matrix .sticky-col, .ctp-grid-table .sticky-col {
    position: sticky; left: 0; z-index: 1; background: #fff;
}
.ctp-grid-scroll { overflow-x: auto; margin-bottom: 12px; -webkit-overflow-scrolling: touch; }
.ctp-grid-wrap {
    --ctp-g-ink: #14181f;
    --ctp-g-muted: #6b7280;
    --ctp-g-line: #e8eaee;
    --ctp-g-soft: #f4f5f7;
    --ctp-g-accent: #1f6b4a;
    --ctp-g-accent-soft: #e7f5ee;
    --ctp-g-warn: #b42318;
    position: relative;
    border: 1px solid var(--ctp-g-line);
    border-radius: 16px;
    background:
            linear-gradient(180deg, #fafbfc 0%, #fff 48px);
    box-shadow:
            0 1px 2px rgba(20, 24, 31, 0.04),
            0 12px 32px rgba(20, 24, 31, 0.04);
    overflow: hidden;
}
.ctp-grid-wrap::after {
    content: '';
    pointer-events: none;
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: 36px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.92));
    z-index: 6;
}
.ctp-grid-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 12px;
    min-width: 560px;
    margin: 0;
    color: var(--ctp-g-ink);
}
.ctp-grid-table .ctp-grid-corner,
.ctp-grid-table .ctp-grid-col,
.ctp-grid-table .ctp-grid-row-label {
    background: var(--ctp-g-soft);
    font-weight: 650;
    color: var(--ctp-g-ink);
    padding: 12px 14px;
    border-bottom: 1px solid var(--ctp-g-line);
    border-right: 1px solid var(--ctp-g-line);
    text-align: center;
    vertical-align: middle;
}
.ctp-grid-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: #eef0f3;
}
.ctp-grid-table .sticky-col {
    position: sticky;
    left: 0;
    z-index: 4;
    background: #eef0f3;
    box-shadow: 4px 0 16px rgba(20, 24, 31, 0.05);
    text-align: left;
    min-width: 96px;
    max-width: 140px;
}
.ctp-grid-table thead .sticky-col { z-index: 5; }
.ctp-grid-table .ctp-grid-row-label {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.01em;
}
.ctp-grid-corner__row,
.ctp-grid-corner__col {
    display: block;
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ctp-g-muted);
    font-weight: 700;
}
.ctp-grid-corner__sep {
    display: block;
    color: #c5cad3;
    font-weight: 600;
    line-height: 1;
    margin: 3px 0;
    font-size: 11px;
}
.ctp-grid-axis {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    max-width: 100%;
}
.ctp-grid-axis__swatch {
    width: 14px; height: 14px; border-radius: 50%; flex: 0 0 14px;
    border: 1px solid rgba(0,0,0,0.14);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.4);
    background-size: cover; background-position: center;
}
.ctp-grid-axis__name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 650;
}
.ctp-grid-table .ctp-grid-cell {
    text-align: center !important;
    min-width: 148px;
    max-width: 210px;
    vertical-align: top;
    padding: 0;
    border-bottom: 1px solid var(--ctp-g-line);
    border-right: 1px solid var(--ctp-g-line);
    background: #fff;
    transition: background 0.15s ease, box-shadow 0.15s ease;
}
.ctp-grid-table .ctp-grid-cell:hover {
    background: #fbfcfd;
    box-shadow: inset 0 0 0 1px #d7dde5;
}
.ctp-grid-table .ctp-grid-cell.ctp_checked,
.ctp-grid-table .ctp-grid-cell.ctp-best-price {
    background: var(--ctp-g-accent-soft) !important;
    box-shadow: inset 3px 0 0 var(--ctp-g-accent);
}
.ctp-grid-table .ctp-grid-cell.ctp_checked:hover {
    background: #dff0e7 !important;
}
.ctp-grid-cell__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
    min-height: 100%;
    padding: 12px 10px;
    text-align: center;
}
.ctp-grid-cell__media:empty,
.ctp-grid-cell__body:empty,
.ctp-grid-cell__actions:empty {
    display: none;
}
.ctp-grid-cell__media {
    margin: 0 0 8px;
    display: flex;
    justify-content: center;
    width: 100%;
}
.ctp-grid-cell__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    flex: 1 1 auto;
    width: 100%;
    text-align: center;
}
.ctp-grid-cell__actions {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #eef0f3;
    width: 100%;
}
.ctp-grid-cell__buy {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    width: 100%;
    max-width: 148px;
}
.ctp-grid-cell__buy .ctp-qty-stepper,
.ctp-grid-cell__buy .ctp-grid-block--atc {
    width: 100%;
    justify-content: stretch;
}
.ctp-grid-cell__buy .ctp-qty-stepper .qty,
.ctp-grid-cell__buy .ctp-grid-block--atc .qty {
    flex: 1 1 auto;
    width: auto !important;
    min-width: 36px;
}
.ctp-grid-cell__buy .ctp-grid-block--atcbtn {
    width: 100%;
}
.ctp-grid-cell__buy .ctp-grid-atcbtn,
.ctp-grid-cell__buy .ctp-grid-block--atcbtn .ct_submit {
    width: 100%;
    min-width: 0;
    height: 34px;
}
.ctp-grid-cell__extras {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
}
.ctp-grid-cell__inner--oos,
.ctp-grid-cell--oos { opacity: 0.58; }
.ctp-grid-cell-form { display: contents; }
.ctp-grid-block { width: 100%; text-align: center; }
.ctp-grid-block--image { line-height: 0; width: auto; }
.ctp-grid-thumb {
    width: 72px;
    height: 72px;
    object-fit: cover;
    display: block;
    margin: 0 auto;
    border: 0;
    border-radius: 10px;
    background: #f1f3f5;
    box-shadow: 0 0 0 1px rgba(20, 24, 31, 0.06);
}
.ctp-grid-thumb--empty {
    display: block;
    width: 72px;
    height: 72px;
    margin: 0 auto;
    border-radius: 10px;
    background:
            linear-gradient(135deg, #f3f4f6 0%, #e7e9ed 100%);
}
.ctp-grid-block--ref {
    font-size: 11px;
    color: var(--ctp-g-muted);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ctp-grid-block--price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 4px 6px;
}
.ctp-grid-price {
    font-weight: 750;
    font-size: 15px;
    letter-spacing: -0.02em;
    color: var(--ctp-g-ink);
    line-height: 1.15;
}
.ctp-grid-price-old {
    font-size: 11px;
    color: #9aa3af;
    text-decoration: line-through;
    order: -1;
    width: 100%;
    text-align: center;
}
.ctp-grid-disc {
    display: inline-flex;
    align-items: center;
    font-size: 10px;
    font-weight: 750;
    color: #fff;
    background: var(--ctp-g-accent);
    border-radius: 999px;
    padding: 2px 6px;
    line-height: 1.2;
}
.ctp-grid-block--unit {
    font-size: 11px;
    color: var(--ctp-g-muted);
}
.ctp-grid-block--stockrow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 2px;
}
.ctp-grid-stock {
    font-size: 11px;
    color: var(--ctp-g-muted);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
.ctp-grid-avail {
    font-size: 10px;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 999px;
}
.ctp-grid-avail--ok {
    color: var(--ctp-g-accent);
    background: var(--ctp-g-accent-soft);
}
.ctp-grid-avail--oos {
    color: var(--ctp-g-warn);
    background: #fdecec;
}
.ctp-grid-muted { color: #9aa3af; font-size: 11px; }
.ctp-grid-block--minqty {
    font-size: 11px;
    color: var(--ctp-g-muted);
}
.ctp-qty-stepper,
.ctp-grid-block--atc {
    display: inline-flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    width: auto;
    max-width: 100%;
    border: 1px solid #d5dae1;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 1px 0 rgba(20, 24, 31, 0.03);
    vertical-align: middle;
}
.ctp-qty-stepper--hidden { display: none !important; }
.ctp-qty-stepper--header { margin-top: 6px; }
.ctp-qty-step,
.ctp-grid-step {
    appearance: none;
    border: 0;
    background: #f6f7f9;
    color: #14181f;
    width: 30px;
    min-height: 34px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}
.ctp-qty-step:hover,
.ctp-grid-step:hover { background: #eef0f3; }
.ctp-qty-step:active,
.ctp-grid-step:active { background: #e5e8ed; }
#ct_matrix .ctp-qty-stepper .qty,
#ct_matrix .ctp-grid-block--atc .qty,
#ct_matrix.ctp-grid-table .ctp-grid-block--atc .qty,
.ctp-grid-table .ctp-grid-block--atc .qty {
    width: 42px !important;
    margin: 0 !important;
    margin-bottom: 0 !important;
    display: inline-block;
    border: 0 !important;
    border-left: 1px solid #e6e8eb !important;
    border-right: 1px solid #e6e8eb !important;
    border-radius: 0 !important;
    padding: 6px 2px !important;
    text-align: center;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    background: #fff;
    box-shadow: none !important;
    outline: none;
    min-height: 34px;
    position: static;
    -webkit-appearance: none;
    appearance: none;
}
#ct_matrix .ctp-qty-stepper .qty.no_plus_minus_buttons {
    border-left: 0 !important;
    border-right: 0 !important;
}
#ct_matrix .ctp-qty-stepper .qty:focus,
#ct_matrix .ctp-grid-block--atc .qty:focus,
#ct_matrix.ctp-grid-table .ctp-grid-block--atc .qty:focus {
    outline: none;
    box-shadow: inset 0 0 0 1px #c5cad3;
}
.ctd_addtocart {
    --ctp-atc-bg: #1a1d21;
    --ctp-atc-bg-hover: #111418;
    --ctp-atc-accent: #2f6b4f;
    white-space: nowrap;
}
.ctd_addtocart .ctp-qty-stepper {
    margin-right: 0;
    vertical-align: middle;
}
.ctp-atc-btn,
#ct_matrix .ctp-atc-btn.ct_submit {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    vertical-align: middle;
    margin: 0;
    margin-left: 8px;
    padding: 0 14px;
    min-height: 36px;
    border: 0;
    border-radius: 10px;
    background: var(--ctp-atc-bg, #1a1d21);
    color: #fff;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: -0.01em;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.12);
    transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}
.ctp-atc-btn:hover,
#ct_matrix .ctp-atc-btn.ct_submit:hover {
    background: var(--ctp-atc-bg-hover, #111418);
    color: #fff;
    box-shadow: 0 2px 6px rgba(16, 24, 40, 0.16);
}
.ctp-atc-btn:active {
    transform: translateY(1px);
}
.ctp-atc-btn:focus-visible {
    outline: 2px solid var(--ctp-atc-accent, #2f6b4f);
    outline-offset: 2px;
}
.ctp-atc-btn.ct_submit_nostock,
#ct_matrix .ctp-atc-btn.ct_submit_nostock {
    background: #e8eaee;
    color: #8b929c;
    box-shadow: none;
    opacity: 1;
}
.ctp-atc-btn .material-icons,
.ctp-atc-btn .fa {
    font-size: 18px;
    line-height: 1;
    color: inherit;
    margin: 0;
    padding: 0;
    position: static;
}
.ctp-atc-btn__label {
    display: inline-block;
}
.ctp-grid-atcbtn,
.ctp-grid-block--atcbtn .ct_submit,
.ctp-grid-block--atcbtn .ctp-atc-btn {
    appearance: none;
    border: 0;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: 10px;
    background: #1a1d21;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.12);
    transition: transform 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.ctp-grid-atcbtn:hover,
.ctp-grid-block--atcbtn .ct_submit:hover {
    background: #111418;
    box-shadow: 0 2px 6px rgba(16, 24, 40, 0.16);
}
.ctp-grid-atcbtn:active {
    transform: translateY(1px);
}
.ctp-grid-atcbtn.ct_submit_nostock,
.ctp-grid-block--atcbtn .ct_submit_nostock {
    background: #e8eaee;
    color: #8b929c;
    opacity: 1;
    cursor: not-allowed;
    box-shadow: none;
}
.ctp-grid-block--atcbtn .material-icons,
.ctp-grid-atcbtn .material-icons,
.ctp-grid-atcbtn .fa {
    font-size: 18px;
    line-height: 1;
    color: inherit;
    margin: 0;
}
.ctp-grid-block--wishlist,
.ctp-grid-block--bis {
    width: auto;
}
.ctp-grid-empty {
    text-align: center !important;
    color: #d0d5dd;
    background:
            repeating-linear-gradient(
                    -45deg,
                    #fafbfc,
                    #fafbfc 6px,
                    #f5f6f8 6px,
                    #f5f6f8 12px
            );
    border-bottom: 1px solid var(--ctp-g-line);
    border-right: 1px solid var(--ctp-g-line);
}
.ctp-grid-empty__mark { font-size: 13px; font-weight: 600; }
.ctp-grid-login { font-size: 12px; font-weight: 650; }
.ctp-toolbar__atc .ctp-summary-total:not(:empty),
.ctp-toolbar__atc .combinations_tab_price:not(:empty) {
    display: inline-flex;
    align-items: center;
    margin: 0;
    font-size: 15px;
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--ctp-tb-text, #1a1d21);
    white-space: nowrap;
}
.ctp-toolbar {
    --ctp-tb-accent: #2f6b4f;
    --ctp-tb-accent-soft: #e8f3ec;
    --ctp-tb-border: #e6e8eb;
    --ctp-tb-text: #1a1d21;
    --ctp-tb-muted: #6b7280;
    --ctp-tb-bg: #fafbfc;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid var(--ctp-tb-border);
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, var(--ctp-tb-bg) 100%);
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}
/* Hide empty sticky bulk bar (no buttons / export / CSV) */
.ctp-toolbar:not(:has(.ctp-tb-btn)):not(:has(.ctp-export)):not(:has(.ctp-csv)) {
    display: none;
}
.ctp-toolbar__main {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.ctp-toolbar__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.ctp-toolbar__tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.ctp-tb-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0;
    padding: 8px 12px;
    border: 1px solid var(--ctp-tb-border);
    border-radius: 10px;
    background: #fff;
    color: var(--ctp-tb-text);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.ctp-tb-btn:hover {
    background: #f3f5f7;
    border-color: #d5dae0;
}
.ctp-tb-btn:focus-visible {
    outline: 2px solid var(--ctp-tb-accent);
    outline-offset: 2px;
}
.ctp-tb-btn__icon {
    flex: 0 0 auto;
    display: block;
}
.ctp-tb-btn--accent {
    background: var(--ctp-tb-accent);
    border-color: var(--ctp-tb-accent);
    color: #fff;
}
.ctp-tb-btn--accent:hover {
    background: #275a42;
    border-color: #275a42;
    color: #fff;
}
.ctp-tb-btn--primary {
    background: var(--ctp-tb-text);
    border-color: var(--ctp-tb-text);
    color: #fff;
    padding: 10px 16px;
    min-height: 42px;
}
.ctp-tb-btn--primary:hover {
    background: #111827;
    border-color: #111827;
    color: #fff;
}
.ctp-tb-btn--primary .material-icons,
.ctp-tb-btn--primary .fa {
    font-size: 18px;
    line-height: 1;
}
.ctp-toolbar__atc {
    margin-left: auto;
    clear: none;
    overflow: visible;
    float: none;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 0;
    flex: 0 0 auto;
}
.ctp-toolbar__atc #add_to_cart_bulk {
    clear: none;
    float: none;
    overflow: visible;
    margin: 0;
}
.ctp-toolbar__atc-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.ctp-export {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--ctp-tb-border);
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}
.ctp-export__label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 10px;
    font-size: 12px;
    font-weight: 700;
    color: var(--ctp-tb-muted);
    background: #f7f8fa;
    border-right: 1px solid var(--ctp-tb-border);
    white-space: nowrap;
}
.ctp-export__btns {
    display: inline-flex;
}
.ctp-export__btn {
    appearance: none;
    margin: 0;
    padding: 8px 11px;
    border: 0;
    border-right: 1px solid var(--ctp-tb-border);
    background: transparent;
    color: var(--ctp-tb-text);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.ctp-export__btn:last-child {
    border-right: 0;
}
.ctp-export__btn:hover {
    background: var(--ctp-tb-accent-soft);
    color: var(--ctp-tb-accent);
}
.ctp-export__btn:focus-visible {
    outline: 2px solid var(--ctp-tb-accent);
    outline-offset: -2px;
}
.ctp-csv {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    border: 1px solid var(--ctp-tb-border);
    border-radius: 12px;
    background: #fff;
}
.ctp-csv__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}
.ctp-csv__titles {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.ctp-csv__title {
    font-size: 13px;
    font-weight: 700;
    color: var(--ctp-tb-text);
}
.ctp-csv__hint {
    font-size: 12px;
    color: var(--ctp-tb-muted);
    line-height: 1.35;
}
.ctp-csv__input {
    width: 100%;
    min-height: 72px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--ctp-tb-border);
    border-radius: 10px;
    background: #fafbfc;
    color: var(--ctp-tb-text);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 12.5px;
    line-height: 1.45;
    resize: vertical;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.ctp-csv__input:focus {
    outline: none;
    border-color: var(--ctp-tb-accent);
    background: #fff;
    box-shadow: 0 0 0 3px var(--ctp-tb-accent-soft);
}
.ctp-csv__input::placeholder {
    color: #9aa3af;
}
.ctp-csv__status {
    min-height: 0;
    font-size: 12px;
    font-weight: 600;
    color: var(--ctp-tb-accent);
}
.ctp-csv__status.is-error {
    color: #b42318;
}
.ctp-csv__status:empty {
    display: none;
}
.ctp-summary-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
    align-items: stretch;
    font-size: 12.5px;
    color: var(--ctp-tb-muted);
}
.ctp-summary-bar:empty,
.ctp-summary-bar:has(.ctp-summary-qty:empty):not(:has(.ctp-summary-threshold.is-visible)) {
    display: none;
}
.ctp-summary-qty:not(:empty) {
    display: inline-flex;
    align-items: center;
    align-self: center;
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--ctp-tb-accent-soft);
    color: var(--ctp-tb-accent);
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
}
.ctp-summary-threshold {
    display: none;
    flex: 1 1 220px;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #f0e2c4;
    background:
            linear-gradient(135deg, rgba(255, 248, 235, 0.95) 0%, rgba(255, 255, 255, 0.92) 55%, #fff 100%);
    box-shadow: 0 1px 2px rgba(120, 80, 20, 0.05);
    color: #7a5a1e;
    line-height: 1.35;
}
.ctp-summary-threshold.is-visible {
    display: inline-flex;
    animation: ctp-tip-in 0.28s ease-out;
}
.ctp-summary-threshold__icon {
    flex-shrink: 0;
    margin-top: 1px;
    color: #c4891a;
}
.ctp-summary-threshold__text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13px;
    font-weight: 600;
    color: #5c4518;
    letter-spacing: -0.01em;
}
@keyframes ctp-tip-in {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 767px) {
    .ctp-toolbar {
        padding: 12px;
    }
    .ctp-toolbar__actions {
        flex-direction: column;
        align-items: stretch;
    }
    .ctp-summary-threshold {
        flex-basis: 100%;
    }
    .ctp-summary-threshold__text {
        font-size: 12.5px;
    }
    .ctp-toolbar__tools {
        width: 100%;
    }
    .ctp-toolbar__atc,
    .ctp-export {
        width: 100%;
    }
    .ctp-toolbar__atc {
        justify-content: flex-end;
    }
    .ctp-toolbar__atc #add_to_cart_bulk {
        flex: 1 1 auto;
    }
    .ctp-toolbar__atc .ctp-tb-btn--primary {
        width: 100%;
    }
    .ctp-export {
        display: flex;
    }
    .ctp-export__label {
        flex: 0 0 auto;
    }
    .ctp-export__btns {
        flex: 1 1 auto;
    }
    .ctp-export__btn {
        flex: 1 1 0;
    }
    .ctp-csv__head {
        flex-direction: column;
    }
    .ctp-csv__head .ctp-tb-btn {
        width: 100%;
    }
}
.ctp-wishlist-btn {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 6px;
    margin: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #64748b;
    line-height: 1;
    vertical-align: middle;
    transition: color 0.15s ease, transform 0.15s ease;
}
.ctp-wishlist-btn:hover {
    color: #e11d48;
    transform: scale(1.08);
}
.ctp-wishlist-btn:focus-visible {
    outline: 2px solid #e11d48;
    outline-offset: 2px;
    border-radius: 6px;
}
.ctp-wishlist-btn__icon {
    width: 26px;
    height: 26px;
    display: block;
}
.ctp-wishlist-btn__icon--filled {
    display: none;
    color: #e11d48;
}
.ctp-wishlist-btn.ctp-wishlist-on {
    color: #e11d48;
}
.ctp-wishlist-btn.ctp-wishlist-on .ctp-wishlist-btn__icon--outline {
    display: none;
}
.ctp-wishlist-btn.ctp-wishlist-on .ctp-wishlist-btn__icon--filled {
    display: block;
}
.ctd_wishlist {
    text-align: center;
    white-space: nowrap;
}

.ctd_combdesc,
.ctd_combfeat {
    text-align: left;
    vertical-align: top;
    max-width: 280px;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 400;
    font-family: inherit;
    color: #334155;
}
.ctp-combdesc,
.ctp-combfeat-list {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    font-family: inherit;
    color: inherit;
}
.ctp-combdesc {
    max-height: 9.5em;
    overflow: auto;
}
.ctp-combdesc *,
.ctp-combdesc *::before,
.ctp-combdesc *::after {
    font-size: inherit !important;
    font-family: inherit !important;
    line-height: inherit !important;
}
.ctp-combdesc p,
.ctp-combdesc ul,
.ctp-combdesc ol {
    margin: 0 0 0.4em;
}
.ctp-combdesc p:last-child,
.ctp-combdesc ul:last-child,
.ctp-combdesc ol:last-child {
    margin-bottom: 0;
}
.ctp-combfeat-list {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: left;
}
.ctp-combfeat-list li {
    margin: 0 0 4px;
}
.ctp-combfeat-list li:last-child {
    margin-bottom: 0;
}
.ctp-combfeat-list__name {
    display: inline;
    font-weight: 700;
    color: #0f172a;
    margin-right: 4px;
}
.ctp-combfeat-list__name:after {
    content: ':';
}

/* Wishlist confirmation toast (product page) */
.ctp-wl-toast {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 10050;
    max-width: min(360px, calc(100vw - 24px));
    padding: 0;
    border-radius: 12px;
    background: #0f172a;
    color: #fff;
    font-size: 0.875rem;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.28);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.22s ease, transform 0.22s ease;
    pointer-events: none;
    overflow: hidden;
}
.ctp-wl-toast.is-visible { opacity: 1; transform: translateY(0); }
.ctp-wl-toast.is-visible .ctp-wl-toast__link {
    pointer-events: auto;
    cursor: pointer;
    position: relative;
    z-index: 1;
}
.ctp-wl-toast__inner { display: flex; gap: 12px; align-items: center; padding: 12px 14px; }
.ctp-wl-toast__img {
    width: 56px; height: 56px; object-fit: cover; border-radius: 8px;
    background: #1e293b; flex: 0 0 56px;
}
.ctp-wl-toast__img--empty {
    display: inline-block;
    background: linear-gradient(135deg, #1e293b, #334155);
}
.ctp-wl-toast__body { min-width: 0; flex: 1 1 auto; }
.ctp-wl-toast__title {
    font-weight: 700; font-size: 0.8rem; letter-spacing: 0.01em;
    margin-bottom: 2px; color: #e2e8f0;
}
.ctp-wl-toast[data-status="added"] .ctp-wl-toast__title { color: #86efac; }
.ctp-wl-toast[data-status="removed"] .ctp-wl-toast__title { color: #fda4af; }
.ctp-wl-toast__product {
    font-size: 0.72rem; color: #94a3b8;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ctp-wl-toast__combination {
    font-weight: 600; color: #fff; line-height: 1.35;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ctp-wl-toast__link {
    display: inline-flex;
    align-items: center;
    margin-top: 6px;
    font-size: 0.82rem;
    font-weight: 700;
    color: #86efac;
    text-decoration: none;
    border-bottom: 1px solid rgba(134, 239, 172, 0.4);
    line-height: 1.2;
    pointer-events: auto;
}
.ctp-wl-toast__link:hover,
.ctp-wl-toast__link:focus {
    color: #bbf7d0;
    border-bottom-color: rgba(187, 247, 208, 0.75);
    text-decoration: none;
}
.ctp-wl-toast__price {
    margin-top: 4px;
    font-weight: 700;
    font-size: 0.95rem;
    color: #f8fafc;
}
body.ctp-has-sticky-bulk .ctp-wl-toast {
    bottom: 130px;
}
body.ctp-has-sticky-bulk { padding-bottom: 120px; }

@media (max-width: 767px) {
    .ctp-cards #ct_matrix thead { display: none; }
    .ctp-cards #ct_matrix, .ctp-cards #ct_matrix tbody, .ctp-cards #ct_matrix tr, .ctp-cards #ct_matrix td {
        display: block; width: 100%;
    }
    .ctp-cards #ct_matrix tr {
        margin-bottom: 12px; border: 1px solid #ddd; padding: 8px; background: #fff;
    }
    .ctp-cards #ct_matrix td {
        text-align: right; padding-left: 45%; position: relative; border: none; border-bottom: 1px solid #eee;
    }
    .ctp-cards #ct_matrix td:before {
        content: attr(data-label);
        position: absolute; left: 8px; width: 42%; text-align: left; font-weight: 600;
    }
    .ctp-cards #ct_matrix td.ctd_addtocart {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        padding-top: 12px;
        padding-bottom: 4px;
    }
    .ctp-cards #ct_matrix .ctp-atc-btn {
        margin-left: 0;
        flex: 1 1 auto;
        min-width: 140px;
    }
    .ctp-grid-table { min-width: 420px; }
    .ctp-grid-wrap::after { width: 20px; }
    .ctp-grid-table .ctp-grid-cell { min-width: 132px; }
    .ctp-grid-cell__inner { padding: 10px 8px; }
    .ctp-grid-cell__media { margin: 0 0 6px; }
    .ctp-grid-thumb,
    .ctp-grid-thumb--empty { width: 60px; height: 60px; }
    .ctp-grid-price { font-size: 14px; }
    #ct_matrix .ctp-qty-stepper .qty,
    #ct_matrix .ctp-grid-block--atc .qty,
    #ct_matrix.ctp-grid-table .ctp-grid-block--atc .qty,
    .ctp-grid-table .ctp-grid-block--atc .qty { width: 36px !important; }
}
