/* ============================================================
   OPTC CART — корзина в стиле Optica (чёрный + зелёный)
   Версия: 2.1
   • ★ FIX: cart-subtotal больше не скрывается — переименовывается
   • Карточки товаров с аккордеоном характеристик
   • Блоки: параметры линз, рецепт, параметры оправы
   • Итоги: Стоимость товаров / Скидка за самосбор / Итого
   • Единый тёмный фон #0b0b0b
   ============================================================ */

.optc-cart {
    --cc-bg:      #0b0b0b;
    --cc-card:    #141414;
    --cc-card-2:  #1a1a1a;
    --cc-border:  #2a2a2a;
    --cc-green:   #2a9d4a;
    --cc-green-l: #4ade80;
    --cc-green-d: #1f7a36;
    --cc-text:    #e5e5e5;
    --cc-text-2:  #b0b0b0;
    --cc-text-3:  #808080;
    --cc-red:     #ff4d4d;
    --cc-red-d:   #dc2626;

    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 24px;
    align-items: start;
    padding: 24px 0 60px;
    font-family: inherit;
    color: var(--cc-text);
    box-sizing: border-box;
}
.optc-cart * { box-sizing: border-box; }

/* ---------- Форма / список ---------- */
.optc-cart__form {
    background: var(--cc-card);
    border: 1px solid var(--cc-border);
    border-radius: 20px;
    padding: 20px;
    transition: opacity .2s, filter .2s;
    min-width: 0;
}
.optc-cart.is-loading .optc-cart__form {
    opacity: .5;
    pointer-events: none;
    filter: grayscale(.2);
}

.optc-cart__items {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ---------- Карточка товара ---------- */
.optc-cart-item {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 16px;
    padding: 16px;
    background: var(--cc-card-2);
    border: 1px solid var(--cc-border);
    border-radius: 14px;
    transition: border-color .2s;
    position: relative;
}
.optc-cart-item:hover {
    border-color: rgba(74,222,128,.35);
}

.optc-cart-item__thumb {
    width: 100px;
    height: 100px;
    border-radius: 10px;
    overflow: hidden;
    background: #0d0d0d;
    border: 1px solid rgba(42,157,74,.18);
    box-shadow: inset 0 0 20px rgba(0,0,0,.5);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.optc-cart-item__thumb a,
.optc-cart-item__thumb img,
.optc-cart-item__thumb svg {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}

.optc-cart-item__info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.optc-cart-item__head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.optc-cart-item__title {
    flex: 1;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    line-height: 1.35;
    word-break: break-word;
    min-width: 0;
}
.optc-cart-item__title:hover { color: var(--cc-green-l); }

.optc-cart-item__remove {
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    border-radius: 50%;
    background: transparent;
    border: 1px solid rgba(220,38,38,.35);
    color: #ff5555;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    padding: 0;
    line-height: 1;
    transition: all .22s cubic-bezier(.34,1.4,.4,1);
}
.optc-cart-item__remove:hover {
    background: #dc2626;
    border-color: #dc2626;
    color: #fff;
    transform: rotate(90deg) scale(1.05);
    box-shadow: 0 0 18px rgba(220,38,38,.5);
}

/* ---------- Строка «Цена × Количество» ---------- */
.optc-cart-item__price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 13px;
    color: var(--cc-text-2);
    line-height: 1.3;
}
.optc-cart-item__price-unit {
    color: #c8c8c8;
    font-weight: 700;
}
.optc-cart-item__price-unit .amount,
.optc-cart-item__price-unit .woocommerce-Price-amount {
    color: inherit;
}
.optc-cart-item__price-mult {
    color: var(--cc-text-3);
    font-weight: 700;
}
.optc-cart-item__price-qty {
    color: #fff;
    font-weight: 800;
    font-size: 14px;
}

/* ---------- Степпер количества ---------- */
.optc-qty {
    display: inline-flex;
    align-items: center;
    background: #0a0a0a;
    border: 1.5px solid var(--cc-border);
    border-radius: 60px;
    padding: 3px;
    transition: border-color .22s, box-shadow .22s;
}
.optc-qty:focus-within {
    border-color: var(--cc-green-l);
    box-shadow: 0 0 0 3px rgba(74,222,128,.15);
}
.optc-qty__btn {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: none;
    background: transparent;
    color: var(--cc-green-l);
    font-size: 18px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    line-height: 1;
    transition: all .2s;
    -webkit-tap-highlight-color: transparent;
}
.optc-qty__btn:hover:not(:disabled) {
    background: var(--cc-green);
    color: #001a0d;
}
.optc-qty__btn:disabled {
    opacity: .28;
    cursor: not-allowed;
}
.optc-qty__input {
    width: 46px;
    height: 34px;
    text-align: center;
    background: transparent;
    border: none;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    outline: none;
    padding: 0;
    -moz-appearance: textfield;
    font-family: inherit;
}
.optc-qty__input::-webkit-outer-spin-button,
.optc-qty__input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.optc-cart-item__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 4px;
    flex-wrap: wrap;
}

