/* EPIC! Concierge — guest chat. Black + electric blue, theme fonts when present.
   Layers: launcher 9995 / panel 9996 sit above the mobile book bar (9990) and below the booking sheet (100100). */
.ecc{--ecc-blue:#0012FD;--ecc-panel:#07070c;--ecc-bub:#17171f;--ecc-line:rgba(255,255,255,.12);--ecc-mute:rgba(255,255,255,.62);
  --ecc-ease:cubic-bezier(.22,1,.36,1);--ecc-b:calc(16px + env(safe-area-inset-bottom,0px));--ecc-r:16px;
  --ecc-w:380px;--ecc-h:min(640px,calc(100vh - var(--ecc-b) - 24px));--ecc-h:min(640px,calc(100dvh - var(--ecc-b) - 24px));
  font:400 15px/1.45 var(--sans,"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif);color:#fff;-webkit-font-smoothing:antialiased}
/* The button stays in the bottom-right corner. On-page booking bars move over to make room for it:
   the hero's Dates/Guests bar ends before the button, and the phone Book bar keeps its right side clear,
   with the button sitting centered inside that space. */
.ecc-has .evh-bookbar{margin-right:104px}
@media (min-width:600px){.ecc{--ecc-r:36px}}
.ecc-still .ecc-fab,.ecc-still .ecc-panel{transition:none!important}
@media (max-width:480px){.ecc-has .evh-bookbar{width:calc(100% - 68px);margin-right:0}}
@media (max-width:879px){
  .ecc-has .epic-bookbar{padding-right:calc(14px + 56px + 12px)!important}
  body.epic-bar-on .ecc{--ecc-b:max(6px,calc(var(--epic-bar-h,68px) - 62px))}
}
@media (max-width:599px),(pointer:coarse) and (max-height:500px){.ecc{--ecc-w:100vw;--ecc-h:var(--ecc-vvh,100dvh)}.ecc .ecc-fab{width:56px!important;height:56px!important}.ecc-ic{width:56px}.ecc-lbl{left:20px}}
.ecc *,.ecc *::before,.ecc *::after{box-sizing:border-box}
.ecc button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;text-transform:none!important;letter-spacing:normal;min-width:0!important;min-height:0!important;line-height:1.3!important;margin:0!important}

/* the theme's back-to-top button moves up to make room */
.ecc-has .evh-top{bottom:calc(16px + env(safe-area-inset-bottom,0px) + 72px)}
@media (max-width:879px){.ecc-has body.epic-bar-on .evh-top{bottom:calc(var(--epic-bar-h,64px) + 84px)}}

/* launcher */
.ecc-fab{position:fixed;right:var(--ecc-r);bottom:calc(var(--ecc-b) + var(--ecc-lift,0px));z-index:9995;width:60px!important;height:60px!important;border-radius:999px!important;border:0!important;padding:0!important;
  display:block;background:var(--ecc-blue)!important;color:#fff!important;box-shadow:0 10px 30px -6px rgba(0,18,253,.65),0 0 0 1px rgba(255,255,255,.12) inset;
  transition:width .46s var(--ecc-ease),transform .3s var(--ecc-ease),box-shadow .3s ease,opacity .25s ease,bottom .35s var(--ecc-ease)}
.ecc-fab-in{position:absolute;inset:0;border-radius:inherit;overflow:hidden;display:flex;align-items:center;justify-content:flex-end}
.ecc-ic{flex:none;width:60px;height:100%;display:grid;place-items:center}
.ecc-lbl{position:absolute;left:22px;top:50%;transform:translate(8px,-50%);white-space:nowrap;font:600 15px/1 var(--sans,"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif);letter-spacing:.01em;opacity:0;
  transition:opacity .26s ease,transform .3s var(--ecc-ease);pointer-events:none}
.ecc-lbl b{font-weight:800}
/* intro: grow into a pill (real width), words cascade in, then out, then collapse */
.ecc .ecc-fab.ecc-pill{width:var(--ecc-pill-w,240px)!important}
.ecc-fab.ecc-lblon .ecc-lbl{opacity:1;transform:translate(0,-50%);transition:opacity .34s ease .04s,transform .4s var(--ecc-ease) .04s}
/* the reminder: a soft blue glow that breathes out from the button */
.ecc-fab::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0}
.ecc-fab.ecc-pulse::after{animation:ecc-glow 3.6s cubic-bezier(.22,1,.36,1) infinite}
.ecc-fab.ecc-pulse{animation:ecc-breathe 3.6s ease-in-out infinite}
@keyframes ecc-glow{0%{opacity:.9;box-shadow:0 0 0 0 rgba(60,90,255,.75)}55%{opacity:0;box-shadow:0 0 0 18px rgba(0,18,253,0)}100%{opacity:0;box-shadow:0 0 0 18px rgba(0,18,253,0)}}
@keyframes ecc-breathe{0%,100%{box-shadow:0 10px 30px -6px rgba(0,18,253,.65),0 0 0 1px rgba(255,255,255,.12) inset}
  25%{box-shadow:0 0 34px 6px rgba(30,60,255,.85),0 0 0 1px rgba(255,255,255,.22) inset}}
.ecc-fab:hover{transform:translateY(-2px);box-shadow:0 14px 40px -6px rgba(0,18,253,.8),0 0 0 1px rgba(255,255,255,.16) inset}
.ecc-fab:focus-visible{outline:2px solid #fff;outline-offset:3px}
.ecc-dot{position:absolute;top:6px;right:6px;width:12px;height:12px;border-radius:50%;background:#22d36b;box-shadow:0 0 0 2px var(--ecc-blue)}
.ecc-badge{position:absolute;top:-4px;left:-4px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#fff;color:#000;font-size:12px;font-weight:700;line-height:22px;text-align:center}
.ecc-badge[hidden]{display:none}
.ecc-show .ecc-fab{opacity:0;pointer-events:none}
/* entrance: fades in and up like the page's other elements (same .9s timing as the hero's booking bar) */
.ecc-pre .ecc-fab{opacity:0!important;translate:0 18px;pointer-events:none}
.ecc-enter .ecc-fab{transition:opacity .9s ease,translate .9s cubic-bezier(.22,1,.36,1)!important}

/* measures where the button sits with no lift */
.ecc-probe{position:fixed;right:0;bottom:var(--ecc-b);width:0;height:0;pointer-events:none;visibility:hidden}

/* date picker inside the chat */
.ecc-cal{margin-top:8px;padding:10px;border-radius:14px;background:#101018;box-shadow:0 0 0 1px var(--ecc-line) inset;width:min(300px,100%)}
.ecc-m--bot:has(.ecc-cal){max-width:94%}
.ecc-cal-load{padding:14px 6px;font-size:13px;color:var(--ecc-mute);text-align:center}
.ecc-cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.ecc-cal-hd b{font-weight:700;font-size:14px}
.ecc-cal-nav{width:34px!important;height:34px!important;border:0!important;border-radius:50%!important;padding:0!important;background:#1d1d28!important;color:#fff!important;font-size:20px!important}
.ecc-cal-nav:disabled{opacity:.3}
.ecc-cal-wk,.ecc-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.ecc-cal-wk span{font-size:11px;color:var(--ecc-mute);padding:2px 0}
.ecc-d{aspect-ratio:1;width:100%!important;border:0!important;border-radius:9px!important;padding:0!important;background:transparent!important;color:#fff!important;font-size:13px!important;font-weight:600;
  animation:ecc-countin .46s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--i,0) * 14ms);transition:background .2s ease}
.ecc-d:not(:disabled):hover{background:rgba(255,255,255,.1)!important}
.ecc-d:disabled{color:rgba(255,255,255,.22)!important;text-decoration:line-through;text-decoration-color:rgba(255,255,255,.18);cursor:default}
.ecc-d.is-out{box-shadow:0 0 0 1px rgba(80,110,255,.55) inset}
.ecc-d.is-in{background:rgba(0,18,253,.32)!important;border-radius:4px!important}
.ecc-d.is-ci,.ecc-d.is-co{background:var(--ecc-blue)!important;box-shadow:0 4px 14px -4px rgba(0,18,253,.9);text-decoration:none}
@keyframes ecc-countin{0%{opacity:0;transform:scale(.3) translateY(9px)}70%{opacity:1;transform:scale(1.06)}100%{opacity:1;transform:none}}
.ecc-cal-ft{margin-top:8px;display:grid;gap:8px}
.ecc-cal-sum{font-size:13px;color:#dfe3ff;min-height:18px}
.ecc-cal-g{display:flex;align-items:center;gap:10px;font-size:13px}
.ecc-cal-g span{flex:1;color:var(--ecc-mute)}
.ecc-cal-g button{width:30px!important;height:30px!important;border:0!important;border-radius:50%!important;padding:0!important;background:#1d1d28!important;color:#fff!important;font-size:18px!important}
.ecc-cal-g button:disabled{opacity:.3}
.ecc-cal-g b{min-width:22px;text-align:center}
.ecc-cal-go{padding:11px 14px!important;border:0!important;border-radius:10px!important;background:var(--ecc-blue)!important;color:#fff!important;font-weight:700!important;font-size:14px!important}
.ecc-cal-go:disabled{background:#22222e!important;color:rgba(255,255,255,.45)!important}
.ecc-cal.is-done,.ecc-cal.is-old{opacity:.55;pointer-events:none}
.ecc-book.ecc-busy{opacity:.75}

/* panel: grows out of the launcher by its real width/height; content is laid out at full size and revealed */
.ecc-panel{position:fixed;right:var(--ecc-r);bottom:calc(var(--ecc-b) + var(--ecc-lift,0px));z-index:9996;width:60px;height:60px;border-radius:30px;overflow:hidden;background:var(--ecc-panel);
  box-shadow:0 30px 90px -20px rgba(0,0,0,.95),0 0 0 1px var(--ecc-line);
  transition:width .42s var(--ecc-ease),height .42s var(--ecc-ease),border-radius .42s var(--ecc-ease),right .42s var(--ecc-ease),bottom .42s var(--ecc-ease)}
.ecc-panel[hidden]{display:none}
.ecc-open .ecc-panel{bottom:var(--ecc-b);width:var(--ecc-w);height:var(--ecc-h);border-radius:20px}
@media (max-width:599px),(pointer:coarse) and (max-height:500px){
  .ecc-open .ecc-panel{right:0;bottom:var(--ecc-kb,0px);border-radius:0}
  .ecc-show .ecc-panel{transition:none} /* keyboard open/close resizes instantly */
}
.ecc-inner{position:absolute;right:0;bottom:0;width:var(--ecc-w);height:var(--ecc-h);display:flex;flex-direction:column;opacity:0;transform:translateY(10px);
  transition:opacity .3s ease,transform .34s var(--ecc-ease)}
.ecc-show .ecc-inner{opacity:1;transform:none}
html.ecc-lock,html.ecc-lock body{overflow:hidden!important}

.ecc-head{display:flex;align-items:center;gap:12px;padding:14px 12px 14px 16px;padding-top:max(14px,env(safe-area-inset-top,0px));border-bottom:1px solid var(--ecc-line);flex:none}
.ecc-av--img{background:#000!important;overflow:hidden;border-radius:10px!important}
.ecc-av--img img{width:100%;height:100%;object-fit:cover;display:block}
.ecc-av{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--ecc-blue);font:400 19px/1 var(--display,"Instrument Serif",Georgia,serif);letter-spacing:.02em}
.ecc-hd{flex:1;min-width:0}
.ecc-name{font:400 21px/1.1 var(--display,"Instrument Serif",Georgia,serif)}
.ecc-sub{display:flex;align-items:center;gap:6px;margin-top:3px;font-size:12px;color:var(--ecc-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ecc-sub i{width:7px;height:7px;border-radius:50%;background:#22d36b;flex:none}
.ecc-x{width:44px!important;height:44px!important;border-radius:50%!important;border:0!important;padding:0!important;background:transparent!important;display:grid;place-items:center;color:#fff!important;flex:none}
.ecc-x:hover{background:rgba(255,255,255,.08)!important}

.ecc-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px 14px 8px;display:flex;flex-direction:column;gap:8px;-webkit-overflow-scrolling:touch}
.ecc-m{max-width:84%;opacity:0;transform:translateY(8px);transition:opacity .34s ease,transform .38s var(--ecc-ease)}
.ecc-m.ecc-in,.ecc-sys.ecc-in{opacity:1;transform:none}
.ecc-b{padding:10px 13px;border-radius:16px;background:var(--ecc-bub);word-wrap:break-word;overflow-wrap:anywhere}
.ecc-b a{color:#9fb0ff;text-decoration:underline;text-underline-offset:2px}
.ecc-b strong{font-weight:700}
.ecc-li{display:block;padding-left:14px;position:relative}
.ecc-li::before{content:"";position:absolute;left:3px;top:.62em;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7}
.ecc-m--bot,.ecc-m--jason{align-self:flex-start}
.ecc-m--bot .ecc-b,.ecc-m--jason .ecc-b{border-bottom-left-radius:5px}
.ecc-m--guest{align-self:flex-end}
.ecc-m--guest .ecc-b{background:var(--ecc-blue);border-bottom-right-radius:5px}
.ecc-m--guest.ecc-failed .ecc-b{opacity:.55}
.ecc-m--jason .ecc-b{box-shadow:0 0 0 1px rgba(0,18,253,.9) inset;background:#0d1030}
.ecc-who{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ecc-mute);margin:0 0 4px 4px}
.ecc-sys{align-self:center;max-width:90%;margin:4px 0;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.07);font-size:12px;color:var(--ecc-mute);text-align:center;opacity:0;transition:opacity .4s ease}
.ecc-typing .ecc-b{display:flex;gap:5px;padding:14px 15px}
.ecc-typing span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.7);animation:ecc-dot 1.2s infinite ease-in-out}
.ecc-typing span:nth-child(2){animation-delay:.15s}.ecc-typing span:nth-child(3){animation-delay:.3s}
@keyframes ecc-dot{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-3px)}}

.ecc-book{display:block;width:100%;margin-top:8px;padding:12px 14px!important;border:0!important;border-radius:12px!important;background:var(--ecc-blue)!important;color:#fff!important;
  font-weight:700!important;font-size:14px!important;letter-spacing:.02em!important;text-align:left!important;box-shadow:0 8px 24px -8px rgba(0,18,253,.8);transition:transform .25s var(--ecc-ease),box-shadow .25s ease}
.ecc-book:hover{transform:translateY(-1px);box-shadow:0 12px 30px -8px rgba(0,18,253,.95)}
.ecc-book small{display:block;margin-top:2px;font-weight:400;font-size:12px;opacity:.82;letter-spacing:0}

.ecc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 10px;flex:none}
.ecc-chips:empty{display:none}
.ecc-chip{padding:8px 13px!important;border-radius:999px!important;border:0!important;background:transparent!important;box-shadow:0 0 0 1px rgba(255,255,255,.28) inset;color:#fff!important;font-size:13px!important;
  animation:ecc-chip .42s var(--ecc-ease) both;animation-delay:calc(.25s + var(--i,0) * 70ms);transition:background .2s ease}
.ecc-chip:hover{background:rgba(255,255,255,.08)!important}
@keyframes ecc-chip{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.ecc-form{display:flex;align-items:flex-end;gap:8px;margin:0 10px;padding:8px 8px 8px 14px;border-radius:18px;background:#121219;box-shadow:0 0 0 1px var(--ecc-line) inset;flex:none}
.ecc-form textarea{flex:1;min-width:0;resize:none;border:0!important;outline:0;background:transparent!important;color:#fff!important;font-size:16px!important;line-height:1.4!important;font-weight:400!important;font-family:inherit!important;min-height:0!important;height:auto;padding:7px 0!important;max-height:120px;box-shadow:none!important;margin:0}
.ecc-form textarea::placeholder{color:rgba(255,255,255,.45)}
.ecc-send{width:40px!important;height:40px!important;flex:none;border-radius:50%!important;border:0!important;padding:0!important;display:grid;place-items:center;background:var(--ecc-blue)!important;color:#fff!important}
.ecc-foot{padding:6px 16px calc(10px + env(safe-area-inset-bottom,0px));font-size:11px;color:rgba(255,255,255,.42);text-align:center;flex:none}
@media (max-width:599px),(pointer:coarse) and (max-height:500px){.ecc-open.ecc-on .ecc-foot{padding-bottom:max(10px,calc(env(safe-area-inset-bottom,0px) - var(--ecc-kb,0px)))}}

@media (prefers-reduced-motion:reduce){
  .ecc-panel,.ecc-inner,.ecc-m,.ecc-sys,.ecc-fab,.ecc-lbl,.ecc-book{transition:none!important}
  .ecc-fab,.ecc-fab::after,.ecc-d{animation:none!important}
  .ecc-chip,.ecc-typing span{animation:none!important}
}

/* the chat title takes focus when the panel opens on touch screens (so screen readers start there); no box around it */
.ecc-name:focus,.ecc-name:focus-visible{outline:none}
