/* DWS Frontend v2 */
:root { --dws-primary:#7b2ff7; --dws-secondary:#f72f7b; --dws-btn:#7b2ff7; --dws-btn-text:#fff; --dws-radius:12px; --dws-speed:.32s; }
.dws-wrap *, .dws-wrap *::before, .dws-wrap *::after { box-sizing:border-box; }
.dws-wrap img { max-width:100%; display:block; }
.dws-wrap a { text-decoration:none; color:inherit; }
.dws-wrap h2, .dws-wrap h3 { margin:0; line-height:1.3; }
.dws-section-title { font-size:1.55rem; font-weight:700; margin:0 0 1.6rem; color:#1a1a1a; text-align:center; letter-spacing:-.02em; font-family:var(--et-global-heading-font-family,inherit); }
.dws-grid { display:grid; grid-template-columns:repeat(var(--cols,4),1fr); gap:24px; }
@media(max-width:1024px){ .dws-grid { grid-template-columns:repeat(var(--cols-t,2),1fr); gap:18px; } }
@media(max-width:767px){  .dws-grid { grid-template-columns:repeat(var(--cols-m,1),1fr); gap:14px; } }
.dws-cell { height:100%; }
.dws-empty { color:#bbb; font-style:italic; text-align:center; padding:2rem; font-size:.9rem; }
.dws-swiper { position:relative; overflow:hidden; padding-bottom:44px; }
.dws-swiper .swiper-wrapper { align-items:stretch; }
.dws-swiper .swiper-slide   { height:auto; }
.dws-swiper .swiper-button-prev, .dws-swiper .swiper-button-next { width:42px; height:42px; background:#fff; border-radius:50%; color:var(--dws-primary); box-shadow:0 4px 16px rgba(0,0,0,.1); transition:background var(--dws-speed),color var(--dws-speed); }
.dws-swiper .swiper-button-prev::after, .dws-swiper .swiper-button-next::after { font-size:12px; font-weight:900; }
.dws-swiper .swiper-button-prev:hover, .dws-swiper .swiper-button-next:hover { background:var(--dws-primary); color:#fff; }
.dws-swiper .swiper-pagination-bullet { background:#d8d8d8; opacity:1; width:7px; height:7px; }
.dws-swiper .swiper-pagination-bullet-active { background:var(--dws-primary); width:22px; border-radius:4px; transition:width .2s; }
.dws-swiper .swiper-pagination-progressbar-fill { background:var(--dws-primary); }
.dws-badge { position:absolute; top:10px; left:10px; z-index:10; background:var(--dws-secondary); color:#fff; font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:3px 9px; border-radius:20px; font-family:var(--et-global-body-font-family,inherit); }

/* ── CARD BASE ── */
.dws-card { position:relative; display:flex; flex-direction:column; height:100%; text-decoration:none; color:inherit; border-radius:var(--dws-radius); }
.dws-card__img-wrap { position:relative; overflow:hidden; border-radius:var(--dws-radius) var(--dws-radius) 0 0; background:#f0f0f0; flex-shrink:0; }
.dws-card__img-link { display:block; }
.dws-card__img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .55s ease; }
.dws-card:hover .dws-card__img { transform:scale(1.06); }
.dws-card__body { padding:14px 16px 18px; display:flex; flex-direction:column; gap:5px; flex:1; border-radius:0 0 var(--dws-radius) var(--dws-radius); }
.dws-card__title { font-size:.9rem; font-weight:600; color:#1a1a1a; line-height:1.35; transition:color var(--dws-speed); font-family:var(--et-global-body-font-family,inherit); }
.dws-card:hover .dws-card__title { color:var(--dws-primary); }
.dws-card__meta  { font-size:.75rem; color:#bbb; letter-spacing:.02em; font-family:var(--et-global-body-font-family,inherit); }
.dws-card__desc  { font-size:.8rem; color:#777; line-height:1.5; }
.dws-card__rating { display:flex; align-items:center; gap:2px; }
.dws-star { color:#e0e0e0; font-size:.85rem; }
.dws-star--on { color:#f5a623; }
.dws-rating-val { font-size:.72rem; color:#bbb; margin-left:4px; }
.dws-card__price { font-size:1rem; font-weight:700; font-family:var(--et-global-body-font-family,inherit); }
.dws-card__price .woocommerce-Price-amount { color:var(--dws-primary); }
.dws-card__price del { color:#ccc; font-weight:400; font-size:.85em; margin-right:3px; }
.dws-card__actions { display:flex; gap:8px; margin-top:auto; padding-top:10px; }
.dws-btn, .dws-card .button { flex:1; text-align:center; padding:9px 12px; border:none !important; border-radius:8px !important; font-size:.79rem; font-weight:700; cursor:pointer; transition:background var(--dws-speed),transform var(--dws-speed) !important; font-family:var(--et-global-body-font-family,inherit) !important; }
.dws-btn--primary, .dws-card .button { background:var(--dws-btn) !important; color:var(--dws-btn-text) !important; }
.dws-btn--primary:hover, .dws-card .button:hover { background:var(--dws-secondary) !important; color:#fff !important; transform:translateY(-2px) !important; }
.dws-btn--ghost { flex:0 0 auto; padding:9px 14px; background:transparent !important; color:var(--dws-primary) !important; border:1.5px solid var(--dws-primary) !important; }
.dws-btn--ghost:hover { background:var(--dws-primary) !important; color:#fff !important; }

/* ── CLEAN ── */
.dws-card--clean { background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.07),0 1px 3px rgba(0,0,0,.05); transition:transform var(--dws-speed),box-shadow var(--dws-speed); }
.dws-card--clean:hover { transform:translateY(-5px); box-shadow:0 12px 40px rgba(0,0,0,.13),0 4px 12px rgba(0,0,0,.07); }
.dws-cats .dws-card--clean .dws-card__img-wrap  { aspect-ratio:4/3; }
.dws-prods .dws-card--clean .dws-card__img-wrap { aspect-ratio:1/1; }

/* ── PORTRAIT ── */
.dws-card--portrait { background:#222; box-shadow:0 2px 10px rgba(0,0,0,.1); transition:transform var(--dws-speed),box-shadow var(--dws-speed); }
.dws-card--portrait:hover { transform:translateY(-4px); box-shadow:0 10px 32px rgba(0,0,0,.18); }
.dws-card--portrait .dws-card__img-wrap { aspect-ratio:3/4; border-radius:var(--dws-radius); flex:1; }
.dws-card--portrait .dws-card__img-wrap::after { content:''; position:absolute; inset:0; border-radius:var(--dws-radius); background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.18) 45%,transparent 68%); }
.dws-card--portrait .dws-card__body { position:absolute; bottom:0; left:0; right:0; padding:18px 16px 18px; background:none; border-radius:0 0 var(--dws-radius) var(--dws-radius); z-index:2; }
.dws-card--portrait .dws-card__title { color:#fff; font-size:.95rem; text-shadow:0 1px 4px rgba(0,0,0,.3); }
.dws-card--portrait:hover .dws-card__title { color:#fff; }
.dws-card--portrait .dws-card__meta { color:rgba(255,255,255,.6); }
.dws-card__reveal { max-height:0; overflow:hidden; transition:max-height .38s ease,opacity .3s ease; opacity:0; }
.dws-card--portrait:hover .dws-card__reveal { max-height:90px; opacity:1; }
.dws-card--portrait .dws-card__price { color:#fff; margin:6px 0 8px; font-size:.92rem; }
.dws-card--portrait .dws-card__price .woocommerce-Price-amount { color:#fff; }
.dws-card--portrait .dws-btn--primary, .dws-card--portrait .button { background:#fff !important; color:#1a1a1a !important; display:block; width:100%; }
.dws-card--portrait .dws-btn--primary:hover, .dws-card--portrait .button:hover { background:var(--dws-primary) !important; color:#fff !important; }

/* ── MINIMAL ── */
.dws-card--minimal { background:transparent; box-shadow:none; align-items:center; text-align:center; transition:transform var(--dws-speed); }
.dws-card--minimal:hover { transform:translateY(-3px); }
.dws-cats  .dws-card--minimal .dws-card__img-wrap  { width:75%; aspect-ratio:1/1; border-radius:50%; border:3px solid #ececec; transition:border-color var(--dws-speed),box-shadow var(--dws-speed); }
.dws-cats  .dws-card--minimal:hover .dws-card__img-wrap { border-color:var(--dws-primary); box-shadow:0 0 0 5px rgba(123,47,247,.10); }
.dws-prods .dws-card--minimal .dws-card__img-wrap  { width:100%; aspect-ratio:1/1; border-radius:14px; box-shadow:0 2px 10px rgba(0,0,0,.07); transition:box-shadow var(--dws-speed); }
.dws-prods .dws-card--minimal:hover .dws-card__img-wrap { box-shadow:0 6px 24px rgba(0,0,0,.10); }
.dws-card--minimal .dws-card__body { align-items:center; padding:10px 6px 6px; }
.dws-card--minimal .dws-card__title { font-size:.82rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#1a1a1a; }

/* ── EDITORIAL ── */
.dws-card--editorial { flex-direction:row; background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.07),0 1px 3px rgba(0,0,0,.05); border-radius:var(--dws-radius); overflow:hidden; transition:transform var(--dws-speed),box-shadow var(--dws-speed); }
.dws-card--editorial:hover { transform:translateY(-4px); box-shadow:0 8px 28px rgba(0,0,0,.10); }
.dws-card--editorial .dws-card__img-wrap { width:42%; flex-shrink:0; border-radius:0; min-height:150px; }
.dws-card--editorial .dws-card__img-wrap::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--dws-primary); z-index:2; opacity:0; transition:opacity var(--dws-speed); }
.dws-card--editorial:hover .dws-card__img-wrap::before { opacity:1; }
.dws-card--editorial .dws-card__body { border-radius:0; justify-content:center; }
.dws-card--editorial .dws-card__title { font-size:.88rem; }

/* ════════════════════════════════════════════════════════════
   VARIABLES DE INSTANCIA
   Cada shortcode puede sobreescribir estos valores
   sin afectar a otros shortcodes en la misma página.
   ════════════════════════════════════════════════════════════ */

/* Defaults de las variables de instancia — heredan los globales */
.dws-wrap {
    --dws-i-card-bg:      #ffffff;
    --dws-i-card-radius:  var(--dws-radius);
    --dws-i-card-shadow:  0 2px 10px rgba(0,0,0,.07), 0 1px 3px rgba(0,0,0,.05);
    --dws-i-card-padding: 14px;
    --dws-i-img-ratio:    inherit; /* se sobreescribe por estilo */
    --dws-i-title-size:   0.9rem;
    --dws-i-title-color:  #1a1a1a;
    --dws-i-title-weight: 600;
    --dws-i-title-align:  left;
    --dws-i-price-size:   1rem;
    --dws-i-price-color:  var(--dws-primary);
    --dws-i-price-align:  left;
    --dws-i-btn-bg:       var(--dws-btn);
    --dws-i-btn-color:    var(--dws-btn-text);
    --dws-i-btn-size:     0.79rem;
    --dws-i-btn-radius:   8px;
}

/* Aplicar variables de instancia a los elementos */
.dws-card--clean,
.dws-card--editorial {
    background:    var(--dws-i-card-bg) !important;
    border-radius: var(--dws-i-card-radius) !important;
    box-shadow:    var(--dws-i-card-shadow) !important;
}

.dws-card__body {
    padding: var(--dws-i-card-padding) !important;
}

.dws-card__title {
    font-size:   var(--dws-i-title-size) !important;
    color:       var(--dws-i-title-color) !important;
    font-weight: var(--dws-i-title-weight) !important;
    text-align:  var(--dws-i-title-align) !important;
}

.dws-card__price {
    font-size:  var(--dws-i-price-size) !important;
    text-align: var(--dws-i-price-align) !important;
}
.dws-card__price .woocommerce-Price-amount {
    color: var(--dws-i-price-color) !important;
}

.dws-btn--primary,
.dws-card .button {
    background:    var(--dws-i-btn-bg) !important;
    color:         var(--dws-i-btn-color) !important;
    font-size:     var(--dws-i-btn-size) !important;
    border-radius: var(--dws-i-btn-radius) !important;
}

/* Imagen: proporción por instancia */
.dws-card--clean .dws-card__img-wrap,
.dws-card--minimal .dws-card__img-wrap,
.dws-card--editorial .dws-card__img-wrap {
    aspect-ratio: var(--dws-i-img-ratio, inherit);
}

/* Sin zoom */
.dws-no-zoom .dws-card__img { transition: none !important; }
.dws-no-zoom:hover .dws-card__img { transform: none !important; }