.optc-cart-item__subtotal {
    font-size: 18px;
    font-weight: 800;
    color: var(--cc-green-l);
    white-space: nowrap;
    text-shadow: 0 0 18px rgba(74,222,128,.25);
}
.optc-cart-item__subtotal .woocommerce-Price-amount,
.optc-cart-item__subtotal .amount {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
}

/* ============================================================
   ★ АККОРДЕОН ХАРАКТЕРИСТИК ТОВАРА
   ============================================================ */

.optc-cart-item__accordion {
    margin-top: 10px;
    background: #0f0f0f;
    border: 1px solid var(--cc-border);
    border-radius: 12px;
    overflow: hidden;
    transition: border-color .22s ease, box-shadow .22s ease;
}
.optc-cart-item__accordion[open] {
    border-color: rgba(74,222,128,.30);
    box-shadow: 0 0 24px rgba(42,157,74,.08);
}

.optc-cart-item__accordion-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    cursor: pointer;
    list-style: none;
    user-select: none;
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    color: var(--cc-green-l);
    letter-spacing: .2px;
    transition: background .2s ease, color .2s ease;
    -webkit-tap-highlight-color: transparent;
}
.optc-cart-item__accordion-toggle::-webkit-details-marker { display: none; }
.optc-cart-item__accordion-toggle::marker { content: ''; }

.optc-cart-item__accordion-toggle:hover {
    background: rgba(42,157,74,.08);
    color: #fff;
}

.optc-cart-item__accordion-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    background: rgba(42,157,74,.12);
    border: 1px solid rgba(74,222,128,.30);
    color: var(--cc-green-l);
    font-size: 12px;
    flex-shrink: 0;
    transition: all .25s ease;
}
.optc-cart-item__accordion-toggle:hover .optc-cart-item__accordion-icon {
    background: var(--cc-green-l);
    color: #001a0d;
    border-color: var(--cc-green-l);
    box-shadow: 0 0 14px rgba(74,222,128,.45);
}
.optc-cart-item__accordion[open] .optc-cart-item__accordion-icon {
    background: var(--cc-green-l);
    color: #001a0d;
    border-color: var(--cc-green-l);
}

.optc-cart-item__accordion-label { flex: 1; min-width: 0; }
.optc-cart-item__accordion-hide { display: none; }
.optc-cart-item__accordion[open] .optc-cart-item__accordion-show { display: none; }
.optc-cart-item__accordion[open] .optc-cart-item__accordion-hide { display: inline; }

.optc-cart-item__accordion-arrow {
    font-size: 11px;
    color: var(--cc-green-l);
    transition: transform .3s cubic-bezier(.4,0,.2,1);
    flex-shrink: 0;
}
.optc-cart-item__accordion[open] .optc-cart-item__accordion-arrow {
    transform: rotate(180deg);
}

.optc-cart-item__accordion-body {
    padding: 4px 14px 14px;
    animation: optcAccordionFade .25s ease;
}

@keyframes optcAccordionFade {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.optc-cart-item__accordion-body .optc-cart-item__block:first-child { margin-top: 0; }
.optc-cart-item__accordion-body .optc-cart-item__block:last-child { margin-bottom: 0; }

/* ============================================================
   ★ БЛОКИ ВНУТРИ АККОРДЕОНА
   ============================================================ */

.optc-cart-item__block {
    margin-top: 12px;
    padding: 14px 16px;
    background: #0f0f0f;
    border: 1px solid var(--cc-border);
    border-radius: 12px;
}

.optc-cart-item__block-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    font-size: 11.5px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--cc-green-l);
    padding-bottom: 10px;
    border-bottom: 1px dashed rgba(255,255,255,.08);
}
.optc-cart-item__block-title i {
    font-size: 0.95em;
    color: var(--cc-green-l);
}

