/**
 * Santrim Side Cart — carrinho lateral (drawer).
 *
 * Casca (overlay + painel deslizante) + estética da casa sobre o markup
 * NATIVO do mini-cart do WooCommerce. Verde (token global
 * --santrim-confirm, v5.118.0) SÓ no botão de finalizar.
 *
 * v5.99.0 — RESGATE: todo o CSS do drawer reescopado sob o ID #santrim-side-cart
 * (especificidade de id vence QUALQUER classe do kit Elementor, sem guerra de
 * classes). Botões nativos do mini-cart escondidos (display:none) — o rodapé
 * agora é markup estático na casca. !important pontual onde o kit também pinta.
 *
 * v5.102.0 — Conflito com o Menu Cart do Elementor Pro neutralizado + barra de
 * frete grátis + remoção pelo stepper. Cobre os DOIS estados do template do
 * mini-cart (core e o do Elementor Pro): esconde container do Elementor (global),
 * footer-buttons e remove × dentro do drawer, sweep rosa nas classes
 * elementor-menu-cart__*, subtotal/lista com flex-grow em ambos. Barra de frete
 * no topo (progresso preto → verde ao atingir). × de remover fora (remoção é o −).
 *
 * @since 5.95.0
 */

/* Esconde o link nativo "Ver carrinho" que o Woo injeta após o AJAX
   add-to-cart nos archives — o drawer o substitui. (Global, fora do drawer.) */
a.added_to_cart { display: none !important; }

/* Neutraliza o painel do Menu Cart do Elementor Pro: o clique no ícone do header
   é interceptado pelo JS (abre o NOSSO drawer); aqui garantimos que o painel/
   dialog do Elementor NUNCA apareça, nem que o bind falhe. (Global, fora do
   drawer — o ícone/toggle em si continua visível.) */
.elementor-menu-cart__container { display: none !important; }

/* Trava o scroll do body enquanto o drawer está aberto. */
body.santrim-side-cart-open { overflow: hidden; }

/* ── Raiz / overlay ─────────────────────────────────────────── */
#santrim-side-cart {
    position: fixed;
    inset: 0;
    z-index: 999999; /* acima de headers fixos do tema */
    visibility: hidden;
    pointer-events: none;
}
#santrim-side-cart.is-open {
    visibility: visible;
    pointer-events: auto;
}

#santrim-side-cart .santrim-side-cart__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .35);
    opacity: 0;
    transition: opacity .25s ease;
}
#santrim-side-cart.is-open .santrim-side-cart__overlay { opacity: 1; }

/* ── Painel ─────────────────────────────────────────────────── */
#santrim-side-cart .santrim-side-cart__panel {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: 400px;
    max-width: 100%;
    background: #fff;
    box-shadow: -8px 0 30px rgba(0, 0, 0, .12);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform .25s ease;
}
#santrim-side-cart.is-open .santrim-side-cart__panel { transform: translateX(0); }

@media (max-width: 480px) {
    #santrim-side-cart .santrim-side-cart__panel { width: 100%; }
}

/* ── Header ─────────────────────────────────────────────────── */
#santrim-side-cart .santrim-side-cart__header {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* Fundo branco sólido + folga no topo pro X não encostar/colidir com o
       header do tema ("Olá, Tiago") que fica atrás. */
    padding: 24px 20px 18px;
    background: #fff;
    border-bottom: 1px solid #F0F0F0;
}
#santrim-side-cart .santrim-side-cart__title {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    color: #1F1F1F;
}
/* X de fechar NEUTRO: sem borda/fundo do kit, cinza; hover escurece. */
#santrim-side-cart .santrim-side-cart__close {
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 4px;
    line-height: 0;
    cursor: pointer;
    color: #666 !important;
    border-radius: 4px;
}
#santrim-side-cart .santrim-side-cart__close:hover,
#santrim-side-cart .santrim-side-cart__close:focus { color: #1F1F1F !important; }
#santrim-side-cart .santrim-side-cart__close svg { width: 22px; height: 22px; display: block; }

/* ── Barrinha de frete grátis ───────────────────────────────────
   Wrapper vazio (sem mínimo configurado) colapsa — nada renderiza. */
