/* WL00001 — Multi-channel contact launcher (Text / Call / Email / Chat)
 * Replaces the "Let's Chat" fab. Duck-branded per CONTACT_LAUNCHER_SPEC.md.
 * Mobile = bottom dock (4 tabs). Desktop = floating button expanding to the panel. */

/* hide the legacy fab once JS mounts the launcher (JS adds this class to <body>) */
body.wl-launcher-on .chat-fab{display:none}

/* ---------- desktop floating button ---------- */
.wl-launch-btn{position:fixed;top:102px;right:24px;z-index:600;display:inline-flex;align-items:center;gap:8px;
  background:var(--orange);color:#fff;font-family:'Libre Baskerville',serif;font-weight:700;font-size:.95rem;
  padding:11px 18px;border:2px solid #fff;border-radius:999px;cursor:pointer;
  box-shadow:0 6px 18px rgba(64,44,22,.28);transition:transform .18s,box-shadow .18s,background .18s}
.wl-launch-btn:hover{transform:translateY(-2px);background:var(--orange-dark);box-shadow:var(--glow)}
.wl-launch-btn svg{width:18px;height:18px;fill:currentColor;flex:none}

/* ---------- panel ---------- */
.wl-panel{position:fixed;top:150px;right:24px;z-index:640;width:344px;max-width:calc(100vw - 32px);
  background:#fff;border:1px solid rgba(64,44,22,.14);border-radius:var(--radius);box-shadow:0 18px 50px rgba(64,44,22,.24);
  overflow:hidden;display:none;flex-direction:column}
.wl-panel.open{display:flex;animation:wlPop .22s ease}
@keyframes wlPop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}

