/* Settem Grid 1.3.0 — CSS estructural. La apariencia se controla desde Elementor. */
.sg-wrapper { width: 100%; min-width: 0; }
.sg-loading { display: flex; align-items: center; justify-content: center; padding: 60px 0; }
.sg-spinner { width: 32px; height: 32px; border: 2px solid rgba(127,127,127,.2); border-top-color: currentColor; border-radius: 50%; animation: sg-spin .7s linear infinite; }
@keyframes sg-spin { to { transform: rotate(360deg); } }

.sg-products { width: 100%; min-width: 0; }
.sg-grid { display: grid; width: 100%; }
.sg-cols-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.sg-cols-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.sg-cols-4 { grid-template-columns: repeat(4,minmax(0,1fr)); }

.sg-card { display: block; height: 100%; min-width: 0; }
.sg-card-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    text-decoration: none !important;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
    box-sizing: border-box;
}
.sg-design-editorial .sg-card-inner { overflow: visible; }

.sg-thumb {
    width: 100%;
    flex: 0 0 auto;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
}

.sg-badge {
    position: absolute;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-sizing: border-box;
}

.sg-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    box-sizing: border-box;
}

.sg-cat {
    display: inline-flex;
    width: auto;
    max-width: 100%;
    box-sizing: border-box;
    line-height: 1.2;
}

.sg-name {
    display: block;
    box-sizing: border-box;
    transition: color .2s ease;
}

.sg-bottom {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    margin-top: auto;
    box-sizing: border-box;
}

.sg-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    width: 100%;
    box-sizing: border-box;
}
.sg-price ins { text-decoration: none; }
.sg-price del { text-decoration: line-through; }

.sg-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    box-sizing: border-box;
    text-align: center;
    text-decoration: none !important;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.sg-empty { text-align: center; padding: 60px 20px; }

@media (max-width: 767px) {
    .sg-cols-2,
    .sg-cols-3,
    .sg-cols-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
