/* R8: imagen y contenido tienen espacio propio sin recortar los enlaces. */
.visual-shop .visual-banner-link{display:block;min-width:0}
.visual-shop :is(.visual-block-hero,.visual-block-banner)>.visual-block-copy a{pointer-events:auto;min-height:44px;white-space:normal;overflow-wrap:anywhere}
.visual-shop :is(.visual-block-hero,.visual-block-banner)>.visual-block-copy:empty{display:none}
.design-saved-notice{position:fixed;z-index:1000;bottom:24px;right:24px;max-width:min(440px,calc(100vw - 32px));box-sizing:border-box;display:grid;gap:8px;padding:18px 22px;background:#ecfdf5;color:#14532d;border:1px solid #86efac;border-radius:14px;box-shadow:0 8px 32px #0003;font:16px/1.5 system-ui}
.design-saved-notice button{justify-self:end;min-height:44px;padding:8px 16px;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit;cursor:pointer}
/* El contenido no compite con la altura 16:3 de la creatividad, en ningún ancho. */
 .visual-shop .visual-block:is(.visual-block-hero,.visual-block-banner){aspect-ratio:auto;height:auto;display:block;overflow:hidden;background:var(--panel);color:var(--text)}
 .visual-shop :is(.visual-block-hero,.visual-block-banner)>.visual-block-images{position:relative;inset:auto;aspect-ratio:16/3;height:auto;overflow:hidden}
 .visual-shop :is(.visual-block-hero,.visual-block-banner)>.visual-block-copy{position:relative;max-width:none;box-sizing:border-box;padding:16px;text-shadow:none}
 .visual-shop :is(.visual-block-hero,.visual-block-banner)>.visual-block-copy h2{font-size:clamp(20px,5vw,28px);margin:0 0 10px}
 .visual-shop :is(.visual-block-hero,.visual-block-banner)>.visual-block-copy p{margin:0 0 12px}
 .visual-shop :is(.visual-block-hero,.visual-block-banner)[data-overlay]:after{inset:0 0 auto;height:auto;aspect-ratio:16/3}
