/* Access Aerial site chat. Port of the DenZal site chat styles (denzal-theme v7.14.0, assets/css/dz-chat.css),
   recolored for the dark hi-vis site. Self-contained: its own colors and resets, so the theme stylesheet cannot
   break it and it cannot break the theme. Markup is built by assets/js/aa-chat.js. */
.aac{
  --d-hivis:#E6EE2E;--d-ink:#0B0B0C;--d-red:#FF8A9B;
  --d-bg:#1A1B1E;--d-soft:#111214;--d-card:#0B0B0C;--d-line:#33363B;--d-text:#FFFFFF;--d-muted:#B9BCC1;
  position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:9500;
  font-family:'Barlow','Helvetica Neue',Arial,sans-serif;font-size:15.5px;line-height:1.5;color:var(--d-text);text-align:left;
  opacity:0;transform:translateY(16px) scale(.9);transition:opacity .45s ease,transform .45s cubic-bezier(.2,.9,.3,1.2);
}
.aac.is-in{opacity:1;transform:none}
.aac *,.aac *::before,.aac *::after{box-sizing:border-box}
.aac [hidden]{display:none!important}
.aac button,.aac input,.aac textarea{font:inherit;color:inherit;margin:0;text-transform:none;letter-spacing:normal}
.aac button{cursor:pointer}
/* Access Aerial: the reset above (font:inherit) was shrinking the × buttons; restore their sizes */
.aac .aac-close{font-size:28px}.aac .aac-teaser-x{font-size:18px}.aac .aac-hide{font-size:17px}
.aac button:focus-visible,.aac a:focus-visible,.aac input:focus-visible,.aac textarea:focus-visible{outline:3px solid var(--d-hivis);outline-offset:2px}

/* Avatar: photo, with the first initial behind it */
.aac-av{display:flex;align-items:center;justify-content:center;flex:none;overflow:hidden;border-radius:50%;background:var(--d-hivis);color:var(--d-ink);font-family:'Saira Condensed','Arial Narrow',sans-serif;font-weight:800}
.aac-av img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.aac-av-lg{width:100%;height:100%;font-size:26px}
.aac-av-md{width:42px;height:42px;font-size:20px;border:2px solid var(--d-hivis)}

/* Launcher */
.aac-launch{
  position:relative;display:block;width:68px;height:68px;padding:0;border-radius:50%;
  border:3px solid var(--d-ink);background:var(--d-hivis);
  box-shadow:0 8px 26px rgba(0,0,0,.6),0 0 0 3px var(--d-hivis);transition:transform .2s,box-shadow .2s;
}
.aac-launch:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 12px 30px rgba(0,0,0,.65),0 0 0 3px #fff}
.aac-dot{position:absolute;right:1px;bottom:1px;width:15px;height:15px;border-radius:50%;background:#2fbf5b;border:2.5px solid var(--d-ink)}

/* × on the corner of the icon hides the chat for the rest of the visit.
   Always visible on touch screens; on a mouse it shows when the pointer is over the chat. */
.aac .aac-hide{
  position:absolute;top:-9px;left:-9px;z-index:2;width:26px;height:26px;padding:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--d-bg);border:1px solid var(--d-line);color:var(--d-muted);font-size:17px;line-height:1;
  box-shadow:0 2px 8px rgba(0,0,0,.5);transition:opacity .2s,color .2s,border-color .2s;
}
.aac .aac-hide:hover{color:var(--d-red);border-color:var(--d-red)}
.aac.is-open .aac-hide{display:none}
@media (hover:hover) and (pointer:fine){
  .aac .aac-hide{opacity:0}
  .aac:hover .aac-hide,.aac .aac-hide:focus-visible{opacity:1}
}

/* Hello bubble */
.aac-teaser{
  position:absolute;right:82px;bottom:12px;display:flex;align-items:center;white-space:nowrap;
  background:var(--d-bg);border:1px solid var(--d-line);border-left:4px solid var(--d-hivis);border-radius:12px 12px 3px 12px;
  box-shadow:0 10px 30px rgba(0,0,0,.55);animation:aac-pop .4s cubic-bezier(.2,.9,.3,1.3);
}
.aac-teaser-open{background:none;border:0;padding:11px 4px 11px 14px;font-size:15.5px;font-weight:700;color:var(--d-text);text-align:left;min-height:46px}
.aac-teaser-open:hover{color:var(--d-hivis)}
.aac-teaser-x{background:none;border:0;padding:8px 12px 8px 6px;font-size:18px;line-height:1;color:var(--d-muted)}
.aac-teaser-x:hover{color:var(--d-red)}
@keyframes aac-pop{from{opacity:0;transform:translateX(10px) scale(.92)}to{opacity:1;transform:none}}

