/* ---
PixelEngage Pro: Frontend v1.2
--- */

/* 1. Device Targeting */
@media (max-width: 768px) {
    .pep-device-desktop { display: none !important; }
}
@media (min-width: 769px) {
    .pep-device-mobile { display: none !important; }
}

/* 2. Position (REMOVED) */
/* All positioning (top, bottom, left, right) is now handled
   by inline styles set in frontend.php based on user offsets.
*/

/* 3. Widget Button Base */
.pep-widget-button {
    /* NEW: Size is now controlled by a CSS variable */
    --pep-widget-size: 60px; /* Default fallback */
    height: var(--pep-widget-size); 
    
    position: fixed;
    z-index: 99997;
    transform-origin: center;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    cursor: pointer;
    transition: all 0.3s ease;
    overflow: hidden;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-weight: 600;
    text-decoration: none;
}
.pep-widget-button:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}
.pep-widget-button .pep-button-icon i {
    font-size: calc(var(--pep-widget-size) * 0.4); /* Scaled font size */
    line-height: 1;
}

/* 3.1. Shapes & Styles (Now using CSS var) */
/* Pill */
.pep-shape-pill .pep-widget-button { border-radius: 50px; }
.pep-shape-pill .pep-style-icon   { width: var(--pep-widget-size); }
.pep-shape-pill .pep-style-text   { width: auto; padding: 0 calc(var(--pep-widget-size) * 0.4) 0 calc(var(--pep-widget-size) * 0.33); gap: 10px; }
/* Circle */
.pep-shape-circle .pep-widget-button { width: var(--pep-widget-size); border-radius: 50%; }
/* Square */
.pep-shape-square .pep-widget-button { width: var(--pep-widget-size); border-radius: 0; }
/* Rounded Square */
.pep-shape-rounded-square .pep-widget-button { width: var(--pep-widget-size); border-radius: 12px; }
/* Diamond */
.pep-shape-diamond .pep-widget-button {
    width: var(--pep-widget-size); border-radius: 0;
    transform: rotate(45deg);
}
.pep-shape-diamond .pep-button-icon { transform: rotate(-45deg); }
/* Tab (Right) */
.pep-shape-tab-right .pep-widget-button {
    border-radius: 50px 0 0 50px;
    /* right: 0 !important; <-- Handled by inline style */
}
.pep-shape-tab-right .pep-style-icon { width: calc(var(--pep-widget-size) + 10px); padding-left: 10px; }
.pep-shape-tab-right .pep-style-text { width: auto; padding: 0 calc(var(--pep-widget-size) * 0.4) 0 calc(var(--pep-widget-size) * 0.33); gap: 10px; }
/* Tab (Left) */
.pep-shape-tab-left .pep-widget-button {
    border-radius: 0 50px 50px 0;
    /* left: 0 !important; <-- Handled by inline style */
}
.pep-shape-tab-left .pep-style-icon { width: calc(var(--pep-widget-size) + 10px); padding-right: 10px; }
.pep-shape-tab-left .pep-style-text { width: auto; padding: 0 calc(var(--pep-widget-size) * 0.33) 0 calc(var(--pep-widget-size) * 0.4); gap: 10px; }
/* Shared */
.pep-widget-button .pep-button-text {
    font-size: calc(var(--pep-widget-size) * 0.27); /* Scaled font size */
    line-height: 1;
}
.pep-style-icon .pep-button-text { display: none; }


/* 4. Attention Effects (Refactored for Speed Control) */
.pep-effect-none .pep-widget-button { animation: none; }

/* Base animation properties */
.pep-effect-shake .pep-widget-button, .pep-effect-pulse .pep-widget-button,
.pep-effect-glow .pep-widget-button, .pep-effect-tada .pep-widget-button,
.pep-effect-bounce .pep-widget-button, .pep-effect-flash .pep-widget-button,
.pep-effect-wobble .pep-widget-button, .pep-effect-swing .pep-widget-button,
.pep-effect-rubberBand .pep-widget-button, .pep-effect-heartBeat .pep-widget-button,
.pep-effect-spin .pep-widget-button, .pep-effect-jello .pep-widget-button,
.pep-effect-headShake .pep-widget-button, .pep-effect-jackInTheBox .pep-widget-button,
.pep-effect-flip .pep-widget-button, .pep-effect-squeeze .pep-widget-button {
    animation-delay: 5s;
    animation-iteration-count: infinite;
}

