/* HF WhatsApp — estilos del botón (se imprimen una sola vez por página). */

/* ---------- Base ---------- */
.hfw-floating{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:calc(100vw - 20px);line-height:1;pointer-events:none}
.hfw-floating > *{pointer-events:auto}
.hfw-floating.hfw-side-left{align-items:flex-start}
.hfw-floating.hfw-side-right{align-items:flex-end}
/* Arriba: que la barra de administración de WordPress no tape el botón. */
.admin-bar .hfw-floating.hfw-v-top{margin-top:32px}
@media screen and (max-width:782px){.admin-bar .hfw-floating.hfw-v-top{margin-top:46px}}
.hfw-floating .hfw-legal{max-width:260px;font-size:11px;background:rgba(255,255,255,.92);padding:6px 10px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.12)}

a.hfw-btn,a.hfw-btn:hover,a.hfw-btn:focus,a.hfw-btn:visited,.page-content a.hfw-btn,.entry-content a.hfw-btn,.elementor a.hfw-btn{text-decoration:none!important;outline:none;box-shadow:none;border-bottom:0}
.hfw-btn .hfw-text,.hfw-btn .hfw-l1,.hfw-btn .hfw-l2{text-decoration:none!important;border-bottom:0}
.hfw-btn:hover .hfw-link .hfw-text{text-decoration:var(--hfw-deco-h,underline)!important}
.hfw-btn .hfw-link .hfw-text{text-decoration:var(--hfw-deco,none)!important}
.hfw-btn{display:inline-flex;align-items:center;gap:10px;cursor:pointer;line-height:1;box-sizing:border-box;vertical-align:middle;transition:transform .2s ease,filter .2s ease}
.hfw-btn *{box-sizing:border-box}
.hfw-btn:focus-visible{outline:3px solid #25D366;outline-offset:3px;border-radius:8px}
.hfw-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}
.hfw-text{white-space:nowrap}

/* Orden del CTA: flotante a la derecha => CTA a la izquierda del icono */
.hfw-ctx-floating.hfw-side-right.hfw-has-cta{flex-direction:row-reverse}

/* Hover */
.hfw-hover-scale:hover{transform:scale(1.06)}
.hfw-hover-lift:hover{transform:translateY(-3px);filter:drop-shadow(0 8px 14px rgba(0,0,0,.2))}

