:root {
    --cs-vinho: #9f3f2e;
    --cs-terracota: #bb5a31;
    --cs-terracota-escuro: #94402e;
    --cs-pessego: #e2b49c;
    --cs-dourado: #d6a168;
    --cs-creme: #f6e6d8;
    --cs-creme-claro: #fffaf6;
    --cs-texto: #7d3a2f;
    --cs-borda: rgba(159, 63, 46, .13);
    --cs-sombra: 0 20px 50px rgba(105, 54, 38, .12);
}

.cs-presentes {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
    padding: 72px 0 84px;
    color: var(--cs-texto);
    font-family: inherit;
}

.cs-presentes *,
.cs-presentes *::before,
.cs-presentes *::after {
    box-sizing: border-box;
}

.cs-presentes__cabecalho {
    max-width: 720px;
    margin: 0 auto 34px;
    text-align: center;
}

.cs-presentes__mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 14px;
    border: 1px solid var(--cs-borda);
    border-radius: 999px;
    background: rgba(255, 250, 246, .72);
    color: var(--cs-terracota-escuro);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.cs-presentes__cabecalho h2 {
    margin: 16px 0 10px;
    color: var(--cs-vinho);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(36px, 5vw, 58px);
    line-height: .98;
    font-weight: 700;
    letter-spacing: -.03em;
}

.cs-presentes__cabecalho p {
    max-width: 590px;
    margin: 0 auto;
    color: rgba(125, 58, 47, .75);
    font-size: 16px;
    line-height: 1.7;
}

.cs-presentes__ornamento {
    display: block;
    width: 82px;
    height: 1px;
    margin: 22px auto 0;
    background: linear-gradient(90deg, transparent, var(--cs-dourado), transparent);
    position: relative;
}

.cs-presentes__ornamento::after {
    content: '';
    position: absolute;
    width: 7px;
    height: 7px;
    left: 50%;
    top: 50%;
    border: 1px solid var(--cs-dourado);
    background: var(--cs-creme);
    transform: translate(-50%, -50%) rotate(45deg);
}

.cs-grid {
    display: grid;
    grid-template-columns: repeat(var(--cs-colunas), minmax(0, 1fr));
    gap: 26px;
}

.cs-card {
    overflow: hidden;
    border: 1px solid var(--cs-borda);
    border-radius: 26px;
    background: rgba(255, 250, 246, .96);
    box-shadow: var(--cs-sombra);
    transition: transform .28s ease, box-shadow .28s ease, opacity .2s ease;
}

.cs-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 28px 58px rgba(105, 54, 38, .18);
}


.cs-card__imagem {
    display: block;
    position: relative;
    overflow: hidden;
    aspect-ratio: 1.12 / 1;
    background: #f2d9c7;
}

.cs-card__imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s ease;
}

.cs-card:hover .cs-card__imagem img {
    transform: scale(1.045);
}

.cs-card__selo {
    position: absolute;
    left: 16px;
    top: 16px;
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 7px 12px;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 999px;
    background: rgba(255,250,246,.9);
    color: var(--cs-vinho);
    backdrop-filter: blur(8px);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.cs-card__conteudo {
    padding: 23px;
}

.cs-card__topo {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    justify-content: space-between;
}

.cs-card h3 {
    margin: 0;
    max-width: 70%;
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 24px;
    line-height: 1.08;
    font-weight: 700;
}

.cs-card__preco {
    flex: 0 0 auto;
    color: var(--cs-terracota);
    font-size: 17px;
    font-weight: 800;
    white-space: nowrap;
}

.cs-card__preco del {
    display: block;
    color: rgba(125,58,47,.45);
    font-size: 12px;
    font-weight: 500;
}

.cs-card__preco ins {
    text-decoration: none;
}

.cs-card__acoes {
    margin-top: 22px;
}

.cs-botao {
    display: flex;
    width: 100%;
    min-height: 51px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 13px 18px;
    border-radius: 15px;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota));
    color: #fff !important;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .01em;
    text-decoration: none !important;
    box-shadow: 0 10px 20px rgba(159,63,46,.2);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.cs-botao:hover,
.cs-botao:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 14px 24px rgba(159,63,46,.27);
    filter: saturate(1.05);
}

.cs-botao svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cs-botao.loading {
    pointer-events: none;
    opacity: .72;
}

.cs-botao.added {
    background: #7e6f43;
}

.cs-botao.added::after,
.cs-botao.loading::after {
    display: none !important;
}

.cs-indisponivel,
.cs-vazio,
.cs-alerta {
    display: block;
    padding: 18px 20px;
    border: 1px solid var(--cs-borda);
    border-radius: 16px;
    background: rgba(255,250,246,.8);
    color: var(--cs-texto);
    text-align: center;
}

.cs-vazio {
    margin-top: 22px;
}

.cs-paginacao {
    margin-top: 38px;
    text-align: center;
}

.cs-paginacao .page-numbers {
    display: inline-flex;
    min-width: 42px;
    min-height: 42px;
    margin: 3px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--cs-borda);
    border-radius: 12px;
    background: var(--cs-creme-claro);
    color: var(--cs-texto);
    text-decoration: none;
}

.cs-paginacao .current,
.cs-paginacao a:hover {
    background: var(--cs-terracota);
    color: #fff;
}

.cs-toast {
    position: fixed;
    right: 22px;
    bottom: 106px;
    z-index: 99999;
    max-width: min(360px, calc(100vw - 44px));
    padding: 15px 18px;
    border-radius: 15px;
    background: var(--cs-vinho);
    color: #fff;
    box-shadow: 0 18px 45px rgba(50,20,14,.28);
    font-size: 14px;
    font-weight: 700;
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    transition: .25s ease;
}

.cs-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 980px) {
    .cs-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .cs-presentes {
        width: min(100% - 24px, 1180px);
        padding: 50px 0 60px;
    }

    .cs-presentes__cabecalho {
        margin-bottom: 27px;
    }

    .cs-presentes__cabecalho h2 {
        font-size: 39px;
    }

    .cs-presentes__cabecalho p {
        font-size: 14px;
    }

    .cs-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .cs-card {
        border-radius: 23px;
    }

    .cs-card__conteudo {
        padding: 20px;
    }

    .cs-card h3 {
        font-size: 23px;
    }
}


.cs-sacola {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 99998;
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 68px;
    padding: 10px 18px 10px 11px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 22px;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota));
    color: #fff !important;
    text-decoration: none !important;
    box-shadow: 0 18px 42px rgba(86, 33, 22, .3);
    transition: transform .22s ease, box-shadow .22s ease;
}

.cs-sacola:hover,
.cs-sacola:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 22px 48px rgba(86, 33, 22, .38);
}

.cs-sacola__icone {
    position: relative;
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 16px;
    background: rgba(255,255,255,.17);
}

.cs-sacola__icone svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cs-cart-count {
    position: absolute;
    right: -5px;
    top: -6px;
    display: grid;
    min-width: 23px;
    height: 23px;
    padding: 0 6px;
    place-items: center;
    border: 2px solid var(--cs-vinho);
    border-radius: 999px;
    background: var(--cs-creme-claro);
    color: var(--cs-vinho);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
}

