/* TIENDAS_PROMO_MEDIA_V4 — scoped editor and public banner */
.pm-banner{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:center;padding:clamp(20px,4vw,48px);width:100%;box-sizing:border-box}
.pm-banner.pm-no-images{grid-template-columns:1fr}
.pm-banner .pm-backdrop{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;z-index:-2}
.pm-banner .pm-shade{position:absolute;inset:0;background:#000;z-index:-1;pointer-events:none}
.pm-banner .pm-copy{min-width:0;color:inherit;font-family:inherit}
.pm-banner .pm-copy h2{margin:16px 0;font-size:clamp(28px,4vw,54px);line-height:1.08;overflow-wrap:anywhere;color:inherit!important;font-family:inherit!important}
.pm-banner .pm-copy p{color:inherit!important;font-family:inherit!important;line-height:1.6;white-space:pre-line}
.pm-banner .pm-eyebrow{display:inline-block;border:1px solid currentColor;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:700;color:inherit}
.pm-banner .pm-cta{display:inline-flex;margin-top:16px;padding:13px 22px;text-decoration:none;font-weight:700;font-family:inherit}
.pm-banner .pm-media{min-width:0;text-align:center}
.pm-banner .pm-frame{position:relative;display:inline-block;vertical-align:middle;max-width:100%;overflow:hidden;background:transparent;line-height:0}
.pm-banner .pm-slide{display:block;width:auto;height:auto;max-width:100%;max-height:560px;margin:0;object-fit:contain}
.pm-banner [hidden]{display:none!important}
.pm-banner .pm-media[data-fit=cover] .pm-frame{display:block;width:100%;aspect-ratio:16/10}
.pm-banner .pm-media[data-fit=cover] .pm-slide{width:100%;height:100%;max-height:none;object-fit:cover}
.pm-banner .pm-controls{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:12px;color:inherit}
.pm-banner .pm-controls button{border:1px solid currentColor;color:inherit;background:transparent;border-radius:8px;padding:7px 12px;min-height:36px;cursor:pointer;font:inherit}
.pm-banner button:focus-visible,.pm-banner a:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.pm-tile-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.pm-tile-layer canvas{position:absolute;display:block;will-change:transform,opacity}
.pm-editor{border-top:1px solid #cbd5e1;padding-top:18px}
.pm-editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pm-editor-grid label,.pm-gallery-editor label{display:flex;flex-direction:column;gap:6px;font-size:13px}
.pm-gallery-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.pm-gallery-editor fieldset{min-width:0;border:1px solid #cbd5e1;border-radius:10px;padding:12px;display:grid;gap:10px}
.pm-slot-preview{height:130px;background:#f1f5f9;border-radius:8px;overflow:hidden}
.pm-slot-preview img{height:100%;width:100%;object-fit:contain}
.pm-editor input[type=file]{max-width:100%;font-size:12px}
.pm-editor-thumb{max-width:160px;max-height:100px;object-fit:contain}
@media(max-width:720px){.pm-banner{grid-template-columns:1fr;gap:24px}.pm-banner .pm-slide{max-height:440px}.pm-editor-grid,.pm-gallery-editor{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.pm-editor-grid,.pm-gallery-editor{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.pm-banner *{animation:none!important;transition:none!important}}

/* TIENDAS_PROMO_MEDIA_V5: layers belong exclusively to the promotional banner. */
.pm-banner .pm-backdrop{z-index:0;pointer-events:none}
.pm-banner .pm-shade{z-index:2;pointer-events:none}
.pm-banner .pm-copy{position:relative;z-index:3}
.pm-banner .pm-media{position:relative;z-index:1}
.pm-banner .pm-controls{position:relative;z-index:4}
.pm-banner.pm-layout-background{display:grid;grid-template-columns:1fr;min-height:320px;aspect-ratio:var(--pm-ratio,2.6);padding-bottom:80px}
.pm-banner.pm-layout-background .pm-media{position:absolute;inset:0;z-index:1}
.pm-banner.pm-layout-background .pm-frame{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;aspect-ratio:auto!important;border-radius:0!important}
.pm-banner.pm-layout-background .pm-slide{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
.pm-banner.pm-layout-background .pm-media[data-fit=cover] .pm-slide{object-fit:cover}
.pm-banner.pm-layout-background .pm-controls{position:absolute;bottom:16px;left:0;right:0;z-index:4;margin:0}
.pm-banner.pm-layout-background .pm-copy{width:min(100%,680px);align-self:center}
.pm-banner.pm-align-center .pm-copy{text-align:center;justify-self:center}
.pm-banner.pm-align-right .pm-copy{text-align:right;justify-self:end}
.pm-banner.pm-align-left .pm-copy{text-align:left;justify-self:start}
.pm-banner.pm-layout-split .pm-shade{z-index:0}
.pm-banner.pm-layout-split .pm-media{z-index:1}
.pm-banner.pm-layout-split .pm-copy{z-index:1}
.pm-banner.pm-layout-background .pm-controls{pointer-events:auto}
.pm-banner.pm-layout-background .pm-media{pointer-events:none}
.pm-banner .pm-controls button{background:rgba(0,0,0,.6);color:white;border-color:rgba(255,255,255,.65)}
.pm-banner .pm-controls span{background:rgba(0,0,0,.6);color:white;padding:6px 10px;border-radius:8px}
@media(max-width:720px){.pm-banner.pm-layout-background{min-height:300px;aspect-ratio:var(--pm-ratio,1.1)}.pm-banner.pm-layout-background .pm-copy h2{font-size:clamp(25px,7vw,40px)}.pm-banner.pm-layout-split .pm-frame{max-width:100%}}

/*
|--------------------------------------------------------------------------
| TIENDAS_PROMO_LAYOUT_CONTROLS_V8
|--------------------------------------------------------------------------
*/

.pm-banner{
    box-sizing:border-box !important;
    width:calc(100% - 56px) !important;
    max-width:var(--pm-max-width,1292px) !important;
    margin:18px auto !important;
}

.pm-banner.pm-layout-background{
    display:grid !important;
    grid-template-columns:1fr !important;
    height:var(--pm-height-desktop,520px) !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:auto !important;
    padding:0 !important;
}

.pm-banner.pm-layout-background .pm-media,
.pm-banner.pm-layout-background .pm-frame,
.pm-banner.pm-layout-background .pm-slide,
.pm-banner.pm-layout-background .pm-backdrop,
.pm-banner.pm-layout-background .pm-shade{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
}

.pm-banner.pm-layout-background .pm-slide{
    display:block !important;
    max-width:none !important;
    max-height:none !important;
    object-position:center !important;
}

.pm-banner.pm-layout-background
.pm-media[data-fit="cover"]
.pm-slide{
    object-fit:cover !important;
}

.pm-banner.pm-layout-background
.pm-media[data-fit="natural"]
.pm-slide{
    object-fit:contain !important;
}

.pm-banner .pm-copy{
    box-sizing:border-box !important;
    position:relative !important;
    z-index:3 !important;
    width:min(var(--pm-copy-width,52%),680px) !important;
    max-height:calc(100% - 32px) !important;
    padding:var(--pm-inner-padding,48px) !important;
    overflow:auto !important;
    scrollbar-width:thin;
}

.pm-banner.pm-valign-top .pm-copy{
    align-self:start !important;
}

.pm-banner.pm-valign-center .pm-copy{
    align-self:center !important;
}

.pm-banner.pm-valign-bottom .pm-copy{
    align-self:end !important;
}

.pm-banner .pm-copy h2{
    margin:10px 0 !important;
    font-size:clamp(
        28px,
        3.6vw,
        var(--pm-title-size,54px)
    ) !important;
    line-height:1.04 !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
}

.pm-banner .pm-copy p{
    margin:10px 0 0 !important;
    font-size:clamp(15px,1.35vw,19px) !important;
    line-height:1.45 !important;
}

.pm-banner .pm-cta{
    box-sizing:border-box !important;
    position:relative !important;
    z-index:7 !important;
    margin-top:18px !important;
    margin-bottom:8px !important;
    flex-shrink:0 !important;
}

.pm-banner.pm-layout-background .pm-controls{
    position:absolute !important;
    z-index:6 !important;
    bottom:14px !important;
    left:var(--pm-inner-padding,48px) !important;
    right:var(--pm-inner-padding,48px) !important;
    margin:0 !important;
    pointer-events:auto !important;
}

.pm-banner.pm-controls-left .pm-controls{
    justify-content:flex-start !important;
}

.pm-banner.pm-controls-center .pm-controls{
    justify-content:center !important;
}

.pm-banner.pm-controls-right .pm-controls{
    justify-content:flex-end !important;
}

@media (max-width:720px){
    .pm-banner{
        width:calc(100% - 24px) !important;
        margin:12px auto !important;
    }

    .pm-banner.pm-layout-background{
        height:var(--pm-height-mobile,520px) !important;
    }

    .pm-banner .pm-copy{
        width:100% !important;
        max-width:100% !important;
        max-height:calc(100% - 72px) !important;
        padding:
            max(
                20px,
                calc(var(--pm-inner-padding,48px) * .6)
            )
            !important;
    }

    .pm-banner .pm-copy h2{
        font-size:clamp(
            27px,
            8vw,
            var(--pm-title-size,54px)
        ) !important;
    }

    .pm-banner.pm-layout-background .pm-controls{
        left:20px !important;
        right:20px !important;
    }
}
/*
|--------------------------------------------------------------------------
| TIENDAS_PROMO_SPLIT_NATURAL_V9
|--------------------------------------------------------------------------
| Composición independiente para imagen lateral.
*/

.pm-banner.pm-layout-split{
    display:grid !important;
    grid-template-columns:
        minmax(0,var(--pm-copy-width,52%))
        minmax(0,1fr)
        !important;
    align-items:center !important;
    gap:clamp(28px,4vw,64px) !important;
    height:var(--pm-height-desktop,520px) !important;
    min-height:0 !important;
    max-height:none !important;
    padding:var(--pm-inner-padding,48px) !important;
    overflow:hidden !important;
}

/*
 * Texto limpio, sin barras de desplazamiento.
 */
.pm-banner.pm-layout-split .pm-copy{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:620px !important;
    max-height:none !important;
    padding:0 !important;
    overflow:visible !important;
    align-self:center !important;
}

.pm-banner.pm-layout-split .pm-copy h2{
    margin:12px 0 !important;
    font-size:clamp(
        28px,
        3.15vw,
        var(--pm-title-size,54px)
    ) !important;
    line-height:1.04 !important;
    overflow-wrap:break-word !important;
    word-break:normal !important;
}

.pm-banner.pm-layout-split .pm-copy p{
    margin:10px 0 0 !important;
    max-width:56ch !important;
    font-size:clamp(15px,1.25vw,19px) !important;
    line-height:1.45 !important;
}

.pm-banner.pm-layout-split .pm-cta{
    display:inline-flex !important;
    width:auto !important;
    margin-top:18px !important;
    margin-bottom:0 !important;
}

/*
 * Marco natural de la imagen lateral.
 */
.pm-banner.pm-layout-split .pm-media{
    box-sizing:border-box !important;
    position:relative !important;
    z-index:3 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    overflow:visible !important;
}

.pm-banner.pm-layout-split .pm-frame{
    box-sizing:border-box !important;
    position:relative !important;
    display:block !important;
    width:100% !important;
    height:min(100%,430px) !important;
    max-width:100% !important;
    max-height:430px !important;
    aspect-ratio:auto !important;
    overflow:hidden !important;
    background:rgba(255,255,255,.10) !important;
    border:1px solid rgba(255,255,255,.20) !important;
    box-shadow:
        0 18px 45px rgba(15,23,42,.20)
        !important;
    backdrop-filter:blur(2px);
}

/*
 * Todas las imágenes comparten exactamente el mismo marco.
 */
.pm-banner.pm-layout-split .pm-slide{
    position:absolute !important;
    inset:0 !important;
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    object-fit:contain !important;
    object-position:center !important;
}

.pm-banner.pm-layout-split .pm-slide[hidden]{
    display:none !important;
}

/*
 * Controles superpuestos dentro del marco lateral.
 */
.pm-banner.pm-layout-split .pm-controls{
    position:absolute !important;
    z-index:8 !important;
    left:16px !important;
    right:16px !important;
    bottom:16px !important;
    display:flex !important;
    margin:0 !important;
    pointer-events:auto !important;
}

.pm-banner.pm-layout-split.pm-controls-left .pm-controls{
    justify-content:flex-start !important;
}

.pm-banner.pm-layout-split.pm-controls-center .pm-controls{
    justify-content:center !important;
}

.pm-banner.pm-layout-split.pm-controls-right .pm-controls{
    justify-content:flex-end !important;
}

/*
 * La alineación vertical sigue respetando el editor.
 */
.pm-banner.pm-layout-split.pm-valign-top .pm-copy{
    align-self:start !important;
}

.pm-banner.pm-layout-split.pm-valign-center .pm-copy{
    align-self:center !important;
}

.pm-banner.pm-layout-split.pm-valign-bottom .pm-copy{
    align-self:end !important;
}

@media (max-width:900px){
    .pm-banner.pm-layout-split{
        grid-template-columns:minmax(0,44%) minmax(0,56%)
            !important;
        gap:24px !important;
        padding:
            max(
                24px,
                calc(var(--pm-inner-padding,48px) * .7)
            )
            !important;
    }

    .pm-banner.pm-layout-split .pm-copy h2{
        font-size:clamp(
            27px,
            4vw,
            var(--pm-title-size,54px)
        ) !important;
    }
}

@media (max-width:720px){
    .pm-banner.pm-layout-split{
        grid-template-columns:1fr !important;
        grid-template-rows:auto minmax(180px,1fr) !important;
        gap:20px !important;
        height:var(--pm-height-mobile,520px) !important;
        padding:22px !important;
    }

    .pm-banner.pm-layout-split .pm-copy{
        width:100% !important;
        max-width:none !important;
        text-align:left !important;
    }

    .pm-banner.pm-layout-split .pm-copy h2{
        font-size:clamp(
            26px,
            8vw,
            var(--pm-title-size,54px)
        ) !important;
    }

    .pm-banner.pm-layout-split .pm-media{
        min-height:180px !important;
    }

    .pm-banner.pm-layout-split .pm-frame{
        height:100% !important;
        max-height:none !important;
    }
}

/*
|--------------------------------------------------------------------------
| TIENDAS_PROMO_EDITOR_LABELS_V10
|--------------------------------------------------------------------------
| Colores propios del formulario. No afecta el banner público.
*/

.pm-editor{
    color:#0f172a !important;
}

.pm-editor-grid label,
.pm-gallery-editor label{
    color:#1e293b !important;
    font-weight:700 !important;
    line-height:1.35 !important;
}

.pm-editor-grid label > input,
.pm-editor-grid label > select,
.pm-editor-grid label > textarea,
.pm-gallery-editor label > input,
.pm-gallery-editor label > select{
    margin-top:2px !important;
    color:#0f172a !important;
    background:#ffffff !important;
    border:1px solid #cbd5e1 !important;
    font-weight:500 !important;
}

.pm-editor-grid input::placeholder,
.pm-gallery-editor input::placeholder,
.pm-editor-grid textarea::placeholder{
    color:#64748b !important;
    opacity:1 !important;
}

.pm-editor-grid select option,
.pm-gallery-editor select option{
    color:#0f172a !important;
    background:#ffffff !important;
}

.pm-editor-grid input[type="checkbox"],
.pm-gallery-editor input[type="checkbox"]{
    width:auto !important;
    margin:0 7px 0 0 !important;
    accent-color:#2563eb;
}

.pm-editor-grid label:has(input[type="checkbox"]),
.pm-gallery-editor label:has(input[type="checkbox"]){
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    min-height:38px !important;
    padding:8px 10px !important;
    color:#1e293b !important;
    background:#f8fafc !important;
    border:1px solid #cbd5e1 !important;
    border-radius:8px !important;
}

.pm-editor .sc-note,
.pm-editor small{
    color:#64748b !important;
}

.pm-editor fieldset legend{
    color:#0f172a !important;
    font-weight:800 !important;
}

.pm-editor-grid input:focus,
.pm-editor-grid select:focus,
.pm-editor-grid textarea:focus,
.pm-gallery-editor input:focus,
.pm-gallery-editor select:focus{
    border-color:#2563eb !important;
    outline:3px solid rgba(37,99,235,.14) !important;
    outline-offset:1px !important;
}


/*
|--------------------------------------------------------------------------
| TIENDAS_PROMO_SLIDER_CONTROLS_V11
|--------------------------------------------------------------------------
*/

.pm-banner.pm-layout-background .pm-media{
    pointer-events:auto !important;
}

.pm-banner.pm-layout-background .pm-frame{
    pointer-events:none !important;
}

.pm-banner .pm-controls{
    pointer-events:auto !important;
}

.pm-banner .pm-controls button{
    pointer-events:auto !important;
    position:relative !important;
    z-index:10 !important;
    touch-action:manipulation;
}

.pm-banner .pm-controls button:disabled{
    opacity:.45;
    cursor:not-allowed;
}