/* V11.5 · Personalización por producto. CSS autónomo, sin servicios externos. */
.special-personalizer{background:#faf4e9;padding:15px 12px;border:1px solid #e8d7c5;border-radius:16px;margin:16px 0}.special-personalizer h3{font:700 23px Georgia,serif;color:#483228;margin:0 0 8px}.special-preview{height:295px;border-radius:15px;background:linear-gradient(148deg,#e4d8cb,#f6eddf 60%,#ded0bd);display:flex;align-items:center;justify-content:center;overflow:hidden;margin-top:10px}.sp-product{position:relative;display:flex;align-items:center;justify-content:center;width:70%;height:83%}.sp-art{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;overflow:hidden;background:#fff9ef;border:2px dashed #b89776;transform-origin:center;transition:transform .12s ease-out;box-shadow:0 9px 18px #321a0b19;aspect-ratio:var(--print-ratio,1);width:min(100%,220px);max-height:100%;padding:6px}.sp-art img{width:100%;max-height:82%;object-fit:contain;border-radius:3px}.sp-art img[hidden]{display:none}.sp-phrase{font-weight:650;text-align:center;overflow-wrap:anywhere;max-width:100%;line-height:1.16;color:#39271f;white-space:pre-wrap}.sp-surface-note{position:absolute;bottom:-6px;font-size:10px;color:#644c37;background:#fffbf4d9;border-radius:20px;padding:3px 8px}.sp-size{color:#715d4c;font-size:12px;margin:11px 0}.sp-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.sp-switch button{background:#fffbf5;color:#594338;border:1px solid #cdb99f;padding:10px;border-radius:11px;font-size:12px;font-weight:700}.sp-switch button.selected{background:#4e3327;color:white}.special-preview[data-kind="cylinder"] .sp-product{width:61%;height:80%}.special-preview[data-kind="cylinder"] .sp-art{width:100%;height:83%;aspect-ratio:var(--print-ratio,2.35);max-height:80%;background:linear-gradient(90deg,#e8e0d7,#fffaf4 18%,#fff 67%,#c8b9aa);border-radius:6px}.special-preview[data-kind="cylinder"].sp-curved .sp-product{width:43%}.special-preview[data-kind="cylinder"].sp-curved .sp-art{height:90%;width:100%;aspect-ratio:.79;border-radius:43%/8%;box-shadow:inset 20px 0 25px #0002,inset -17px 0 24px #0002,7px 15px 25px #0003;perspective:200px}.special-preview[data-kind="cylinder"].sp-curved .sp-art img{transform:perspective(250px) rotateY(-7deg);border-radius:14%}.special-preview[data-kind="small-pillow"] .sp-art{width:125px;height:124px;padding:22px;border:15px solid #e1d9d1;border-radius:14px;box-shadow:0 12px 15px #0002}.special-preview[data-kind="pillow"] .sp-art{width:210px;height:210px;padding:12px;border:30px solid #eae7e3;border-radius:7px}.special-preview[data-kind="phone"] .sp-art{width:138px;height:250px;aspect-ratio:.56;border-radius:22px;border:11px solid #242424;border-top-width:30px;background:#fffdf8;padding:7px}.special-preview[data-kind="phone"] .sp-art::before{content:"CÁMARA · ZONA NO IMPRIMIBLE";position:absolute;top:-20px;left:0;color:#fff;font-size:7px;line-height:1.15;z-index:3}.special-preview[data-kind="keychain"] .sp-art{width:150px;height:162px;border-radius:16px;border:9px solid #c7b4a2}.special-preview[data-kind="keychain"] .sp-art::before{content:'◯';position:absolute;top:-26px;left:50%;transform:translateX(-50%);font-size:20px}.special-preview[data-kind="book"] .sp-art{height:224px;width:170px;background:#39668a;border:9px solid #315774;border-radius:5px;box-shadow:7px 9px 0 #8d7183}.special-preview[data-kind="book"] .sp-phrase{color:white}.special-preview[data-kind="pen"] .sp-art{height:44px;width:260px;border:8px solid #fff;background:#fff;aspect-ratio:6;border-radius:24px}.special-preview[data-kind="pen"] .sp-phrase{font-size:10px!important}.special-preview[data-kind="cards"] .sp-art{width:232px;height:143px;border:8px solid #fff;background:#fff;border-radius:5px}.special-preview[data-kind="polaroid"] .sp-art{width:172px;height:230px;border:14px solid white;border-bottom-width:39px;aspect-ratio:.74}.special-preview[data-kind="flat"] .sp-art{width:206px;height:195px;border:6px solid #d5c1ad}.special-preview[data-kind="underwear"] .sp-art{width:200px;height:160px;border:16px solid #fff}.sp-area{margin:15px 0;border:1px solid #d2bd9e;border-radius:12px;padding:14px}.sp-area legend{color:#5e4231;font-weight:700}.sp-area small{color:#71685e}.special-personalizer input[type="range"]{width:100%;accent-color:#986e53}

/* V11.5.1: el tamaño de la plantilla cilíndrica es horizontal, NO cuadrado.
   La imagen ocupa el área total (recortada si es vertical). */
.special-preview[data-kind="cylinder"]:not(.sp-curved) .sp-product{width:94%;height:88%}
.special-preview[data-kind="cylinder"]:not(.sp-curved) .sp-art{
  width:min(100%,340px);height:auto;max-height:94%;min-height:0;
  aspect-ratio:var(--print-ratio,2.35);padding:0;display:flex;
  background:#fff8ee;border-radius:4px;overflow:hidden;
}
.special-preview[data-kind="cylinder"] .sp-art img:not([hidden]){
  position:absolute;inset:0;width:100%;height:100%;max-height:none;
  object-fit:cover;object-position:center;z-index:1;
}
.special-preview[data-kind="cylinder"] .sp-phrase{
  position:relative;z-index:2;padding:3px 6px;
  text-shadow:0 1px 2px #fff9,0 -1px 2px #fff9;
}
.special-preview[data-kind="cylinder"].sp-curved .sp-product{width:43%;height:85%}
.special-preview[data-kind="cylinder"].sp-curved .sp-art{
  width:100%;height:85%;max-height:95%;aspect-ratio:.78;
  border-radius:39%/8%;overflow:hidden;
}
.special-preview[data-kind="cylinder"].sp-curved .sp-art::after{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(90deg,#31221655 0%,transparent 26%,transparent 68%,#31221666 100%);
  border-radius:inherit;
}
.sp-file-tools{display:grid;grid-template-columns:1fr;gap:8px;margin:9px 0 0}
.sp-file-tools label{font-size:12px;font-weight:650;color:#6e5442}
.sp-file-tools select,.sp-file-tools input{width:100%}