.optc-cart-item__lens-body-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.optc-cart-item__lens-body-list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
    font-size: 13px;
    border-bottom: 1px dashed rgba(255,255,255,.05);
}
.optc-cart-item__lens-body-list li:last-child {
    border-bottom: none;
    padding-bottom: 0;
}
.optc-cart-item__lens-body-list li > i {
    color: var(--cc-green);
    font-size: 0.85em;
    flex-shrink: 0;
    margin-right: 4px;
    width: 14px;
    text-align: center;
}
.optc-cart-item__lens-body-list .lbl {
    color: var(--cc-text-2);
    font-weight: 600;
    font-size: 12.5px;
    flex: 1;
    text-align: left;
}
.optc-cart-item__lens-body-list .val {
    color: #fff;
    font-weight: 800;
    font-size: 13.5px;
    text-align: right;
    white-space: nowrap;
}

.optc-cart-item__note {
    margin-top: 8px;
    padding: 8px 12px;
    background: rgba(42,157,74,.06);
    border-left: 3px solid var(--cc-green);
    border-radius: 6px;
    font-size: 12.5px;
    color: #c8c8c8;
    line-height: 1.5;
}
.optc-cart-item__note i {
    color: var(--cc-green);
    margin-right: 6px;
}

/* ---------- ТАБЛИЦА РЕЦЕПТА ---------- */
.optc-recipe-table {
    margin: 8px 0 0;
    border: 1px solid rgba(255,255,255,.06);
    border-radius: 10px;
    overflow: hidden;
}
.optc-recipe-row {
    display: grid;
    grid-template-columns: 70px 1fr 1fr;
    align-items: center;
    gap: 6px;
    padding: 9px 12px;
    font-size: 13px;
    border-bottom: 1px dashed rgba(255,255,255,.05);
    text-align: center;
}
.optc-recipe-row:last-child { border-bottom: none; }
.optc-recipe-row > div:first-child {
    text-align: left;
    font-weight: 800;
    color: var(--cc-text-3);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
}
.optc-recipe-row > div:not(:first-child) {
    color: #fff;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.optc-recipe-row.optc-recipe-head {
    background: rgba(42,157,74,.08);
    border-bottom: 1px solid rgba(42,157,74,.25);
}
.optc-recipe-row.optc-recipe-head > div {
    color: var(--cc-green-l);
    font-size: 11.5px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* ---------- Кнопка «Обновить» ---------- */
.optc-cart__actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--cc-border);
}

.optc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 24px;
    min-height: 46px;
    border-radius: 60px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .2px;
    line-height: 1;
    cursor: pointer;
    border: 1.5px solid transparent;
    text-decoration: none;
    white-space: nowrap;
    transition: all .22s cubic-bezier(.34,1.4,.4,1);
    -webkit-tap-highlight-color: transparent;
}
.optc-btn--outline {
    background: transparent;
    color: var(--cc-green-l);
    border-color: rgba(74,222,128,.45);
}
.optc-btn--outline:hover {
    background: rgba(42,157,74,.1);
    color: #fff;
    border-color: var(--cc-green-l);
}
.optc-btn--primary {
    background: linear-gradient(180deg, #4ade80 0%, #00e676 55%, #00c853 100%);
    color: #001a0d;
    border-color: var(--cc-green-l);
    box-shadow: 0 10px 24px rgba(42,157,74,.4), inset 0 2px 0 rgba(255,255,255,.35);
}
.optc-btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(42,157,74,.55), inset 0 2px 0 rgba(255,255,255,.45);
}
.optc-btn:disabled { opacity: .5; cursor: not-allowed; }

