/* SOFT ECOMMERCE - MARKETING PATROCINADO V1.0.0 */
.soft-sp-section{width:min(1200px,calc(100% - 30px));margin:20px auto 28px;padding:18px;border:1px solid #e2e8f0;border-radius:18px;background:rgba(255,255,255,.97);box-shadow:0 12px 35px rgba(15,23,42,.06)}
.soft-sp-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:13px}.soft-sp-head h2{margin:5px 0 0;color:#172033;font-size:21px}.soft-sp-tag{display:inline-flex;padding:5px 9px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.5px}
.soft-sp-nav{display:flex;gap:7px}.soft-sp-nav button{width:38px;height:38px;border-radius:50%;border:1px solid #dbe2ea;background:#fff;color:#334155;font-size:22px;cursor:pointer}.soft-sp-nav button:hover{background:var(--cor-primaria,#2563eb);color:#fff;border-color:var(--cor-primaria,#2563eb)}
.soft-sp-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(340px,48%);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:2px 1px 5px}.soft-sp-track::-webkit-scrollbar{display:none}.soft-sp-card{scroll-snap-align:start;overflow:hidden;border:1px solid #e2e8f0;border-radius:15px;background:#fff;transition:transform .18s ease,box-shadow .18s ease}.soft-sp-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.10)}.soft-sp-card>a{display:block;color:inherit;text-decoration:none}
.soft-sp-banner{display:block;width:100%;aspect-ratio:16/5;object-fit:cover;background:#f8fafc}.soft-sp-placeholder{aspect-ratio:16/5;display:flex;align-items:center;justify-content:center;padding:25px;background:linear-gradient(135deg,#111827,#1d4ed8);color:#fff;font-size:20px}.soft-sp-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px}.soft-sp-sponsor{min-width:0;display:flex;align-items:center;gap:9px}.soft-sp-sponsor img{width:42px;height:42px;object-fit:contain;border-radius:9px;border:1px solid #e2e8f0;background:#fff}.soft-sp-sponsor small{display:block;color:#94a3b8;font-size:9px;text-transform:uppercase}.soft-sp-sponsor strong{display:block;color:#334155;font-size:12px}.soft-sp-open{color:var(--soft-sp-card-accent,var(--soft-sp-accent,var(--cor-primaria,#2563eb)));font-size:11px;font-weight:900;white-space:nowrap}
.soft-sp-modal{position:fixed;inset:0;z-index:99990;display:none;align-items:center;justify-content:center;padding:18px}.soft-sp-modal.open{display:flex}.soft-sp-modal-bg{position:absolute;inset:0;background:rgba(15,23,42,.68);backdrop-filter:blur(2px)}.soft-sp-modal-box{position:relative;z-index:2;width:min(860px,96vw);max-height:90vh;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 35px 110px rgba(0,0,0,.38)}.soft-sp-modal-box>a{display:block}.soft-sp-modal-box img{display:block;width:100%;max-height:84vh;object-fit:contain;background:#fff}.soft-sp-modal-close{position:absolute;right:10px;top:10px;z-index:4;width:38px;height:38px;border:0;border-radius:50%;background:rgba(15,23,42,.82);color:#fff;font-size:23px;cursor:pointer}.soft-sp-modal-placeholder{min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px;background:linear-gradient(135deg,#111827,#1d4ed8);color:#fff}.soft-sp-modal-placeholder span{font-size:11px;opacity:.8;text-transform:uppercase}.soft-sp-modal-placeholder strong{font-size:34px;margin:12px 0}
.soft-card-add-hover{width:100%;min-height:42px;margin-top:10px;border:0;border-radius:8px;background:var(--cor-primaria,#2563eb);color:#fff;font-size:12px;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;opacity:0;transform:translateY(7px);pointer-events:none;transition:opacity .18s ease,transform .18s ease,filter .18s ease}.product-card:hover .soft-card-add-hover,.product-card:focus-within .soft-card-add-hover{opacity:1;transform:translateY(0);pointer-events:auto}.soft-card-add-hover:hover{filter:brightness(.92)}
html.soft-sponsored-wallpaper body{background-repeat:no-repeat!important;background-position:center top!important;background-size:cover!important;background-attachment:fixed!important}
@media(max-width:768px){.soft-sp-section{width:calc(100% - 20px);margin:12px auto 20px;padding:13px;border-radius:14px}.soft-sp-track{grid-auto-columns:88%}.soft-sp-nav{display:none}.soft-sp-banner{aspect-ratio:1/1}.soft-card-add-hover{opacity:1;transform:none;pointer-events:auto}}
@media(prefers-reduced-motion:reduce){.soft-sp-track{scroll-behavior:auto}.soft-sp-card,.soft-card-add-hover{transition:none}}


/* SOFT_SPONSORED_STYLE_V102 */
@supports not (background: color-mix(in srgb, red 10%, white)) {
    .soft-sp-tag {
        background: #eff6ff;
    }
}
/* /SOFT_SPONSORED_STYLE_V102 */


/* SOFT_HOVER_ADD_V103 */
@media(min-width:769px){
html.soft-hover-add-enabled .product-card .soft-card-add-hover{opacity:0!important;transform:translateY(7px)!important;pointer-events:none!important;transition:opacity .18s ease,transform .18s ease,filter .18s ease!important}
html.soft-hover-add-enabled .product-card:hover .soft-card-add-hover,html.soft-hover-add-enabled .product-card:focus-within .soft-card-add-hover{opacity:1!important;transform:translateY(0)!important;pointer-events:auto!important}
}
html.soft-hover-add-disabled .product-card .soft-card-add-hover{display:none!important}
@media(max-width:768px){html.soft-hover-add-enabled .product-card .soft-card-add-hover{opacity:1!important;transform:none!important;pointer-events:auto!important}}
/* /SOFT_HOVER_ADD_V103 */


/* SOFT_SPONSORED_CAMPAIGN_CAROUSEL_FINAL_V110 */
/* Os produtos comuns continuam usando .soft-card-add-hover.
   O botão dos produtos patrocinados é estilizado no bloco da Home para respeitar a cor de cada campanha. */
/* /SOFT_SPONSORED_CAMPAIGN_CAROUSEL_FINAL_V110 */

/* SOFT_CARD_HOVER_BALAROTI_V120
   Comportamento de vitrine inspirado no exemplo Balaroti:
   - estado normal sem espaço reservado;
   - CTA no final do card;
   - hover expande o card PARA BAIXO;
   - a linha seguinte do grid é deslocada para baixo;
   - cards irmãos permanecem compactos, criando o respiro entre as linhas. */

/* O grid não estica todos os cards até a altura do maior item da linha. */
html.soft-hover-add-enabled .product-grid {
    align-items: start !important;
}

/* O próprio card passa a medir apenas o conteúdo real. */
html.soft-hover-add-enabled .product-card {
    height: auto !important;
    align-self: start !important;
    overflow: hidden !important;
    transition: box-shadow .22s ease, border-color .22s ease !important;
}

/* Nada de levantar o card por cima dos outros: o movimento agora é para baixo. */
html.soft-hover-add-enabled .product-card:hover,
html.soft-hover-add-enabled .product-card:focus-within {
    transform: none !important;
    border-color: color-mix(in srgb, var(--cor-primaria,#2563eb) 32%, #cbd5e1) !important;
    box-shadow: 0 12px 30px rgba(15,23,42,.12) !important;
    z-index: 3 !important;
}

/* CTA fica no fluxo, DEPOIS do preço, mas totalmente recolhido no estado normal. */
html.soft-hover-add-enabled .product-card .soft-card-add-hover {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-radius: 9px !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    background: var(--cor-primaria,#2563eb) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    opacity: 0 !important;
    transform: translateY(-4px) !important;
    pointer-events: none !important;
    box-shadow: none !important;
    transition:
        height .22s cubic-bezier(.2,.8,.2,1),
        min-height .22s cubic-bezier(.2,.8,.2,1),
        max-height .22s cubic-bezier(.2,.8,.2,1),
        margin-top .22s cubic-bezier(.2,.8,.2,1),
        opacity .14s ease .05s,
        transform .22s cubic-bezier(.2,.8,.2,1),
        filter .14s ease !important;
}

/* No hover o CTA nasce no rodapé do card e o card aumenta de altura. */
html.soft-hover-add-enabled .product-card:hover .soft-card-add-hover,
html.soft-hover-add-enabled .product-card:focus-within .soft-card-add-hover {
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    margin-top: 11px !important;
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
    box-shadow: 0 6px 14px color-mix(in srgb, var(--cor-primaria,#2563eb) 24%, transparent) !important;
}

html.soft-hover-add-enabled .product-card .soft-card-add-hover:hover {
    filter: brightness(.92) !important;
}

/* A foto ganha só um movimento discreto; o CTA nunca passa por cima dela. */
html.soft-hover-add-enabled .product-card .product-image {
    transition: opacity .28s ease-in-out, transform .28s cubic-bezier(.2,.8,.2,1) !important;
    transform-origin: center center !important;
}
html.soft-hover-add-enabled .product-card:hover .product-image,
html.soft-hover-add-enabled .product-card:focus-within .product-image {
    transform: scale(1.025) !important;
}

/* Tamanhos de card mantêm proporção do CTA. */
.product-grid-pequeno .product-card:hover .soft-card-add-hover,
.product-grid-pequeno .product-card:focus-within .soft-card-add-hover {
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin-top: 8px !important;
    font-size: 10.5px !important;
}
.product-grid-grande .product-card:hover .soft-card-add-hover,
.product-grid-grande .product-card:focus-within .soft-card-add-hover {
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    margin-top: 12px !important;
    font-size: 13px !important;
}

/* Mobile/touch: como não existe hover confiável, mostra o botão no final do card. */
@media (max-width: 768px) {
    html.soft-hover-add-enabled .product-grid {
        align-items: stretch !important;
    }
    html.soft-hover-add-enabled .product-card {
        height: auto !important;
        align-self: stretch !important;
    }
    html.soft-hover-add-enabled .product-card .soft-card-add-hover,
    html.soft-hover-add-enabled .product-card:hover .soft-card-add-hover,
    html.soft-hover-add-enabled .product-card:focus-within .soft-card-add-hover {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        height: 38px !important;
        min-height: 38px !important;
        max-height: 38px !important;
        margin-top: 9px !important;
        padding: 0 9px !important;
        opacity: 1 !important;
        transform: none !important;
        pointer-events: auto !important;
        font-size: 11px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html.soft-hover-add-enabled .product-card,
    html.soft-hover-add-enabled .product-card .product-image,
    html.soft-hover-add-enabled .product-card .soft-card-add-hover {
        transition: none !important;
    }
}

/* Fallback para navegadores sem color-mix. */
@supports not (color: color-mix(in srgb, red 10%, blue)) {
    html.soft-hover-add-enabled .product-card:hover,
    html.soft-hover-add-enabled .product-card:focus-within {
        border-color: #b7c7dc !important;
    }
    html.soft-hover-add-enabled .product-card:hover .soft-card-add-hover,
    html.soft-hover-add-enabled .product-card:focus-within .soft-card-add-hover {
        box-shadow: 0 6px 14px rgba(37,99,235,.18) !important;
    }
}
/* /SOFT_CARD_HOVER_BALAROTI_V120 */

/* SOFT_SMALL_CARD_ADD_CART_V141_START */
/*
 * Cards pequenos: o botão deve caber integralmente dentro do card.
 * A descrição é forçada em duas linhas para não estourar a largura:
 *   Adicionar ao
 *   carrinho
 */
.product-grid-pequeno .soft-card-add-hover {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    padding: 6px 4px !important;
    gap: 4px !important;
    overflow: hidden !important;
    white-space: normal !important;
    line-height: 1.05 !important;
    font-size: 0 !important;
}
.product-grid-pequeno .soft-card-add-hover i {
    flex: 0 0 auto !important;
    font-size: 11px !important;
    line-height: 1 !important;
}
.product-grid-pequeno .soft-card-add-hover span {
    display: none !important;
}
.product-grid-pequeno .soft-card-add-hover::after {
    content: "Adicionar ao\A carrinho";
    white-space: pre-line !important;
    display: inline-block !important;
    min-width: 0 !important;
    font-size: 10px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    text-align: center !important;
}
/* SOFT_SMALL_CARD_ADD_CART_V141_END */
