.king-addons-phone-call { width: 100%; display: flex; } .king-addons-phone-call.align-left { justify-content: flex-start; } .king-addons-phone-call.align-center { justify-content: center; } .king-addons-phone-call.align-right { justify-content: flex-end; } .king-addons-phone-call__button { display: inline-flex; align-items: center; gap: 8px; padding: 12px 16px; background: #111827; color: #ffffff; border-radius: 10px; border: 1px solid #111827; text-decoration: none; font-weight: 700; transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease; box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12); position: relative; --kng-phone-effect-color: currentColor; --kng-phone-effect-color-hover: var(--kng-phone-effect-color, currentColor); --kng-phone-effect-thickness: 2px; --kng-phone-effect-inset: -10px; --kng-phone-effect-duration: 1.6s; --kng-phone-effect-opacity: 0.35; --kng-phone-effect-scale-start: 0.9; --kng-phone-effect-scale-end: 1.35; --kng-phone-hover-scale: 1; } .king-addons-phone-call__button.is-icon-right { flex-direction: row-reverse; } .king-addons-phone-call__button:hover { background-color: #0b1220; border-color: #0b1220; transform: scale(var(--kng-phone-hover-scale, 1)); } .king-addons-phone-call__icon { display: inline-flex; align-items: center; justify-content: center; font-size: 18px; } .king-addons-phone-call__icon i, .king-addons-phone-call__icon svg { display: block; width: 1em; height: 1em; } .king-addons-phone-call__icon svg { fill: currentColor; } .king-addons-phone-call__text { display: inline-flex; align-items: center; } /* Pro: floating + animations */ .king-addons-phone-call__button.is-floating { position: fixed; inset: auto 16px 20px auto; z-index: 9999; } .king-addons-phone-call__button.is-floating.is-left { inset: auto auto 20px 16px; } .king-addons-phone-call__button.is-anim-pulse { /* Pulse is implemented via ::before so it can use effect color. */ } .king-addons-phone-call__button.is-anim-bounce { animation: king-addons-phone-call-bounce 1.4s ease-in-out infinite; } .king-addons-phone-call__button.is-anim-pulse::before, .king-addons-phone-call__button.is-anim-waves::before, .king-addons-phone-call__button.is-anim-waves::after, .king-addons-phone-call__button.is-anim-ring::before { content: ''; position: absolute; inset: var(--kng-phone-effect-inset, -10px); border-radius: inherit; pointer-events: none; opacity: 0; } .king-addons-phone-call__button.is-anim-pulse::before { border: var(--kng-phone-effect-thickness, 2px) solid var(--kng-phone-effect-color, currentColor); animation: king-addons-phone-call-pulse-outline var(--kng-phone-effect-duration, 1.6s) ease-out infinite; } .king-addons-phone-call__button:hover.is-anim-pulse::before { border-color: var(--kng-phone-effect-color-hover, var(--kng-phone-effect-color, currentColor)); } .king-addons-phone-call__button.is-anim-waves::before, .king-addons-phone-call__button.is-anim-waves::after { border: var(--kng-phone-effect-thickness, 2px) solid var(--kng-phone-effect-color, currentColor); animation: king-addons-phone-call-waves var(--kng-phone-effect-duration, 1.8s) ease-out infinite; } .king-addons-phone-call__button:hover.is-anim-waves::before, .king-addons-phone-call__button:hover.is-anim-waves::after { border-color: var(--kng-phone-effect-color-hover, var(--kng-phone-effect-color, currentColor)); } .king-addons-phone-call__button.is-anim-waves::after { animation-delay: calc(var(--kng-phone-effect-duration, 1.8s) / 2); } .king-addons-phone-call__button.is-anim-ring::before { border: var(--kng-phone-effect-thickness, 2px) solid var(--kng-phone-effect-color, currentColor); animation: king-addons-phone-call-ring var(--kng-phone-effect-duration, 0.9s) ease-in-out infinite; opacity: var(--kng-phone-effect-opacity, 0.35); } .king-addons-phone-call__button:hover.is-anim-ring::before { border-color: var(--kng-phone-effect-color-hover, var(--kng-phone-effect-color, currentColor)); } @keyframes king-addons-phone-call-pulse-outline { 0% { transform: scale(var(--kng-phone-effect-scale-start, 0.9)); opacity: var(--kng-phone-effect-opacity, 0.35); } 100% { transform: scale(var(--kng-phone-effect-scale-end, 1.35)); opacity: 0; } } @keyframes king-addons-phone-call-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } } @keyframes king-addons-phone-call-waves { 0% { transform: scale(var(--kng-phone-effect-scale-start, 0.9)); opacity: var(--kng-phone-effect-opacity, 0.35); } 100% { transform: scale(var(--kng-phone-effect-scale-end, 1.35)); opacity: 0; } } @keyframes king-addons-phone-call-ring { 0%, 100% { transform: rotate(0deg); } 20% { transform: rotate(-4deg); } 40% { transform: rotate(4deg); } 60% { transform: rotate(-4deg); } 80% { transform: rotate(4deg); } } @media (max-width: 768px) { .king-addons-phone-call__button { width: auto; } }