/* ---------- Сайдбар итогов ---------- */
.optc-cart__sidebar {
    position: sticky;
    top: 20px;
    min-width: 0;
}
.optc-cart__sidebar .cart-collaterals {
    width: 100% !important;
    float: none !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.optc-cart__sidebar .cart-collaterals::before,
.optc-cart__sidebar .cart-collaterals::after {
    content: none !important;
    display: none !important;
}
.optc-cart__sidebar .cart_totals {
    background: var(--cc-card);
    border: 1.5px solid rgba(42,157,74,.3);
    border-radius: 20px;
    padding: 22px;
    width: 100% !important;
    float: none !important;
    box-shadow: 0 20px 60px rgba(0,0,0,.4), 0 0 40px rgba(42,157,74,.06);
}
.optc-cart__sidebar .cart_totals::before,
.optc-cart__sidebar .cart_totals::after {
    content: none !important;
    display: none !important;
}
.optc-cart__sidebar .cart_totals h2 {
    font-size: 20px;
    font-weight: 800;
    color: #fff;
    margin: 0 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--cc-border);
    letter-spacing: -.3px;
}

.optc-cart__sidebar .cart_totals table.shop_table {
    width: 100% !important;
    border: none !important;
    background: transparent !important;
    margin: 0 0 4px !important;
    border-radius: 0 !important;
}
.optc-cart__sidebar .cart_totals table.shop_table tbody { display: block; }
.optc-cart__sidebar .cart_totals table.shop_table tr {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 12px 0 !important;
    margin: 0 !important;
    border: none !important;
    border-bottom: 1px dashed rgba(255,255,255,.06) !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
.optc-cart__sidebar .cart_totals table.shop_table tr:last-child { border-bottom: none !important; }

.optc-cart__sidebar .cart_totals table.shop_table th,
.optc-cart__sidebar .cart_totals table.shop_table td {
    display: inline-block !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
    text-align: left !important;
}
.optc-cart__sidebar .cart_totals th {
    font-size: 14px;
    font-weight: 700;
    color: var(--cc-text-2);
    font-family: inherit;
}
.optc-cart__sidebar .cart_totals td {
    font-size: 16px;
    font-weight: 800;
    color: #fff;
    text-align: right !important;
}
.optc-cart__sidebar .cart_totals td .woocommerce-Price-amount { color: inherit; }

/* ============================================================
   ★★★ СТРОКИ В ИТОГАХ: Стоимость / Скидка за самосбор / Итого ★★★
   ★ FIX: cart-subtotal показываем и переименовываем
   ============================================================ */

/* 1. WooCommerce «Подытог» → «Стоимость товаров» (НЕ скрываем!) */
body.woocommerce-cart .cart_totals tr.cart-subtotal {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 12px 0 !important;
    border-bottom: 1px dashed rgba(255,255,255,.06) !important;
    background: transparent !important;
    border-radius: 0 !important;
}
body.woocommerce-cart .cart_totals tr.cart-subtotal > th {
    font-size: 0 !important;
    color: transparent !important;
    position: relative;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}
body.woocommerce-cart .cart_totals tr.cart-subtotal > th::before {
    content: 'Стоимость товаров';
    display: inline-block;
    font-size: 14px;
    font-weight: 700;
    color: #b0b0b0;
    letter-spacing: 0;
}
body.woocommerce-cart .cart_totals tr.cart-subtotal > td {
    color: #e5e5e5 !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    text-align: right !important;
}

/* 2. Если плагин добавляет свою строку «Сумма без скидки» — скрываем, чтобы не дублировать */
body.woocommerce-cart .cart_totals tr.optc-cart-subtotal-original {
    display: none !important;
}

/* 3. «Скидка» → «Скидка за самостоятельный сбор», КРАСНЫМ */
body.woocommerce-cart .cart_totals tr.optc-cart-discount {
    background: linear-gradient(90deg, rgba(255,77,77,0.08) 0%, rgba(255,77,77,0.02) 100%) !important;
    border-radius: 10px !important;
    padding: 12px 14px !important;
    margin: 6px -14px !important;
    border-bottom: 1px dashed rgba(255,77,77,.20) !important;
}
body.woocommerce-cart .cart_totals tr.optc-cart-discount > th {
    font-size: 0 !important;
    color: transparent !important;
    position: relative;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    padding-right: 12px !important;
}
body.woocommerce-cart .cart_totals tr.optc-cart-discount > th::before {
    content: 'Скидка за самостоятельный сбор';
    display: inline-block;
    font-size: 12.5px;
    font-weight: 900;
    color: #ff4d4d;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    line-height: 1.3;
    max-width: 200px;
}
body.woocommerce-cart .cart_totals tr.optc-cart-discount > td {
    color: #ff4d4d !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    text-shadow: 0 0 16px rgba(255,77,77,.5);
    letter-spacing: -0.2px;
    white-space: nowrap;
}

/* 4. WooCommerce стандартная «Скидка» (если появится отдельно) */
body.woocommerce-cart .cart_totals tr.cart-discount > th,
body.woocommerce-cart .cart_totals tr.cart-discount > td {
    color: #ff4d4d !important;
}

/* 5. «Итого» — крупным и зелёным */
body.woocommerce-cart .cart_totals tr.order-total {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
    padding: 18px 0 0 !important;
    margin-top: 12px !important;
    border-top: 1.5px solid rgba(74, 222, 128, 0.35) !important;
    border-bottom: none !important;
    background: transparent !important;
    box-shadow: none !important;
}
body.woocommerce-cart .cart_totals tr.order-total > th {
    text-align: left !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 1.2px !important;
    color: #909090 !important;
    font-weight: 800 !important;
    flex: 0 0 auto !important;
    padding: 0 !important;
}
body.woocommerce-cart .cart_totals tr.order-total > td {
    text-align: left !important;
    font-size: 32px !important;
    color: #4ade80 !important;
    font-weight: 900 !important;
    letter-spacing: -0.7px;
    line-height: 1 !important;
    text-shadow: 0 0 30px rgba(74, 222, 128, 0.35);
    margin: 0 !important;
    white-space: normal !important;
    padding: 0 !important;
}
body.woocommerce-cart .cart_totals tr.order-total .amount {
    color: #4ade80 !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    text-decoration: none !important;
}

/* ---------- Купон ---------- */
.optc-cart__sidebar .cart_totals .coupon {
    display: flex;
    gap: 8px;
    width: 100%;
    margin: 0 0 16px !important;
    padding: 0 0 16px !important;
    border-bottom: 1px dashed rgba(255,255,255,.06);
}
.optc-cart__sidebar .cart_totals .coupon input[type="text"] {
    flex: 1;
    min-width: 0;
    padding: 11px 14px !important;
    background: #0f0f0f !important;
    border: 1.5px solid var(--cc-border) !important;
    border-radius: 12px !important;
    color: #fff !important;
    font-size: 14px !important;
    outline: none !important;
}
.optc-cart__sidebar .cart_totals .coupon input[type="text"]:focus {
    border-color: var(--cc-green-l) !important;
    box-shadow: 0 0 0 3px rgba(74,222,128,.15) !important;
}
.optc-cart__sidebar .cart_totals .coupon button {
    flex-shrink: 0;
    padding: 11px 18px !important;
    background: transparent !important;
    color: var(--cc-green-l) !important;
    border: 1.5px solid rgba(74,222,128,.45) !important;
    border-radius: 12px !important;
    font-weight: 800 !important;
    font-size: 13px !important;
    cursor: pointer !important;
    transition: all .2s !important;
}
.optc-cart__sidebar .cart_totals .coupon button:hover {
    background: rgba(42,157,74,.12) !important;
    border-color: var(--cc-green-l) !important;
    color: #fff !important;
}

/* ---------- Кнопка «Оформить заказ» ---------- */
.optc-cart__sidebar .wc-proceed-to-checkout {
    padding: 16px 0 0 !important;
    margin: 0 !important;
}
.optc-cart__sidebar .wc-proceed-to-checkout a.checkout-button,
.optc-cart__sidebar .wc-proceed-to-checkout .button {
    display: flex !important;
    width: 100% !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 18px 24px !important;
    min-height: 56px !important;
    background: linear-gradient(180deg, #4ade80 0%, #00e676 55%, #00c853 100%) !important;
    color: #001a0d !important;
    border: none !important;
    border-radius: 60px !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    letter-spacing: .5px !important;
    text-transform: uppercase !important;
    box-shadow: 0 12px 30px rgba(42,157,74,.45), inset 0 2px 0 rgba(255,255,255,.35) !important;
    transition: all .25s cubic-bezier(.34,1.4,.4,1) !important;
}
.optc-cart__sidebar .wc-proceed-to-checkout a.checkout-button:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 18px 42px rgba(42,157,74,.6), inset 0 2px 0 rgba(255,255,255,.5) !important;
}

/* ---------- Пустая корзина ---------- */
.optc-cart--empty {
    display: block !important;
    padding: 40px 0 60px;
}
.optc-cart-empty {
    text-align: center;
    padding: 60px 24px;
    background: var(--cc-card);
    border: 1.5px dashed var(--cc-border);
    border-radius: 22px;
    max-width: 720px;
    margin: 0 auto;
}
.optc-cart-empty i {
    font-size: 3rem;
    color: var(--cc-green);
    opacity: .5;
    display: block;
    margin-bottom: 18px;
}
.optc-cart-empty h2 {
    color: #fff;
    font-size: 24px;
    font-weight: 800;
    margin: 0 0 10px;
    letter-spacing: -.4px;
}
.optc-cart-empty p {
    color: var(--cc-text-2);
    margin: 0 0 26px;
    font-size: 15px;
    line-height: 1.55;
}
.optc-cart-empty__actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width: 1024px) {
    .optc-cart { grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; }
}