/* --- Keyframes & Default Durations --- */
@keyframes pep-shake { 0%,100%{transform:translateX(0)} 10%,30%,50%,70%,90%{transform:translateX(-5px)} 20%,40%,60%,80%{transform:translateX(5px)} }
.pep-effect-shake .pep-widget-button { animation-name: pep-shake; animation-duration: 0.82s; }
.pep-position-middle-left .pep-effect-shake .pep-widget-button, .pep-position-middle-right .pep-effect-shake .pep-widget-button { animation-name: pep-shake-middle; }
@keyframes pep-shake-middle { 0%,100%{transform:translateY(-50%) translateX(0)} 10%,30%,50%,70%,90%{transform:translateY(-50%) translateX(-5px)} 20%,40%,60%,80%{transform:translateY(-50%) translateX(5px)} }

@keyframes pep-pulse { 0%{transform:scale(1)} 50%{transform:scale(1.05)} 100%{transform:scale(1)} }
.pep-effect-pulse .pep-widget-button { animation-name: pep-pulse; animation-duration: 2s; }
.pep-position-middle-left .pep-effect-pulse .pep-widget-button, .pep-position-middle-right .pep-effect-pulse .pep-widget-button { animation-name: pep-pulse-middle; }
@keyframes pep-pulse-middle { 0%{transform:translateY(-50%) scale(1)} 50%{transform:translateY(-50%) scale(1.05)} 100%{transform:translateY(-50%) scale(1)} }

@keyframes pep-glow { 0%,100%{box-shadow:0 4px 15px rgba(0,0,0,.2)} 50%{box-shadow:0 0 25px 10px var(--pep-color)} }
.pep-effect-glow .pep-widget-button { animation-name: pep-glow; animation-duration: 2.5s; }

@keyframes pep-tada { 0%{transform:scale(1)} 10%,20%{transform:scale(.9) rotate(-3deg)} 30%,50%,70%,90%{transform:scale(1.1) rotate(3deg)} 40%,60%,80%{transform:scale(1.1) rotate(-3deg)} 100%{transform:scale(1) rotate(0)} }
.pep-effect-tada .pep-widget-button { animation-name: pep-tada; animation-duration: 1s; }

@keyframes pep-bounce { 0%,20%,50%,80%,100%{transform:translateY(0)} 40%{transform:translateY(-15px)} 60%{transform:translateY(-10px)} }
.pep-effect-bounce .pep-widget-button { animation-name: pep-bounce; animation-duration: 2s; }
.pep-position-middle-left .pep-effect-bounce .pep-widget-button, .pep-position-middle-right .pep-effect-bounce .pep-widget-button { animation-name: pep-bounce-middle; }
@keyframes pep-bounce-middle { 0%,20%,50%,80%,100%{transform:translateY(-50%) translateY(0)} 40%{transform:translateY(-50%) translateY(-15px)} 60%{transform:translateY(-50%) translateY(-10px)} }

@keyframes pep-flash { 0%,50%,100%{opacity:1} 25%,75%{opacity:.5} }
.pep-effect-flash .pep-widget-button { animation-name: pep-flash; animation-duration: 1s; }

@keyframes pep-wobble { 0%{transform:none} 15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)} 30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)} 45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)} 60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)} 75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)} 100%{transform:none} }
.pep-effect-wobble .pep-widget-button { animation-name: pep-wobble; animation-duration: 1s; }

@keyframes pep-swing { 20%{transform:rotate3d(0,0,1,15deg)} 40%{transform:rotate3d(0,0,1,-10deg)} 60%{transform:rotate3d(0,0,1,5deg)} 80%{transform:rotate3d(0,0,1,-5deg)} 100%{transform:rotate3d(0,0,1,0deg)} }
.pep-effect-swing .pep-widget-button { transform-origin: top center; animation-name: pep-swing; animation-duration: 2s; }

@keyframes pep-rubberBand { 0%{transform:scale3d(1,1,1)} 30%{transform:scale3d(1.25,.75,1)} 40%{transform:scale3d(.75,1.25,1)} 50%{transform:scale3d(1.15,.85,1)} 65%{transform:scale3d(.95,1.05,1)} 75%{transform:scale3d(1.05,.95,1)} 100%{transform:scale3d(1,1,1)} }
.pep-effect-rubberBand .pep-widget-button { animation-name: pep-rubberBand; animation-duration: 1s; }

