/* ── Reset / base ────────────────────────────────────────────────────────── */
.vp-page *{box-sizing:border-box}
.vp-page a{text-decoration:none}
.vp-page img{max-width:100%;height:auto}

/* ── Animations ──────────────────────────────────────────────────────────── */
.vp-anim{opacity:0;transition:opacity .6s ease,transform .6s ease}
.vp-anim.vp-visible{opacity:1;transform:none!important}
.vp-anim-fadeIn{opacity:0}
.vp-anim-fadeInUp{opacity:0;transform:translateY(30px)}
.vp-anim-fadeInDown{opacity:0;transform:translateY(-30px)}
.vp-anim-slideInLeft{opacity:0;transform:translateX(-40px)}
.vp-anim-slideInRight{opacity:0;transform:translateX(40px)}
.vp-anim-zoomIn{opacity:0;transform:scale(.85)}
.vp-anim-bounceIn{opacity:0;transform:scale(.5)}
.vp-anim-bounceIn.vp-visible{animation:vpBounce .6s forwards}
@keyframes vpBounce{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
.vp-anim-pulse{animation:vpPulse 1.5s ease-in-out infinite}
@keyframes vpPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.vp-btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:8px;font-weight:700;font-size:15px;cursor:pointer;transition:all .2s;border:2px solid transparent}
.vp-btn-primary{background:#7c3aed;color:#fff;border-color:#7c3aed}
.vp-btn-primary:hover{background:#5b21b6;border-color:#5b21b6;transform:translateY(-2px);box-shadow:0 6px 20px rgba(124,58,237,.4)}
.vp-btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.vp-btn-secondary:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
.vp-btn-widget{font-weight:600;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}

/* ── Hero ────────────────────────────────────────────────────────────────── */
.vp-hero{position:relative;display:flex;align-items:center;overflow:hidden}
.vp-hero .vp-hero-btns{display:flex;gap:16px;flex-wrap:wrap}

/* ── Cards ───────────────────────────────────────────────────────────────── */
.vp-card-hover-lift{transition:transform .25s,box-shadow .25s}
.vp-card-hover-lift:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.16)!important}
.vp-card-hover-zoom:hover img{transform:scale(1.06)}
.vp-card-hover-glow:hover{box-shadow:0 0 0 3px rgba(124,58,237,.3)!important}

/* ── Gallery hover ───────────────────────────────────────────────────────── */
.vp-hover-zoom:hover img{transform:scale(1.08)}
.vp-gal-item{overflow:hidden}
.vp-gal-item img{transition:transform .4s ease}