/* Panel */
.aac-panel{
  position:absolute;right:0;bottom:82px;width:376px;max-width:calc(100vw - 24px);
  height:min(600px,calc(100vh - 124px));height:min(600px,calc(100dvh - 124px));
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--d-bg);border:1px solid var(--d-line);border-radius:8px;
  box-shadow:0 24px 70px rgba(0,0,0,.7);animation:aac-up .28s cubic-bezier(.2,.8,.2,1);
}
@keyframes aac-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.aac-head{display:flex;align-items:center;gap:11px;padding:12px 10px 12px 14px;background:var(--d-ink);border-bottom:4px solid var(--d-hivis);color:#fff}
.aac-head-txt{flex:1;min-width:0}
.aac-head-txt strong{display:block;font-family:'Saira Condensed','Arial Narrow',sans-serif;font-size:21px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;line-height:1.1;color:var(--d-hivis)}
.aac-head-txt span{display:block;font-size:13px;color:var(--d-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aac-close{flex:none;width:38px;height:38px;border:0;border-radius:8px;background:none;font-size:26px;line-height:1;color:#fff}
.aac-close:hover{background:rgba(255,255,255,.12)}

.aac-msgs{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--d-soft)}
.aac-row{display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:100%}
.aac-you{align-items:flex-end}
.aac-bubble{position:relative;max-width:88%;padding:10px 13px;border-radius:14px 14px 14px 3px;background:var(--d-card);border:1px solid var(--d-line);white-space:pre-wrap;overflow-wrap:anywhere}
.aac-you .aac-bubble{border-radius:14px 14px 3px 14px;background:var(--d-hivis);border-color:var(--d-hivis);color:var(--d-ink)}
.aac-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.aac-acts{display:flex;flex-wrap:wrap;gap:6px;max-width:100%}
.aac-link{display:inline-block;padding:7px 12px;border-radius:999px;border:1px solid var(--d-hivis);background:transparent;color:var(--d-hivis)!important;font-size:13px;font-weight:600;line-height:1.4;text-decoration:none!important;transition:background .2s,color .2s}
.aac-link:hover{background:var(--d-hivis);color:var(--d-ink)!important}
.aac-link-call,.aac-link-msg{background:var(--d-hivis);border-color:var(--d-hivis);color:var(--d-ink)!important}
.aac-link-call:hover,.aac-link-msg:hover{background:#fff;border-color:#fff;color:var(--d-ink)!important}
.aac-typing .aac-bubble{display:flex;gap:5px;padding:14px}
.aac-typing i{width:6px;height:6px;border-radius:50%;background:var(--d-hivis);animation:aac-dot 1.1s ease-in-out infinite}
.aac-typing i:nth-child(2){animation-delay:.15s}.aac-typing i:nth-child(3){animation-delay:.3s}
@keyframes aac-dot{0%,100%{opacity:.25;transform:none}50%{opacity:1;transform:translateY(-3px)}}

/* Quick buttons */
.aac-quick{display:flex;gap:6px;padding:9px 14px;overflow-x:auto;border-top:1px solid var(--d-line);background:var(--d-bg);scrollbar-width:none}
.aac-quick::-webkit-scrollbar{display:none}
.aac-chip{flex:none;padding:7px 12px;border-radius:999px;border:1px solid var(--d-line);background:var(--d-soft);font-size:13px;color:var(--d-text);white-space:nowrap;transition:border-color .2s,color .2s}
.aac-chip:hover{border-color:var(--d-hivis);color:var(--d-hivis)}

/* Input */
.aac-form{display:flex;gap:8px;padding:0 14px 8px;background:var(--d-bg)}
.aac-form input{flex:1;min-width:0;height:44px;padding:0 14px;border-radius:6px;border:1px solid var(--d-line);background:var(--d-card);font-size:16px;outline:0;box-shadow:none}
.aac-form input:focus{border-color:var(--d-hivis)}
.aac-form input::placeholder,.aac-lead ::placeholder{color:#8d9096}
.aac-form button{flex:none;width:44px;height:44px;border:0;border-radius:6px;background:var(--d-hivis);color:var(--d-ink);font-size:20px;font-weight:700}
.aac-form button:hover{background:#fff}
.aac-form button:disabled{opacity:.5;cursor:default}
.aac-note{margin:0;padding:0 14px 10px;font-size:11.5px;line-height:1.4;color:var(--d-muted);background:var(--d-bg)}

/* Leave a message */
.aac-lead{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:8px;border:1px solid var(--d-line);border-top:3px solid var(--d-hivis);background:var(--d-card)}
.aac-f{display:flex;flex-direction:column;gap:3px;margin:0}
.aac-f span{font-size:12px;font-weight:600;color:var(--d-muted)}
.aac-f input,.aac-f textarea{width:100%;padding:9px 11px;border-radius:6px;border:1px solid var(--d-line);background:var(--d-soft);font-size:16px;outline:0;resize:vertical;box-shadow:none}
.aac-f input:focus,.aac-f textarea:focus{border-color:var(--d-hivis)}
.aac-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.aac-err{margin:0;font-size:13px;color:var(--d-red)}
.aac-err:empty{display:none}
/* Scoped under .aac so the label beats the ".aac button" reset */
.aac .aac-send{height:44px;border:0;border-radius:4px;background:var(--d-hivis);color:var(--d-ink);font-family:'Saira Condensed','Arial Narrow',sans-serif;font-size:18px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.aac .aac-send:hover{background:#fff}
.aac .aac-send:disabled{opacity:.6;cursor:default}

/* Phones (Access Aerial): no floating icon over the Call / Get a Quote bar; its "Ask" button opens the chat,
   which fills the screen. Matches the theme's 760px phone breakpoint. */
@media (max-width:760px){
  .aac-launch,.aac-teaser,.aac .aac-hide{display:none!important}
  .aac.is-open{position:fixed;inset:0;z-index:9600;transform:none}
  .aac-panel{position:absolute;inset:0;width:100%;max-width:none;height:100%;border:0;border-radius:0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .aac-head{padding-top:calc(12px + env(safe-area-inset-top,0px))}
  html.aac-lock,html.aac-lock body{overflow:hidden}
}
@media (prefers-reduced-motion:reduce){
  .aac,.aac-panel,.aac-teaser{transition:none;animation:none}
  .aac-typing i{animation:none}
}
@media print{.aac{display:none!important}}
