.swpro-v5-public{width:100vw;margin-left:calc(50% - 50vw);background:#fff;border-top:1px solid rgba(0,0,0,.08);border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 14px 35px rgba(15,23,42,.08);z-index:999}.swpro-v5-public-inner{max-height:72vh;overflow-y:auto;display:grid;grid-template-columns:repeat(attr(data-desktop number,4),1fr);grid-template-columns:repeat(var(--swpro-cols,4),minmax(0,1fr));gap:34px 56px;padding:34px 52px}.swpro-v5-public[data-desktop="1"]{--swpro-cols:1}.swpro-v5-public[data-desktop="2"]{--swpro-cols:2}.swpro-v5-public[data-desktop="3"]{--swpro-cols:3}.swpro-v5-public[data-desktop="4"]{--swpro-cols:4}.swpro-v5-public[data-desktop="5"]{--swpro-cols:5}.swpro-v5-public[data-desktop="6"]{--swpro-cols:6}.swpro-v5-public-column{min-width:0}.swpro-v5-public-block{margin-bottom:26px;break-inside:avoid}.swpro-v5-public-block.is-highlight{background:#f8fafc;border-left:4px solid #111827;border-radius:12px;padding:14px}.swpro-v5-public-title{display:block;font-size:15px;font-weight:800;text-transform:uppercase;text-decoration:underline!important;color:#1f2937!important;margin-bottom:13px;line-height:1.25}.swpro-v5-public-links a{display:block;color:#4b5563!important;text-decoration:none!important;font-size:14px;line-height:1.5;margin-bottom:7px}.swpro-v5-public-links a:hover{color:#111827!important;text-decoration:underline!important}@media(max-width:1024px){.swpro-v5-public[data-tablet="1"]{--swpro-cols:1}.swpro-v5-public[data-tablet="2"]{--swpro-cols:2}.swpro-v5-public[data-tablet="3"]{--swpro-cols:3}.swpro-v5-public-inner{padding:24px;gap:24px 32px;max-height:68vh}}@media(max-width:768px){.swpro-v5-public{width:100%;margin-left:0;box-shadow:none}.swpro-v5-public[data-mobile="1"]{--swpro-cols:1}.swpro-v5-public[data-mobile="2"]{--swpro-cols:2}.swpro-v5-public-inner{max-height:none;overflow:visible;padding:14px;gap:14px}.swpro-v5-public-block{margin-bottom:16px}.swpro-v5-public-title{font-size:13px;margin-bottom:8px}.swpro-v5-public-links a{font-size:12.5px;margin-bottom:5px}}

/* ===== SWPro V5.2 frontend structural fixes ===== */

/* Do not let extra manual columns wrap into a second row.
   That wrapping was the source of the “empty gap” effect. */
.swpro-v5-public-inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    gap: 56px !important;
}

/* Visible columns are calculated from desktop/tablet/mobile setting.
   If there are more manual columns, they remain accessible with horizontal scroll
   instead of jumping below and creating an ugly blank area. */
.swpro-v5-public-column {
    flex: 0 0 calc((100% - (56px * (var(--swpro-cols,4) - 1))) / var(--swpro-cols,4)) !important;
    min-width: 190px !important;
    align-self: flex-start !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
}

.swpro-v5-public-block {
    margin-top: 0 !important;
    break-inside: auto !important;
}

.swpro-v5-public-block:first-child {
    margin-top: 0 !important;
}

/* Tablet */
@media(max-width:1024px) {
    .swpro-v5-public-inner {
        gap: 32px !important;
    }

    .swpro-v5-public-column {
        flex-basis: calc((100% - (32px * (var(--swpro-cols,2) - 1))) / var(--swpro-cols,2)) !important;
        min-width: 210px !important;
    }
}

/* Mobile: no giant layout, clean vertical menu */
@media(max-width:768px) {
    .swpro-v5-public-inner {
        display: grid !important;
        grid-template-columns: repeat(var(--swpro-cols,1), minmax(0, 1fr)) !important;
        overflow: visible !important;
        gap: 14px !important;
    }

    .swpro-v5-public-column {
        min-width: 0 !important;
        width: auto !important;
        flex: none !important;
    }
}