@keyframes pep-heartBeat { 0%{transform:scale(1)} 14%{transform:scale(1.3)} 28%{transform:scale(1)} 42%{transform:scale(1.3)} 70%{transform:scale(1)} }
.pep-effect-heartBeat .pep-widget-button { animation-name: pep-heartBeat; animation-duration: 1.3s; }

@keyframes pep-spin { 0%{transform:rotate(0deg)} 100%{transform:rotate(360deg)} }
.pep-effect-spin .pep-widget-button { animation-name: pep-spin; animation-duration: 1s; }

/* --- NEW 5 EFFECTS --- */
@keyframes pep-jello { 0%,100%{transform:none} 11.1%{transform:skewX(-12.5deg) skewY(-12.5deg)} 22.2%{transform:skewX(6.25deg) skewY(6.25deg)} 33.3%{transform:skewX(-3.125deg) skewY(-3.125deg)} 44.4%{transform:skewX(1.5625deg) skewY(1.5625deg)} 55.5%{transform:skewX(-.78125deg) skewY(-.78125deg)} 66.6%{transform:skewX(.390625deg) skewY(.390625deg)} 77.7%{transform:skewX(-.1953125deg) skewY(-.1953125deg)} 88.8%{transform:skewX(.09765625deg) skewY(.09765625deg)} }
.pep-effect-jello .pep-widget-button { animation-name: pep-jello; animation-duration: 1s; }

@keyframes pep-headShake { 0%{transform:translateX(0)} 6.5%{transform:translateX(-6px) rotateY(-9deg)} 18.5%{transform:translateX(5px) rotateY(7deg)} 31.5%{transform:translateX(-3px) rotateY(-5deg)} 43.5%{transform:translateX(2px) rotateY(3deg)} 50%{transform:translateX(0)} }
.pep-effect-headShake .pep-widget-button { animation-name: pep-headShake; animation-duration: 1s; }

@keyframes pep-jackInTheBox { 0%{opacity:0;transform:scale(.1) rotate(30deg);transform-origin:center bottom} 50%{transform:rotate(-10deg)} 70%{transform:rotate(3deg)} 100%{opacity:1;transform:scale(1)} }
.pep-effect-jackInTheBox .pep-widget-button { animation-name: pep-jackInTheBox; animation-duration: 1s; }

@keyframes pep-flip { 0%{transform:perspective(400px) rotate3d(0,1,0,-360deg);animation-timing-function:ease-out} 40%{transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);animation-timing-function:ease-out} 50%{transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);animation-timing-function:ease-in} 80%{transform:perspective(400px) scale3d(.95,.95,.95);animation-timing-function:ease-in} 100%{transform:perspective(400px);animation-timing-function:ease-in} }
.pep-effect-flip .pep-widget-button { animation-name: pep-flip; animation-duration: 1s; }

@keyframes pep-squeeze { 0%,100%{transform:scale(1)} 50%{transform:scale(.9,.9)} }
.pep-effect-squeeze .pep-widget-button { animation-name: pep-squeeze; animation-duration: 1s; }

/* --- NEW: Animation Speed Modifiers --- */
.pep-anim-slow .pep-widget-button { animation-duration: 2s !important; }
.pep-anim-medium .pep-widget-button { animation-duration: 1s !important; }
.pep-anim-fast .pep-widget-button { animation-duration: 0.5s !important; }
/* We need to override specific defaults for 'medium' */
.pep-anim-medium.pep-effect-shake .pep-widget-button { animation-duration: 0.82s !important; }
.pep-anim-medium.pep-effect-pulse .pep-widget-button { animation-duration: 2s !important; }
.pep-anim-medium.pep-effect-glow .pep-widget-button { animation-duration: 2.5s !important; }
.pep-anim-medium.pep-effect-bounce .pep-widget-button { animation-duration: 2s !important; }
.pep-anim-medium.pep-effect-swing .pep-widget-button { animation-duration: 2s !important; }
.pep-anim-medium.pep-effect-heartBeat .pep-widget-button { animation-duration: 1.3s !important; }


/* 5. Modal Overlay */
.pep-modal-overlay {
    display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.5); z-index: 99998; opacity: 0; transition: opacity 0.3s ease;
}
.pep-modal-overlay.active { display: block; opacity: 1; }