@media (max-width: 900px) {
    .optc-cart {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 12px 0 32px;
    }
    .optc-cart__sidebar {
        position: static;
        top: auto;
    }
    .optc-cart__sidebar .cart_totals { padding: 20px; }
}

@media (max-width: 640px) {
    .optc-cart__form {
        padding: 12px;
        border-radius: 16px;
    }
    .optc-cart__items { gap: 10px; }

    .optc-cart-item {
        grid-template-columns: 80px minmax(0, 1fr);
        gap: 12px;
        padding: 12px;
        border-radius: 12px;
    }
    .optc-cart-item__thumb { width: 80px; height: 80px; border-radius: 9px; }
    .optc-cart-item__title { font-size: 14px; }
    .optc-cart-item__price { font-size: 12px; }
    .optc-cart-item__price-qty { font-size: 13px; }

    .optc-cart-item__bottom {
        flex-wrap: nowrap;
        justify-content: space-between;
        gap: 8px;
    }
    .optc-cart-item__subtotal { font-size: 16px; }

    .optc-qty__btn { width: 30px; height: 30px; font-size: 16px; }
    .optc-qty__input { width: 38px; height: 30px; font-size: 14px; }

    .optc-cart-item__accordion { margin-top: 8px; border-radius: 10px; }
    .optc-cart-item__accordion-toggle {
        padding: 10px 12px;
        font-size: 12.5px;
        gap: 8px;
    }
    .optc-cart-item__accordion-icon { width: 26px; height: 26px; font-size: 11px; border-radius: 8px; }
    .optc-cart-item__accordion-body { padding: 4px 12px 12px; }

    .optc-cart-item__block { padding: 12px 12px; margin-top: 10px; }
    .optc-cart-item__lens-body-list li { font-size: 12.5px; padding: 6px 0; }
    .optc-cart-item__lens-body-list .val { font-size: 12.5px; }
    .optc-recipe-row {
        grid-template-columns: 56px 1fr 1fr;
        padding: 8px 10px;
        font-size: 12px;
    }
    .optc-recipe-row > div:first-child { font-size: 10px; }

    .optc-cart__sidebar .cart_totals {
        padding: 16px;
        border-radius: 16px;
    }
    .optc-cart__sidebar .cart_totals h2 { font-size: 17px; }
    .optc-cart__sidebar .cart_totals td { font-size: 15px; }
    body.woocommerce-cart .cart_totals tr.order-total > td { font-size: 26px !important; }

    body.woocommerce-cart .cart_totals tr.optc-cart-discount {
        padding: 10px 12px !important;
        margin: 6px -12px !important;
    }
    body.woocommerce-cart .cart_totals tr.optc-cart-discount > th::before {
        font-size: 11.5px;
        max-width: 160px;
    }
    body.woocommerce-cart .cart_totals tr.optc-cart-discount > td {
        font-size: 15px !important;
    }

    .optc-cart__sidebar .wc-proceed-to-checkout a.checkout-button {
        font-size: 14px !important;
        padding: 15px 20px !important;
        min-height: 52px !important;
    }

    .optc-cart__actions { justify-content: stretch; }
    .optc-cart__actions .optc-btn { flex: 1; }

    .optc-cart-empty { padding: 40px 18px; border-radius: 18px; }
    .optc-cart-empty h2 { font-size: 19px; }
    .optc-cart-empty__actions { flex-direction: column; }
    .optc-cart-empty__actions .optc-btn { width: 100%; }
}

