/* Popup de pedido de reserva de festa — Lumia Park */
body.lp-rv-modal-open { overflow: hidden; }
.lp-rv-hidden { display: none !important; }
.lp-rv-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(9, 3, 18, .84);
  backdrop-filter: blur(6px);
}
.lp-rv-overlay.lp-rv-visible { display: flex; }
.lp-rv-modal {
  position: relative;
  width: min(560px, 100%);
  max-height: 92vh;
  overflow-y: auto;
  padding: 30px;
  border: 1px solid rgba(244,181,204,.3);
  border-radius: 20px;
  color: #f8f1ff;
  background:
    radial-gradient(circle at 50% -12%, rgba(198,79,217,.38), transparent 55%),
    linear-gradient(155deg, #1b0e31, #2b1246 55%, #160d29);
  box-shadow: 0 28px 80px rgba(8,1,18,.65), 0 0 55px rgba(198,79,217,.2);
  animation: lpRvIn .22s ease-out;
}
@keyframes lpRvIn { from { opacity:0; transform:translateY(12px) scale(.97); } to { opacity:1; transform:none; } }
.lp-rv-modal::-webkit-scrollbar { width: 6px; }
.lp-rv-modal::-webkit-scrollbar-thumb { background: rgba(198,79,217,.45); border-radius: 10px; }
.lp-rv-close {
  position: absolute;
  top: 12px;
  right: 15px;
  z-index: 2;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  opacity: .7;
}
.lp-rv-close:hover { opacity: 1; }
.lp-rv-logo { margin-bottom: 8px; text-align: center; }
.lp-rv-logo img { height: 58px; width: auto; filter: drop-shadow(0 0 16px rgba(198,79,217,.45)); }
.lp-rv-sparkle { position:absolute; pointer-events:none; color:#f4b5cc; opacity:.65; }
.lp-rv-sparkle-1 { top:18px; left:25px; }
.lp-rv-sparkle-2 { top:64px; right:46px; color:#c64fd9; font-size:.75rem; }
.lp-rv-sparkle-3 { bottom:85px; left:22px; }
.lp-rv-steps-indicator { display:flex; justify-content:center; gap:8px; margin:0 0 17px; }
.lp-rv-dot { width:7px; height:7px; border-radius:50%; background:rgba(244,181,204,.25); transition:.25s; }
.lp-rv-dot.active { transform:scale(1.35); background:linear-gradient(90deg,#f4b5cc,#c64fd9); }
.lp-rv-form h2 { margin:0 0 7px; color:#fff; text-align:center; font-family:'Cinzel',serif; font-size:clamp(1.25rem,4vw,1.65rem); }
.lp-rv-subtitle { margin:0 0 19px; color:#d6c7e6; text-align:center; font-size:.9rem; }
.lp-rv-label { display:block; margin:13px 0 6px; color:#ded1ec; font-size:.8rem; font-weight:650; }
.lp-rv-label span { color:#f4b5cc; }
.lp-rv-input,.lp-rv-select,.lp-rv-textarea {
  width:100%;
  padding:11px 13px;
  border:1px solid rgba(244,181,204,.32);
  border-radius:10px;
  outline:none;
  background:rgba(255,255,255,.07);
  color:#fff;
  font:inherit;
}
.lp-rv-input,.lp-rv-select { min-height:46px; }
.lp-rv-textarea { min-height:76px; resize:vertical; }
.lp-rv-select option { color:#fff; background:#23103b; }
.lp-rv-input:focus,.lp-rv-select:focus,.lp-rv-textarea:focus { border-color:#c64fd9; box-shadow:0 0 0 3px rgba(198,79,217,.22); }
.lp-rv-input:disabled,.lp-rv-select:disabled { opacity:.5; cursor:not-allowed; }
.lp-rv-date { color-scheme:dark; }
.lp-rv-hint { min-height:1em; margin:5px 2px 0; color:#ae9cbe; font-size:.71rem; }
.lp-rv-row { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.lp-rv-primary {
  min-height:45px;
  padding:11px 17px;
  border:0;
  border-radius:10px;
  color:#fff;
  background:linear-gradient(90deg,#c64fd9,#652d90);
  box-shadow:0 8px 22px rgba(198,79,217,.3);
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.lp-rv-primary:disabled { opacity:.6; cursor:wait; }
.lp-rv-full { width:100%; margin-top:21px; }
.lp-rv-link { padding:10px 2px; border:0; background:transparent; color:#c2b0d3; font:inherit; cursor:pointer; }
.lp-rv-link:hover { color:#fff; }
.lp-rv-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:21px; }
.lp-rv-actions .lp-rv-primary { flex:1; }
.lp-rv-msg { min-height:1.2em; margin:9px 0 0; text-align:center; font-size:.82rem; }
.lp-rv-msg.is-error { color:#ffaaa3; }
.lp-rv-msg.is-success { color:#addd45; }
.lp-rv-extras { margin:19px 0 4px; padding:15px; border:1px solid rgba(244,181,204,.24); border-radius:12px; background:rgba(255,255,255,.045); }
.lp-rv-extras legend { padding:0 7px; color:#fff; font-size:.84rem; font-weight:700; }
.lp-rv-extras legend small { color:#bba8cc; font-weight:400; }
.lp-rv-extras-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.lp-rv-extras-grid label { display:flex; align-items:center; gap:8px; padding:9px 10px; border:1px solid rgba(244,181,204,.18); border-radius:9px; color:#ddd0e9; font-size:.78rem; cursor:pointer; }
.lp-rv-extras-grid label:has(input:checked) { border-color:#c64fd9; background:rgba(198,79,217,.14); color:#fff; }
.lp-rv-extras-grid input { width:16px; height:16px; flex:0 0 auto; accent-color:#c64fd9; }
.lp-rv-extras-grid label span { color:inherit; }
.lp-rv-extra-total { margin:10px 2px 0; color:#f4b5cc; font-size:.74rem; text-align:right; }
.lp-rv-consent { display:flex; gap:9px; align-items:flex-start; margin:16px 0 0; color:#cdbbde; font-size:.76rem; line-height:1.45; }
.lp-rv-consent input { width:17px; height:17px; margin-top:1px; accent-color:#c64fd9; }
.lp-rv-consent a { color:#f4b5cc; }
.lp-rv-honeypot { position:absolute!important; left:-10000px!important; width:1px; height:1px; overflow:hidden; }
.lp-rv-summary { display:flex; flex-direction:column; gap:8px; margin-bottom:15px; padding:15px 17px; border:1px solid rgba(244,181,204,.2); border-radius:12px; background:rgba(255,255,255,.05); }
.lp-rv-summary-row { display:flex; justify-content:space-between; gap:12px; padding-bottom:8px; border-bottom:1px dashed rgba(255,255,255,.1); font-size:.82rem; }
.lp-rv-summary-row:last-child { padding-bottom:0; border-bottom:0; }
.lp-rv-summary-label { flex:0 0 auto; color:#bba9ca; }
.lp-rv-summary-value { color:#fff; font-weight:650; text-align:right; }
.lp-rv-total { display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; padding:13px 16px; border:1px solid rgba(198,79,217,.38); border-radius:11px; background:rgba(198,79,217,.12); }
.lp-rv-total span { color:#d9c9e9; font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; }
.lp-rv-total strong { color:#fff; font-size:1.3rem; }
.lp-rv-note { margin:0; color:#aa98ba; text-align:center; font-size:.72rem; line-height:1.5; }
.lp-rv-success { padding:24px 3px 6px; text-align:center; }
.lp-rv-success p { margin:10px auto 22px; max-width:420px; color:#d6c7e6; line-height:1.55; }
.lp-rv-success-icon { display:grid; place-items:center; width:62px; height:62px; margin:0 auto 16px; border-radius:50%; color:#fff; background:#78a518; font-size:1.8rem; font-weight:800; }
@media (max-width:560px) {
  .lp-rv-modal { padding:28px 20px 22px; }
  .lp-rv-row,.lp-rv-extras-grid { grid-template-columns:1fr; gap:0; }
  .lp-rv-extras-grid { gap:7px; }
}
