
.contract-float{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;gap:12px;padding:12px 18px 12px 12px;background:#BEDC49;color:#202421;border:1px solid #20242120;border-radius:22px;text-decoration:none;box-shadow:0 8px 28px #20242124;animation:cta-enter .45s ease-out both;transition:transform .18s,box-shadow .18s}
.contract-float img{width:42px;height:42px}.contract-float strong{display:block;font-size:17px;line-height:1.3}.contract-float small{display:block;font-size:12px;margin-top:3px}.contract-arrow{font-size:25px}.contract-float:hover{transform:translateY(-3px);box-shadow:0 12px 30px #20242130}.contract-float:focus-visible{outline:3px solid #202421;outline-offset:5px}body:has(dialog[open]) .contract-float,body:has(input:focus,textarea:focus,select:focus) .contract-float{visibility:hidden}footer{padding-bottom:130px!important}
@keyframes cta-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.contract-float{right:12px;bottom:max(12px,env(safe-area-inset-bottom));gap:8px;padding:9px 13px 9px 8px;border-radius:18px}.contract-float small,.contract-arrow{display:none}.contract-float strong{font-size:15px}.contract-float img{width:32px;height:32px}}
@media(prefers-reduced-motion:reduce){.contract-float{animation:none;transition:none}.contract-float:hover{transform:none}}
/* Variante de mayor presencia solicitada para revisión. */
.contract-float{background:#FF963F;border:2px solid #fff5eb;box-shadow:0 9px 30px #20242138,0 0 0 5px #ff963f24;animation:cta-enter .45s ease-out both,cta-nudge 7s ease-in-out 2s infinite}
.contract-float img{background:#fff5eb;border-radius:12px;padding:4px;box-sizing:border-box}
.contract-float:hover,.contract-float:focus-visible{animation:none;transform:translateY(-3px);box-shadow:0 13px 32px #20242145,0 0 0 5px #ff963f30}
@keyframes cta-nudge{0%,85%,100%{transform:translateX(0)}89%{transform:translateX(-6px)}93%{transform:translateX(3px)}97%{transform:translateX(-2px)}}
@media(prefers-reduced-motion:reduce){.contract-float{animation:none;transition:none}.contract-float:hover,.contract-float:focus-visible{transform:none}}
/* Etiqueta orgánica: volumen y símbolo fuera del contorno. */
.contract-float{border-radius:48% 52% 42% 58% / 58% 42% 58% 42%;padding:22px 26px 22px 20px;gap:11px;min-height:88px;box-sizing:border-box;isolation:isolate}
.contract-float::before{content:'';position:absolute;inset:5px -7px -7px 5px;border:2px solid #202421;border-radius:48% 52% 42% 58% / 58% 42% 58% 42%;z-index:-1;pointer-events:none}
.contract-float img{width:48px;height:48px;margin-left:-30px;transform:rotate(-10deg);background:#fff5eb;box-shadow:0 3px 8px #20242122;border-radius:17px}
.contract-float strong{font-size:18px;letter-spacing:-.4px}.contract-float small{font-size:12px}.contract-arrow{transform:rotate(-8deg)}
@media(max-width:600px){.contract-float{right:20px;bottom:max(19px,env(safe-area-inset-bottom));min-height:65px;padding:15px 20px 15px 16px;gap:8px}.contract-float img{width:39px;height:39px;margin-left:-24px;border-radius:14px}.contract-float strong{font-size:15px}}

/* El logotipo horizontal conserva sus proporciones, sin placa de fondo. */
.contract-float img{width:110px;height:auto;object-fit:contain;flex-shrink:0;background:transparent;padding:0;border-radius:0;box-shadow:none;margin-left:0;transform:none}
@media(max-width:600px){.contract-float img{width:86px;height:auto}}