.cs-sacola__texto {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.cs-sacola__texto strong {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 17px;
}

.cs-sacola__texto small {
    margin-top: 4px;
    color: rgba(255,255,255,.8);
    font-size: 11px;
}

@media (max-width: 640px) {
    .cs-sacola {
        right: 12px;
        bottom: 12px;
        min-height: 58px;
        padding: 8px 13px 8px 8px;
        border-radius: 19px;
    }

    .cs-sacola__icone {
        width: 42px;
        height: 42px;
        border-radius: 14px;
    }

    .cs-sacola__texto strong {
        font-size: 15px;
    }

    .cs-sacola__texto small {
        display: none;
    }

    .cs-toast {
        right: 12px;
        bottom: 82px;
        max-width: calc(100vw - 24px);
    }
}

/* Mini sacola expansível */
.cs-sacola {
    border: 0;
    cursor: pointer;
    font-family: inherit;
    text-align: left;
}

.cs-sacola-overlay {
    position: fixed;
    inset: 0;
    z-index: 99996;
    background: rgba(70, 32, 23, .26);
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
    backdrop-filter: blur(2px);
}

.cs-mini-sacola {
    position: fixed;
    right: 22px;
    bottom: 102px;
    z-index: 99997;
    width: min(390px, calc(100vw - 44px));
    max-height: min(610px, calc(100vh - 132px));
    overflow: hidden;
    border: 1px solid rgba(159, 63, 46, .14);
    border-radius: 26px;
    background: #fffaf6;
    box-shadow: 0 28px 70px rgba(65, 28, 19, .28);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(18px) scale(.97);
    transform-origin: bottom right;
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}

.cs-sacola-aberta .cs-mini-sacola {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.cs-sacola-aberta .cs-sacola-overlay {
    opacity: 1;
    pointer-events: auto;
}

.cs-mini-sacola__topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 22px 18px;
    border-bottom: 1px solid var(--cs-borda);
    background: linear-gradient(135deg, rgba(246,230,216,.96), rgba(255,250,246,.98));
}

.cs-mini-sacola__topo span {
    display: block;
    margin-bottom: 3px;
    color: var(--cs-dourado);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.cs-mini-sacola__topo h3 {
    margin: 0;
    color: var(--cs-vinho);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 25px;
    line-height: 1.05;
}

.cs-mini-sacola__fechar {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid var(--cs-borda);
    border-radius: 50%;
    background: rgba(255,255,255,.7);
    color: var(--cs-vinho);
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

.cs-mini-sacola__conteudo {
    display: flex;
    max-height: 490px;
    flex-direction: column;
}

.cs-mini-sacola__itens {
    overflow-y: auto;
    padding: 8px 18px;
}

.cs-mini-item {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) 30px;
    gap: 13px;
    align-items: center;
    padding: 13px 0;
    border-bottom: 1px solid rgba(159,63,46,.1);
}

.cs-mini-item:last-child { border-bottom: 0; }

.cs-mini-item__imagem {
    overflow: hidden;
    width: 68px;
    height: 68px;
    border-radius: 15px;
    background: var(--cs-creme);
}

.cs-mini-item__imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cs-mini-item__info {
    min-width: 0;
}

.cs-mini-item__info strong {
    display: block;
    overflow: hidden;
    color: var(--cs-texto);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 16px;
    line-height: 1.15;
    text-overflow: ellipsis;
}

.cs-mini-item__info span {
    display: block;
    margin-top: 7px;
    color: var(--cs-terracota);
    font-size: 13px;
    font-weight: 800;
}

.cs-mini-item__remover {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: rgba(159,63,46,.08);
    color: var(--cs-vinho);
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
}

.cs-mini-item__remover.loading {
    opacity: .45;
    pointer-events: none;
}

.cs-mini-sacola__rodape {
    padding: 17px 20px 20px;
    border-top: 1px solid var(--cs-borda);
    background: #fff;
}

.cs-mini-sacola__subtotal {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 14px;
}

.cs-mini-sacola__subtotal span {
    color: rgba(125,58,47,.7);
    font-size: 13px;
}

.cs-mini-sacola__subtotal strong {
    color: var(--cs-vinho);
    font-size: 18px;
}

.cs-mini-sacola__finalizar,
.cs-mini-sacola__ver {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    text-decoration: none !important;
    font-weight: 800;
}

.cs-mini-sacola__finalizar {
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota));
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(159,63,46,.19);
}

.cs-mini-sacola__ver {
    min-height: 38px;
    margin-top: 6px;
    color: var(--cs-vinho) !important;
    font-size: 12px;
}

.cs-mini-sacola__vazia {
    padding: 48px 25px 52px;
    text-align: center;
}

.cs-mini-sacola__vazia-icone {
    display: grid;
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    place-items: center;
    border-radius: 50%;
    background: var(--cs-creme);
    color: var(--cs-terracota);
    font-family: Georgia, serif;
    font-size: 34px;
}

.cs-mini-sacola__vazia strong {
    display: block;
    color: var(--cs-vinho);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 21px;
}

.cs-mini-sacola__vazia p {
    margin: 8px 0 0;
    color: rgba(125,58,47,.67);
    font-size: 13px;
}

.cs-sem-scroll { overflow: hidden; }

@media (max-width: 640px) {
    .cs-mini-sacola {
        right: 10px;
        bottom: 80px;
        width: calc(100vw - 20px);
        max-height: calc(100vh - 96px);
        border-radius: 23px;
    }

    .cs-mini-sacola__conteudo { max-height: calc(100vh - 190px); }
    .cs-mini-sacola__topo { padding: 18px; }
    .cs-mini-sacola__topo h3 { font-size: 22px; }
    .cs-mini-sacola__itens { padding-inline: 14px; }
}

/* Ajustes v1.3.0: sacola, valores e responsividade */
.cs-card .added_to_cart,
.cs-card a.added_to_cart,
.cs-presentes .woocommerce-message .button.wc-forward {
    display: none !important;
}

.cs-mini-sacola__fechar,
.cs-mini-item__remover {
    padding: 0 !important;
    align-items: center;
    justify-content: center;
}

.cs-mini-sacola__fechar svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.cs-mini-item__remover svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.cs-mini-item__detalhes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px 9px;
    margin-top: 7px;
}

.cs-mini-item__quantidade,
.cs-mini-item__preco {
    display: inline-flex !important;
    width: auto !important;
    margin: 0 !important;
    line-height: 1.25 !important;
}