@media (max-width: 420px) {
    .optc-cart-item {
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 10px;
        padding: 10px;
    }
    .optc-cart-item__thumb { width: 64px; height: 64px; }
    .optc-cart-item__title { font-size: 13px; }
    .optc-cart-item__remove { width: 28px; height: 28px; font-size: 11px; }

    .optc-qty { padding: 2px; }
    .optc-qty__btn { width: 28px; height: 28px; font-size: 15px; }
    .optc-qty__input { width: 34px; height: 28px; font-size: 13px; }
    .optc-cart-item__subtotal { font-size: 15px; }
}

/* ============================================================
   ЯДЕРНЫЙ СБРОС СТАРЫХ СТИЛЕЙ WOOCOMMERCE
   ============================================================ */
body.woocommerce-cart .cart_totals table.shop_table tr.cart-subtotal,
body.woocommerce-cart .cart_totals table.shop_table tr.order-total {
    background: transparent !important;
    border-left: none !important;
    border-radius: 0 !important;
}

/* ============================================================
   ★★★ ГЛОБАЛЬНЫЙ ТЁМНЫЙ ФОН СТРАНИЦЫ КОРЗИНЫ ★★★
   ============================================================ */

body.woocommerce-cart {
    background: #0b0b0b !important;
    color: #e5e5e5 !important;
}

