/* Astra concierge widget — neon-noir Vice City styling.
   Namespaced: every selector is prefixed .astra- so it never touches site styles.
   Uses the page's existing 'Pricedown' @font-face (declared inline by site pages)
   with display fallbacks; no extra font download. */
:root{
  --astra-pink:#ff2e88; --astra-cyan:#22e6ff; --astra-violet:#8a2be2;
  --astra-bg:#0a0618; --astra-panel:#120b26; --astra-line:#2a1745;
  --astra-text:#f4ecff; --astra-dim:#b9a8d8;
}
.astra-fab{
  position:fixed; right:18px; bottom:18px; z-index:2147483000;
  width:60px; height:60px; border-radius:50%; border:2px solid var(--astra-pink);
  background:radial-gradient(circle at 35% 30%, #2a1145, var(--astra-bg) 70%);
  color:#fff; cursor:pointer; padding:0;
  box-shadow:0 0 18px rgba(255,46,136,.55), 0 0 42px rgba(34,230,255,.25);
  display:flex; align-items:center; justify-content:center;
  transition:transform .18s ease, box-shadow .18s ease;
}
.astra-fab:hover{ transform:scale(1.06); box-shadow:0 0 26px rgba(255,46,136,.8), 0 0 60px rgba(34,230,255,.35); }
.astra-fab:focus-visible{ outline:3px solid var(--astra-cyan); outline-offset:3px; }
.astra-fab svg{ width:30px; height:30px; }
.astra-fab .astra-dot{
  position:absolute; top:-2px; right:-2px; width:14px; height:14px; border-radius:50%;
  background:var(--astra-cyan); box-shadow:0 0 10px var(--astra-cyan);
}
.astra-panel{
  position:fixed; right:18px; bottom:92px; z-index:2147483001;
  width:min(380px, calc(100vw - 36px)); height:min(560px, calc(100dvh - 130px));
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--astra-panel); color:var(--astra-text);
  border:1px solid var(--astra-line); border-radius:18px;
  box-shadow:0 0 32px rgba(138,43,226,.35), 0 18px 60px rgba(0,0,0,.6);
  font-family:'Segoe UI', system-ui, -apple-system, sans-serif; font-size:15px; line-height:1.5;
}
.astra-panel[hidden]{ display:none; }
.astra-head{
  display:flex; align-items:center; gap:10px; padding:12px 14px;
  background:linear-gradient(120deg, #1c0b33, #0f2b3d 60%, #1c0b33);
  border-bottom:1px solid var(--astra-line);
}
.astra-head h2{
  font-family:'Pricedown','Bebas Neue',sans-serif; font-size:26px; letter-spacing:2px;
  margin:0; color:#fff; text-shadow:0 0 12px var(--astra-pink), 0 0 28px rgba(255,46,136,.5);
  flex:1;
}
.astra-head .astra-sub{ font-size:13px; color:var(--astra-dim); letter-spacing:1px; text-transform:uppercase; }
.astra-head button{
  background:none; border:none; color:var(--astra-dim); font-size:20px; cursor:pointer;
  padding:4px 8px; border-radius:8px;
}
.astra-head button:hover{ color:#fff; }
.astra-head button:focus-visible{ outline:2px solid var(--astra-cyan); }
.astra-log{ flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; }
.astra-msg{ max-width:88%; padding:10px 13px; border-radius:14px; white-space:pre-line; }
.astra-msg.astra-bot{
  align-self:flex-start; background:#1a1030; border:1px solid var(--astra-line);
  border-bottom-left-radius:4px;
}
.astra-msg.astra-user{
  align-self:flex-end; background:linear-gradient(120deg,#3d0f2e,#123a4d);
  border:1px solid rgba(255,46,136,.4); border-bottom-right-radius:4px;
}
.astra-msg a.astra-cta{
  display:inline-block; margin-top:8px; padding:7px 14px; border-radius:999px;
  background:linear-gradient(90deg, var(--astra-pink), var(--astra-violet));
  color:#fff !important; text-decoration:none; font-weight:700; font-size:14px;
}
.astra-msg a.astra-cta:hover{ filter:brightness(1.15); }
.astra-quick{ display:flex; flex-wrap:wrap; gap:8px; padding:0 14px 10px; }
.astra-quick button{
  font-size:14px; padding:6px 12px; border-radius:999px; cursor:pointer;
  background:#1a1030; color:var(--astra-cyan); border:1px solid rgba(34,230,255,.4);
}
.astra-quick button:hover{ background:#241643; }
.astra-quick button:focus-visible{ outline:2px solid var(--astra-cyan); }
.astra-bar{ display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--astra-line); }
.astra-bar input{
  flex:1; min-width:0; padding:10px 14px; border-radius:999px; font-size:15px;
  background:#0d0820; color:var(--astra-text); border:1px solid var(--astra-line);
}
.astra-bar input:focus{ outline:none; border-color:var(--astra-cyan); box-shadow:0 0 10px rgba(34,230,255,.35); }
.astra-bar button{
  width:44px; height:44px; border-radius:50%; border:1px solid var(--astra-line);
  background:#1a1030; color:#fff; cursor:pointer; font-size:18px; flex:none;
  display:flex; align-items:center; justify-content:center;
}
.astra-bar button:hover{ border-color:var(--astra-pink); }
.astra-bar button:focus-visible{ outline:2px solid var(--astra-cyan); }
.astra-bar button.astra-listening{
  background:var(--astra-pink); border-color:#fff; animation:astra-pulse 1.2s infinite;
}
@keyframes astra-pulse{ 0%,100%{ box-shadow:0 0 6px var(--astra-pink);} 50%{ box-shadow:0 0 22px var(--astra-pink);} }
.astra-typing{ font-style:italic; color:var(--astra-dim); }
.astra-note{ font-size:13px; color:var(--astra-dim); text-align:center; padding:0 14px 10px; }
@media (max-width:480px){
  .astra-fab{ right:14px; bottom:14px; }
  .astra-panel{ right:12px; bottom:86px; }
}
@media (prefers-reduced-motion:reduce){
  .astra-fab,.astra-bar button.astra-listening{ animation:none; transition:none; }
}

/* CG-ADV astra-reco — neon-noir "You might like:" recommendation layer */
.astra-reco {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed rgba(255,46,136,.35);
  font-size: .92em;
}
.astra-reco-tag {
  color: #ff2e88;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .85em;
}
.astra-reco a { color: #22e6ff; }
.astra-reco-blurb { opacity: .85; }
