/* ============================================================
   AIgarve — AI Receptionist widget
   ============================================================ */
:root{
  --rc-accent:#D94F0A;
  --rc-accent-dark:#c4460a;
  --rc-cream:#F8F6F1;
  --rc-teal:#12302C;
  --rc-ink:#0C1A3A;
  --rc-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif;
}
.rc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- Hero: ASK ALICE button — sits right above the intro text ---------- */
.rc-hero-btn{
  display:inline-flex;align-items:center;gap:11px;
  margin-bottom:14px;
  padding:15px 28px;border:none;border-radius:999px;cursor:pointer;
  background:linear-gradient(180deg,rgba(18,48,44,.34),rgba(18,48,44,.52));
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(248,246,241,.28);
  color:#F8F6F1;font:600 15px/1 var(--rc-font);letter-spacing:.05em;
  box-shadow:0 10px 30px rgba(0,0,0,.28);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
  pointer-events:auto;
}
.rc-hero-btn:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(0,0,0,.38);border-color:rgba(246,196,69,.65)}
.rc-hero-btn svg{width:18px;height:18px;color:#F5A623;flex:none}
.rc-hero-btn-dot{width:8px;height:8px;border-radius:50%;background:#f6c445;flex:none;animation:rc-dotpulse 1.8s ease-in-out infinite}
@keyframes rc-dotpulse{0%,100%{opacity:.6;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}

/* ---------- Launcher: ASK ALICE orb (glass card 1) ---------- */
.rc-orb-panel{
  display:flex;align-items:center;gap:14px;
  margin-bottom:16px;
  padding:18px 22px;
  border-radius:16px;
  max-width:360px;
  background:linear-gradient(180deg,rgba(18,48,44,.3),rgba(18,48,44,.48));
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(248,246,241,.12);
  box-shadow:0 8px 32px rgba(12,26,58,.18);
  align-self:flex-start;
  transition:opacity .25s ease,transform .25s ease;
}
.rc-orb-panel.hidden{opacity:0;transform:scale(.85);pointer-events:none}

.rc-orb-wrap{
  position:relative;z-index:9999;
  width:120px;height:120px;flex:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;pointer-events:auto;
  -webkit-tap-highlight-color:rgba(246,196,69,.3);
}
/* concentric guide rings */
.rc-orb-ring{position:absolute;border-radius:50%;border:1px solid rgba(248,246,241,.28);pointer-events:none;z-index:1}
.rc-orb-ring.r1{width:96px;height:96px}
.rc-orb-ring.r2{width:116px;height:116px;border-color:rgba(248,246,241,.14)}
/* breathing blurred halo — site sun yellow */
.rc-orb-halo{
  position:absolute;width:78px;height:78px;border-radius:50%;
  background:rgba(246,196,69,.55);filter:blur(28px);
  animation:rc-breathe 3.2s ease-in-out infinite;pointer-events:none;
}
@keyframes rc-breathe{0%,100%{transform:scale(.86);opacity:.75}50%{transform:scale(1.18);opacity:1}}
/* the glass orb */
.rc-orb{
  position:relative;width:88px;height:88px;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  background:rgba(246,196,69,.9);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(248,246,241,.5);
  box-shadow:0 10px 30px rgba(246,196,69,.4);
  transition:transform .2s ease,box-shadow .2s ease;
}
.rc-orb-wrap:hover .rc-orb{transform:translateY(-3px);box-shadow:0 16px 40px rgba(12,26,58,.45)}
.rc-orb-name{font-family:var(--rc-font);font-style:italic;font-weight:600;font-size:13px;color:#12302C;line-height:1;text-align:center;letter-spacing:.3px;transition:opacity .15s ease}

/* Voice wave bars inside orb */
.rc-orb-waves{display:none;gap:2.5px;align-items:center;height:18px}
.rc-orb-waves span{display:block;width:2.5px;height:6px;border-radius:2px;background:#12302C;animation:rc-wave .7s ease-in-out infinite}
.rc-orb-waves span:nth-child(2){animation-delay:.12s}
.rc-orb-waves span:nth-child(3){animation-delay:.24s}
.rc-orb-waves span:nth-child(4){animation-delay:.36s}
.rc-orb-waves span:nth-child(5){animation-delay:.48s}
@keyframes rc-wave{0%,100%{height:5px}50%{height:16px}}
/* When call is active (not talking): show waves, hide text */
.rc-orb-panel.calling:not(.talking) .rc-orb-waves{display:flex}
.rc-orb-panel.calling:not(.talking) .rc-orb-name{display:none}
/* When Alice is talking: show text ("End Call"), hide waves */
.rc-orb-panel.calling.talking .rc-orb-waves{display:none}
.rc-orb-panel.calling.talking .rc-orb-name{display:block}

/* ---------- Panel ---------- */
.rc-panel{
  position:fixed;right:22px;bottom:22px;z-index:10000;
  width:min(384px,calc(100vw - 24px));height:min(600px,calc(100vh - 44px));
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--rc-cream);border-radius:20px;
  box-shadow:0 24px 64px rgba(12,26,58,.28);
  opacity:0;transform:translateY(16px) scale(.97);pointer-events:none;
  transition:opacity .22s ease,transform .22s ease;
  font-family:var(--rc-font);
}
.rc-panel.open{opacity:1;transform:none;pointer-events:auto}

/* header */
.rc-head{
  display:flex;align-items:center;gap:12px;
  padding:16px 18px;
  background:linear-gradient(120deg,var(--rc-teal),#0d231f);
  color:#fff;
}
.rc-avatar{
  width:40px;height:40px;flex:none;border-radius:50%;
  display:grid;place-items:center;font-weight:800;font-size:16px;
  background:#f6c445;color:#12302c;
  box-shadow:0 0 0 2px rgba(255,255,255,.25);
}.rc-head-name{font-weight:700;font-size:15px;line-height:1.2}
.rc-head-status{display:flex;align-items:center;gap:6px;font-size:12px;opacity:.85;margin-top:2px}
.rc-head-status i{width:7px;height:7px;border-radius:50%;background:#f6c445;display:inline-block}
.rc-close{
  margin-left:auto;width:32px;height:32px;border:none;border-radius:8px;cursor:pointer;
  background:rgba(255,255,255,.12);color:#fff;font-size:16px;line-height:1;
  transition:background .15s;
}
.rc-close:hover{background:rgba(255,255,255,.24)}

/* messages */
.rc-body{flex:1;overflow-y:auto;padding:16px 14px 8px;scroll-behavior:smooth}
.rc-msg{display:flex;margin-bottom:12px;animation:rc-in .25s ease both}
@keyframes rc-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rc-msg.bot{justify-content:flex-start}
.rc-msg.user{justify-content:flex-end}
.rc-bubble{
  max-width:82%;padding:10px 14px;border-radius:16px;
  font-size:14px;line-height:1.5;white-space:pre-line;
}
.rc-msg.bot .rc-bubble{background:#fff;color:var(--rc-ink);border-bottom-left-radius:5px;box-shadow:0 1px 3px rgba(12,26,58,.08)}
.rc-msg.user .rc-bubble{background:#f6c445;color:#12302c;border-bottom-right-radius:5px}

/* typing indicator */
.rc-typing{display:flex;gap:4px;padding:12px 16px}
.rc-typing span{width:7px;height:7px;border-radius:50%;background:#c8c2b4;animation:rc-dot 1.1s infinite}
.rc-typing span:nth-child(2){animation-delay:.15s}
.rc-typing span:nth-child(3){animation-delay:.3s}
@keyframes rc-dot{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-4px);opacity:1}}

/* quick chips */
.rc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:4px 14px 10px}
.rc-chip{
  border:1.5px solid rgba(217,79,10,.45);background:#fff;color:var(--rc-accent-dark);
  font:600 12.5px var(--rc-font);padding:7px 12px;border-radius:999px;cursor:pointer;
  transition:all .15s;
}
.rc-chip:hover{background:var(--rc-accent);border-color:var(--rc-accent);color:#fff}

/* lead-capture form inside chat */
.rc-form{background:#fff;border-radius:16px;border-bottom-left-radius:5px;padding:14px;max-width:88%;box-shadow:0 1px 3px rgba(12,26,58,.08)}
.rc-form p{margin:0 0 10px;font-size:13.5px;line-height:1.45;color:var(--rc-ink)}
.rc-form input,.rc-form textarea{
  width:100%;box-sizing:border-box;margin-bottom:8px;
  border:1.5px solid #e4ded0;border-radius:10px;padding:9px 12px;
  font:400 13.5px var(--rc-font);background:#fbfaf7;color:var(--rc-ink);
}
.rc-form input:focus,.rc-form textarea:focus{outline:none;border-color:var(--rc-accent)}
.rc-form button{
  width:100%;border:none;border-radius:10px;padding:10px;cursor:pointer;
  background:#f6c445;color:#12302c;font:700 13.5px var(--rc-font);
  transition:background .15s;
}
.rc-form button:hover{background:var(--rc-accent-dark)}

/* footer input */
.rc-foot{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid #e9e3d5;background:#fff}
.rc-foot input{
  flex:1;border:1.5px solid #e4ded0;border-radius:999px;padding:10px 16px;
  font:400 14px var(--rc-font);background:#fbfaf7;color:var(--rc-ink);
}
.rc-foot input:focus{outline:none;border-color:var(--rc-accent)}
.rc-send{
  width:42px;height:42px;flex:none;border:none;border-radius:50%;cursor:pointer;
  background:#f6c445;color:#12302c;display:grid;place-items:center;
  transition:background .15s;
}
.rc-send:hover{background:var(--rc-accent-dark)}
.rc-send svg{width:18px;height:18px}
.rc-powered{text-align:center;font-size:10.5px;color:#a09a8c;padding:0 0 8px;background:var(--rc-cream)}

/* section spotlight: pulse the "Take your spot" heading */
.rc-spotlight{animation:rc-glow 1.8s ease-in-out 3}
@keyframes rc-glow{0%,100%{text-shadow:none}50%{text-shadow:0 0 18px rgba(217,79,10,.65)}}

@media (max-width:980px){
  .rc-doors-row{flex-direction:column;align-items:flex-start}
  .rc-orb-panel{align-self:flex-start}
}
@media (max-width:520px){
  .rc-panel{right:12px;left:12px;width:auto;bottom:12px;height:min(560px,calc(100vh - 24px))}
  .rc-hero-btn{padding:13px 22px;font-size:14px}
}

/* Voice call active state */
.rc-orb-wrap{cursor:pointer}

/* Glass card 1: orb + AI receptionist text */
.rc-orb-copy{display:flex;flex-direction:column;gap:3px;max-width:220px}
.rc-orb-copy span{font:400 13px/1.5 var(--rc-font);color:rgba(248,246,241,.8)}

/* Glass card 2: hero content (eyebrow, title, body, tags) */
.rc-hero-card{
  padding:18px 22px;
  border-radius:16px;
  background:linear-gradient(180deg,rgba(18,48,44,.3),rgba(18,48,44,.48));
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(248,246,241,.12);
  box-shadow:0 8px 32px rgba(12,26,58,.18);
  margin-top:16px;
}

.rc-orb-panel.calling .rc-orb-halo{
  animation:rc-pulse-call 1.2s ease-in-out infinite !important;
}
@keyframes rc-pulse-call{
  0%,100%{transform:scale(1);opacity:.8}
  50%{transform:scale(1.35);opacity:1}
}