.wl-head{display:flex;align-items:center;gap:10px;padding:12px 14px;
  background:linear-gradient(120deg,var(--orange-dark),var(--orange-dark));color:#fff}
.wl-logo{height:44px;width:auto;flex:none}
.wl-logo-lg{height:68px;display:block;margin:0 auto 8px}
.wl-head-t{font-family:'Libre Baskerville',serif;font-weight:700;font-size:.98rem;line-height:1.2}
.wl-head-s{font-size:.78rem;opacity:.92;margin-top:2px}
.wl-x{margin-left:auto;background:none;border:0;color:#fff;cursor:pointer;padding:6px;line-height:0;border-radius:8px}
.wl-x:hover{background:rgba(255,255,255,.18)}
.wl-x svg{width:16px;height:16px;fill:currentColor}

/* ---------- tabs ---------- */
.wl-tabs{display:flex;border-bottom:1px solid rgba(64,44,22,.14);background:var(--cream-soft)}
.wl-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px 7px;
  background:none;border:0;border-bottom:3px solid transparent;cursor:pointer;
  color:#6e5941;font-family:'Libre Baskerville',serif;font-weight:700;font-size:.72rem;transition:color .15s,border-color .15s}
.wl-tab svg{width:19px;height:19px;fill:currentColor}
.wl-tab.on{color:var(--orange-dark);border-bottom-color:#e8a11c}
.wl-tab:hover{color:var(--orange-dark)}

/* ---------- card body ---------- */
.wl-card{padding:14px;overflow-y:auto;max-height:min(56vh,460px)}
.wl-lead{font-size:.85rem;color:var(--brown);margin:0 0 10px;line-height:1.45}
.wl-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wl-form .full{grid-column:1/-1}
.wl-form label{display:flex;flex-direction:column;gap:3px;font-size:.72rem;font-weight:700;color:#6e5941}
.wl-form input,.wl-form select,.wl-form textarea{font:inherit;font-size:.88rem;color:var(--brown);
  padding:8px 10px;border:1px solid rgba(64,44,22,.14);border-radius:10px;background:#fff;width:100%}
.wl-form input:focus,.wl-form select:focus,.wl-form textarea:focus{outline:2px solid var(--orange);border-color:var(--orange)}
.wl-form textarea{resize:vertical;min-height:64px}
.wl-hp{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}

.wl-send{grid-column:1/-1;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--orange);color:#fff;font-family:'Libre Baskerville',serif;font-weight:700;font-size:.95rem;
  padding:11px 16px;border:0;border-radius:999px;cursor:pointer;box-shadow:0 6px 16px rgba(64,44,22,.22);
  transition:transform .15s,background .15s}
.wl-send:hover{transform:translateY(-1px);background:var(--orange-dark)}
.wl-send:disabled{opacity:.6;cursor:default;transform:none}

.wl-callbtn{grid-column:1/-1;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:#e8a11c;color:var(--brown);font-family:'Libre Baskerville',serif;font-weight:800;font-size:1rem;
  padding:12px 16px;border:0;border-radius:999px;text-decoration:none;box-shadow:0 6px 16px rgba(64,44,22,.18);
  transition:transform .15s,background .15s}
.wl-callbtn:hover{transform:translateY(-1px);background:#c8890f}
.wl-callbtn svg{width:18px;height:18px;fill:currentColor}
.wl-or{grid-column:1/-1;text-align:center;font-size:.74rem;font-weight:700;color:#6e5941;
  text-transform:uppercase;letter-spacing:.06em;margin:2px 0}

.wl-consent{grid-column:1/-1;font-size:.68rem;color:#6e5941;line-height:1.5;margin:2px 0 0}
.wl-consent a{color:var(--orange-dark)}
.wl-err{grid-column:1/-1;display:none;font-size:.8rem;font-weight:700;color:#c0392b;margin:0}
.wl-err.show{display:block}

/* success state */
.wl-done{text-align:center;padding:18px 8px}
.wl-done h4{font-family:'Libre Baskerville',serif;color:var(--brown);font-size:1.05rem;margin:0 0 6px}
.wl-done p{font-size:.85rem;color:#6e5941;margin:0;line-height:1.5}

/* chat-coming-soon state */
.wl-soon{text-align:center;padding:10px 6px}
.wl-soon h4{font-family:'Libre Baskerville',serif;color:var(--brown);font-size:1rem;margin:0 0 6px}
.wl-soon p{font-size:.83rem;color:#6e5941;margin:0 0 12px;line-height:1.5}
.wl-soon-row{display:flex;gap:8px;justify-content:center}
.wl-soon-row button{flex:1;max-width:150px;background:var(--cream);border:1px solid rgba(64,44,22,.14);border-radius:999px;
  padding:9px 12px;font-family:'Libre Baskerville',serif;font-weight:700;font-size:.82rem;color:var(--orange-dark);cursor:pointer;transition:background .15s}
.wl-soon-row button:hover{background:var(--orange)}

/* ---------- mobile: bottom dock ---------- */
@media(max-width:760px){
  .wl-launch-btn{display:none}
  body.wl-launcher-on{padding-bottom:64px}
  .wl-dock{position:fixed;left:0;right:0;bottom:0;z-index:600;display:flex;
    background:#fff;border-top:1px solid rgba(64,44,22,.14);box-shadow:0 -6px 18px rgba(64,44,22,.14);
    padding-bottom:env(safe-area-inset-bottom)}
  .wl-dock .wl-tab{padding:6px 2px;margin:6px 6px;border:1.5px solid var(--orange);border-radius:9px}
  .wl-dock .wl-tab.on{border-color:var(--orange-dark);background:rgba(244,135,70,.12)}
  .wl-panel{top:auto;bottom:calc(64px + env(safe-area-inset-bottom));left:12px;right:12px;width:auto;
    border-radius:var(--radius) var(--radius) 14px 14px}
  .wl-card{max-height:58vh}
}
@media(min-width:761px){.wl-dock{display:none}}

.wl-head .wl-logo{background:#fff;border-radius:8px;padding:3px}