.cs-mini-item__quantidade {
    color: rgba(125,58,47,.68) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

.cs-mini-item__preco,
.cs-mini-item__preco .amount,
.cs-mini-item__preco bdi {
    color: var(--cs-terracota) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

.cs-mini-item__preco::before {
    content: '•';
    margin-right: 9px;
    color: rgba(125,58,47,.28);
}

@media (max-width: 480px) {
    .cs-mini-sacola {
        inset: auto 8px 72px 8px;
        width: auto;
        max-height: calc(100dvh - 88px);
        border-radius: 21px;
    }

    .cs-mini-sacola__conteudo {
        max-height: calc(100dvh - 176px);
    }

    .cs-mini-sacola__topo {
        padding: 15px 14px;
    }

    .cs-mini-sacola__topo h3 {
        font-size: 21px;
    }

    .cs-mini-sacola__fechar {
        flex: 0 0 36px;
        width: 36px;
        height: 36px;
    }

    .cs-mini-sacola__itens {
        padding: 5px 12px;
    }

    .cs-mini-item {
        grid-template-columns: 54px minmax(0, 1fr) 32px;
        gap: 10px;
        padding: 11px 0;
    }

    .cs-mini-item__imagem {
        width: 54px;
        height: 54px;
        border-radius: 12px;
    }

    .cs-mini-item__info strong {
        display: -webkit-box;
        overflow: hidden;
        font-size: 15px;
        line-height: 1.12;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .cs-mini-item__detalhes {
        gap: 3px 7px;
        margin-top: 5px;
    }

    .cs-mini-item__preco::before {
        margin-right: 7px;
    }

    .cs-mini-item__remover {
        width: 30px;
        height: 30px;
        justify-self: end;
    }

    .cs-mini-sacola__rodape {
        padding: 13px 14px 14px;
    }

    .cs-mini-sacola__subtotal {
        margin-bottom: 10px;
    }

    .cs-mini-sacola__subtotal strong {
        font-size: 16px;
        white-space: nowrap;
    }

    .cs-mini-sacola__finalizar {
        min-height: 45px;
    }
}

/* v2.0.0 — página da sacola refeita do zero */
body.cs-pagina-lista-presentes .entry-title,
body.cs-pagina-lista-presentes .page-title,
body.cs-pagina-lista-presentes .elementor-page-title,
body.cs-pagina-lista-presentes main > header.entry-header,
body.cs-pagina-sacola .entry-title,
body.cs-pagina-sacola .page-title,
body.cs-pagina-sacola .elementor-page-title,
body.cs-pagina-sacola main > header.entry-header,
body.cs-pagina-sacola .woocommerce-products-header {
    display: none !important;
}

body.cs-pagina-sacola {
    background: #f3dfcf !important;
}

body.cs-pagina-sacola .entry-content,
body.cs-pagina-sacola .woocommerce {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.cs-pagina-sacola .woocommerce {
    color: var(--cs-texto);
}

body.cs-pagina-sacola .cs-cart-hero {
    width: min(760px, calc(100% - 28px));
    margin: 28px auto 20px !important;
    text-align: center;
}

body.cs-pagina-sacola .cs-cart-hero__mini {
    display: inline-flex;
    padding: 6px 12px;
    border: 1px solid rgba(159,63,46,.13);
    border-radius: 999px;
    background: rgba(255,250,246,.82);
    color: var(--cs-terracota-escuro);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

body.cs-pagina-sacola .cs-cart-hero h1 {
    margin: 10px 0 6px !important;
    color: var(--cs-vinho);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(38px, 5vw, 54px) !important;
    line-height: 1;
    letter-spacing: -.035em;
}

body.cs-pagina-sacola .cs-cart-hero p {
    margin: 0 auto !important;
    color: rgba(125,58,47,.72);
    font-size: 13px;
    line-height: 1.5;
}

body.cs-pagina-sacola .cs-cart-hero__ornamento {
    display: block;
    position: relative;
    width: 62px;
    height: 1px;
    margin: 14px auto 0 !important;
    background: linear-gradient(90deg, transparent, var(--cs-dourado), transparent);
}

body.cs-pagina-sacola .cs-cart-hero__ornamento::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 6px;
    height: 6px;
    border: 1px solid var(--cs-dourado);
    background: #f3dfcf;
    transform: translate(-50%, -50%) rotate(45deg);
}

/* A estrutura é criada pelo JS e usa duas colunas até 580px. */
body.cs-pagina-sacola .cs-cart-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 250px !important;
    gap: 14px !important;
    align-items: start !important;
    width: min(900px, calc(100% - 24px)) !important;
    max-width: 900px !important;
    margin: 0 auto 54px !important;
    padding: 0 !important;
}

body.cs-pagina-sacola .cs-cart-layout > form.woocommerce-cart-form,
body.cs-pagina-sacola .cs-cart-layout > .cart-collaterals {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
}

body.cs-pagina-sacola .woocommerce-cart-form,
body.cs-pagina-sacola .cart-collaterals .cart_totals {
    box-sizing: border-box !important;
    border: 1px solid rgba(159,63,46,.10) !important;
    border-radius: 18px !important;
    background: rgba(255,252,249,.91) !important;
    box-shadow: none !important;
}

body.cs-pagina-sacola .woocommerce-cart-form {
    padding: 10px 14px !important;
}

body.cs-pagina-sacola .cart-collaterals {
    position: sticky !important;
    top: 18px !important;
}

body.cs-pagina-sacola .cart-collaterals .cart_totals {
    width: 100% !important;
    padding: 17px !important;
    float: none !important;
}

body.cs-pagina-sacola table.shop_table {
    width: 100% !important;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
    background: transparent !important;
}

body.cs-pagina-sacola table.shop_table thead th {
    padding: 7px 6px 9px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(125,58,47,.16) !important;
    color: rgba(125,58,47,.72) !important;
    font-size: 8px !important;
    font-weight: 800 !important;
    letter-spacing: .15em !important;
    text-transform: uppercase !important;
}

body.cs-pagina-sacola table.shop_table td {
    padding: 10px 6px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(125,58,47,.11) !important;
    vertical-align: middle !important;
}

body.cs-pagina-sacola table.shop_table tr:last-child td {
    border-bottom: 0 !important;
}

body.cs-pagina-sacola td.product-thumbnail {
    width: 58px !important;
}

body.cs-pagina-sacola td.product-thumbnail img {
    display: block !important;
    width: 52px !important;
    height: 52px !important;
    margin: 0 !important;
    border-radius: 11px !important;
    object-fit: cover !important;
}

body.cs-pagina-sacola td.product-name {
    min-width: 0 !important;
}

body.cs-pagina-sacola td.product-name a {
    display: block !important;
    margin: 0 0 3px !important;
    color: var(--cs-vinho) !important;
    font-family: Georgia, 'Times New Roman', serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.14 !important;
    text-decoration: none !important;
}

body.cs-pagina-sacola td.product-name .amount,
body.cs-pagina-sacola td.product-price .amount,
body.cs-pagina-sacola td.product-subtotal .amount {
    color: var(--cs-terracota) !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

body.cs-pagina-sacola td.product-price {
    display: none !important;
}

body.cs-pagina-sacola td.product-subtotal {
    width: 82px !important;
    color: var(--cs-terracota) !important;
    text-align: right !important;
    white-space: nowrap !important;
}

body.cs-pagina-sacola .quantity {
    display: inline-flex !important;
    align-items: center !important;
    height: 32px !important;
    margin-top: 5px !important;
    overflow: hidden !important;
    border: 1px solid rgba(159,63,46,.16) !important;
    border-radius: 10px !important;
    background: #fff !important;
}

body.cs-pagina-sacola .quantity input.qty {
    width: 38px !important;
    min-height: 30px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--cs-texto) !important;
    text-align: center !important;
    box-shadow: none !important;
}

body.cs-pagina-sacola a.remove {
    display: inline-grid !important;
    width: 28px !important;
    height: 28px !important;
    margin-left: 7px !important;
    place-items: center !important;
    border-radius: 50% !important;
    background: rgba(159,63,46,.07) !important;
    color: var(--cs-terracota) !important;
    font-size: 17px !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

body.cs-pagina-sacola a.remove:hover {
    background: var(--cs-terracota) !important;
    color: #fff !important;
}

body.cs-pagina-sacola .actions {
    display: none !important;
}

body.cs-pagina-sacola .cart_totals h2 {
    margin: 0 0 12px !important;
    padding: 0 0 11px !important;
    border-bottom: 1px solid rgba(125,58,47,.13) !important;
    color: var(--cs-vinho) !important;
    font-family: Georgia, 'Times New Roman', serif !important;
    font-size: 23px !important;
    line-height: 1.1 !important;
}

body.cs-pagina-sacola .cart_totals table.shop_table th,
body.cs-pagina-sacola .cart_totals table.shop_table td {
    padding: 11px 0 !important;
    border-bottom: 1px solid rgba(125,58,47,.12) !important;
    font-size: 13px !important;
}

body.cs-pagina-sacola .cart_totals table.shop_table th {
    color: rgba(125,58,47,.72) !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

body.cs-pagina-sacola .cart_totals table.shop_table td {
    color: var(--cs-vinho) !important;
    font-weight: 800 !important;
    text-align: right !important;
}

body.cs-pagina-sacola .wc-proceed-to-checkout {
    padding: 12px 0 0 !important;
}

body.cs-pagina-sacola .wc-proceed-to-checkout a.checkout-button {
    display: flex !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 10px 13px !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota)) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

body.cs-pagina-sacola .wc-proceed-to-checkout a.checkout-button:hover {
    transform: translateY(-1px);
    filter: brightness(.98);
}

body.cs-pagina-sacola .woocommerce-notices-wrapper {
    width: min(900px, calc(100% - 24px));
    margin: 0 auto 12px;
}

/* Carrinho em blocos: aparência equivalente sem interferir no React. */
body.cs-pagina-sacola .wc-block-cart {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 250px !important;
    gap: 14px !important;
    width: min(900px, calc(100% - 24px)) !important;
    margin: 0 auto 54px !important;
}

body.cs-pagina-sacola .wc-block-cart__main,
body.cs-pagina-sacola .wc-block-cart__sidebar {
    width: 100% !important;
    margin: 0 !important;
    border: 1px solid rgba(159,63,46,.10) !important;
    border-radius: 18px !important;
    background: rgba(255,252,249,.91) !important;
    box-shadow: none !important;
}

body.cs-pagina-sacola .wc-block-cart__main { padding: 10px 14px !important; }
body.cs-pagina-sacola .wc-block-cart__sidebar { padding: 17px !important; align-self: start !important; }
body.cs-pagina-sacola .wc-block-cart__submit-button { border-radius: 12px !important; background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota)) !important; box-shadow: none !important; }

@media (max-width: 580px) {
    body.cs-pagina-sacola .cs-cart-hero {
        margin-top: 22px !important;
    }

    body.cs-pagina-sacola .cs-cart-hero h1 {
        font-size: 38px !important;
    }

    body.cs-pagina-sacola .cs-cart-layout,
    body.cs-pagina-sacola .wc-block-cart {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        width: min(100% - 16px, 900px) !important;
    }

    body.cs-pagina-sacola .cart-collaterals {
        position: static !important;
    }

    body.cs-pagina-sacola .woocommerce-cart-form {
        padding: 7px 10px !important;
    }

    body.cs-pagina-sacola table.shop_table thead {
        display: none !important;
    }

    body.cs-pagina-sacola table.shop_table td {
        padding: 9px 4px !important;
    }

    body.cs-pagina-sacola td.product-thumbnail {
        width: 50px !important;
    }

    body.cs-pagina-sacola td.product-thumbnail img {
        width: 45px !important;
        height: 45px !important;
    }

    body.cs-pagina-sacola td.product-name a {
        font-size: 14px !important;
    }

    body.cs-pagina-sacola td.product-subtotal {
        width: 70px !important;
    }
}

/* v2.1.0 — refinamento mobile da mini sacola e da página completa */
@media (max-width: 640px) {
    /* Botão flutuante mais discreto e sempre acessível. */
    .cs-sacola {
        right: 14px !important;
        bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important;
        left: auto !important;
        width: auto !important;
        max-width: calc(100vw - 28px) !important;
        min-height: 58px !important;
        padding: 8px 14px 8px 8px !important;
        border-radius: 18px !important;
        gap: 10px !important;
        box-shadow: 0 12px 28px rgba(86,33,22,.24) !important;
    }

    .cs-sacola__icone {
        width: 42px !important;
        height: 42px !important;
        flex: 0 0 42px !important;
        border-radius: 13px !important;
    }

    .cs-sacola__texto strong {
        font-size: 15px !important;
        line-height: 1.05 !important;
    }

    .cs-sacola__texto small {
        display: block !important;
        max-width: 150px;
        overflow: hidden;
        margin-top: 3px !important;
        font-size: 10px !important;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* Ao abrir, a sacola vira um painel inferior limpo e o botão não fica duplicado. */
    .cs-sacola-aberta .cs-sacola {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateY(12px) !important;
    }

    .cs-sacola-overlay {
        background: rgba(70,32,23,.34) !important;
        backdrop-filter: none !important;
    }

    .cs-mini-sacola {
        inset: auto 0 0 0 !important;
        width: 100% !important;
        max-width: none !important;
        max-height: min(78dvh, 680px) !important;
        border: 0 !important;
        border-radius: 24px 24px 0 0 !important;
        box-shadow: 0 -18px 48px rgba(65,28,19,.24) !important;
        transform: translateY(32px) !important;
        transform-origin: bottom center !important;
    }

    .cs-sacola-aberta .cs-mini-sacola {
        transform: translateY(0) !important;
    }

    .cs-mini-sacola__topo {
        padding: 16px 18px 14px !important;
    }

    .cs-mini-sacola__topo span {
        margin-bottom: 2px !important;
        font-size: 9px !important;
    }

    .cs-mini-sacola__topo h3 {
        font-size: 23px !important;
    }

    .cs-mini-sacola__fechar {
        width: 38px !important;
        height: 38px !important;
        flex: 0 0 38px !important;
    }

    .cs-mini-sacola__conteudo {
        max-height: calc(min(78dvh, 680px) - 74px) !important;
        min-height: 0 !important;
    }

    .cs-mini-sacola__itens {
        min-height: 0 !important;
        padding: 4px 16px !important;
        overscroll-behavior: contain;
    }

    .cs-mini-item {
        grid-template-columns: 58px minmax(0, 1fr) 34px !important;
        gap: 12px !important;
        padding: 12px 0 !important;
    }

    .cs-mini-item__imagem {
        width: 58px !important;
        height: 58px !important;
        border-radius: 13px !important;
    }

    .cs-mini-item__info strong {
        font-size: 16px !important;
        line-height: 1.12 !important;
        -webkit-line-clamp: 2;
    }

    .cs-mini-item__preco,
    .cs-mini-item__preco .amount,
    .cs-mini-item__preco bdi {
        display: inline !important;
        font-size: 15px !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
    }

    .cs-mini-item__preco::before {
        content: none !important;
    }

    .cs-mini-item__remover {
        width: 32px !important;
        height: 32px !important;
        border-radius: 50% !important;
    }

    .cs-mini-sacola__rodape {
        position: sticky;
        bottom: 0;
        z-index: 2;
        padding: 13px 16px calc(14px + env(safe-area-inset-bottom, 0px)) !important;
        background: #fffaf6 !important;
    }

    .cs-mini-sacola__subtotal {
        margin-bottom: 10px !important;
    }

    .cs-mini-sacola__finalizar {
        min-height: 50px !important;
        border-radius: 15px !important;
        font-size: 16px !important;
    }

    .cs-mini-sacola__ver {
        min-height: 34px !important;
        margin-top: 4px !important;
    }

    /* Página completa: garante que o carrinho apareça e caiba no celular. */
    body.cs-pagina-sacola .cs-cart-hero {
        width: calc(100% - 28px) !important;
        margin: 22px auto 16px !important;
    }

    body.cs-pagina-sacola .cs-cart-hero h1 {
        font-size: clamp(34px, 10vw, 42px) !important;
    }

    body.cs-pagina-sacola .cs-cart-layout,
    body.cs-pagina-sacola .wc-block-cart,
    body.cs-pagina-sacola .wp-block-woocommerce-cart {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: calc(100% - 20px) !important;
        max-width: none !important;
        gap: 12px !important;
        margin: 0 auto 32px !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.cs-pagina-sacola .woocommerce-cart-form,
    body.cs-pagina-sacola .cart-collaterals,
    body.cs-pagina-sacola .cart-collaterals .cart_totals,
    body.cs-pagina-sacola .wc-block-cart__main,
    body.cs-pagina-sacola .wc-block-cart__sidebar {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.cs-pagina-sacola .woocommerce-cart-form {
        overflow: hidden !important;
        padding: 6px 10px !important;
    }

    body.cs-pagina-sacola table.shop_table,
    body.cs-pagina-sacola table.shop_table tbody {
        display: block !important;
        width: 100% !important;
    }

    body.cs-pagina-sacola table.shop_table tr.cart_item {
        display: grid !important;
        grid-template-columns: 52px minmax(0, 1fr) auto !important;
        gap: 10px !important;
        align-items: center !important;
        width: 100% !important;
        padding: 12px 0 !important;
        border-bottom: 1px solid rgba(125,58,47,.11) !important;
    }

    body.cs-pagina-sacola table.shop_table tr.cart_item td {
        display: block !important;
        width: auto !important;
        padding: 0 !important;
        border: 0 !important;
    }

    body.cs-pagina-sacola td.product-remove { grid-column: 3; grid-row: 1; }
    body.cs-pagina-sacola td.product-thumbnail { grid-column: 1; grid-row: 1; }
    body.cs-pagina-sacola td.product-name { grid-column: 2; grid-row: 1; }
    body.cs-pagina-sacola td.product-subtotal { grid-column: 3; grid-row: 1; align-self: end; padding-top: 34px !important; }

    body.cs-pagina-sacola td.product-thumbnail img {
        width: 48px !important;
        height: 48px !important;
    }

    body.cs-pagina-sacola td.product-name a {
        font-size: 14px !important;
        line-height: 1.15 !important;
    }

    body.cs-pagina-sacola td.product-subtotal,
    body.cs-pagina-sacola td.product-subtotal .amount {
        font-size: 11px !important;
        white-space: nowrap !important;
    }
}

/* v2.1.1 — correção definitiva da mini sacola no desktop e em telas baixas */
/* Preço dos cards sempre abaixo do nome, evitando quebra excessiva do título. */
.cs-card__topo {
    display: block !important;
}

.cs-card h3 {
    max-width: none !important;
}

.cs-card__preco {
    display: block !important;
    width: 100% !important;
    margin-top: 8px !important;
    white-space: nowrap !important;
}

/* Impede que estilos do tema transformem os botões de fechar em quadrados. */
.cs-mini-sacola__fechar,
.cs-mini-item__remover {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    border-radius: 999px !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
}

.cs-mini-sacola__fechar {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
}

.cs-mini-item__remover {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    justify-self: end !important;
}

/* Estrutura interna fixa: cabeçalho e rodapé sempre visíveis; somente itens rolam. */
.cs-mini-sacola {
    display: flex !important;
    flex-direction: column !important;
}

.cs-mini-sacola__topo {
    flex: 0 0 auto !important;
}

.cs-mini-sacola__conteudo {
    display: flex !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.cs-mini-sacola__itens {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}

.cs-mini-sacola__rodape {
    position: relative !important;
    bottom: auto !important;
    flex: 0 0 auto !important;
    z-index: 3 !important;
}

/* Desktop: preço embaixo do nome e painel limitado pela altura real da tela. */
@media (min-width: 641px) {
    .cs-mini-sacola {
        top: max(18px, env(safe-area-inset-top, 0px)) !important;
        right: 18px !important;
        bottom: 92px !important;
        width: min(390px, calc(100vw - 36px)) !important;
        max-height: none !important;
        border-radius: 24px !important;
    }

    .cs-mini-item {
        grid-template-columns: 68px minmax(0, 1fr) 34px !important;
        align-items: center !important;
    }

    .cs-mini-item__info {
        display: block !important;
        min-width: 0 !important;
    }

    .cs-mini-item__info strong {
        display: -webkit-box !important;
        overflow: hidden !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        line-height: 1.15 !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    .cs-mini-item__detalhes {
        display: block !important;
        width: 100% !important;
        margin-top: 7px !important;
    }

    .cs-mini-item__preco,
    .cs-mini-item__preco .amount,
    .cs-mini-item__preco bdi {
        display: inline-block !important;
        width: auto !important;
        margin: 0 !important;
        font-size: 13px !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
    }

    .cs-mini-item__preco::before {
        content: none !important;
    }

    .cs-mini-sacola__rodape {
        padding: 14px 18px 16px !important;
        background: #fffaf6 !important;
        box-shadow: 0 -8px 18px rgba(125, 58, 47, .05) !important;
    }

    .cs-mini-sacola__finalizar {
        display: flex !important;
        min-height: 46px !important;
    }

    .cs-mini-sacola__ver {
        display: flex !important;
        min-height: 34px !important;
    }
}

/* Telas baixas no desktop/notebook: preserva ações e reduz apenas a área rolável. */
@media (min-width: 641px) and (max-height: 720px) {
    .cs-mini-sacola {
        top: 10px !important;
        bottom: 78px !important;
    }

    .cs-mini-sacola__topo {
        padding: 14px 18px 12px !important;
    }

    .cs-mini-sacola__topo h3 {
        font-size: 22px !important;
    }

    .cs-mini-item {
        padding: 9px 0 !important;
    }

    .cs-mini-item__imagem {
        width: 58px !important;
        height: 58px !important;
    }

    .cs-mini-sacola__rodape {
        padding: 10px 16px 12px !important;
    }

    .cs-mini-sacola__subtotal {
        margin-bottom: 8px !important;
    }

    .cs-mini-sacola__finalizar {
        min-height: 42px !important;
    }

    .cs-mini-sacola__ver {
        min-height: 30px !important;
        margin-top: 2px !important;
    }
}

/* =========================================================
   v3.0.0 — Mini sacola completa, sem página intermediária
   ========================================================= */
.cs-mini-sacola__conteudo {
    min-height: 0;
}

.cs-mini-sacola__itens {
    flex: 1 1 auto;
    min-height: 0;
}

.cs-mini-item {
    grid-template-columns: 68px minmax(0, 1fr) 34px !important;
    align-items: center !important;
}

.cs-mini-item__info strong {
    white-space: normal !important;
}

.cs-mini-item__detalhes {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 9px !important;
    margin-top: 8px !important;
}

.cs-mini-item__preco,
.cs-mini-item__preco .amount,
.cs-mini-item__preco bdi {
    display: inline-block !important;
    margin: 0 !important;
    white-space: nowrap !important;
    line-height: 1.15 !important;
}

.cs-mini-item__preco::before {
    content: none !important;
}

.cs-mini-item__quantidade {
    display: inline-grid !important;
    grid-template-columns: 32px 34px 32px !important;
    align-items: center !important;
    overflow: hidden !important;
    min-height: 32px !important;
    border: 1px solid rgba(159, 63, 46, .16) !important;
    border-radius: 999px !important;
    background: #fff !important;
}

.cs-mini-item__quantidade > span {
    display: grid !important;
    height: 32px !important;
    margin: 0 !important;
    place-items: center !important;
    color: var(--cs-texto) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

.cs-mini-item__qty {
    display: grid !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: var(--cs-vinho) !important;
    box-shadow: none !important;
    font: 700 18px/1 Arial, sans-serif !important;
    cursor: pointer !important;
}

.cs-mini-item__qty:hover,
.cs-mini-item__qty:focus-visible {
    background: rgba(159, 63, 46, .08) !important;
}

.cs-mini-item__qty.loading,
.cs-mini-item.is-updating {
    opacity: .58;
    pointer-events: none;
}

.cs-mini-item__remover,
.cs-mini-sacola__fechar {
    border-radius: 50% !important;
}

.cs-mini-sacola__rodape {
    flex: 0 0 auto !important;
}

.cs-mini-sacola__finalizar {
    width: 100% !important;
}

@media (max-width: 640px) {
    .cs-mini-sacola {
        top: auto !important;
        right: 10px !important;
        bottom: max(10px, env(safe-area-inset-bottom)) !important;
        left: 10px !important;
        width: auto !important;
        max-height: calc(100dvh - 28px) !important;
        border-radius: 24px !important;
    }

    .cs-sacola-aberta .cs-sacola {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .cs-mini-sacola__conteudo {
        max-height: calc(100dvh - 112px) !important;
    }

    .cs-mini-sacola__itens {
        padding: 4px 14px !important;
    }

    .cs-mini-item {
        grid-template-columns: 58px minmax(0, 1fr) 34px !important;
        gap: 11px !important;
        padding: 12px 0 !important;
    }

    .cs-mini-item__imagem {
        width: 58px !important;
        height: 58px !important;
        border-radius: 14px !important;
    }

    .cs-mini-item__info strong {
        font-size: 15px !important;
        line-height: 1.12 !important;
    }

    .cs-mini-item__detalhes {
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 7px 10px !important;
    }

    .cs-mini-item__quantidade {
        grid-template-columns: 29px 30px 29px !important;
        min-height: 29px !important;
    }

    .cs-mini-item__quantidade > span,
    .cs-mini-item__qty {
        width: 29px !important;
        height: 29px !important;
        min-width: 29px !important;
        min-height: 29px !important;
    }

    .cs-mini-sacola__rodape {
        padding: 14px 16px calc(16px + env(safe-area-inset-bottom)) !important;
    }
}

/* =========================================================
   v3.1.0 — acabamento final da mini sacola
   ========================================================= */

/* Vitrine: mantém o preço abaixo do título e os botões arredondados. */
.cs-card__topo {
    display: block !important;
}

.cs-card h3 {
    max-width: none !important;
    margin: 0 0 8px !important;
}

.cs-card__preco {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
}

.cs-card__acoes {
    margin-top: 18px !important;
}

.cs-botao,
.cs-adicionar-presente {
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 22px rgba(159, 63, 46, .18) !important;
}

/* Esconde o acionador enquanto o painel estiver aberto, em qualquer tela. */
.cs-sacola-aberta .cs-sacola {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(10px) scale(.96) !important;
}

.cs-sacola-overlay {
    background: rgba(65, 31, 23, .22) !important;
    backdrop-filter: blur(1.5px) !important;
}

/* Painel principal: proporção elegante e cantos realmente arredondados. */
.cs-mini-sacola {
    top: auto !important;
    right: 22px !important;
    bottom: 22px !important;
    left: auto !important;
    display: flex !important;
    width: min(430px, calc(100vw - 44px)) !important;
    max-height: min(680px, calc(100dvh - 44px)) !important;
    flex-direction: column !important;
    overflow: hidden !important;
    border: 1px solid rgba(159, 63, 46, .13) !important;
    border-radius: 28px !important;
    background: #fffaf6 !important;
    box-shadow: 0 28px 72px rgba(70, 31, 22, .24) !important;
}

.cs-mini-sacola__topo {
    flex: 0 0 auto !important;
    padding: 21px 22px 18px !important;
    border-bottom: 1px solid rgba(159, 63, 46, .11) !important;
    border-radius: 28px 28px 0 0 !important;
    background: linear-gradient(135deg, #fff5ec, #fffaf6) !important;
}

.cs-mini-sacola__topo h3 {
    font-size: 25px !important;
    line-height: 1.08 !important;
}

.cs-mini-sacola__fechar,
.cs-mini-item__remover {
    display: grid !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    place-items: center !important;
    border: 1px solid rgba(159, 63, 46, .15) !important;
    border-radius: 999px !important;
    background: #fff7f1 !important;
    color: var(--cs-vinho) !important;
    box-shadow: none !important;
    aspect-ratio: 1 / 1 !important;
}

.cs-mini-sacola__fechar {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
}

.cs-mini-item__remover {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    align-self: center !important;
}

.cs-mini-sacola__fechar:hover,
.cs-mini-item__remover:hover {
    background: rgba(159, 63, 46, .08) !important;
}

.cs-mini-sacola__conteudo {
    display: flex !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.cs-mini-sacola__itens {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 5px 20px 6px !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(159, 63, 46, .35) transparent;
}

.cs-mini-sacola__itens::-webkit-scrollbar {
    width: 6px;
}

.cs-mini-sacola__itens::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(159, 63, 46, .28);
}

.cs-mini-item {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) 32px !important;
    gap: 14px !important;
    align-items: center !important;
    padding: 15px 0 !important;
    border-bottom: 1px solid rgba(159, 63, 46, .10) !important;
}

.cs-mini-item__imagem {
    width: 72px !important;
    height: 72px !important;
    overflow: hidden !important;
    border-radius: 17px !important;
    background: #f7e9de !important;
}

.cs-mini-item__imagem img {
    width: 100% !important;
    height: 100% !important;
    border-radius: inherit !important;
    object-fit: cover !important;
}

.cs-mini-item__info {
    display: block !important;
    min-width: 0 !important;
}

.cs-mini-item__info strong {
    display: -webkit-box !important;
    overflow: hidden !important;
    width: 100% !important;
    margin: 0 !important;
    color: var(--cs-texto) !important;
    font-size: 16px !important;
    line-height: 1.18 !important;
    white-space: normal !important;
    text-overflow: ellipsis !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

.cs-mini-item__detalhes {
    display: flex !important;
    width: 100% !important;
    margin-top: 9px !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
}

.cs-mini-item__preco,
.cs-mini-item__preco .amount,
.cs-mini-item__preco bdi {
    display: inline-flex !important;
    width: auto !important;
    margin: 0 !important;
    color: var(--cs-terracota) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
}

.cs-mini-item__preco::before {
    content: none !important;
}

.cs-mini-item__quantidade {
    display: inline-grid !important;
    grid-template-columns: 31px 34px 31px !important;
    min-height: 32px !important;
    overflow: hidden !important;
    border: 1px solid rgba(159, 63, 46, .14) !important;
    border-radius: 999px !important;
    background: #fff !important;
}

.cs-mini-item__quantidade > span,
.cs-mini-item__qty {
    display: grid !important;
    width: 100% !important;
    height: 32px !important;
    min-width: 0 !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    line-height: 1 !important;
}

.cs-mini-item__qty {
    color: var(--cs-vinho) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
}

.cs-mini-item__qty:hover {
    background: rgba(159, 63, 46, .07) !important;
}

.cs-mini-sacola__rodape {
    position: relative !important;
    bottom: auto !important;
    z-index: 4 !important;
    flex: 0 0 auto !important;
    padding: 17px 20px 20px !important;
    border-top: 1px solid rgba(159, 63, 46, .12) !important;
    border-radius: 0 0 28px 28px !important;
    background: #fffaf6 !important;
    box-shadow: 0 -10px 25px rgba(125, 58, 47, .05) !important;
}

.cs-mini-sacola__subtotal {
    margin-bottom: 13px !important;
}

.cs-mini-sacola__finalizar {
    width: 100% !important;
    min-height: 52px !important;
    border-radius: 16px !important;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota)) !important;
    box-shadow: 0 12px 24px rgba(159, 63, 46, .18) !important;
    font-size: 15px !important;
}

/* Notebook com pouca altura: diminui somente a lista, nunca o rodapé. */
@media (min-width: 641px) and (max-height: 760px) {
    .cs-mini-sacola {
        top: 12px !important;
        bottom: 12px !important;
        max-height: calc(100dvh - 24px) !important;
    }

    .cs-mini-sacola__topo {
        padding: 15px 18px 13px !important;
    }

    .cs-mini-sacola__topo h3 {
        font-size: 22px !important;
    }

    .cs-mini-sacola__itens {
        padding-inline: 17px !important;
    }

    .cs-mini-item {
        grid-template-columns: 60px minmax(0, 1fr) 30px !important;
        gap: 12px !important;
        padding: 10px 0 !important;
    }

    .cs-mini-item__imagem {
        width: 60px !important;
        height: 60px !important;
        border-radius: 14px !important;
    }

    .cs-mini-sacola__rodape {
        padding: 12px 17px 14px !important;
    }

    .cs-mini-sacola__finalizar {
        min-height: 44px !important;
    }
}

/* Mobile: bottom sheet limpo, sem sobreposição do acionador. */
@media (max-width: 640px) {
    .cs-mini-sacola {
        top: auto !important;
        right: 10px !important;
        bottom: max(10px, env(safe-area-inset-bottom)) !important;
        left: 10px !important;
        width: auto !important;
        max-height: calc(100dvh - 20px - env(safe-area-inset-bottom)) !important;
        border-radius: 25px !important;
    }

    .cs-mini-sacola__topo {
        padding: 17px 17px 14px !important;
        border-radius: 25px 25px 0 0 !important;
    }

    .cs-mini-sacola__topo h3 {
        font-size: 23px !important;
    }

    .cs-mini-sacola__itens {
        padding: 4px 14px 5px !important;
    }

    .cs-mini-item {
        grid-template-columns: 60px minmax(0, 1fr) 32px !important;
        gap: 11px !important;
        padding: 12px 0 !important;
    }

    .cs-mini-item__imagem {
        width: 60px !important;
        height: 60px !important;
        border-radius: 14px !important;
    }

    .cs-mini-item__info strong {
        font-size: 15px !important;
    }

    .cs-mini-item__detalhes {
        gap: 7px !important;
    }

    .cs-mini-sacola__rodape {
        padding: 14px 16px calc(16px + env(safe-area-inset-bottom)) !important;
        border-radius: 0 0 25px 25px !important;
    }

    .cs-mini-sacola__finalizar {
        min-height: 50px !important;
        border-radius: 15px !important;
        font-size: 16px !important;
    }

    .cs-sacola {
        right: 12px !important;
        bottom: max(12px, env(safe-area-inset-bottom)) !important;
        border-radius: 20px !important;
    }
}

@media (max-width: 380px) {
    .cs-mini-item {
        grid-template-columns: 54px minmax(0, 1fr) 30px !important;
        gap: 9px !important;
    }

    .cs-mini-item__imagem {
        width: 54px !important;
        height: 54px !important;
    }

    .cs-mini-item__quantidade {
        grid-template-columns: 29px 31px 29px !important;
    }
}


/* =========================================================
   v3.2.0 — correções finais de desktop e checkout
   ========================================================= */

/* O acionador não pode encostar nem ultrapassar a lateral da janela. */
.cs-presentes > .cs-sacola {
    position: fixed !important;
    right: 24px !important;
    bottom: 24px !important;
    left: auto !important;
    width: auto !important;
    min-width: 252px !important;
    max-width: calc(100vw - 48px) !important;
    min-height: 72px !important;
    padding: 10px 18px 10px 12px !important;
    overflow: visible !important;
    border: 1px solid rgba(255,255,255,.48) !important;
    border-radius: 22px !important;
    background: linear-gradient(135deg, #a63f2d, #c55c32) !important;
    box-shadow: 0 18px 42px rgba(82,34,22,.25) !important;
    clip-path: none !important;
}

.cs-presentes > .cs-sacola .cs-sacola__icone {
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 15px !important;
}

.cs-presentes > .cs-sacola .cs-sacola__texto {
    min-width: 0 !important;
}

/* Vitrine: título e valor sempre em linhas separadas. */
.cs-presentes .cs-card__topo {
    display: block !important;
}

.cs-presentes .cs-card__topo h3 {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 7px !important;
}

.cs-presentes .cs-card__preco,
.cs-presentes .cs-card__preco .woocommerce-Price-amount,
.cs-presentes .cs-card__preco bdi,
.cs-presentes .cs-card__preco .woocommerce-Price-currencySymbol {
    display: inline !important;
    width: auto !important;
    white-space: nowrap !important;
}

/* Mini sacola no desktop: mais espaço útil e acabamento arredondado. */
@media (min-width: 641px) {
    .cs-presentes .cs-mini-sacola {
        right: 24px !important;
        bottom: 24px !important;
        left: auto !important;
        width: min(448px, calc(100vw - 48px)) !important;
        border-radius: 28px !important;
        clip-path: none !important;
    }

    .cs-presentes .cs-mini-item {
        grid-template-columns: 70px minmax(0, 1fr) 36px !important;
        column-gap: 14px !important;
    }

    .cs-presentes .cs-mini-item__info {
        width: 100% !important;
        min-width: 0 !important;
    }

    .cs-presentes .cs-mini-item__detalhes {
        display: flex !important;
        width: 100% !important;
        flex-direction: column !important;
        align-items: flex-start !important;
    }
}

/* Impede o tema de transformar o preço em duas linhas. */
.cs-presentes .cs-mini-item__preco,
.cs-presentes .cs-mini-item__preco .amount,
.cs-presentes .cs-mini-item__preco .woocommerce-Price-amount,
.cs-presentes .cs-mini-item__preco bdi,
.cs-presentes .cs-mini-item__preco .woocommerce-Price-currencySymbol {
    display: inline !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
}

.cs-presentes .cs-mini-item__preco .woocommerce-Price-currencySymbol {
    margin-right: 3px !important;
}

/* X sempre circular, mesmo com estilos globais do tema. */
.cs-presentes button.cs-mini-sacola__fechar,
.cs-presentes button.cs-mini-item__remover {
    box-sizing: border-box !important;
    padding: 0 !important;
    border-radius: 50% !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

@media (max-width: 640px) {
    .cs-presentes > .cs-sacola {
        right: 12px !important;
        bottom: max(12px, env(safe-area-inset-bottom)) !important;
        min-width: 0 !important;
        width: calc(100vw - 24px) !important;
        max-width: 360px !important;
        border-radius: 21px !important;
    }
}

/* =========================================================
   v3.2.1 — acionador mobile compacto e alinhado à esquerda
   ========================================================= */
@media (max-width: 640px) {
    .cs-presentes > .cs-sacola {
        left: 14px !important;
        right: auto !important;
        bottom: max(14px, env(safe-area-inset-bottom)) !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: calc(100vw - 28px) !important;
        min-height: 58px !important;
        padding: 8px 15px 8px 9px !important;
        gap: 10px !important;
        border-radius: 19px !important;
        box-shadow: 0 14px 30px rgba(82,34,22,.24) !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__icone {
        flex: 0 0 42px !important;
        width: 42px !important;
        height: 42px !important;
        border-radius: 13px !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__icone svg {
        width: 22px !important;
        height: 22px !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__texto strong {
        font-size: 15px !important;
        line-height: 1.05 !important;
        white-space: nowrap !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__texto small {
        display: none !important;
    }

    .cs-presentes > .cs-sacola .cs-cart-count {
        top: -7px !important;
        right: -7px !important;
        min-width: 22px !important;
        height: 22px !important;
        font-size: 11px !important;
    }
}

@media (max-width: 360px) {
    .cs-presentes > .cs-sacola {
        left: 10px !important;
        bottom: max(10px, env(safe-area-inset-bottom)) !important;
        padding-right: 13px !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__texto strong {
        font-size: 14px !important;
    }
}

/* =========================================================
   v3.3.0 — novo acionador flutuante aprovado (desktop/mobile)
   ========================================================= */
.cs-presentes > .cs-sacola {
    left: auto !important;
    right: 24px !important;
    bottom: 24px !important;
    width: auto !important;
    min-width: 245px !important;
    max-width: calc(100vw - 48px) !important;
    min-height: 72px !important;
    padding: 11px 14px 11px 11px !important;
    gap: 12px !important;
    border: 1px solid rgba(255,255,255,.26) !important;
    border-radius: 22px !important;
    background: linear-gradient(135deg, rgba(174,59,37,.99), rgba(199,84,45,.99)) !important;
    color: #fff !important;
    box-shadow: 0 18px 44px rgba(101,39,24,.34), inset 0 1px 0 rgba(255,255,255,.22) !important;
    overflow: visible !important;
    transform: translateZ(0);
}

.cs-presentes > .cs-sacola:hover,
.cs-presentes > .cs-sacola:focus-visible {
    transform: translateY(-3px) !important;
    box-shadow: 0 24px 50px rgba(101,39,24,.42), inset 0 1px 0 rgba(255,255,255,.22) !important;
}

.cs-presentes > .cs-sacola .cs-sacola__icone {
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 48px !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.15) !important;
}

.cs-presentes > .cs-sacola .cs-sacola__icone svg {
    width: 24px !important;
    height: 24px !important;
}

.cs-presentes > .cs-sacola .cs-sacola__texto {
    min-width: 0 !important;
    padding-right: 36px !important;
}

.cs-presentes > .cs-sacola .cs-sacola__texto strong {
    display: block !important;
    font-family: Georgia, 'Times New Roman', serif !important;
    font-size: 18px !important;
    line-height: 1.05 !important;
    color: #fff !important;
    white-space: nowrap !important;
}

.cs-presentes > .cs-sacola .cs-sacola__texto small {
    display: block !important;
    margin-top: 5px !important;
    color: #ffe9de !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
}

.cs-presentes > .cs-sacola::after {
    content: '›';
    position: absolute;
    right: 13px;
    top: 50%;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 21px;
    font-weight: 400;
    line-height: 1;
    transform: translateY(-50%);
}

.cs-presentes > .cs-sacola .cs-cart-count {
    top: -8px !important;
    right: -8px !important;
    min-width: 24px !important;
    height: 24px !important;
    padding: 0 6px !important;
    border: 2px solid #b7492e !important;
    border-radius: 999px !important;
    background: #fffaf6 !important;
    color: #9e3724 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}

@media (max-width: 640px) {
    .cs-presentes > .cs-sacola {
        left: auto !important;
        right: 14px !important;
        bottom: max(14px, env(safe-area-inset-bottom)) !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: calc(100vw - 28px) !important;
        min-height: 60px !important;
        padding: 9px 12px 9px 9px !important;
        gap: 9px !important;
        border-radius: 19px !important;
        box-shadow: 0 16px 34px rgba(101,39,24,.30), inset 0 1px 0 rgba(255,255,255,.22) !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__icone {
        flex-basis: 42px !important;
        width: 42px !important;
        height: 42px !important;
        border-radius: 14px !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__icone svg {
        width: 21px !important;
        height: 21px !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__texto {
        padding-right: 29px !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__texto strong {
        font-size: 15px !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__texto small {
        display: block !important;
        margin-top: 4px !important;
        font-size: 10px !important;
    }

    .cs-presentes > .cs-sacola::after {
        right: 9px;
        width: 24px;
        height: 24px;
        font-size: 18px;
    }

    .cs-presentes > .cs-sacola .cs-cart-count {
        top: -7px !important;
        right: -7px !important;
        min-width: 21px !important;
        height: 21px !important;
        font-size: 11px !important;
    }
}

@media (max-width: 380px) {
    .cs-presentes > .cs-sacola {
        right: 10px !important;
        bottom: max(10px, env(safe-area-inset-bottom)) !important;
    }

    .cs-presentes > .cs-sacola .cs-sacola__texto small {
        display: none !important;
    }
}

/* =========================================================
   v3.4.0 — sacola no cabeçalho + confirmação após adicionar
   ========================================================= */
.cs-presentes > .cs-sacola,
.cs-sacola.cs-sacola--cabecalho {
    position: relative !important;
    inset: auto !important;
    z-index: 20 !important;
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 44px !important;
    max-width: none !important;
    margin: 0 12px 0 0 !important;
    padding: 6px 11px 6px 7px !important;
    gap: 8px !important;
    border: 1px solid rgba(183,73,46,.18) !important;
    border-radius: 15px !important;
    background: rgba(255,250,246,.92) !important;
    color: var(--cs-vinho) !important;
    box-shadow: none !important;
    vertical-align: middle !important;
    transform: none !important;
    backdrop-filter: blur(8px);
}

.cs-sacola.cs-sacola--cabecalho:hover,
.cs-sacola.cs-sacola--cabecalho:focus-visible {
    border-color: rgba(183,73,46,.34) !important;
    background: #fffaf6 !important;
    color: var(--cs-terracota) !important;
    box-shadow: 0 8px 20px rgba(105,54,38,.10) !important;
    transform: translateY(-1px) !important;
}

.cs-sacola.cs-sacola--cabecalho::after { display: none !important; }

.cs-sacola.cs-sacola--cabecalho .cs-sacola__icone {
    flex: 0 0 32px !important;
    width: 32px !important;
    height: 32px !important;
    border: 0 !important;
    border-radius: 11px !important;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota)) !important;
    color: #fff !important;
}

.cs-sacola.cs-sacola--cabecalho .cs-sacola__icone svg {
    width: 18px !important;
    height: 18px !important;
}

.cs-sacola.cs-sacola--cabecalho .cs-sacola__texto {
    display: block !important;
    min-width: 0 !important;
    padding: 0 !important;
}

.cs-sacola.cs-sacola--cabecalho .cs-sacola__texto strong {
    display: block !important;
    color: currentColor !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.cs-sacola.cs-sacola--cabecalho .cs-cart-count {
    top: -7px !important;
    right: -7px !important;
    min-width: 20px !important;
    height: 20px !important;
    padding: 0 5px !important;
    border: 2px solid #fffaf6 !important;
    background: var(--cs-dourado) !important;
    color: #fff !important;
    font-size: 10px !important;
}

.cs-sacola.cs-sacola--fallback {
    position: fixed !important;
    top: 18px !important;
    right: 84px !important;
    margin: 0 !important;
    z-index: 99999 !important;
}

/* A sacola abre como painel inferior, sem depender da posição do acionador. */
.cs-mini-sacola {
    right: 22px !important;
    bottom: 22px !important;
    transform-origin: bottom right !important;
}

.cs-sacola-aberta .cs-sacola.cs-sacola--cabecalho {
    background: #fffaf6 !important;
    border-color: rgba(183,73,46,.34) !important;
}

/* Confirmação de presente adicionado. */
.cs-adicionado-overlay {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(67,31,22,.36);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
    backdrop-filter: blur(3px);
}

.cs-adicionado {
    position: fixed;
    left: 50%;
    top: 50%;
    z-index: 100001;
    width: min(440px, calc(100vw - 32px));
    padding: 30px 28px 27px;
    border: 1px solid rgba(159,63,46,.14);
    border-radius: 28px;
    background: #fffaf6;
    box-shadow: 0 30px 80px rgba(65,28,19,.32);
    text-align: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -46%) scale(.97);
    transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
}

.cs-adicionado-aberto .cs-adicionado-overlay,
.cs-adicionado-aberto .cs-adicionado {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.cs-adicionado-aberto .cs-adicionado {
    transform: translate(-50%, -50%) scale(1);
}

.cs-adicionado__fechar {
    position: absolute;
    right: 15px;
    top: 15px;
    display: grid;
    width: 36px;
    height: 36px;
    padding: 0 !important;
    place-items: center;
    border: 1px solid var(--cs-borda);
    border-radius: 50% !important;
    background: #fff;
    color: var(--cs-vinho);
    font-size: 23px;
    line-height: 1;
    cursor: pointer;
}

.cs-adicionado__icone {
    display: grid;
    width: 62px;
    height: 62px;
    margin: 0 auto 14px;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota));
    color: #fff;
    font-size: 28px;
    box-shadow: 0 14px 28px rgba(159,63,46,.20);
}

.cs-adicionado__mini {
    display: block;
    margin-bottom: 7px;
    color: var(--cs-dourado);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.cs-adicionado h3 {
    margin: 0;
    color: var(--cs-vinho);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 28px;
    line-height: 1.08;
}

.cs-adicionado p {
    margin: 12px auto 22px;
    max-width: 350px;
    color: rgba(125,58,47,.72);
    font-size: 14px;
    line-height: 1.55;
}

.cs-adicionado__acoes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.cs-adicionado__continuar,
.cs-adicionado__checkout {
    display: flex;
    min-height: 49px;
    padding: 12px 15px;
    align-items: center;
    justify-content: center;
    border-radius: 15px !important;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.15;
    text-decoration: none !important;
    cursor: pointer;
}

.cs-adicionado__continuar {
    border: 1px solid var(--cs-borda);
    background: var(--cs-creme-claro);
    color: var(--cs-vinho);
}

.cs-adicionado__checkout {
    border: 1px solid transparent;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota));
    color: #fff !important;
    box-shadow: 0 10px 22px rgba(159,63,46,.18);
}

@media (max-width: 640px) {
    .cs-sacola.cs-sacola--cabecalho {
        min-height: 40px !important;
        margin-right: 7px !important;
        padding: 5px !important;
        border-radius: 13px !important;
    }

    .cs-sacola.cs-sacola--cabecalho .cs-sacola__icone {
        flex-basis: 30px !important;
        width: 30px !important;
        height: 30px !important;
        border-radius: 10px !important;
    }

    .cs-sacola.cs-sacola--cabecalho .cs-sacola__texto { display: none !important; }

    .cs-sacola.cs-sacola--fallback {
        top: 16px !important;
        right: 72px !important;
    }

    .cs-mini-sacola {
        right: 10px !important;
        bottom: max(10px, env(safe-area-inset-bottom)) !important;
        width: calc(100vw - 20px) !important;
        max-height: calc(100vh - 90px) !important;
        border-radius: 24px !important;
    }

    .cs-adicionado {
        padding: 27px 20px 21px;
        border-radius: 24px;
    }

    .cs-adicionado h3 { font-size: 24px; }
    .cs-adicionado p { margin-bottom: 18px; }
    .cs-adicionado__acoes { grid-template-columns: 1fr; }
    .cs-adicionado__checkout { order: -1; }
}

/* =========================================================
   V3.5.0 — Sacola no header via shortcode + refinamentos
   ========================================================= */

/* Oculta somente o título automático da página que contém a lista. */
body.cs-tem-lista-presentes .entry-title,
body.cs-tem-lista-presentes .page-title,
body.cs-tem-lista-presentes .wp-block-post-title,
body.cs-tem-lista-presentes main > article > header.entry-header,
body.cs-tem-lista-presentes .elementor-widget-theme-post-title {
    display: none !important;
}

/* O shortcode é colocado dentro do header do Elementor, ao lado do menu. */
.cs-header-sacola-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.cs-sacola.cs-sacola--shortcode {
    position: relative !important;
    inset: auto !important;
    z-index: 20 !important;
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 6px 12px 6px 7px !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    border: 1px solid rgba(187, 90, 49, .22) !important;
    border-radius: 16px !important;
    background: rgba(255, 250, 246, .92) !important;
    color: var(--cs-vinho) !important;
    box-shadow: 0 7px 18px rgba(117, 57, 38, .08) !important;
    font: inherit !important;
    cursor: pointer !important;
    transform: none !important;
    transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease !important;
}

.cs-sacola.cs-sacola--shortcode:hover,
.cs-sacola.cs-sacola--shortcode:focus-visible {
    border-color: rgba(187, 90, 49, .42) !important;
    background: #fffaf6 !important;
    box-shadow: 0 10px 24px rgba(117, 57, 38, .12) !important;
    transform: translateY(-1px) !important;
}

.cs-sacola--shortcode .cs-sacola__icone {
    position: relative !important;
    width: 35px !important;
    height: 35px !important;
    flex: 0 0 35px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 12px !important;
    background: linear-gradient(145deg, var(--cs-terracota), var(--cs-vinho)) !important;
    color: #fff !important;
}

.cs-sacola--shortcode .cs-sacola__icone svg {
    width: 19px !important;
    height: 19px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.7 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.cs-sacola--shortcode .cs-cart-count {
    position: absolute !important;
    top: -7px !important;
    right: -7px !important;
    min-width: 20px !important;
    height: 20px !important;
    padding: 0 5px !important;
    display: grid !important;
    place-items: center !important;
    border: 2px solid #fffaf6 !important;
    border-radius: 999px !important;
    background: var(--cs-dourado) !important;
    color: #fff !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
}

.cs-sacola--shortcode .cs-sacola__texto {
    display: flex !important;
    min-width: 0 !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
    text-align: left !important;
}

.cs-sacola--shortcode .cs-sacola__texto strong {
    color: var(--cs-vinho) !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

.cs-sacola--shortcode .cs-sacola__texto small {
    color: rgba(125, 58, 47, .65) !important;
    font-size: 9px !important;
    line-height: 1 !important;
    font-weight: 600 !important;
    letter-spacing: .05em !important;
    text-transform: uppercase !important;
}

/* Modal pós-adição aprovado. */
.cs-adicionado__continuar {
    border: 1px solid var(--cs-terracota) !important;
    border-radius: 15px !important;
    background: var(--cs-creme-claro) !important;
    color: var(--cs-vinho) !important;
    box-shadow: none !important;
}

.cs-adicionado__continuar:hover,
.cs-adicionado__continuar:focus-visible {
    background: var(--cs-creme) !important;
    color: var(--cs-vinho) !important;
}

.cs-adicionado__checkout {
    border-radius: 15px !important;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota)) !important;
    color: #fff !important;
}

.cs-adicionado__fechar {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 50% !important;
    line-height: 1 !important;
    aspect-ratio: 1 / 1 !important;
}

@media (max-width: 767px) {
    .cs-sacola.cs-sacola--shortcode {
        min-height: 43px !important;
        padding: 5px !important;
        border-radius: 14px !important;
    }

    .cs-sacola--shortcode .cs-sacola__icone {
        width: 33px !important;
        height: 33px !important;
        flex-basis: 33px !important;
        border-radius: 11px !important;
    }

    .cs-sacola--shortcode .cs-sacola__texto {
        display: none !important;
    }
}


/* =========================================================
   V3.6.0 — Sacola global, mais simples e funcional em qualquer página
   ========================================================= */
.cs-header-sacola-wrap.cs-gift-ui {
    position: relative;
}

.cs-sacola.cs-sacola--shortcode {
    min-height: 42px !important;
    padding: 4px 10px 4px 5px !important;
    gap: 7px !important;
    border: 1px solid rgba(187, 90, 49, .18) !important;
    border-radius: 13px !important;
    background: transparent !important;
    box-shadow: none !important;
}

.cs-sacola.cs-sacola--shortcode:hover,
.cs-sacola.cs-sacola--shortcode:focus-visible {
    background: rgba(255, 250, 246, .78) !important;
    border-color: rgba(187, 90, 49, .34) !important;
    box-shadow: none !important;
    transform: none !important;
}

.cs-sacola--shortcode .cs-sacola__icone {
    width: 32px !important;
    height: 32px !important;
    flex-basis: 32px !important;
    border-radius: 10px !important;
    background: var(--cs-terracota) !important;
}

.cs-sacola--shortcode .cs-sacola__icone svg {
    width: 18px !important;
    height: 18px !important;
}

.cs-sacola--shortcode .cs-sacola__texto strong {
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
}

.cs-sacola--shortcode .cs-sacola__texto small {
    display: none !important;
}

.cs-header-sacola-wrap .cs-mini-sacola {
    right: 18px !important;
    bottom: 18px !important;
    transform-origin: bottom right !important;
}

.cs-mini-sacola__vazia {
    padding: 34px 25px 30px !important;
}

.cs-mini-sacola__vazia p {
    max-width: 285px;
    margin: 8px auto 18px !important;
    line-height: 1.55;
}

.cs-mini-sacola__ver-lista {
    display: inline-flex;
    min-height: 45px;
    padding: 11px 20px;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota));
    color: #fff !important;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none !important;
    box-shadow: 0 10px 22px rgba(159,63,46,.18);
}

.cs-mini-sacola__ver-lista:hover,
.cs-mini-sacola__ver-lista:focus-visible {
    color: #fff !important;
    transform: translateY(-1px);
}

@media (max-width: 640px) {
    .cs-sacola.cs-sacola--shortcode {
        min-height: 38px !important;
        padding: 3px !important;
        border: 0 !important;
        background: transparent !important;
    }

    .cs-sacola--shortcode .cs-sacola__icone {
        width: 34px !important;
        height: 34px !important;
        flex-basis: 34px !important;
        border-radius: 11px !important;
    }

    .cs-sacola--shortcode .cs-sacola__texto {
        display: none !important;
    }

    .cs-header-sacola-wrap .cs-mini-sacola {
        inset: auto 8px 8px 8px !important;
        width: auto !important;
        max-height: calc(100dvh - 24px) !important;
        border-radius: 22px !important;
    }
}


/* =========================================================
   V3.6.1 — Botão do estado vazio
   ========================================================= */
.cs-mini-sacola__vazia .cs-mini-sacola__ver-lista {
    display: inline-flex !important;
    width: auto !important;
    min-width: 190px !important;
    min-height: 46px !important;
    padding: 12px 22px !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--cs-terracota) !important;
    border-radius: 14px !important;
    background: linear-gradient(135deg, var(--cs-vinho), var(--cs-terracota)) !important;
    color: #fff !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
    text-align: center !important;
    text-decoration: none !important;
    box-shadow: 0 10px 22px rgba(159, 63, 46, .18) !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.cs-mini-sacola__vazia .cs-mini-sacola__ver-lista:hover,
.cs-mini-sacola__vazia .cs-mini-sacola__ver-lista:focus-visible {
    background: linear-gradient(135deg, var(--cs-terracota-escuro), var(--cs-terracota)) !important;
    color: #fff !important;
    transform: translateY(-1px);
}

/* Vitrine compacta para a página inicial */
.cs-presentes--home {
    width: min(1180px, calc(100% - 40px));
    padding: 70px 0 76px;
}

.cs-presentes--home .cs-presentes__cabecalho {
    max-width: 760px;
    margin-bottom: 38px;
}

.cs-presentes--home .cs-presentes__cabecalho h2 {
    font-size: clamp(40px, 5vw, 62px);
    line-height: 1.02;
    font-weight: 400;
}

.cs-presentes--home .cs-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}

.cs-presentes--home .cs-card {
    border-radius: 26px;
    box-shadow: 0 12px 28px rgba(112, 61, 43, .08);
}

.cs-presentes--home .cs-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 38px rgba(112, 61, 43, .14);
}

.cs-presentes--home .cs-card__imagem {
    aspect-ratio: 1 / 1;
}

.cs-presentes--home .cs-card__conteudo {
    padding: 20px 20px 22px;
}

.cs-presentes--home .cs-card__topo {
    display: block;
}

.cs-presentes--home .cs-card h3 {
    max-width: none;
    min-height: 50px;
    font-size: 20px;
    line-height: 1.18;
}

.cs-presentes--home .cs-card__preco {
    margin-top: 10px;
    font-size: 18px;
}

.cs-presentes--home .cs-card__acoes {
    margin-top: 18px;
}

.cs-presentes--home .cs-botao {
    min-height: 50px;
    border-radius: 15px;
    font-size: 14px;
}

.cs-presentes__rodape {
    margin-top: 40px;
    text-align: center;
}

.cs-ver-lista {
    display: inline-flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 26px;
    border: 1px solid var(--cs-terracota);
    border-radius: 16px;
    background: rgba(255, 250, 246, .78);
    color: var(--cs-terracota-escuro) !important;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none !important;
    transition: transform .2s ease, color .2s ease, background .2s ease;
}

.cs-ver-lista svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cs-ver-lista:hover,
.cs-ver-lista:focus-visible {
    color: #fff !important;
    background: var(--cs-terracota);
    transform: translateY(-2px);
}

@media (max-width: 1024px) {
    .cs-presentes--home .cs-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .cs-presentes--home {
        width: min(100% - 28px, 1180px);
        padding: 52px 0 58px;
    }

    .cs-presentes--home .cs-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .cs-presentes--home .cs-card {
        border-radius: 22px;
    }

    .cs-presentes--home .cs-card h3 {
        min-height: 0;
        font-size: 21px;
    }

    .cs-presentes--home .cs-ver-lista {
        width: 100%;
    }
}