body.woocommerce-cart .site,
body.woocommerce-cart .site-wrapper,
body.woocommerce-cart .site-content,
body.woocommerce-cart .site-content-inner,
body.woocommerce-cart .content-area,
body.woocommerce-cart .content-wrapper,
body.woocommerce-cart .entry-content,
body.woocommerce-cart .site-main,
body.woocommerce-cart .main-content,
body.woocommerce-cart main,
body.woocommerce-cart #main,
body.woocommerce-cart #content,
body.woocommerce-cart #primary,
body.woocommerce-cart #page,
body.woocommerce-cart article,
body.woocommerce-cart .page,
body.woocommerce-cart .page-wrapper,
body.woocommerce-cart .wrapper,
body.woocommerce-cart .ast-container,
body.woocommerce-cart .elementor-section-wrap,
body.woocommerce-cart .woocommerce,
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .cart-collaterals,
body.woocommerce-cart .cross-sells,
body.woocommerce-cart .container,
body.woocommerce-cart .row {
    background: #0b0b0b !important;
    background-color: #0b0b0b !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.woocommerce-cart .site-footer,
body.woocommerce-cart footer.site-footer,
body.woocommerce-cart #colophon {
    background: #0b0b0b !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    padding-top: 60px !important;
    border-top: 1px solid rgba(255,255,255,0.05) !important;
}

body.woocommerce-cart .optc-cart,
body.woocommerce-cart .optc-cart--empty,
body.woocommerce-cart .optc-cart-empty {
    background-color: transparent !important;
}

body.woocommerce-cart h1,
body.woocommerce-cart h2,
body.woocommerce-cart h3,
body.woocommerce-cart h4,
body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title {
    color: #ffffff !important;
}
body.woocommerce-cart a { color: #4ade80; }
body.woocommerce-cart a:hover { color: #35ffa1; }

body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
    background: #141414 !important;
    border: 1px solid #2a2a2a !important;
    border-left-width: 4px !important;
    border-left-style: solid !important;
    color: #e5e5e5 !important;
    padding: 14px 20px !important;
    border-radius: 12px !important;
}
body.woocommerce-cart .woocommerce-message { border-left-color: #2a9d4a !important; }
body.woocommerce-cart .woocommerce-info    { border-left-color: #f5b342 !important; }
body.woocommerce-cart .woocommerce-error   { border-left-color: #ff4444 !important; }
/* ============================================================
   ★ FIX: кнопка удаления теперь <a> — не даём теме перекрасить
   ============================================================ */
body.woocommerce-cart a.optc-cart-item__remove {
    color: #ff5555 !important;
    text-decoration: none !important;
}
body.woocommerce-cart a.optc-cart-item__remove:hover {
    color: #ffffff !important;
    text-decoration: none !important;
}