/* CTA (burbuja de texto) */
.hfw-cta{display:inline-block;padding:8px 14px;border-radius:22px;background:var(--hfw-cta-bg,#fff);color:var(--hfw-cta-color,#333);font-size:var(--hfw-cta-fs,15px);font-weight:600;box-shadow:0 2px 10px rgba(0,0,0,.15);white-space:nowrap;transition:opacity .25s ease,transform .25s ease}
.hfw-cta-hover{opacity:0;transform:translateX(6px);pointer-events:none}
.hfw-side-left .hfw-cta-hover{transform:translateX(-6px)}
.hfw-btn:hover .hfw-cta-hover,.hfw-btn:focus-visible .hfw-cta-hover{opacity:1;transform:none}

/* ---------- Halo (estilo por defecto) ---------- */
.hfw-style-halo{--hfw-size:64px;--hfw-bg:#25D366;--hfw-halo:#25D366;--hfw-speed:2.2s}
.hfw-halo-wrap{position:relative;display:inline-block;width:var(--hfw-size);height:var(--hfw-size);flex:0 0 auto}
.hfw-halo{position:absolute;inset:0;border-radius:50%;background:var(--hfw-halo);animation:hfw-halo var(--hfw-speed) ease-out infinite;pointer-events:none}
.hfw-halo-2{animation-name:hfw-halo2;animation-delay:calc(var(--hfw-speed) * .23)}
.hfw-halo-btn{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;background:var(--hfw-bg);transition:filter .2s ease}
.hfw-halo-wrap.hfw-shadow .hfw-halo-btn{box-shadow:0 6px 18px rgba(0,0,0,.25)}
.hfw-btn:hover .hfw-halo-btn{filter:brightness(1.05)}
@keyframes hfw-halo{0%{transform:scale(1);opacity:.55}100%{transform:scale(2.2);opacity:0}}
@keyframes hfw-halo2{0%{transform:scale(1);opacity:.4}100%{transform:scale(1.9);opacity:0}}

/* ---------- halo_dark: el mismo halo para fondos oscuros ----------
   El botón es idéntico (hereda .hfw-style-halo); lo que cambia son los textos
   que lo acompañan: título, aviso legal y burbuja de CTA en blanco.
   La clase .hfw-on-dark la pone el plugin en la sección / el flotante. */
.hfw-style-halo_dark{--hfw-cta-bg:#1f2c33;--hfw-cta-color:#fff}
.hfw-on-dark .hfw-cta{box-shadow:0 2px 12px rgba(0,0,0,.45)}
.hfw-btn.hfw-on-dark:focus-visible{outline-color:#fff}
.hfw-section.hfw-on-dark .hfw-title{color:var(--hfw-on-dark-title,#fff)}
.hfw-section.hfw-on-dark .hfw-legal{color:var(--hfw-on-dark-legal,#cfd8dc)}
.hfw-section.hfw-on-dark .hfw-legal a{color:var(--hfw-on-dark-link,#25D366)}
.hfw-floating.hfw-on-dark .hfw-legal{color:var(--hfw-on-dark-legal,#cfd8dc);background:rgba(17,27,33,.92);box-shadow:0 2px 10px rgba(0,0,0,.45)}
.hfw-floating.hfw-on-dark .hfw-legal a{color:var(--hfw-on-dark-link,#25D366)}
/* Opcional: [hf_whatsapp style="halo_dark" class="hfw-dark-panel"] pinta su
   propio fondo oscuro, para páginas cuyo tema es claro. */
.hfw-section.hfw-dark-panel{background:var(--hfw-dark-panel-bg,#111b21);padding:26px 22px;border-radius:16px}

/* ---------- s1: botón de texto ---------- */
.hfw-s1-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;color:var(--hfw-color,#fff);background:var(--hfw-bg,#25D366);font-size:var(--hfw-fs,16px);font-weight:600;border-radius:var(--hfw-radius,6px);box-shadow:0 4px 12px rgba(0,0,0,.18);transition:background .2s ease}
.hfw-btn:hover .hfw-s1-btn{background:var(--hfw-bg-h,var(--hfw-bg,#25D366))}

/* ---------- s2: icono plano ---------- */
.hfw-round{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--hfw-bg,#25D366);flex:0 0 auto}
.hfw-style-s2 .hfw-round{width:var(--hfw-size,56px);height:var(--hfw-size,56px)}

/* ---------- s3: icono con sombra ---------- */
.hfw-s3-box{padding:var(--hfw-pad,14px);transition:background .2s ease}
.hfw-s3-box.hfw-shadow{box-shadow:0 6px 18px rgba(0,0,0,.25)}
.hfw-btn:hover .hfw-s3-box{background:var(--hfw-bg-h,var(--hfw-bg,#25D366))}

/* ---------- s4: pastilla ---------- */
.hfw-chip{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border-radius:40px;color:var(--hfw-color,#fff);background:var(--hfw-bg,#25D366);font-size:var(--hfw-fs,15px);font-weight:600;box-shadow:0 4px 14px rgba(0,0,0,.2);transition:background .2s ease}
.hfw-chip.hfw-icon-right{flex-direction:row-reverse}
.hfw-btn:hover .hfw-chip{background:var(--hfw-bg-h,var(--hfw-bg,#25D366))}

/* ---------- s5: tarjeta ---------- */
.hfw-s5-card{display:inline-flex;align-items:center;gap:12px;padding:10px 16px 10px 10px;background:var(--hfw-bg,#fff);border:1px solid var(--hfw-border,#e2e2e2);border-radius:14px;box-shadow:0 4px 14px rgba(0,0,0,.12);transition:box-shadow .2s ease}
.hfw-s5-card.hfw-icon-right{flex-direction:row-reverse;padding:10px 10px 10px 16px}
.hfw-s5-img{width:var(--hfw-img,44px);height:var(--hfw-img,44px);border-radius:50%;object-fit:cover;flex:0 0 auto}
.hfw-s5-img.hfw-round{background:var(--hfw-icon-bg,#25D366)}
.hfw-s5-card-text{display:flex;flex-direction:column;gap:3px;text-align:left}
.hfw-l1{color:var(--hfw-l1,#333);font-size:13px;font-weight:500}
.hfw-l2{color:var(--hfw-l2,#25D366);font-size:15px;font-weight:700}
.hfw-btn:hover .hfw-s5-card{box-shadow:0 8px 20px rgba(0,0,0,.18)}

/* ---------- s6: enlace de texto ---------- */
.hfw-link{display:inline-flex;align-items:center;gap:6px;color:var(--hfw-color,#25D366);font-size:var(--hfw-fs,16px);transition:color .2s ease}
.hfw-btn:hover .hfw-link{color:var(--hfw-color-h,#128C7E)}

/* ---------- s7: icono con borde ---------- */
.hfw-s7-box{display:inline-flex;align-items:center;justify-content:center;padding:var(--hfw-pad,12px);border:var(--hfw-bsize,2px) solid var(--hfw-border,#25D366);border-radius:var(--hfw-radius,50%);background:var(--hfw-bg,transparent);transition:all .2s ease}
.hfw-s7-box .hfw-icon{fill:var(--hfw-icon,#25D366);transition:fill .2s ease}
.hfw-btn:hover .hfw-s7-box{background:var(--hfw-bg-h,#25D366);border-color:var(--hfw-border-h,var(--hfw-border,#25D366))}
.hfw-btn:hover .hfw-s7-box .hfw-icon{fill:var(--hfw-icon-h,#fff)}

/* ---------- s8: botón con icono ---------- */
.hfw-s8-btn{display:inline-flex;align-items:center;gap:10px;padding:var(--hfw-pad,12px) var(--hfw-pad-h,22px);color:var(--hfw-color,#fff);background:var(--hfw-bg,#25D366);font-size:var(--hfw-fs,16px);font-weight:600;border-radius:var(--hfw-radius,8px);box-shadow:0 4px 12px rgba(0,0,0,.18);transition:all .2s ease}
.hfw-s8-btn.hfw-icon-right{flex-direction:row-reverse}
.hfw-s8-btn .hfw-icon{fill:var(--hfw-icon,#fff);transition:fill .2s ease}
.hfw-btn:hover .hfw-s8-btn{background:var(--hfw-bg-h,var(--hfw-bg,#25D366));color:var(--hfw-color-h,var(--hfw-color,#fff))}
.hfw-btn:hover .hfw-s8-btn .hfw-icon{fill:var(--hfw-icon-h,var(--hfw-icon,#fff))}

/* ---------- s99: imagen propia ---------- */
.hfw-s99-img{display:block;max-width:100%}

/* ---------- Widget de sección ---------- */
.hfw-section{--hfw-section-width:280px;box-sizing:border-box;width:var(--hfw-section-width);max-width:100%;margin:24px auto;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.hfw-section.hfw-align-left{margin-left:0;align-items:flex-start;text-align:left}
.hfw-section.hfw-align-right{margin-right:0;align-items:flex-end;text-align:right}
.hfw-title{font-size:20px;font-weight:800;line-height:1.25;color:inherit}
.hfw-section-btn{display:flex;justify-content:center}
.hfw-legal{font-size:13px;color:#555;line-height:1.4}
.hfw-legal a{color:#2563eb;text-decoration:underline}

/* ---------- Ventana en ordenadores (código QR) ----------
   <dialog> nativo: el navegador lo pone en su capa superior, por encima de todo
   (sin depender del z-index del tema). Todas las reglas empiezan por .hfw- (lista
   segura del "Eliminar CSS no utilizado" de WP Rocket) y llevan dos clases para
   ganar a los estilos globales de enlaces y botones del tema o de Elementor. */
.hfw-modal{box-sizing:border-box;width:fit-content;height:fit-content;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);margin:auto;padding:0;border:0;background:transparent;color:inherit;overflow:visible}
.hfw-modal::backdrop{background:rgba(11,20,26,.62)}
.hfw-modal[open]::backdrop{animation:hfw-fade .2s ease-out}
.hfw-modal[open] .hfw-modal-box{animation:hfw-modal-in .22s cubic-bezier(.2,.8,.2,1)}
@keyframes hfw-modal-in{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
/* En una esquina. --hfw-m-gap: distancia configurada; --hfw-m-x / --hfw-m-y las pone
   hf-whatsapp.js para que la ventana salga junto al botón flotante. */
.hfw-modal.hfw-modal-pos-top-left,.hfw-modal.hfw-modal-pos-top-right,.hfw-modal.hfw-modal-pos-bottom-left,.hfw-modal.hfw-modal-pos-bottom-right{margin:0;max-height:calc(100vh - 2 * var(--hfw-m-gap,24px))}
.hfw-modal.hfw-modal-pos-top-left{inset:var(--hfw-m-y,var(--hfw-m-gap,24px)) auto auto var(--hfw-m-x,var(--hfw-m-gap,24px))}
.hfw-modal.hfw-modal-pos-top-right{inset:var(--hfw-m-y,var(--hfw-m-gap,24px)) var(--hfw-m-x,var(--hfw-m-gap,24px)) auto auto}
.hfw-modal.hfw-modal-pos-bottom-left{inset:auto auto var(--hfw-m-y,var(--hfw-m-gap,24px)) var(--hfw-m-x,var(--hfw-m-gap,24px))}
.hfw-modal.hfw-modal-pos-bottom-right{inset:auto var(--hfw-m-x,var(--hfw-m-gap,24px)) var(--hfw-m-y,var(--hfw-m-gap,24px)) auto}
.hfw-modal[open].hfw-modal-pos-bottom-left .hfw-modal-box,.hfw-modal[open].hfw-modal-pos-bottom-right .hfw-modal-box{animation-name:hfw-modal-up}
.hfw-modal[open].hfw-modal-pos-top-left .hfw-modal-box,.hfw-modal[open].hfw-modal-pos-top-right .hfw-modal-box{animation-name:hfw-modal-down}
.hfw-modal.hfw-modal-pos-top-left .hfw-modal-box{transform-origin:0 0}
.hfw-modal.hfw-modal-pos-top-right .hfw-modal-box{transform-origin:100% 0}
.hfw-modal.hfw-modal-pos-bottom-left .hfw-modal-box{transform-origin:0 100%}
.hfw-modal.hfw-modal-pos-bottom-right .hfw-modal-box{transform-origin:100% 100%}
.hfw-modal.hfw-modal-moving{transition:inset .25s ease}
@keyframes hfw-modal-up{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes hfw-modal-down{from{opacity:0;transform:translateY(-14px) scale(.97)}to{opacity:1;transform:none}}
.hfw-modal-box{--hfw-m-bg:#161c1c;--hfw-m-card:#1e2525;--hfw-m-line:#2d3535;--hfw-m-title:#fff;--hfw-m-text:#b4bebc;--hfw-m-muted:#8b9694;--hfw-m-hover:rgba(255,255,255,.08);position:relative;box-sizing:border-box;width:448px;max-width:100%;padding:24px;border:1px solid var(--hfw-m-line);border-radius:20px;background:var(--hfw-m-bg);color:var(--hfw-m-text);box-shadow:0 24px 64px rgba(0,0,0,.45);font-family:inherit;font-size:15px;font-weight:400;line-height:1.45;letter-spacing:normal;text-align:left;text-transform:none}
.hfw-modal-box.hfw-modal-light{--hfw-m-bg:#fff;--hfw-m-card:#f3f5f4;--hfw-m-line:#e1e6e4;--hfw-m-title:#111b21;--hfw-m-text:#54656f;--hfw-m-muted:#667781;--hfw-m-hover:rgba(11,20,26,.06);box-shadow:0 24px 64px rgba(11,20,26,.3)}
.hfw-modal-box *{box-sizing:border-box}
.hfw-modal-box .hfw-modal-head{display:flex;align-items:center;gap:12px;margin:0 44px 20px 0}
.hfw-modal-box .hfw-modal-logo{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:#25D366}
.hfw-modal-box .hfw-modal-title{margin:0;padding:0;color:var(--hfw-m-title);font-size:19px;font-weight:700;line-height:1.3}
.hfw-modal-box a.hfw-modal-desktop{display:flex;align-items:center;gap:14px;margin:0;padding:14px 16px;border:0;border-radius:14px;background:#25D366;box-shadow:none;color:#0b141a!important;text-decoration:none!important;transition:background-color .15s ease,transform .15s ease}
.hfw-modal-box a.hfw-modal-desktop:hover{background:#1ebe5d;color:#0b141a!important}
.hfw-modal-box a.hfw-modal-desktop:active{transform:scale(.99)}
.hfw-modal-box a.hfw-modal-desktop:focus-visible{outline:3px solid var(--hfw-m-title);outline-offset:3px}
.hfw-modal-box .hfw-modal-desktop-ico{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;border-radius:10px;background:rgba(11,20,26,.12)}
.hfw-modal-box .hfw-ico-line{display:block;width:22px;height:22px;fill:none;stroke:currentColor}
.hfw-modal-box .hfw-modal-desktop-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.hfw-modal-box .hfw-modal-desktop-label{font-size:16px;font-weight:700;line-height:1.3}
.hfw-modal-box .hfw-modal-desktop-hint{font-size:13px;line-height:1.35;opacity:.78}
.hfw-modal-box .hfw-modal-arrow{display:flex;margin-left:auto;transition:transform .15s ease}
.hfw-modal-box .hfw-modal-arrow .hfw-ico-line{width:20px;height:20px}
.hfw-modal-box a.hfw-modal-desktop:hover .hfw-modal-arrow{transform:translateX(3px)}
.hfw-modal-box .hfw-modal-or{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--hfw-m-muted);font-size:13px;line-height:1}
.hfw-modal-box .hfw-modal-or:before,.hfw-modal-box .hfw-modal-or:after{content:"";flex:1 1 auto;height:1px;background:var(--hfw-m-line)}
.hfw-modal-box .hfw-modal-qr{display:flex;align-items:center;gap:18px;padding:16px;border:1px solid var(--hfw-m-line);border-radius:16px;background:var(--hfw-m-card)}
.hfw-modal-box .hfw-qr{flex:0 0 124px;width:124px;height:124px;padding:4px;border-radius:12px;background:#fff}
.hfw-modal-box.hfw-modal-light .hfw-qr{box-shadow:0 0 0 1px var(--hfw-m-line)}
.hfw-modal-box .hfw-qr svg{display:block;width:100%;height:100%}
.hfw-modal-box .hfw-modal-qr-title{margin:0 0 4px;color:var(--hfw-m-title);font-size:16px;font-weight:700;line-height:1.3}
.hfw-modal-box .hfw-modal-qr-text{margin:0;color:var(--hfw-m-text);font-size:15px;line-height:1.45}
.hfw-modal-box .hfw-modal-title:empty,.hfw-modal-box .hfw-modal-desktop-hint:empty,.hfw-modal-box .hfw-modal-qr-title:empty,.hfw-modal-box .hfw-modal-qr-text:empty{display:none}
.hfw-modal-box button.hfw-modal-close{position:absolute;top:26px;right:20px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none;color:var(--hfw-m-muted);font:inherit;line-height:1;text-transform:none;cursor:pointer;transition:background-color .15s ease,color .15s ease}
.hfw-modal-box button.hfw-modal-close:hover{background:var(--hfw-m-hover);color:var(--hfw-m-title)}
.hfw-modal-box button.hfw-modal-close:focus-visible{outline:2px solid var(--hfw-m-title);outline-offset:2px}

/* ---------- Animaciones de entrada ---------- */
.hfw-anim{animation-duration:.7s;animation-fill-mode:both;animation-delay:var(--hfw-delay,0s)}
.hfw-anim-fade{animation-name:hfw-fade}
.hfw-anim-slide-up{animation-name:hfw-slide-up}
.hfw-anim-bounce{animation-name:hfw-bounce;animation-duration:1s}
.hfw-anim-zoom{animation-name:hfw-zoom}
@keyframes hfw-fade{from{opacity:0}to{opacity:1}}
@keyframes hfw-slide-up{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes hfw-zoom{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@keyframes hfw-bounce{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.08)}70%{transform:scale(.95)}100%{transform:none}}

/* ---------- Accesibilidad: sin movimiento ---------- */
@media (prefers-reduced-motion:reduce){
	.hfw-halo,.hfw-anim{animation:none!important}
	.hfw-halo{display:none}
	.hfw-btn,.hfw-cta{transition:none}
	.hfw-modal[open]::backdrop,.hfw-modal[open] .hfw-modal-box{animation:none!important}
	.hfw-modal-box a.hfw-modal-desktop,.hfw-modal-box .hfw-modal-arrow,.hfw-modal-box button.hfw-modal-close,.hfw-modal.hfw-modal-moving{transition:none}
}

/* ---------- Avisos solo para admins ---------- */
.hfw-admin-warning{font:12px/1.4 sans-serif;color:#8a6d3b;background:#fcf8e3;border:1px solid #faebcc;padding:6px 10px;border-radius:6px;max-width:240px}
