/* =====================================================
BANGALORE CAFE TODAY'S SPECIALS POPUP — v2
Maroon & Cream Theme Matched
===================================================== */
html.bdrsp-lock, html.bdrsp-lock body{ overflow:hidden; }

/* overlay */
.bdrsp-overlay{ 
  position:fixed; 
  inset:0; 
  z-index:99990; 
  background:rgba(63,7,20,.85);
  -webkit-backdrop-filter:blur(7px); 
  backdrop-filter:blur(7px);
  opacity:0; 
  visibility:hidden; 
  transition:opacity .4s ease, visibility .4s; 
}
.bdrsp-overlay.is-open{ 
  opacity:1; 
  visibility:visible; 
}

/* modal — maroon theme like Bangalore Cafe */
.bdrsp-modal{ 
  position:relative; 
  width:min(880px,92vw); 
  max-height:92vh; 
  overflow-y:auto;
  margin:4vh auto; 
  border-radius:24px;
  background:linear-gradient(165deg, #6e0f24 0%, #560a1b 70%, #3f0714 100%);
  border-top:6px solid #f5a623; 
  border-bottom:1px solid rgba(245,166,35,.25);
  box-shadow:0 40px 90px rgba(0,0,0,.55); 
  padding:46px 40px 30px;
  transform:translateY(36px) scale(.95); 
  opacity:0;
  transition:transform .5s cubic-bezier(.2,.7,.3,1), opacity .5s; 
}
.bdrsp-overlay.is-open .bdrsp-modal{ 
  transform:none; 
  opacity:1; 
}
.bdrsp-modal::before{ 
  content:""; 
  position:absolute; 
  top:0; 
  left:0; 
  right:0; 
  height:140px;
  background:radial-gradient(420px 140px at 50% 0, rgba(245,166,35,.2), transparent 70%); 
  pointer-events:none; 
}

/* close */
.bdrsp-close{ 
  position:absolute; 
  top:14px; 
  right:14px; 
  width:44px; 
  height:44px; 
  border-radius:50%;
  border:1px solid rgba(255,255,255,.3); 
  background:rgba(255,255,255,.06); 
  color:#fbeede;
  font-size:20px; 
  line-height:1; 
  cursor:pointer; 
  transition:.35s; 
  z-index:2; 
}
.bdrsp-close:hover{ 
  background:#f5a623; 
  color:#3f0714; 
  transform:rotate(90deg); 
}

/* head */
.bdrsp-head{ 
  text-align:center; 
  margin-bottom:26px; 
  position:relative; 
}
.bdrsp-eyebrow{ 
  display:inline-block; 
  font-size:11px; 
  letter-spacing:3px; 
  text-transform:uppercase;
  color:#f5a623; 
  font-weight:700; 
  animation:bdrspFade .8s .1s both; 
}
.bdrsp-head h3{  
  font-size:clamp(28px,4vw,42px);
  color:#fbeede; 
  line-height:1.1; 
  margin:6px 0 4px; 
  animation:bdrspFade .8s .2s both; 
}
.bdrsp-head h3 em{ 
  color:#f5a623; 
}
.bdrsp-date{ 
  font-size:13px; 
  color:rgba(251,238,222,.72); 
  animation:bdrspFade .8s .3s both; 
}

@keyframes bdrspFade{ 
  from{opacity:0; transform:translateY(14px);} 
  to{opacity:1; transform:none;} 
}

/* cards — desktop 2 per page / mobile 1 per page */
.bdrsp-page{ 
  display:grid; 
  grid-template-columns:1fr 1fr; 
  gap:22px; 
  min-height:400px; 
  align-items:stretch; 
}
.bdrsp-card{ 
  background:#fbeede; 
  border:1px solid rgba(245,166,35,.25); 
  border-radius:18px; 
  overflow:hidden;
  box-shadow:0 14px 34px rgba(0,0,0,.35); 
  display:flex; 
  flex-direction:column;
  animation:bdrspCardIn .7s cubic-bezier(.2,.7,.3,1) both; 
  animation-delay:var(--d,0s);
  transition:transform .35s; 
}
.bdrsp-card:hover{ 
  transform:translateY(-6px); 
}

@keyframes bdrspCardIn{ 
  from{opacity:0; transform:translateY(28px) scale(.97);} 
  to{opacity:1; transform:none;} 
}

.bdrsp-media{ 
  position:relative; 
  height:190px; 
  overflow:hidden; 
  background:#6e0f24; 
}
.bdrsp-media img{ 
  width:100%; 
  height:100%; 
  object-fit:cover; 
  display:block; 
  transition:transform .8s; 
}
.bdrsp-card:hover .bdrsp-media img{ 
  transform:scale(1.08); 
}

.bdrsp-badge{ 
  position:absolute; 
  top:12px; 
  left:12px; 
  background:#f5a623; 
  color:#3f0714;
  font-size:11px; 
  font-weight:800; 
  letter-spacing:1.5px; 
  text-transform:uppercase;
  padding:6px 14px; 
  border-radius:4px; 
  box-shadow:0 6px 14px rgba(0,0,0,.3); 
}

.bdrsp-day{ 
  position:absolute; 
  bottom:10px; 
  right:10px; 
  background:rgba(63,7,20,.85); 
  color:#f5a623;
  font-size:11px; 
  font-weight:700; 
  letter-spacing:1px; 
  text-transform:uppercase;
  padding:6px 12px; 
  border-radius:50px; 
  -webkit-backdrop-filter:blur(4px); 
  backdrop-filter:blur(4px); 
}

.bdrsp-body{ 
  padding:20px 22px 22px; 
  text-align:center; 
}
.bdrsp-body h4{ 
  font-size:24px; 
  color:#6e0f24; 
  margin:0 0 8px; 
}
.bdrsp-body p{ 
  font-size:13.5px; 
  color:#6f5d54; 
  line-height:1.6; 
  margin:0 0 12px; 
}
.bdrsp-price{ 
  font-size:26px; 
  font-weight:700; 
  color:#e8951a; 
}

/* foot */
.bdrsp-foot{ 
  display:flex; 
  align-items:center; 
  justify-content:space-between; 
  gap:18px; 
  margin-top:26px; 
  flex-wrap:wrap; 
}
.bdrsp-dots{ 
  display:flex; 
  gap:10px; 
}
.bdrsp-dot{ 
  width:36px; 
  height:36px; 
  border-radius:50%; 
  border:1px dashed rgba(63,7,20,.5);
  background:transparent; 
  color:#fbeede; 
  font-size:13px; 
  font-weight:700; 
  cursor:pointer; 
  transition:.3s; 
}
.bdrsp-dot:hover{ 
  border-color:#f5a623; 
  color:#f5a623; 
  transform:translateY(-3px); 
}
.bdrsp-dot.is-active{ 
  background:#f5a623; 
  border-color:#f5a623; 
  color:#3f0714;
  box-shadow:0 6px 16px rgba(245,166,35,.45); 
  transform:scale(1.1); 
}

.bdrsp-menu-btn{ 
  display:inline-flex; 
  align-items:center; 
  gap:10px; 
  background:#f5a623; 
  color:#3f0714;
  padding:14px 28px; 
  border-radius:50px; 
  font-weight:800; 
  font-size:13px; 
  letter-spacing:1.5px;
  text-transform:uppercase; 
  text-decoration:none; 
  transition:.3s; 
  margin-left:auto;
  box-shadow:0 10px 26px rgba(245,166,35,.35); 
}
.bdrsp-menu-btn i{ 
  transition:transform .3s; 
}
.bdrsp-menu-btn:hover{ 
  background:#fbeede; 
  transform:translateY(-2px); 
}
.bdrsp-menu-btn:hover i{ 
  transform:translateX(5px); 
}

/* launcher — RIGHT side, Bangalore Cafe colors */
.bdrsp-launcher{ 
  position:fixed; 
  right:35px; 
  bottom:202px; 
  z-index:99980; 
  display:inline-flex;
  align-items:center; 
  gap:10px; 
  background:linear-gradient(120deg,#6e0f24,#560a1b);
  border:1px solid rgba(245,166,35,.55); 
  border-radius:50px; 
  padding:13px 22px;
  font-size:13px; 
  font-weight:800; 
  letter-spacing:1px; 
  text-transform:uppercase; 
  cursor:pointer;
  box-shadow:0 14px 34px rgba(0,0,0,.45); 
  animation:bdrspFloat 3s ease-in-out infinite;
  transition:background 1s ease, background-image 1s ease, transform .3s; 
}
.bdrsp-launcher span{ 
  color:#f5a623 !important; 
  display:inline-block !important;
  text-shadow:0 1px 2px rgba(0,0,0,.45); 
  font-size:inherit; 
  letter-spacing:inherit; 
  text-transform:inherit; 
}
.bdrsp-launcher i{ 
  color:#f5a623 !important; 
  font-size:16px; 
}
.bdrsp-launcher::after{ 
  content:""; 
  position:absolute; 
  inset:-4px; 
  border-radius:50px;
  border:2px solid rgba(245,166,35,.5); 
  animation:bdrspPing 2.2s ease-out infinite; 
  pointer-events:none; 
}
.bdrsp-launcher:hover{ 
  transform:translateY(-3px) scale(1.04); 
}
.bdrsp-launcher:hover span,
.bdrsp-launcher:hover i{ 
  color:#fbeede !important; 
}

@keyframes bdrspPing{ 
  0%{transform:scale(.9);opacity:.8} 
  100%{transform:scale(1.3);opacity:0} 
}

@keyframes bdrspFloat{ 
  0%,100%{transform:translateY(0)} 
  50%{transform:translateY(-6px)} 
}

/* mobile */
@media (max-width:767px){
  .bdrsp-modal{ 
    padding:34px 18px 20px; 
    margin:3vh auto; 
  }
  .bdrsp-page{ 
    grid-template-columns:1fr; 
    min-height:0; 
  }
  .bdrsp-media{ 
    height:200px; 
  }
  .bdrsp-foot{ 
    justify-content:center; 
  }
  .bdrsp-menu-btn{ 
    margin-left:0; 
    width:100%; 
    justify-content:center; 
  }
  .bdrsp-launcher{ 
    right:100px; 
    bottom:14px; 
    padding:12px 18px; 
    font-size:11px; 
  }
}

@media (prefers-reduced-motion: reduce){
  .bdrsp-card,
  .bdrsp-launcher,
  .bdrsp-launcher::after,
  .bdrsp-eyebrow,
  .bdrsp-head h3,
  .bdrsp-date{ 
    animation:none !important; 
  }
}