#santrim-side-cart .santrim-side-cart__shipping { flex: 0 0 auto; }
#santrim-side-cart .santrim-side-cart__shipping:empty { display: none; }
#santrim-side-cart .santrim-side-cart__ship {
    padding: 12px 20px 14px;
    border-bottom: 1px solid #F0F0F0;
    background: #fff;
}
#santrim-side-cart .santrim-side-cart__ship-text {
    margin: 0 0 8px;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 500;
    color: #1F1F1F;
}
#santrim-side-cart .santrim-side-cart__ship.is-reached .santrim-side-cart__ship-text {
    color: var(--santrim-confirm);
    font-weight: 600;
}
#santrim-side-cart .santrim-side-cart__ship-track {
    display: block;
    width: 100%;
    height: 4px;
    border-radius: 999px;
    background: #EDEDED;
    overflow: hidden;
}
#santrim-side-cart .santrim-side-cart__ship-bar {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: #1F1F1F;
    transition: width .3s ease;
}
#santrim-side-cart .santrim-side-cart__ship.is-reached .santrim-side-cart__ship-bar { background: var(--santrim-confirm); }

/* ── Corpo / container do mini-cart ─────────────────────────── */
#santrim-side-cart .santrim-side-cart__body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
}
#santrim-side-cart .santrim-side-cart__content {
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
}

/* Botões dentro do drawer: SEMPRE escondidos — o rodapé real é estático na casca
   (footer abaixo). Cobre os DOIS estados do template do mini-cart:
   core (p.woocommerce-mini-cart__buttons) e o template do Elementor Pro
   (.elementor-menu-cart__footer-buttons), que substitui o mini-cart do Woo
   quando o Menu Cart está ativo. Independe de timing de hook / remove_action. */
#santrim-side-cart .woocommerce-mini-cart__buttons,
#santrim-side-cart .elementor-menu-cart__footer-buttons,
#santrim-side-cart .elementor-menu-cart__go-to-cart { display: none !important; }

/* Lista de itens: rola e OCUPA o espaço entre a barra de frete e o subtotal
   (flex-grow) — sem vão gigante; subtotal fica ancorado abaixo. Cobre os dois
   estados do template: core (ul.cart_list) e Elementor (.elementor-menu-cart__products). */
#santrim-side-cart .santrim-side-cart__content ul.cart_list,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__products {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    list-style: none;
    margin: 0;
    padding: 0;
}
#santrim-side-cart .santrim-side-cart__content ul.cart_list li,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__product {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid #F0F0F0;
}
#santrim-side-cart .santrim-side-cart__content ul.cart_list li img,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__product img {
    width: 64px;
    height: 64px;
    margin: 0;
    float: none;
    object-fit: cover;
    border-radius: 8px;
    flex: 0 0 auto;
}
/* Âncora do produto (imagem + nome) — vira linha flex. Nome em texto normal
   #1F1F1F, nunca a cor de link rosa do kit (id + !important vencem). Cobre o
   template do Elementor (.elementor-menu-cart__product-name a). */
#santrim-side-cart .santrim-side-cart__content ul.cart_list li a:not(.remove_from_cart_button),
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__product-name a {
    text-decoration: none !important;
    color: #1F1F1F !important;
    font-weight: 500;
    line-height: 1.35;
}
#santrim-side-cart .santrim-side-cart__content ul.cart_list li a:not(.remove_from_cart_button) {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1 1 auto;
}
#santrim-side-cart .santrim-side-cart__content ul.cart_list li a:not(.remove_from_cart_button):hover,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__product-name a:hover {
    color: #1F1F1F !important;
    text-decoration: none !important;
}
/* Nome/preços do item no template Elementor: preto da casa, sem rosa do kit. */
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__product-name,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__product-price,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__product .amount {
    color: #1F1F1F !important;
}

/* Loading sutil no item enquanto a quantidade atualiza (ambos os markups). */
#santrim-side-cart .santrim-side-cart__content ul.cart_list li.santrim-side-cart__item--loading,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__product.santrim-side-cart__item--loading {
    opacity: .55;
    transition: opacity .12s ease;
}

/* ── Stepper de quantidade + preço da linha ─────────────────── */
#santrim-side-cart .santrim-side-cart__qty {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}
#santrim-side-cart .santrim-side-cart__stepper {
    display: inline-flex;
    align-items: center;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