/* ── Lightbox ────────────────────────────────────────────────────────────── */
.vp-lb-overlay{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;cursor:pointer}
.vp-lb-overlay img{max-width:92vw;max-height:90vh;border-radius:8px;object-fit:contain}
.vp-lb-close{position:absolute;top:20px;right:24px;background:none;border:none;color:#fff;font-size:32px;cursor:pointer;opacity:.7}
.vp-lb-close:hover{opacity:1}

/* ── Popup ───────────────────────────────────────────────────────────────── */
.vp-popup-overlay{position:fixed!important;inset:0!important;background:rgba(0,0,0,.6)!important;z-index:99999!important;display:flex!important;align-items:center!important;justify-content:center!important}
.vp-popup-overlay[hidden]{display:none!important}

/* ── Accordion ───────────────────────────────────────────────────────────── */
.vp-ac-item{transition:box-shadow .2s}
.vp-ac-toggle.open{background:#faf5ff!important}
.vp-ac-toggle.open .vp-ac-arrow{transform:rotate(45deg)}
.vp-ac-arrow{transition:transform .25s ease;display:inline-block}

/* ── Tabs ────────────────────────────────────────────────────────────────── */
.vp-tab-btn{transition:all .2s;border-bottom:3px solid transparent!important;margin-bottom:-2px!important}

/* ── Forms ───────────────────────────────────────────────────────────────── */
.vp-ff{margin-bottom:16px}
.vp-ff label{display:block;font-weight:600;font-size:13px;margin-bottom:6px;color:#374151}
.vp-ff input,.vp-ff textarea,.vp-ff select{width:100%;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;padding:11px 14px;font-size:14px;outline:none;transition:border-color .2s;font-family:inherit}
.vp-ff input:focus,.vp-ff textarea:focus,.vp-ff select:focus{border-color:#7c3aed;background:#fff}
.vp-ff textarea{resize:vertical;min-height:110px}
.vp-form-msg{margin-top:14px;padding:12px 16px;border-radius:8px;font-weight:600;font-size:14px;text-align:center}
.vp-form-msg.ok{background:#dcfce7;color:#166534}
.vp-form-msg.err{background:#fee2e2;color:#991b1b}

/* ── Saludo / Song request ───────────────────────────────────────────────── */
.vp-sf-input{width:100%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:12px 16px;color:inherit;font-size:14px;outline:none;display:block;margin-bottom:10px;transition:border-color .2s;font-family:inherit}
.vp-sf-input:focus{border-color:rgba(255,255,255,.5)}
.vp-sf-textarea{min-height:90px;resize:vertical}

/* ── Radio Player ────────────────────────────────────────────────────────── */
.vp-radio-player{transition:box-shadow .25s}
.vp-rp-cover{transition:box-shadow .3s}
.vp-rp-play-btn:hover{transform:scale(1.1)!important}
.vp-rp-play-btn.playing{animation:vpPulse 1.5s ease-in-out infinite}
.vp-rp-vol{cursor:pointer}
input[type=range]{-webkit-appearance:none;height:4px;border-radius:2px;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:currentColor;border-radius:50%;cursor:pointer}

/* ── Chat ────────────────────────────────────────────────────────────────── */
.vp-chat-messages::-webkit-scrollbar{width:4px}
.vp-chat-messages::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:2px}
.vp-chat-msg{padding:8px 12px;border-radius:10px;background:rgba(255,255,255,.07);max-width:85%}
.vp-chat-msg .vp-cm-name{font-size:11px;font-weight:700;margin-bottom:3px}
.vp-chat-msg .vp-cm-text{font-size:13px;line-height:1.5;word-break:break-word}
.vp-chat-msg .vp-cm-time{font-size:10px;opacity:.4;margin-top:3px;text-align:right}
.vp-chat-own{align-self:flex-end;background:rgba(124,58,237,.3)}

/* ── Song History ────────────────────────────────────────────────────────── */
.vp-sh-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #f3f4f6}
.vp-sh-row:last-child{border-bottom:none}
.vp-sh-cover{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0}
.vp-sh-info{flex:1;min-width:0}
.vp-sh-song{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vp-sh-artist{font-size:12px;color:#9ca3af;margin-top:2px}
.vp-sh-time{font-size:11px;color:#9ca3af;flex-shrink:0}

/* ── WhatsApp ────────────────────────────────────────────────────────────── */
.vp-whatsapp-btn{transition:all .2s}
.vp-whatsapp-btn:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(37,211,102,.4)!important;opacity:.95}

/* ── Pricing ─────────────────────────────────────────────────────────────── */
.vp-price{margin-bottom:28px}
.vp-price-list{list-style:none;padding:0;margin:0 0 28px;text-align:left}
.vp-price-list li{padding:10px 0;border-bottom:1px solid #f3f4f6;font-size:14px}

/* ── Progress bars (animated) ────────────────────────────────────────────── */
.vp-pb-bar{transition:width 1.4s cubic-bezier(.22,1,.36,1)}

/* ── Counters ────────────────────────────────────────────────────────────── */
.vp-count{display:inline-block}

/* ── Timeline ────────────────────────────────────────────────────────────── */
.vp-tl-item{position:relative}
.vp-tl-item h4{margin:6px 0}
.vp-tl-item p{margin:0;color:#6b7280}

/* ── Notice ──────────────────────────────────────────────────────────────── */
.vp-notice button:hover{opacity:1!important}

/* ── Image caption ───────────────────────────────────────────────────────── */
.vp-caption{text-align:center;font-size:13px;color:#6b7280;margin-top:6px}
.vp-img-placeholder{background:#f3f4f6;padding:40px;text-align:center;color:#9ca3af;border:2px dashed #e5e7eb;border-radius:8px}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media(max-width:768px){
  .vp-hero{min-height:280px!important}
  .vp-section[style*="grid"]{display:block!important}
  .vp-section .vp-section-grid{display:block!important}
  .vp-section .vp-section-grid>*{margin-bottom:20px}
  .vp-radio-player{padding:18px!important}
  .vp-saludo-widget{padding:18px!important}
  .vp-btn{padding:11px 22px!important;font-size:14px!important}
}
@media(max-width:480px){
  .vp-hero{min-height:220px!important}
  .vp-counters{gap:20px!important}
}
