/* wmyt-chat — WMYT site AI chat bubble (dark look).
   Navy = site card gradient (.sc--svc: #0b2038 -> #06182d). Panel >=.92 opaque + frost; solid fallback when backdrop-filter is unsupported. */
.wmyt-chat{--wc-navy:var(--navy,#06182d);--wc-n1:#0b2038;--wc-n2:#06182d;--wc-ink:var(--ink,#030f1c);--wc-o:var(--o2,#ff633c);--wc-olink:var(--o1,#ff7b3c);--wc-soft:#c3cedb;--wc-r:var(--r-xl,20px);--wc-gap:24px;--wc-above:0px;font-family:var(--f-body,"Inter",system-ui,sans-serif)}
/* Launcher: a small navy TV (16:9 screen + bezel + stand), white line art, tiny orange power dot. */
.wmyt-chat__launcher{position:fixed;right:calc(var(--wc-gap) + env(safe-area-inset-right));bottom:max(calc(var(--wc-gap) + env(safe-area-inset-bottom)),var(--wc-above));z-index:95;display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 20px 0 12px;border:1px solid rgb(255 255 255 / .18);border-radius:999px;background:var(--wc-ink);color:#fff;font:700 .98rem/1 var(--f-display,"Poppins",system-ui,sans-serif);cursor:pointer;box-shadow:0 14px 40px -10px rgb(3 15 28 / .55);transition:bottom .45s var(--ease,ease),opacity .18s ease-out,transform .18s ease-out}
.wmyt-chat__launcher:hover{background:var(--navy-2,#0e2640)}
.wmyt-chat__launcher:focus-visible{outline:3px solid var(--wc-ink);outline-offset:3px;box-shadow:0 0 0 3px #fff}
.wmyt-chat__tv{width:40px;height:30px;flex:none;display:block;overflow:visible}
.wmyt-chat__tv .scr{fill:#0e2640;transition:fill .18s ease-out}
.wmyt-chat__launcher:hover .scr,.wmyt-chat__launcher:focus-visible .scr{fill:#1f4470}
.wmyt-chat.is-open .wmyt-chat__launcher{opacity:0;visibility:hidden;transform:translateY(6px)}
body.nav-open .wmyt-chat__launcher{visibility:hidden}
/* Panel: "screen powering on" — 180ms ease-out opacity ramp + 8px rise; close is the reverse. */
.wmyt-chat__panel{position:fixed;z-index:160;right:calc(var(--wc-gap) + env(safe-area-inset-right));bottom:calc(var(--wc-gap) + env(safe-area-inset-bottom));width:380px;height:min(560px,calc(100vh - 120px));height:min(560px,calc(100dvh - 120px));display:flex;flex-direction:column;color:#fff;background:linear-gradient(160deg,rgb(11 32 56 / .92) 0%,rgb(6 24 45 / .94) 100%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgb(255 255 255 / .14);border-radius:var(--wc-r);box-shadow:var(--shadow-lg,0 30px 60px -20px rgba(3,15,28,.35));overflow:hidden;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s ease-in,transform .18s ease-in,visibility 0s .18s}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.wmyt-chat__panel{background:linear-gradient(160deg,#0b2038 0%,#06182d 100%)}}
.wmyt-chat__panel[hidden]{display:none!important}
.wmyt-chat:not(.is-open) .wmyt-chat__panel{pointer-events:none}
.wmyt-chat.is-open .wmyt-chat__panel{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease-out,transform .18s ease-out}
.wmyt-chat__head{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 16px;background:rgb(3 15 28 / .35);border-bottom:1px solid rgb(255 255 255 / .1);color:#fff}
.wmyt-chat__logo{width:28px;height:28px;flex:none;display:block}
.wmyt-chat__title{margin:0;flex:1;font:700 1.05rem/1.2 var(--f-display,"Poppins",system-ui,sans-serif);color:#fff}
.wmyt-chat__close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:rgb(255 255 255 / .08);color:#fff;cursor:pointer}
.wmyt-chat__close:hover{background:rgb(255 255 255 / .16)}
.wmyt-chat__close:focus-visible{outline:3px solid var(--wc-o);outline-offset:2px}
.wmyt-chat__close svg{width:20px;height:20px}
.wmyt-chat__body{flex:1;min-height:0;display:flex;background:transparent}
.wmyt-chat__body deep-chat{flex:1;min-height:0;visibility:inherit!important} /* deep-chat sets visibility:visible on itself; keep it hidden with the closed panel */
.wmyt-chat__loading{margin:auto;color:var(--wc-soft);font-size:.9rem}
.wmyt-chat__foot{margin:0;padding:9px 16px 11px;border-top:1px solid rgb(255 255 255 / .1);background:rgb(3 15 28 / .35);color:var(--wc-soft);font-size:.78rem;line-height:1.35;text-align:center}
.wmyt-chat__foot a{color:var(--wc-olink);font-weight:600;text-decoration:underline;text-decoration-color:rgb(255 123 60 / .45);text-underline-offset:2px}
.wmyt-chat__foot a:hover,.wmyt-chat__foot a:focus-visible{text-decoration-color:currentColor}
.wmyt-chat__foot a:focus-visible{outline:3px solid var(--wc-o);outline-offset:2px;border-radius:4px}
@media (max-width:900px){.wmyt-chat{--wc-gap:14px}.wmyt-chat__panel{bottom:max(calc(var(--wc-gap) + env(safe-area-inset-bottom)),var(--wc-above));height:min(560px,calc(100vh - 120px - var(--wc-above)));height:min(560px,calc(100dvh - 120px - var(--wc-above)))}}
@media (max-width:640px){
/* Phone: when the sticky bar's button opens the chat (.has-barbtn), the floating launcher is hidden. Otherwise the launcher sits at the LEFT edge so it never sits over right-aligned links (e.g. "All services"); it still rides 12px above the Instant Quote bar via --wc-above. Safe area applied once. */
.wmyt-chat__launcher{left:auto;right:calc(8px + env(safe-area-inset-right));bottom:max(calc(var(--wc-gap) + env(safe-area-inset-bottom)),calc(var(--wc-above) - 6px));width:52px;height:46px;padding:0;justify-content:center}.wmyt-chat__tv{width:34px;height:25.5px} /* 52x46 launcher (>=44px tap), TV art scaled 0.85; 6px above the bar (JS --wc-above = bar top + 12px, already includes the bar's safe area) */
.wmyt-chat__label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wmyt-chat__panel{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));top:calc(8px + env(safe-area-inset-top));bottom:calc(8px + env(safe-area-inset-bottom));width:auto;height:auto}
body .wmyt-chat.has-barbtn .wmyt-chat__launcher{display:none}
html.wmyt-chat-lock,html.wmyt-chat-lock body{overflow:hidden}
.wmyt-chat.is-open::before{content:"";position:fixed;inset:0;z-index:159;background:rgb(3 15 28 / .55);touch-action:none}
.wmyt-chat__panel{overscroll-behavior:contain}
/* iOS keyboard: JS sizes the open panel to visualViewport (inline top/height); CSS fallback keeps it within the dynamic viewport. */
.wmyt-chat.is-open .wmyt-chat__panel{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}
.wmyt-chat .wmyt-chat__head,.wmyt-chat .wmyt-chat__foot{flex:none}
.wmyt-chat .wmyt-chat__body{overflow:hidden}
.wmyt-chat .wmyt-chat__body deep-chat{height:100%}
}
@media (prefers-reduced-motion:reduce){.wmyt-chat__launcher,.wmyt-chat__panel,.wmyt-chat.is-open .wmyt-chat__panel,.wmyt-chat__tv .scr{transition:none!important;transform:none!important}}
@media print{.wmyt-chat{display:none}}