/* Botões −/+ SEM estilo de botão do tema/kit (id + !important). */
#santrim-side-cart .santrim-side-cart__step {
    width: 30px;
    height: 30px;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: none !important;
    color: #1F1F1F !important;
    font-size: 17px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .12s ease;
}
#santrim-side-cart .santrim-side-cart__step:hover { background: #F0F0F0 !important; }
#santrim-side-cart .santrim-side-cart__qnum {
    min-width: 30px;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: #1F1F1F;
    border-left: 1px solid #E0E0E0;
    border-right: 1px solid #E0E0E0;
    line-height: 30px;
}
#santrim-side-cart .santrim-side-cart__line {
    font-size: 14px;
    font-weight: 700;
    color: #1F1F1F;
    white-space: nowrap;
}
#santrim-side-cart .santrim-side-cart__line .amount { color: #1F1F1F; }

/* X de remover ESCONDIDO — a remoção agora é pelo stepper (− com quantidade 1).
   Camada PHP (woocommerce_cart_item_remove_link → '') zera o × na origem; este
   CSS é o CINTO amplo, cobrindo QUALQUER × que algum template ainda imprima:
   core (a.remove / a.remove_from_cart_button) e Elementor Pro
   (.elementor-menu-cart__remove-button / [class*='product-remove']). */
#santrim-side-cart .santrim-side-cart__content a.remove,
#santrim-side-cart .santrim-side-cart__content a.remove_from_cart_button,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__remove-button,
#santrim-side-cart .santrim-side-cart__content [class*='product-remove'] { display: none !important; }

/* Mensagem de carrinho vazio. */
#santrim-side-cart .santrim-side-cart__content .woocommerce-mini-cart__empty-message {
    margin: 0;
    padding: 48px 20px;
    text-align: center;
    color: #666;
}

/* ── Subtotal ───────────────────────────────────────────────── */
/* Cobre o subtotal do core (.woocommerce-mini-cart__total) e do template
   Elementor (.elementor-menu-cart__subtotal). */
#santrim-side-cart .santrim-side-cart__content .woocommerce-mini-cart__total,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__subtotal {
    flex: 0 0 auto;
    margin: 0;
    padding: 16px 20px;
    border: 0 !important;
    border-top: 1px solid #F0F0F0 !important; /* separador 1px, sem borda dura em volta */
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-size: 15px;
}
#santrim-side-cart .santrim-side-cart__content .woocommerce-mini-cart__total strong,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__subtotal strong {
    font-weight: 400 !important;
    color: #666 !important; /* label cinza */
}
#santrim-side-cart .santrim-side-cart__content .woocommerce-mini-cart__total .amount,
#santrim-side-cart .santrim-side-cart__content .elementor-menu-cart__subtotal .amount {
    font-weight: 700 !important;
    font-size: 17px;
    color: #1F1F1F !important; /* valor forte */
}

/* ── Rodapé ESTÁTICO (v5.99.0) ──────────────────────────────────
   Markup nosso na casca (fora do fragment). Mesmas medidas do botão do
   checkout (#place_order): padding 12px 20px, font 15px/600, raio 10px.
   FINALIZAR COMPRA domina; "Ver carrinho" é texto puro ao lado. */
#santrim-side-cart .santrim-side-cart__footer {
    flex: 0 0 auto;
    padding: 16px 20px 20px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px 14px;
    background: #fff;
}

/* FINALIZAR COMPRA — dominante, verde, largura total. */
#santrim-side-cart .santrim-side-cart__checkout {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 12px 20px;
    background: var(--santrim-confirm) !important;
    color: #fff !important;
    font-weight: 600 !important;
    font-size: 15px;
    letter-spacing: .3px;
    text-align: center;
    text-decoration: none !important;
    border: 0 !important;
    border-radius: 10px;
    box-shadow: none !important;
    transition: background .15s ease;
}
#santrim-side-cart .santrim-side-cart__checkout:hover,
#santrim-side-cart .santrim-side-cart__checkout:focus { background: var(--santrim-confirm-strong) !important; color: #fff !important; }

/* Ver carrinho — LINK DE TEXTO PURO ao lado, sem cara de botão. */
#santrim-side-cart .santrim-side-cart__view {
    display: inline-block;
    padding: 2px 4px;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #666 !important;
    font-weight: 400 !important;
    font-size: 13px;
    text-align: center;
    text-decoration: none !important;
    box-shadow: none !important;
}
#santrim-side-cart .santrim-side-cart__view:hover,
#santrim-side-cart .santrim-side-cart__view:focus { color: #666 !important; text-decoration: underline !important; }