/* ===== V6.2 commercial frontend blocks ===== */
.swpro-v5-public-block{color:var(--swpro-text,#4b5563)}
.swpro-v5-public-title{color:var(--swpro-title,#1f2937)!important}
.swpro-block-heading{margin-bottom:14px!important}
.swpro-heading{font-size:20px;font-weight:900;text-transform:uppercase;color:var(--swpro-title,#111827);letter-spacing:-.02em}
.swpro-text{font-size:14px;line-height:1.45;color:var(--swpro-text,#4b5563)}
.swpro-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--swpro-btn-bg,#111827);color:var(--swpro-btn-color,#fff)!important;border-radius:999px;padding:10px 16px;font-weight:800;text-decoration:none!important;line-height:1}
.swpro-cta.mini{margin-top:10px;font-size:13px;padding:8px 12px}
.swpro-banner{display:block;position:relative;overflow:hidden;border-radius:10px;background:var(--swpro-bg,#111827);min-height:78px;text-decoration:none!important;color:#fff!important}
.swpro-banner img{width:100%;height:100%;min-height:78px;object-fit:cover;display:block}
.swpro-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.05))}
.swpro-banner-content{position:absolute;inset:0;z-index:2;padding:12px;display:flex;flex-direction:column;justify-content:center}
.swpro-banner-content em{font-style:normal;background:#dc2626;color:#fff;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800;width:max-content;margin-bottom:5px}
.swpro-banner-content strong{font-size:18px;line-height:1.1;color:#fff}
.swpro-banner-content span{font-size:13px;color:#fff}
.swpro-commerce-product{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center;text-decoration:none!important;color:var(--swpro-text,#374151)!important;background:var(--swpro-bg,#fff);border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:10px}
.swpro-commerce-product-img img{width:96px;height:96px;object-fit:contain;display:block}
.swpro-commerce-product-info strong{display:block;color:var(--swpro-title,#1f2937);font-size:14px;line-height:1.25;margin-bottom:6px}
.swpro-commerce-price{font-weight:900;color:#dc2626;font-size:18px}
.swpro-flash-badge{display:inline-flex;background:#dc2626;color:#fff;border-radius:4px;padding:5px 8px;font-weight:900;font-size:12px;margin-bottom:8px;text-transform:uppercase}
.swpro-flash-subtitle{font-size:13px;margin-bottom:10px;color:var(--swpro-text,#4b5563)}
.swpro-countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}
.swpro-countdown span{background:#111827;color:#fff;border-radius:8px;padding:7px 4px;text-align:center}
.swpro-countdown b{display:block;font-size:16px;line-height:1}
.swpro-countdown small{display:block;font-size:10px;opacity:.75;margin-top:3px}
.swpro-html{font-size:14px;line-height:1.45;color:var(--swpro-text,#4b5563)}
.swpro-ended{display:none!important}
@media(max-width:768px){
    .swpro-heading{font-size:16px}
    .swpro-commerce-product{grid-template-columns:72px 1fr}
    .swpro-commerce-product-img img{width:72px;height:72px}
    .swpro-banner-content strong{font-size:15px}
    .swpro-countdown b{font-size:13px}
}


/* ===== V6.3 Product card improvement ===== */
.swpro-commerce-product{
    grid-template-columns:110px 1fr !important;
    padding:14px !important;
    border-radius:14px !important;
    box-shadow:0 8px 24px rgba(0,0,0,.04);
    background:#fff !important;
}

.swpro-commerce-product-img{
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fafafa;
    border-radius:12px;
    min-height:110px;
}

.swpro-commerce-product-img img{
    width:90px !important;
    height:90px !important;
    object-fit:contain !important;
}

.swpro-commerce-product-info strong{
    font-size:15px !important;
    line-height:1.35 !important;
    margin-bottom:8px !important;
}

.swpro-commerce-price{
    display:block;
    font-size:22px !important;
    margin-top:4px;
}

.swpro-block-product .swpro-v5-public-title{
    margin-bottom:12px !important;
}

.swpro-block-product .swpro-cta{
    margin-top:12px;
    width:100%;
}

@media(max-width:768px){
    .swpro-commerce-product{
        grid-template-columns:80px 1fr !important;
    }
    .swpro-commerce-product-img{
        min-height:80px;
    }
    .swpro-commerce-product-img img{
        width:64px !important;
        height:64px !important;
    }
}


/* ===== V6.4 Premium product card + elegant highlight ===== */
.swpro-block-product{
background:#fff!important;
border:1px solid rgba(0,0,0,.06)!important;
border-radius:18px!important;
padding:20px!important;
box-shadow:0 12px 30px rgba(0,0,0,.04);
}

.swpro-block-product .swpro-v5-public-title{
font-size:20px!important;
font-weight:800!important;
margin-bottom:16px!important;
text-decoration:none!important;
}

.swpro-commerce-product{
display:flex!important;
flex-direction:column!important;
align-items:center!important;
text-align:center!important;
grid-template-columns:none!important;
border:none!important;
background:transparent!important;
box-shadow:none!important;
padding:0!important;
}

.swpro-commerce-product-img{
width:100%;
display:flex;
justify-content:center;
align-items:center;
background:#fafafa!important;
border-radius:16px!important;
padding:18px!important;
margin-bottom:14px;
}

.swpro-commerce-product-img img{
width:160px!important;
height:160px!important;
object-fit:contain!important;
}

.swpro-commerce-product-info strong{
display:block;
font-size:15px!important;
line-height:1.4!important;
margin-bottom:10px!important;
}

.swpro-commerce-price{
display:block;
font-size:30px!important;
font-weight:900!important;
color:#dc2626!important;
}

.swpro-v5-public-block.is-highlight{
position:relative;
border:1px solid rgba(245,158,11,.22)!important;
background:linear-gradient(180deg,#fffdf8 0%,#ffffff 100%)!important;
border-radius:16px!important;
padding:18px!important;
box-shadow:0 10px 24px rgba(245,158,11,.06);
}

.swpro-v5-public-block.is-highlight:before{
content:"★ Destacado";
position:absolute;
top:-12px;
right:16px;
background:#f59e0b;
color:#fff;
font-size:12px;
font-weight:800;
padding:6px 12px;
border-radius:999px;
box-shadow:0 8px 18px rgba(245,158,11,.22);
}

@media(max-width:768px){
.swpro-commerce-product-img img{
width:110px!important;
height:110px!important;
}
.swpro-commerce-price{
font-size:24px!important;
}
}


/* ===== V6.4.1 Fix text under product ===== */
.swpro-block-product .swpro-commerce-product{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    text-align:center !important;
}

.swpro-block-product .swpro-commerce-product-img{
    order:1 !important;
    width:100% !important;
    margin-bottom:14px !important;
}

.swpro-block-product .swpro-commerce-product-info{
    order:2 !important;
    width:100% !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
}

.swpro-block-product .swpro-commerce-product-info strong{
    width:100% !important;
    text-align:center !important;
    margin-top:0 !important;
    margin-bottom:10px !important;
}

.swpro-block-product .swpro-commerce-price{
    width:100% !important;
    text-align:center !important;
    margin-top:6px !important;
}

.swpro-block-product .swpro-commerce-product a,
.swpro-block-product .swpro-commerce-product span{
    text-align:center !important;
}