/* 6. Modal */
.pep-modal {
    display: none; position: fixed; top: 50%; left: 50%; width: 90%;
    max-width: 380px; z-index: 99999; border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3); overflow: hidden; opacity: 0;
    transform: translate(-50%, -50%) scale(0.9);
    transition: all 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28);
}
.pep-modal.active { display: block; opacity: 1; transform: translate(-50%, -50%) scale(1); }

/* 7. Modal Header */
.pep-modal-header {
    padding: 15px 20px; color: #fff; display: flex;
    justify-content: space-between; align-items: center;
}
.pep-modal-header h3 {
    margin: 0; font-size: 18px; line-height: 1.4; color: #fff;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.pep-modal-close {
    background: transparent; border: 0; color: #fff; font-size: 28px;
    line-height: 1; font-weight: bold; opacity: 0.8; cursor: pointer; padding: 0 5px;
}
.pep-modal-close:hover { opacity: 1; }

/* 8. Modal Body & Channel List */
.pep-modal-body ul { list-style: none; margin: 0; padding: 10px 0; }
.pep-modal-body li a {
    display: flex; align-items: center; gap: 15px; padding: 14px 20px;
    text-decoration: none; color: #111; font-weight: 600; font-size: 16px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    transition: background 0.2s ease;
}
.pep-modal[style*="blur"] .pep-modal-body li a {
    color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.pep-modal-body li a:hover { background: rgba(0, 0, 0, 0.1); }
.pep-modal[style*="blur"] .pep-modal-body li a:hover { background: rgba(255, 255, 255, 0.15); }
.pep-channel-item .pep-icon {
    width: 36px; height: 36px; border-radius: 50%; display: flex;
    align-items: center; justify-content: center; color: #fff;
}
.pep-channel-item .pep-icon i { font-size: 20px; }
.pep-channel-item.whatsapp .pep-icon  { background: #25D366; }
.pep-channel-item.messenger .pep-icon { background: #0078FF; }
.pep-channel-item.x .pep-icon         { background: #14171A; }
.pep-channel-item.email .pep-icon     { background: #EA4335; }
.pep-channel-item.phone .pep-icon     { background: #4285F4; }

/* 9. Popup Style: Compact List */
.pep-popup-compact-list .pep-modal-body ul { padding: 5px 0; }
.pep-popup-compact-list .pep-modal-body li a { padding: 10px 20px; font-size: 15px; }
.pep-popup-compact-list .pep-channel-item .pep-icon { width: 30px; height: 30px; }
.pep-popup-compact-list .pep-channel-item .pep-icon i { font-size: 16px; }

/* 10. Popup Style: Bubble */
.pep-popup-bubble .pep-modal-body ul {
    padding: 20px; display: flex; flex-wrap: wrap; justify-content: center; gap: 15px;
}
.pep-popup-bubble .pep-modal-body li { width: 100px; }
.pep-popup-bubble .pep-modal-body li a {
    flex-direction: column; justify-content: center; gap: 10px;
    width: 100px; height: 100px; border-radius: 20px; padding: 10px; font-size: 14px;
}
.pep-popup-bubble .pep-modal[style*="blur"] .pep-modal-body li a { background: rgba(255, 255, 255, 0.1); }
.pep-popup-bubble .pep-modal[style*="blur"] .pep-modal-body li a:hover { background: rgba(255, 255, 255, 0.2); }

/* 11. Popup Style: Grid */
.pep-popup-grid .pep-modal-body ul {
    padding: 20px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px;
}
.pep-popup-grid .pep-modal-body li a {
    flex-direction: column; justify-content: center; gap: 10px;
    width: 100%; height: 90px; border-radius: 12px; padding: 10px; font-size: 14px;
}
.pep-popup-grid .pep-modal[style*="blur"] .pep-modal-body li a { background: rgba(255, 255, 255, 0.1); }
.pep-popup-grid .pep-modal[style*="blur"] .pep-modal-body li a:hover { background: rgba(255, 255, 255, 0.2); }

/* 12. Popup Style: Minimalist */
.pep-popup-minimalist .pep-channel-item .pep-icon { display: none; }
.pep-popup-minimalist .pep-modal-body li a {
    font-size: 18px; text-align: center; justify-content: center;
}