*{box-sizing:border-box}html,body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:#111;background:#e9eef1}.tools{position:sticky;top:0;z-index:50;display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;padding:10px;background:#fffffff2;backdrop-filter:blur(18px);border-bottom:1px solid #d8e0e5}.tool-group{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.tool-group b{font-size:12px;color:#526575}.tool-group a,.tools button{padding:9px 12px;border-radius:999px;text-decoration:none;border:1px solid #d5dde3;background:#fff;color:#17202a;font-weight:850;font-size:12px;box-shadow:0 5px 16px rgba(0,0,0,.05)}.tool-group a.active{background:#111;color:#fff;border-color:#111}.tools button{border:0;background:#111;color:#fff}.template-tool{max-width:860px}.sheet{position:relative;margin:12px auto;background:#fff;overflow:hidden;box-shadow:0 25px 70px rgba(23,33,43,.18)}.print-piece{position:absolute;overflow:hidden;background:var(--piece-bg,#fff);display:grid;place-items:center}.poster-live{position:relative;width:100%;height:100%;overflow:hidden;container-type:inline-size;background:var(--piece-bg,#fff)}.poster-art{position:absolute;inset:0;background-image:var(--poster-img);background-repeat:no-repeat;background-position:center;background-size:100% 100%;z-index:1}

