/* Una única composición compartida por Gutenberg y el frontend. */
.plm-banner{position:relative;isolation:isolate;container-type:inline-size;overflow:hidden;background:var(--plm-bg,#fff);color:var(--plm-ink,#172331);font-family:inherit;box-sizing:border-box;width:100%}
.plm-banner *,.plm-banner *::before,.plm-banner *::after{box-sizing:border-box}
.plm-banner .plm-decorations{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.plm-banner .plm-deco{position:absolute;display:block;pointer-events:none;margin:0}
.plm-banner .plm-c1{top:-140px;right:6%;width:420px;height:420px;border-radius:50%;background:var(--plm-accent);opacity:calc(var(--plm-opacity,.18)*.4)}
.plm-banner .plm-c2{bottom:-90px;right:16%;width:260px;height:260px;border:34px solid var(--plm-accent);border-radius:50%;opacity:calc(var(--plm-opacity,.18)*.4)}
.plm-banner .plm-d1,.plm-banner .plm-d2{width:96px;height:130px;background-image:radial-gradient(var(--plm-accent) 2.2px,transparent 2.3px);background-size:20px 20px;opacity:var(--plm-opacity,.18)}
.plm-banner .plm-d1{top:22%;right:2.5%}.plm-banner .plm-d2{bottom:8%;right:9%;width:76px;height:90px}
.plm-banner .plm-b1,.plm-banner .plm-b2,.plm-banner .plm-b3,.plm-banner .plm-b4{transform:rotate(28deg);border-radius:40px;background:var(--plm-accent);opacity:var(--plm-opacity,.18)}
.plm-banner .plm-b1{left:-74px;bottom:-64px;width:74px;height:250px}.plm-banner .plm-b2{left:-26px;bottom:-104px;width:52px;height:210px}.plm-banner .plm-b3{left:-92px;top:26%;width:44px;height:120px}.plm-banner .plm-b4{left:-34px;top:14%;width:26px;height:74px}
.plm-banner .plm-inner{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:clamp(22px,3.4cqw,44px) clamp(24px,5cqw,72px) clamp(26px,3.6cqw,48px);padding-left:clamp(32px,5cqw,72px)}
.plm-banner .plm-logo{display:block;width:clamp(155px,28cqw,230px);height:auto;max-width:100%;margin:0 0 clamp(18px,2.6cqw,30px);object-fit:contain}
.plm-banner .plm-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:clamp(20px,4cqw,56px);margin:0}
.plm-banner .plm-col{min-width:0;text-align:left;display:flex;flex-direction:column;align-items:stretch;margin:0}
.plm-banner .plm-kicker{margin:0;font-size:clamp(20px,2.3cqw,29px);font-weight:700;line-height:1.2;color:var(--plm-ink);letter-spacing:-.01em;overflow-wrap:anywhere}
.plm-banner .plm-title{margin:6px 0 0;font-size:clamp(25px,3.1cqw,40px);font-weight:700;line-height:1.16;color:var(--plm-accent);letter-spacing:-.02em;text-wrap:pretty;overflow-wrap:anywhere}
.plm-banner .plm-lede{margin:clamp(12px,1.4cqw,18px) 0 0;max-width:34em;font-size:clamp(15px,1.25cqw,18px);font-weight:500;line-height:1.5;color:var(--plm-ink);text-wrap:pretty;white-space:pre-line;overflow-wrap:anywhere}
.plm-banner .plm-rule{width:100%;height:1px;background:var(--plm-accent);opacity:.18;margin:clamp(20px,2.4cqw,30px) 0 0}
.plm-banner .plm-stack{display:flex;flex-direction:column;align-self:flex-start;max-width:100%;margin:0}
.plm-banner .plm-icons{display:flex;flex-wrap:wrap;gap:clamp(10px,1.8cqw,24px);justify-content:center;margin:clamp(18px,2cqw,26px) 0 0}
.plm-banner .plm-ico{display:flex;flex-direction:column;align-items:center;gap:8px;width:80px;margin:0}
.plm-banner .plm-ico svg{stroke:var(--plm-accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.plm-banner .plm-ico span{font-size:12px;font-weight:600;line-height:1.25;color:var(--plm-ink);text-align:center;overflow-wrap:anywhere;max-width:100%}
.plm-banner .plm-cta{display:flex;justify-content:center;margin:clamp(20px,2.4cqw,30px) 0 0}
.plm-banner .plm-btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:0;cursor:pointer;font-family:inherit;text-decoration:none;background:var(--plm-accent);color:#fff;font-size:clamp(13px,1.05cqw,15px);font-weight:700;line-height:1.3;letter-spacing:.06em;text-transform:uppercase;padding:16px 24px;border-radius:999px;max-width:100%;text-align:center;overflow-wrap:anywhere}
.plm-banner .plm-btn:hover{filter:brightness(.92);color:#fff}.plm-banner .plm-btn:focus-visible{outline:3px solid var(--plm-ink);outline-offset:4px}.plm-banner .plm-btn[aria-disabled]{opacity:.55;cursor:default}
.plm-banner .plm-btn svg{stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.plm-banner .plm-thumb{min-width:0;display:flex;justify-content:center;margin:0}
.plm-banner .plm-image-frame{width:100%;max-width:330px;filter:drop-shadow(0 14px 20px #17233122)}
.plm-banner .plm-thumb img{display:block;width:100%;max-width:100%;height:auto;margin:0}
/* Variante compacta: conserva el contenido y el comportamiento de descarga, pero reduce la altura visual. */
.plm-banner.plm-density-compact .plm-inner{padding:clamp(18px,2.4cqw,30px) clamp(24px,5cqw,64px);padding-left:clamp(48px,5cqw,64px)}
.plm-banner.plm-density-compact .plm-logo{width:auto;height:clamp(34px,3.4cqw,42px);margin:0 0 clamp(12px,1.4cqw,18px)}
.plm-banner.plm-density-compact .plm-row{align-items:flex-start;gap:clamp(20px,3cqw,44px)}
.plm-banner.plm-density-compact .plm-kicker{font-size:clamp(18px,1.9cqw,24px)}
.plm-banner.plm-density-compact .plm-title{margin-top:4px;font-size:clamp(23px,2.7cqw,34px)}
.plm-banner.plm-density-compact .plm-lede{margin-top:clamp(8px,.9cqw,12px);max-width:40em;font-size:clamp(14px,1.15cqw,16px)}
.plm-banner.plm-density-compact .plm-rule{margin-top:clamp(14px,1.6cqw,20px)}
.plm-banner.plm-density-compact .plm-stack{flex-direction:row;flex-wrap:wrap;align-items:center;gap:clamp(14px,1.8cqw,26px);margin-top:clamp(14px,1.6cqw,20px)}
.plm-banner.plm-density-compact .plm-icons{gap:clamp(12px,1.6cqw,22px);margin:0}
.plm-banner.plm-density-compact .plm-ico{gap:6px;width:48px}
.plm-banner.plm-density-compact .plm-ico span{font-size:11px;line-height:1.2}
.plm-banner.plm-density-compact .plm-cta{margin:0}
.plm-banner.plm-density-compact .plm-btn{gap:8px;font-size:11px;padding:10px 14px}
.plm-banner.plm-density-compact .plm-thumb{flex:0 1 170px;min-width:130px}
.plm-banner.plm-density-compact .plm-image-frame{max-width:170px;filter:drop-shadow(0 14px 28px #17233138)}
@container(min-width:640px){.plm-banner.plm-density-compact .plm-row{grid-template-columns:minmax(0,1fr) minmax(130px,170px)}.plm-banner.plm-density-compact .plm-stack{gap:8px}.plm-banner.plm-density-compact .plm-icons{gap:8px}}

@container(max-width:580px){.plm-banner .plm-row{grid-template-columns:minmax(0,1fr)}.plm-banner .plm-thumb{margin-top:12px}.plm-banner .plm-image-frame{max-width:240px}.plm-banner .plm-stack{align-self:stretch}.plm-banner .plm-icons{justify-content:flex-start}.plm-banner .plm-cta{justify-content:flex-start}}
@container(max-width:580px){.plm-banner.plm-density-compact .plm-inner{padding:20px 24px}.plm-banner.plm-density-compact .plm-stack{align-self:stretch}.plm-banner.plm-density-compact .plm-thumb{margin-top:8px}.plm-banner.plm-density-compact .plm-image-frame{max-width:200px}}
/* El editor usa el mismo render PHP; los controles viven fuera de la composición. */
.plm-editor-preview{pointer-events:none}.plm-editor-help{font-size:13px;padding:12px;border:1px dashed #8c8f94}

.plm-banner .plm-text-only{grid-template-columns:minmax(0,1fr)}
.plm-banner .plm-logo-crop img{display:block;margin:0;border:0}
.plm-banner .plm-logo-crop{width:min(clamp(155px,28cqw,230px),calc(var(--plm-logo-ratio)*76px))}