/* v429: el nombre vive en una zona integrada y limpia. Se cubre el placeholder del arte con una superficie editorial suave, no con texto encimado. */
.poster-name-zone{position:absolute;z-index:4;left:var(--name-left);top:var(--name-top);width:var(--name-width);height:var(--name-height);display:grid;place-items:center;overflow:visible;isolation:isolate}
.poster-name-zone::before{content:"";position:absolute;inset:-2.6% -2.2%;z-index:0;background-image:var(--name-pattern),var(--name-cover);background-repeat:no-repeat,no-repeat;background-size:cover,cover;clip-path:var(--name-clip);box-shadow:0 .34cqw 1.15cqw rgba(0,0,0,.06);border:.10cqw solid color-mix(in srgb,var(--name-border) 46%,transparent);opacity:.995}
.poster-name-zone::after{content:"";position:absolute;inset:3.8% 4.8%;z-index:1;clip-path:var(--name-clip);border:.08cqw solid rgba(255,255,255,.28);mix-blend-mode:soft-light;opacity:.9}
.poster-live-name{position:relative;z-index:2;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:.7cqw 2cqw;text-align:center;background:none!important;mix-blend-mode:normal!important;filter:drop-shadow(0 .08em .18em rgba(0,0,0,.16))}
.poster-live-name span{display:block;width:100%;font-family:var(--name-font);font-size:var(--name-size);line-height:.9;font-weight:950;letter-spacing:-.045em;text-transform:uppercase;color:var(--name-color);text-shadow:var(--name-shadow);text-wrap:balance;overflow-wrap:anywhere;background:none!important;backdrop-filter:none!important}
.poster-live-slogan{position:absolute;z-index:5;left:var(--slogan-left);top:var(--slogan-top);width:var(--slogan-width);height:var(--slogan-height);display:flex;align-items:center;justify-content:center;padding:.35cqw 1.4cqw;background:var(--slogan-cover);border-radius:var(--slogan-radius);text-align:center;overflow:hidden}.poster-live-slogan span{display:block;max-width:100%;font-size:var(--slogan-size);line-height:1.02;font-weight:950;letter-spacing:.065em;text-transform:uppercase;color:var(--slogan-color);white-space:normal;text-wrap:balance;overflow-wrap:anywhere}
.poster-live-qr{position:absolute;z-index:6;left:var(--qr-left);top:var(--qr-top);width:var(--qr-width);aspect-ratio:1;display:grid;place-items:center;background:#fff;border:0;border-radius:var(--qr-radius);padding:.25cqw;overflow:hidden}.poster-live-qr svg{display:block;width:100%;height:100%}

/* Pop Lucha conserva su globo editorial, sin difuminado tipo parche. */


.poster-live-logo{position:absolute;z-index:8;right:7.2%;top:5.8%;width:10.8%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.93);border:.16cqw solid rgba(0,0,0,.16);box-shadow:0 .35cqw 1.1cqw rgba(0,0,0,.18);overflow:hidden;padding:.55cqw}.poster-live-logo img{width:100%;height:100%;object-fit:contain}.poster-no-nfc{position:absolute;z-index:9;left:18%;top:77%;width:64%;height:6.6%;display:grid;place-items:center;background:rgba(255,255,255,.92);border:.12cqw solid rgba(0,0,0,.18);border-radius:1.2cqw;color:#222;font-size:2.8cqw;font-weight:950;letter-spacing:.1em}.poster-chatbot-chip,.poster-wa-chip{display:none}.poster-rights{position:absolute;z-index:9;left:18%;right:18%;bottom:.72%;text-align:center;font-size:.66cqw;font-weight:760;letter-spacing:.02em;color:rgba(20,20,20,.76);text-shadow:0 .08cqw .16cqw rgba(255,255,255,.72)}.poster-target{display:none}

/* Hoja carta / media / 1/4 */
.format-carta .sheet{width:215.9mm;height:279.4mm}.format-carta .print-piece{left:0;top:0;width:215.9mm;height:279.4mm}.format-media .sheet{width:279.4mm;height:215.9mm}.format-media .print-piece{width:139.7mm;height:215.9mm;top:0}.format-media .piece-1{left:0}.format-media .piece-2{left:139.7mm}.format-cuarto .sheet{width:215.9mm;height:279.4mm}.format-cuarto .print-piece{width:107.95mm;height:139.7mm}.format-cuarto .piece-1{left:0;top:0}.format-cuarto .piece-2{left:107.95mm;top:0}.format-cuarto .piece-3{left:0;top:139.7mm}.format-cuarto .piece-4{left:107.95mm;top:139.7mm}.format-display .sheet{width:215.9mm;height:279.4mm}.format-display .print-piece{width:107.95mm;height:279.4mm;top:0}.format-display .piece-1{left:0}.format-display .piece-2{left:107.95mm}.format-media .poster-live-name span{font-size:calc(var(--name-size) * .92)}.format-media .poster-live-slogan span{font-size:calc(var(--slogan-size) * .92)}.format-display .poster-live{height:139.7mm;width:107.95mm;align-self:start}

.mobile-preview-frame{position:relative;margin:12px auto;background:#fff;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.12)}@media(max-width:760px){.tools{position:relative}.sheet{width:100%!important;height:auto!important;min-height:0!important;background:transparent;box-shadow:none;overflow:visible}.mobile-preview-frame{width:calc(100% - 20px)}}@media print{html,body{background:#fff}.tools{display:none!important}.sheet{margin:0;box-shadow:none}.print-piece,.poster-art,.poster-name-zone,.poster-live-slogan,.poster-live-qr{-webkit-print-color-adjust:exact;print-color-adjust:exact}.poster-rights{text-shadow:none}}@page{size:auto;margin:0}
/* v429 · afinado de ajuste por longitud */
.poster-live-name.fit-md span{font-size:calc(var(--name-size)*.88)}
.poster-live-name.fit-sm span{font-size:calc(var(--name-size)*.76)}
.poster-live-name.fit-xs span{font-size:calc(var(--name-size)*.64);line-height:.94}
.poster-live-slogan.fit-md span{font-size:calc(var(--slogan-size)*.90)}
.poster-live-slogan.fit-sm span{font-size:calc(var(--slogan-size)*.78)}
.poster-live-slogan.fit-xs span{font-size:calc(var(--slogan-size)*.68);letter-spacing:.035em}

/* En móviles mantenemos la misma lógica sin parche duro. */
@media(max-width:760px){
  .poster-name-zone::before{inset:-2.2% -1.8%}
  .poster-name-zone::after{inset:4.2% 5.2%}
}

/* v429 · integración por identidad de plantilla */
.tplprint-tommy-signature .poster-name-zone::before{box-shadow:0 .42cqw 0 rgba(167,42,31,.10),0 .6cqw 1.8cqw rgba(92,43,20,.08)}
.tplprint-eventos-editorial .poster-name-zone::before{box-shadow:0 0 1.1cqw rgba(37,227,221,.18),inset 0 0 .9cqw rgba(255,47,156,.08)}
.tplprint-gastro-gourmet .poster-name-zone::before{box-shadow:0 .55cqw 1.6cqw rgba(0,0,0,.32),inset 0 0 1cqw rgba(201,148,67,.05)}
.tplprint-cafe-atelier .poster-name-zone::before{box-shadow:0 .35cqw 1.4cqw rgba(16,60,123,.09)}
.tplprint-corporativo-tech .poster-name-zone::before{box-shadow:0 .42cqw 1.5cqw rgba(101,48,23,.10)}
.tplprint-retail-pop .poster-name-zone::before{box-shadow:.28cqw .28cqw 0 rgba(6,57,68,.18),0 .7cqw 1.5cqw rgba(0,0,0,.12)}
.tplprint-minimal-luxe .poster-name-zone::before{box-shadow:0 .38cqw 1.4cqw rgba(90,32,46,.08)}
.tplprint-gastro-street .poster-name-zone::before{box-shadow:0 .38cqw 1.4cqw rgba(49,42,31,.08)}

/* v430 · Vintage limpio: arte base sin placeholder y nombre integrado sin placa */
.tplprint-tommy-signature .poster-name-zone{overflow:visible}
.tplprint-tommy-signature .poster-name-zone::before{content:"";display:block!important;position:absolute;inset:-18% -12%;background:radial-gradient(ellipse at center,rgba(255,242,214,.72) 0 52%,rgba(255,242,214,.34) 68%,rgba(255,242,214,0) 90%)!important;clip-path:none!important;box-shadow:none!important;border:0!important;opacity:1!important;filter:blur(.05cqw)}
.tplprint-tommy-signature .poster-name-zone::after{display:none!important}
.tplprint-tommy-signature .poster-live-name{padding:.2cqw .9cqw!important;filter:drop-shadow(0 .10cqw .12cqw rgba(92,43,20,.12))}
.tplprint-tommy-signature .poster-live-name span{letter-spacing:-.055em;line-height:.92}

/* v430 · bordes orgánicos en todas las plantillas */
.poster-name-zone::before{-webkit-mask-image:radial-gradient(ellipse 82% 86% at 50% 50%,#000 0 66%,rgba(0,0,0,.92) 76%,transparent 100%);mask-image:radial-gradient(ellipse 82% 86% at 50% 50%,#000 0 66%,rgba(0,0,0,.92) 76%,transparent 100%);box-shadow:none!important;border:0!important}
.poster-name-zone::after{display:none!important}
.tplprint-tommy-signature .poster-name-zone::before{-webkit-mask-image:radial-gradient(ellipse 78% 82% at 50% 50%,#000 0 55%,rgba(0,0,0,.82) 68%,transparent 100%);mask-image:radial-gradient(ellipse 78% 82% at 50% 50%,#000 0 55%,rgba(0,0,0,.82) 68%,transparent 100%)}


/* v570 · nombre, frase y QR integrados al arte; sin apariencia de etiqueta pegada */
.poster-name-zone{overflow:visible!important}
.poster-name-zone::before{
  inset:4% 2.5%!important;
  clip-path:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  border-radius:2.05cqw!important;
  border:.10cqw solid color-mix(in srgb,var(--name-border) 46%,transparent)!important;
  box-shadow:0 .42cqw 1.5cqw rgba(0,0,0,.10),inset 0 0 1cqw rgba(255,255,255,.08)!important;
  opacity:1!important;
  filter:none!important;
}
.poster-live-name{padding:.55cqw 1.35cqw!important;filter:none!important}
.poster-live-name span{line-height:.94!important;letter-spacing:-.04em!important;overflow-wrap:normal!important;word-break:normal!important;text-wrap:balance!important}
.poster-live-slogan{
  border:.09cqw solid color-mix(in srgb,var(--name-border) 34%,transparent)!important;
  box-shadow:0 .35cqw 1.05cqw rgba(0,0,0,.10),inset 0 1px 0 rgba(255,255,255,.12)!important;
  backdrop-filter:blur(.18cqw);
  -webkit-backdrop-filter:blur(.18cqw);
}
.poster-live-slogan span{line-height:1.06!important;letter-spacing:.055em!important;overflow-wrap:normal!important;word-break:normal!important}
.poster-live-qr{
  padding:.62cqw!important;
  border:.14cqw solid var(--qr-border)!important;
  border-radius:calc(var(--qr-radius) + .38cqw)!important;
  box-shadow:0 0 0 .34cqw color-mix(in srgb,var(--qr-border) 22%,transparent),0 .72cqw 1.9cqw rgba(0,0,0,.18)!important;
  background:rgba(255,255,255,.985)!important;
}
.poster-live-qr svg{border-radius:calc(var(--qr-radius) * .55)!important;overflow:hidden}

/* Vintage limpio: la imagen ya tiene un espacio en blanco real; no dibujar un parche. */
.tplprint-tommy-signature .poster-name-zone::before{
  inset:-4% -3%!important;
  background:radial-gradient(ellipse at center,rgba(255,244,220,.58) 0 48%,rgba(255,244,220,.24) 67%,transparent 86%)!important;
  border:0!important;
  border-radius:50%!important;
  box-shadow:none!important;
  opacity:1!important;
}
.tplprint-tommy-signature .poster-live-name{padding:.1cqw 1.4cqw!important}
.tplprint-tommy-signature .poster-live-name span{letter-spacing:-.045em!important;line-height:.9!important;text-shadow:.08cqw .10cqw 0 rgba(229,140,23,.55),0 .18cqw .35cqw rgba(92,43,20,.14)!important}
.tplprint-tommy-signature .poster-live-slogan{border:0!important;box-shadow:0 .22cqw .65cqw rgba(92,43,20,.08)!important;backdrop-filter:none!important}

/* Neón: placa deliberadamente integrada con el lenguaje del cartel. */
.tplprint-eventos-editorial .poster-name-zone::before{
  inset:5% 4%!important;
  background:linear-gradient(180deg,rgba(3,4,11,.998),rgba(8,7,18,.998))!important;
  border:.13cqw solid rgba(255,61,167,.68)!important;
  border-radius:1.75cqw!important;
  clip-path:polygon(2.5% 0,97.5% 0,100% 12%,100% 88%,97.5% 100%,2.5% 100%,0 88%,0 12%)!important;
  box-shadow:0 0 .75cqw rgba(255,47,156,.34),0 0 1.35cqw rgba(37,227,221,.18),inset 0 0 1.15cqw rgba(37,227,221,.06)!important;
}
.tplprint-eventos-editorial .poster-live-name span{letter-spacing:-.035em!important;text-shadow:0 0 .45cqw #ff2f9c,0 0 .9cqw rgba(37,227,221,.58)!important}
.tplprint-eventos-editorial .poster-live-slogan{border-color:rgba(255,72,171,.42)!important;box-shadow:0 0 .65cqw rgba(255,47,156,.16),inset 0 0 .65cqw rgba(37,227,221,.06)!important}
.tplprint-eventos-editorial .poster-live-qr{box-shadow:0 0 0 .32cqw rgba(37,227,221,.22),0 0 1.25cqw rgba(37,227,221,.30),0 .65cqw 1.8cqw rgba(0,0,0,.32)!important}

/* Obsidiana */
.tplprint-gastro-gourmet .poster-name-zone::before{background:linear-gradient(145deg,rgba(5,5,5,.998),rgba(17,14,10,.998))!important;border-color:rgba(228,189,114,.48)!important;box-shadow:0 .55cqw 1.5cqw rgba(0,0,0,.30),inset 0 0 .8cqw rgba(201,148,67,.06)!important}
/* Talavera */
.tplprint-cafe-atelier .poster-name-zone::before{background:linear-gradient(180deg,rgba(255,249,233,.998),rgba(255,243,218,.998))!important;border-color:rgba(16,60,123,.30)!important;box-shadow:0 .4cqw 1.2cqw rgba(16,60,123,.10)!important}
/* Desierto */
.tplprint-corporativo-tech .poster-name-zone::before{background:linear-gradient(180deg,rgba(246,226,188,.998),rgba(239,210,160,.998))!important;border-color:rgba(113,50,25,.28)!important;box-shadow:0 .4cqw 1.2cqw rgba(101,48,23,.11)!important}
/* Pop Lucha */
.tplprint-retail-pop .poster-name-zone::before{background:linear-gradient(180deg,rgba(255,245,216,.998),rgba(247,224,171,.998))!important;border:.14cqw solid rgba(255,209,41,.78)!important;box-shadow:.22cqw .22cqw 0 rgba(6,57,68,.17),0 .6cqw 1.4cqw rgba(0,0,0,.12)!important}
/* Festivo */
.tplprint-minimal-luxe .poster-name-zone::before{background:linear-gradient(180deg,rgba(255,249,232,.998),rgba(255,238,208,.998))!important;border-color:rgba(212,35,82,.25)!important;box-shadow:0 .4cqw 1.2cqw rgba(90,32,46,.08)!important}
/* Marfil */
.tplprint-gastro-street .poster-name-zone::before{background:linear-gradient(180deg,rgba(253,249,239,.998),rgba(248,239,220,.998))!important;border-color:rgba(189,139,55,.28)!important;box-shadow:0 .4cqw 1.2cqw rgba(49,42,31,.08)!important}

@media print{
  .poster-name-zone::before,.poster-live-slogan,.poster-live-qr{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
